Hello Pankaj
I've successfully built a toolchain for an arm926ejs that allow me to build an simple c hello world (i haven't tested multithread, c++, or complex project with lot of dependancies, ...) I used the git://sources.blackfin.uclinux.org/git/users/vapier/elf2flt.git sources with the attached patch. The script used for compiling the toolchain is https://gitorious.org/bif/bif/blobs/master/framework/packages/toolchain-uclinux_uclibc/toolchain-uclinux_uclibc.sh It's a personal job that should not be taken as a reference... and perhaps you could also see the sources of busybox, crosstools-ng or openembedded ... Regards. Paul. Le 07/20/2012 05:43 AM, Pankaj DEV a écrit :
Hello, I am using ARM-Versatile Cortex-R4 platform and I have toolchain build with following components' versions : 1. GNU GCC : 4.6.3 20120301 2. GNU Binutils - 2.20.51.20100809 3. uClibc-nptl-0.9.33-66 To build the user application binary (FLAT), I downloaded the following(latest) version of ELF2FLT package from http://blackfin.uclinux.org/git/?p=users/vapier/elf2flt.git;a=summary 2011-04-04 David McCullough<http://blackfin.uclinux.org/git/?p=users/vapier/elf2flt.git;a=search;s=David+McCullough;st=author> The GNU linker uses -v as a shortcut to --version,... <http://blackfin.uclinux.org/git/?p=users/vapier/elf2flt.git;a=commit;h=40f0d175e0847d922faa85cc18ec01f2129bb2b9> I was able to build the package properly and install it in my existing (above) toolchain, but now when I try to build a simple (hello) C user program using -Wl,-elf2flt options, I am getting following errors : a. /root/distro-armv7r/STLinux-2.4/devkit/armv7r_uclibc/arm-cortex-linux-uclibcgnueabi/bin/ld.real: section .junk loaded at [00000000,0000001f] overlaps section .text loaded at [00000000,0000011f] b. /root/distro-armv7r/STLinux-2.4/devkit/armv7r_uclibc/arm-cortex-linux-uclibcgnueabi/bin/ld.real: BFD (GNU Binutils - STMicroelectronics/Linux Base) 2.20.51.20100809 assertion fail ../../bfd/elf32-arm.c:13377 Any Idea ? My doubt : Is ELF2FLT package compatible with the above mentioned versions of GCC/Binutils/uClibc for ARM-R4 used ? If anybody has tried to build a toolchain for ARM with this ELF2FLT package, can u help us with the versions of GCC/Binutils/uClibc ? Or may be if anyone knows any working ARM-CortexR4 working toolchain containing ELF2FLT ? Regards Pankaj Dev _______________________________________________ uClinux-dev mailing list uClinux-dev@uclinux.org http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by uclinux-dev@uclinux.org To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev
>From eca469f6946f92035f1ba4463829eb1f0e0fd98d Mon Sep 17 00:00:00 2001 From: Paul Chavent <paul.chav...@fnac.net> Date: Thu, 17 May 2012 08:10:44 +0200 Subject: [PATCH] Arm support update (exidx sections). --- .gitignore | 1 + elf2flt.c | 27 +++++++++++++++++++++++++++ elf2flt.ld.in | 17 ++++++++++++++--- 3 files changed, 42 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 92ff5f6..e0e0bd5 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,4 @@ elf2flt elf2flt.ld flthdr ld-elf2flt +ld-elf2flt.sh \ No newline at end of file diff --git a/elf2flt.c b/elf2flt.c index 2fea9b5..1a7ef88 100644 --- a/elf2flt.c +++ b/elf2flt.c @@ -54,6 +54,8 @@ const char *elf2flt_progname; #if defined(TARGET_h8300) #include <elf/h8.h> /* TARGET_* ELF support for the BFD library */ +#elif defined(TARGET_arm) +#include "elf/arm.h" #elif defined(__CYGWIN__) || defined(__MINGW32__) || defined(TARGET_nios) || defined(TARGET_nios2) #include "cygwin-elf.h" /* Cygwin uses a local copy */ #elif defined(TARGET_microblaze) @@ -639,12 +641,16 @@ dump_symbols(symbols, number_of_symbols); relocation_needed = 1; break; case R_ARM_REL32: + case R_ARM_JUMP24: + case R_ARM_CALL: case R_ARM_THM_PC11: case R_ARM_THM_PC22: case R_ARM_PC24: case R_ARM_PLT32: case R_ARM_GOTPC: case R_ARM_GOT32: + case R_ARM_PREL31: + case R_ARM_NONE: relocation_needed = 0; break; default: @@ -1702,6 +1708,27 @@ int main(int argc, char *argv[]) } } + if (verbose) { + printf(" verbose = %d\n" + " load_to_ram = %d\n" + " ktrace = %d\n" + " docompress = %d\n" + " pfile = \"%s\"\n" + " ofile = \"%s\"\n" + " use_resolved = %d\n" + " stack = %d\n" + " rel_file = \"%s\\n", + verbose , + load_to_ram , + ktrace , + docompress , + pfile , + ofile , + use_resolved, + stack , + rel_file ); + } + /* * if neither the -r or -p options was given, default to * a RAM load as that is the only option that makes sense. diff --git a/elf2flt.ld.in b/elf2flt.ld.in index c7e01a6..56b8f96 100644 --- a/elf2flt.ld.in +++ b/elf2flt.ld.in @@ -32,6 +32,8 @@ W_RODAT *(.rodata1) W_RODAT *(.rodata.*) W_RODAT *(.gnu.linkonce.r*) + /* .ARM.extab name sections containing exception unwinding information */ + *(.ARM.extab* .gnu.linkonce.armextab.*) /* This is special code area at the end of the normal text section. It contains a small lookup table at the start followed by the code pointed to by entries @@ -40,11 +42,20 @@ W_RODAT *(.gnu.linkonce.r*) PROVIDE(@SYMBOL_PREFIX@__ctbp = .); *(.call_table_data) *(.call_table_text) - - . = ALIGN(0x20) ; - @SYMBOL_PREFIX@_etext = . ; } > flatmem :text + /* .ARM.exidx name sections containing index entries for section unwinding */ + /* .ARM.exidx is sorted, so has to go in its own output section. */ + @SYMBOL_PREFIX@__exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } > flatmem + @SYMBOL_PREFIX@__exidx_end = .; + + . = ALIGN(0x20) ; + @SYMBOL_PREFIX@_etext = . ; + .data : { . = ALIGN(0x4) ; @SYMBOL_PREFIX@_sdata = . ; -- 1.7.4.4
_______________________________________________ uClinux-dev mailing list uClinux-dev@uclinux.org http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by uclinux-dev@uclinux.org To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev