This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: PR ld/3223: ld fails to link correct variables from linker script


On Wed, Sep 27, 2006 at 09:20:32AM +0930, Alan Modra wrote:
> On Tue, Sep 26, 2006 at 06:54:14AM -0700, H. J. Lu wrote:
> > On Tue, Sep 26, 2006 at 08:11:57PM +0930, Alan Modra wrote:
> > > I think it is quite reasonable to remove empty output sections, even
> > > those used to define symbols via the linker script (the symbols
> > > become absolute).  The case for ignoring linker script VMA and LMA
> > > assignments isn't so strong, particularly since doing so can affect
> > > following sections.  I think it would be safest if we went back to
> > > always obeying them, even for ALIGN expressions.  Alternatively, we
> > > could completely ignore the VMA and LMA assignments on empty output
> > > sections.  I agree that the current situation, where we take note of
> > > the VMA only within the section, is silly.
> > 
> > Obey ALIGN expressions on empty output sections will break x86-64. I
> > noticed that when I was building glibc on x86-64.
> 
> How does it break, and why?  If you were using an older linker that

I will take a look at why after I come back from my vacation.

> didn't remove empty output sections, then of course the linker would
> obey the ALIGN expression in a section VMA.

But the older linker doesn't have

  .ldata   ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE)
- 1)) :   {
    *(.ldata .ldata.* .gnu.linkonce.l.*)
    . = ALIGN(. != 0 ? 64 / 8 : 1);
  }
  . = ALIGN(64 / 8);
  _end = .; PROVIDE (end = .);


H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]