pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc libtool-base-1.5.18nb6:



details:   https://anonhg.NetBSD.org/pkgsrc/rev/686fb1923507
branches:  trunk
changeset: 502835:686fb1923507
user:      tv <tv%pkgsrc.org@localhost>
date:      Wed Nov 09 18:05:56 2005 +0000

description:
libtool-base-1.5.18nb6:

Fix major problem brought to the surface by buildlink3 on Interix.  For C++
or F77 libraries only, the soname did not always make it into the final
binary, resulting in runtime link failures in some cases and runtime linking
with a missing major version in others.

This is unfortunately a flag day for Interix + pkgsrc.  Identifying all the
PKGREVISIONs normally requiring a bump is a little too unwieldy.  However,
existing binaries not experiencing the runtime link failure will continue
to run, but will be linking against the unversioned ".so" at runtime until
the binaries have been rebuilt.

While here, fix a couple wrong assumptions in the libtool config for
Interix.  shlibvar_overrides_runpath should have been "no", and
hardcode_direct should have been "yes".

diffstat:

 devel/libtool-base/Makefile             |    4 +-
 devel/libtool/distinfo                  |    6 +-
 devel/libtool/patches/manual-libtool.m4 |   38 +++--
 devel/libtool/patches/patch-ab          |  182 +++++++++++++-----------
 devel/libtool/patches/patch-ad          |  228 +++++++++++++++++--------------
 mk/platform/Interix.mk                  |    3 +-
 6 files changed, 251 insertions(+), 210 deletions(-)

diffs (truncated from 1944 to 300 lines):

diff -r c4e18ef62f2f -r 686fb1923507 devel/libtool-base/Makefile
--- a/devel/libtool-base/Makefile       Wed Nov 09 16:24:23 2005 +0000
+++ b/devel/libtool-base/Makefile       Wed Nov 09 18:05:56 2005 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.72 2005/09/21 20:31:21 tv Exp $
+# $NetBSD: Makefile,v 1.73 2005/11/09 18:05:57 tv Exp $
 
 ###########################################################################
 ###########################################################################
@@ -26,7 +26,7 @@
 .include "../../devel/libtool/Makefile.common"
 
 PKGNAME=       ${DISTNAME:S/-/-base-/}
-PKGREVISION=   5
+PKGREVISION=   6
 SVR4_PKGNAME=  ltoob
 
 COMMENT=       Generic shared library support script (the script itself)
diff -r c4e18ef62f2f -r 686fb1923507 devel/libtool/distinfo
--- a/devel/libtool/distinfo    Wed Nov 09 16:24:23 2005 +0000
+++ b/devel/libtool/distinfo    Wed Nov 09 18:05:56 2005 +0000
@@ -1,9 +1,9 @@
-$NetBSD: distinfo,v 1.63 2005/09/21 20:31:21 tv Exp $
+$NetBSD: distinfo,v 1.64 2005/11/09 18:05:56 tv Exp $
 
 SHA1 (libtool-1.5.18.tar.gz) = 9eae4a25cf386f2dd3937f215368c9cc090009df
 RMD160 (libtool-1.5.18.tar.gz) = facff15723bb89b0e260def31354fe437430bf3b
 Size (libtool-1.5.18.tar.gz) = 2780846 bytes
 SHA1 (patch-aa) = 36f589c09c492bc688bdfbb97f0d375cd04c008d
-SHA1 (patch-ab) = 60ab5ae3874fe13abfd089b0cf544f57517acc2b
+SHA1 (patch-ab) = 1905521a7823883d7628448befb679b6649b8b6c
 SHA1 (patch-ac) = 61a5c1ace76beeeb64388726e6a0772e8f1828e0
-SHA1 (patch-ad) = 5cb326bd404762d15b053a99ea8cf041b087dc94
+SHA1 (patch-ad) = a8b1632162e27b74f936f499ae15cc33aef03817
diff -r c4e18ef62f2f -r 686fb1923507 devel/libtool/patches/manual-libtool.m4
--- a/devel/libtool/patches/manual-libtool.m4   Wed Nov 09 16:24:23 2005 +0000
+++ b/devel/libtool/patches/manual-libtool.m4   Wed Nov 09 18:05:56 2005 +0000
@@ -1,4 +1,4 @@
-$NetBSD: manual-libtool.m4,v 1.16 2005/07/03 19:42:14 tv Exp $
+$NetBSD: manual-libtool.m4,v 1.17 2005/11/09 18:05:56 tv Exp $
 
 --- libtool.m4.orig    2005-05-15 09:41:23.000000000 -0400
 +++ libtool.m4
@@ -59,7 +59,7 @@
 +  soname_spec='${libname}${release}${shared_ext}$major'
 +  dynamic_linker='Interix 3.x ld.so'
 +  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=yes
++  shlibpath_overrides_runpath=no
 +  hardcode_into_libs=yes
 +  ;;
 +
@@ -171,7 +171,7 @@
            _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o 
$lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
            ;;
         *)
-@@ -3157,6 +3156,16 @@ case $host_os in
+@@ -3157,6 +3156,20 @@ case $host_os in
        ;;
      esac
      ;;
