尽快推进:收紧dlfcn shim源码锚点

This commit is contained in:
cnc
2026-06-05 09:15:41 +08:00
parent 167703b87a
commit 035b25862a
2 changed files with 32 additions and 1 deletions

View File

@@ -14,7 +14,7 @@ only; it must not add CNC behavior and must not expand the temporary smoke parse
| Shim | LinuxCNC source basis | Boundary |
| --- | --- | --- |
| `core/wasm_shims/dlfcn.cc` | `src/emc/rs274ngc/interp_base.cc` | Satisfies native `dlopen` symbols for browser-safe probes while keeping dynamic loading unavailable. |
| `core/wasm_shims/dlfcn.cc` | `src/emc/rs274ngc/interp_base.cc` | Satisfies LinuxCNC `interp_base.cc` dynamic loader calls and RTLD flags for browser-safe probes while keeping dynamic loading unavailable. |
| `core/wasm_shims/emc_status_shim.cc` | `src/emc/sai/dummyemcstat.cc` | Provides the source-backed `emcStatus` singleton shape without task/NML startup. |
| `core/wasm_shims/gettext_shim.cc` | `src/emc/rs274ngc/interp_internal.hh` | Preserves LinuxCNC `_()` diagnostic call sites by satisfying `gettext()` while leaving browser gettext catalogs unavailable. |
| `core/wasm_shims/linuxcnc_runtime_shim.cc` | `src/emc/rs274ngc/gcodemodule.cc`, `src/emc/task/emctaskmain.cc`, `src/emc/task/taskclass.cc`, `src/emc/rs274ngc/interp_namedparams.cc`, `include/hal.h`, `src/hal/hal_lib.c`, `src/emc/rs274ngc/rs274ngc_pre.cc` | Keeps preview/task, builtin Python module, unavailable HAL lookup, and `wordexp()` edges compile-safe. |
@@ -28,6 +28,11 @@ only; it must not add CNC behavior and must not expand the temporary smoke parse
## Runtime Shim Boundaries
- `core/wasm_shims/dlfcn.cc` and `core/wasm_shims/dlfcn.h` cover the
LinuxCNC `interp_base.cc` dynamic loader calls to `dlopen()`, `dlsym()`,
`dlerror()`, `RTLD_GLOBAL`, and `RTLD_NOW`; their unavailable-loader returns
must keep handles and symbols null, keep `dlerror()` diagnostic text stable,
and leave `dlclose()` side-effect free.
- `core/wasm_shims/linuxcnc_runtime_shim.cc` must keep `_task=0` for preview,
matching `src/emc/rs274ngc/gcodemodule.cc`; it must not switch browser-safe probes into task mode.
- The HAL lookup shim covers `hal_get_pin_value_by_name()`,