Apply patches from Lubomir Sedlacik <salo@Xtrmntr.org> in PR 18115 to

generalise the linker flags used to export symbols by setting them on
a per-OS basis.

> many packages force -Wl,-export-dynamic which is not portable outside GNU ld
> and cause problems e.g. on Solaris.  some of these packages use if
> conditionals either only for NetBSD or except SunOS, but the state is not
> coherent and it may complicate later when support for new OS is added to
> pkgsrc (e.g. ongoing work on HP-UX support).
>
> jlam proposed the following framework in discussion on tech-pkg:
>
>   http://mail-index.netbsd.org/tech-pkg/2002/06/21/0009.html
>
> now, ${EXPORT_SYMBOLS_LDFLAGS} is used instead of directly defining
> -Wl,-export-dynamic which is set in appropriate defs.*.mk to reasonable
> values.  packages should be converted to this framework by:
>
> 1) replacing LDFLAGS+= -Wl,-export-dynamic and LIBS+= -export-dynamic with:
>
>    LDFLAGS+= ${EXPORT_SYMBOLS_LDFLAGS}
>
> 2) for use in patchfiles, add this variable to MAKE_ENV if needed:
>
>    MAKE_ENV+= EXPORT_SYMBOLS_LDFLAGS=${EXPORT_SYMBOLS_LDFLAGS}
>
> 3) replace occurances of -Wl,-export-dynamic and -export-dynamic in patch
>    files with:
>
>    $(EXPORT_SYMBOLS_LDFLAGS)
This commit is contained in:
agc 2002-09-04 14:47:32 +00:00
parent e3796adbcd
commit cb0e38446b
21 changed files with 68 additions and 82 deletions

View file

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.7 2002/08/28 07:15:25 skrll Exp $
# $NetBSD: Makefile,v 1.8 2002/09/04 14:47:35 agc Exp $
DISTNAME= arts-1.0.3
CATEGORIES= audio
@ -14,11 +14,8 @@ LIBTOOL_OVERRIDE+= ${WRKSRC}/libltdl/libtool
USE_PERL5= build
.include "../../mk/bsd.prefs.mk"
.if ${OPSYS} == "NetBSD"
LIBS+= -Wl,--export-dynamic
.endif
# Ensure we export symbols in the linked shared object.
LDFLAGS+= ${EXPORT_SYMBOLS_LDFLAGS}
.include "../../audio/libaudiofile/buildlink.mk"
.include "../../x11/kde3/buildlink.mk"

View file

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.12 2002/08/01 05:48:04 jlam Exp $
# $NetBSD: Makefile,v 1.13 2002/09/04 14:47:35 agc Exp $
DISTNAME= kdemultimedia-2.2.2
PKGREVISION= 1
@ -15,11 +15,8 @@ PTHREAD_OPTS+= require
CONFIGURE_ENV+= ac_cv_path_kde_artsplug_compiles="${ARTSCCONFIG}"
.include "../../mk/bsd.prefs.mk"
.if ${OPSYS} == "NetBSD"
LIBS= -Wl,--export-dynamic
.endif
# Ensure we export symbols in the linked shared object.
LDFLAGS+= ${EXPORT_SYMBOLS_LDFLAGS}
.include "../../x11/kde2/buildlink.mk"
.include "../../x11/kdebase2/buildlink.mk"

View file

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.4 2002/08/28 07:15:26 skrll Exp $
# $NetBSD: Makefile,v 1.5 2002/09/04 14:47:35 agc Exp $
DISTNAME= kdemultimedia-3.0.3
CATEGORIES= audio
@ -10,11 +10,8 @@ DEPENDS+= xanim>=2.80.0:../../graphics/xanim
USE_BUILDLINK_ONLY= YES
.include "../../mk/bsd.prefs.mk"
.if ${OPSYS} == "NetBSD"
LIBS= -Wl,--export-dynamic
.endif
# Ensure we export symbols in the linked shared object.
LDFLAGS+= ${EXPORT_SYMBOLS_LDFLAGS}
PTHREAD_OPT+= require

