RFA: Don't canonicalize STT_SECTION syms

Daniel Jacobowitz drow@false.org
Sat Dec 11 05:38:00 GMT 2004


On Sat, Dec 11, 2004 at 04:02:02PM +1030, Alan Modra wrote:
> On Sat, Dec 11, 2004 at 12:07:29AM -0500, Daniel Jacobowitz wrote:
> > drow@nevyn:~/qtmp% ld -r -o foo foo.o bar.o
> 
> Mutter.  ld -r.  Mutter.

Well, you could get the same result using a final link.

> > 00000000 l    d  foo    00000000 foo
> > 00000000         *UND*  00000000 foo
> > 
> > I'd be really confused!  "Why didn't 'foo' resolve to 'foo'?" the user
> > asks me...
> 
> Well, I'm not wedded to the trick I used.  In fact, I made provision for
> reverting the elfcode.h change without needing to change the testsuite.
> 
> Having the name there does have some benefit, for example with these
> section syms that some targets emit:
> 
> 00000000 l    d  *ABS*	00000000 .shstrtab
> 00000000 l    d  *ABS*	00000000 .symtab
> 00000000 l    d  *ABS*	00000000 .strtab

Hmm, yeah (another note for "weird elf things" volume #37... section
symbols not in a section?  how DOES that work?).

I've been forcibly reminded that STT_SECTION symbols are not, in
principle, all that special.  You could have one with a name, or
without.  Objdump would ideally reveal that difference - though I have
gotten in the habit of using readelf when I need this much precision,
since its output better corresponds to ELF, which is (gasp) better
documented than BFD internals.

How _do_ absolute section symbols work anyway?

-- 
Daniel Jacobowitz



More information about the Binutils mailing list