[LLVMdev] Setting up a cross-compiler for cortex-m3

salvatore benedetto salvatore.benedetto at gmail.com
Wed Jul 18 06:30:35 PDT 2012


Hi there,

I'm trying to switch from GCC to llvm (clang++) for cross-compiling
a firmware of mine for a stm32 (ARM cortex-m3).

After looking in the documentation and a bit of googling here is what
I did (in case someone else in the future is having the same problem)

cd llvm
git clone http://llvm.org/git/llvm.git

cd llvm/tools
git clone http://llvm.org/git/clang.git

cd llvm/projects
git clone http://llvm.org/git/compiler-rt.git

cd ../llvm-build/
../llvm/configure --prefix=$(HOME)/bin/llvm
--exec-prefix=$(HOME)/bin/llvm  --enable-targets=x86_64,arm,cpp
--enable-optimized

make
make install

It seems everything compiled smoothly, but I can't figure out if there
is any options that list all available targets.
The following only display my host platform as target.

clang -v
clang version 3.2 (http://llvm.org/git/clang.git
88237bf587581026dcfc8386abf055cb201aa487)
(http://llvm.org/git/llvm.git
18a1b616ea123548b61a037c4f4fea4133aac1b5)
Target: x86_64-unknown-linux-gnu
Thread model: posix

After some more bit of searching I managed to build for cortex-a with
clang -march=armv7-a -mfloat-abi=soft -ccc-host-triple arm-elf
-integrated-as testReference.cpp -c

but I still haven't figure out how to build for cortex-m3

clang -march=armv7-m -mfloat-abi=soft <something missing?> testReference.cpp -c

If anyone can point me to some reading or shine some light on this
one, I'd really appreciate it.

Thanks,
Salvatore



More information about the llvm-dev mailing list