summaryrefslogtreecommitdiff
path: root/libtool-2.4.6-disable-lto-link-order2.patch
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2024-09-26 04:04:44 +0000
committerCoprDistGit <infra@openeuler.org>2024-09-26 04:04:44 +0000
commit641419cf7f0929d6494b8235f78f6560f7a76140 (patch)
tree830630ec91d544370b96b11aa763601c22e3e9ac /libtool-2.4.6-disable-lto-link-order2.patch
parent55dfd3ef86e71199d47a7bff68e2d902aa586999 (diff)
automatic import of libtool
Diffstat (limited to 'libtool-2.4.6-disable-lto-link-order2.patch')
-rw-r--r--libtool-2.4.6-disable-lto-link-order2.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/libtool-2.4.6-disable-lto-link-order2.patch b/libtool-2.4.6-disable-lto-link-order2.patch
new file mode 100644
index 0000000..5e403e9
--- /dev/null
+++ b/libtool-2.4.6-disable-lto-link-order2.patch
@@ -0,0 +1,53 @@
+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_new.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*-ffat-lto-objects }
++
+ 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)])