EABI on Maverick Crunch

From Nuclear Physics Group Documentation Pages
Revision as of 20:32, 21 January 2010 by Maurik (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

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).