Можно ли настроить Clang для кросс-компиляции для процессора ARM? Хост, скорее всего, будет на x86 (AMD64 - вероятно Ubuntu 12.04), и целью будет ARM (Raspberry Pi, а также Pandaboard - сделают отдельные компиляции для каждого), я могу в какой-то момент также захотеть перебрать компиляцию для архитектуры PowerPC? Источник программы находится в C.
Clang Cross Compiling для ARM?
Ответ 1
Для кросс-компиляции для Raspberry Pi, выполняющего soft-float Linux-дистрибутивы, добавляет флаги -ccc-host-triple arm-eabi -marm -mfpu=vfp -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=softfp
Для кросс-компиляции для Raspberry Pi, использующего жесткие диски Linux, используют флаги -ccc-host-triple arm-eabi -marm -mfpu=vfp -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=hard
Для кросс-компиляции для использования Pandaboard используйте флаги -ccc-host-triple arm-eabiv7 -mthumb -mfpu=neon-fp16 -mcpu=cortex-a9 -mtune=cortex-a9 -mfloat-abi=hard
(предполагая, что ваш Pandaboard запускает Ubuntu)
Примечание: более поздняя версия clang
использует -target
вариант вместо -ccc-host-triple
Ответ 2
См. EmbToolkit проект. Это дает возможность генерировать clang/llvm или gcc на основе кросс-компилятора.