Difference between revisions of "EABI on Maverick Crunch"

From Nuclear Physics Group Documentation Pages
Jump to navigationJump to search
 
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
= Notes on making a proper EABI system for Maverick Crunch (EP9302, EP93xx) processors =
+
= Notes on making a proper EABI cross compiler for Maverick Crunch (EP9302, EP93xx) processors =
  
 +
This is a bit of "higher order hacking" and not too trivial, but it works. Basic compile instructions are at: [[ARM Cross Compiler]]
 +
 +
# Fixup the binutils (2.20) to store the mv registers, according to the patches at: http://www.freelists.org/post/linux-cirrus/Yet-another-MaverickCrunch-hardware-bug,14. Note that I did these patches by hand, since 2.20 is a bit different from 2.17.
 +
# Compile and install the renewed binutils.
 
# Get the gcc-4.3.4 distribution from GNU
 
# Get the gcc-4.3.4 distribution from GNU
 
# Apply the patches of Martin Guy <martinwguy@gmail.com>, found at http://martinwguy.co.uk/martin/crunch
 
# Apply the patches of Martin Guy <martinwguy@gmail.com>, found at http://martinwguy.co.uk/martin/crunch
 
# Compile and install the renewed gcc.  
 
# Compile and install the renewed gcc.  
# Fixup the binutils (2.20) to store the mv registers, according to the patches at: http://www.freelists.org/post/linux-cirrus/Yet-another-MaverickCrunch-hardware-bug,14
+
 
# Recompile and install the renewed binutils.
+
The new gcc and g++ can now make FPU enabled code when using the additional command line options: -mcpu=ep9312 -mfpu=maverick -mfloat-abi=softfp
 +
 
 +
You can check if the resulting code (the .o or .so or .a file) contains FPU instructions with the following:
 +
 
 +
arm-linux-gnueabi-objdump -d libQtCore.so.4.6.0  | gawk  '/ \tcf/' | less
 +
 
 +
(that is, you look for a <space><tab>cf combination).

Latest revision as of 20:32, 21 January 2010

Notes on making a proper EABI cross compiler for Maverick Crunch (EP9302, EP93xx) processors

This is a bit of "higher order hacking" and not too trivial, but it works. Basic compile instructions are at: ARM Cross Compiler

  1. Fixup the binutils (2.20) to store the mv registers, according to the patches at: http://www.freelists.org/post/linux-cirrus/Yet-another-MaverickCrunch-hardware-bug,14. Note that I did these patches by hand, since 2.20 is a bit different from 2.17.
  2. Compile and install the renewed binutils.
  3. Get the gcc-4.3.4 distribution from GNU
  4. Apply the patches of Martin Guy <martinwguy@gmail.com>, found at http://martinwguy.co.uk/martin/crunch
  5. Compile and install the renewed gcc.

The new gcc and g++ can now make FPU enabled code when using the additional command line options: -mcpu=ep9312 -mfpu=maverick -mfloat-abi=softfp

You can check if the resulting code (the .o or .so or .a file) contains FPU instructions with the following:

arm-linux-gnueabi-objdump -d libQtCore.so.4.6.0  | gawk  '/ \tcf/' | less

(that is, you look for a <space><tab>cf combination).