我正在尝试构建一个 android 内核。在每个构建中我都会遇到一些错误:
- /usr/bin/as:无法识别的选项“-EL”clang-16:错误:汇编器命令失败,退出代码为 1(使用 -v 查看调用)
- 警告:具有可变大小类型“struct cgroup”的字段“cgrp”不在结构或类的末尾,是 GNU 扩展 [-Wgnu-variable-sized-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
我把它从这里,但是那里提出的解决方案没有帮助