From 3016281b9fbbde126e9079037889dae22fe829ef Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vladimir.cunat@nic.cz>
Date: Tue, 30 Jan 2018 11:19:17 +0100
Subject: [PATCH] make: fixup passing export-dynamic flags

It was breaking on Darwin, and clang was throwing warnings.
Problem since ddb699d364.
---
 config.mk   | 5 -----
 platform.mk | 9 +++++++--
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/config.mk b/config.mk
index 8cb4b3ad4..9a7f08d66 100644
--- a/config.mk
+++ b/config.mk
@@ -40,11 +40,6 @@ BUILD_CFLAGS += -I$(abspath .) -I$(abspath lib/generic) -I$(abspath contrib)
 BUILD_CFLAGS += -DPACKAGE_VERSION="\"$(VERSION)\"" -DPREFIX="\"$(PREFIX)\"" -DMODULEDIR="\"$(MODULEDIR)\""
 BUILD_CFLAGS += -fvisibility=hidden
 
-# Otherwise Fedora is making kresd symbols inaccessible for modules
-# TODO: clang needs different flag name, etc.
-BUILD_CFLAGS += -rdynamic
-BUILD_LDFLAGS += -export-dynamic
-
 ifeq (,$(findstring -O,$(CFLAGS)))
 	BUILD_CFLAGS += -O2
 endif
diff --git a/platform.mk b/platform.mk
index f2657ed15..d42c66e4c 100644
--- a/platform.mk
+++ b/platform.mk
@@ -36,6 +36,7 @@ else
 		PLATFORM := Darwin
 		LIBEXT := .dylib
 		MODTYPE := dynamiclib
+		LDFLAGS += -Wl,-export_dynamic
                 # OS X specific hardening since -pie doesn't work
 		ifneq ($(HARDENING),no)
 			BINFLAGS += -Wl,-pie
@@ -45,14 +46,18 @@ else
 		SOVER = $(if $(1), -compatibility_version $(2) -current_version $(1),)
 	else
 		PLATFORM := POSIX
-		LDFLAGS += -pthread -lm -Wl,-E
+		LDFLAGS += -pthread -lm -Wl,--export-dynamic
                 # ELF hardening options
 		ifneq ($(HARDENING),no)
 			BINFLAGS += -pie
 			LDFLAGS += -Wl,-z,relro,-z,now
 		endif
 		ifeq ($(UNAME),Linux)
-		LDFLAGS += -ldl
+			LDFLAGS += -ldl
+		endif
+		ifeq ($(firstword $(shell $(CC) --version)),gcc)
+			# Otherwise Fedora is making kresd symbols inaccessible for modules?
+			CFLAGS += -rdynamic
 		endif
 	endif
 endif
-- 
GitLab