So ändern Sie, welche Toolchain-Scons verwendet werden

574
kittensauce

Ich versuche, OpeniBoot auf einem ARM-Gerät, nämlich dem PocketCHIP, gemäß dieser Anleitung zu kompilieren (mit einigen geringfügigen Änderungen, da ich kein Raspberry Pi verwende). OpeniBoot ist ein benutzerdefinierter Low-Level-Bootloader, der für die Installation auf Apple-Geräten wie dem iPod Touch oder dem iPhone entwickelt wurde. Es erlaubt dem Benutzer, einen Linux-Kernel neben dem Standard-iOS-Kernel auszuführen sowie andere Low-Level-Vorgänge auszuführen.

Es ist mir gelungen, fast alle aufgeführten Abhängigkeiten zu kompilieren und zu installieren, um die Binärdatei für OpeniBoot zu kompilieren. Beim Laufen scons iPhone4bekomme ich jedoch einen Fehler:

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. 

Ich habe diesen Fehler recherchiert und diese Lösung gefunden :

Behebung des Problems durch Hinzufügen von "-mcpu = cortex-a8" zu den Compileroptionen.

Ich habe bereits versucht, die Option an den Befehl scons selbst anzufügen, und zwar in einer ähnlichen Syntax:

scons -mcpu=cortex-a8 iPhone4 

umsonst.

Die Frage ist also: Wie kann ich bei der Verwendung Optionen an den Compiler übergeben scons?

--BEARBEITEN--

Ich habe diese Frage seitdem gelöst, indem ich eine Zeile in der Datei "ARMEnviroment.SConscript" wie folgt geändert habe:

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

Ich stelle jedoch beim Kompilieren jetzt einen neuen Fehler fest:

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. 

Ich glaube, das liegt daran, dass sconsimmer noch die alte Toolchain verwendet wird, die mit apt-getGCC-4.9.2 installiert wurde, anstatt die openiboot-toolchain, die ich kompiliert hatte (und ich glaube, dass dies zum Kompilieren dieses Programms notwendig ist).

Die Frage ist also: Wie kann ich ändern, welche Toolchain sconszum Kompilieren von Code verwendet wird?

4
Ich habe versucht, Ihre Frage auf das anstehende Problem zu beschränken. Bitte fügen Sie alles hinzu, was Sie für relevant halten. Mal sehen, ob jemand eine Antwort darauf hat. Wenn dies nicht der Fall ist, melden Sie sich bitte innerhalb von zwei Tagen für Mod-Aufmerksamkeit und wir können sie zu StackOverflow migrieren. nohillside vor 7 Jahren 1
Bietet `scons -h` Tipps oder Hinweise? bmike vor 7 Jahren 0
@bmike `scons -h` bietet eine Liste von Optionen (die ich in [diesen Pastebin] (https://pastebin.com/raw/XgycjFS6) kopiert / eingefügt habe, obwohl sich keine davon auf mein Problem zu beziehen scheint . kittensauce vor 7 Jahren 0
scons liest eine Python-Datei mit config-Code. Möglicherweise müssen Sie dort Variablen eingeben nohillside vor 7 Jahren 0
@patrix Das scheint das zu sein, wonach ich gesucht habe, aber wenn ich '-mcpu = cortex-a8' in die ARMEnviroment.SConscript-Datei wie [this] (https://pastebin.com/raw/WzGKMXCV) einfügen, bekomme ich a [Neuer Fehler] (https://pastebin.com/raw/vdWjK9Dg) beim Kompilieren. kittensauce vor 7 Jahren 0
Wir müssen dies definitiv an einen Ort bringen, an dem mehr Leute mit Compilern rumhängen nohillside vor 7 Jahren 0

0 Antworten auf die Frage