From 8826f2ee735a9ac8934cd9c48a3bab90487eb649 Mon Sep 17 00:00:00 2001 From: cnc Date: Tue, 2 Jun 2026 10:10:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=89=20align-linuxcnc=20=E7=BA=A6=E6=9D=9F?= =?UTF-8?q?=E8=A1=A5=20runtime=20shim=20=E6=BA=90=E7=A0=81=E4=BE=9D?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/wasm_shims/linuxcnc_runtime_shim.cc | 9 +++++++++ linuxcnc-rs274-wasm-source-files.txt | 2 ++ test-linuxcnc-wasm-cmake-safe-probe.sh | 4 ++++ test-native.sh | 2 ++ 4 files changed, 17 insertions(+) diff --git a/core/wasm_shims/linuxcnc_runtime_shim.cc b/core/wasm_shims/linuxcnc_runtime_shim.cc index 053ba20..7b1d3db 100644 --- a/core/wasm_shims/linuxcnc_runtime_shim.cc +++ b/core/wasm_shims/linuxcnc_runtime_shim.cc @@ -7,8 +7,12 @@ #include #include +// LinuxCNC source basis: src/emc/rs274ngc/gcodemodule.cc defines _task=0 for +// preview, while src/emc/task/emctaskmain.cc defines _task=1 for milltask. int _task = 0; +// LinuxCNC source basis: src/emc/task/taskclass.cc and +// src/emc/rs274ngc/gcodemodule.cc register builtin interpreter/emccanon modules. extern "C" PyObject *PyInit_interpreter(void) { return nullptr; } @@ -29,6 +33,9 @@ struct _inittab builtin_modules[] = { }; } +// LinuxCNC source basis: src/emc/rs274ngc/interp_namedparams.cc fetch_hal_param() +// uses these HAL entry points; include/hal.h declares them and src/hal/hal_lib.c +// provides the native backend. extern "C" int hal_init(const char *) { return 1; } @@ -159,6 +166,8 @@ std::string expand_path_word(const char *words) { } // namespace +// LinuxCNC source basis: src/emc/rs274ngc/rs274ngc_pre.cc uses wordexp() and +// wordfree() while resolving program/subroutine paths. extern "C" int wordexp(const char *words, wordexp_t *pwordexp, int) { if (!words || !pwordexp) { return WRDE_BADVAL; diff --git a/linuxcnc-rs274-wasm-source-files.txt b/linuxcnc-rs274-wasm-source-files.txt index 4c9c4a5..c1a28f0 100644 --- a/linuxcnc-rs274-wasm-source-files.txt +++ b/linuxcnc-rs274-wasm-source-files.txt @@ -55,6 +55,7 @@ header:src/emc/ini/inifile.h:LinuxCNC C INI reader declarations exported by ini header:src/emc/ini/inifile.hh:LinuxCNC C++ INI reader declarations used by inifile.cc header:src/emc/nml_intf/emc.hh:LinuxCNC EMC status declarations used by wasm-safe EMC status shim header:src/emc/nml_intf/emc_nml.hh:LinuxCNC EMC NML aggregate declarations used by wasm-safe EMC status shim +header:include/hal.h:LinuxCNC HAL declarations used by wasm-safe runtime HAL lookup shim header:src/libnml/nml/nmlmsg.hh:LinuxCNC NML message declarations used by wasm-safe NMLmsg constructor shim header:src/libnml/nml/stat_msg.hh:LinuxCNC status message declarations used by wasm-safe RCS_STAT_MSG constructor shim header:src/libnml/rcs/rcs_print.hh:LinuxCNC RCS print declarations used by wasm-safe NML status diagnostics @@ -67,5 +68,6 @@ metadata:src/libnml/nml/stat_msg.cc:source basis for wasm-safe RCS_STAT_MSG cons metadata:src/libnml/nml/nmlmsg.cc:source basis for wasm-safe NMLmsg constructor shim metadata:src/libnml/rcs/rcs_print.cc:source basis for wasm-safe RCS print diagnostic shim metadata:src/rtapi/uspace_common.h:source basis for wasm-safe RTAPI snprintf compatibility shim +metadata:src/hal/hal_lib.c:source basis for wasm-safe runtime HAL lookup shim metadata:src/emc/tooldata/tooldata_db.cc:source basis for wasm-safe tooldata runtime export shim metadata:src/emc/tooldata/tooldata_nml.cc:source basis for wasm-safe tooldata runtime NML export shim diff --git a/test-linuxcnc-wasm-cmake-safe-probe.sh b/test-linuxcnc-wasm-cmake-safe-probe.sh index 79784df..31fa1ab 100755 --- a/test-linuxcnc-wasm-cmake-safe-probe.sh +++ b/test-linuxcnc-wasm-cmake-safe-probe.sh @@ -1411,6 +1411,10 @@ grep -F 'inline char *basename(const char *path)' core/wasm_shims/libgen.h >/dev grep -F 'return basename(const_cast(path));' core/wasm_shims/libgen.h >/dev/null grep -F 'LinuxCNC source basis: src/emc/rs274ngc/interp_base.cc uses dlopen(),' core/wasm_shims/dlfcn.cc >/dev/null grep -F 'LinuxCNC source basis: src/emc/rs274ngc/interp_base.cc native loader flags.' core/wasm_shims/dlfcn.h >/dev/null +grep -F 'LinuxCNC source basis: src/emc/rs274ngc/gcodemodule.cc defines _task=0' core/wasm_shims/linuxcnc_runtime_shim.cc >/dev/null +grep -F 'LinuxCNC source basis: src/emc/task/taskclass.cc and' core/wasm_shims/linuxcnc_runtime_shim.cc >/dev/null +grep -F 'LinuxCNC source basis: src/emc/rs274ngc/interp_namedparams.cc fetch_hal_param()' core/wasm_shims/linuxcnc_runtime_shim.cc >/dev/null +grep -F 'LinuxCNC source basis: src/emc/rs274ngc/rs274ngc_pre.cc uses wordexp()' core/wasm_shims/linuxcnc_runtime_shim.cc >/dev/null grep -F 'extern "C" int wordexp(const char *words, wordexp_t *pwordexp, int)' core/wasm_shims/linuxcnc_runtime_shim.cc >/dev/null grep -F 'extern "C" void wordfree(wordexp_t *pwordexp)' core/wasm_shims/linuxcnc_runtime_shim.cc >/dev/null grep -F 'EMC_STAT *emcStatus = new EMC_STAT;' core/wasm_shims/emc_status_shim.cc >/dev/null diff --git a/test-native.sh b/test-native.sh index b36804d..e0e1866 100755 --- a/test-native.sh +++ b/test-native.sh @@ -63,6 +63,8 @@ grep -F 'metadata:src/libnml/rcs/rcs_print.cc:source basis for wasm-safe RCS pri grep -F 'header:src/rtapi/rtapi.h:LinuxCNC RTAPI snprintf declarations used by wasm-safe RTAPI compatibility shim' linuxcnc-rs274-wasm-source-files.txt >/dev/null grep -F 'header:src/rtapi/rtapi_string.h:LinuxCNC RTAPI string helpers used by RS274 and RCS print sources' linuxcnc-rs274-wasm-source-files.txt >/dev/null grep -F 'metadata:src/rtapi/uspace_common.h:source basis for wasm-safe RTAPI snprintf compatibility shim' linuxcnc-rs274-wasm-source-files.txt >/dev/null +grep -F 'header:include/hal.h:LinuxCNC HAL declarations used by wasm-safe runtime HAL lookup shim' linuxcnc-rs274-wasm-source-files.txt >/dev/null +grep -F 'metadata:src/hal/hal_lib.c:source basis for wasm-safe runtime HAL lookup shim' linuxcnc-rs274-wasm-source-files.txt >/dev/null grep -F 'metadata:src/emc/nml_intf/emcops.cc:source basis for native source-link EMC status constructor support object' linuxcnc-rs274-source-files.txt >/dev/null grep -F 'metadata:src/emc/sai/dummyemcstat.cc:source basis for native source-link emcStatus singleton support object' linuxcnc-rs274-source-files.txt >/dev/null grep -F 'metadata:src/emc/sai/Submakefile:LinuxCNC SAI build metadata defining dummyemcstat support object' linuxcnc-rs274-source-files.txt >/dev/null