[Top][All Lists]
[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.
- [Bug binutils/14541] New: Wrong entry point computation using cross binutils linux amd64->arm-linux-gnueabihf,
eric.valette at free dot fr <=