bug-binutils
[Top][All Lists]
Advanced

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

[Bug binutils/14541] New: Wrong entry point computation using cross binu


From: eric.valette at free dot fr
Subject: [Bug binutils/14541] New: Wrong entry point computation using cross binutils linux amd64->arm-linux-gnueabihf
Date: Mon, 03 Sep 2012 08:30:38 +0000

http://sourceware.org/bugzilla/show_bug.cgi?id=14541

             Bug #: 14541
           Summary: Wrong entry point computation using cross binutils
                    linux amd64->arm-linux-gnueabihf
           Product: binutils
           Version: 2.22
            Status: NEW
          Severity: normal
          Priority: P2
         Component: binutils
        AssignedTo: address@hidden
        ReportedBy: address@hidden
    Classification: Unclassified


I'm trying to build a cross compilation tool for raspberry pi on a debian amd64
machine. While I succeeded to build the tools either the debian way or using
pure official gnu tools releases unpatched, in both case I get binary that do
no execute on the raspberry.

Even a simple hello word statically compiled fails to execute
test.c :

#include <stdio.h>

main()
{
        printf("hello world\n");
        exit (0);
}


I noticed the entry point is wrongly computed on this sample program (native
tools on raspberry have _start address as their entry point not _start +1!

arm-linux-gnueabihf-gcc-4.7 -static -v -o test test.c
Using built-in specs.
COLLECT_GCC=arm-linux-gnueabihf-gcc-4.7
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/4.7/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: ../src/configure -v --with-pkgversion='Debian 4.7.1-7'
--with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs
--enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.7 --enable-shared --enable-linker-build-id
--with-system-zlib --libexecdir=/usr/lib --without-included-gettext
--enable-threads=posix
--with-gxx-include-dir=/usr/arm-linux-gnueabihf/include/c++/4.7.1
--libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libitm
--enable-plugin --enable-objc-gc --disable-sjlj-exceptions
--with-cpu=arm1176jzf-s --with-tune=arm1176jzf-s
--with-build-sysroot=/home/armDev/raspberry/flashRoot --with-arch=armv6
--with-float=hard --enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=arm-linux-gnueabihf
--program-prefix=arm-linux-gnueabihf-
--includedir=/usr/arm-linux-gnueabihf/include
--with-headers=/usr/arm-linux-gnueabihf/include
--with-libs=/usr/arm-linux-gnueabihf/lib
Thread model: posix
gcc version 4.7.1 (Debian 4.7.1-7) 
COLLECT_GCC_OPTIONS='-static' '-v' '-o' 'test' '-march=armv6'
'-mtune=arm1176jzf-s' '-mfloat-abi=hard' '-mtls-dialect=gnu'
 /usr/lib/gcc/arm-linux-gnueabihf/4.7/cc1 -quiet -v -imultilib . -imultiarch
arm-linux-gnueabihf test.c -quiet -dumpbase test.c -march=armv6
-mtune=arm1176jzf-s -mfloat-abi=hard -mtls-dialect=gnu -auxbase test -version
-o /tmp/cckZtRSC.s
GNU C (Debian 4.7.1-7) version 4.7.1 (arm-linux-gnueabihf)
        compiled by GNU C version 4.7.1, GMP version 5.0.5, MPFR version
3.1.0-p10, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring duplicate directory
"/usr/lib/gcc/arm-linux-gnueabihf/4.7/../../../../arm-linux-gnueabihf/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/arm-linux-gnueabihf/4.7/include
 /usr/lib/gcc/arm-linux-gnueabihf/4.7/include-fixed
 /usr/arm-linux-gnueabihf/include
End of search list.
GNU C (Debian 4.7.1-7) version 4.7.1 (arm-linux-gnueabihf)
        compiled by GNU C version 4.7.1, GMP version 5.0.5, MPFR version
3.1.0-p10, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: ae23d5d5164dae087e074ab6bd3989a9
test.c: In function ‘main’:
test.c:6:2: warning: incompatible implicit declaration of built-in function
‘exit’ [enabled by default]
COLLECT_GCC_OPTIONS='-static' '-v' '-o' 'test' '-march=armv6'
'-mtune=arm1176jzf-s' '-mfloat-abi=hard' '-mtls-dialect=gnu'
 /usr/lib/gcc/arm-linux-gnueabihf/4.7/../../../../arm-linux-gnueabihf/bin/as -v
-march=armv6 -mfloat-abi=hard -meabi=5 -o /tmp/ccHi9bK1.o /tmp/cckZtRSC.s
GNU assembler version 2.22 (arm-linux-gnueabihf) using BFD version (GNU
Binutils for Debian) 2.22
COMPILER_PATH=/usr/lib/gcc/arm-linux-gnueabihf/4.7/:/usr/lib/gcc/arm-linux-gnueabihf/4.7/:/usr/lib/gcc/arm-linux-gnueabihf/:/usr/lib/gcc/arm-linux-gnueabihf/4.7/:/usr/lib/gcc/arm-linux-gnueabihf/:/usr/lib/gcc/arm-linux-gnueabihf/4.7/../../../../arm-linux-gnueabihf/bin/
LIBRARY_PATH=/usr/lib/gcc/arm-linux-gnueabihf/4.7/:/usr/lib/gcc/arm-linux-gnueabihf/4.7/../../../../arm-linux-gnueabihf/lib/
COLLECT_GCC_OPTIONS='-static' '-v' '-o' 'test' '-march=armv6'
'-mtune=arm1176jzf-s' '-mfloat-abi=hard' '-mtls-dialect=gnu'
 /usr/lib/gcc/arm-linux-gnueabihf/4.7/collect2 --build-id --no-add-needed
-Bstatic -dynamic-linker /lib/ld-linux-armhf.so.3 -X --hash-style=both -m
armelf_linux_eabi -o test
/usr/lib/gcc/arm-linux-gnueabihf/4.7/../../../../arm-linux-gnueabihf/lib/crt1.o
/usr/lib/gcc/arm-linux-gnueabihf/4.7/../../../../arm-linux-gnueabihf/lib/crti.o
/usr/lib/gcc/arm-linux-gnueabihf/4.7/crtbeginT.o
-L/usr/lib/gcc/arm-linux-gnueabihf/4.7
-L/usr/lib/gcc/arm-linux-gnueabihf/4.7/../../../../arm-linux-gnueabihf/lib
/tmp/ccHi9bK1.o --start-group -lgcc -lgcc_eh -lc --end-group
/usr/lib/gcc/arm-linux-gnueabihf/4.7/crtend.o
/usr/lib/gcc/arm-linux-gnueabihf/4.7/../../../../arm-linux-gnueabihf/lib/crtn.o
address@hidden:/home/armDev/crossdevSrc/test# nm test | grep start
0006a12c A __bss_start
0006a12c A __bss_start__
000088b8 t call_gmon_start
00069a20 D __data_start
00069a20 W data_start
00011f7c T _dl_start
         w _dl_starting_up
0003c27c T _dl_start_profile
000612d4 a __exidx_start
00069974 t __fini_array_start
         w __gmon_start__
00069970 t __init_array_start
00008a00 T __libc_start_main
00069970 b __preinit_array_start
00008880 T _start   <=======
00060fb0 A __start___libc_atexit
address@hidden:/home/armDev/crossdevSrc/test#
arm-linux-gnueabihf-readelf -h test
ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           ARM
  Version:                           0x1
  Entry point address:               0x8881  <========
  Start of program headers:          52 (bytes into file)
  Start of section headers:          369336 (bytes into file)
  Flags:                             0x5000002, has entry point, Version5 EABI
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         6
  Size of section headers:           40 (bytes)
  Number of section headers:         28
  Section header string table index: 25

-- 
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]