arm eabi, and aapcs issues with gcc 4.0

Lennert Buytenhek
Wed Jan 4 19:07:00 GMT 2006

Hi all,

The attached patch allows building an arm AAPCS toolchain with gcc 4.0.
However.. the resulting object files and binaries are marked as APCS-32,
which is incorrect:

$ arm-aapcs-linux-gnu-gcc -Wall -o xx xx.c
$ arm-aapcs-linux-gnu-objdump --all xx | grep ^private
private flags = 2: [APCS-32] [FPA float format] [has entry point]

Phil Blundell suggested that this is probably because binutils (as) didn't
have flags for passing the ABI type when the gcc 4.0 branch was forked
off.  Partially because of this, trying to use gcc 4.0 for anything EABI
is kind of a dead end (as he already said.)  FYI.


diff -urN crosstool-0.38.orig/arm-aapcs.dat crosstool-0.38/arm-aapcs.dat
--- crosstool-0.38.orig/arm-aapcs.dat	1970-01-01 03:00:00.000000000 +0300
+++ crosstool-0.38/arm-aapcs.dat	2006-01-04 19:35:18.000000000 +0200
@@ -0,0 +1,4 @@
diff -urN crosstool-0.38.orig/ crosstool-0.38/
--- crosstool-0.38.orig/	1970-01-01 03:00:00.000000000 +0300
+++ crosstool-0.38/	2006-01-04 19:35:58.000000000 +0200
@@ -0,0 +1,17 @@
+set -ex
+# Really, you should do the mkdir before running this,
+# and chown /opt/crosstool to yourself so you don't need to run as root.
+mkdir -p $RESULT_TOP
+# Build the toolchain.  Takes a couple hours and a couple gigabytes.
+ eval `cat arm-aapcs.dat gcc-4.0.1-glibc-2.3.5-hdrs-`  sh --notest
+echo Done.

Want more information?  See the CrossGCC FAQ,
Want to unsubscribe? Send a note to

More information about the crossgcc mailing list