什么是“.refptr。”在mingw64 .def文件中是什么意思?

时间:2015-01-18 16:32:01

标签: dll linker mingw-w64

在Windows 7上调查与mingw64 4.9.2的崩溃dll链接,我查看了生成的.def文件,该文件被提供给链接器,并看到1419个导出中的前391个都具有表单的名称.refptr.FooBar。使用mingw64 4.6.3成功链接的相同构建,在这种情况下,.def文件不包含此类导出。

有人能告诉我这些.refptr.前缀是什么意思吗?谷歌搜索无济于事。

1 个答案:

答案 0 :(得分:1)

Hans Passant的GCC补丁链接的相关部分:

  

即将推出的新cygwin x64目标需要此功能   使用x64 Windows的完整48位可用地址空间。   cygwin-target依赖于伪重定位功能,该功能可以运行   关于指令重新安置。这可能导致x86_64问题到期   指令通常是签名的32位PC相对重新定位。所以   对于伪重新定位,距离可能变得太宽。   由于我们在pe-coff目标跳跃存根上产生的功能,我们   只需要确保通过访问变量   参考指针变量。所以我们在中型模型中添加它们   .refptr变量。

我发现我的链接器崩溃可以在没有附带损害的情况下得到纠正 只需删除.refptr.文件中的所有.def前缀即可。 (显然,人们不会总是那么幸运)