fix: 修复 TLS 崩溃 (0xC000007B) 和构建配置
根因: 使用 32 位 gcc (i686) 构建 pcc,导致内部 PTR_SIZE=4, 生成 64 位目标时 TLS 目录按 32 位格式写入 (24字节而非40字节), 所有含 __thread 变量的程序加载即崩溃。 修复: 改用 64 位 gcc (x86_64-w64-mingw32) 完整重建 pcc.exe, PTR_SIZE 正确为 8,TLS 目录 40 字节。 验证: - _Thread_local / __thread 程序正常运行 - _Generic, _Alignas, _Atomic, 匿名结构体, _Static_assert 全部通过 - tests2 套件 102 测试通过 (其余为 CRLF/路径/stderr 框架差异) - 自编译正常
这个提交包含在:
@@ -3,6 +3,7 @@ LIBRARY libpcc.dll
|
||||
EXPORTS
|
||||
_pcc_error
|
||||
_pcc_error_noabort
|
||||
_pcc_setjmp
|
||||
_pcc_warning
|
||||
pcc_add_file
|
||||
pcc_add_include_path
|
||||
@@ -30,6 +31,9 @@ pcc_output_file
|
||||
pcc_parse_args
|
||||
pcc_print_stats
|
||||
pcc_realloc
|
||||
pcc_relocate
|
||||
pcc_run
|
||||
pcc_set_backtrace_func
|
||||
pcc_set_error_func
|
||||
pcc_set_lib_path
|
||||
pcc_set_options
|
||||
|
||||
在新工单中引用
屏蔽一个用户