mirror of
https://github.com/Dichgrem/GKI-build.git
synced 2025-12-17 14:11:59 -05:00
update:toolchains
update:toolchains
This commit is contained in:
44
.github/workflows/build-gki-kernel.yml
vendored
44
.github/workflows/build-gki-kernel.yml
vendored
@@ -81,35 +81,27 @@ jobs:
|
|||||||
|
|
||||||
echo "=== 下载 Clang 工具链 ==="
|
echo "=== 下载 Clang 工具链 ==="
|
||||||
# 创建 Clang 目录
|
# 创建 Clang 目录
|
||||||
mkdir -p ./toolchains/clang-14
|
mkdir -p ./toolchains/clang-21
|
||||||
|
|
||||||
# 下载 Clang 工具链
|
# 下载 Clang 工具链
|
||||||
cd toolchains
|
cd toolchains
|
||||||
wget -q https://github.com/ZyCromerZ/Clang/releases/download/14.0.6-20240212-release/Clang-14.0.6-20240212.tar.gz
|
wget -q https://github.com/ZyCromerZ/Clang/releases/download/21.0.0git-20250701-release/Clang-21.0.0git-20250701.tar.gz
|
||||||
|
|
||||||
# 检查下载是否成功
|
# 检查下载是否成功
|
||||||
if [ ! -f "Clang-14.0.6-20240212.tar.gz" ]; then
|
if [ ! -f "Clang-21.0.0git-20250701.tar.gz" ]; then
|
||||||
echo "Error: Clang 工具链下载失败"
|
echo "Error: Clang 工具链下载失败"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "=== 解压 Clang 工具链 ==="
|
echo "=== 解压 Clang 工具链 ==="
|
||||||
# 解压到 clang-14 目录
|
# 解压到 clang-21 目录
|
||||||
tar -xzf Clang-14.0.6-20240212.tar.gz -C clang-14
|
tar -xzf Clang-21.0.0git-20250701.tar.gz -C clang-21
|
||||||
|
|
||||||
# 检查解压后的目录结构
|
# 检查解压后的目录结构
|
||||||
echo "=== 检查解压后的目录结构 ==="
|
echo "=== 检查解压后的目录结构 ==="
|
||||||
ls -la clang-14/
|
ls -la clang-21/
|
||||||
|
|
||||||
# 如果存在嵌套目录,需要调整
|
|
||||||
if [ -d "clang-14/Clang-14.0.6-20240212" ]; then
|
|
||||||
echo "检测到嵌套目录,正在调整..."
|
|
||||||
mv clang-14/Clang-14.0.6-20240212/* clang-14/
|
|
||||||
rmdir clang-14/Clang-14.0.6-20240212
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 清理下载的压缩包
|
# 清理下载的压缩包
|
||||||
rm -f Clang-14.0.6-20240212.tar.gz
|
rm -f Clang-21.0.0git-20250701.tar.gz
|
||||||
|
|
||||||
# 返回 kernel 目录
|
# 返回 kernel 目录
|
||||||
cd $GITHUB_WORKSPACE/kernel
|
cd $GITHUB_WORKSPACE/kernel
|
||||||
@@ -140,17 +132,6 @@ jobs:
|
|||||||
echo "=== AnyKernel3 目录结构 ==="
|
echo "=== AnyKernel3 目录结构 ==="
|
||||||
ls -la ./anykernel3/
|
ls -la ./anykernel3/
|
||||||
|
|
||||||
- name: Copy config to kernel source
|
|
||||||
run: |
|
|
||||||
cd $GITHUB_WORKSPACE/kernel
|
|
||||||
if [ -f "$GITHUB_WORKSPACE/config" ]; then
|
|
||||||
cp $GITHUB_WORKSPACE/config ./source/android_kernel_oneplus_sm8650/myconfig
|
|
||||||
echo "Custom config copied"
|
|
||||||
else
|
|
||||||
echo "Error: config file not found!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Copy and configure kernel config
|
- name: Copy and configure kernel config
|
||||||
run: |
|
run: |
|
||||||
cd $GITHUB_WORKSPACE/kernel
|
cd $GITHUB_WORKSPACE/kernel
|
||||||
@@ -251,7 +232,7 @@ jobs:
|
|||||||
export KCONFIG_CONFIG=$PWD/myconfig
|
export KCONFIG_CONFIG=$PWD/myconfig
|
||||||
|
|
||||||
# 设置工具链路径变量
|
# 设置工具链路径变量
|
||||||
export CLANG_PATH=$GITHUB_WORKSPACE/kernel/toolchains/clang-14/bin
|
export CLANG_PATH=$GITHUB_WORKSPACE/kernel/toolchains/clang-21/bin
|
||||||
export PATH=$CLANG_PATH:$PATH
|
export PATH=$CLANG_PATH:$PATH
|
||||||
|
|
||||||
|
|
||||||
@@ -274,6 +255,7 @@ jobs:
|
|||||||
|
|
||||||
# 编译内核
|
# 编译内核
|
||||||
make -j$(nproc) O=out WERROR=0 \
|
make -j$(nproc) O=out WERROR=0 \
|
||||||
|
KBUILD_NO_WERROR=1 \
|
||||||
CC=clang \
|
CC=clang \
|
||||||
AR=llvm-ar \
|
AR=llvm-ar \
|
||||||
LD=ld.lld \
|
LD=ld.lld \
|
||||||
@@ -285,12 +267,14 @@ jobs:
|
|||||||
HOSTCXX=clang++ \
|
HOSTCXX=clang++ \
|
||||||
CROSS_COMPILE= \
|
CROSS_COMPILE= \
|
||||||
CROSS_COMPILE_ARM32=arm-linux-androideabi- \
|
CROSS_COMPILE_ARM32=arm-linux-androideabi- \
|
||||||
KCFLAGS="--target=aarch64-linux-gnu -O3 -pipe -Wno-error=frame-larger-than=" \
|
KCFLAGS="--target=aarch64-linux-gnu -O3 -pipe -Wno-error" \
|
||||||
KCPPFLAGS="-DCONFIG_CC_OPTIMIZE_FOR_PERFORMANCE" \
|
KCPPFLAGS="-DCONFIG_CC_OPTIMIZE_FOR_PERFORMANCE" \
|
||||||
HOSTCFLAGS="-O3 -pipe" \
|
HOSTCFLAGS="-O3 -pipe -Wno-error" \
|
||||||
HOSTCXXFLAGS="-O3 -pipe" \
|
HOSTCXXFLAGS="-O3 -pipe -Wno-error" \
|
||||||
2>&1 | tee out/error.log
|
2>&1 | tee out/error.log
|
||||||
|
|
||||||
|
tail -n 100 out/error.log
|
||||||
|
|
||||||
# 记录结束时间
|
# 记录结束时间
|
||||||
endtime=$(date +'%Y-%m-%d %H:%M:%S')
|
endtime=$(date +'%Y-%m-%d %H:%M:%S')
|
||||||
echo "Build finished at: $endtime"
|
echo "Build finished at: $endtime"
|
||||||
|
|||||||
Reference in New Issue
Block a user