View file

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.15 2002/04/23 02:08:53 jlam Exp $
# $NetBSD: Makefile,v 1.16 2002/09/04 14:47:36 agc Exp $
DISTNAME= dx-4.1.3
PKGREVISION= 1
@ -17,7 +17,7 @@ CONFIGURE_ARGS+= --without-javadx
CONFIGURE_ENV+= LEX="flex -l"
# Ensure we export symbols in the linked shared object.
LDFLAGS+= -Wl,--export-dynamic
LDFLAGS+= ${EXPORT_SYMBOLS_LDFLAGS}
CPPFLAGS+= -I${BUILDLINK_DIR}/include/freetype # freetype.h

View file

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.3 2002/03/17 02:40:57 jmc Exp $
# $NetBSD: Makefile,v 1.4 2002/09/04 14:47:36 agc Exp $
DISTNAME= gimp-1.2.3
PKGNAME= gimp-base-1.2.3
@ -33,7 +33,9 @@ CONFIGURE_ENV+= MPEG="mpeg"
CONFIGURE_ENV+= LIBMPEG="-lmpeg_lib"
CONFIGURE_ENV+= GAP_DECODE_MPEG="gap_decode_mpeg"
LDFLAGS+= -Wl,--export-dynamic
# Ensure we export symbols in the linked shared object.
LDFLAGS+= ${EXPORT_SYMBOLS_LDFLAGS}
MAKE_ENV+= X11BASE=${X11BASE}
PLIST_SUBST+= LOCALBASE=${LOCALBASE}

View file

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.8 2002/03/13 17:37:11 fredb Exp $
# $NetBSD: Makefile,v 1.9 2002/09/04 14:47:37 agc Exp $
DISTNAME= kdegraphics-2.2.2
PKGREVISION= 1
@ -16,11 +16,8 @@ USE_BUILDLINK_ONLY= YES
CONFIGURE_ARGS+= --without-kamera # requires gPhoto2, gpio
.include "../../mk/bsd.prefs.mk"
.if ${OPSYS} == "NetBSD"
LIBS= -Wl,--export-dynamic
.endif
# Ensure we export symbols in the linked shared object.
LDFLAGS+= ${EXPORT_SYMBOLS_LDFLAGS}
.include "../../graphics/tiff/buildlink.mk"
.include "../../x11/kde2/buildlink.mk"

View file

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.4 2002/08/28 07:15:28 skrll Exp $
# $NetBSD: Makefile,v 1.5 2002/09/04 14:47:37 agc Exp $
DISTNAME= kdegraphics-3.0.3
CATEGORIES= graphics
@ -14,11 +14,8 @@ USE_BUILDLINK_ONLY= YES
CONFIGURE_ARGS+= --without-kamera # requires gPhoto2, gpio
.include "../../mk/bsd.prefs.mk"
.if ${OPSYS} == "NetBSD"
LIBS= -Wl,--export-dynamic
.endif
# Ensure we export symbols in the linked shared object.
LDFLAGS+= ${EXPORT_SYMBOLS_LDFLAGS}
#.include "../../graphics/tiff/buildlink.mk"
.include "../../graphics/imlib/buildlink.mk"

View file

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.10 2002/03/13 17:37:27 fredb Exp $
# $NetBSD: Makefile,v 1.11 2002/09/04 14:47:38 agc Exp $
DISTNAME= kdeutils-2.2.2
PKGREVISION= 1
@ -10,14 +10,13 @@ BUILD_DEPENDS+= qt2-designer-kde>=2.3.1nb2:../../x11/qt2-designer-kde
USE_BUILDLINK_ONLY= YES
# Ensure we export symbols in the linked shared object.
LDFLAGS+= ${EXPORT_SYMBOLS_LDFLAGS}
.include "../../mk/bsd.prefs.mk"
.if ${OPSYS} == "NetBSD"
LIBS= -Wl,--export-dynamic
. if exists(/usr/include/machine/apmvar.h)
.if ${OPSYS} == "NetBSD" && exists(/usr/include/machine/apmvar.h)
CPPFLAGS+= -D__NetBSD_APM__
. endif
.endif
post-install:

