Как изменить, какой набор инструментов использует scons

415
kittensauce

Я пытаюсь скомпилировать OpeniBoot на устройстве ARM, а именно PocketCHIP, в соответствии с данным руководством (но с некоторыми незначительными изменениями, учитывая, что я не использую Raspberry Pi.). OpeniBoot - это специальный низкоуровневый загрузчик, предназначенный для установки на устройства Apple, такие как iPod Touch или iPhone. Это позволяет пользователю запускать ядро ​​Linux вместе со стандартным ядром iOS, а также выполнять другие операции низкого уровня.

Мне удалось скомпилировать и установить почти все перечисленные зависимости, чтобы скомпилировать бинарный файл для OpeniBoot. Однако при запуске scons iPhone4я получаю сообщение об ошибке:

chip@chip:~/openiBoot$ scons iPhone4 ... arch-arm/asmhelpers.sx: Assembler messages: arch-arm/asmhelpers.sx:212: Error: selected processor does not support `wfi' scons: *** [arch-arm/iPhone4_asmhelpers.o] Error 1 scons: building terminated because of errors. 

Я исследовал эту ошибку, и я нашел это решение :

Исправлено это путем добавления «-mcpu = cortex-a8» к опциям компилятора.

Я уже пытался добавить опцию к самой команде scons, используя синтаксис, подобный следующему:

scons -mcpu=cortex-a8 iPhone4 

но безрезультатно.

Итак, вопрос: как я могу передать опции компилятору при использовании scons?

--РЕДАКТИРОВАТЬ--

С тех пор я решил этот вопрос, изменив строку в файле "ARMEnviroment.SConscript" на подобную этой:

plat_flags = ['-mlittle-endian', '-mfpu=vfp', '-mthumb', '-mthumb-interwork', '-fPIC', '-mcpu=cortex-a8'] 

Тем не менее, я теперь сталкиваюсь с новой ошибкой при компиляции:

chip@chip:~/openiBoot$ scons iPhone4 ... arch-arm/entry.sx:0: error: bad value (cortex-a8) for -mcpu= switch scons: *** [arch-arm/iPhone4_entry.o] Error 1 scons: building terminated because of errors. 

Я полагаю, что это потому, что sconsвсе еще использует старый набор инструментов, установленный с apt-getGCC-4.9.2, вместо того, чтобы использовать то, openiboot-toolchainчто я скомпилировал (и я считаю, что это необходимо для компиляции этой программы).

Итак, вопрос в том, как мне изменить, какой набор инструментов sconsиспользует для компиляции кода?

4
Я пытался свести ваш вопрос к проблеме, пожалуйста, добавьте все, что вы считаете уместным. Посмотрим, есть ли у кого-нибудь ответ на это. Если нет, пожалуйста, пометьте внимание моду через 2 дня, и мы можем перенести его в StackOverflow. nohillside 6 лет назад 1
Предоставляет ли `scons -h` какие-либо подсказки или подсказки? bmike 6 лет назад 0
@bmike `scons -h` предоставляет список опций (которые я скопировал / вставил в [этот pastebin] (https://pastebin.com/raw/XgycjFS6)), хотя ни один из них, похоже, не относится к моей проблеме , kittensauce 6 лет назад 0
scons читает файл python с кодом конфигурации, вам, вероятно, нужно установить переменные там nohillside 6 лет назад 0
@patrix Это похоже на то, что я искал, но когда я вставляю '-mcpu = cortex-a8' в файл ARMEnviroment.SConscript, например [this] (https://pastebin.com/raw/WzGKMXCV), я получаю [новая ошибка] (https://pastebin.com/raw/vdWjK9Dg) во время компиляции. kittensauce 6 лет назад 0
Мы определенно должны переместить это куда-нибудь, где больше людей, использующих компиляторы, тусуются nohillside 6 лет назад 0

0 ответов на вопрос

Похожие вопросы