This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: Linker Bug or Design Intent (Absolute symbols in zero sized sections)
On Tue, Sep 26, 2006 at 11:06:19AM -0400, Vivek Goyal wrote:
> Daniel Jacobowitz wrote:
> >On Tue, Sep 26, 2006 at 07:51:59AM -0700, H. J. Lu wrote:
> >
> >>I think for --emit-relocs, we can keep an empty output section if its
> >>address is taken.
> >>
> >>Of course, we need to update linker doc.
> >
> >
> >I think we're being too specific to this case.
> >
> >Why are we changing what the linker script clearly defines as section
> >relative symbols to absolute symbols? This isn't the only use case
> >I've encountered where that will break. We should either discard the
> >symbols, or leave the empty section.
> >
>
> I think retaining the zero sized section might be more logical otherwise
> a user who has specifically defined a section relative symbol in linker
> script file will be surprised to know that in some cases symbol is not
> present at all.
I think removing empty output sections isn't a bad idea. Otherwise,
a normal executable/DSO may have many empty output sections since
the default linker scripts may have many unused output sections.
However, I agree that removing empty output sections shouldn't lead
to many surprises for user. I think linker
1. Should remove an empty output section if it isn't used to define
section relative symbol which may be changed at run time.
2. Shouldn't convert a section relative symbol to absolute symbol
if it may be changed at run time.
3. Should preserve the pre-set constant VMA of an empty output section.
Is there anything I missed?
H.J.