pkgsrc-Changes-HG archive

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

[pkgsrc/trunk]: pkgsrc/devel/libtool libtool: Remove hardcoded compiler objec...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/c9d36938fe43
branches:  trunk
changeset: 382747:c9d36938fe43
user:      jperkin <jperkin%pkgsrc.org@localhost>
date:      Thu Aug 04 12:23:21 2022 +0000

description:
libtool: Remove hardcoded compiler objects on SunOS.

I've been running with this patch for many years, and it's required to ensure
correct operation of USE_PKGSRC_GCC_RUNTIME, as well as allowing libtool to be
compiler-agnostic, at least within the same compiler family.  Bad things happen
otherwise, such as multiple libstdc++.so's being pulled in, and it matches the
behaviour of NetBSD and others.

While here simplify some of the logic, removing support for GCC 2.7(!) and
Solaris 2.5 and earlier(!!), making this section of code easier to read.

Ride previous PKGREVISION bump.

diffstat:

 devel/libtool/distinfo                          |    8 +-
 devel/libtool/patches/manual-libtool.m4         |   53 ++++++-
 devel/libtool/patches/patch-build-aux_ltmain.sh |    4 +-
 devel/libtool/patches/patch-configure           |  156 ++++++++++++++---------
 devel/libtool/patches/patch-libltdl_configure   |    8 +-
 5 files changed, 147 insertions(+), 82 deletions(-)

diffs (truncated from 718 to 300 lines):

diff -r 75ac025882e1 -r c9d36938fe43 devel/libtool/distinfo
--- a/devel/libtool/distinfo    Thu Aug 04 12:18:47 2022 +0000
+++ b/devel/libtool/distinfo    Thu Aug 04 12:23:21 2022 +0000
@@ -1,10 +1,10 @@
-$NetBSD: distinfo,v 1.109 2022/08/03 13:06:31 jperkin Exp $
+$NetBSD: distinfo,v 1.110 2022/08/04 12:23:21 jperkin Exp $
 
 BLAKE2s (libtool-2.4.7.tar.gz) = ae08c74a0da41b3ae252b207ff642d594648edc9c1af41b0191b899d844fecf7
 SHA512 (libtool-2.4.7.tar.gz) = 27acef46d9eb67203d708b57d80b853f76fa4b9c2720ff36ec161e6cdf702249e7982214ddf60bae75511aa79bc7d92aa27e3eab7ef9c0f5c040e8e42e76a385
 Size (libtool-2.4.7.tar.gz) = 1938886 bytes
 SHA1 (patch-Makefile.in) = 0adb634335acd5fb280c99b5d43ae568018ca0af
 SHA1 (patch-build-aux_depcomp) = ae6f93ad4fac1df648cfcb62601c72f9ebb30233
-SHA1 (patch-build-aux_ltmain.sh) = 455f1ea72a60e76295d62adb2b2a307df54d9095
-SHA1 (patch-configure) = 22adf967ecbd2e77294d34f5a5f662526a0d3509
-SHA1 (patch-libltdl_configure) = a4ec3706e249e2f0c014513a7be70f0619b0562a
+SHA1 (patch-build-aux_ltmain.sh) = ecb677b383caaaf8efb75a01cc17d49e5599c53c
+SHA1 (patch-configure) = 5c2718a6ca14a1f99e1f965d0636d86eb74ec017
+SHA1 (patch-libltdl_configure) = 58211bf63b3f3ed5ebac583c179af7f69d955fba
diff -r 75ac025882e1 -r c9d36938fe43 devel/libtool/patches/manual-libtool.m4
--- a/devel/libtool/patches/manual-libtool.m4   Thu Aug 04 12:18:47 2022 +0000
+++ b/devel/libtool/patches/manual-libtool.m4   Thu Aug 04 12:23:21 2022 +0000
@@ -1,8 +1,9 @@
-$NetBSD: manual-libtool.m4,v 1.50 2022/08/03 13:06:32 jperkin Exp $
+$NetBSD: manual-libtool.m4,v 1.51 2022/08/04 12:23:21 jperkin Exp $
 
 Support Minix.
 Handle pkgsrc wrappers.
 Fixup output on various OS.
+Remove hardcoding of build-time compiler objects on SunOS.
 
 --- m4/libtool.m4.orig 2022-03-17 02:43:39.000000000 +0000
 +++ m4/libtool.m4
@@ -105,7 +106,7 @@
    esac
    need_lib_prefix=no
    need_version=no
-@@ -2907,19 +2916,25 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu
+@@ -2907,19 +2916,25 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu 
    dynamic_linker='GNU/Linux ld.so'
    ;;
  
@@ -159,7 +160,7 @@
    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
    shlibpath_var=LD_LIBRARY_PATH
    shlibpath_overrides_runpath=yes
-@@ -3566,12 +3581,8 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu
+@@ -3566,12 +3581,8 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu 
    lt_cv_deplibs_check_method=pass_all
    ;;
  
@@ -336,7 +337,7 @@
    AC_PROG_CXXCPP
  else
    _lt_caught_CXX_error=yes
