Your change to ldlang.c

Ian Lance Taylor ian@zembu.com
Thu Jul 1 19:43:00 GMT 1999


   From: Mark Mitchell <mark@codesourcery.com>
   Date: Thu, 01 Jul 1999 17:58:06 -0700

     1999-06-23  Ian Lance Taylor  <ian@zembu.com>

	   * ldlang.c (section_already_linked): Only discard link once
	   sections if we are building constructors.

     This change breaks the MIPS ABI with ld -r.  The reason is
   that the .reginfo section uses SEC_LINK_ONCE to avoid duplication, and
   that is true even when doing ld -r.  In fact, I'm not sure what the
   purpose of your change was; I don't see why we should not discard link
   once sections for ld -r things.

I thought it was discussed on the list a bit, but I can't find the
messages, so it must have been somewhere else.  Richard, do you
remember?

My main concern was that it would mess up relocations.  If an input
section disappears, relocations against symbols in that section need
to be adjusted to use different symbols, and relocations for that
section need to disappear.  I doubt the backends do either of these
correctly.

We could go back to letting the emultempl file handle the .reginfo
sections for MIPS files when doing a relocateable link, I suppose.
Does anybody have a better suggestion?

Ian


More information about the Binutils mailing list