Hide Forgot
This is a tracking bug for Change: Changes/LTO by default for package builds For more details, see: https://fedoraproject.org/wiki/LTOByDefault This is a proposal to enable link time optimization (LTO) of packages built with rpmbuild by default. It's an over-simplification, but think of LTO as deferring analysis, optimization and code generation until creation of an executable or dynamic shared object.
This change causes failure of gnulib's test-float test on ppc64le, which prevents packages that use gnulib's float module from being built: https://koji.fedoraproject.org/koji/taskinfo?taskID=47694984 Minimal example: $ git clone --depth 1 https://git.savannah.gnu.org/git/gnulib.git $ cd gnulib $ git checkout 7ea899a94365ece6367515a7e61452d9d2e61730 $ ./gnulib-tool --create-testdir --dir=tst float $ cd tst $ ./configure CFLAGS='-flto -O2 -m64 -mcpu=power8 -mtune=power8' $ make check $ cat gltests/test-suite.log =============================== dummy 0: ./test-suite.log =============================== # TOTAL: 1 # PASS: 0 # SKIP: 0 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 .. contents:: :depth: 2 FAIL: test-float ================ test-float.c:318: assertion 'm + m > m' failed FAIL test-float (exit status: 134) After removing -flto from CFLAGS, the test passes just fine.
This is almost certainly a broken configure test which in turn causes the mis-behavior of the gnulib float test. I'll have to verify tomorrow, but the autoconf tests which determine how gnulib packs/unpacks floating point numbers is one that's known to be broken WRT ISO C aliasing rules.
Jeff, thank you for looking into this! We had a similar problem with gnulib's test-isinf test on ppc64le four years ago but gnulib upstream is not much receptive to such reports without patches: https://lists.gnu.org/archive/html/bug-gnulib/2016-01/msg00011.html For now I have disabled LTO on ppc64le in coreutils and findutils to make the packages build again: https://src.fedoraproject.org/rpms/coreutils/c/6d3ccf4f https://src.fedoraproject.org/rpms/findutils/c/8de28b81
Moving to MODIFIED as this feature is in the testable state.
Branching F33 Change Tracker bugs. Today is the code complete (testable) deadline. All bugs should be at least in MODIFIED state by now to indicate they are testable.
Yesterday we reached the Code complete (100% code complete) deadline for Fedora 33 Changes. If your Change is complete, please set this tracking bug to ON_QA. If you need to defer this Change to Fedora 34, please let NEEDINFO me. As a reminder, we are now in the Beta Freeze. If you need to land package updates, please propose it as a Freeze Exception at https://qa.fedoraproject.org/blockerbugs/propose_bug
Closing tracking bugs for F33. If your change didn't make it into F33 for some reason, please reopen this and NEEDINFO me.