[Bug 2038385] [NEW] invalid LTO in static libraries prevents all use
Eli Schwartz
2038385 at bugs.launchpad.net
Tue Oct 3 22:10:14 UTC 2023
Public bug reported:
I did this:
```
git clone https://github.com/mesonbuild/meson/ /meson
cd "/meson/test cases/frameworks/1 boost/"
meson setup builddir
ninja -C builddir
```
It did not work:
```
[1/1] Linking target utf
FAILED: utf
c++ -o utf utf.p/unit_test.cpp.o -Wl,--as-needed -Wl,--no-undefined -Wl,--start-group /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.a -Wl,--end-group
during RTL pass: final
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/impl/results_reporter.ipp: In member function 'test_suite_start':
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/impl/results_reporter.ipp:76:5: internal compiler error: in ix86_print_operand_address_as, at config/i386/i386.cc:13872
during RTL pass: final
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/impl/execution_monitor.ipp: In function 'report_error.constprop':
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/impl/execution_monitor.ipp:279:1: internal compiler error: in ix86_print_operand_address_as, at config/i386/i386.cc:13872
during RTL pass: final
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/impl/xml_log_formatter.ipp: In member function 'log_entry_value':
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/impl/xml_log_formatter.ipp:171:1: internal compiler error: in ix86_print_operand_address_as, at config/i386/i386.cc:13872
during RTL pass: final
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/utils/runtime/parameter.hpp: In member function 'produce_default':
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/utils/runtime/parameter.hpp:389:5: internal compiler error: in ix86_print_operand_address_as, at config/i386/i386.cc:13872
during RTL pass: final
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/impl/unit_test_main.ipp: In function '__dt_base .constprop':
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/impl/unit_test_main.ipp:187:5: internal compiler error: in ix86_print_operand_address_as, at config/i386/i386.cc:13872
0x7fee52161a8f __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
0x7fee52161b48 __libc_start_main_impl
../csu/libc-start.c:360
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-12/README.Bugs> for instructions.
make: *** [/tmp/ccGTnWEq.mk:5: /tmp/ccOUt5k5.ltrans1.ltrans.o] Error 1
make: *** Waiting for unfinished jobs....
0x7f665a03ca8f __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
0x7f665a03cb48 __libc_start_main_impl
../csu/libc-start.c:360
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-12/README.Bugs> for instructions.
make: *** [/tmp/ccGTnWEq.mk:20: /tmp/ccOUt5k5.ltrans6.ltrans.o] Error 1
0x7fa714fcda8f __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
0x7fa714fcdb48 __libc_start_main_impl
../csu/libc-start.c:360
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-12/README.Bugs> for instructions.
make: *** [/tmp/ccGTnWEq.mk:14: /tmp/ccOUt5k5.ltrans4.ltrans.o] Error 1
during RTL pass: final
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/framework.hpp: In member function '__ct_base .isra':
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/framework.hpp:279:98: internal compiler error: in ix86_print_operand_address_as, at config/i386/i386.cc:13872
0x7f7b87b5aa8f __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
0x7f7b87b5ab48 __libc_start_main_impl
../csu/libc-start.c:360
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-12/README.Bugs> for instructions.
make: *** [/tmp/ccGTnWEq.mk:8: /tmp/ccOUt5k5.ltrans2.ltrans.o] Error 1
0x7fc570fdfa8f __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
0x7fc570fdfb48 __libc_start_main_impl
../csu/libc-start.c:360
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-12/README.Bugs> for instructions.
make: *** [/tmp/ccGTnWEq.mk:17: /tmp/ccOUt5k5.ltrans5.ltrans.o] Error 1
0x7f82f4632a8f __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
0x7f82f4632b48 __libc_start_main_impl
../csu/libc-start.c:360
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-12/README.Bugs> for instructions.
make: *** [/tmp/ccGTnWEq.mk:23: /tmp/ccOUt5k5.ltrans7.ltrans.o] Error 1
during RTL pass: final
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/throw_exception.hpp: In member function 'clone':
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/throw_exception.hpp:152:5: internal compiler error: in ix86_print_operand_address_as, at config/i386/i386.cc:13872
during RTL pass: final
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/utils/runtime/parameter.hpp: In member function 'produce_default':
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/utils/runtime/parameter.hpp:339:5: internal compiler error: in ix86_print_operand_address_as, at config/i386/i386.cc:13872
0x7fc94e5ffa8f __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
0x7fc94e5ffb48 __libc_start_main_impl
../csu/libc-start.c:360
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-12/README.Bugs> for instructions.
make: *** [/tmp/ccGTnWEq.mk:2: /tmp/ccOUt5k5.ltrans0.ltrans.o] Error 1
0x7ff8866fea8f __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
0x7ff8866feb48 __libc_start_main_impl
../csu/libc-start.c:360
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-12/README.Bugs> for instructions.
make: *** [/tmp/ccGTnWEq.mk:11: /tmp/ccOUt5k5.ltrans3.ltrans.o] Error 1
lto-wrapper: fatal error: make returned 2 exit status
compilation terminated.
/usr/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
```
There is an internal compiler error in GCC itself, but the overall issue
is that it is attempting to use an LTO'ed static library:
```
$ grep VERSION= /etc/os-release
VERSION="23.04 (Lunar Lobster)"
$ gcc --version
gcc (Ubuntu 12.3.0-1ubuntu1~23.04) 12.3.0
$ readelf --debug-dump /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.a| grep 'GNU C++'
<e> DW_AT_producer : (indirect string, offset: 0x164fa): GNU C++17 12.2.0 -m64 -mtune=generic -march=x86-64 -g -g -O2 -O3 -fvisibility-inlines-hidden -flto -ffat-lto-objects -fstack-protector-strong -finline-functions -fvisibility=hidden -fasynchronous-unwind-tables -fstack-protector-strong -fstack-clash-protection -fcf-protection
```
GCC versions mismatch, you cannot do this.
See, particularly, https://bugs.gentoo.org/900519 (GCC apparently forgot to crank the bytecode version). In general, this should not be an ICE, it should just be "lto1: fatal error: bytecode stream in file 'XXX' generated with LTO version AAA instead of the expected BBB".
"
** Affects: boost1.74 (Ubuntu)
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to boost1.74 in Ubuntu.
https://bugs.launchpad.net/bugs/2038385
Title:
invalid LTO in static libraries prevents all use
Status in boost1.74 package in Ubuntu:
New
Bug description:
I did this:
```
git clone https://github.com/mesonbuild/meson/ /meson
cd "/meson/test cases/frameworks/1 boost/"
meson setup builddir
ninja -C builddir
```
It did not work:
```
[1/1] Linking target utf
FAILED: utf
c++ -o utf utf.p/unit_test.cpp.o -Wl,--as-needed -Wl,--no-undefined -Wl,--start-group /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.a -Wl,--end-group
during RTL pass: final
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/impl/results_reporter.ipp: In member function 'test_suite_start':
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/impl/results_reporter.ipp:76:5: internal compiler error: in ix86_print_operand_address_as, at config/i386/i386.cc:13872
during RTL pass: final
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/impl/execution_monitor.ipp: In function 'report_error.constprop':
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/impl/execution_monitor.ipp:279:1: internal compiler error: in ix86_print_operand_address_as, at config/i386/i386.cc:13872
during RTL pass: final
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/impl/xml_log_formatter.ipp: In member function 'log_entry_value':
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/impl/xml_log_formatter.ipp:171:1: internal compiler error: in ix86_print_operand_address_as, at config/i386/i386.cc:13872
during RTL pass: final
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/utils/runtime/parameter.hpp: In member function 'produce_default':
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/utils/runtime/parameter.hpp:389:5: internal compiler error: in ix86_print_operand_address_as, at config/i386/i386.cc:13872
during RTL pass: final
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/impl/unit_test_main.ipp: In function '__dt_base .constprop':
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/impl/unit_test_main.ipp:187:5: internal compiler error: in ix86_print_operand_address_as, at config/i386/i386.cc:13872
0x7fee52161a8f __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
0x7fee52161b48 __libc_start_main_impl
../csu/libc-start.c:360
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-12/README.Bugs> for instructions.
make: *** [/tmp/ccGTnWEq.mk:5: /tmp/ccOUt5k5.ltrans1.ltrans.o] Error 1
make: *** Waiting for unfinished jobs....
0x7f665a03ca8f __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
0x7f665a03cb48 __libc_start_main_impl
../csu/libc-start.c:360
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-12/README.Bugs> for instructions.
make: *** [/tmp/ccGTnWEq.mk:20: /tmp/ccOUt5k5.ltrans6.ltrans.o] Error 1
0x7fa714fcda8f __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
0x7fa714fcdb48 __libc_start_main_impl
../csu/libc-start.c:360
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-12/README.Bugs> for instructions.
make: *** [/tmp/ccGTnWEq.mk:14: /tmp/ccOUt5k5.ltrans4.ltrans.o] Error 1
during RTL pass: final
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/framework.hpp: In member function '__ct_base .isra':
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/framework.hpp:279:98: internal compiler error: in ix86_print_operand_address_as, at config/i386/i386.cc:13872
0x7f7b87b5aa8f __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
0x7f7b87b5ab48 __libc_start_main_impl
../csu/libc-start.c:360
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-12/README.Bugs> for instructions.
make: *** [/tmp/ccGTnWEq.mk:8: /tmp/ccOUt5k5.ltrans2.ltrans.o] Error 1
0x7fc570fdfa8f __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
0x7fc570fdfb48 __libc_start_main_impl
../csu/libc-start.c:360
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-12/README.Bugs> for instructions.
make: *** [/tmp/ccGTnWEq.mk:17: /tmp/ccOUt5k5.ltrans5.ltrans.o] Error 1
0x7f82f4632a8f __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
0x7f82f4632b48 __libc_start_main_impl
../csu/libc-start.c:360
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-12/README.Bugs> for instructions.
make: *** [/tmp/ccGTnWEq.mk:23: /tmp/ccOUt5k5.ltrans7.ltrans.o] Error 1
during RTL pass: final
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/throw_exception.hpp: In member function 'clone':
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/throw_exception.hpp:152:5: internal compiler error: in ix86_print_operand_address_as, at config/i386/i386.cc:13872
during RTL pass: final
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/utils/runtime/parameter.hpp: In member function 'produce_default':
../../../../../build/boost1.74-voy3KV/boost1.74-1.74.0/./boost/test/utils/runtime/parameter.hpp:339:5: internal compiler error: in ix86_print_operand_address_as, at config/i386/i386.cc:13872
0x7fc94e5ffa8f __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
0x7fc94e5ffb48 __libc_start_main_impl
../csu/libc-start.c:360
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-12/README.Bugs> for instructions.
make: *** [/tmp/ccGTnWEq.mk:2: /tmp/ccOUt5k5.ltrans0.ltrans.o] Error 1
0x7ff8866fea8f __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
0x7ff8866feb48 __libc_start_main_impl
../csu/libc-start.c:360
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-12/README.Bugs> for instructions.
make: *** [/tmp/ccGTnWEq.mk:11: /tmp/ccOUt5k5.ltrans3.ltrans.o] Error 1
lto-wrapper: fatal error: make returned 2 exit status
compilation terminated.
/usr/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
```
There is an internal compiler error in GCC itself, but the overall
issue is that it is attempting to use an LTO'ed static library:
```
$ grep VERSION= /etc/os-release
VERSION="23.04 (Lunar Lobster)"
$ gcc --version
gcc (Ubuntu 12.3.0-1ubuntu1~23.04) 12.3.0
$ readelf --debug-dump /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.a| grep 'GNU C++'
<e> DW_AT_producer : (indirect string, offset: 0x164fa): GNU C++17 12.2.0 -m64 -mtune=generic -march=x86-64 -g -g -O2 -O3 -fvisibility-inlines-hidden -flto -ffat-lto-objects -fstack-protector-strong -finline-functions -fvisibility=hidden -fasynchronous-unwind-tables -fstack-protector-strong -fstack-clash-protection -fcf-protection
```
GCC versions mismatch, you cannot do this.
See, particularly, https://bugs.gentoo.org/900519 (GCC apparently forgot to crank the bytecode version). In general, this should not be an ICE, it should just be "lto1: fatal error: bytecode stream in file 'XXX' generated with LTO version AAA instead of the expected BBB".
"
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/boost1.74/+bug/2038385/+subscriptions
More information about the foundations-bugs
mailing list