У меня проблемы с перекомпиляцией ядра. Скачиваю исходный пакет, распаковываю его и запускаю
fakeroot make-kpkg kernel_image
приводит меня к ошибке
[...]
CHK include/generated/utsrelease.h
UPD include/generated/utsrelease.h
CHK include/generated/package.h
UPD include/generated/package.h
CC kernel/bounds.s
kernel/bounds.c:1:0: error: code model kernel does not support PIC mode
Проблему можно решить, изменив конфигурацию ядра, полученную с помощью make menuconfig
.
Как избавиться от этой ошибки и успешно выполнить компиляцию
решение1
Вы можете попробовать следующий патч:
diff --git a/Makefile b/Makefile
index 5c18baa..e342473 100644
--- a/Makefile
+++ b/Makefile
@@ -612,6 +612,12 @@ endif # $(dot-config)
# Defaults to vmlinux, but the arch makefile usually adds further targets
all: vmlinux
+# force no-pie for distro compilers that enable pie by default
+KBUILD_CFLAGS += $(call cc-option, -fno-pie)
+KBUILD_CFLAGS += $(call cc-option, -no-pie)
+KBUILD_AFLAGS += $(call cc-option, -fno-pie)
+KBUILD_CPPFLAGS += $(call cc-option, -fno-pie)
+
# The arch Makefile can set ARCH_{CPP,A,C}FLAGS to override the default
# values of the respective KBUILD_* variables
ARCH_CPPFLAGS :=
Пара связанных тикетов Debian:
- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=835148
- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=841420
И соответствующий отчет ССЗ: