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.