Eu tenho tentado compilar o kernel mais recente do Linux v4.8.9 no Ubuntu 16.10 e esse erro continua aparecendo após eu ter feito o .config padrão, modificado com menuconfig e executado o make sozinho. Também executei o make mrproper assim que descompactou o arquivo. Esta é a saída logo após a execução do 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
Também tentei compilar com a opção -no-pie após o comando make, mas ele gera um conjunto de novos erros, constantemente dizendo que existem "destinos ausentes". Eu tenho a versão 6.2.0 do gcc. Eu também tenho o gcc-5 instalado, porque eu assumi que no início poderia ser porque o gcc era muito novo, mas o mesmo problema persiste no gcc-5. Alguém nas listas de discussão ou outro fórum mencionou que o problema foi resolvido pela clonagem direta do git, mas isso também não ajudou no meu cenário.
Estou curioso para saber se alguém já se deparou com esse problema. Em caso afirmativo, que solução pode ser essa?
NOTA: Estou executando o Ubuntu no Virtualbox em um Mac, se isso puder ser uma possível fonte de problemas.
Abra o Makefile, procure CFLAGS_EXTRA e adicione a seguinte opção
-fno-pie
Eu tinha a linha:
Eu mudei para:
Para a construção do kernel 4, bandeira acima é:
KBUILD_CFLAGS
.E começou a compilar novamente.
fonte