[arch-commits] Commit in libtool/trunk (PKGBUILD disable-lto-link-order2.patch)

Frederik Schwan freswa at gemini.archlinux.org
Wed Feb 9 13:02:16 UTC 2022


    Date: Wednesday, February 9, 2022 @ 13:02:15
  Author: freswa
Revision: 436707

enable lto by fixing test 67

Added:
  libtool/trunk/disable-lto-link-order2.patch
Modified:
  libtool/trunk/PKGBUILD

-------------------------------+
 PKGBUILD                      |   20 +++++++++-----
 disable-lto-link-order2.patch |   56 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 69 insertions(+), 7 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2022-02-09 12:19:41 UTC (rev 436706)
+++ PKGBUILD	2022-02-09 13:02:15 UTC (rev 436707)
@@ -1,6 +1,6 @@
 # Maintainer: Giancarlo Razzolini <grazzolini at archlinux.org>
 # Maintainer: Frederik Schwan <freswa at archlinux dot org>
-# Contributor:  Bartłomiej Piotrowski <bpiotrowski at archlinux.org>
+# Contributor: Bartłomiej Piotrowski <bpiotrowski at archlinux.org>
 # Contributor: Allan McRae <allan at archlinux.org>
 # Contributor: judd <jvinet at zeroflux.org>
 
@@ -7,8 +7,8 @@
 # NOTE: requires rebuilt with each new gcc version
 
 pkgname=libtool
-pkgver=2.4.6+42+gb88cebd5
-pkgrel=17
+pkgver=2.4.6+59+gb55b1cc8
+pkgrel=1
 _gccver=11.2.0
 pkgdesc='A generic library support script'
 arch=(x86_64)
@@ -21,16 +21,17 @@
 provides=("libltdl=$pkgver" "libtool-multilib=$pkgver")
 conflicts=(libltdl libtool-multilib)
 replaces=(libltdl libtool-multilib)
-options=(!lto)
-_commit=b88cebd510add4420dd8f5367e3cc6e6e1f267cd
+_commit=b55b1cc8419b544b5cc3e1c204b2ce85112ed762
 source=(git+https://git.savannah.gnu.org/git/libtool.git#commit=$_commit
         git+https://git.savannah.gnu.org/git/gnulib.git
         gnulib-bootstrap::git+https://github.com/gnulib-modules/bootstrap.git
-        no_hostname.patch)
+        no_hostname.patch
+        disable-lto-link-order2.patch)
 sha256sums=('SKIP'
             'SKIP'
             'SKIP'
-            '693aabb24a6e7ce21fe0b5d14394e19edcb8476663b5afa4463f9fa0df24d946')
+            '693aabb24a6e7ce21fe0b5d14394e19edcb8476663b5afa4463f9fa0df24d946'
+            'b6dce6681f223b18a90614edbcdeb00f228abd1216e22c4bd07285321cd2ceb7')
 
 pkgver() {
   cd libtool
@@ -42,6 +43,11 @@
 
   patch -Np1 -i ${srcdir}/no_hostname.patch
 
+  # test 67 is broken with lto
+  # this patch removes the -flto flag for this very test
+  # adapt when -ffat-lto-objects is enabled by Arch
+  patch -Np1 -i ${srcdir}/disable-lto-link-order2.patch
+
   git submodule init
   git config --local submodule.gnulib.url "$srcdir/gnulib"
   git config --local submodule.gl-mod/bootstrap.url "$srcdir/gnulib-bootstrap"

Added: disable-lto-link-order2.patch
===================================================================
--- disable-lto-link-order2.patch	                        (rev 0)
+++ disable-lto-link-order2.patch	2022-02-09 13:02:15 UTC (rev 436707)
@@ -0,0 +1,56 @@
+This patch is derived from 
+https://src.fedoraproject.org/rpms/libtool/blob/rawhide/f/libtool-2.4.6-disable-lto-link-order2.patch
+
+Enabling lto will result in failure during test phase, to be precise test 67 will cause it.
+Compiler flags for this test (and most likely for rest of them) are inherited from actual build phase.
+I'm not sure if this is expected.
+
+Most distribution disables this test. We try to keep it by stripping lto flags for it.
+
+Origin for this tests: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=391427
+
+--- a/tests/link-order2.at	2015-01-16 19:52:04.000000000 +0100
++++ b/tests/link-order2.at	2021-11-30 02:01:09.574451906 +0100
+@@ -47,6 +47,8 @@
+ AT_KEYWORDS([libtool])
+ AT_KEYWORDS([interactive])dnl running 'wrong' may cause a popup window.
+ 
++NO_LTO_CFLAGS=${CFLAGS/ -flto}
++
+ eval `$LIBTOOL --config | $EGREP '^(shlibpath_var|allow_undefined_flag)='`
+ 
+ undefined_setting=-no-undefined
+@@ -89,12 +91,12 @@
+ EOF
+ 
+ for file in a0 a1 b; do
+-  $LIBTOOL --mode=compile $CC $CPPFLAGS $CFLAGS -c $file.c
++  $LIBTOOL --mode=compile $CC $CPPFLAGS $NO_LTO_CFLAGS -c $file.c
+ done
+-$CC $CPPFLAGS $CFLAGS -c main.c
++$CC $CPPFLAGS $NO_LTO_CFLAGS -c main.c
+ 
+ # Build an old, installed library.
+-$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS $static -o liba0.la a0.lo -rpath $deflibdir
++$LIBTOOL --mode=link $CC $NO_LTO_CFLAGS $LDFLAGS $static -o liba0.la a0.lo -rpath $deflibdir
+ $LIBTOOL --mode=install cp liba0.la $deflibdir/liba0.la
+ $LIBTOOL --mode=clean rm -f liba0.la
+ 
+@@ -118,13 +120,13 @@
+     esac
+     test non-libtool,-static-libtool-libs = "$type_of_depdepl,$static" &&
+        static=-all-static
+-    $LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS $static -o liba1.la a1.lo -rpath $libdir
+-    $LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS $static -o libb.la b.lo liba1.la -rpath $libdir
+-    AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS $static -o main$EXEEXT main.$OBJEXT libb.la -la0],
++    $LIBTOOL --mode=link $CC $NO_LTO_CFLAGS $LDFLAGS $static -o liba1.la a1.lo -rpath $libdir
++    $LIBTOOL --mode=link $CC $NO_LTO_CFLAGS $LDFLAGS $static -o libb.la b.lo liba1.la -rpath $libdir
++    AT_CHECK([$LIBTOOL --mode=link $CC $NO_LTO_CFLAGS $LDFLAGS $static -o main$EXEEXT main.$OBJEXT libb.la -la0],
+ 	     [], [ignore], [ignore])
+     LT_AT_EXEC_CHECK([./main])
+     # Now test that if we reverse the link order, the program fails.
+-    AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS $static -o wrong$EXEEXT main.$OBJEXT -la0 libb.la],
++    AT_CHECK([$LIBTOOL --mode=link $CC $NO_LTO_CFLAGS $LDFLAGS $static -o wrong$EXEEXT main.$OBJEXT -la0 libb.la],
+ 	     [], [ignore], [ignore])
+     if test yes, != "$shared_fails,$static"; then
+       LT_AT_EXEC_CHECK([./wrong], [1], [], [ignore], [|| (exit 1)])



More information about the arch-commits mailing list