1

Я пытался скомпилировать последнее ядро Linux v4.8.9, но я продолжаю сталкиваться с этой ошибкой после запуска 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

У меня Ubuntu 16.10 работает в VirtualBox на MacBook Pro. Я использую GCC версии 6.2.0. Я позаботился о том, чтобы запустить "make mrproper" сразу после того, как разархивировал файл, и я прошел через "make defconfig" и "make menuconfig" перед тем, как выполнить саму команду "make".

Из проведенного мною исследования этой ошибки я получил множество несвязанных с ней исправлений. Один из них заключался в прямом клонировании из исходного кода через git, но у меня это тоже не получалось. Я понимаю, что PIC означает независимый от позиции код, но если я прав, я считаю, что GCC 6 должен поддерживать эту функцию.

Компиляция с "-no-pie", кажется, помогает, но я всегда получаю эти "отсутствующие цели" ошибки.

Мне любопытно, если это проблема других людей и какое возможное решение может быть.

0