1 #include "<DEVELOPER_DIR>/Makefiles/CoreOS/Xcode/BSD.xcconfig"
3 // NO means only libSystem.B_asan.dylib will be ASanified.
4 // YES means even the normal variant, libSystem.B.dylib, will be ASanified.
6 // XBS sets RC_SUPPORT_ADDRESS_SANITIZATION=1 to trigger the ASanified normal variant.
7 ASAN_IN_NORMAL_VARIANT_1 = YES
8 ASAN_IN_NORMAL_VARIANT_0 = NO
9 ASAN_IN_NORMAL_VARIANT_ = NO
10 ASAN_IN_NORMAL_VARIANT = $(ASAN_IN_NORMAL_VARIANT_$(RC_SUPPORT_ADDRESS_SANITIZATION))
13 ASAN_CFLAGS_YES = -DCURRENT_VARIANT_asan=1
15 SHARED_ASAN_LDFLAGS = -L $(SDKROOT)/usr/local/lib/sanitizers -Xlinker -not_for_dyld_shared_cache -rpath /usr/local/lib/sanitizers/
16 ASAN_LDFLAGS_YES[sdk=macosx*] = $(SHARED_ASAN_LDFLAGS) -Xlinker -upward-lclang_rt.asan_osx_dynamic
17 ASAN_LDFLAGS_YES[sdk=iphoneos*] = $(SHARED_ASAN_LDFLAGS) -Xlinker -upward-lclang_rt.asan_ios_dynamic
18 ASAN_LDFLAGS_YES[sdk=watchos*] = $(SHARED_ASAN_LDFLAGS) -Xlinker -upward-lclang_rt.asan_watchos_dynamic
19 ASAN_LDFLAGS_YES[sdk=appletvos*] = $(SHARED_ASAN_LDFLAGS) -Xlinker -upward-lclang_rt.asan_tvos_dynamic
20 ASAN_LDFLAGS_YES[sdk=bridgeos*] = $(SHARED_ASAN_LDFLAGS) -Xlinker -upward-lclang_rt.asan_bridgeos_dynamic
21 ASAN_IN_NORMAL_VARIANT_CFLAGS = $(ASAN_CFLAGS_$(ASAN_IN_NORMAL_VARIANT))
22 ASAN_IN_NORMAL_VARIANT_LDFLAGS = $(ASAN_LDFLAGS_$(ASAN_IN_NORMAL_VARIANT))
24 BUILD_VARIANTS = normal debug asan
25 SUPPORTED_PLATFORMS = macosx iphoneos iphonesimulator appletvos appletvsimulator watchos watchsimulator
26 INSTALL_PATH = /usr/lib
27 DYLIB_CURRENT_VERSION = $(CURRENT_VERSION_STRING_$(RC_XBS))
28 ORDER_FILE = $(SDKROOT)/$(APPLE_INTERNAL_DIR)/OrderFiles/libSystem.order
29 ORDER_FILE[sdk=iphonesimulator*] =
30 OTHER_CFLAGS = -include $(BUILT_PRODUCTS_DIR)/config.$(CURRENT_ARCH).$(CURRENT_VARIANT).h -DCURRENT_VARIANT_$(CURRENT_VARIANT)=1 $(ASAN_IN_NORMAL_VARIANT_CFLAGS)
31 OTHER_LDFLAGS = -Wl,-search_paths_first -nodefaultlibs @$(BUILT_PRODUCTS_DIR)/linker_arguments.$(CURRENT_ARCH).$(CURRENT_VARIANT).txt $(ASAN_IN_NORMAL_VARIANT_LDFLAGS)
32 OTHER_LDFLAGS_asan = $(ASAN_LDFLAGS_YES)
33 LD_GENERATE_MAP_FILE = YES
34 EXECUTABLE_PREFIX = lib
35 PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include/os
36 LIBRARY_SEARCH_PATHS = $(SDKROOT)/usr/lib/system $(SDKROOT)/usr/local/lib/system
37 GCC_NO_COMMON_BLOCKS = YES
38 GCC_WARN_64_TO_32_BIT_CONVERSION = YES
39 GCC_WARN_ABOUT_RETURN_TYPE = YES
40 GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES
41 GCC_TREAT_WARNINGS_AS_ERRORS = YES
42 GCC_WARN_UNUSED_VARIABLE = YES
43 CURRENT_VERSION_STRING_ = 159
44 CURRENT_VERSION_STRING_YES = $(CURRENT_PROJECT_VERSION)
45 INFOPLIST_INSTALL_PATH = Versions/B/Resources
46 INFOPLIST_INSTALL_PATH[sdk=iphoneos*] =
47 INFOPLIST_INSTALL_PATH[sdk=*simulator*] =
48 INFOPLIST_INSTALL_PATH[sdk=watchos*] =
49 INFOPLIST_OUTPUT_FORMAT = binary
50 INFOPLIST_OUTPUT_FORMAT[sdk=macosx*] = xml
51 APPLY_RULES_IN_COPY_FILES = YES
52 PLIST_FILE_OUTPUT_FORMAT = binary
53 PLIST_FILE_OUTPUT_FORMAT[sdk=macosx*] = xml
55 // override presence of $(EXECUTABLE_VARIANT_SUFFIX) in the default EXECUTABLE_NAME rdar://26234727
56 DYLIB_INSTALL_NAME_EXECUTABLE_NAME = $(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_SUFFIX)
57 DYLIB_INSTALL_NAME_EXECUTABLE_PATH = $(DYLIB_INSTALL_NAME_EXECUTABLE_NAME)
58 LD_DYLIB_INSTALL_NAME = $(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(DYLIB_INSTALL_NAME_EXECUTABLE_PATH)