J'ai essayé de compiler le dernier noyau Linux v4.8.9 sur Ubuntu 16.10 et cette erreur continue d'apparaître après avoir créé le fichier .config par défaut, modifié avec menuconfig et exécuté make par lui-même. J'ai également exécuté make mrproper dès que j'ai décompressé le fichier. Ceci est la sortie juste après avoir exécuté 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
J'ai également essayé de compiler avec l'option -no-pie après la commande make mais cela rend un ensemble de nouvelles erreurs, disant constamment qu'il y a des "cibles manquantes". J'ai la version 6.2.0 de gcc. J'ai également installé gcc-5 parce que j'ai supposé au début que c'était peut-être parce que gcc était trop nouveau mais le même problème persiste dans gcc-5. Quelqu'un dans les listes de diffusion ou un autre forum a mentionné que le problème a été résolu en clonant directement depuis git mais cela n'a pas aidé dans mon scénario non plus.
Je suis curieux de savoir si quelqu'un d'autre a rencontré ce problème et si oui, quelle solution pourrait être?
REMARQUE: j'exécute Ubuntu dans Virtualbox sur un Mac si cela peut être une source possible de problèmes.
Ouvrez le Makefile, recherchez CFLAGS_EXTRA et ajoutez-y l'option suivante
-fno-pie
J'avais la ligne:
Je l'ai changé pour:
Pour la construction du noyau 4, drapeau ci - dessus est:
KBUILD_CFLAGS
.Et il a recommencé à compiler.
la source