안드로이드 커널을 구축하려고합니다. 모든 빌드에서 몇 가지 오류가 발생합니다.
- /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
나는 그것을 가져 갔다.여기, 그러나 제안된 솔루션은 도움이 되지 않았습니다.