커널을 컴파일할 수 없습니다: 오류, 커널은 PIC 모드를 지원하지 않습니다.

커널을 컴파일할 수 없습니다: 오류, 커널은 PIC 모드를 지원하지 않습니다.

커널을 다시 컴파일하는 데 문제가 있습니다. 소스 패키지를 다운로드하고 압축을 푼 후 실행

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

에서http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.8-rc2/0002-UBUNTU-SAUCE-no-up-disable-pie-when-gcc-has-it-enabl.patch

다음 패치를 시도해 볼 수 있습니다.

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 :=

관련 데비안 티켓 몇 개:

관련 GCC 보고서:

관련 정보