From a9f5d026c459de5abcef903e5a6a7cc3f1595755 Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Mon, 19 Oct 2026 12:35:38 +0800 Subject: [PATCH] =?UTF-8?q?fix(mangle):=20extern=20=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E5=90=8D=E4=B8=80=E5=BE=8B=E8=A3=B8=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit _export_extern_funcs 命中直接返回裸名,避免 ReadProcessMemory/StackWalk64 等跨模块调用被加 SHA1 前缀。 --- lib/core/LLVMCG/BaseGen.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/core/LLVMCG/BaseGen.py b/lib/core/LLVMCG/BaseGen.py index d29f5ea..9ab6bb6 100644 --- a/lib/core/LLVMCG/BaseGen.py +++ b/lib/core/LLVMCG/BaseGen.py @@ -1209,6 +1209,9 @@ class BaseGenMixin: return func def _mangle_func_name(self, name: str, module_name: str | None = None) -> str: + if name in self._export_extern_funcs: + # extern def 一律使用裸名(C/Win32 符号不加模块 SHA1 前缀) + return name if name in self._export_funcs and not module_name: return name if name in self._export_extern_funcs: