https://sourceware.org/bugzilla/show_bug.cgi?id=21074
Bug ID: 21074
Summary: [2.28 Regression] bfd ld stumbles over duplicated
symbols generated by gold
Product: binutils
Version: 2.28
Status: NEW
Severity: normal
Priority: P2
Component: gold
Assignee: ccoutant at gmail dot com
Reporter: doko at debian dot org
CC: ian at airs dot com
Target Milestone: ---
[forwarded from https://bugs.debian.org/852035]
"""
When the gold linker is used, it sometimes generates duplicated symbols.
It's not something new, and can be seen for example in
qtbase-opensource-src 5.7.1+dfsg-2:
1081: 00000000004caf88 0 NOTYPE GLOBAL DEFAULT ABS __bss_start@Qt_5
1082: 00000000004caf88 0 NOTYPE GLOBAL DEFAULT ABS __bss_start@Qt_5
Note that bfd doesn't generate duplicated with the same command line
beside the -fuse-ld=gold. This used to not be a problem with both gold
and bfd. However the upstream commit eb3908448b , which first appeared
in binutils 2.27.51.20161231-1, causes this symbols to become
relocatable. This can be seen in qtbase-opensource-src 5.7.1+dfsg-3:
1081: 00000000004caf88 0 NOTYPE GLOBAL DEFAULT 19 __bss_start@Qt_5
1082: 00000000004caf88 0 NOTYPE GLOBAL DEFAULT 19 __bss_start@Qt_5
This in turn causes bfd to fail to link binaries against libQt5Core.so
or libQt5Gui.so, for example when building libqapt (see [1] for a full
build log):
/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.7.1:(*IND*+0x0): multiple definition
of `__bss_start'
/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.7.1:(*IND*+0x0): multiple definition
of `_edata'
/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.7.1:(*IND*+0x0): multiple definition
of `_end'
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5.7.1:(*IND*+0x0): multiple
definition of `__bss_start'
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5.7.1:(*IND*+0x0): multiple
definition of `__bss_start'
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5.7.1:(*IND*+0x0): multiple
definition of `_edata'
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5.7.1:(*IND*+0x0): multiple
definition of `_edata'
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5.7.1:(*IND*+0x0): multiple
definition of `_end'
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5.7.1:(*IND*+0x0): multiple
definition of `_end'
Note however that having duplicated symbols doesn't cause a problem to
gold, only to bfd.
I don't really know how this should be fixed, either bfd should accept
duplicated symbols, or gold should stop generating them.
"""
--
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