On 04/13/2011 01:40 AM, Joerg Schilling wrote: > Why do you believe this is a ELF problem? > > From the bug desciption, it seems that GNU tar just made an illegal > assumption > or can you verify that the link order was violated in this case?
As I understand it, it's too easy, with ELF, for a program to define a symbol FOO, that inadvertantly usurps the same symbol FOO that (unbeknownst to the program) is used in a library. Sometimes the ELF behavior is wanted, but often (as is the care here) it is not. On some non-ELF systems a program can't redefine a symbol exported by a library, and on such systems this problem wouldn't have occurred. In this particular case, FOO was introduced in a later version of Solaris, so it is a real upwards-compatibility problem: a program builds and runs fine on Solaris X, but the same executable crashes on Solaris X+1. This is an inherent property to the way ELF link order is implemented. It's not a bug with the linker per se: the bug is in the overall ELF design.
