From a6fa360bc97d9baf19a5403ea7b8da7a9bef38ec Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Tue, 15 Feb 2022 00:46:26 +0000 Subject: [PATCH] core/libtool to 2.4.6+59+gb55b1cc8-2 --- core/libtool/PKGBUILD | 21 +++++--- core/libtool/disable-lto-link-order2.patch | 56 ++++++++++++++++++++++ 2 files changed, 71 insertions(+), 6 deletions(-) create mode 100644 core/libtool/disable-lto-link-order2.patch diff --git a/core/libtool/PKGBUILD b/core/libtool/PKGBUILD index 8386586eb..96b8561be 100644 --- a/core/libtool/PKGBUILD +++ b/core/libtool/PKGBUILD @@ -1,4 +1,6 @@ -# Maintainer: Bartłomiej Piotrowski +# Maintainer: Giancarlo Razzolini +# Maintainer: Frederik Schwan +# Contributor: Bartłomiej Piotrowski # Contributor: Allan McRae # Contributor: judd @@ -12,9 +14,9 @@ noautobuild=1 pkgname=libtool -pkgver=2.4.6+44+gb9b44533 -pkgrel=16 -_gccver=11.1.0 +pkgver=2.4.6+59+gb55b1cc8 +pkgrel=2 +_gccver=11.2.0 pkgdesc='A generic library support script' arch=(x86_64) url='https://www.gnu.org/software/libtool' @@ -26,17 +28,19 @@ checkdepends=(gcc-fortran) provides=("libltdl=$pkgver") conflicts=(libltdl) replaces=(libltdl) -options=('!distcc') -_commit=b9b44533fbf7c7752ffd255c3d09cc360e24183b +options=(!distcc) +_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 + disable-lto-link-order2.patch armv7h-nopic.patch) sha256sums=('SKIP' 'SKIP' 'SKIP' '693aabb24a6e7ce21fe0b5d14394e19edcb8476663b5afa4463f9fa0df24d946' + 'b6dce6681f223b18a90614edbcdeb00f228abd1216e22c4bd07285321cd2ceb7' '0e19dec2dabc958ef5d1bcfd0879174766c5783032319fc17d5d6692b2b397c8') pkgver() { @@ -49,6 +53,11 @@ prepare() { 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" diff --git a/core/libtool/disable-lto-link-order2.patch b/core/libtool/disable-lto-link-order2.patch new file mode 100644 index 000000000..7287cefe5 --- /dev/null +++ b/core/libtool/disable-lto-link-order2.patch @@ -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)])