On 08/16/2012 05:23 PM, Mark Wielaard wrote:
On Thu, 2012-08-16 at 17:09 +0200, Mark Wielaard wrote:
> On Thu, 2012-08-16 at 10:57 -0400, Jeff Kenton wrote:
>> 3. elflint.c, at line 954, generates an error:
>>
>> section [36] '.symtab': _GLOBAL_OFFSET_TABLE_ symbol value 0x20c28
>> does not match .got.plt section address 0x20cb8
>>
>> for many of the *.so files it checks. This is because the *.so
>> intentionally points to ".got" rather than ".got.plt". Our
gcc guy
>> doesn't believe this is an error.
> I would have to look that up.
This sounds a bit like an old binutils gold linker issue:
http://sourceware.org/bugzilla/show_bug.cgi?id=10450#c1
What compiler and linker versions are you using?
Could you send a small .so binary testcase compiled from some trivial
source (please quote the source and build commands), then we can inspect
the binary directly (and when your port is in then we could cross check
on other arches).
Thanks,
Mark
Now that the Tilera port is in I thought I'd re-open this question:
- We are using our own port of gcc 4.4.6 for the Tilera processor
(it's a custom processor, so doesn't match anything else).
- We are using binutils ld 2.21, not the Gold Linker.
- We have deliberately created the entry that elflint is complaining
about, pointing to ".got" rather than ".got.plt". Our gcc guy has
reasons for this (I can get the details) and he claims it's legal. I
don't have a trivial .so binary for you -- the smallest I'm building is
about 60K.
--jeff