/ xcodescripts / libc.xcconfig
libc.xcconfig
1 #include "<DEVELOPER_DIR>/Makefiles/CoreOS/Xcode/BSD.xcconfig" 2 3 // Standard settings 4 SUPPORTED_PLATFORMS = macosx iphoneos iphonesimulator appletvos appletvsimulator watchos watchsimulator iphoneosnano iphonesimulatornano bridgeos 5 6 SDK_INSTALL_VARIANT = $(SDK_INSTALL_VARIANT_$(DRIVERKIT)) 7 SDK_INSTALL_VARIANT_1 = driverkit 8 SDK_INSTALL_VARIANT_ = default 9 SDK_INSTALL_ROOT = $(SDK_INSTALL_ROOT_$(SDK_INSTALL_VARIANT)) 10 SDK_INSTALL_ROOT_driverkit = $(DRIVERKITROOT) 11 SDK_INSTALL_HEADERS_ROOT = $(SDK_INSTALL_HEADERS_ROOT_$(SDK_INSTALL_VARIANT)) 12 SDK_INSTALL_HEADERS_ROOT_driverkit = $(SDK_INSTALL_ROOT)/$(SDK_RUNTIME_HEADERS_PREFIX) 13 SDK_RUNTIME_HEADERS_PREFIX = Runtime 14 15 SRCROOT_SEARCH_PATHS = $(SRCROOT) $(SRCROOT)/include $(SRCROOT)/gen $(SRCROOT)/locale $(SRCROOT)/locale/FreeBSD $(SRCROOT)/stdtime/FreeBSD $(SRCROOT)/darwin 16 SYSTEM_FRAMEWORK_HEADERS = $(SDKROOT)/$(SDK_INSTALL_HEADERS_ROOT)/System/Library/Frameworks/System.framework/PrivateHeaders 17 SDK_SYSTEM_FRAMEWORK_HEADERS = $(SDKROOT)/$(SDK_INSTALL_HEADERS_ROOT)/System/Library/Frameworks/System.framework/Versions/B/PrivateHeaders 18 HEADER_SEARCH_PATHS = $($(TARGET_NAME)_SEARCH_PATHS) $(DERIVED_FILES_DIR)/dtrace $(SRCROOT_SEARCH_PATHS) $(inherited) 19 SYSTEM_HEADER_SEARCH_PATHS = $(SYSTEM_FRAMEWORK_HEADERS) $(SDKROOT)/$(SDK_INSTALL_HEADERS_ROOT)/usr/local/include $(SDKROOT)/$(SDK_INSTALL_HEADERS_ROOT)/usr/include 20 SYSTEM_FRAMEWORK_SEARCH_PATHS = $(SDKROOT)/$(SDK_INSTALL_HEADERS_ROOT)/System/Library/Frameworks 21 ALWAYS_SEARCH_USER_PATHS = YES 22 USE_HEADERMAP = NO 23 BUILD_VARIANTS = normal 24 GCC_OPTIMIZATION_LEVEL = s 25 GCC_C_LANGUAGE_STANDARD = gnu11 26 GCC_ENABLE_OBJC_EXCEPTIONS = YES 27 GCC_SYMBOLS_PRIVATE_EXTERN = NO 28 GCC_DYNAMIC_NO_PIC = NO 29 GCC_THUMB_SUPPORT = YES 30 GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; 31 32 //CLANG_WARN_INT_CONVERSION = YES 33 //CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES 34 //GCC_WARN_64_TO_32_BIT_CONVERSION = YES 35 //GCC_WARN_SHADOW = YES 36 GCC_WARN_UNINITIALIZED_AUTOS = YES; 37 GCC_WARN_UNUSED_VARIABLE = YES; 38 GCC_WARN_ABOUT_RETURN_TYPE = YES; 39 //WARNING_CFLAGS = -Wall -Wextra 40 WARNING_CFLAGS = -Wall -Werror -Wno-error=shorten-64-to-32 -Wno-error=incompatible-pointer-types-discards-qualifiers -Wno-nullability-completeness 41 42 COPY_PHASE_STRIP = NO 43 SKIP_INSTALL = YES 44 INSTALLHDRS_SCRIPT_PHASE = YES 45 INSTALLHDRS_COPY_PHASE = YES 46 VERSIONING_SYSTEM = 47 VERSION_INFO_PREFIX = __attribute__((visibility("hidden"))) 48 COPY_PHASE_STRIP = NO 49 STRIP_INSTALLED_PRODUCT = NO 50 LD_DYLIB_INSTALL_NAME = $(SDK_INSTALL_ROOT)/usr/lib/system/$(EXECUTABLE_NAME) 51 IS_ZIPPERED = YES 52 53 BUILD_VARIANTS = normal debug 54 BUILD_ARCHIVES = Platform Base FreeBSD NetBSD TRE vCancelable vDarwinExtsn vDarwinExtsnCancelable vPre1050 vLegacy vInode32 FortifySource 55 56 // clang is desired over llvm-gcc for OSAtomics. However, it isn't capable of building armv6 correctly. 57 GCC_VERSION = com.apple.compilers.llvm.clang.1_0 58 GCC_VERSION[arch=armv6] = com.apple.compilers.llvmgcc42 59 60 EXECUTABLE_PREFIX = libsystem_ 61 INSTALL_PATH = $(SDK_INSTALL_ROOT)/usr/lib/system 62 PUBLIC_HEADERS_FOLDER_PATH = $(SDK_INSTALL_HEADERS_ROOT)/usr/include 63 PRIVATE_HEADERS_FOLDER_PATH = $(SDK_INSTALL_HEADERS_ROOT)/usr/local/include 64 65 DARWIN_PUBLIC_HEADERS_FOLDER_PATH = $(SDK_INSTALL_HEADERS_ROOT)/usr/include/os 66 DARWIN_PRIVATE_HEADERS_FOLDER_PATH = $(SDK_INSTALL_HEADERS_ROOT)/usr/local/include/os 67 68 // Simulator 69 BASE_PREPROCESSOR_MACROS = __LIBC__ __DARWIN_UNIX03=1 __DARWIN_64_BIT_INO_T=1 __DARWIN_NON_CANCELABLE=1 __DARWIN_VERS_1050=1 _FORTIFY_SOURCE=0 70 OTHER_CFLAGS = -fdollars-in-identifiers -fno-common -fverbose-asm $($(TARGET_NAME)_CFLAGS) $(VARIANT_PREPROCESSOR_MACROS) 71 OTHER_CFLAGS_debug = -fstack-protector -fno-inline -O0 -DDEBUG=1 72 SIM_SUFFIX[sdk=*simulator*] = _sim 73 74 GCC_PREPROCESSOR_DEFINITIONS = $(BASE_PREPROCESSOR_MACROS) 75 76 // libsystem_c.dylib linking 77 CR_LDFLAGS = -lCrashReporterClient 78 LIBCOMPILER_RT_LDFLAGS = -lcompiler_rt 79 LIBMALLOC_LDFLAGS = -lsystem_malloc 80 LIBBLOCKS_LDFLAGS = -lsystem_blocks 81 LIBC_LDFLAGS = -lsystem_c 82 LIBDISPATCH_LDFLAGS = -ldispatch 83 LIBXPC_LDFLAGS = -lxpc 84 LIBPLATFORM_LDFLAGS = -lsystem$(SIM_SUFFIX)_platform 85 LIBPTHREAD_LDFLAGS = -lsystem$(SIM_SUFFIX)_pthread 86 LIBSYSCALL_LDFLAGS = -lsystem$(SIM_SUFFIX)_kernel 87 LIBM_LDFLAGS = -lsystem_m 88 LIBDYLD_LDFLAGS = -ldyld 89 LIBSYSTEM_C_LDFLAGS = -all_load -nostdlib -L$(SDK_INSTALL_ROOT)/usr/lib/system -umbrella System $(CR_LDFLAGS) $(LIBCOMPILER_RT_LDFLAGS) $(LIBDYLD_LDFLAGS) $(LIBSYSCALL_LDFLAGS) $(LIBM_LDFLAGS) $(LIBMALLOC_LDFLAGS) $(LIBPLATFORM_LDFLAGS) $(LIBPTHREAD_LDFLAGS) $(UPWARD_LDFLAGS) $(LIBSYSTEM_C_EXTRA_LDFLAGS_$(CURRENT_ARCH)) -Wl,-interposable_list,$(DERIVED_FILES_DIR)/interposable.list -Wl,-unexported_symbols_list,$(DERIVED_FILES_DIR)/unexport.list -Wl,-alias_list,$(SRCROOT)/xcodescripts/alias.list -Wl,-order_file,$(SRCROOT)/xcodescripts/Libc.order @$(BUILT_PRODUCTS_DIR)/$(CURRENT_VARIANT).linklist 90 LIBSYSTEM_C_EXTRA_LDFLAGS_i386 = -Wl,-alias_list,$(SRCROOT)/xcodescripts/legacy_alias.list 91 92 93 // TODO: Remove upward links - mostly <rdar://problem/13183469>, macho is for assumes.c 94 UPWARD_LDFLAGS = -Wl,-upward-ldispatch -Wl,-upward-lmacho -Wl,-upward-lsystem_asl -Wl,-upward-lsystem_blocks -Wl,-upward-lsystem_info -Wl,-upward-lsystem_notify -Wl,-upward-lxpc -Wl,-upward-lcorecrypto -Wl,-upward-lsystem_trace $(OTHER_UPWARD_LDFLAGS) 95 UPWARD_LDFLAGS[sdk=driverkit*] = -Wl,-upward-lmacho -Wl,-upward-lsystem_blocks -Wl,-upward-lcorecrypto 96 97 LIBSYSTEM_DARWIN_LDFLAGS = -all_load -nostdlib -L$(SDK_INSTALL_ROOT)/usr/lib/system -umbrella System $(LIBCOMPILER_RT_LDFLAGS) $(LIBDYLD_LDFLAGS) $(LIBSYSCALL_LDFLAGS) $(LIBM_LDFLAGS) $(LIBMALLOC_LDFLAGS) $(LIBBLOCKS_LDFLAGS) $(LIBPLATFORM_LDFLAGS) $(LIBPTHREAD_LDFLAGS) $(LIBPLATFORM_LDFLAGS) $(LIBC_LDFLAGS) $(LIBDISPATCH_LDFLAGS) $(LIBXPC_LDFLAGS) -lmacho -ldyld -Wl,-upward-lsystem_trace 98 99 // libPlatform.a architectures 100 ARCH_FAMILY = $(ARCH_FAMILY_$(CURRENT_ARCH)) 101 ARCH_FAMILY_x86_64 = x86_64 102 ARCH_FAMILY_i386 = i386 103 ARCH_FAMILY_armv6 = arm 104 ARCH_FAMILY_armv7 = arm 105 ARCH_FAMILY_armv7s = arm 106 ARCH_FAMILY_armv7f = arm 107 ARCH_FAMILY_armv7k = arm 108 ARCH_FAMILY_arm64 = arm64 109 110 // Platform target 111 Platform_INCLUDED_SOURCE_FILE_NAMES = forceLibcToBuild.c $(Platform_INCLUDED_SOURCE_FILE_NAMES_gen) 112 Platform_INCLUDED_SOURCE_FILE_NAMES_gen = $(ARCH_FAMILY)/gen/*.c $(ARCH_FAMILY)/gen/*.s $(ARCH_FAMILY)/gen/*.S 113 114 // FreeBSD target 115 FreeBSD_CFLAGS = -include $(SRCROOT)/fbsdcompat/_fbsd_compat_.h 116 FreeBSD_SEARCH_PATHS = $(SRCROOT)/fbsdcompat $(SRCROOT)/gdtoa $(SRCROOT)/gdtoa/FreeBSD 117 FreeBSD_EXCLUDED_SOURCE_GDTOA = gdtoa/FreeBSD/machdep* gdtoa-strtopx.c 118 // Include the correct parts of gdtoa per-arch 119 FreeBSD_INCLUDED_SOURCE_FILE_NAMES = $(FreeBSD_INCLUDED_SOURCE_FILE_NAMES_$(ARCH_FAMILY)) 120 FreeBSD_INCLUDED_SOURCE_FILE_NAMES_x86_64 = gdtoa-strtopx.c machdep_ldisx.c 121 FreeBSD_INCLUDED_SOURCE_FILE_NAMES_i386 = $(FreeBSD_INCLUDED_SOURCE_FILE_NAMES_x86_64) 122 FreeBSD_INCLUDED_SOURCE_FILE_NAMES_arm = machdep_ldisd.c 123 FreeBSD_INCLUDED_SOURCE_FILE_NAMES_arm64 = $(FreeBSD_INCLUDED_SOURCE_FILE_NAMES_arm) 124 125 // NetBSD target 126 NetBSD_CFLAGS = -include $(SRCROOT)/nbsdcompat/_nbsd_compat_.h 127 NetBSD_SEARCH_PATHS = $(SRCROOT)/nbsdcompat 128 129 // TRE target 130 TRE_CFLAGS = -DHAVE_CONFIG_H 131 TRE_SEARCH_PATHS = $(SRCROOT)/regex/TRE $(SRCROOT)/regex/FreeBSD 132 133 // libc_dyld static library 134 libc_dyld_CFLAGS = -fno-stack-check 135 136 // Files per architecture to exclude from the non-platform builds (because optimised versions exist in Platform) 137 BASE_INCLUDED_SOURCE_FILE_NAMES = $(BASE_INCLUDED_SOURCE_FILE_NAMES_$(ARCH_FAMILY)) 138 BASE_EXCLUDED_SOURCE_FILE_NAMES = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_$(ARCH_FAMILY)) $(BASE_EXCLUDED_SOURCE_FILE_NAMES_$(VARIANT_PLATFORM_NAME)) 139 BASE_EXCLUDED_SOURCE_FILE_NAMES_x86_64 = kvm.c nlist.c 140 BASE_EXCLUDED_SOURCE_FILE_NAMES_arm64 = kvm.c nlist.c 141 142 // Rune support isn't included on iOS but there's no better way to exclude their complication 143 BASE_EXCLUDED_SOURCE_FILE_NAMES_macosx = OSMemoryNotification.c 144 BASE_EXCLUDED_SOURCE_FILE_NAMES_iphoneos = frune.c login.c logout.c mbrune.c runedepreciated.c setinvalidrune.c getmntinfo64.c 145 BASE_EXCLUDED_SOURCE_FILE_NAMES_iphonesimulator = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_iphoneos) 146 BASE_EXCLUDED_SOURCE_FILE_NAMES_appletvos = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_iphoneos) 147 BASE_EXCLUDED_SOURCE_FILE_NAMES_appletvsimulator = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_iphonesimulator) 148 BASE_EXCLUDED_SOURCE_FILE_NAMES_watchos = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_iphoneos) 149 BASE_EXCLUDED_SOURCE_FILE_NAMES_watchsimulator = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_iphonesimulator) 150 BASE_EXCLUDED_SOURCE_FILE_NAMES_bridgeos = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_iphoneos) 151 BASE_EXCLUDED_SOURCE_FILE_NAMES_driverkit = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_macosx) $(BASE_EXCLUDED_SOURCE_FILE_NAMES_iphoneos) getlogin.c setlogin.c logwtmp.c utmpx.c utmpx-darwin.c daemon.c authentication.c pty.c opendev.c fparseln.c psort*.c crypt.c glob.c readpassphrase.c atexit_receipt.c debug_private.c sourcefilter.c inet*.c nsap_addr.c ascii2addr.c addr2ascii.c acl*.c filesec.c chmodx_np.c openx_np.c umaskx_np.c statx_np.c 152 153 // TODO: Remove these legacy platform names: 154 BASE_EXCLUDED_SOURCE_FILE_NAMES_iphoneosnano = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_watchos) 155 BASE_EXCLUDED_SOURCE_FILE_NAMES_iphonesimulatornano = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_watchsimulator) 156 157 // Enable installapi 158 SUPPORTS_TEXT_BASED_API = YES 159 TAPI_VERIFY_MODE = Pedantic 160 OTHER_TAPI_FLAGS = --no-infer-include-paths -umbrella System -extra-public-header $(TAPI_PUBLIC_HEADER_PATH) -extra-private-header $(TAPI_PRIVATE_HEADER_PATH) 161 TAPI_PUBLIC_HEADER_PATH = $(TAPI_PUBLIC_HEADER_PATH_$(DEPLOYMENT_LOCATION)) 162 TAPI_PUBLIC_HEADER_PATH_NO = $(BUILT_PRODUCTS_DIR)$(PUBLIC_HEADERS_FOLDER_PATH) 163 TAPI_PUBLIC_HEADER_PATH_YES = $(DSTROOT)$(PUBLIC_HEADERS_FOLDER_PATH) 164 TAPI_PRIVATE_HEADER_PATH = $(TAPI_PRIVATE_HEADER_PATH_$(DEPLOYMENT_LOCATION)) 165 TAPI_PRIVATE_HEADER_PATH_NO = $(BUILT_PRODUCTS_DIR)$(PRIVATE_HEADERS_FOLDER_PATH) 166 TAPI_PRIVATE_HEADER_PATH_YES = $(DSTROOT)$(PRIVATE_HEADERS_FOLDER_PATH) 167 TAPI_HEADER_SEARCH_PATHS = 168 169 // TODO: Remove this hack once Marzipan bringup is done 170 VARIANT_PLATFORM_NAME = $(VARIANT_PLATFORM_NAME_$(RC_MARZIPAN)) 171 VARIANT_PLATFORM_NAME_YES = macosx 172 VARIANT_PLATFORM_NAME_ = $(VARIANT_PLATFORM_NAME_$(SDK_INSTALL_VARIANT)) 173 VARIANT_PLATFORM_NAME_default = $(PLATFORM_NAME) 174 VARIANT_PLATFORM_NAME_driverkit = driverkit