Files
ViperOS/VKernel/Kernel/execrunner
TermiNexus 6b2b24ccdf fix(vkernel/elf): .so 符号“已定义”判据改用 st_shndx,修 log_info 恒 not found
- 根因:get_so_symbol 与两处重定位回退都以 `st_value != 0` 当“已定义”,但导出函数在自身段内偏移可以为 0(实测 slog.so:log_info 的 st_value=0x0、st_shndx=.text)→ 该符号被整条跳过 → 恒报 “[so] symbol not found”,内核自动启动里的 log_info 冒烟调用因此失败

- 改为只看 `st_shndx != SHN_UNDEF(0)`;同样修 R_X86_64_* 与 JMPREL/PLT 两处重定位回退(否则段内偏移 0 的内部符号不会被重定位)
2026-10-14 18:41:45 +08:00
..