Questions tagged [eabi]

Relating to ARM, MIPS, PowerPC, etc EABI calling conventions and interoperability. Tag with architecture as well.

ABI stands for Application Binary interface. EABI is for embedded use. The ABI covers calling conventions, data alignments, OS call formats and often language and tool interoperability issues.

In the context of ARM Linux, a system call convention change was made. This is typically an OABI versus EABI.

The ABI effects code generation of compilers and can relate to threading, floating point, stack traces, shared libraries and stack overflows.

See also:

79 questions
68
votes
6 answers

What is the use of ARM EABI v7a System image in android?

What for do we need ARM EABI v7a System image in Android development? What is the purpose of that particular image?
Sunil Gandham
  • 707
  • 1
  • 6
  • 6
67
votes
4 answers

arm gcc toolchain as arm-elf or arm-none-eabi, what is the difference?

When you build a gcc toolchain there is the possibility to build it as arm-elf or as arm-none-eabi, but what is the difference? I use the eabi today, but that is just since everyone else seem to do that... but since that is a really bad argument,…
Johan
  • 20,067
  • 28
  • 92
  • 110
49
votes
3 answers

What are the purposes of the ARM ABI and EABI?

The more I look at this PDF (Application Binary Interface for the ARM Architecture: The Base Standard) the less I understand what it means. Also I'd like some comments on Procedure Call Standard for the ARM Architecture and ELF for the ARM…
Micro
  • 765
  • 1
  • 6
  • 10
13
votes
3 answers

armeabi and armeabi-v7a folder

I'm working on an Android project and I am using the NDK to call native methods. I have two libraries (.so files) and one is located in the libs/armeabi folder and the other one is located in the libs/armeabi-v7a lib folder. If I try to run the…
codereviewanskquestions
  • 13,460
  • 29
  • 98
  • 167
8
votes
1 answer

What does code pattern like .size X,.-X do?

My question is about some popular but not well documented code I have found in ARM CORTEX M startup files like this STM32. The 'pattern' is: .size X,.-X ,where X is a symbol or label. I have found this answer and understand how .size directive and…
FemtoFarad
  • 83
  • 5
7
votes
2 answers

How to set 2 byte wchar_t output?

The GCC uses a 4-byte wchar_t by default. I can set the option -fshort-wchar to get 2 bytes per wchar_t in the L"string constants". But when I set the compiler option to my source file I get the famous warning message foo.o uses 2-byte wchar_t yet…
harper
  • 13,345
  • 8
  • 56
  • 105
6
votes
1 answer

Linking Rust with C: undefined reference to '__aeabi' functions

I'm working on a project using Rust on an embedded device, where I'm trying to write functions in Rust that can be called from C. I compile the project without the standard library, more or less following this tutorial: Embedded Rust Right Now! My…
Jambaman
  • 741
  • 9
  • 22
6
votes
3 answers

Can I mix arm-eabi with arm-elf?

I have a product which bootloader and application are compiled using a compiler (gnuarm GCC 4.1.1) that generates "arm-elf". The bootloader and application are segregated in different FLASH memory areas in the linker script. The application has a…
j4x
  • 3,595
  • 3
  • 33
  • 64
5
votes
2 answers

What is 'veneer' that arm linker uses in function call?

I just read https://www.keil.com/support/man/docs/armlink/armlink_pge1406301797482.htm. but can't understand what a veneer is that arm linker inserts between function calls. In "Procedure Call Standard for the ARM Architecture" document, it…
Chan Kim
  • 5,177
  • 12
  • 57
  • 112
5
votes
1 answer

Self written simple memset not working with -03 eabi gcc on ARMv7

I wrote a very simple memset in c that works fine up to -O2 but not with -O3... memset: void * memset(void * blk, int c, size_t n) { unsigned char * dst = blk; while (n-- > 0) *dst++ = (unsigned char)c; return blk; } ...which…
robsn
  • 734
  • 5
  • 18
5
votes
1 answer

How can I interpret the data in .ARM.attributes in an ELF to get the architecture version and other attributes?

I'm most interested in extracting the architecture version, i.e. v5, v5T, etc. I've been referencing Elf for the ARM Architecture Section 4.3.6 Build Attributes which has been helpful in getting me up to this point. I can find the start of the…
Talaria
  • 228
  • 1
  • 4
  • 18
5
votes
0 answers

What's the difference between gnueabi and eabi?

I've seen both arm-linux-gnueabi- and arm-linux-eabi- triplets. From the little I could find it seems gnueabi is a "sub-abi" of eabi. I would like to know what exactly are the differences. I'm trying to get clang to compile for QNX target, so I'm…
Sergio Martins
  • 897
  • 2
  • 8
  • 18
5
votes
2 answers

How to suppress "warning: control reaches end of non-void function"

I have some PowerPC assembly code translated with a gcc cross compiler with this function: uint32_t fill_cache(void) { __asm__ ("addi 3, 0, 0\n"); /* R3 = 0 */ /* More asm here modifying R3 and filling the cache lines. */ } which, under…
Jens
  • 69,818
  • 15
  • 125
  • 179
4
votes
1 answer

Qt Arm Remote Debugging

I am working on LPC1768. I want to debug test_ram.elf file using arm-none-eabi-gdb on qt creator. I downloaded code to test from http://www.yagarto.de/download/yagarto/LPC1768Test.zip Unfortunetely, I couldn’t handle remote debugging. I want to…
esa55
  • 53
  • 1
  • 6
4
votes
1 answer

ARM: Call stack generation with no frame pointer

I'm trying to construct a call stack on a Cortex-M3 processor (ARMv7-M architecture), no OS (bare metal). However, there is no frame pointer register for this ABI. Therefore I'm struggling to generate the call stack when I have no frame…
Saul
  • 992
  • 1
  • 13
  • 26
1
2 3 4 5 6