From a144576e90353ba625e4025ef31b3751375e54f5 Mon Sep 17 00:00:00 2001 From: cnc Date: Fri, 5 Jun 2026 10:06:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A7=E8=A1=8C=20AGENTS=20align-linuxcnc=20?= =?UTF-8?q?=E5=8A=A0=E9=80=9F=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 结论:补强 WASM PythonPlugin 可执行探针,依据 LinuxCNC src/emc/pythonplugin/python_plugin.cc 中 configure() 对 INI_FILE_NAME 缺失和环境变量 INI 文件的分支。验证通过:./test-linuxcnc-wasm-python-plugin-link.sh、./test-native.sh、./test-linuxcnc-source-link.sh。 --- .../pythonplugin/python_plugin_probe_main.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/core/wasm_shims/pythonplugin/python_plugin_probe_main.cc b/core/wasm_shims/pythonplugin/python_plugin_probe_main.cc index 119f99e..6235051 100644 --- a/core/wasm_shims/pythonplugin/python_plugin_probe_main.cc +++ b/core/wasm_shims/pythonplugin/python_plugin_probe_main.cc @@ -1,5 +1,6 @@ #include "pythonplugin/python_plugin.hh" +#include #include // LinuxCNC source basis: src/emc/pythonplugin/python_plugin.cc and @@ -28,6 +29,10 @@ int main() { if (plugin->run_string("noop", retval, false) != PLUGIN_OK) { return 3; } + unsetenv("INI_FILE_NAME"); + if (plugin->configure(nullptr, "PYTHON") != PLUGIN_NO_INIFILE) { + return 21; + } const char *ini = "/tmp/cnc_sim_python_plugin_probe.ini"; { FILE *file = std::fopen(ini, "w"); @@ -37,6 +42,12 @@ int main() { std::fputs("[PYTHON]\n", file); std::fclose(file); } + setenv("INI_FILE_NAME", ini, 1); + if (plugin->configure(nullptr, "PYTHON") != PLUGIN_PYTHON_NOT_INITIALIZED) { + std::remove(ini); + return 22; + } + unsetenv("INI_FILE_NAME"); if (plugin->configure(ini, "PYTHON") != PLUGIN_PYTHON_NOT_INITIALIZED) { std::remove(ini); return 17;