[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gold/7091] Internal error on object generated by gnuld
From: |
stefan dot becker at nokia dot com |
Subject: |
[Bug gold/7091] Internal error on object generated by gnuld |
Date: |
12 Dec 2008 10:07:24 -0000 |
------- Additional Comments From stefan dot becker at nokia dot com 2008-12-12
10:07 -------
Created an attachment (id=3103)
--> (http://sourceware.org/bugzilla/attachment.cgi?id=3103&action=view)
Obfuscated output from readelf -Wr (production library)
Thanks for the fix. While the simple test case (source code compiled by me and
linked with GNU ld) works OK now, it still barfs on the precompiled from our SW
release. The error is now at a different location:
build/gold/ld-new: internal error in starting_output_address, at
../../binutils-2.19/gold/output.cc:2083
(gdb) bt
#0 gold::do_gold_unreachable (
filename=0x82014d4 "../../binutils-2.19/gold/output.cc", lineno=2083,
function=0x82023b1 "starting_output_address")
at ../../binutils-2.19/gold/gold.cc:84
#1 0x080fcf80 in gold::Output_section::starting_output_address (
this=0x9f54f88, object=0x9d31bd0, shndx=1960)
at ../../binutils-2.19/gold/output.cc:2083
#2 0x080dee3a in gold::Sized_relobj<32, false>::do_finalize_local_symbols (
this=0x9d31bd0, index=607, off=1687796)
at ../../binutils-2.19/gold/object.cc:1284
#3 0x080b68d3 in gold::Relobj::finalize_local_symbols (this=0x9d31bd0,
index=607, off=1687796) at ../../binutils-2.19/gold/object.h:612
#4 0x080b30d9 in gold::Layout::create_symtab_sections (this=0xbfa59b64,
input_objects=0xbfa59e38, symtab=0xbfa59cf0, shnum=4940, poff=0xbfa58310)
at ../../binutils-2.19/gold/layout.cc:2112
#5 0x080b5830 in gold::Layout::finalize (this=0xbfa59b64,
input_objects=0xbfa59e38, symtab=0xbfa59cf0, target=0x9d31d00,
task=0x9d31ef8) at ../../binutils-2.19/gold/layout.cc:1278
#6 0x080b63fd in gold::Layout_task_runner::run (this=0x9d31ed8,
workqueue=0xbfa59ed0, task=0x9d31ef8)
at ../../binutils-2.19/gold/layout.cc:65
#7 0x080acf51 in gold::Task_function::run (this=0x9d31ef8,
workqueue=0xbfa59ed0) at ../../binutils-2.19/gold/workqueue.h:178
#8 0x0818f401 in gold::Workqueue::find_and_run_task (this=0xbfa59ed0,
thread_number=0) at ../../binutils-2.19/gold/workqueue.cc:314
#9 0x0818f57a in gold::Workqueue::process (this=0xbfa59ed0, thread_number=0)
at ../../binutils-2.19/gold/workqueue.cc:480
#10 0x0804b230 in main (argc=5, argv=0xbfa59fd4)
at ../../binutils-2.19/gold/main.cc:219
(gdb) up
#1 0x080fcf80 in gold::Output_section::starting_output_address (
this=0x9f54f88, object=0x9d31bd0, shndx=1960)
at ../../binutils-2.19/gold/output.cc:2083
2083 gold_unreachable();
(gdb) l
2078 if (p->is_merge_section_for(object, shndx))
2079 return addr;
2080
2081 addr += p->data_size();
2082 }
2083 gold_unreachable();
2084 }
2085
2086 // Set the data size of an Output_section. This is where we handle
2087 // setting the addresses of any Output_section_data objects.
(gdb) up
#2 0x080dee3a in gold::Sized_relobj<32, false>::do_finalize_local_symbols (
this=0x9d31bd0, index=607, off=1687796)
at ../../binutils-2.19/gold/object.cc:1284
1284 os->starting_output_address(this, shndx);
(gdb) l
1279 lv.set_output_value(os->output_address(this, shndx,
1280
lv.input_value()));
1281 else
1282 {
1283 section_offset_type start =
1284 os->starting_output_address(this, shndx);
1285 Merged_symbol_value<size>* msv =
1286 new Merged_symbol_value<size>(lv.input_value(),
start);
1287 lv.set_merged_symbol_value(msv);
1288 }
(gdb) up
#3 0x080b68d3 in gold::Relobj::finalize_local_symbols (this=0x9d31bd0,
index=607, off=1687796) at ../../binutils-2.19/gold/object.h:612
612 { return this->do_finalize_local_symbols(index, off); }
(gdb) l
607 // Set the values of the local symbols, set the output symbol table
608 // indexes for the local variables, and set the offset where local
609 // symbol information will be stored. Returns the new local symbol
index.
610 unsigned int
611 finalize_local_symbols(unsigned int index, off_t off)
612 { return this->do_finalize_local_symbols(index, off); }
613
614 // Set the output dynamic symbol table indexes for the local
variables.
615 unsigned int
616 set_local_dynsym_indexes(unsigned int index)
I already see one difference: my library has .text sections whereas the
production library has .gnu.linkonce.t sections. If I remember correctly this
means that the production library has been compiled with GCC3. If you don't
think gold should be able to handle then I'll have to discuss recompilation
with my colleagues.
--
http://sourceware.org/bugzilla/show_bug.cgi?id=7091
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
- [Bug gold/7091] New: Internal error on object generated by gnuld, stefan dot becker at nokia dot com, 2008/12/10
- [Bug gold/7091] Internal error on object generated by gnuld, ian at airs dot com, 2008/12/10
- [Bug gold/7091] Internal error on object generated by gnuld, stefan dot becker at nokia dot com, 2008/12/11
- [Bug gold/7091] Internal error on object generated by gnuld, ian at airs dot com, 2008/12/11
- [Bug gold/7091] Internal error on object generated by gnuld, stefan dot becker at nokia dot com, 2008/12/11
- [Bug gold/7091] Internal error on object generated by gnuld, ian at airs dot com, 2008/12/11
- [Bug gold/7091] Internal error on object generated by gnuld,
stefan dot becker at nokia dot com <=
- [Bug gold/7091] Internal error on object generated by gnuld, ian at airs dot com, 2008/12/12
- [Bug gold/7091] Internal error on object generated by gnuld, stefan dot becker at nokia dot com, 2008/12/12
- [Bug gold/7091] Internal error on object generated by gnuld, ian at airs dot com, 2008/12/12
- [Bug gold/7091] Internal error on object generated by gnuld, stefan dot becker at nokia dot com, 2008/12/13
- [Bug gold/7091] Internal error on object generated by gnuld, ian at airs dot com, 2008/12/15