Bug 12893 - gold reports duplicated symbols when symbols have version both in script and in source
Summary: gold reports duplicated symbols when symbols have version both in script and ...
Status: RESOLVED FIXED
Alias: None
Product: binutils
Classification: Unclassified
Component: gold (show other bugs)
Version: 2.22
: P2 normal
Target Milestone: ---
Assignee: Ian Lance Taylor
URL:
Keywords:
: 12879 (view as bug list)
Depends on:
Blocks:
 
Reported: 2011-06-15 19:15 UTC by Diego Elio Pettenò
Modified: 2011-06-17 14:08 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Diego Elio Pettenò 2011-06-15 19:15:34 UTC
This is arguably a bug in the developers' code itself, but at least bfd/ld seems to let it through so it could possibly be of interest to look at.

The reduced testcase is as follows:


# cat test-lib.c
void a() {
}

__asm__ (".symver a,a@TEST");

# cat test.ver 
TEST {
global:
  a;
local:
  *;
};

# gcc -Wl,--version-script=test.ver -fPIC -shared test-lib.c -o libtest.so
/usr/lib/gcc/i686-pc-linux-gnu/4.6.0/../../../../i686-pc-linux-gnu/bin/ld: error: /tmp/ccPGK7Km.o: multiple definition of 'a'
/usr/lib/gcc/i686-pc-linux-gnu/4.6.0/../../../../i686-pc-linux-gnu/bin/ld: /tmp/ccPGK7Km.o: previous definition here
collect2: ld returned 1 exit status

This is the code used by at least libdebian-installer, and it makes (some) sense if the static library also has to be usable (it would version the symbols in there as well).
Comment 1 Sourceware Commits 2011-06-17 13:31:35 UTC
CVSROOT:	/cvs/src
Module name:	src
Changes by:	ian@sourceware.org	2011-06-17 13:31:33

Modified files:
	gold           : ChangeLog resolve.cc 

Log message:
	PR gold/12893
	* resolve.cc (Symbol_table::resolve): Don't give an error if a
	symbol is redefined with the exact same object and value.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/ChangeLog.diff?cvsroot=src&r1=1.758&r2=1.759
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/resolve.cc.diff?cvsroot=src&r1=1.59&r2=1.60
Comment 2 Ian Lance Taylor 2011-06-17 13:34:08 UTC
Fixed.  Thanks for reporting it.
Comment 3 Ian Lance Taylor 2011-06-17 14:08:36 UTC
*** Bug 12879 has been marked as a duplicate of this bug. ***