ABI conformance and the ARM AXD debugger
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ABI conformance and the ARM AXD debugger



Hi All,

We're trying use the CodeSourcery tools to build an image which is compatible with the ARM developer tools. If I download the prebuilt binaries for Linux and compile a test file and run ARM's fromelf utility I get:

** ELF Header Information

   File Name: test2.o

   Machine class: ELFCLASS32 (32-bit)
   Data encoding: ELFDATA2LSB (Little endian)
   Header version: EV_CURRENT (Current version)
   Operating System ABI: none
   ABI Version: 0
   File Type: ET_REL (Relocatable object) (1)
   Machine: EM_ARM (ARM)

   Entry offset (in SHF_ENTRYSECT section): 0x00000000
   Flags: None (0x04000000)

   ABI conformance : RVCT2.1

   Built with
   GCC: (GNU) 3.4.3 (release) (CodeSourcery ARM Q1B 2005)

   Header size: 52 bytes (0x34)
   Program header entry size: 0 bytes (0x0)
   Section header entry size: 40 bytes (0x28)

   Program header entries: 0
   Section header entries: 8

   Program header offset: 0 (0x00000000)
   Section header offset: 192 (0x000000c0)

   Section header string table index: 5


If I compile a file with the version we built from source and targeted to our platform I get:

** ELF Header Information

   File Name: serport.o

   Machine class: ELFCLASS32 (32-bit)
   Data encoding: ELFDATA2LSB (Little endian)
   Header version: EV_CURRENT (Current version)
   Operating System ABI: GNU unknown ARM ABI
   ABI Version: 0
   File Type: ET_REL (Relocatable object) (1)
   Machine: EM_ARM (ARM)

   Entry offset (in SHF_ENTRYSECT section): 0x00000000
   Flags: None (0x00000200)

   ABI conformance : SDT

   Built with
   GCC: (GNU) 3.4.3 (release) (CodeSourcery ARM Q1B 2005)

   Header size: 52 bytes (0x34)
   Program header entry size: 0 bytes (0x0)
   Section header entry size: 40 bytes (0x28)

   Program header entries: 0
   Section header entries: 23

   Program header offset: 0 (0x00000000)
   Section header offset: 26132 (0x00006614)

   Section header string table index: 20


The big difference I see is the "ABI conformance." If I compile with ARM tools I get RVCT2.1 as well. So I'm assuming that this is what's preventing their debugger from liking our image file. It gives me a file format error if I try to load it up.

So what is the magic incantation to get the RVCT action? Is this something in the compiler build or a switch I can throw when compiling my code?

Thanks,
Jim