pkgsrc-Changes-HG archive

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

[pkgsrc/trunk]: pkgsrc Another Interix fubar workaround: C++ libs weren't li...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/a78d46458afd
branches:  trunk
changeset: 481772:a78d46458afd
user:      tv <tv%pkgsrc.org@localhost>
date:      Tue Oct 12 04:41:39 2004 +0000

description:
Another Interix fubar workaround:  C++ libs weren't linking in libtool
because Interix installs completely hosed .la files for libstdc++ and
libsupc++.  Make libtool instead trust g++ to DTRT.

diffstat:

 devel/libtool-base/Makefile             |   4 +-
 devel/libtool/distinfo                  |   6 +-
 devel/libtool/patches/manual-libtool.m4 |  39 ++++++++++----
 devel/libtool/patches/patch-ab          |  83 +++++++++++++++++++-------------
 devel/libtool/patches/patch-ad          |  83 +++++++++++++++++++-------------
 mk/platform/Interix.mk                  |   4 +-
 6 files changed, 132 insertions(+), 87 deletions(-)

diffs (truncated from 830 to 300 lines):

diff -r d7e8ce365f1c -r a78d46458afd devel/libtool-base/Makefile
--- a/devel/libtool-base/Makefile       Tue Oct 12 01:17:36 2004 +0000
+++ b/devel/libtool-base/Makefile       Tue Oct 12 04:41:39 2004 +0000
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.42 2004/10/11 16:51:56 tv Exp $
+# $NetBSD: Makefile,v 1.43 2004/10/12 04:41:39 tv Exp $
 #
 
 PKGNAME=       ${DISTNAME:C/-/-base-/}
-PKGREVISION=   3
+PKGREVISION=   4
 SVR4_PKGNAME=  ltoob
 
 COMMENT=       Generic shared library support script (the script itself)
diff -r d7e8ce365f1c -r a78d46458afd devel/libtool/distinfo
--- a/devel/libtool/distinfo    Tue Oct 12 01:17:36 2004 +0000
+++ b/devel/libtool/distinfo    Tue Oct 12 04:41:39 2004 +0000
@@ -1,8 +1,8 @@
-$NetBSD: distinfo,v 1.49 2004/10/11 17:19:53 tv Exp $
+$NetBSD: distinfo,v 1.50 2004/10/12 04:41:39 tv Exp $
 
 SHA1 (libtool-1.5.10.tar.gz) = bb2cab7f405c5eb08ab8ba193cbac59ebe6e6e9e
 Size (libtool-1.5.10.tar.gz) = 2699923 bytes
 SHA1 (patch-aa) = 173b8f40ebb067e3bcea798b87e822a445d5688e
-SHA1 (patch-ab) = 9176d6add4b76a0541b7c7eb0a7dc0f5a5b22e4a
+SHA1 (patch-ab) = eb46985d419849a5bb5aab150ba761fe0113777c
 SHA1 (patch-ac) = e5cb5ca2303ebb82bb17db6c785580c23db2c6d3
-SHA1 (patch-ad) = 44d53b1733ccd1e2f887e7844c66d7119e3ca9de
+SHA1 (patch-ad) = 530dc8b47e2c8d60ef203e07d972e96f64c54df3
diff -r d7e8ce365f1c -r a78d46458afd devel/libtool/patches/manual-libtool.m4
--- a/devel/libtool/patches/manual-libtool.m4   Tue Oct 12 01:17:36 2004 +0000
+++ b/devel/libtool/patches/manual-libtool.m4   Tue Oct 12 04:41:39 2004 +0000
@@ -1,4 +1,4 @@
-$NetBSD: manual-libtool.m4,v 1.9 2004/10/11 17:19:53 tv Exp $
+$NetBSD: manual-libtool.m4,v 1.10 2004/10/12 04:41:39 tv Exp $
 
 --- libtool.m4.orig    2004-09-19 08:15:08.000000000 -0400
 +++ libtool.m4
@@ -120,7 +120,7 @@
    ;;
  
 +interix3*)
-+  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
++  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
 +  ;;
 +
  irix5* | irix6* | nonstopux*)
@@ -158,16 +158,24 @@
  
  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
  _LT_AC_TAGVAR(allow_undefined_flag, $1)=
-@@ -3091,6 +3091,8 @@ case $host_os in
+@@ -3091,6 +3091,16 @@ case $host_os in
        ;;
      esac
      ;;
 +  interix3*)
