fix(extern): sig_files 不再按 App sha1_map 过滤

sha1_map 只含 App 源文件,按它过滤会丢弃 include 模块的 .vpi,导致 ReadProcessMemory/StackWalk64 等跨模块 extern 无法识别为裸名。
This commit is contained in:
TermiNexus committed 2026-10-19 15:45:58 +08:00
1 parent d312d97bca
commit 5a56198937
1 file changed
+4 -1
+4 -1
View File
@@ -1561,7 +1561,10 @@ class Phase2Translator:
old_stub_count = len(self.stub_files)
old_sig_count = len(self.sig_files)
self.stub_files = {k: v for k, v in self.stub_files.items() if k in valid_sha1s}
self.sig_files = {k: v for k, v in self.sig_files.items() if k in valid_sha1s}
# sig_files 不能按 sha1_map(仅 App 源文件)过滤:include 模块的 .vpi
# 也必须保留,否则跨模块 extern(ReadProcessMemory / StackWalk64 等)
# 无法识别为裸名,链接时报 undefined symbol。
self.sig_files = {k: v for k, v in self.sig_files.items() if os.path.isfile(v)}
if old_stub_count != len(self.stub_files) or old_sig_count != len(self.sig_files):
_vlog().info(f"过滤旧文件: stub {old_stub_count}->{len(self.stub_files)}, sig {old_sig_count}->{len(self.sig_files)}")