------- Additional Comments From amodra at bigpond dot net dot au  2006-11-09 
00:22 -------
Yes, it's clear to me that glibc has a bug here.  I suspect that
_dl_argv_internal should not have a definition in .bss.  It's equally clear to
me that gas cannot allow relocations to be emitted against symbols that have
been removed from the gas symbol chain.  Such symbols won't appear in the object
symbol table, but the error message you now get since my 2006-11-08 gas patch is
more than a little confusing.

$ gas/as-new /src/tmp/pr3469/x.s
gas/as-new: a.out: symbol `_dl_argv_internal' required but not present
/src/tmp/pr3469/x.s: Assembler messages:
/src/tmp/pr3469/x.s:14: Fatal error: can't close a.out: No symbols

However, I'm not sure what the best fix is.  I was hoping you (Jan) could
suggest one..  Incidentally, you can have the same trouble with redefining via
equates.  eg.

 .data
 .global x
 x = y
 .long x
 x = z
 .long x
y:
 .long y
z:
 .long z

Also, there isn't really anything special about .global.  Anything that stops
the assembler from reducing a reloc to one against a section symbol will do, and
some targets don't allow any reduction (see the various tc_fix_adjustable
definitions).


-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=3469

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to