This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: binutils is broken on ELF/mips (Re: binutils is broken on Linux/alpha)
On Fri, Oct 05, 2001 at 02:09:51AM +0930, Alan Modra wrote:
> On Thu, Oct 04, 2001 at 09:31:15AM -0700, H . J . Lu wrote:
> >
> > http://sources.redhat.com/ml/binutils/2001-09/msg00507.html
> >
> > breaks ELF/mips. I am trying to find out why. I think ELF/mips does
> > its own symbol tracking. Removing some linkonce symbols causes the
> > ELF/mips backend to crash. I don't know what other targets are also
> > affected.
>
> Or is it just that the mips back-end relies on isec->symbol->value
> being set?
The ELF/mips backend died at
5878 {
5879 indx = elf_section_data (sec->output_section)->dynindx;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
5880 if (indx == 0)
5881 abort ();
5882 }
elf_section_data (sec->output_section) is NULL at this point. In this
case, `h' is NULL and `symbol' is NULL. The working one also has
`symbol' NULL, but `h' is
$4 = {root = {root = {root = {next = 0x0, string = 0x84a85b9 "pthread_once",
hash = 291017526}, type = bfd_link_hash_undefweak, next = 0x0, u = {
undef = {abfd = 0x84a6128}, def = {value = 8386659489441014056,
section = 0x3328743a}, i = {link = 0x84a6128,
warning = 0x7463665f <Address 0x7463665f out of bounds>}, c = {
size = 8386659489441014056, p = 0x3328743a}}}, indx = -1,
dynindx = 967, dynstr_index = 37518, elf_hash_value = 16825381,
weakdef = 0x0, linker_section_pointer = 0x0, verinfo = {verdef = 0x0,
vertree = 0x0}, vtable_entries_size = 0, vtable_entries_used = 0x0,
vtable_parent = 0x0, got = {refcount = 1, offset = 1}, plt = {
refcount = -1, offset = 18446744073709551615}, size = 0,
type = 2 '\002', other = 0 '\000', elf_link_hash_flags = 165}, esym = {
jmptbl = 0, cobol_main = 0, weakext = 0, reserved = 0, ifd = -2, asym = {
iss = 0, value = 0, st = 0, sc = 0, reserved = 0, index = 0}},
possibly_dynamic_relocs = 0, readonly_reloc = false,
min_dyn_reloc_index = 1667, no_fn_stub = true, fn_stub = 0x0,
need_fn_stub = true, call_stub = 0x0, call_fp_stub = 0x0}
h