aboutsummaryrefslogtreecommitdiffstats
path: root/Mk/Uses
diff options
context:
space:
mode:
authortijl <tijl@FreeBSD.org>2015-08-02 23:03:19 +0800
committertijl <tijl@FreeBSD.org>2015-08-02 23:03:19 +0800
commit2593b8ce7a7784074d28066b8690c9c2da075fd7 (patch)
treeea36e7f5c3df09ecf07eacd3dfa1065817e07c56 /Mk/Uses
parentdfc31d8ad6426dcddd1e4f4718d93857c195b031 (diff)
downloadfreebsd-ports-gnome-2593b8ce7a7784074d28066b8690c9c2da075fd7.tar.gz
freebsd-ports-gnome-2593b8ce7a7784074d28066b8690c9c2da075fd7.tar.zst
freebsd-ports-gnome-2593b8ce7a7784074d28066b8690c9c2da075fd7.zip
By default libtool replaces -export-symbols <file> with -retain-symbols-file
<file> on ELF systems, but this doesn't really do what -export-symbols is meant to do. On GNU ELF systems it converts <file> to a simple version script first and then uses -version-script instead of -retain-symbols-file. Let USES=libtool patch libtool scripts to do this on all systems with GNU ld(1). Bump PORTREVISION on all ports where the build log contains -export-symbols. audio/calf: This port builds a module that now exports only one function, but it also builds a number of executables that link to this module and expect to see other functions. Because it's already a bit dodgy to link to a module (libtool warns about this) let the module continue to export only one function and instead build an ordinary library from the same source that the executables can link to. Fix a number of other issues in the same Makefile.am and clean up the port Makefile. japanese/scim-honoka: Tries to hide all symbols that start with an underscore, but because this library is written in C++ all symbols start with _Z so it ends up hiding everything. Just don't hide anything at all like the textproc/scim configure script does. multimedia/schroedinger: Apply an upstream patch. textproc/scim-input-pad: Same as japanese/scim-honoka. PR: 201922 Approved by: portmgr (antoine) Exp-run by: antoine
Diffstat (limited to 'Mk/Uses')
-rw-r--r--Mk/Uses/libtool.mk6
1 files changed, 6 insertions, 0 deletions
diff --git a/Mk/Uses/libtool.mk b/Mk/Uses/libtool.mk
index d9db2c28b113..3149cd75fa31 100644
--- a/Mk/Uses/libtool.mk
+++ b/Mk/Uses/libtool.mk
@@ -32,6 +32,12 @@ patch-libtool:
-e '/gcc_dir=\\`/s/gcc /$$CC /' \
-e '/gcc_ver=\\`/s/gcc /$$CC /' \
-e '/link_all_deplibs[0-9A-Z_]*=/s/=unknown/=no/' \
+ -e '/archive_expsym_cmds[0-9A-Z_]*=.$$CC.*-retain-/ { \
+ s/-retain-symbols-file/-version-script/; \
+ s/$$export_symbols/$$lib-ver/; \
+ s/$$CC/echo "{ global:" > $$lib-ver~ \
+ sed -e "s|$$|;|" < $$export_symbols >> $$lib-ver~ \
+ echo "local: *; };" >> $$lib-ver~&/; }' \
-e '/objformat=/s/echo aout/echo elf/' \
-e '/STRIP -V/s/"GNU strip"/"strip"/' \
-e "/freebsd-elf\\*)/,/;;/ { \