bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gold/22566] New: --gc-sections preserves hidden symbols if initial


From: amonakov at gmail dot com
Subject: [Bug gold/22566] New: --gc-sections preserves hidden symbols if initial definition has default visibility
Date: Thu, 07 Dec 2017 14:00:54 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=22566

            Bug ID: 22566
           Summary: --gc-sections preserves hidden symbols if initial
                    definition has default visibility
           Product: binutils
           Version: 2.30 (HEAD)
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: gold
          Assignee: ccoutant at gmail dot com
          Reporter: amonakov at gmail dot com
                CC: ian at airs dot com
  Target Milestone: ---

ELF spec states that the most constraining visibility is taken from all
definitions and references to the symbol to find the final visibility status.

In the following example, Gold correctly computes the final visibility (hidden,
taken from t2.o), but if t1.o comes first on the command line, Gold marks foo
as a GC root too early. The BFD linker gets this right in both cases.

t1.s:

.globl foo
foo:
.zero 4096

t2.s:

.hidden foo
.int foo-.

$ ld.gold -shared -gc-sections t2.o t1.o && size -A a.out | grep text
[no output, -gc-sections works as expected]

$ ld.gold -shared -gc-sections t1.o t2.o && size -A a.out | grep text
.text                    4096    464

$ readelf -a a.out |grep foo
     1: 00000000000001d0     0 NOTYPE  LOCAL  HIDDEN     4 foo

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]