Pu Yiqiao <heyanandsu@xxxxxxxxx> writes: > 2009/10/30 Ian Lance Taylor <iant@xxxxxxxxxx> > >> 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