Linker is broken due to _bfd_elf_merge_symbol change
H. J. Lu
hjl@lucon.org
Wed May 4 06:24:00 GMT 2005
On Wed, May 04, 2005 at 03:41:34PM +0930, Alan Modra wrote:
> On Tue, May 03, 2005 at 10:43:23PM -0700, H. J. Lu wrote:
> > http://sourceware.org/ml/binutils/2005-05/msg00018.html
> >
> > I will revert it if it is't fixed soon.
>
> Not without explaining why the patch causes a problem.
>
If you take a look at _bfd_elf_merge_symbol, newdef and olddef can
change after:
/* Skip weak definitions of symbols that are already defined. */
if (newdef && olddef && newweak && !oldweak)
{
*skip = TRUE;
return TRUE;
}
That is the wrong place to check them. My patch:
http://sourceware.org/ml/binutils/2005-05/msg00089.html
moved it after all changes of newdef and olddef.
H.J.
More information about the Binutils
mailing list