27

Is it possible to set up Clang for cross compiling for the ARM processor? The host will likely be on x86 ( AMD64 - Probably Ubuntu 12.04 ) and the target would be ARM ( Raspberry Pi as well as Pandaboard - will do separate compilations for each ), I may at some point also wish to cross compile for the PowerPC architecture? The program source is in C.

Flexo
  • 87,323
  • 22
  • 191
  • 272
haziz
  • 12,994
  • 16
  • 54
  • 75
  • Maybe this helps [Is cross-compiling for ARM on x86 with llvm/Clang possible?](http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-June/050820.html) – Olaf Dietsche Feb 04 '13 at 23:39
  • http://github.com/dwelch67/raspberrypi I have examples that use clang in this repo and others. 3.2 allows for compiling straight to object rather than taking a step through assembly. – old_timer Feb 05 '13 at 01:31
  • http://stackoverflow.com/questions/5878292/iphone-why-can-the-compiler-not-find-some-includes-when-building-for-arm-archi/17537169#17537169 – MoDJ Jul 08 '13 at 22:41

2 Answers2

31

To cross-compile for Raspberry Pi running soft-float Linux distros add flags -ccc-host-triple arm-eabi -marm -mfpu=vfp -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=softfp

To cross-compile for Raspberry Pi running hard-float Linux distros use the flags -ccc-host-triple arm-eabi -marm -mfpu=vfp -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=hard

To cross-compile for Pandaboard use flags -ccc-host-triple arm-eabiv7 -mthumb -mfpu=neon-fp16 -mcpu=cortex-a9 -mtune=cortex-a9 -mfloat-abi=hard (assuming that your Pandaboard runs Ubuntu)

Note: more recent clang version use -target option instead of -ccc-host-triple

Marat Dukhan
  • 11,993
  • 4
  • 27
  • 41
1

See EmbToolkit project. It gives ability to generate clang/llvm or gcc based cross compiler toolchain.

Community
  • 1
  • 1