openssl-0.9.8b.tar.gzredhat6.4编译报错out range of signed 32bit displacement
md5-x86_64.s:41: Error: 0xd76aa478 out range of signed 32bit displacement
md5-x86_64.s:50: Error: 0xe8c7b756 out range of signed 32bit displacement
md5-x86_64.s:68: Error: 0xc1bdceee out range of signed 32bit displacement
md5-x86_64.s:77: Error: 0xf57c0faf out range of signed 32bit displacement
解决方法:
vi openssl-0.9.8b/crypto/md5/asm/md5-x86_64.pl
在其中一段:
sub round1_step{ my ($pos, $dst, $x, $y, $z, $k_next, $T_i, $s) = @_;
之后增加一句:
$T_i = unpack("l",pack("l", hex($T_i))); # convert to 32-bit signed decimal
类似的在其后面出现的:sub round2_step,sub round3_step……也都增加这句。
重新编译成功。
本文出自 “兵临城下” 博客,请务必保留此出处http://308107405.blog.51cto.com/6396647/1537551
本文解决了一个在 Red Hat 6.4 上编译 openssl-0.9.8b 时遇到的错误。该错误发生在 md5-x86_64.s 文件中,涉及超出 32 位带符号位移范围的问题。通过修改 asm/md5-x86_64.pl 脚本中的特定部分,并将 T_i 转换为 32 位带符号十进制数,最终解决了这个问题。

509

被折叠的 条评论
为什么被折叠?