++    # Oy, what a hack.
++    # Because shlibs are not compiled -fPIC due to broken code, we must
++    # choose an --image-base.  Otherwise, 0x10000000 will be chosen for
++    # 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_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 ${wl}--image-base,$(($RANDOM %4096/2*262144+1342177280)) -o $lib'
 +    ;;
    irix5* | irix6*)
      case $cc_basename in
        CC)
-@@ -3210,6 +3212,13 @@ case $host_os in
+@@ -3210,6 +3220,13 @@ case $host_os in
      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
        _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
        wlarc=
@@ -181,7 +189,7 @@
        _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
        _LT_AC_TAGVAR(hardcode_direct, $1)=yes
        _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-@@ -3651,6 +3660,14 @@ if AC_TRY_EVAL(ac_compile); then
+@@ -3651,6 +3668,21 @@ if AC_TRY_EVAL(ac_compile); then
      esac
    done
  
@@ -191,12 +199,19 @@
 +      predep_objects_CXX=`eval echo $predep_objects_CXX | sed -e 's:/usr/lib/c++rt0.o:$cpprt0_file:'`
 +    fi
 +    ;;
++  interix3*)
++    # Interix installs completely hosed .la files for C++, so rather than
++    # hack all around it, let's just trust "g++" to DTRT.
++    predep_objects_CXX=
++    postdep_objects_CXX=
++    postdeps_CXX=
++    ;;
 +  esac
 +
    # Clean up.
    rm -f a.out a.exe
  else
