From 9a5620ba7c0f4626130b2653966140f9ec35278a Mon Sep 17 00:00:00 2001 From: Terry Burton Date: Wed, 11 Aug 2021 00:07:59 +0100 Subject: [PATCH] Makefile: Compatibility with MacOS --- src/c-lib/Makefile | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/c-lib/Makefile b/src/c-lib/Makefile index 3db6f8e..18d41e8 100644 --- a/src/c-lib/Makefile +++ b/src/c-lib/Makefile @@ -48,20 +48,32 @@ endif ifeq ($(SANITIZE),yes) CC=clang -SAN_CFLAGS = -fsanitize=address,leak,undefined$(FUZZER_SAN_OPT) -fno-omit-frame-pointer -fno-optimize-sibling-calls -O1 SAN_LDFLAGS = -fuse-ld=lld +ifneq ($(shell uname -s),Darwin) +SAN_CFLAGS = -fsanitize=address,leak,undefined$(FUZZER_SAN_OPT) -fno-omit-frame-pointer -fno-optimize-sibling-calls -O1 SAN_ENV = ASAN_OPTIONS="symbolize=1 detect_leaks=1" LSAN_OPTIONS="fast_unwind_on_malloc=0:malloc_context_size=50" ASAN_SYMBOLIZER_PATH="$(shell which llvm-symbolizer)" +else +SAN_CFLAGS = -fsanitize=address,undefined$(FUZZER_SAN_OPT) -fno-omit-frame-pointer -fno-optimize-sibling-calls -O1 +SAN_ENV = ASAN_OPTIONS="symbolize=1" LSAN_OPTIONS="fast_unwind_on_malloc=0:malloc_context_size=50" ASAN_SYMBOLIZER_PATH="$(shell which llvm-symbolizer)" +endif endif ifeq ($(SLOW_TESTS),yes) SLOW_TESTS_CFLAGS=-DSLOW_TESTS endif - -CFLAGS = -g -O2 -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wconversion -Wformat -Wformat-security -Wdeclaration-after-statement -pedantic -Werror -MMD -fPIC $(SAN_CFLAGS) $(UNIT_TEST_CFLAGS) $(DEBUG_CFLAGS) $(SLOW_TESTS_CFLAGS) -LDLIBS = -lc +ifneq ($(shell uname -s),Darwin) LDFLAGS = -Wl,--as-needed -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now $(SAN_LDFLAGS) LDFLAGS_SO = -shared -Wl,-soname,lib$(NAME).so.$(MAJOR) +CFLAGS_FORTIFY = -D_FORTIFY_SOURCE=2 +else +LDFLAGS = $(SAN_LDFLAGS) +LDFLAGS_SO = -shared -Wl,-install_name,lib$(NAME).so.$(MAJOR) +CFLAGS_FORTIFY = +endif + +LDLIBS = -lc +CFLAGS = -g -O2 $(CFLAGS_FORTIFY) -Wall -Wextra -Wconversion -Wformat -Wformat-security -Wdeclaration-after-statement -pedantic -Werror -MMD -fPIC $(SAN_CFLAGS) $(UNIT_TEST_CFLAGS) $(DEBUG_CFLAGS) $(SLOW_TESTS_CFLAGS) APP = $(BUILD_DIR)/$(NAME).bin APP_STATIC = $(BUILD_DIR)/$(NAME)-linux.bin