TermiNexus
5f7a87341a
fix(gen): 模块级全局变量命名带 SHA1 前缀,消除 ld.lld duplicate symbol
多个模块声明同名模块级全局(如 _mbuddy)时全部生成裸名强定义(zeroinit)
→ 链接时 ld.lld duplicate symbol: _mbuddy(大量 warning)。函数名早已
mangled,全局变量漏做。
修复(对齐函数名 _mangle_name,SymTab key 保持裸名查找逻辑零改动):
1. 定义端 TranslatorGenMixin:全局名 = {模块sha1}.{变量名}
2. 模块属性访问 ExprGenAttr:按目标模块 SHA1 前缀精确查找/创建(含嵌套
模块 w32.xxx 与 t 类型对象裸名 linkonce_odr 特例),引用用完整名
3. from-import 全局 ExprGenName:带源模块 SHA1 前缀查找,引用用完整名
4. _find_pool_var 兜底:linkonce_odr + zeroinitializer 定义(每模块独立,
不再依赖裸名链接合并共享;运行时未初始化则真实崩溃暴露,不掩盖)
2026-08-20 04:31:39 +08:00
..
2026-08-20 04:31:39 +08:00
2026-08-20 04:04:40 +08:00
2026-07-30 21:56:19 +08:00
2026-08-20 00:50:18 +08:00
2026-08-14 04:02:36 +08:00
2026-08-13 02:11:49 +08:00
2026-08-17 08:14:45 +08:00
2026-08-18 10:22:26 +08:00
2026-08-17 08:14:45 +08:00
2026-08-17 08:14:45 +08:00
2026-08-20 03:11:48 +08:00
2026-08-20 01:15:05 +08:00
2026-08-20 03:11:48 +08:00
2026-08-17 08:03:40 +08:00
2026-08-17 08:03:40 +08:00
2026-08-17 08:03:40 +08:00
2026-08-17 08:03:40 +08:00
2026-08-17 04:27:29 +08:00