View file

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.3 2002/08/28 07:15:37 skrll Exp $
# $NetBSD: Makefile,v 1.4 2002/09/04 14:47:38 agc Exp $
DISTNAME= kdeutils-3.0.3
COMMENT= Utilities for the KDE integrated X11 desktop
@ -7,14 +7,13 @@ COMMENT= Utilities for the KDE integrated X11 desktop
USE_BUILDLINK_ONLY= YES
# Ensure we export symbols in the linked shared object.
LDFLAGS+= ${EXPORT_SYMBOLS_LDFLAGS}
.include "../../mk/bsd.prefs.mk"
.if ${OPSYS} == "NetBSD"
LIBS= -Wl,--export-dynamic
. if exists(/usr/include/machine/apmvar.h)
CPPFLAGS+= -D__NetBSD_APM__
. endif
.if ${OPSYS} == "NetBSD" && exists(/usr/include/machine/apmvar.h)
.include "../../mk/bsd.prefs.mk"
.endif
post-install:

View file

@ -1,4 +1,4 @@
# $NetBSD: Makefile.common,v 1.1 2002/06/20 19:13:50 jschauma Exp $
# $NetBSD: Makefile.common,v 1.2 2002/09/04 14:47:38 agc Exp $
CATEGORIES= misc kde
VERSION= 1.1.1
@ -11,9 +11,10 @@ USE_BUILDLINK_ONLY= YES
REPLACE_PERL= kpresenter/kprconverter.pl
.if ${OPSYS} == "NetBSD"
LIBS+= -Wl,--export-dynamic
# Ensure we export symbols in the linked shared object.
LDFLAGS+= ${EXPORT_SYMBOLS_LDFLAGS}
.if ${OPSYS} == "NetBSD"
# On egcs-1.1.2, the C++ compiler system isn't quite ISO-compliant. It lacks
# a std::auto_ptr implementation in <memory>, doesn't handle static inline
# functions in headers properly (although that concept, in itself, is quite

View file

@ -1,4 +1,4 @@
# $NetBSD: defs.Darwin.mk,v 1.27 2002/08/28 11:06:18 seb Exp $
# $NetBSD: defs.Darwin.mk,v 1.28 2002/09/04 14:47:32 agc Exp $
#
# Variable definitions for the Darwin operating system.
@ -58,6 +58,7 @@ XARGS?= /usr/bin/xargs
CPP_PRECOMP_FLAGS?= -no-cpp-precomp # use the GNU cpp, not the OS X cpp
DEF_UMASK?= 0022
DEFAULT_SERIAL_DEVICE?= /dev/null
EXPORT_SYMBOLS_LDFLAGS?= # Don't add symbols to the dynamic symbol table
GROUPADD?= ${FALSE} # XXX - Fix me!
MOTIF_TYPE_DEFAULT?= openmotif # default 2.0 compatible libs type
MOTIF12_TYPE_DEFAULT?= lesstif12 # default 1.2 compatible libs type

View file

@ -1,4 +1,4 @@
# $NetBSD: defs.Linux.mk,v 1.29 2002/08/28 11:06:18 seb Exp $
# $NetBSD: defs.Linux.mk,v 1.30 2002/09/04 14:47:33 agc Exp $
#
# Variable definitions for the Linux operating system.
@ -62,6 +62,7 @@ XARGS?= /usr/bin/xargs -r
CPP_PRECOMP_FLAGS?= # unset
DEF_UMASK?= 022
DEFAULT_SERIAL_DEVICE?= /dev/null
EXPORT_SYMBOLS_LDFLAGS?= # Don't add symbols to the dynamic symbol table
GROUPADD?= /usr/sbin/groupadd
MOTIF_TYPE_DEFAULT?= openmotif # default 2.0 compatible libs type
MOTIF12_TYPE_DEFAULT?= lesstif12 # default 1.2 compatible libs type

View file

