Suppose you have a cross-compilation tool-chain that produces binaries for the ARM architecture.
Your tool-chain is like this (running on a X86_64 machine with Linux):
- arm-linux-gnueabi-gcc.exe : for cross-compilation for Linux, running on ARM.
- arm-gcc.exe : for bare-metal cross-compilation targeting ARM.
... and the plethora of other tools for cross-compilation on ARM.
Points that I'm interested in are:
- (E)ABI differences between binaries (if any)
- limitations in case of bare-metal (like dynamic memory allocations, usage of static constructors in case of C++, threading models, etc)
- binary-level differences between the 2 cases in terms of information specific to each of them (like debug info support, etc);
mmap()
? Etc. The binary/compiler differences don't matter (mostly). It is the 'C' libraries that are completely different. File I/O? – artless noise