Androidカーネルを構築しようとしています。すべてのビルドでいくつかのエラーが発生します。
- /usr/bin/as: 認識できないオプション '-EL' clang-16: エラー: 終了コード 1 でアセンブラコマンドが失敗しました (呼び出しを表示するには -v を使用してください)。
- 警告:構造またはクラスの終わりではなく、可変サイズ型 'struct cgroup'を持つ 'cgrp'フィールド、GNU拡張[-Wgnu-variable-size-type-not-at-end] struct group cgrp;
- 警告: 未使用関数 'dump_workqueue' [-Wunused-function] static void dump_workqueue(void) {}
私が今まで試したことは次のとおりです。
- 私は以下を含むさまざまなバージョンのclangを試しました。プロトン音。
- .shスクリプトを使用または使用せずにさまざまなビルド方法を試しました。基本的にYouTubeビルド動画のアドバイスに従いました(次はその一部です:一つ、二つ、サム)。
- ディストリビューションLinuxを変更してみてください。
- カーネルビルド構成を変更してみてください。
- 最後に、いくつかのオプションと結果を組み合わせました。この問題しかし、残念ながらそれは私には効果がありません。
インターネットにはもうアイデアや情報はありません。この問題を解決する方法を教えてください。
私のカーネルにclang-r475365bとgcc android-11.0.0_r48を使用しています。https://github.com/OnePlusOSS/android_kernel_oneplus_sm8250/tree/oneplus/SM8250_R_11.0
私のbuild.sh:
#!/usr/bin/bash
if [[ -d "out" ]]
then
cd out && make clean && make distclean && make mrproper && cd ..
else
mkdir -p out
fi
make O=out ARCH=arm64 vendor/bengal-perf_defconfig
PATH="${HOME}/heh/Desktop/clang/bin:${HOME}/heh/Desktop/toolchains/bin${PATH}" \
LD_LIBRARY_PATH="${HOME}/heh/Desktop/clang/lib:${HOME}/heh/Desktop/toolchains/lib${PATH}" \
make O=out \
ARCH=arm64 \
SUBARCH=arm64 \
CROSS_COMPILE=aarch64-linux-android- \
CROSS_COMPILER=$PATH \
CLANG_TRIPLE=aarch64-linux-gnu- \
RANLIB=/home/heh/Desktop/clang/bin/llvm-ranlib \
CC='/home/heh/Desktop/clang/bin/clang -fintegrated-as' \
AR=/home/heh/Desktop/clang/bin/llvm-ar \
AS=/home/heh/Desktop/clang/bin/llvm-as \
NM=/home/heh/Desktop/clang/bin/llvm-nm \
OBJCOPY=/home/heh/Desktop/clang/bin/llvm-objcopy \
OBJDUMP=/home/heh/Desktop/clang/bin/llvm-objdump \
READELF=/home/heh/Desktop/clang/bin/llvm-readelf \
OBJSIZE=/home/heh/Desktop/clang/bin/llvm-size \
STRIP=/home/heh/Desktop/clang/bin/llvm-strip \
-j4
私はそれを取った。ここしかし、提案されたソリューションは役に立ちませんでした。