按推荐建议,继续执行
结论:将 vendored LinuxCNC 轨迹规划器、cruckig、posemath 源文件纳入直接编译探针,并通过 native 验证,继续确保核心功能来源于 LinuxCNC 源程序。
This commit is contained in:
@@ -459,6 +459,14 @@ Current verified progress:
|
||||
`rs274ngc_pre.cc`. `rs274ngc_pre.cc` is compiled with the existing
|
||||
standalone `UNIT_TEST`/`LINUXCNC_STANDALONE_USE_RS274_PRE_STATE` boundary
|
||||
that isolates Python runtime integration from the browser simulation core.
|
||||
- `tools/build_native_probes.sh` now includes direct source compile probes
|
||||
for the vendored LinuxCNC trajectory-planner and posemath files used by
|
||||
`linuxcnc_tp_api_probe`: `tp.c`, `tc.c`, `tcq.c`, `spherical_arc.c`,
|
||||
`blendmath.c`, `sp_scurve.c`, `ruckig_wrapper.c`, the selected
|
||||
`cruckig/*.c` sources, `emcpose.c`, `posemath.cc`, `_posemath.c`, and
|
||||
`sincos.c`. These probes use the same `TP_FLAGS` as the standalone TP
|
||||
harness, including the existing `-fpermissive` boundary required by
|
||||
upstream enum conversions in `tp.c`.
|
||||
|
||||
## Phase 4: Port INI Parsing Without Editing Upstream
|
||||
|
||||
|
||||
@@ -34,6 +34,39 @@ check_exitcode() {
|
||||
check_exitcode linuxcnc_interp_state_probe
|
||||
check_exitcode linuxcnc_tp_api_probe
|
||||
check_exitcode linuxcnc_tp_api_probe.run
|
||||
for name in \
|
||||
linuxcnc_tp_tp_source_probe \
|
||||
linuxcnc_tp_tc_source_probe \
|
||||
linuxcnc_tp_tcq_source_probe \
|
||||
linuxcnc_tp_spherical_arc_source_probe \
|
||||
linuxcnc_tp_blendmath_source_probe \
|
||||
linuxcnc_tp_sp_scurve_source_probe \
|
||||
linuxcnc_tp_ruckig_wrapper_source_probe \
|
||||
linuxcnc_cruckig_block_source_probe \
|
||||
linuxcnc_cruckig_brake_source_probe \
|
||||
linuxcnc_cruckig_calculator_source_probe \
|
||||
linuxcnc_cruckig_cruckig_source_probe \
|
||||
linuxcnc_cruckig_input_parameter_source_probe \
|
||||
linuxcnc_cruckig_output_parameter_source_probe \
|
||||
linuxcnc_cruckig_profile_source_probe \
|
||||
linuxcnc_cruckig_roots_source_probe \
|
||||
linuxcnc_cruckig_trajectory_source_probe \
|
||||
linuxcnc_cruckig_position_first_step1_source_probe \
|
||||
linuxcnc_cruckig_position_first_step2_source_probe \
|
||||
linuxcnc_cruckig_position_second_step1_source_probe \
|
||||
linuxcnc_cruckig_position_second_step2_source_probe \
|
||||
linuxcnc_cruckig_position_third_step1_source_probe \
|
||||
linuxcnc_cruckig_position_third_step2_source_probe \
|
||||
linuxcnc_cruckig_velocity_second_step1_source_probe \
|
||||
linuxcnc_cruckig_velocity_second_step2_source_probe \
|
||||
linuxcnc_cruckig_velocity_third_step1_source_probe \
|
||||
linuxcnc_cruckig_velocity_third_step2_source_probe \
|
||||
linuxcnc_emcpose_source_probe \
|
||||
linuxcnc_posemath_source_probe \
|
||||
linuxcnc_posemath_c_source_probe \
|
||||
linuxcnc_sincos_source_probe; do
|
||||
check_exitcode "$name"
|
||||
done
|
||||
check_exitcode linuxcnc_namedparam_harness
|
||||
check_exitcode linuxcnc_namedparam_harness.run
|
||||
check_exitcode linuxcnc_interp_minimal_harness
|
||||
|
||||
@@ -300,6 +300,72 @@ TP_RUNTIME_PROBE_SOURCES=(
|
||||
"$WRAP_DIR/linuxcnc_tp_api_probe.cpp"
|
||||
)
|
||||
|
||||
TP_SOURCE_PROBE_NAMES=(
|
||||
linuxcnc_tp_tp_source_probe
|
||||
linuxcnc_tp_tc_source_probe
|
||||
linuxcnc_tp_tcq_source_probe
|
||||
linuxcnc_tp_spherical_arc_source_probe
|
||||
linuxcnc_tp_blendmath_source_probe
|
||||
linuxcnc_tp_sp_scurve_source_probe
|
||||
linuxcnc_tp_ruckig_wrapper_source_probe
|
||||
linuxcnc_cruckig_block_source_probe
|
||||
linuxcnc_cruckig_brake_source_probe
|
||||
linuxcnc_cruckig_calculator_source_probe
|
||||
linuxcnc_cruckig_cruckig_source_probe
|
||||
linuxcnc_cruckig_input_parameter_source_probe
|
||||
linuxcnc_cruckig_output_parameter_source_probe
|
||||
linuxcnc_cruckig_profile_source_probe
|
||||
linuxcnc_cruckig_roots_source_probe
|
||||
linuxcnc_cruckig_trajectory_source_probe
|
||||
linuxcnc_cruckig_position_first_step1_source_probe
|
||||
linuxcnc_cruckig_position_first_step2_source_probe
|
||||
linuxcnc_cruckig_position_second_step1_source_probe
|
||||
linuxcnc_cruckig_position_second_step2_source_probe
|
||||
linuxcnc_cruckig_position_third_step1_source_probe
|
||||
linuxcnc_cruckig_position_third_step2_source_probe
|
||||
linuxcnc_cruckig_velocity_second_step1_source_probe
|
||||
linuxcnc_cruckig_velocity_second_step2_source_probe
|
||||
linuxcnc_cruckig_velocity_third_step1_source_probe
|
||||
linuxcnc_cruckig_velocity_third_step2_source_probe
|
||||
linuxcnc_emcpose_source_probe
|
||||
linuxcnc_posemath_source_probe
|
||||
linuxcnc_posemath_c_source_probe
|
||||
linuxcnc_sincos_source_probe
|
||||
)
|
||||
|
||||
TP_SOURCE_PROBE_SOURCES=(
|
||||
"$VENDOR_DIR/src/emc/tp/tp.c"
|
||||
"$VENDOR_DIR/src/emc/tp/tc.c"
|
||||
"$VENDOR_DIR/src/emc/tp/tcq.c"
|
||||
"$VENDOR_DIR/src/emc/tp/spherical_arc.c"
|
||||
"$VENDOR_DIR/src/emc/tp/blendmath.c"
|
||||
"$VENDOR_DIR/src/emc/tp/sp_scurve.c"
|
||||
"$VENDOR_DIR/src/emc/tp/ruckig_wrapper.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/block.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/brake.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/calculator.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/cruckig.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/input_parameter.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/output_parameter.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/profile.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/roots.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/trajectory.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/position_first_step1.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/position_first_step2.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/position_second_step1.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/position_second_step2.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/position_third_step1.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/position_third_step2.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/velocity_second_step1.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/velocity_second_step2.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/velocity_third_step1.c"
|
||||
"$VENDOR_DIR/src/emc/tp/cruckig/velocity_third_step2.c"
|
||||
"$VENDOR_DIR/src/emc/nml_intf/emcpose.c"
|
||||
"$VENDOR_DIR/src/libnml/posemath/posemath.cc"
|
||||
"$VENDOR_DIR/src/libnml/posemath/_posemath.c"
|
||||
"$VENDOR_DIR/src/libnml/posemath/sincos.c"
|
||||
)
|
||||
|
||||
INTERP_CORE_SOURCES=(
|
||||
"$VENDOR_DIR/src/emc/rs274ngc/modal_state.cc"
|
||||
"$VENDOR_DIR/src/emc/rs274ngc/interp_array.cc"
|
||||
@@ -378,6 +444,14 @@ else
|
||||
"$BUILD_DIR/linuxcnc_tp_api_probe.run.stderr.log"
|
||||
fi
|
||||
|
||||
for index in "${!TP_SOURCE_PROBE_NAMES[@]}"; do
|
||||
build_object_target \
|
||||
"${TP_SOURCE_PROBE_NAMES[$index]}" \
|
||||
"$BUILD_DIR/${TP_SOURCE_PROBE_NAMES[$index]}.o" \
|
||||
"${TP_SOURCE_PROBE_SOURCES[$index]}" \
|
||||
TP_FLAGS
|
||||
done
|
||||
|
||||
build_binary_target \
|
||||
linuxcnc_namedparam_harness \
|
||||
"$BUILD_DIR/linuxcnc_namedparam_harness" \
|
||||
|
||||
Reference in New Issue
Block a user