-@@ -7115,16 +7152,14 @@ if test yes != "$_lt_caught_CXX_error";
+@@ -7115,16 +7152,14 @@ if test yes != "$_lt_caught_CXX_error"; 
        esac
        ;;
  
@@ -361,16 +362,48 @@
        ;;
  
        *nto* | *qnx*)
-@@ -7298,7 +7333,7 @@ if test yes != "$_lt_caught_CXX_error";
+@@ -7298,35 +7333,12 @@ if test yes != "$_lt_caught_CXX_error"; 
            # GNU C++ compiler with Solaris linker
            if test yes,no = "$GXX,$with_gnu_ld"; then
              _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs'
 -            if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-+            if true; then
-               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
-               _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-                   $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-@@ -7557,8 +7592,9 @@ if AC_TRY_EVAL(ac_compile); then
+-              _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
+-              _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+-                  $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+-
+-              # Commands to make compiler produce verbose output that lists
+-              # what "hidden" libraries, object files and flags are used when
+-              # linking a shared library.
+-              output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+-            else
+-              # g++ 2.7 appears to require '-G' NOT '-shared' on this
+-              # platform.
+-              _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
+-              _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+-                  $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+-
+-              # Commands to make compiler produce verbose output that lists
+-              # what "hidden" libraries, object files and flags are used when
+-              # linking a shared library.
+-              output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+-            fi
+-
++            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h $wl$soname -o $lib'
++            _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
++                $CC -shared $pic_flag $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
++            output_verbose_link_cmd=func_echo_all
+             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'
+-            case $host_os in
+-              solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+-              *)
+-                _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+-                ;;
+-            esac
++            _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+           fi
+           ;;
+         esac
+@@ -7557,8 +7569,9 @@ if AC_TRY_EVAL(ac_compile); then
      -L* | -R* | -l*)
         # Some compilers place space between "-{L,R}" and the path.
         # Remove the space.
diff -r 75ac025882e1 -r c9d36938fe43 devel/libtool/patches/patch-build-aux_ltmain.sh
--- a/devel/libtool/patches/patch-build-aux_ltmain.sh   Thu Aug 04 12:18:47 2022 +0000
+++ b/devel/libtool/patches/patch-build-aux_ltmain.sh   Thu Aug 04 12:23:21 2022 +0000
@@ -1,9 +1,9 @@
-$NetBSD: patch-build-aux_ltmain.sh,v 1.4 2022/08/03 13:06:32 jperkin Exp $
+$NetBSD: patch-build-aux_ltmain.sh,v 1.5 2022/08/04 12:23:21 jperkin Exp $
 
 Automatically generated using manual-* patches and bootstrap.
 DO NOT MODIFY THIS PATCH MANUALLY!  YOUR CHANGES WILL BE LOST!
 
---- build-aux/ltmain.sh.orig   2022-08-03 12:14:26.878811652 +0000
+--- build-aux/ltmain.sh.orig   2022-08-04 11:35:59.000000000 +0000
 +++ build-aux/ltmain.sh
 @@ -323,6 +323,9 @@ test -z "$GREP" && {
  # uses them if a suitable command of that name is not already available
diff -r 75ac025882e1 -r c9d36938fe43 devel/libtool/patches/patch-configure
--- a/devel/libtool/patches/patch-configure     Thu Aug 04 12:18:47 2022 +0000
+++ b/devel/libtool/patches/patch-configure     Thu Aug 04 12:23:21 2022 +0000
@@ -1,9 +1,9 @@
-$NetBSD: patch-configure,v 1.5 2022/08/03 13:06:32 jperkin Exp $
+$NetBSD: patch-configure,v 1.6 2022/08/04 12:23:21 jperkin Exp $
 
 Automatically generated using manual-* patches and bootstrap.
 DO NOT MODIFY THIS PATCH MANUALLY!  YOUR CHANGES WILL BE LOST!
 
---- configure.orig     2022-08-03 12:14:26.894800127 +0000
+--- configure.orig     2022-08-04 11:35:59.000000000 +0000
 +++ configure
 @@ -748,6 +748,9 @@ AM_BACKSLASH
  AM_DEFAULT_VERBOSITY
@@ -64,7 +64,7 @@
    --libdir=DIR            object code libraries [EPREFIX/lib]
    --includedir=DIR        C header files [PREFIX/include]
    --oldincludedir=DIR     C header files for non-gcc [/usr/include]
-@@ -3342,6 +3333,20 @@ am__tar='$${TAR-tar} chof - "$$tardir"'
+@@ -3342,6 +3333,20 @@ am__tar='$${TAR-tar} chof - "$$tardir"' 
  
  
  
@@ -104,7 +104,7 @@
  : ${CP="cp -f"}
  : ${MV="mv -f"}
  : ${RM="rm -f"}
-@@ -6574,12 +6582,8 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu
+@@ -6574,12 +6582,8 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu 
    lt_cv_deplibs_check_method=pass_all
    ;;
  
@@ -420,16 +420,48 @@
        ;;
  
        *nto* | *qnx*)
