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