-@@ -4591,9 +4608,11 @@ AC_MSG_CHECKING([for $compiler option to
+@@ -4591,9 +4623,11 @@ AC_MSG_CHECKING([for $compiler option to
        _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
        ;;
      darwin* | rhapsody*)
@@ -209,7 +224,7 @@
        ;;
      *djgpp*)
        # DJGPP does not support shared libraries at all
-@@ -4615,6 +4634,10 @@ AC_MSG_CHECKING([for $compiler option to
+@@ -4615,6 +4649,10 @@ AC_MSG_CHECKING([for $compiler option to
        ;;
        esac
        ;;
@@ -220,7 +235,7 @@
      *)
        _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
        ;;
-@@ -4689,6 +4712,8 @@ AC_MSG_CHECKING([for $compiler option to
+@@ -4689,6 +4727,8 @@ AC_MSG_CHECKING([for $compiler option to
            ;;
        esac
        ;;
@@ -229,7 +244,7 @@
        irix5* | irix6* | nonstopux*)
        case $cc_basename in
          CC)
-@@ -4854,9 +4879,11 @@ AC_MSG_CHECKING([for $compiler option to
+@@ -4854,9 +4894,11 @@ AC_MSG_CHECKING([for $compiler option to
        ;;
  
      darwin* | rhapsody*)
@@ -242,7 +257,7 @@
        ;;
  
      msdosdjgpp*)
-@@ -4885,6 +4912,11 @@ AC_MSG_CHECKING([for $compiler option to
+@@ -4885,6 +4927,11 @@ AC_MSG_CHECKING([for $compiler option to
        esac
        ;;
  
@@ -254,7 +269,7 @@
      *)
        _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
        ;;
-@@ -5187,6 +5219,17 @@ EOF
+@@ -5187,6 +5234,17 @@ EOF
        fi
        ;;
  
@@ -272,7 +287,7 @@
      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'
-@@ -5592,6 +5635,21 @@ $echo "local: *; };" >> $output_objdir/$
+@@ -5592,6 +5650,21 @@ $echo "local: *; };" >> $output_objdir/$
        fi
        ;;
  
diff -r d7e8ce365f1c -r a78d46458afd devel/libtool/patches/patch-ab
--- a/devel/libtool/patches/patch-ab    Tue Oct 12 01:17:36 2004 +0000
+++ b/devel/libtool/patches/patch-ab    Tue Oct 12 04:41:39 2004 +0000
@@ -1,4 +1,4 @@
-$NetBSD: patch-ab,v 1.44 2004/10/11 17:19:53 tv Exp $
+$NetBSD: patch-ab,v 1.45 2004/10/12 04:41:39 tv Exp $
 
 --- configure.orig     2004-09-19 08:22:04.000000000 -0400
 +++ configure
@@ -21,7 +21,7 @@
    ;;
  
 +interix3*)
-+  lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
++  lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
 +  ;;
 +
  irix5* | irix6* | nonstopux*)
@@ -105,7 +105,7 @@
 +      # 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_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'
++      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 ${wl}--image-base,$(($RANDOM %4096/2*262144+1342177280)) -o $lib'
 +      export_dynamic_flag_spec='${wl}-E'
 +      hardcode_direct=yes
 +      hardcode_libdir_flag_spec='${wl}-h,$libdir'
@@ -214,16 +214,24 @@
          ac_ext=cc
  ac_cpp='$CXXCPP $CPPFLAGS'
  ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-@@ -10817,6 +10854,8 @@ if test -z "$aix_libpath"; then aix_libp
+@@ -10817,6 +10854,16 @@ if test -z "$aix_libpath"; then aix_libp
        ;;
      esac
      ;;
 +  interix3*)
++    # Oy, what a hack.
++    # Because shlibs are not compiled -fPIC due to broken code, we must
++    # choose an --image-base.  Otherwise, 0x10000000 will be chosen for
++    # 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_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}--image-base,$(($RANDOM %4096/2*262144+1342177280)) -o $lib'
++    archive_expsym_cmds_CXX='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 ${wl}--image-base,$(($RANDOM %4096/2*262144+1342177280)) -o $lib'
 +    ;;
    irix5* | irix6*)
      case $cc_basename in
        CC)
-@@ -10936,6 +10975,13 @@ if test -z "$aix_libpath"; then aix_libp
+@@ -10936,6 +10983,13 @@ if test -z "$aix_libpath"; then aix_libp
      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
        archive_cmds_CXX='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
        wlarc=
@@ -237,7 +245,7 @@
        hardcode_libdir_flag_spec_CXX='-R$libdir'
        hardcode_direct_CXX=yes
        hardcode_shlibpath_var_CXX=no
-@@ -11324,6 +11370,14 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c
+@@ -11324,6 +11378,21 @@ if { (eval echo "$as_me:$LINENO: \"$ac_c
      esac
    done
  
@@ -247,12 +255,19 @@
 +      predep_objects_CXX=`eval echo $predep_objects_CXX | sed -e 's:/usr/lib/c++rt0.o:$cpprt0_file:'`
 +    fi
 +    ;;
++  interix3*)
++    # Interix installs completely hosed .la files for C++, so rather than
++    # hack all around it, let's just trust "g++" to DTRT.
++    predep_objects_CXX=
++    postdep_objects_CXX=
++    postdeps_CXX=
++    ;;
 +  esac
 +
    # Clean up.
    rm -f a.out a.exe
  else
-@@ -11371,9 +11425,11 @@ echo $ECHO_N "checking for $compiler opt
+@@ -11371,9 +11440,11 @@ echo $ECHO_N "checking for $compiler opt
        lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
        ;;
      darwin* | rhapsody*)
@@ -265,7 +280,7 @@
        ;;
      *djgpp*)
        # DJGPP does not support shared libraries at all
-@@ -11395,6 +11451,10 @@ echo $ECHO_N "checking for $compiler opt
+@@ -11395,6 +11466,10 @@ echo $ECHO_N "checking for $compiler opt
        ;;
        esac
        ;;
@@ -276,7 +291,7 @@
      *)
        lt_prog_compiler_pic_CXX='-fPIC'
        ;;
-@@ -11469,6 +11529,8 @@ echo $ECHO_N "checking for $compiler opt
+@@ -11469,6 +11544,8 @@ echo $ECHO_N "checking for $compiler opt
            ;;
        esac
        ;;
@@ -285,7 +300,7 @@
        irix5* | irix6* | nonstopux*)
        case $cc_basename in
          CC)
-@@ -11939,6 +12001,7 @@ beos*)
+@@ -11939,6 +12016,7 @@ beos*)
  bsdi[45]*)
    version_type=linux
    need_version=no
@@ -293,7 +308,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'
-@@ -12053,16 +12116,17 @@ kfreebsd*-gnu)
+@@ -12053,16 +12131,17 @@ kfreebsd*-gnu)
    ;;
  
  freebsd*)
@@ -317,7 +332,7 @@
        need_version=yes
        ;;
    esac
-@@ -12138,15 +12202,22 @@ hpux9* | hpux10* | hpux11*)
+@@ -12138,15 +12217,22 @@ hpux9* | hpux10* | hpux11*)
    postinstall_cmds='chmod 555 $lib'
    ;;
  
@@ -346,7 +361,7 @@
    esac
    need_lib_prefix=no
    need_version=no
-@@ -12223,11 +12294,11 @@ knetbsd*-gnu)
+@@ -12223,11 +12309,11 @@ knetbsd*-gnu)
    ;;
  
  netbsd*)
@@ -360,7 +375,7 @@
      finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
      dynamic_linker='NetBSD (a.out) ld.so'
    else



Home | Main Index | Thread Index | Old Index