Ich habe versucht, den neuesten Linux v4.8.9-Kernel unter Ubuntu 16.10 zu kompilieren, und dieser Fehler tritt immer wieder auf, nachdem ich die Standardkonfiguration .config erstellt, sie mit menuconfig geändert und make selbst ausgeführt habe. Ich habe auch make mrproper ausgeführt, sobald ich die Datei entkernt habe. Dies ist die Ausgabe direkt nach dem Ausführen von make:
scripts/kconfig/conf --silentoldconfig Kconfig
SYSTBL arch/x86/entry/syscalls/../../include/generated/asm/syscalls_32.h
SYSHDR arch/x86/entry/syscalls/../../include/generated/asm/unistd_32_ia32.h
SYSHDR arch/x86/entry/syscalls/../../include/generated/asm/unistd_64_x32.h
SYSTBL arch/x86/entry/syscalls/../../include/generated/asm/syscalls_64.h
SYSHDR arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_32.h
SYSHDR arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_64.h
SYSHDR arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_x32.h
HOSTCC arch/x86/tools/relocs_32.o
HOSTCC arch/x86/tools/relocs_64.o
HOSTCC arch/x86/tools/relocs_common.o
HOSTLD arch/x86/tools/relocs
CHK include/config/kernel.release
UPD include/config/kernel.release
WRAP arch/x86/include/generated/asm/clkdev.h
WRAP arch/x86/include/generated/asm/cputime.h
WRAP arch/x86/include/generated/asm/dma-contiguous.h
WRAP arch/x86/include/generated/asm/early_ioremap.h
WRAP arch/x86/include/generated/asm/mcs_spinlock.h
WRAP arch/x86/include/generated/asm/mm-arch-hooks.h
CHK include/generated/uapi/linux/version.h
UPD include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
UPD include/generated/utsrelease.h
CC kernel/bounds.s
kernel/bounds.c:1:0: error: code model kernel does not support PIC mode
/*
Kbuild:45: recipe for target 'kernel/bounds.s' failed
make[1]: *** [kernel/bounds.s] Error 1
Makefile:1015: recipe for target 'prepare0' failed
make: *** [prepare0] Error 2
Ich habe auch versucht, nach dem Befehl make mit der Option -no-pie zu kompilieren, aber es werden eine Reihe neuer Fehler angezeigt, die ständig darauf hinweisen, dass "Ziele fehlen". Ich habe gcc Version 6.2.0. Ich habe auch gcc-5 installiert, weil ich am Anfang angenommen habe, dass es daran liegen könnte, dass gcc zu neu war, aber das gleiche Problem in gcc-5 weiterhin besteht. Jemand in den Mailinglisten oder einem anderen Forum erwähnte, dass das Problem durch direktes Klonen von git behoben wurde, aber das half auch in meinem Szenario nicht.
Ich bin gespannt, ob jemand anderes auf dieses Problem gestoßen ist und wenn ja, welche mögliche Lösung könnte dies sein?
HINWEIS: Ich verwende Ubuntu in Virtualbox auf einem Mac, wenn dies eine mögliche Ursache für Probleme sein könnte.
Öffnen Sie das Makefile, suchen Sie nach CFLAGS_EXTRA und fügen Sie die folgende Option hinzu
-fno-pie
Ich hatte die Leitung:
Ich habe es geändert für:
Für das Erstellen von Kernel 4 steht über dem Flag :
KBUILD_CFLAGS
.Und es fing wieder an zu kompilieren.
quelle