Blame SOURCES/libtool-2.4.6-disable-lto-link-order2.patch

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