R_PPC_PLTREL24 reloc against local symbol

Ian Lance Taylor iant@google.com
Sat Oct 31 03:44:00 GMT 2009


Pu Yiqiao <heyanandsu@gmail.com> writes:

> 2009/10/30 Ian Lance Taylor <iant@google.com>
>
>> I believe this is a GNU linker bug, fixed in the recent 2.20 release.
>
> Well, can you tell me why this is happend? And how can I resolve this in my
> program. Such as with some ld options or gcc options I should use, or what I
> should do with the .lds file? Thank you very much.

Off-hand, no, I don't know why it happened.  At a low level, it means
that you compiled something with -fPIC, and gcc generated a function
call to some symbol, and by link time that symbol was local.  That
could be because it was a static function in the original file, which
might indicate a gcc bug, or it could be because you set the
visibility at compile time, or used -Bsymbolic or a version script or
something like that at link time.

I would advice simply using binutils 2.20.  If that is impossible for
some reason, then you need to find out why the linker thinks that the
symbol is local, and why the compiler generated a PLTREL24 reloc for
the symbol.

Ian



More information about the Gcc-help mailing list