@@ -119,8 +119,11 @@ UniversalArchs.asan_osx_dynamic := $(call CheckArches,i386 x86_64 x86_64h,asan_o
119
119
Configs += asan_iossim_dynamic
120
120
UniversalArchs.asan_iossim_dynamic := $(call CheckArches,i386 x86_64,asan_iossim_dynamic,$(IOSSIM_SDK ) )
121
121
122
- Configs += ubsan_osx
123
- UniversalArchs.ubsan_osx := $(call CheckArches,i386 x86_64 x86_64h,ubsan_osx,$(OSX_SDK ) )
122
+ Configs += ubsan_osx_dynamic
123
+ UniversalArchs.ubsan_osx_dynamic := $(call CheckArches,i386 x86_64 x86_64h,ubsan_osx_dynamic,$(OSX_SDK ) )
124
+
125
+ Configs += ubsan_iossim_dynamic
126
+ UniversalArchs.ubsan_iossim_dynamic := $(call CheckArches,i386 x86_64,ubsan_iossim_dynamic,$(IOSSIM_SDK ) )
124
127
125
128
# Darwin 10.6 has a bug in cctools that makes it unable to use ranlib on our ARM
126
129
# object files. If we are on that platform, strip out all ARM archs. We still
@@ -172,24 +175,33 @@ IOSSIM_DEPLOYMENT_ARGS += -isysroot $(IOSSIM_SDK)
172
175
CFLAGS.eprintf := $(CFLAGS ) $(OSX_DEPLOYMENT_ARGS )
173
176
CFLAGS.10.4 := $(CFLAGS ) $(OSX_DEPLOYMENT_ARGS )
174
177
178
+ SANITIZER_MACOSX_DEPLOYMENT_ARGS := -mmacosx-version-min=10.7
179
+ SANITIZER_IOSSIM_DEPLOYMENT_ARGS := -mios-simulator-version-min=7.0 \
180
+ -isysroot $(IOSSIM_SDK )
181
+ SANITIZER_CFLAGS := -fno-builtin -gline-tables-only
182
+
175
183
CFLAGS.asan_osx_dynamic := \
176
- $(CFLAGS ) -mmacosx-version-min=10.7 \
184
+ $(CFLAGS ) $(SANITIZER_MACOSX_DEPLOYMENT_ARGS ) \
185
+ $(SANITIZER_CFLAGS ) \
177
186
-stdlib=libc++ \
178
- -fno-builtin \
179
- -gline-tables-only \
180
187
-DMAC_INTERPOSE_FUNCTIONS=1 \
181
188
-DASAN_DYNAMIC=1
182
189
183
190
CFLAGS.asan_iossim_dynamic := \
184
- $(CFLAGS ) -mios-simulator-version-min=7.0 \
185
- -isysroot $(IOSSIM_SDK ) \
186
- -fno-builtin \
187
- -gline-tables-only \
191
+ $(CFLAGS ) $(SANITIZER_IOSSIM_DEPLOYMENT_ARGS ) \
192
+ $(SANITIZER_CFLAGS ) \
188
193
-DMAC_INTERPOSE_FUNCTIONS=1 \
189
194
-DASAN_DYNAMIC=1
190
195
191
- CFLAGS.ubsan_osx := $(CFLAGS ) -mmacosx-version-min=10.6 \
192
- -fno-builtin
196
+ CFLAGS.ubsan_osx_dynamic := \
197
+ $(CFLAGS ) $(SANITIZER_MACOSX_DEPLOYMENT_ARGS ) \
198
+ $(SANITIZER_CFLAGS ) \
199
+ -stdlib=libc++
200
+
201
+ CFLAGS.ubsan_iossim_dynamic := \
202
+ $(CFLAGS ) $(SANITIZER_IOSSIM_DEPLOYMENT_ARGS ) \
203
+ $(SANITIZER_CFLAGS )
204
+
193
205
194
206
CFLAGS.ios.i386 := $(CFLAGS ) $(IOSSIM_DEPLOYMENT_ARGS )
195
207
CFLAGS.ios.x86_64 := $(CFLAGS ) $(IOSSIM_DEPLOYMENT_ARGS )
@@ -220,24 +232,29 @@ CFLAGS.profile_ios.armv7k := $(CFLAGS) $(IOS_DEPLOYMENT_ARGS)
220
232
CFLAGS.profile_ios.armv7s := $(CFLAGS ) $(IOS_DEPLOYMENT_ARGS )
221
233
CFLAGS.profile_ios.arm64 := $(CFLAGS ) $(IOS6_DEPLOYMENT_ARGS )
222
234
223
- # Configure the asan_osx_dynamic library to be built shared.
235
+ SANITIZER_LDFLAGS := -undefined dynamic_lookup
236
+
224
237
SHARED_LIBRARY.asan_osx_dynamic := 1
225
- LDFLAGS.asan_osx_dynamic := -lc++ -undefined dynamic_lookup -install_name @rpath/libclang_rt.asan_osx_dynamic.dylib \
226
- -mmacosx-version-min=10.7
238
+ LDFLAGS.asan_osx_dynamic := -lc++ $( SANITIZER_LDFLAGS ) -install_name @rpath/libclang_rt.asan_osx_dynamic.dylib \
239
+ $( SANITIZER_MACOSX_DEPLOYMENT_ARGS )
227
240
228
- # Configure the asan_iossim_dynamic library to be built shared.
229
241
SHARED_LIBRARY.asan_iossim_dynamic := 1
230
- # configure+make uses Clang, so we're using isysroot instead of --sysroot
231
- # or -Wl,-syslibroot.
232
- LDFLAGS.asan_iossim_dynamic := -undefined dynamic_lookup -install_name @rpath/libclang_rt.asan_iossim_dynamic.dylib \
233
- -Wl,-ios_simulator_version_min,7.0.0 \
234
- -mios-simulator-version-min=7.0 -isysroot $(IOSSIM_SDK )
242
+ LDFLAGS.asan_iossim_dynamic := $(SANITIZER_LDFLAGS ) -install_name @rpath/libclang_rt.asan_iossim_dynamic.dylib \
243
+ -Wl,-ios_simulator_version_min,7.0.0 $(SANITIZER_IOSSIM_DEPLOYMENT_ARGS )
244
+
245
+ SHARED_LIBRARY.ubsan_osx_dynamic := 1
246
+ LDFLAGS.ubsan_osx_dynamic := -lc++ $(SANITIZER_LDFLAGS ) -install_name @rpath/libclang_rt.ubsan_osx_dynamic.dylib \
247
+ $(SANITIZER_MACOSX_DEPLOYMENT_ARGS )
248
+
249
+ SHARED_LIBRARY.ubsan_iossim_dynamic := 1
250
+ LDFLAGS.ubsan_iossim_dynamic := $(SANITIZER_LDFLAGS ) -install_name @rpath/libclang_rt.ubsan_iossim_dynamic.dylib \
251
+ -Wl,-ios_simulator_version_min,7.0.0 $(SANITIZER_IOSSIM_DEPLOYMENT_ARGS )
235
252
236
253
ifneq ($(OSX_SDK ) ,)
237
254
CFLAGS.asan_osx_dynamic += -isysroot $(OSX_SDK )
238
255
LDFLAGS.asan_osx_dynamic += -isysroot $(OSX_SDK )
239
- CFLAGS.ubsan_osx += -isysroot $(OSX_SDK )
240
- LDFLAGS.ubsan_osx += -isysroot $(OSX_SDK )
256
+ CFLAGS.ubsan_osx_dynamic += -isysroot $(OSX_SDK )
257
+ LDFLAGS.ubsan_osx_dynamic += -isysroot $(OSX_SDK )
241
258
endif
242
259
243
260
FUNCTIONS.eprintf := eprintf
@@ -260,15 +277,18 @@ FUNCTIONS.profile_ios := $(FUNCTIONS.profile_osx)
260
277
FUNCTIONS.asan_osx_dynamic := $(AsanFunctions ) $(AsanCXXFunctions ) \
261
278
$(InterceptionFunctions ) \
262
279
$(SanitizerCommonFunctions ) \
263
- $(AsanDynamicFunctions )
280
+ $(AsanDynamicFunctions )
264
281
265
282
FUNCTIONS.asan_iossim_dynamic := $(AsanFunctions ) $(AsanCXXFunctions ) \
266
283
$(InterceptionFunctions ) \
267
284
$(SanitizerCommonFunctions ) \
268
- $(AsanDynamicFunctions )
285
+ $(AsanDynamicFunctions )
286
+
287
+ FUNCTIONS.ubsan_osx_dynamic := $(UbsanFunctions ) $(UbsanCXXFunctions ) \
288
+ $(SanitizerCommonFunctions )
269
289
270
- FUNCTIONS.ubsan_osx := $(UbsanFunctions ) $(UbsanCXXFunctions ) \
271
- $(SanitizerCommonFunctions )
290
+ FUNCTIONS.ubsan_iossim_dynamic := $(UbsanFunctions ) $(UbsanCXXFunctions ) \
291
+ $(SanitizerCommonFunctions )
272
292
273
293
CCKEXT_PROFILE_FUNCTIONS := \
274
294
InstrProfiling \
0 commit comments