首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CentOS 6.02 64位操作系统中的OpenSSL构建错误

CentOS 6.02 64位操作系统中的OpenSSL构建错误
EN

Stack Overflow用户
提问于 2013-01-29 10:18:18
回答 2查看 6.4K关注 0票数 7

我在CentOS 6.02 64位操作系统中构建openssl遇到了一些问题。每当我尝试构建它时,我都会遇到以下错误:

代码语言:javascript
复制
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
md5-x86_64.s:95: Error: 0xa8304613 out range of signed 32bit displacement
Many more errors like this.
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-29 10:35:04

这是汇编代码中的寻址问题。(32位与64位寻址。)有一个bug为此提交了文件。

要快速修复,请尝试使用no-asm选项重新编译。

代码语言:javascript
复制
cd <openssl-source-directory>
./config no-asm
make && make install

编辑:要解决由于没有-fPIC标志而导致的错误:执行一个make clean,将./config no-asm的行更改为./config no-asm -fPIC,然后运行make && make install

票数 26
EN

Stack Overflow用户

发布于 2013-10-18 16:50:11

打开文件'openssl-x/crypto/md5/asm/md5-x86_64.pl‘

然后进行以下更改:

之后:

子round1_step

{ my ($pos,$dst,$x,$y,$z,$k_next,$T_i,$s) = @_;

添加以下行:

代码语言:javascript
复制
+ $T_i = unpack("l",pack("l", hex($T_i))); # convert to 32-bit signed decimal

类似地,为sub round2_step、sub round3_step & sub round4_step添加相同的行

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14574622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档