@@ -182,13 +182,17 @@
 +    # all libraries, leading to runtime relocations -- slow and very
 +    # memory consuming.  To do this, we pick a random 256KB-aligned
 +    # start address between 0x50000000 and 0x6ffc0000 at link time.
-+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}--image-base,$(($RANDOM %4096/2*262144+1342177280)) -o $lib'
++    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,$(($RANDOM %4096/2*262144+1342177280)) -o $lib'
 +    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed s,^,_, $export_symbols >$output_objdir/$soname.exp && $CC -shared $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file 
$wl$output_objdir/$soname.exp ${wl}--image-base,$(($RANDOM %4096/2*262144+1342177280)) -o $lib'
++    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
++    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
++    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
++    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
 +    ;;
    irix5* | irix6*)
      case $cc_basename in
        CC*)
-@@ -3287,14 +3296,29 @@ case $host_os in
+@@ -3287,14 +3300,29 @@ case $host_os in
      ;;
    netbsd*)
      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
@@ -220,7 +224,7 @@
      ;;
    openbsd2*)
      # C++ shared libraries are fairly broken
-@@ -3734,6 +3758,21 @@ if AC_TRY_EVAL(ac_compile); then
+@@ -3734,6 +3762,21 @@ if AC_TRY_EVAL(ac_compile); then
      esac
    done
  
@@ -242,7 +246,7 @@
    # Clean up.
    rm -f a.out a.exe
  else
