https://sourceware.org/bugzilla/show_bug.cgi?id=21306
Bug ID: 21306 Summary: Different behavior when linking common symbol statically or to shared object Product: binutils Version: 2.27 Status: UNCONFIRMED Severity: normal Priority: P2 Component: ld Assignee: unassigned at sourceware dot org Reporter: eric.schweitz at pgroup dot com Target Milestone: --- Created attachment 9942 --> https://sourceware.org/bugzilla/attachment.cgi?id=9942&action=edit reproduces behavior shown in report We discovered a change in behavior from Ubuntu 15.10 to Ubuntu 16.04. The difference appears to be the former has GNU ld (GNU Binutils for Ubuntu) 2.25.1 and the latter GNU ld (GNU Binutils for Ubuntu) 2.26.1 Attached is a stripped down example. With ld 2.25.1, we observe that the tentative definition of globalInt is resolved to the definition appearing in con.o (static) or libcon.so (shared). % ./app.static globalInt is 7 % LD_LIBRARY_PATH=. ./app.shared globalInt is 7 In ld 2.26.1, we observe that the tentative definition gets resolved the same way with the static link, but does not get resolved with the shared link the same way. Instead, the tentative definition is resolved to a new, secondary instance (in .bss rather than .data). % ./app.static globalInt is 7 % LD_LIBRARY_PATH=. ./app.shared globalInt is 0 -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils