He estado tratando de compilar el último kernel de Linux v4.8.9 en Ubuntu 16.10 y este error sigue apareciendo después de hacer el .config predeterminado, modificarlo con menuconfig y ejecutar make por sí mismo. También ejecuté make mrproper tan pronto como desmarqué el archivo. Este es el resultado justo después de ejecutar 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
También he intentado compilar con la opción -no-pie después del comando make, pero muestra un conjunto de nuevos errores y dice constantemente que faltan "objetivos". Tengo gcc versión 6.2.0. También tengo instalado gcc-5 porque supuse al principio que podría ser porque gcc era demasiado nuevo, pero el mismo problema persiste en gcc-5. Alguien en las listas de correo u otro foro mencionó que el problema se resolvió clonando directamente desde git, pero eso tampoco ayudó en mi escenario.
Tengo curiosidad por saber si alguien más se ha encontrado con este problema y, de ser así, ¿qué posible solución podría ser?
NOTA: Estoy ejecutando Ubuntu en Virtualbox en una Mac si eso podría ser una posible fuente de problemas.
Abra el Makefile, busque CFLAGS_EXTRA y agregue la siguiente opción
-fno-pie
Tenía la linea:
Lo cambié por:
Para la construcción del núcleo 4, bandera anterior es:
KBUILD_CFLAGS
.Y comenzó a compilar de nuevo.
fuente