FreeBSD Bugzilla – Attachment 150396 Details for
Bug 195821
[exp-run] Force linking of `libperl.so` with all shared modules.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
libperl.so.diff
libperl.so.diff (text/plain), 11.30 KB, created by
Mathieu Arnold
on 2014-12-09 12:05:42 UTC
(
hide
)
Description:
libperl.so.diff
Filename:
MIME Type:
Creator:
Mathieu Arnold
Created:
2014-12-09 12:05:42 UTC
Size:
11.30 KB
patch
obsolete
>Index: Mk/Scripts/qa.sh >=================================================================== >--- Mk/Scripts/qa.sh (revision 374302) >+++ Mk/Scripts/qa.sh (working copy) >@@ -206,8 +206,41 @@ > fi > } > >-checks="shebang symlinks paths stripped desktopfileutils sharedmimeinfo suidfiles libtool" >+libperl() { >+ if [ -n ${SITE_ARCH_REL} ]; then >+ rc=0 >+ while read f; do >+ found=`readelf -d $f | awk "BEGIN {libperl=1; rpath=10; runpath=100} >+ /NEEDED.*${LIBPERL}/ { libperl = 0 } >+ /RPATH.*perl.*CORE/ { rpath = 0 } >+ /RUNPATH.*perl.*CORE/ { runpath = 0 } >+ END {print libperl+rpath+runpath} >+ "` >+ if [ "$found" -ne "0" ]; then >+ case "$found" in >+ *1) >+ rc=1 >+ err "${f} is not linked with ${LIBPERL}, not respecting lddlflags ?" >+ ;; >+ *1?) >+ warn "${f} does not have the ${LIBPERL} rpath, not respecting lddlflags ?" >+ ;; >+ 1??) >+ warn "${f} does not have the ${LIBPERL} runpath, not respecting lddlflags ?" >+ ;; >+ esac >+ fi >+ # Use heredoc to avoid losing rc from find|while subshell >+ done <<-EOT >+ $(find ${STAGEDIR}${PREFIX}/${SITE_ARCH_REL} -name '*.so') >+ EOT > >+ return ${rc} >+ fi >+} >+ >+checks="shebang symlinks paths stripped desktopfileutils sharedmimeinfo suidfiles libtool libperl" >+ > ret=0 > cd ${STAGEDIR} > for check in ${checks}; do >Index: Mk/Uses/perl5.mk >=================================================================== >--- Mk/Uses/perl5.mk (revision 374302) >+++ Mk/Uses/perl5.mk (working copy) >@@ -106,6 +106,8 @@ > PERL= ${LOCALBASE}/bin/perl > CONFIGURE_ENV+= ac_cv_path_PERL=${PERL} ac_cv_path_PERL_PATH=${PERL} > >+QA_ENV+= SITE_ARCH_REL=${SITE_ARCH_REL} LIBPERL=libperl.so.${PERL_VER} >+ > # Define the want perl first if defined > .if ${USE_PERL5:M5*} > want_perl_sign= ${USE_PERL5:M5*:C|^[0-9.]+||} >Index: lang/perl5.14/Makefile >=================================================================== >--- lang/perl5.14/Makefile (revision 374302) >+++ lang/perl5.14/Makefile (working copy) >@@ -209,6 +209,10 @@ > BSDPAN_VERSION= 20111107 > BSDPAN_WRKSRC= ${WRKDIR}/BSDPAN-${BSDPAN_VERSION} > >+# Put a symlink to the future libperl.so.x.yy so that -lperl works. >+post-extract: >+ ${LN} -s libperl.so.${PERL_VER} ${WRKSRC}/libperl.so >+ > post-patch: > ${SED} -i '' -e 's|%%PERL_PKGNAME%%|${PKGNAME}|g; s|%%PERL_VER%%|${PERL_VER}|g;' \ > -e 's!%%BSDPAN_VERSION%%!${BSDPAN_VERSION}!g;' \ >@@ -215,6 +219,8 @@ > ${BSDPAN_WRKSRC}/ExtUtils/*.pm > ${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \ > ${WRKSRC}/Configure ${WRKSRC}/hints/freebsd.sh >+ ${REINPLACE_CMD} -e 's|lddlflags="-shared "|lddlflags="-shared -L${WRKSRC} -L${PREFIX}/${_ARCH_LIB}/CORE -Wl,-rpath=${PREFIX}/${_ARCH_LIB}/CORE -lperl "|' \ >+ ${WRKSRC}/hints/freebsd.sh > .if ${PORT_OPTIONS:MPTHREAD} > ${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%|${PTHREAD_LIBS}|g;' \ > -e 's|%%PTHREAD_CFLAGS%%|${PTHREAD_CFLAGS}|g;' \ >@@ -230,8 +236,8 @@ > ${MKDIR} ${STAGEDIR}${SITE_ARCH}/auto > ${MKDIR} ${STAGEDIR}${SITE_PERL}/auto > ${LN} ${STAGEDIR}${PREFIX}/bin/perl${PERL_VERSION} ${STAGEDIR}${PREFIX}/bin/perl5 >- ${LN} -s libperl.so.${PERL_VER} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so >- ${LN} -s libperl.so.${PERL_VER} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so.${PERL_VERSION} >+ ${LN} -sf libperl.so.${PERL_VER} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so >+ ${LN} -sf libperl.so.${PERL_VER} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so.${PERL_VERSION} > ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/perl${PERL_VERSION} > ${INSTALL_DATA} ${WRKDIR}/perl5_version ${STAGEDIR}${PREFIX}/etc > ${FIND} ${STAGEDIR} -name '*.bs' -size 0 -delete >Index: lang/perl5.14/files/patch-Makefile.SH >=================================================================== >--- lang/perl5.14/files/patch-Makefile.SH (revision 374302) >+++ lang/perl5.14/files/patch-Makefile.SH (working copy) >@@ -5,7 +5,7 @@ > $spitshell >>$Makefile <<'!NO!SUBS!' > rm -f $@ > - $(LD) -o $@ $(SHRPLDFLAGS) $(obj) $(DYNALOADER) $(libs) >-+ $(LD) -o $@ $(SHRPLDFLAGS) -Wl,-soname,$(LIBPERL) $(obj) $(DYNALOADER) $(libs) >++ $(LD) -o $@ -shared -L/usr/local/lib -fstack-protector -Wl,-soname,$(LIBPERL) $(obj) $(DYNALOADER) $(libs) > !NO!SUBS! > case "$osname" in > aix) >Index: lang/perl5.16/Makefile >=================================================================== >--- lang/perl5.16/Makefile (revision 374302) >+++ lang/perl5.16/Makefile (working copy) >@@ -209,6 +209,10 @@ > BSDPAN_VERSION= 20111107 > BSDPAN_WRKSRC= ${WRKDIR}/BSDPAN-${BSDPAN_VERSION} > >+# Put a symlink to the future libperl.so.x.yy so that -lperl works. >+post-extract: >+ ${LN} -s libperl.so.${PERL_VER} ${WRKSRC}/libperl.so >+ > post-patch: > ${SED} -i '' -e 's|%%PERL_PKGNAME%%|${PKGNAME}|g; s|%%PERL_VER%%|${PERL_VER}|g;' \ > -e 's!%%BSDPAN_VERSION%%!${BSDPAN_VERSION}!g;' \ >@@ -215,6 +219,8 @@ > ${BSDPAN_WRKSRC}/ExtUtils/*.pm > ${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \ > ${WRKSRC}/Configure ${WRKSRC}/hints/freebsd.sh >+ ${REINPLACE_CMD} -e 's|lddlflags="-shared "|lddlflags="-shared -L${WRKSRC} -L${PREFIX}/${_ARCH_LIB}/CORE -Wl,-rpath=${PREFIX}/${_ARCH_LIB}/CORE -lperl "|' \ >+ ${WRKSRC}/hints/freebsd.sh > .if ${PORT_OPTIONS:MPTHREAD} > ${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%|${PTHREAD_LIBS}|g;' \ > -e 's|%%PTHREAD_CFLAGS%%|${PTHREAD_CFLAGS}|g;' \ >@@ -230,8 +236,8 @@ > ${MKDIR} ${STAGEDIR}${SITE_ARCH}/auto > ${MKDIR} ${STAGEDIR}${SITE_PERL}/auto > ${LN} ${STAGEDIR}${PREFIX}/bin/perl${PERL_VERSION} ${STAGEDIR}${PREFIX}/bin/perl5 >- ${LN} -s libperl.so.${PERL_VER} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so >- ${LN} -s libperl.so.${PERL_VER} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so.${PERL_VERSION} >+ ${LN} -sf libperl.so.${PERL_VER} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so >+ ${LN} -sf libperl.so.${PERL_VER} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so.${PERL_VERSION} > ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/perl${PERL_VERSION} > ${INSTALL_DATA} ${WRKDIR}/perl5_version ${STAGEDIR}${PREFIX}/etc > ${FIND} ${STAGEDIR} -name '*.bs' -size 0 -delete >Index: lang/perl5.16/files/patch-Makefile.SH >=================================================================== >--- lang/perl5.16/files/patch-Makefile.SH (revision 374302) >+++ lang/perl5.16/files/patch-Makefile.SH (working copy) >@@ -5,7 +5,7 @@ > $spitshell >>$Makefile <<'!NO!SUBS!' > rm -f $@ > - $(LD) -o $@ $(SHRPLDFLAGS) $(obj) $(DYNALOADER) $(libs) >-+ $(LD) -o $@ $(SHRPLDFLAGS) -Wl,-soname,$(LIBPERL) $(obj) $(DYNALOADER) $(libs) >++ $(LD) -o $@ -shared -L/usr/local/lib -fstack-protector -Wl,-soname,$(LIBPERL) $(obj) $(DYNALOADER) $(libs) > !NO!SUBS! > case "$osname" in > aix) >Index: lang/perl5.18/Makefile >=================================================================== >--- lang/perl5.18/Makefile (revision 374302) >+++ lang/perl5.18/Makefile (working copy) >@@ -187,6 +187,10 @@ > BSDPAN_VERSION= 20111107 > BSDPAN_WRKSRC= ${WRKDIR}/BSDPAN-${BSDPAN_VERSION} > >+# Put a symlink to the future libperl.so.x.yy so that -lperl works. >+post-extract: >+ ${LN} -s libperl.so.${PERL_VER} ${WRKSRC}/libperl.so >+ > post-patch: > ${SED} -i '' -e 's|%%PERL_PKGNAME%%|${PKGNAME}|g; s|%%PERL_VER%%|${PERL_VER}|g;' \ > -e 's!%%BSDPAN_VERSION%%!${BSDPAN_VERSION}!g;' \ >@@ -193,6 +197,8 @@ > ${BSDPAN_WRKSRC}/ExtUtils/*.pm > ${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \ > ${WRKSRC}/Configure ${WRKSRC}/hints/freebsd.sh >+ ${REINPLACE_CMD} -e 's|lddlflags="-shared "|lddlflags="-shared -L${WRKSRC} -L${PREFIX}/${_ARCH_LIB}/CORE -Wl,-rpath=${PREFIX}/${_ARCH_LIB}/CORE -lperl "|' \ >+ ${WRKSRC}/hints/freebsd.sh > .if ${PORT_OPTIONS:MPTHREAD} > ${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%|${PTHREAD_LIBS}|g;' \ > -e 's|%%PTHREAD_CFLAGS%%|${PTHREAD_CFLAGS}|g;' \ >@@ -208,8 +214,8 @@ > ${MKDIR} ${STAGEDIR}${SITE_ARCH}/auto > ${MKDIR} ${STAGEDIR}${SITE_PERL}/auto > ${LN} ${STAGEDIR}${PREFIX}/bin/perl${PERL_VERSION} ${STAGEDIR}${PREFIX}/bin/perl5 >- ${LN} -s libperl.so.${PERL_VER} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so >- ${LN} -s libperl.so.${PERL_VER} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so.${PERL_VERSION} >+ ${LN} -sf libperl.so.${PERL_VER} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so >+ ${LN} -sf libperl.so.${PERL_VER} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so.${PERL_VERSION} > ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/perl${PERL_VERSION} > ${INSTALL_DATA} ${WRKDIR}/perl5_version ${STAGEDIR}${PREFIX}/etc > ${FIND} ${STAGEDIR} -name '*.bs' -size 0 -delete >Index: lang/perl5.18/files/patch-Makefile.SH >=================================================================== >--- lang/perl5.18/files/patch-Makefile.SH (revision 374302) >+++ lang/perl5.18/files/patch-Makefile.SH (working copy) >@@ -1,11 +1,11 @@ > --- Makefile.SH.orig 2014-10-01 15:23:34 UTC > +++ Makefile.SH >-@@ -805,7 +808,7 @@ $(LIBPERL): $& $(obj) $(DYNALOADER) $(LI >+@@ -805,7 +805,7 @@ $(LIBPERL): $& $(obj) $(DYNALOADER) $(LI > true) > $spitshell >>$Makefile <<'!NO!SUBS!' > rm -f $@ > - $(LD) -o $@ $(SHRPLDFLAGS) $(obj) $(DYNALOADER) $(libs) >-+ $(LD) -o $@ $(SHRPLDFLAGS) -Wl,-soname,$(LIBPERL) $(obj) $(DYNALOADER) $(libs) >++ $(LD) -o $@ -shared -L/usr/local/lib -fstack-protector -Wl,-soname,$(LIBPERL) $(obj) $(DYNALOADER) $(libs) > !NO!SUBS! > case "$osname" in > aix) >Index: lang/perl5.20/Makefile >=================================================================== >--- lang/perl5.20/Makefile (revision 374302) >+++ lang/perl5.20/Makefile (working copy) >@@ -184,6 +184,10 @@ > BSDPAN_VERSION= 20111107 > BSDPAN_WRKSRC= ${WRKDIR}/BSDPAN-${BSDPAN_VERSION} > >+# Put a symlink to the future libperl.so.x.yy so that -lperl works. >+post-extract: >+ ${LN} -s libperl.so.${PERL_VER} ${WRKSRC}/libperl.so >+ > post-patch: > ${SED} -i '' -e 's|%%PERL_PKGNAME%%|${PKGNAME}|g; s|%%PERL_VER%%|${PERL_VER}|g;' \ > -e 's!%%BSDPAN_VERSION%%!${BSDPAN_VERSION}!g;' \ >@@ -190,6 +194,8 @@ > ${BSDPAN_WRKSRC}/ExtUtils/*.pm > ${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \ > ${WRKSRC}/Configure ${WRKSRC}/hints/freebsd.sh >+ ${REINPLACE_CMD} -e 's|lddlflags="-shared "|lddlflags="-shared -L${WRKSRC} -L${PREFIX}/${_ARCH_LIB}/CORE -Wl,-rpath=${PREFIX}/${_ARCH_LIB}/CORE -lperl "|' \ >+ ${WRKSRC}/hints/freebsd.sh > .if ${PORT_OPTIONS:MPTHREAD} > ${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%|${PTHREAD_LIBS}|g;' \ > -e 's|%%PTHREAD_CFLAGS%%|${PTHREAD_CFLAGS}|g;' \ >@@ -205,8 +211,8 @@ > ${MKDIR} ${STAGEDIR}${SITE_ARCH}/auto > ${MKDIR} ${STAGEDIR}${SITE_PERL}/auto > ${LN} ${STAGEDIR}${PREFIX}/bin/perl${PERL_VERSION} ${STAGEDIR}${PREFIX}/bin/perl5 >- ${LN} -s libperl.so.${PERL_VER} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so >- ${LN} -s libperl.so.${PERL_VER} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so.${PERL_VERSION} >+ ${LN} -sf libperl.so.${PERL_VER} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so >+ ${LN} -sf libperl.so.${PERL_VER} ${STAGEDIR}${PREFIX}/${_ARCH_LIB}/CORE/libperl.so.${PERL_VERSION} > ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/perl${PERL_VERSION} > ${INSTALL_DATA} ${WRKDIR}/perl5_version ${STAGEDIR}${PREFIX}/etc > ${MKDIR} ${STAGEDIR}${SITE_ARCH}/machine >Index: lang/perl5.20/files/patch-Makefile.SH >=================================================================== >--- lang/perl5.20/files/patch-Makefile.SH (revision 374302) >+++ lang/perl5.20/files/patch-Makefile.SH (working copy) >@@ -5,7 +5,7 @@ > $spitshell >>$Makefile <<'!NO!SUBS!' > rm -f $@ > - $(LD) -o $@ $(SHRPLDFLAGS) $(obj) $(DYNALOADER) $(libs) >-+ $(LD) -o $@ $(SHRPLDFLAGS) -Wl,-soname,$(LIBPERL) $(obj) $(DYNALOADER) $(libs) >++ $(LD) -o $@ -shared -L/usr/local/lib -fstack-protector -Wl,-soname,$(LIBPERL) $(obj) $(DYNALOADER) $(libs) > !NO!SUBS! > case "$osname" in > aix)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 195821
:
150396
|
150403
|
150422