-@@ -4698,9 +4737,11 @@ AC_MSG_CHECKING([for $compiler option to
+@@ -4698,9 +4741,11 @@ AC_MSG_CHECKING([for $compiler option to
        _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
        ;;
      darwin* | rhapsody*)
@@ -255,7 +259,7 @@
        ;;
      *djgpp*)
        # DJGPP does not support shared libraries at all
-@@ -4722,6 +4763,10 @@ AC_MSG_CHECKING([for $compiler option to
+@@ -4722,6 +4767,10 @@ AC_MSG_CHECKING([for $compiler option to
        ;;
        esac
        ;;
@@ -266,7 +270,7 @@
      *)
        _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
        ;;
-@@ -4796,6 +4841,8 @@ AC_MSG_CHECKING([for $compiler option to
+@@ -4796,6 +4845,8 @@ AC_MSG_CHECKING([for $compiler option to
            ;;
        esac
        ;;
@@ -275,7 +279,7 @@
        irix5* | irix6* | nonstopux*)
        case $cc_basename in
          CC*)
-@@ -4967,9 +5014,11 @@ AC_MSG_CHECKING([for $compiler option to
+@@ -4967,9 +5018,11 @@ AC_MSG_CHECKING([for $compiler option to
        ;;
  
      darwin* | rhapsody*)
@@ -288,7 +292,7 @@
        ;;
  
      msdosdjgpp*)
-@@ -4998,6 +5047,11 @@ AC_MSG_CHECKING([for $compiler option to
+@@ -4998,6 +5051,11 @@ AC_MSG_CHECKING([for $compiler option to
        esac
        ;;
  
@@ -300,7 +304,7 @@
      *)
        _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
        ;;
-@@ -5370,6 +5424,17 @@ EOF
+@@ -5370,6 +5428,21 @@ EOF
        fi
        ;;
  
@@ -313,12 +317,16 @@
 +      # start address between 0x50000000 and 0x6ffc0000 at link time.
 +      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,$(($RANDOM %4096/2*262144+1342177280)) -o $lib'
 +      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed s,^,_, $export_symbols >$output_objdir/$soname.exp && $CC -shared $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file 
$wl$output_objdir/$soname.exp ${wl}--image-base,$(($RANDOM %4096/2*262144+1342177280)) -o $lib'
++      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
++      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
++      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
++      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
 +      ;;
 +
      netbsd*)
        if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
        _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-@@ -5633,7 +5698,7 @@ EOF
+@@ -5633,7 +5706,7 @@ EOF
           _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
           _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
            # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
@@ -327,7 +335,7 @@
            _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o 
$lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
            ;;
         *)
-@@ -5748,6 +5813,21 @@ EOF
+@@ -5748,6 +5821,21 @@ EOF
        fi
        ;;
  
@@ -338,7 +346,7 @@
 +      # all libraries, leading to runtime relocations -- slow and very
 +      # memory consuming.  To do this, we pick a random 256KB-aligned
 +      # start address between 0x50000000 and 0x6ffc0000 at link time.
-+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}--image-base,$(($RANDOM %4096/2*262144+1342177280)) -o $lib'
++      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,$(($RANDOM %4096/2*262144+1342177280)) -o $lib'
 +      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed s,^,_, $export_symbols >$output_objdir/$soname.exp && $CC -shared $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file 
$wl$output_objdir/$soname.exp ${wl}--image-base,$(($RANDOM %4096/2*262144+1342177280)) -o $lib'
 +      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
 +      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
diff -r c4e18ef62f2f -r 686fb1923507 devel/libtool/patches/patch-ab
--- a/devel/libtool/patches/patch-ab    Wed Nov 09 16:24:23 2005 +0000
+++ b/devel/libtool/patches/patch-ab    Wed Nov 09 18:05:56 2005 +0000
@@ -1,6 +1,6 @@
-$NetBSD: patch-ab,v 1.54 2005/07/03 19:42:14 tv Exp $
+$NetBSD: patch-ab,v 1.55 2005/11/09 18:05:56 tv Exp $
 
---- configure.orig     2005-07-03 15:36:30.000000000 -0400
+--- configure.orig     2005-11-09 12:32:46.000000000 -0500
 +++ configure
 @@ -322,11 +322,11 @@ else
  
@@ -244,7 +244,7 @@
      *)
        lt_prog_compiler_pic='-fPIC'
        ;;
-@@ -7435,6 +7455,17 @@ EOF
+@@ -7435,6 +7455,21 @@ EOF
        fi
        ;;
  
@@ -257,12 +257,16 @@
 +      # start address between 0x50000000 and 0x6ffc0000 at link time.
 +      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,$(($RANDOM %4096/2*262144+1342177280)) -o $lib'
 +      archive_expsym_cmds='sed s,^,_, $export_symbols >$output_objdir/$soname.exp && $CC -shared $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file 
$wl$output_objdir/$soname.exp ${wl}--image-base,$(($RANDOM %4096/2*262144+1342177280)) -o $lib'
++      export_dynamic_flag_spec='${wl}-E'
++      hardcode_direct=yes
++      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
++      hardcode_shlibpath_var=no
 +      ;;
 +
      netbsd*)
        if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
        archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-@@ -7622,7 +7653,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l
+@@ -7622,7 +7657,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l
    cat conftest.err >&5
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
    (exit $ac_status); } &&
@@ -272,7 +276,7 @@
    { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    (eval $ac_try) 2>&5
    ac_status=$?
-@@ -7682,7 +7714,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l
+@@ -7682,7 +7718,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l
    cat conftest.err >&5
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
    (exit $ac_status); } &&
@@ -282,7 +286,7 @@
    { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
    (eval $ac_try) 2>&5
    ac_status=$?
-@@ -7798,7 +7831,7 @@ if test -z "$aix_libpath"; then aix_libp
+@@ -7798,7 +7835,7 @@ if test -z "$aix_libpath"; then aix_libp
           archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
           module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
            # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
@@ -291,7 +295,7 @@
            module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs 
$deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
            ;;
         *)
-@@ -7913,6 +7946,21 @@ if test -z "$aix_libpath"; then aix_libp
+@@ -7913,6 +7950,21 @@ if test -z "$aix_libpath"; then aix_libp
        fi
        ;;
  
@@ -302,7 +306,7 @@
 +      # all libraries, leading to runtime relocations -- slow and very
 +      # memory consuming.  To do this, we pick a random 256KB-aligned
 +      # start address between 0x50000000 and 0x6ffc0000 at link time.
-+      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}--image-base,$(($RANDOM %4096/2*262144+1342177280)) -o $lib'
++      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,$(($RANDOM %4096/2*262144+1342177280)) -o $lib'
 +      archive_expsym_cmds='sed s,^,_, $export_symbols >$output_objdir/$soname.exp && $CC -shared $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file 
$wl$output_objdir/$soname.exp ${wl}--image-base,$(($RANDOM %4096/2*262144+1342177280)) -o $lib'
 +      export_dynamic_flag_spec='${wl}-E'
 +      hardcode_direct=yes
@@ -313,7 +317,7 @@
      irix5* | irix6* | nonstopux*)
        if test "$GCC" = yes; then
        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry 
${wl}${output_objdir}/so_locations -o $lib'
-@@ -8316,6 +8364,7 @@ beos*)
+@@ -8316,6 +8368,7 @@ beos*)
  bsdi[45]*)
    version_type=linux
    need_version=no
@@ -321,7 +325,7 @@
    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
    soname_spec='${libname}${release}${shared_ext}$major'
    finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-@@ -8433,15 +8482,16 @@ freebsd* | dragonfly*)
+@@ -8433,15 +8486,16 @@ freebsd* | dragonfly*)
    # DragonFly does not have aout.  When/if they implement a new
    # versioning mechanism, adjust this.
    objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
@@ -344,7 +348,7 @@
        need_version=yes
        ;;
    esac
-@@ -8517,15 +8567,22 @@ hpux9* | hpux10* | hpux11*)
+@@ -8517,15 +8571,22 @@ hpux9* | hpux10* | hpux11*)
    postinstall_cmds='chmod 555 $lib'
    ;;
  
@@ -356,7 +360,7 @@
 +  soname_spec='${libname}${release}${shared_ext}$major'
 +  dynamic_linker='Interix 3.x ld.so'
 +  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=yes
++  shlibpath_overrides_runpath=no
 +  hardcode_into_libs=yes
 +  ;;
 +
@@ -373,7 +377,7 @@
    esac
    need_lib_prefix=no
    need_version=no
-@@ -8602,11 +8659,11 @@ knetbsd*-gnu)
+@@ -8602,11 +8663,11 @@ knetbsd*-gnu)
    ;;
  
  netbsd*)



Home | Main Index | Thread Index | Old Index