LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Embedded & Single-board computer (https://www.linuxquestions.org/questions/linux-embedded-and-single-board-computer-78/)
-   -   EABI issue (https://www.linuxquestions.org/questions/linux-embedded-and-single-board-computer-78/eabi-issue-807628/)

exin 05-13-2010 12:34 PM

EABI issue
 
Hi!

I'm currently using a AT91SAM9261-EK evaluation board for developing a text-to-speech solution.

The problem is that the libraries provided by the Acapela Group does not use EABI.

I can successfully compile simple hello world programs (code below) using the codesourcery toolchain and run them on the board but even though I've compiled a kernel with the CONFIG_OABI_COMPAT I can't run anything not using EABI (compiled with ELDK 4.0).

Code:

#include <stdio.h>

int main() {
  printf("hello world!\n");
}

This one compiled with the codesourcery toolchain works fine:

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: 0x8380
Start of program headers: 52 (bytes into file)
Start of section headers: 2116 (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: 8
Size of section headers: 40 (bytes)
Number of section headers: 30
Section header string table index: 27

But this one compiled with ELDK 4.0 does not:

ELF Header:
Magic: 7f 45 4c 46 01 01 01 61 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: ARM
ABI Version: 0
Type: EXEC (Executable file)
Machine: ARM
Version: 0x1
Entry point address: 0x82c8
Start of program headers: 52 (bytes into file)
Start of section headers: 3052 (bytes into file)
Flags: 0x602, has entry point, GNU EABI, software FP, VFP
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: 31
Section header string table index: 28

I just get "-sh: <filename>: not found". I can use a hexeditor to look at the file so it's there alright but can't be executed. I've also tried using the GNU ARM-toolchain with the same simple hello world example but that just gives me a segmentation fault when trying to execute the resulting binary on the board.

I could add that compiling and linking my own code with the libraries provided from Acapela works with ELDK 4.0, I just can't run the resulting executables..

Any ideas how I should resolve this issue?


All times are GMT -5. The time now is 01:14 AM.