http://sourceware.org/bugzilla/show_bug.cgi?id=12771
HectorOron <hector.oron at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hector.oron at gmail dot | |com --- Comment #10 from HectorOron <hector.oron at gmail dot com> 2011-07-01 00:01:13 UTC --- Hello, I also got bitten by this problem. $ echo "int main () { ; return 0; }" > test.c $ gcc -fno-strict-aliasing -g -g -O2 test.c /usr/bin/ld: internal error in value_from_output_section, at ../../gold/reloc.cc:1519 collect2: ld returned 1 exit status $ ld.gold -v GNU gold (GNU Binutils for Debian 2.21.52.20110606) 1.11 If using ld.bfd instead of gold, it works (In reply to comment #8) > Try changing the function Arm_relocate_functions::abs32 around line 3284 of > arm.cc to this: Anyway, I went ahead and applied Ian suggestion: ~/binutils-2.21.52.20110606$ diff -Naur gold/arm.cc.orig gold/arm.cc --- gold/arm.cc.orig 2011-06-30 16:51:57.000000000 +0000 +++ gold/arm.cc 2011-06-30 16:54:49.000000000 +0000 @@ -3297,10 +3297,9 @@ Arm_address thumb_bit) { typedef typename elfcpp::Swap<32, big_endian>::Valtype Valtype; - Valtype* wv = reinterpret_cast<Valtype*>(view); - Valtype addend = elfcpp::Swap<32, big_endian>::readval(wv); + Valtype addend = elfcpp::Swap_unaligned<32, big_endian>::readval(view); Valtype x = psymval->value(object, addend) | thumb_bit; - elfcpp::Swap<32, big_endian>::writeval(wv, x); + elfcpp::Swap_unaligned<32, big_endian>::writeval(view, x); return This::STATUS_OKAY; } Which produces a successful linkage: $ gcc -B sandbox/usr/bin/ -Wl,-debug -fno-strict-aliasing -g -g -O2 test.c Convert string 'sandbox/usr/bin/:/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/:/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/:/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/:/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/:/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/' into prefixes, separator = ':' - add prefix: sandbox/usr/bin/ - add prefix: /usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/ - add prefix: /usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/ - add prefix: /usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/ - add prefix: /usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/ - add prefix: /usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/ Convert string '/home/zumbi/bin:/home/zumbi/bin:/usr/local/bin:/usr/bin:/bin:/usr/games' into prefixes, separator = ':' - add prefix: /home/zumbi/bin/ - add prefix: /home/zumbi/bin/ - add prefix: /usr/local/bin/ - add prefix: /usr/bin/ - add prefix: /bin/ - add prefix: /usr/games/ Looking for 'real-ld' Looking for 'collect-ld' Looking for 'ld' Looking for 'gnm' Looking for 'gnm' Looking for 'nm' Looking for 'gstrip' Looking for 'gstrip' Looking for 'strip' Looking for 'gcc' Looking for 'gcc' collect2 version 4.6.1 (ARM GNU/Linux with ELF) ld_file_name = sandbox/usr/bin/ld c_file_name = /usr/bin/gcc nm_file_name = sandbox/usr/bin/nm strip_file_name = sandbox/usr/bin/strip c_file = /tmp/ccQzTD6a.c o_file = /tmp/ccYHgcZb.o COLLECT_GCC_OPTIONS = '-B' 'sandbox/usr/bin/' '-fno-strict-aliasing' '-g' '-g' '-O2' COLLECT_GCC = gcc COMPILER_PATH = sandbox/usr/bin/:/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/:/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/:/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/:/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/:/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/ LIBRARY_PATH = sandbox/usr/bin/:/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/:/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/../../../:/lib/:/usr/lib/:/usr/lib/arm-linux-gnueabi/ sandbox/usr/bin/ld --build-id --no-add-needed --eh-frame-hdr -dynamic-linker /lib/ld-linux.so.3 -X --hash-style=both -m armelf_linux_eabi /usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/../../../crt1.o /usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/../../../crti.o /usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/crtbegin.o -Lsandbox/usr/bin -L/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1 -L/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/../../.. -L/usr/lib/arm-linux-gnueabi /tmp/ccEn0jEp.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/crtend.o /usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.6.1/../../../crtn.o [Leaving /tmp/ccQzTD6a.c] [Leaving /tmp/ccYHgcZb.o] $ ls sandbox/usr/bin/ld -l lrwxrwxrwx 1 zumbi Debian 7 Jun 30 23:58 sandbox/usr/bin/ld -> ld.gold Best regards and have a nice day, -- Hector Oron -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils