kernel.org에서 4.14 rc2, kernel.org에서 4.13.4, git에서 linux-stable clone으로 컴파일 할 때 다음과 같은 오류가 발생합니다.Linux 커널 오류 만들기
[email protected]:/home/linux-stable# make O=/home/LINUX
make[1]: Entering directory '/home/LINUX'
CHK include/config/kernel.release
Using /home/linux-stable as source for kernel
GEN ./Makefile
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
UPD include/generated/utsrelease.h
CC kernel/bounds.s
CHK include/generated/bounds.h
UPD include/generated/bounds.h
CHK include/generated/timeconst.h
UPD include/generated/timeconst.h
CC arch/x86/kernel/asm-offsets.s
CHK include/generated/asm-offsets.h
UPD include/generated/asm-offsets.h
CALL /home/linux-stable/scripts/checksyscalls.sh
DESCEND objtool
CC /home/LINUX/tools/objtool/orc_dump.o
orc_dump.c: In function 'orc_dump':
orc_dump.c:105:26: error: passing argument 2 of 'elf_getshdrnum' from incompatible pointer type [-Werror=incompatible-pointer-types]
if (elf_getshdrnum(elf, &nr_sections)) {
^
In file included from /usr/local/include/gelf.h:32:0,
from elf.h:22,
from warn.h:26,
from orc_dump.c:20:
/usr/local/include/libelf.h:304:12: note: expected 'size_t * {aka unsigned int *}' but argument is of type 'long unsigned int *'
extern int elf_getshdrnum (Elf *__elf, size_t *__dst);
^~~~~~~~~~~~~~
orc_dump.c:190:17: error: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'Elf64_Sxword {aka long long int}' [-Werror=format=]
printf("%s+%lx:", name, rela.r_addend);
~~^ ~~~~~~~~~~~~~
%llx
cc1: all warnings being treated as errors
mv: cannot stat '/home/LINUX/tools/objtool/.orc_dump.o.tmp': No such file or directory
/home/linux-stable/tools/build/Makefile.build:95: recipe for target '/home /LINUX/tools/objtool/orc_dump.o' failed
make[4]: *** [/home/LINUX/tools/objtool/orc_dump.o] Error 1
Makefile:41: recipe for target '/home/LINUX/tools/objtool/objtool-in.o' failed
make[3]: *** [/home/LINUX/tools/objtool/objtool-in.o] Error 2
Makefile:61: recipe for target 'objtool' failed
make[2]: *** [objtool] Error 2
/home/linux-stable/Makefile:1622: recipe for target 'tools/objtool' failed
make[1]: *** [tools/objtool] Error 2
make[1]: Leaving directory '/home/LINUX'
Makefile:145: recipe for target 'sub-make' failed
make: *** [sub-make] Error 2
누구든지 도움을받을 수 있다면 매우 감사하겠습니다.
elfs 및 orcs에 문제가있는 것으로 보입니다.
knoppix 8.1 64 비트 설치를 사용하고 있지만 플랫폼은 32 비트로 실행됩니다. 필자는 커널 readme에 지정된 최소 요구 사항을 모두 설치했습니다. 필자가 선택한 옵션에서 .config 파일을 사용하고 oldconfig 옵션과 localmodconfig 옵션을 사용해 보았습니다.
나는 linux-headers-4.12.7과 linux-headers-4.12.7-64가 설치되어있다. 그것은 일치하지 않습니다. 아마 당신은 이것을 필요로하지만 어떤 기사 나 기사에서는 이것을 보지 못했습니다. 소스를 어디에서 다운로드 할 수 있는지 알고 있습니까? – kami
libelf-dev가 설치되어 있습니다. libelf ++ 0도 있습니다. libelf1 및 libelfin-dev가 설치되었습니다. Ive는 libelf의 freebsd 변형을 시도했습니다. 드워프가 설치되어 있고 오크도 있습니다. – kami
libelf-dev없이 CONFIG_STACK_VLIDATION을 사용할 필요가있을 때 다음과 같은 오류가 발생합니다./home/linux-stable/Makefile : 936 : "CONFIG_STACK_VALIDATION을 사용할 수 없습니다. libelf-dev, libelf-devel 또는 elfutils-libelf-devel을 설치하십시오" – kami