]> git.saurik.com Git - apple/libc.git/blob - xcodescripts/libc.xcconfig
Libc-1244.50.9.tar.gz
[apple/libc.git] / xcodescripts / 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 SRCROOT_SEARCH_PATHS = $(SRCROOT) $(SRCROOT)/include $(SRCROOT)/gen $(SRCROOT)/locale $(SRCROOT)/locale/FreeBSD $(SRCROOT)/stdtime/FreeBSD $(SRCROOT)/darwin
6 SYSTEM_FRAMEWORK_HEADERS = $(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
7 HEADER_SEARCH_PATHS = $($(TARGET_NAME)_SEARCH_PATHS) $(DERIVED_FILES_DIR)/dtrace $(SRCROOT_SEARCH_PATHS) $(SYSTEM_FRAMEWORK_HEADERS) $(SDKROOT)/usr/local/include $(inherited)
8 ALWAYS_SEARCH_USER_PATHS = YES
9 USE_HEADERMAP = NO
10 BUILD_VARIANTS = normal
11 GCC_OPTIMIZATION_LEVEL = s
12 GCC_C_LANGUAGE_STANDARD = gnu99
13 GCC_ENABLE_OBJC_EXCEPTIONS = YES
14 GCC_SYMBOLS_PRIVATE_EXTERN = NO
15 GCC_DYNAMIC_NO_PIC = NO
16 GCC_THUMB_SUPPORT = YES
17 GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
18
19 //CLANG_WARN_INT_CONVERSION = YES
20 //CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES
21 //GCC_WARN_64_TO_32_BIT_CONVERSION = YES
22 //GCC_WARN_SHADOW = YES
23 GCC_WARN_UNINITIALIZED_AUTOS = YES;
24 GCC_WARN_UNUSED_VARIABLE = YES;
25 GCC_WARN_ABOUT_RETURN_TYPE = YES;
26 //WARNING_CFLAGS = -Wall -Wextra
27 WARNING_CFLAGS = -Wall -Werror -Wno-error=shorten-64-to-32 -Wno-error=incompatible-pointer-types-discards-qualifiers -Wno-nullability-completeness
28
29 COPY_PHASE_STRIP = NO
30 SKIP_INSTALL = YES
31 INSTALLHDRS_SCRIPT_PHASE = YES
32 VERSIONING_SYSTEM =
33 COPY_PHASE_STRIP = NO
34 STRIP_INSTALLED_PRODUCT = NO
35 LD_DYLIB_INSTALL_NAME = /usr/lib/system/$(EXECUTABLE_NAME)
36
37 BUILD_VARIANTS = normal debug
38 BUILD_ARCHIVES = Platform Base FreeBSD NetBSD TRE vCancelable vDarwinExtsn vDarwinExtsnCancelable vPre1050 vLegacy vInode32 FortifySource
39
40 // clang is desired over llvm-gcc for OSAtomics. However, it isn't capable of building armv6 correctly.
41 GCC_VERSION = com.apple.compilers.llvm.clang.1_0
42 GCC_VERSION[arch=armv6] = com.apple.compilers.llvmgcc42
43
44 EXECUTABLE_PREFIX = libsystem_
45 INSTALL_PATH = /usr/lib/system
46 PUBLIC_HEADERS_FOLDER_PATH = /usr/include
47 PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include
48
49 DARWIN_PUBLIC_HEADERS_FOLDER_PATH = /usr/include/os
50 DARWIN_PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include/os
51
52 // Simulator
53 BASE_PREPROCESSOR_MACROS = __LIBC__ __DARWIN_UNIX03=1 __DARWIN_64_BIT_INO_T=1 __DARWIN_NON_CANCELABLE=1 __DARWIN_VERS_1050=1 _FORTIFY_SOURCE=0
54 OTHER_CFLAGS = -fdollars-in-identifiers -fno-common -fverbose-asm $($(TARGET_NAME)_CFLAGS) $(VARIANT_PREPROCESSOR_MACROS)
55 OTHER_CFLAGS_debug = -fstack-protector -fno-inline -O0 -DDEBUG=1
56 SIM_SUFFIX[sdk=*simulator*] = _sim
57
58 GCC_PREPROCESSOR_DEFINITIONS = $(BASE_PREPROCESSOR_MACROS)
59
60 // libsystem_c.dylib linking
61 CR_LDFLAGS = -lCrashReporterClient
62 LIBCOMPILER_RT_LDFLAGS = -lcompiler_rt
63 LIBMALLOC_LDFLAGS = -lsystem_malloc
64 LIBC_LDFLAGS = -lsystem_c
65 LIBDISPATCH_LDFLAGS = -ldispatch
66 LIBXPC_LDFLAGS = -lxpc
67 LIBPLATFORM_LDFLAGS = -lsystem$(SIM_SUFFIX)_platform
68 LIBPTHREAD_LDFLAGS = -lsystem$(SIM_SUFFIX)_pthread
69 LIBSYSCALL_LDFLAGS = -lsystem$(SIM_SUFFIX)_kernel
70 LIBM_LDFLAGS = -lsystem_m
71 LIBDYLD_LDFLAGS = -ldyld
72 LIBSYSTEM_C_LDFLAGS = -all_load -nostdlib -L/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 -Wl,-sectalign,__DATA,__data,1000 @$(BUILT_PRODUCTS_DIR)/$(CURRENT_VARIANT).linklist
73 LIBSYSTEM_C_EXTRA_LDFLAGS_i386 = -Wl,-alias_list,$(SRCROOT)/xcodescripts/legacy_alias.list
74
75 // TODO: Remove upward links - mostly <rdar://problem/13183469>, macho is for assumes.c
76 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
77
78 LIBSYSTEM_DARWIN_LDFLAGS = -all_load -nostdlib -L/usr/lib/system -umbrella System $(LIBCOMPILER_RT_LDFLAGS) $(LIBDYLD_LDFLAGS) $(LIBSYSCALL_LDFLAGS) $(LIBM_LDFLAGS) $(LIBMALLOC_LDFLAGS) $(LIBPLATFORM_LDFLAGS) $(LIBPTHREAD_LDFLAGS) $(LIBPLATFORM_LDFLAGS) $(LIBC_LDFLAGS) $(LIBDISPATCH_LDFLAGS) $(LIBXPC_LDFLAGS)
79
80 // libPlatform.a architectures
81 ARCH_FAMILY = $(ARCH_FAMILY_$(CURRENT_ARCH))
82 ARCH_FAMILY_x86_64 = x86_64
83 ARCH_FAMILY_i386 = i386
84 ARCH_FAMILY_armv6 = arm
85 ARCH_FAMILY_armv7 = arm
86 ARCH_FAMILY_armv7s = arm
87 ARCH_FAMILY_armv7f = arm
88 ARCH_FAMILY_armv7k = arm
89 ARCH_FAMILY_arm64 = arm64
90 ARCH_FAMILY_arm64_32 = arm64
91
92 // Platform target
93 Platform_INCLUDED_SOURCE_FILE_NAMES = $(Platform_INCLUDED_SOURCE_FILE_NAMES_gen) $(Platform_INCLUDED_SOURCE_FILE_NAMES_stdlib) $(Platform_INCLUDED_SOURCE_FILE_NAMES_string)
94 Platform_INCLUDED_SOURCE_FILE_NAMES_gen = $(ARCH_FAMILY)/gen/*.c $(ARCH_FAMILY)/gen/*.s $(ARCH_FAMILY)/gen/*.S
95 Platform_INCLUDED_SOURCE_FILE_NAMES_stdlib = $(ARCH_FAMILY)/stdlib/*.c $(ARCH_FAMILY)/stdlib/*.s $(ARCH_FAMILY)/stdlib/*.S
96 Platform_INCLUDED_SOURCE_FILE_NAMES_string = $(ARCH_FAMILY)/string/*.c $(ARCH_FAMILY)/string/*.s $(ARCH_FAMILY)/string/*.S
97
98 // FreeBSD target
99 FreeBSD_CFLAGS = -include $(SRCROOT)/fbsdcompat/_fbsd_compat_.h
100 FreeBSD_SEARCH_PATHS = $(SRCROOT)/fbsdcompat $(SRCROOT)/gdtoa $(SRCROOT)/gdtoa/FreeBSD
101 FreeBSD_EXCLUDED_SOURCE_GDTOA = gdtoa/FreeBSD/machdep* gdtoa-strtopx.c
102 // Include the correct parts of gdtoa per-arch
103 FreeBSD_INCLUDED_SOURCE_FILE_NAMES_x86_64 = gdtoa-strtopx.c machdep_ldisx.c
104 FreeBSD_INCLUDED_SOURCE_FILE_NAMES_i386 = $(FreeBSD_INCLUDED_SOURCE_FILE_NAMES_x86_64)
105 FreeBSD_INCLUDED_SOURCE_FILE_NAMES_armv7 = machdep_ldisd.c
106 FreeBSD_INCLUDED_SOURCE_FILE_NAMES_armv7s = $(FreeBSD_INCLUDED_SOURCE_FILE_NAMES_armv7)
107 FreeBSD_INCLUDED_SOURCE_FILE_NAMES_armv7k = $(FreeBSD_INCLUDED_SOURCE_FILE_NAMES_armv7)
108 FreeBSD_INCLUDED_SOURCE_FILE_NAMES_armv7f = $(FreeBSD_INCLUDED_SOURCE_FILE_NAMES_armv7)
109 FreeBSD_INCLUDED_SOURCE_FILE_NAMES_armv6 = $(FreeBSD_INCLUDED_SOURCE_FILE_NAMES_armv7)
110 FreeBSD_INCLUDED_SOURCE_FILE_NAMES_arm64 = $(FreeBSD_INCLUDED_SOURCE_FILE_NAMES_armv7)
111 FreeBSD_INCLUDED_SOURCE_FILE_NAMES_arm64_32 = $(FreeBSD_INCLUDED_SOURCE_FILE_NAMES_armv7)
112 FreeBSD_INCLUDED_SOURCE_FILE_NAMES_arm64e = $(FreeBSD_INCLUDED_SOURCE_FILE_NAMES_armv7)
113
114 // NetBSD target
115 NetBSD_CFLAGS = -include $(SRCROOT)/nbsdcompat/_nbsd_compat_.h
116 NetBSD_SEARCH_PATHS = $(SRCROOT)/nbsdcompat
117
118 // TRE target
119 TRE_CFLAGS = -DHAVE_CONFIG_H
120 TRE_SEARCH_PATHS = $(SRCROOT)/regex/TRE $(SRCROOT)/regex/FreeBSD
121
122 // Files per architecture to exclude from the non-platform builds (because optimised versions exist in Platform)
123 BASE_EXCLUDED_SOURCE_FILE_NAMES = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_$(CURRENT_ARCH)) $(BASE_EXCLUDED_SOURCE_FILE_NAMES_$(PLATFORM_NAME))
124 BASE_EXCLUDED_SOURCE_FILE_NAMES_x86_64 = kvm.c nlist.c strcpy.c strlen.c strncpy.c strnlen.c
125 BASE_EXCLUDED_SOURCE_FILE_NAMES_i386 = strcpy.c strlcat.c strlcpy.c strlen.c strncpy.c
126 BASE_EXCLUDED_SOURCE_FILE_NAMES_armv7 = strlen.c strnlen.c strstr.c
127 BASE_EXCLUDED_SOURCE_FILE_NAMES_armv7s = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_armv7)
128 BASE_EXCLUDED_SOURCE_FILE_NAMES_armv7k = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_armv7)
129 BASE_EXCLUDED_SOURCE_FILE_NAMES_armv7f = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_armv7)
130 BASE_EXCLUDED_SOURCE_FILE_NAMES_armv6 = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_armv7)
131 BASE_EXCLUDED_SOURCE_FILE_NAMES_arm64 = strlen.c strnlen.c kvm.c nlist.c
132 BASE_EXCLUDED_SOURCE_FILE_NAMES_arm64_32 = strlen.c strnlen.c kvm.c nlist.c
133 BASE_EXCLUDED_SOURCE_FILE_NAMES_arm64e = strlen.c strnlen.c kvm.c nlist.c
134
135 // Rune support isn't included on iOS but there's no better way to exclude their complication
136 BASE_EXCLUDED_SOURCE_FILE_NAMES_macosx = OSMemoryNotification.c
137 BASE_EXCLUDED_SOURCE_FILE_NAMES_iphoneos = frune.c login.c logout.c mbrune.c runedepreciated.c setinvalidrune.c getmntinfo64.c
138 BASE_EXCLUDED_SOURCE_FILE_NAMES_iphonesimulator = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_iphoneos)
139 BASE_EXCLUDED_SOURCE_FILE_NAMES_appletvos = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_iphoneos)
140 BASE_EXCLUDED_SOURCE_FILE_NAMES_appletvsimulator = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_iphonesimulator)
141 BASE_EXCLUDED_SOURCE_FILE_NAMES_watchos = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_iphoneos)
142 BASE_EXCLUDED_SOURCE_FILE_NAMES_watchsimulator = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_iphonesimulator)
143 BASE_EXCLUDED_SOURCE_FILE_NAMES_bridgeos = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_iphoneos)
144
145 // TODO: Remove these legacy platform names:
146 BASE_EXCLUDED_SOURCE_FILE_NAMES_iphoneosnano = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_watchos)
147 BASE_EXCLUDED_SOURCE_FILE_NAMES_iphonesimulatornano = $(BASE_EXCLUDED_SOURCE_FILE_NAMES_watchsimulator)
148
149 // <rdar://problem/9513665> - collate.c crashes llvm-gcc on armv6 with -Os + -gdwarf-2
150 COLLATE_C_CFLAGS_macosx_armv6 = -O1
151
152 // ARMv6 thumb doesn't support all the instructions needed for OSAtomics
153 OSATOMIC_C_CFLAGS_macosx_armv6 = -mno-thumb
154 OSATOMIC_C_CFLAGS_iphoneos_armv6 = -mno-thumb
155
156 // Make sure that OSAtomic isn't build unoptimised, otherwise the inlines
157 // don't do what they are designed to do.
158 OSATOMIC_C_CFLAGS = -Os -momit-leaf-frame-pointer $(OSATOMIC_C_CFLAGS_$(PLATFORM_NAME)_$(CURRENT_ARCH))