我想做的是在glibc中修复Y2038问题。我在Ubuntu18.04VM中使用buildroot2022.02.2对32位ARM CPU进行交叉编译。我读到了添加额外标志_FILE_OFFSET_BITS=64和_TIME_BITS=64应该可以做到这一点,但是我得到了这样的构建错误
/tmp/cclzLgs6.s:汇编程序消息: /tmp/cclzLgs6.s:138: Error:符号`__sigtimedwait64‘已经定义
对Y2038问题的支持是在2.34中提供的,还是在进行中?或者我做错了什么,比如丢了一些旗子?
谢谢你,卡特林
发布于 2022-07-04 09:57:07
您可以执行以下操作以获得一个Y2038安全内置32位ARM系统:
例如,将此修补程序作为0002时位补丁放在buildroot/package/libzlib/:
--- a/gzguts.h
+++ b/gzguts.h
@@ -9,6 +9,7 @@
# endif
# ifdef _FILE_OFFSET_BITS
# undef _FILE_OFFSET_BITS
+# undef _TIME_BITS
# endif
#endif
这是必需的,因为glibc头中有一个断言在_TIME_BITS为64但_FILE_OFFSET_BITS不是64时出现错误。
https://stackoverflow.com/questions/72801397
复制相似问题