From 234b4d13b95bb6c9bc3f102c64e8b550aa9b4b5e Mon Sep 17 00:00:00 2001 From: AskaEth Date: Wed, 11 Nov 2026 19:38:32 +0800 Subject: [PATCH] =?UTF-8?q?fix(audiod):=20build=5Faudiod.sh=20=E8=A7=A3=20?= =?UTF-8?q?rebase=20=E5=86=B2=E7=AA=81=E5=90=8E=E8=A1=A5=E4=B8=BB=20checko?= =?UTF-8?q?ut=20=E5=9B=9E=E9=80=80=EF=BC=88worktree=20=E9=87=8C=E4=B9=9F?= =?UTF-8?q?=E8=83=BD=E6=89=BE=E5=88=B0=E5=9B=BA=E4=BB=B6=E6=A0=91=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit rebase 到 main(ca042aa,M43 已合入)时 build_audiod.sh 冲突,解决原则:M43 的 cli 目标 time32 接入与 M50 的路径环境变量化**两者都保留**,守护目标仍不链 time32: cli : "$CC" $INC ... -static -DMEOW_TIME32_LIBC_OVERRIDES meow_audio.c ../sdk/meow_time32.c audiod : "$ZIG" cc --target=mipsel-linux-gnueabihf.2.22 ... meow_audiod.c bt_dev.c -lpthread -L"$LIBBT" -lasound (M43 的守护例外注释按 main 的新措辞保留;LIBBT/ASOUND_SRC 环境变量覆盖与 host 链接兜底保留。) 解冲突时发现一个实际问题:`devdocs/fw-baseline/...` 与 `fw_apps/build/...` 这两条 ASOUND_SRC 候选**都没有入库**,在 git worktree 里运行时 REPO=worktree 根,两条都不存在 → 守护目标 直接 exit 1(本仓库正是按 worktree 并行开发的)。补一条回退:用 `git rev-parse --git-common-dir` 的父目录找到**主 checkout**(worktree 下即主仓根), 把主 checkout 里的 devdocs/ 与 fw_apps/ 也列为候选;普通 checkout 下 MAIN==REPO,行为不变。 自证(解完冲突、真实跑本脚本):meow_audiod 68604B/md5 9f58b219…(glibc-dynamic, NEEDED=libasound.so.2/libc.so.6/libpthread.so.0,interpreter /lib/ld.so.1); meow_audio 88888B/md5 3909c8d2…(static,含 S24/S32,4263=3/4403=0/16B-layout=OK); test_time32_abi.sh --builds ALL PASS(build meow_audio src=yes macro=yes)。 --- patch_v2/meow_audiod/build_audiod.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/patch_v2/meow_audiod/build_audiod.sh b/patch_v2/meow_audiod/build_audiod.sh index 3f96e46..04dc58c 100755 --- a/patch_v2/meow_audiod/build_audiod.sh +++ b/patch_v2/meow_audiod/build_audiod.sh @@ -84,11 +84,16 @@ fi # 链接源 libbt/libasound.so.2.0.0(设备固件 libasound.so.2 副本);缺失时从固件树自拷贝(idempotent)。 # M50:LIBBT / ASOUND_SRC 可被环境变量覆盖;ASOUND_SRC 候选按「显式 → 历史解包树 → 仓内固件基线」 # 顺序取第一个存在的(旧值 $ROOT/hiby_os_crack/... 在多数 checkout 里不存在,set -e 下会直接卡住构建)。 +# MAIN = 主 checkout 根(在 git worktree 里运行时,devdocs/ 与 fw_apps/ 这类未入库的固件树 +# 只在主 checkout 里;git-common-dir 指向
/.git,其父目录即主 checkout)。普通 checkout 下 == REPO。 +MAIN="$(cd "$(git rev-parse --git-common-dir 2>/dev/null || echo .)/.." 2>/dev/null && pwd || true)" LIBBT="${LIBBT:-libbt}" if [ -z "$ASOUND_SRC" ]; then for c in "$ROOT/hiby_os_crack/r3proii/squashfs-root-example/usr/lib/libasound.so.2.0.0" \ "$REPO/devdocs/fw-baseline/squashfs-root/usr/lib/libasound.so.2.0.0" \ - "$REPO/fw_apps/build/squashfs-root/usr/lib/libasound.so.2.0.0"; do + "$REPO/fw_apps/build/squashfs-root/usr/lib/libasound.so.2.0.0" \ + ${MAIN:+"$MAIN/devdocs/fw-baseline/squashfs-root/usr/lib/libasound.so.2.0.0"} \ + ${MAIN:+"$MAIN/fw_apps/build/squashfs-root/usr/lib/libasound.so.2.0.0"}; do [ -f "$c" ] && { ASOUND_SRC="$c"; break; } done fi