Ich versuche, ein CLFS für einen PPC 8270-Prozessor zu erstellen. Alles ist in Ordnung, bis ich den make ARCH=powerpc CROSS_COMPILE=${CLFS_TARGET}-
Befehl verwende.
CC arch/powerpc/kernel/align.o
arch/powerpc/kernel/align.c: In function 'fix_alignment':
arch/powerpc/kernel/align.c:704:33: error: variable 'instruction' set but not used [-Werror=unused-but-set-variable]
cc1: all warnings being treated as errors
make[1]: *** [arch/powerpc/kernel/align.o] Error 1
make: *** [arch/powerpc/kernel] Error 2
In menuconfig
habe ich die Standardkonfiguration verwendet, außer dass ich die Kompatibilität mit der PPC 82XX-Prozessorfamilie gewählt habe.
Antwort1
Dies scheint mir ein Fehler in align.c 2.6.39 und früheren Versionen in Bezug auf GCC >= 4.6 zu sein. Ich vermute, dass Sie auf einem aktuellen Fedora aufbauen, auf dem GCC 4.6 als standardmäßig installierter GCC installiert ist. Der Fehler sollte meiner Meinung nach bei Verwendung von GCC < 4.6 nicht auftreten.
Die Variable "Anweisung" wird in Zeile 704 deklariert und auf Null initialisiert. Sie wird dann in Zeile 746 neu zugewiesen. Diese Neuzuweisung reicht nicht aus, um die GCC-Warnung zu unterdrücken. Ich habe dieses Verhalten überprüft, indem ich
int main()
{
int i = 0;
i = 4;
return 1;
}
mit /usr/local/gcc-4.7.0/bin/gcc -Wall -o test test.c
und bekam
test.c:3:6: warning: variable ‘i’ set but not used [-Wunused-but-set-variable]
Auf die Variable „Anweisung“ wird nur in Code verwiesen, der ifdef'ed CONFIG_VSX ist. Wenn Sie also CONFIG_VSX nicht gesetzt haben, tritt dieses Problem beim Kompilieren mit GCC >= 4.6 auf. Das Setzen von CONFIG_VSX sollte das Problem lösen. Wenn das nicht das ist, was Sie wollen, versuchen Sie, CONFIG_PPC_DISABLE_WERROR in menuconfig zu setzen oder verwenden SiedieseAnweisungen, die Ihnen beim Deaktivieren des -Werrors oder beim Patchen des Codes helfen.
Wenn Sie den Code patchen, sollten Sie ihn an kernel.org senden, da dieser Fehler meines Wissens in 3.3 immer noch vorhanden ist.
Antwort2
Das Kopieren von libbfd.2-22.so und zlib.so (umbenannt in zlib.so.1) nach /tools/lib wurde behoben. Entschuldigen Sie den dummen Fehler, ich dachte, die Dateien wären bereits dort.