-@@ -16196,7 +16227,7 @@ fi
+@@ -16196,35 +16227,12 @@ fi
            # GNU C++ compiler with Solaris linker
            if test yes,no = "$GXX,$with_gnu_ld"; then
              no_undefined_flag_CXX=' $wl-z ${wl}defs'
 -            if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-+            if true; then
-               archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
-               archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-                   $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-@@ -16360,8 +16391,9 @@ if { { eval echo "\"\$as_me\":${as_linen
+-              archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
+-              archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+-                  $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+-
+-              # Commands to make compiler produce verbose output that lists
+-              # what "hidden" libraries, object files and flags are used when
+-              # linking a shared library.
+-              output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+-            else
+-              # g++ 2.7 appears to require '-G' NOT '-shared' on this
+-              # platform.
+-              archive_cmds_CXX='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
+-              archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+-                  $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+-
+-              # Commands to make compiler produce verbose output that lists
+-              # what "hidden" libraries, object files and flags are used when
+-              # linking a shared library.
+-              output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+-            fi
+-
++            archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h $wl$soname -o $lib'
++            archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
++                $CC -shared $pic_flag $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
++            output_verbose_link_cmd=func_echo_all
+             hardcode_libdir_flag_spec_CXX='$wl-R $wl$libdir'
+-            case $host_os in
+-              solaris2.[0-5] | solaris2.[0-5].*) ;;
+-              *)
+-                whole_archive_flag_spec_CXX='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+-                ;;
+-            esac
++            whole_archive_flag_spec_CXX='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+           fi
+           ;;
+         esac
+@@ -16360,8 +16368,9 @@ if { { eval echo "\"\$as_me\":${as_linen
      -L* | -R* | -l*)
         # Some compilers place space between "-{L,R}" and the path.
         # Remove the space.
@@ -441,7 +473,7 @@
         prev=$p
         continue
         fi
-@@ -16541,9 +16573,15 @@ lt_prog_compiler_static_CXX=
+@@ -16541,9 +16550,15 @@ lt_prog_compiler_static_CXX=
        esac
        ;;
      darwin* | rhapsody*)
@@ -458,7 +490,7 @@
        ;;
      *djgpp*)
        # DJGPP does not support shared libraries at all
-@@ -16621,6 +16659,9 @@ lt_prog_compiler_static_CXX=
+@@ -16621,6 +16636,9 @@ lt_prog_compiler_static_CXX=
            ;;
        esac
        ;;
@@ -468,7 +500,7 @@
        freebsd* | dragonfly* | midnightbsd*)
        # FreeBSD uses GNU C++
        ;;
-@@ -16728,7 +16769,7 @@ lt_prog_compiler_static_CXX=
+@@ -16728,7 +16746,7 @@ lt_prog_compiler_static_CXX=
            ;;
        esac
        ;;
@@ -477,7 +509,7 @@
        ;;
        *qnx* | *nto*)
          # QNX uses GNU C++, but need to define -shared option too, otherwise
-@@ -16818,6 +16859,9 @@ lt_prog_compiler_static_CXX=
+@@ -16818,6 +16836,9 @@ lt_prog_compiler_static_CXX=
  
  case $host_os in
    # For platforms that do not support PIC, -DPIC is meaningless:
@@ -487,7 +519,7 @@
    *djgpp*)
      lt_prog_compiler_pic_CXX=
      ;;
-@@ -17545,7 +17589,7 @@ dgux*)
+@@ -17545,7 +17566,7 @@ dgux*)
    shlibpath_var=LD_LIBRARY_PATH
    ;;
  
@@ -496,7 +528,7 @@
    # DragonFly does not have aout.  When/if they implement a new
    # versioning mechanism, adjust this.
    if test -x /usr/bin/objformat; then
-@@ -17590,6 +17634,17 @@ freebsd* | dragonfly* | midnightbsd*)
+@@ -17590,6 +17611,17 @@ freebsd* | dragonfly* | midnightbsd*)
    esac
    ;;
  
@@ -514,7 +546,7 @@
  haiku*)
    version_type=linux # correct to gnu/linux during the next big refactor
    need_lib_prefix=no
-@@ -17667,12 +17722,7 @@ interix[3-9]*)
+@@ -17667,12 +17699,7 @@ interix[3-9]*)
  irix5* | irix6* | nonstopux*)
    case $host_os in
      nonstopux*) version_type=nonstopux ;;
@@ -528,7 +560,7 @@
    esac
    need_lib_prefix=no
    need_version=no
-@@ -17796,19 +17846,25 @@ fi
+@@ -17796,19 +17823,25 @@ fi
    dynamic_linker='GNU/Linux ld.so'
    ;;
  
@@ -564,7 +596,7 @@
    shlibpath_var=LD_LIBRARY_PATH
    shlibpath_overrides_runpath=yes
    hardcode_into_libs=yes
-@@ -17834,7 +17890,7 @@ newsos6)
+@@ -17834,7 +17867,7 @@ newsos6)
    ;;
  
  openbsd* | bitrig*)
@@ -573,7 +605,7 @@
    sys_lib_dlsearch_path_spec=/usr/lib



Home | Main Index | Thread Index | Old Index