Summary: | SH: Hidden symbol in DSO does not be forced local | ||
---|---|---|---|
Product: | binutils | Reporter: | sugioka |
Component: | ld | Assignee: | unassigned |
Status: | NEW --- | ||
Severity: | normal | CC: | bug-binutils |
Priority: | P2 | ||
Version: | 2.16 | ||
Target Milestone: | --- | ||
Host: | sh4-unknown-linux | Target: | sh4-unknown-linux |
Build: | sh4-unknown-linux | Last reconfirmed: |
Description
sugioka
2006-02-20 01:08:46 UTC
Subject: Re: New: SH: Hidden symbol in DSO does not be forced local
On Mon, Feb 20, 2006 at 01:08:46AM -0000, sugioka at itonet dot co dot jp wrote:
> On sh4-unknown-linux target, hidden symbol in DSO does not be kept local
> if the symbol appeared at global section in the version script.
> The hidden function is accessed directly at compile time, but global function
> in DSO should be accessed through PLT, as the result, segmentation fault occurs
> on execution time.
I'm pretty sure your test is invalid. If the compiler is told a symbol
is hidden, it can't be forced global later without risking wrong code.
I am saying that hidden symbol should not be globalized by vesion script. On x86, hidden symbols can not be globalized even if they appeared in global section of the version script, But on SH, they can be globalized and the result is segmentation fault. So it should be explicitly disabled as x86 do in bfd libs. I found this problem while building glib-2.9.2. |