エラーが発生します。
make ${BUILD_FLAGS} -j1 modules
HOSTCC scripts/basic/fixdep
CALL scripts/checksyscalls.sh
CALL scripts/atomic/check-atomics.sh
DESCEND objtool
CHK include/generated/compile.h
LD [M] arch/x86/crypto/crc32c-intel.ko
arch/x86/crypto/crc32c-intel.lto.o: warning: objtool: file already has __mcount_loc section, skipping
arch/x86/crypto/crc32c-intel.lto.o: warning: objtool: file already has .orc_unwind section, skipping
make[2]: *** [scripts/Makefile.modfinal:78: arch/x86/crypto/crc32c-intel.ko] Error 255
make[1]: *** [scripts/Makefile.modpost:156: __modpost] Error 2
make: *** [Makefile:1762: modules] Error 2
私はそれを使用していますuname -a
Linux 4.19.0-17-amd64 #1 SMP Debian 4.19.194-1 (2021-06-10) x86_64 GNU/Linux
echo $BUILD_FLAGS
LLVM=1 LLVM_IAS=1 CC=clang-12 CXX=clang++-12 LD=ld.lld-12
AR=llvm-ar-12 NM=llvm-nm-12 STRIP=llvm-strip-12
READELF=llvm-readelf-12 HOSTCC=clang-12 HOSTCXX=clang++-12
HOSTAR=llvm-ar-12 HOSTLD=ld.lld-12 OBJCOPY=llvm-objcopy-12
OBJDUMP=objdump
Linuxカーネルビルド5.13.1
同じ状況にある人はいますか? Clang-12でLTO最適化でカーネルを構築しましょう。
答え1
実行make
(またはmake all
)はデフォルトですでに実行されていますmake modules
。したがって、make modules
モジュールをビルドして再実行すると、このメッセージが表示されます。この時点では、make modules_install
正常に動作するカーネルとモジュールがありますmake install
。
$ make help | grep "*"
all - Build all targets marked with [*]
* vmlinux - Build the bare kernel
* modules - Build all modules
make SPHINX_CONF={conf-file} [target] use *additional* sphinx-build
* bzImage - Compressed kernel image (arch/x86/boot/bzImage)
bzdisk/fdimage*/isoimage also accept:
Execute "make" or "make all" to build all targets marked with [*]
この問題をより適切に処理するためにMakefileをクリーンアップする機会があります。これは回帰かもしれません。https://github.com/ClangBuiltLinux/linux/issues/1369#issuecomment-832307198make
、以前にinitramfsが統合されたclangカーネルをビルドすると、5.12で警告/エラーが見つかりませんでした(生成されたinitramfs cpioをbzImageに効果的にマージするには2回呼び出す必要があります。make vmlinux
)することができます)。make bzImage
追加make modules
ステップ)。