@ -1,4 +1,4 @@
# $NetBSD: defs.NetBSD.mk,v 1.27 2002/08/28 11:06:19 seb Exp $
# $NetBSD: defs.NetBSD.mk,v 1.28 2002/09/04 14:47:33 agc Exp $
#
# Variable definitions for the NetBSD operating system.
@ -68,6 +68,11 @@ DEPENDS+= user>=20000313:../../sysutils/user
CPP_PRECOMP_FLAGS?= # unset
DEF_UMASK?= 0022
.if ${OBJECT_FMT} == "ELF"
EXPORT_SYMBOLS_LDFLAGS?=-Wl,-E # add symbols to the dynamic symbol table
.else
EXPORT_SYMBOLS_LDFLAGS?=-Wl,--export-dynamic
.endif
MOTIF_TYPE_DEFAULT?= openmotif # default 2.0 compatible libs type
MOTIF12_TYPE_DEFAULT?= lesstif12 # default 1.2 compatible libs type
NOLOGIN?= /sbin/nologin

View file

@ -1,4 +1,4 @@
# $NetBSD: defs.SunOS.mk,v 1.27 2002/08/28 11:06:19 seb Exp $
# $NetBSD: defs.SunOS.mk,v 1.28 2002/09/04 14:47:34 agc Exp $
#
# Variable definitions for the SunOS/Solaris operating system.
@ -70,6 +70,7 @@ XARGS?= /usr/bin/xargs
CPP_PRECOMP_FLAGS?= # unset
DEF_UMASK?= 022
DEFAULT_SERIAL_DEVICE?= /dev/null
EXPORT_SYMBOLS_LDFLAGS?= # Don't add symbols to the dynamic symbol table
GROUPADD?= /usr/sbin/groupadd
MOTIF_TYPE_DEFAULT?= dt # default 2.0 compatible libs type
MOTIF12_TYPE_DEFAULT?= dt # default 1.2 compatible libs type

View file

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.22 2002/08/25 21:51:51 jlam Exp $
# $NetBSD: Makefile,v 1.23 2002/09/04 14:47:39 agc Exp $
PKGNAME= ap-php-${PHP_BASE_VERS}
PKGREVISION= # empty
@ -9,12 +9,8 @@ DEPENDS+= php>=${PHP_BASE_VERS}:../../www/php4
USE_BUILDLINK2= YES
APACHE_MODULE= YES
.include "../../www/php4/Makefile.php"
# Ensure we export symbols in the linked shared object.
.if ${OPSYS} != "SunOS"
LDFLAGS+= -Wl,--export-dynamic
.endif
LDFLAGS+= ${EXPORT_SYMBOLS_LDFLAGS}
do-install:
${INSTALL_DATA} ${WRKSRC}/.libs/libphp4.so \

View file

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.34 2002/08/29 20:00:20 drochner Exp $
# $NetBSD: Makefile,v 1.35 2002/09/04 14:47:41 agc Exp $
DISTNAME= galeon-1.2.5
CATEGORIES= www
@ -38,11 +38,9 @@ CONFIGURE_ARGS+= --with-mozilla-snapshot=trunk
MOZ_LIBDIR= ${PREFIX}/lib/mozilla
LDFLAGS+= -Wl,-R${MOZ_LIBDIR}
.if(${OBJECT_FMT} == ELF)
LDFLAGS+= -export-dynamic
.else
LIBS+= -lstdc++
.endif
# Ensure we export symbols in the linked shared object.
LDFLAGS+= ${EXPORT_SYMBOLS_LDFLAGS}
pre-install:
${X11PREFIX}/bin/gconftool --shutdown

View file

