Eu tenho tentado compilar o kernel mais recente do Linux, v4.8.9, mas continuo encontrando este erro depois que eu executo o 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
Eu tenho o Ubuntu 16.10 rodando no VirtualBox em um MacBook Pro. Estou usando o GCC versão 6.2.0. Eu fiz questão de rodar "make mrproper" logo depois que eu descompactei o arquivo e passei por ambos "make defconfig" e "make menuconfig" antes de executar o comando "make" por si mesmo.
A partir da pesquisa que fiz sobre o erro, obtive uma miríade de correções não relacionadas a ele. Um deles envolvia diretamente a clonagem da fonte através do git, mas isso também não funcionou para mim. Eu entendo que PIC significa código independente de posição, mas se eu estiver correto, acredito que o GCC 6 deve suportar essa função.
A compilação com "-no-pie" parece ajudar, mas eu sempre recebo esses erros de "destino ausente".
Estou curioso para saber se esse é um problema que outras pessoas tiveram e que possível solução pode ser.