bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gold/12771] internal error in value_from_output_section, at ../../g


From: hector.oron at gmail dot com
Subject: [Bug gold/12771] internal error in value_from_output_section, at ../../gold/reloc.cc:1508 on armel
Date: Fri, 1 Jul 2011 00:01:58 +0000

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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]