Cross LFS - PPC - Fehler beim Kompilieren

Cross LFS - PPC - Fehler beim Kompilieren

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 menuconfighabe 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.cund 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.

verwandte Informationen