@ -1,4 +1,4 @@
# $NetBSD: Makefile.module,v 1.3 2002/07/24 19:45:31 jlam Exp $
# $NetBSD: Makefile.module,v 1.4 2002/09/04 14:47:41 agc Exp $
.include "../../www/php3/Makefile.common"
@ -24,8 +24,8 @@ LD_SHAREABLE_FLAG= -G
LD_SHAREABLE_FLAG= -Bshareable
.endif
# Ensure we export symbols in the linked shared objects.
LDFLAGS+= -Wl,--export-dynamic
# Ensure we export symbols in the linked shared object.
LDFLAGS+= ${EXPORT_SYMBOLS_LDFLAGS}
MOD_CPPFLAGS+= -I${WRKSRC} -I${MODULESDIR} -fPIC -DPIC -DCOMPILE_DL
MOD_LDFLAGS+= ${LDFLAGS:S/-Wl,//g}

View file

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.25 2002/08/26 00:16:57 grant Exp $
# $NetBSD: Makefile,v 1.26 2002/09/04 14:47:39 agc Exp $
PKGNAME= php-${PHP_BASE_VERS}
PKGREVISION= # empty
@ -27,9 +27,8 @@ MAKE_ENV+= LINK_LIBGCC_LDFLAGS="${LINK_LIBGCC_LDFLAGS}"
.endif
# Ensure we export symbols in the linked shared object.
.if ${OPSYS} != "SunOS"
LDFLAGS+= -Wl,--export-dynamic
.endif
LDFLAGS+= ${EXPORT_SYMBOLS_LDFLAGS}
MAKE_ENV+= EXPORT_SYMBOLS_LDFLAGS="${EXPORT_SYMBOLS_LDFLAGS}"
CONF_FILES= ${EGDIR}/php.ini-recommended ${PKG_SYSCONFDIR}/php.ini
OWN_DIRS= ${PREFIX}/${PHP_EXTENSION_DIR}

View file

@ -1,4 +1,4 @@
# $NetBSD: Makefile.module,v 1.17 2002/08/26 00:16:57 grant Exp $
# $NetBSD: Makefile.module,v 1.18 2002/09/04 14:47:40 agc Exp $
#
# This Makefile is provided to ease creating PHP4 packages for the extension
# modules distributed in the PHP4 sources.
@ -32,10 +32,9 @@ USE_CONFIG_WRAPPER= YES
USE_LIBTOOL= YES
LTCONFIG_OVERRIDE= ${WRKSRC}/ltconfig
# Ensure we export symbols in the linked shared objects.
.if ${OPSYS} != "SunOS"
LDFLAGS+= -Wl,--export-dynamic
.endif
# Ensure we export symbols in the linked shared object.
LDFLAGS+= ${EXPORT_SYMBOLS_LDFLAGS}
MAKE_ENV+= EXPORT_SYMBOLS_LDFLAGS="${EXPORT_SYMBOLS_LDFLAGS}"
PLIST_SRC= ${.CURDIR}/../../www/php4/PLIST.module
MESSAGE_SRC= ${.CURDIR}/../../www/php4/MESSAGE.module

View file

@ -1,8 +1,8 @@
$NetBSD: distinfo,v 1.11 2002/08/26 00:42:59 grant Exp $
$NetBSD: distinfo,v 1.12 2002/09/04 14:47:40 agc Exp $
SHA1 (php-4.1.2.tar.gz) = fc4f9685b2b26d6e12af2e746a34fadfe57f0466
Size (php-4.1.2.tar.gz) = 3359964 bytes
SHA1 (patch-aa) = 08f98c6b41c24a2aa8fa417bba50cf0cb5f711af
SHA1 (patch-aa) = 09fb15fde09bf866d9be016839f33c889d9cefb9
SHA1 (patch-ac) = 9478c18dbe18e8c4c05dffce31fa3f923562c832
SHA1 (patch-ad) = 4ac02d0e0e5bd612254020d46292534a0e9445b0
SHA1 (patch-ae) = e7acc06a63f47053c81ab442b53c68d89d122f78

View file

@ -1,4 +1,4 @@
$NetBSD: patch-aa,v 1.7 2001/10/16 04:54:24 jlam Exp $
$NetBSD: patch-aa,v 1.8 2002/09/04 14:47:40 agc Exp $
--- Makefile.in.orig Sat Apr 21 21:09:12 2001
+++ Makefile.in
@ -7,7 +7,7 @@ $NetBSD: patch-aa,v 1.7 2001/10/16 04:54:24 jlam Exp $
PROGRAM_SOURCES = stub.c
PROGRAM_LDADD = libphp4.la $(EXT_PROGRAM_LDADD)
-PROGRAM_LDFLAGS = -export-dynamic
+PROGRAM_LDFLAGS = -static -export-dynamic $(LINK_LIBGCC_LDFLAGS)
+PROGRAM_LDFLAGS = -static ${EXPORT_SYMBOLS_LDFLAGS} $(LINK_LIBGCC_LDFLAGS)
PROGRAM_DEPENDENCIES = $(PROGRAM_LDADD)
targets = $(LTLIBRARY_NAME) $(PHP_PROGRAM)