------- 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-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils