build: Use an export symbols file if there is no version script support We generate the symbol list from the version script to avoid repeating ourselves and potentially getting the lists out-of-sync.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
diff --git a/src/Makefile.am b/src/Makefile.am
index b892ab8..bc1add6 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -66,6 +66,13 @@ if HAVE_LINKER_VERSION_SCRIPT
libbsd_la_LDFLAGS += \
-Wl,--version-script=$(srcdir)/libbsd.map \
# EOL
+else
+libbsd_la_LDFLAGS += \
+ -export-symbols libbsd.sym \
+ # EOL
+EXTRA_libbsd_la_DEPENDENCIES += \
+ libbsd.sym \
+ # EOL
endif
libbsd_la_SOURCES = \
arc4random.c \
@@ -136,10 +143,19 @@ CLEANFILES += \
# EOL
endif
+DISTCLEANFILES = \
+ libbsd.sym \
+ # EOL
+
libbsd_ctor_a_SOURCES = \
setproctitle_ctor.c \
# EOL
+# Generate a simple libtool symbol export list to be used as a fallback if
+# there is no version script support.
+libbsd.sym: libbsd.map
+ $(AM_V_GEN) $(SED) -ne 's/^[[:space:]]\{1,\}\([A-Za-z0-9_]\{1,\}\);/\1/p' libbsd.map > $@
+
if NEED_TRANSPARENT_LIBMD
TRANSPARENT_LIBMD_DEPENDS = format.ld