https://sourceware.org/bugzilla/show_bug.cgi?id=23079
Bug ID: 23079
Summary: Multiple PREVAILING_DEF_IRONLY for a same symbol in an
archive
Product: binutils
Version: 2.31 (HEAD)
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: ld
Assignee: unassigned at sourceware dot org
Reporter: mliska at suse dot cz
Target Milestone: ---
Let's consider:
$ cat 1.i
int igt_subtest_jmpbuf, viewport;
$ cat 2.i
int igt_subtest_jmpbuf, viewport;
$ gcc -flto 1.i -c
$ gcc -flto 2.i -c
$ ar cru libx.la 1.o 2.o
$ ranlib libx.la
$ cat main.i
int igt_subtest_jmpbuf;
extern int viewport;
int main()
{
return igt_subtest_jmpbuf;
}
$ gcc main.i libx.la -flto
lto1: fatal error: multiple prevailing defs for ‘viewport’
compilation terminated.
lto-wrapper: fatal error: gcc returned 1 exit status
compilation terminated.
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: error:
lto-wrapper failed
collect2: error: ld returned 1 exit status
It's caused by fact that:
$ cat main.res
3
main.o 2
190 57d43a0e4f2e4898 PREVAILING_DEF main
194 57d43a0e4f2e4898 PREVAILING_DEF_IRONLY igt_subtest_jmpbuf
libx.la@0xcc 2
188 65b5ba79fd3c2703 PREVAILING_DEF_IRONLY viewport
190 65b5ba79fd3c2703 RESOLVED_IR igt_subtest_jmpbuf
libx.la@0x9d8 2
188 253018f931e7b9de PREVAILING_DEF_IRONLY viewport
190 253018f931e7b9de RESOLVED_IR igt_subtest_jmpbuf
While ld.gold does:
$ cat main.res
cat main.res
1
main.o 2
190 f4c25c288a258244 PREVAILING_DEF main
194 f4c25c288a258244 PREVAILING_DEF_IRONLY igt_subtest_jmpbuf
If I modify main.i to:
$ cat main.i
int igt_subtest_jmpbuf;
extern int viewport;
int main()
{
return igt_subtest_jmpbuf + viewport;
}
Then it's all fine with BFD resolution file looking as follows:
$ cat main.res
3
main.o 3
190 aa0f078bbef97098 PREVAILING_DEF main
194 aa0f078bbef97098 PREVAILING_DEF_IRONLY igt_subtest_jmpbuf
196 aa0f078bbef97098 RESOLVED_IR viewport
libx.la@0xcc 2
188 65b5ba79fd3c2703 PREVAILING_DEF_IRONLY viewport
190 65b5ba79fd3c2703 RESOLVED_IR igt_subtest_jmpbuf
libx.la@0x9d8 2
188 253018f931e7b9de RESOLVED_IR viewport
190 253018f931e7b9de RESOLVED_IR igt_subtest_jmpbuf
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
bug-binutils mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-binutils