kext.xcconfig   [plain text]


// pthread kext build options

SDKROOT = macosx.internal
SUPPORTED_PLATFORMS = macosx iphoneos appletvos watchos
BUILD_VARIANTS = normal development kasan

PTHREAD_VARIANT_ = $(CURRENT_VARIANT)
PTHREAD_VARIANT_YES = development
PTHREAD_VARIANT = $(PTHREAD_VARIANT_$(DEBUG))

VALID_ARCHS[sdk=macosx*] = $(NATIVE_ARCH_ACTUAL)
ARCHS = $(ARCHS_STANDARD_32_64_BIT)

INSTALL_PATH = $(SYSTEM_LIBRARY_DIR)/Extensions
PRODUCT_NAME = pthread
WRAPPER_EXTENSION = kext
MODULE_NAME = com.apple.kec.pthread
MODULE_START = pthread_start
MODULE_STOP = pthread_stop
MODULE_VERSION = 1.0.0d1
PRODUCT_BUNDLE_IDENTIFIER = ${MODULE_NAME}
INFOPLIST_FILE = kern/pthread-Info.plist

ALWAYS_SEARCH_USER_PATHS = NO
SRCROOT_SEARCH_PATHS = $(SRCROOT)/private $(SRCROOT)/include $(SRCROOT)
HEADER_SEARCH_PATHS = $(SDKROOT)/System/Library/Frameworks/Kernel.framework/PrivateHeaders $(SDKROOT)/System/Library/Frameworks/Kernel.framework/Headers $(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders $(SDKROOT)/System/Library/Frameworks/System.framework/Headers $(SRCROOT_SEARCH_PATHS)
GCC_C_LANGUAGE_STANDARD = gnu11
CLANG_CXX_LANGUAGE_STANDARD = gnu++0x
CLANG_CXX_LIBRARY = libc++
GCC_PRECOMPILE_PREFIX_HEADER = YES
CODE_SIGN_IDENTITY = -
DEBUG_INFORMATION_FORMAT = dwarf-with-dsym

GCC_OPTIMIZATION_LEVEL_normal = s
GCC_OPTIMIZATION_LEVEL_development = s
GCC_OPTIMIZATION_LEVEL = $(GCC_OPTIMIZATION_LEVEL_$(PTHREAD_VARIANT))

DEAD_CODE_STRIPPING = NO
LLVM_LTO_normal = YES
LLVM_LTO_development = NO
LLVM_LTO_kasan = NO
LLVM_LTO = $(LLVM_LTO_$(PTHREAD_VARIANT))

GCC_PREPROCESSOR_DEFINITIONS_kext = XNU_KERNEL_PRIVATE MACH_KERNEL_PRIVATE ABSOLUTETIME_SCALAR_TYPE NEEDS_SCHED_CALL_T __PTHREAD_EXPOSE_INTERNALS__
GCC_PREPROCESSOR_DEFINITIONS_kext_development = MACH_ASSERT DEBUG
GCC_PREPROCESSOR_DEFINITIONS = $(GCC_PREPROCESSOR_DEFINITIONS_kext) $(GCC_PREPROCESSOR_DEFINITIONS_kext_$(PTHREAD_VARIANT))

OTHER_CFLAGS_kasan = -DKASAN=1 -fsanitize=address -mllvm -asan-globals-live-support -mllvm -asan-force-dynamic-shadow -fno-inline

GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES
GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES

// Warnings
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
CLANG_WARN_EMPTY_BODY = YES
GCC_WARN_64_TO_32_BIT_CONVERSION = YES
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES
GCC_WARN_ABOUT_MISSING_NEWLINE = YES
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES
GCC_WARN_ABOUT_RETURN_TYPE = YES
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES
GCC_WARN_SHADOW = YES
GCC_WARN_SIGN_COMPARE = YES
GCC_WARN_UNINITIALIZED_AUTOS = YES
GCC_WARN_UNUSED_FUNCTION = YES
GCC_WARN_UNUSED_LABEL = YES
GCC_WARN_UNUSED_PARAMETER = YES
GCC_WARN_UNUSED_VARIABLE = YES