core/libtool to 2.4.6+59+gb55b1cc8-2

This commit is contained in:
Kevin Mihelich 2022-02-15 00:46:26 +00:00
parent 7a052491e6
commit a6fa360bc9
2 changed files with 71 additions and 6 deletions

View file

@ -1,4 +1,6 @@
# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org> # Maintainer: Giancarlo Razzolini <grazzolini@archlinux.org>
# Maintainer: Frederik Schwan <freswa at archlinux dot org>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org> # Contributor: Allan McRae <allan@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org> # Contributor: judd <jvinet@zeroflux.org>
@ -12,9 +14,9 @@
noautobuild=1 noautobuild=1
pkgname=libtool pkgname=libtool
pkgver=2.4.6+44+gb9b44533 pkgver=2.4.6+59+gb55b1cc8
pkgrel=16 pkgrel=2
_gccver=11.1.0 _gccver=11.2.0
pkgdesc='A generic library support script' pkgdesc='A generic library support script'
arch=(x86_64) arch=(x86_64)
url='https://www.gnu.org/software/libtool' url='https://www.gnu.org/software/libtool'
@ -26,17 +28,19 @@ checkdepends=(gcc-fortran)
provides=("libltdl=$pkgver") provides=("libltdl=$pkgver")
conflicts=(libltdl) conflicts=(libltdl)
replaces=(libltdl) replaces=(libltdl)
options=('!distcc') options=(!distcc)
_commit=b9b44533fbf7c7752ffd255c3d09cc360e24183b _commit=b55b1cc8419b544b5cc3e1c204b2ce85112ed762
source=(git+https://git.savannah.gnu.org/git/libtool.git#commit=$_commit source=(git+https://git.savannah.gnu.org/git/libtool.git#commit=$_commit
git+https://git.savannah.gnu.org/git/gnulib.git git+https://git.savannah.gnu.org/git/gnulib.git
gnulib-bootstrap::git+https://github.com/gnulib-modules/bootstrap.git gnulib-bootstrap::git+https://github.com/gnulib-modules/bootstrap.git
no_hostname.patch no_hostname.patch
disable-lto-link-order2.patch
armv7h-nopic.patch) armv7h-nopic.patch)
sha256sums=('SKIP' sha256sums=('SKIP'
'SKIP' 'SKIP'
'SKIP' 'SKIP'
'693aabb24a6e7ce21fe0b5d14394e19edcb8476663b5afa4463f9fa0df24d946' '693aabb24a6e7ce21fe0b5d14394e19edcb8476663b5afa4463f9fa0df24d946'
'b6dce6681f223b18a90614edbcdeb00f228abd1216e22c4bd07285321cd2ceb7'
'0e19dec2dabc958ef5d1bcfd0879174766c5783032319fc17d5d6692b2b397c8') '0e19dec2dabc958ef5d1bcfd0879174766c5783032319fc17d5d6692b2b397c8')
pkgver() { pkgver() {
@ -49,6 +53,11 @@ prepare() {
patch -Np1 -i ${srcdir}/no_hostname.patch 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 submodule init
git config --local submodule.gnulib.url "$srcdir/gnulib" git config --local submodule.gnulib.url "$srcdir/gnulib"
git config --local submodule.gl-mod/bootstrap.url "$srcdir/gnulib-bootstrap" git config --local submodule.gl-mod/bootstrap.url "$srcdir/gnulib-bootstrap"

View file

@ -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)])