Loading...
xcodeconfig/libmalloc.xcconfig libmalloc-374.120.1 libmalloc-474.0.13
--- libmalloc/libmalloc-374.120.1/xcodeconfig/libmalloc.xcconfig
+++ libmalloc/libmalloc-474.0.13/xcodeconfig/libmalloc.xcconfig
@@ -1,16 +1,11 @@
 #include "<DEVELOPER_DIR>/Makefiles/CoreOS/Xcode/BSD.xcconfig"
 
 SDKROOT = macosx.internal
-SUPPORTED_PLATFORMS = macosx iphoneos iphonesimulator appletvos appletvsimulator watchos watchsimulator
+SUPPORTED_PLATFORMS = macosx iphoneos iphonesimulator appletvos appletvsimulator watchos watchsimulator driverkit
 BUILD_VARIANTS = normal debug
 
-SDK_INSTALL_VARIANT = $(SDK_INSTALL_VARIANT_$(DRIVERKIT))
-SDK_INSTALL_VARIANT_1 = driverkit
-SDK_INSTALL_VARIANT_ = default
-SDK_INSTALL_ROOT = $(SDK_INSTALL_ROOT_$(SDK_INSTALL_VARIANT))
-SDK_INSTALL_ROOT_driverkit = $(DRIVERKITROOT)
-SDK_INSTALL_HEADERS_ROOT = $(SDK_INSTALL_HEADERS_ROOT_$(SDK_INSTALL_VARIANT))
-SDK_INSTALL_HEADERS_ROOT_driverkit = $(SDK_INSTALL_ROOT)/$(SDK_RUNTIME_HEADERS_PREFIX)
+SDK_INSTALL_ROOT[sdk=driverkit*] = $(DRIVERKITROOT)
+SDK_INSTALL_HEADERS_ROOT[sdk=driverkit*] = $(SDK_INSTALL_ROOT)/$(SDK_RUNTIME_HEADERS_PREFIX)
 SDK_RUNTIME_HEADERS_PREFIX = Runtime
 
 PRODUCT_NAME = libsystem_malloc
@@ -21,20 +16,27 @@
 
 SYSTEM_FRAMEWORK_HEADERS = $(SDKROOT)/$(SDK_INSTALL_HEADERS_ROOT)/System/Library/Frameworks/System.framework/PrivateHeaders
 HEADER_SEARCH_PATHS = $(DERIVED_FILES_DIR)/dtrace $(SRCROOT)/include $(SRCROOT)/private $(SRCROOT)/resolver $(inherited)
-SYSTEM_HEADER_SEARCH_PATHS = $(SYSTEM_FRAMEWORK_HEADERS) $(SDKROOT)/$(SDK_INSTALL_HEADERS_ROOT)/usr/local/include $(SDKROOT)/$(SDK_INSTALL_HEADERS_ROOT)/usr/include
-SYSTEM_FRAMEWORK_SEARCH_PATHS = $(SDKROOT)/$(SDK_INSTALL_HEADERS_ROOT)/System/Library/Frameworks
+SYSTEM_HEADER_SEARCH_PATHS = $(SYSTEM_FRAMEWORK_HEADERS)
+SYSTEM_HEADER_SEARCH_PATHS[sdk=driverkit*] = $(SYSTEM_FRAMEWORK_HEADERS) $(SDKROOT)/$(SDK_INSTALL_HEADERS_ROOT)/usr/local/include $(SDKROOT)/$(SDK_INSTALL_HEADERS_ROOT)/usr/include
+SYSTEM_FRAMEWORK_SEARCH_PATHS[sdk=driverkit*] = $(SDKROOT)/$(SDK_INSTALL_HEADERS_ROOT)/System/Library/Frameworks
 
