darling-libpthread/tests/Makefile
2022-11-20 19:57:28 -08:00

131 lines
4.7 KiB
Makefile

PROJECT := libpthread
TEST_DIR := tests/
ENABLE_LTE_TESTS=YES
ifeq ($(DEVELOPER_DIR),)
DEVELOPER_DIR := $(shell xcode-select -p)
endif
include $(DEVELOPER_DIR)/AppleInternal/Makefiles/darwintest/Makefile.common
TARGETS :=
TARGETS += atfork
TARGETS += bsdthread_set_self
TARGETS += stack
TARGETS += stack_size
TARGETS += cond
#TARGETS += cond_hang3
#TARGETS += cond_stress
TARGETS += cond_timed
TARGETS += cond_prepost
TARGETS += custom_stack
TARGETS += stack_aslr
TARGETS += join
TARGETS += main_stack
TARGETS += main_stack_custom
TARGETS += detach
#TARGETS += maxwidth
TARGETS += mutex
TARGETS += mutex_prepost
TARGETS += mutex_try
TARGETS += once_cancel
TARGETS += pthread_attr_setstacksize
TARGETS += pthread_bulk_create
TARGETS += pthread_cancel
TARGETS += pthread_create_from_mach_thread
TARGETS += pthread_cwd
TARGETS += pthread_exit
TARGETS += pthread_introspection
TARGETS += pthread_setspecific
TARGETS += pthread_threadid_np
TARGETS += pthread_get_qos_class_np
TARGETS += pthread_dependency
#TARGETS += qos
TARGETS += rdar_32848402
#TARGETS += rwlock-22244050
#TARGETS += rwlock-signal
#TARGETS += rwlock
TARGETS += tsd
TARGETS += setrlimit_sigsegv
#TARGETS += wq_block_handoff
#TARGETS += wq_event_manager
#TARGETS += wq_kevent
#TARGETS += wq_kevent_stress
TARGETS += wq_limits
TARGETS += add_timer_termination
TARGETS += perf_contended_mutex_rwlock
ifeq ($(PLATFORM),MacOSX)
TARGETS += pthread_jit_write_protection
pthread_jit_write_protection: CODE_SIGN_ENTITLEMENTS=pthread_jit_write_protection-entitlements.plist
OTHER_TEST_TARGETS = pthread_jit_write_with_callback
pthread_jit_write_with_callback: pthread_jit_write_with_callback.c libpthreadjittest.notdylib
$(CC) $(DT_CFLAGS) $(OTHER_CFLAGS) $(CFLAGS) \
$(DT_LDFLAGS) $(OTHER_LDFLAGS) $(LDFLAGS) \
pthread_jit_write_with_callback.c $(SYMROOT)/assets/libpthreadjittest.notdylib \
-rpath @executable_path/assets \
-o $(SYMROOT)/$@
env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements pthread_jit_write_with_callback-entitlements.plist $(SYMROOT)/$@
endif
# this should be CUSTOM_TARGETS, see "Compatibility defines" in Makefile.targets
OTHER_TARGETS := stackoverflow_crash
ifeq ($(PLATFORM),MacOSX)
OTHER_TARGETS += pthread_jit_write_with_callback_tool libpthreadjittest.notdylib
endif
OTHER_LTE_INCLUDE_FILES += \
/usr/local/lib/libdarwintest_utils.dylib
OTHER_CFLAGS := -DDARWINTEST -Weverything \
-Wno-vla -Wno-bad-function-cast -Wno-missing-noreturn \
-Wno-missing-field-initializers -Wno-format-pedantic \
-Wno-gnu-folding-constant -Wno-used-but-marked-unused \
-Wno-padded
OTHER_LDFLAGS := -ldarwintest_utils
#TARGETS += main_stack_legacy // Disabled by default due to linker warnings
#main_stack_legacy: OTHER_LDFLAGS += -Wl,-stack_addr,0xc1000000 -Wl,-stack_size,0x0f00000
#main_stack_legacy: OTHER_CFLAGS += -DSTACKSIZE=0x0f00000
#main_stack_legacy: ARCH_FLAGS = -arch i386
#main_stack_legacy: DEPLOYMENT_TARGET_FLAGS = -mmacosx-version-min=10.7
main_stack_custom: OTHER_LDFLAGS += -Wl,-stack_size,0x124000
main_stack_custom: OTHER_CFLAGS += -DSTACKSIZE=0x124000
bsdthread_set_self: OTHER_CFLAGS += -D_DARWIN_FEATURE_CLOCK_GETTIME
include $(DEVELOPER_DIR)/AppleInternal/Makefiles/darwintest/Makefile.targets
stackoverflow_crash: helpers/stackoverflow_crash.c
mkdir -p $(SYMROOT)/assets/
$(CC) -o $(SYMROOT)/assets/$@ $(CFLAGS) -D_POSIX_C_SOURCE=1 $(OTHER_CFLAGS) $(LDFLAGS) $(OTHER_LDFLAGS) $<
env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none $(SYMROOT)/assets/$@
install-stackoverflow_crash: stackoverflow_crash
mkdir -p $(INSTALLDIR)/assets
@cp $(SYMROOT)/assets/stackoverflow_crash $(INSTALLDIR)/assets
ifeq ($(PLATFORM),MacOSX)
pthread_jit_write_with_callback_tool: helpers/pthread_jit_write_with_callback_tool.c
mkdir -p $(SYMROOT)/assets/
$(CC) -o $(SYMROOT)/assets/$@ $(CFLAGS) $(OTHER_CFLAGS) $(LDFLAGS) $(OTHER_LDFLAGS) $<
env CODESIGN_ALLOCATE=$(CODESIGN_ALLOCATE) $(CODESIGN) --force --sign - --timestamp=none --entitlements pthread_jit_write_with_callback-entitlements.plist $(SYMROOT)/assets/pthread_jit_write_with_callback_tool
install-pthread_jit_write_with_callback_tool: pthread_jit_write_with_callback_tool
mkdir -p $(INSTALLDIR)/assets
@cp $(SYMROOT)/assets/pthread_jit_write_with_callback_tool $(INSTALLDIR)/assets
# .notdylib to dodge verifiers :)
libpthreadjittest.notdylib: helpers/libpthreadjittest.c
mkdir -p $(SYMROOT)/assets/
$(CC) -o $(SYMROOT)/assets/$@ -dynamiclib $(CFLAGS) $(OTHER_CFLAGS) $(LDFLAGS) $(OTHER_LDFLAGS) -install_name @rpath/libpthreadjittest.notdylib $<
install-libpthreadjittest.notdylib: libpthreadjittest.notdylib
mkdir -p $(INSTALLDIR)/assets
@cp $(SYMROOT)/assets/libpthreadjittest.notdylib $(INSTALLDIR)/assets
endif