Erro no modo PIC ao compilar o kernel do linux? [fechadas]

1

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.

    
por John Long 20.11.2016 / 19:34

0 respostas