-GCC_PREPROCESSOR_DEFINITIONS = _FORTIFY_SOURCE=0 NDEBUG $(OSATOMIC_PREPROCESSOR_DEFINITIONS) $(PLATFORM_PREPROCESSOR_DEFINITIONS)
+GCC_PREPROCESSOR_DEFINITIONS = _FORTIFY_SOURCE=0 $(DEBUG_PREPROCESSOR_DEFINITIONS) $(OSATOMIC_PREPROCESSOR_DEFINITIONS) $(PLATFORM_PREPROCESSOR_DEFINITIONS) $(DRIVERKIT_PREPROCESSOR_DEFINITIONS)
 OSATOMIC_PREPROCESSOR_DEFINITIONS = OSATOMIC_USE_INLINED=1 OS_UNFAIR_LOCK_INLINE=1
 OSATOMIC_PREPROCESSOR_DEFINITIONS_NOINLINE = OSATOMIC_DEPRECATED=0 OSATOMIC_USE_INLINED=0 OS_UNFAIR_LOCK_INLINE=0
+DRIVERKIT_PREPROCESSOR_DEFINITIONS = MALLOC_TARGET_DK_OSX=0
+DRIVERKIT_PREPROCESSOR_DEFINITIONS[sdk=driverkit.macosx*] = MALLOC_TARGET_DK_OSX=1
+DEBUG_PREPROCESSOR_DEFINITIONS = NDEBUG
+DEBUG_PREPROCESSOR_DEFINITIONS[config=Debug] = DEBUG
 
 GCC_NO_COMMON_BLOCKS = YES
 ENABLE_STRICT_OBJC_MSGSEND = YES
 
 // TODO: Add -fno-stack-protector when uplink to Libc is removed
-OTHER_CFLAGS = $(PLATFORM_CFLAGS)
+OTHER_CFLAGS = $(PLATFORM_CFLAGS) -fno-typed-memory-operations
 OTHER_CFLAGS_normal = -momit-leaf-frame-pointer
 OTHER_CFLAGS_debug = -fstack-protector -fno-inline -O0 -DDEBUG=1 -UNDEBUG
+
+GCC_OPTIMIZATION_LEVEL[config=Debug] = 0
 
 GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES
 //GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES
@@ -47,6 +49,7 @@
 GCC_WARN_ABOUT_RETURN_TYPE = YES
 GCC_WARN_UNDECLARED_SELECTOR = YES
 GCC_WARN_UNINITIALIZED_AUTOS = YES
+GCC_TREAT_WARNINGS_AS_ERRORS = YES
 CLANG_WARN_BOOL_CONVERSION = YES
 CLANG_WARN_CONSTANT_CONVERSION = YES
 CLANG_WARN_EMPTY_BODY = YES
@@ -58,7 +61,7 @@
 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
 
 // clang doesn't understand the simple_printf %y specifier
-WARNING_CFLAGS = -Wno-format-invalid-specifier -Wno-format-extra-args -Watomic-implicit-seq-cst
+WARNING_CFLAGS = -Wno-format-invalid-specifier -Wno-format-extra-args -Watomic-implicit-seq-cst -Wundef
 
 LLVM_LTO = LLVM_LTO_$(CURRENT_VARIANT)
 LLVM_LTO_normal = YES
@@ -85,7 +88,9 @@
 EXCLUDED_SOURCE_FILE_NAMES = $(LIBFEATUREFLAGS_EXCLUDES)
 
 // TODO: Eliminate the crosslink between libmalloc and Libc (13046853)
-UPLINK_LDFLAGS = -Wl,-upward-lsystem_c
+// The blocks runtime is safe for use only in the context of introspection
+// logic, which isn't really in the same layer as the rest of libmalloc
+UPLINK_LDFLAGS = -Wl,-upward-lsystem_c -Wl,-upward-lsystem_blocks
 
 INTERPOSE_LDFLAGS = -Wl,-interposable_list,$(SRCROOT)/xcodeconfig/interposable.list
 
@@ -95,3 +100,4 @@
 SUPPORTS_TEXT_BASED_API = YES
 TAPI_VERIFY_MODE = Pedantic
 OTHER_TAPI_FLAGS = -umbrella System -extra-private-header $(SRCROOT)/private/make_tapi_happy.h -extra-private-header $(SRCROOT)/src/frozen_malloc.h -extra-private-header $(SRCROOT)/private/stack_logging.h -extra-private-header $(SRCROOT)/private/malloc_implementation.h
+