[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug ld/26150] Assertion failure at ldlang.c:7269 when using inline asse
From: |
amodra at gmail dot com |
Subject: |
[Bug ld/26150] Assertion failure at ldlang.c:7269 when using inline assembly, -flto and --no-whole-archive |
Date: |
Tue, 23 Jun 2020 10:12:06 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=26150
--- Comment #10 from Alan Modra <amodra at gmail dot com> ---
This took a little time to recreate, mainly due to using $(wildcard ) in the
makefile. That was a bad idea, because the order of files in the archive
matters for this testcase, and apparently my file order was different to yours.
Anyway, the trigger for the ld problem here is that you used plain "ar" to
create the archive rather than "gcc-ar" or "ar --plugin ...liblto_plugin.so".
That leads to the archive map using the normal object file symbols rather than
the lto symbols, and there is a difference in the case of that quite nasty
archive0__object1.o generated from assembly.
$ aarch64-linux-nm archive0__object1.o
U archive0__object0
0000000000000000 T archive0__object1
$ aarch64-linux-gcc-nm archive0__object1.o
/usr/local/bin/../lib/gcc/aarch64-linux/11.0.0/../../../../aarch64-linux/bin/nm:
archive0__object1.o: no symbols
$ aarch64-linux-nm --plugin
/usr/local/libexec/gcc/aarch64-linux/11.0.0/liblto_plugin.so
archive0__object1.o
aarch64-linux-nm: archive0__object1.o: no symbols
So the lesson for users is to not write asm statements that define global
symbols, particularly if the C file might be compiled with -flto.
Catching this case in the linker is a pain.
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug ld/26150] New: Assertion failure at ldlang.c:7269 when using inline assembly, -flto and --no-whole-archive, pexu at sourceware dot mail.kapsi.fi, 2020/06/22
- [Bug ld/26150] Assertion failure at ldlang.c:7269 when using inline assembly, -flto and --no-whole-archive, pexu at sourceware dot mail.kapsi.fi, 2020/06/22
- [Bug ld/26150] Assertion failure at ldlang.c:7269 when using inline assembly, -flto and --no-whole-archive, pexu at sourceware dot mail.kapsi.fi, 2020/06/22
- [Bug ld/26150] Assertion failure at ldlang.c:7269 when using inline assembly, -flto and --no-whole-archive, pexu at sourceware dot mail.kapsi.fi, 2020/06/22
- [Bug ld/26150] Assertion failure at ldlang.c:7269 when using inline assembly, -flto and --no-whole-archive, pexu at sourceware dot mail.kapsi.fi, 2020/06/22
- [Bug ld/26150] Assertion failure at ldlang.c:7269 when using inline assembly, -flto and --no-whole-archive, pexu at sourceware dot mail.kapsi.fi, 2020/06/22
- [Bug ld/26150] Assertion failure at ldlang.c:7269 when using inline assembly, -flto and --no-whole-archive, pexu at sourceware dot mail.kapsi.fi, 2020/06/22
- [Bug ld/26150] Assertion failure at ldlang.c:7269 when using inline assembly, -flto and --no-whole-archive, pexu at sourceware dot mail.kapsi.fi, 2020/06/22
- [Bug ld/26150] Assertion failure at ldlang.c:7269 when using inline assembly, -flto and --no-whole-archive, pexu at sourceware dot mail.kapsi.fi, 2020/06/22
- [Bug ld/26150] Assertion failure at ldlang.c:7269 when using inline assembly, -flto and --no-whole-archive, pexu at sourceware dot mail.kapsi.fi, 2020/06/22
- [Bug ld/26150] Assertion failure at ldlang.c:7269 when using inline assembly, -flto and --no-whole-archive,
amodra at gmail dot com <=
- [Bug ld/26150] Assertion failure at ldlang.c:7269 when using inline assembly, -flto and --start-group, amodra at gmail dot com, 2020/06/23
- [Bug ld/26150] Assertion failure at ldlang.c:7269 when using inline assembly, -flto and --start-group, pexu at sourceware dot mail.kapsi.fi, 2020/06/23
- [Bug ld/26150] Assertion failure at ldlang.c:7269 when using inline assembly, -flto and --start-group, cvs-commit at gcc dot gnu.org, 2020/06/23
- [Bug ld/26150] Assertion failure at ldlang.c:7269 when using inline assembly, -flto and --start-group, amodra at gmail dot com, 2020/06/25