From bbdfad8364ce162bd4c0e1f85a1bc306b4efd990 Mon Sep 17 00:00:00 2001 From: wangdequan Date: Mon, 31 Aug 2026 20:17:09 +0800 Subject: [PATCH] Make native TP oracle build reproducible --- doc-rtcp/xyzac-trt-full-tp-parity-plan.md | 1 + scripts/build_linuxcnc_native_oracle.sh | 13 +++++++++++++ 2 files changed, 14 insertions(+) create mode 100755 scripts/build_linuxcnc_native_oracle.sh diff --git a/doc-rtcp/xyzac-trt-full-tp-parity-plan.md b/doc-rtcp/xyzac-trt-full-tp-parity-plan.md index 83aa223..5c318aa 100644 --- a/doc-rtcp/xyzac-trt-full-tp-parity-plan.md +++ b/doc-rtcp/xyzac-trt-full-tp-parity-plan.md @@ -5,6 +5,7 @@ 当前 oracle 证据:`coverage/xyzac-native-tick-trace.report.json` 已由源 `run-5axis-rtcp.sh` 产生连续 task-heartbeat tick;源 Python NML 扩展暴露 `task_heartbeat`,并记录 XYZAC pose/joints、queue、current-line、速度和加速度。 +干净 checkout 使用 `scripts/build_linuxcnc_native_oracle.sh` 应用并编译同一源 patch。 `scripts/compare_xyzac_native_wasm_tick_trace.py` 已接入同一 case 的 WASM trace, 当前首个差异保留为 `$.rows[1].exec_state`,因此不得把 TP-PARITY-01..08 写成 数值 parity verified。 diff --git a/scripts/build_linuxcnc_native_oracle.sh b/scripts/build_linuxcnc_native_oracle.sh new file mode 100755 index 0000000..f202b9d --- /dev/null +++ b/scripts/build_linuxcnc_native_oracle.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)" +SOURCE_ROOT="${ROOT}/linuxcnc" +PATCH_FILE="${ROOT}/patches/linuxcnc/0001-export-native-task-heartbeat.patch" + +if ! rg -q 'task_heartbeat' "${SOURCE_ROOT}/src/emc/usr_intf/axis/extensions/emcmodule.cc"; then + patch --forward --batch -p1 -d "${SOURCE_ROOT}" < "${PATCH_FILE}" +fi + +make -C "${SOURCE_ROOT}/src" ../lib/python/linuxcnc.so ../bin/milltask +printf '%s\n' 'LinuxCNC native oracle build ready: source linuxcnc.so + milltask'