Я пытался скомпилировать последнее ядро Linux v4.8.9 на Ubuntu 16.10, и эта ошибка продолжает открываться после того, как я сделал значение по умолчанию .config, изменил его с menuconfig и работал, делают отдельно. Я также работал, делают mrproper как только я непросмоленный файл. Это - вывод прямо после того, как я работаю, сделайте:
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
Я также попытался компилировать с - опция без кругов после сделать команды, но она представляет ряд новых ошибок, постоянно говоря, что там "пропускают цели". У меня есть gcc версия 6.2.0. У меня также есть gcc-5, установленный, потому что я принял в начале, которым это могло бы быть, потому что gcc был слишком новым, но та же проблема сохраняется в gcc-5. Кто-то в списках рассылки или другом форуме упомянул, что проблема была разрешена путем прямого клонирования от мерзавца, но это не помогло в моем сценарии также.
Мне любопытно, если кто-либо еще столкнулся с этой проблемой и если так, какая возможная фиксация могла бы быть?
Примечание: Я запускаю Ubuntu в Virtualbox на Mac, если это могло бы быть возможным источником проблем.
Проблема с Вашей gcc установкой в gcc 6 +, КРУГ версий (положение независимые исполняемые файлы) включен по умолчанию. Таким образом, для компиляции Вас, должен отключить его. Даже gcc 5 имеет проблему. Это - известная ошибка для gcc. Ссылка Ошибки .
До сих пор с gcc стороны нет никакого официального патча, таким образом, обходное решение должно исправить Make-файл источника ядра.
, Если Вы знакомы с исправлением исходного файла, используют коды из этой ссылки для создания файла исправления, затем пытаются скомпилировать. Файл исправления
Сообщенный мне, если Вы испытываете затруднения при установке патча.
Откройте Makefile, ищите CFLAGS_EXTRA и добавьте следующую опцию к нему -fno-pie
У меня была строка:
EXTRA_CFLAGS += $(CFLAGS_EXTRA)
Я изменил его для:
EXTRA_CFLAGS += $(CFLAGS_EXTRA) -fno-pie
Для создания ядра 4, выше флага: KBUILD_CFLAGS
.
И это начало компилировать снова.