2017-10-01 18 views
0

Linuxカーネルをコンパイルしようとすると、kernel.orgの4.14 rc2とkernel.orgの4.13.4で同じエラーが発生します。またlinux-stableでgitを使用してクローンを作成しました。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ビットで動作します。 Iveは、カーネルのreadmeで指定されている最小要件をすべてインストールしました。 Iveは自分の選択したオプションから.configファイルを使い、oldconfigオプションとlocalmodconfigオプションを使用してみました。

+0

linux-headers-4.12.7とlinux-headers-4.12.7-64がインストールされています。それは対応しません。おそらくあなたはこれを必要としますが、私はこれをどの記事でも見たことはありません。ソースをどこからダウンロードできるのか知っていますか? – kami

+0

libelf-devがインストールされています。私もlibelf ++ 0を持っています。 libelf1とlibelfin-devがインストールされています。 Iveはlibelfのfreebsdバリエーションも試しました。私はまた矮星をインストールし、オークを持っています。 – kami

+0

libelf-devなしでCONFIG_STACK_VLIDATIONを使用する必要がある場合、次のエラーが発生します。/home/linux-stable/Makefile:936: "CONFIG_STACK_VALIDATIONは使用できません。libelf-dev、libelf-develまたはelfutils-libelf-develをインストールしてください" – kami

答えて

1

4.13(メタパッケージ)用のlinux-headerをインストールしました。このファイルは、kernel.orgバージョン4.13.4からダウンロードしたソースを使用して、CONFIG_STACK_VALIDATIONの要求を満たすelfsとorcsを超えています。

gitから入手したlinux-stableでelfsやorcsを超えたわけではありませんでしたが、

一部のドライバでは新しいエラーが発生していますが、ビルドしていません。

[email protected]:/home/linux-4.13.4# make O=/home/linux-4134 
make[1]: Entering directory '/home/linux-4134' 
    CHK  include/config/kernel.release 
    Using /home/linux-4.13.4 as source for kernel 
    GEN  ./Makefile 
    CHK  include/generated/uapi/linux/version.h 
    CHK  include/generated/utsrelease.h 
    CHK  include/generated/bounds.h 
    CHK  include/generated/timeconst.h 
    CHK  include/generated/asm-offsets.h 
    CALL /home/linux-4.13.4/scripts/checksyscalls.sh 
    DESCEND objtool 
    CHK  scripts/mod/devicetable-offsets.h 
    CHK  include/generated/compile.h 
    CHK  kernel/config_data.h 
    BLD FW drivers/net/wan/wanxlfw.inc 
/bin/sh: as68k: command not found 
/home/linux-4.13.4/drivers/net/wan/Makefile:58: recipe for target 'drivers/net/wan/wanxlfw.inc' failed 
make[4]: *** [drivers/net/wan/wanxlfw.inc] Error 127 
/home/linux-4.13.4/scripts/Makefile.build:561: recipe for target 'drivers/net/wan' failed 
make[3]: *** [drivers/net/wan] Error 2 
/home/linux-4.13.4/scripts/Makefile.build:561: recipe for target 'drivers/net' failed 
make[2]: *** [drivers/net] Error 2 
/home/linux-4.13.4/Makefile:1019: recipe for target 'drivers' failed 
make[1]: *** [drivers] Error 2 
make[1]: Leaving directory '/home/linux-4134' 
Makefile:145: recipe for target 'sub-make' failed 
make: *** [sub-make] Error 2 
+0

あなたのターゲットCPUアーキテクチャは何ですか? * $ ARCH *には何が設定されていますか? – 0andriy

+0

CONFIG_64BIT = Y CONFIG_X86_64 = Y CONFIG_X86 = Y CONFIG_INSTRUCTION_DECODER = Y CONFIG_OUTPUT_FORMAT = "ELF64-x86-64の" CONFIG_ARCH_DEFCONFIG = "アーチ/ x86の/コンフィグ/ x86_64_defconfig" – kami

+0

* as68k *はx86_64のために明らかではありません。 – 0andriy

関連する問題