openssl移植及错误解决

https://www.openssl.org/source/下载openssl-1.1.1源代码

# tar zxvf openssl-1.1.1.tar.gz  
# cd openssl-1.1.1
# mkdir build_arm
# ./config no-asm shared no-async --prefix=/home/wenyi/development/soft_arm/openssl-1.1.1/build_arm --cross-compile-prefix=arm-hisiv500-linux-   生成makefile文件
修改makefile,去除掉 -m64和-m32选项
# make && make install

【错误描述】:

./libcrypto.so: warning: gethostbyname is obsolescent, use getnameinfo() instead.
./libcrypto.so: undefined reference to `getcontext'
./libcrypto.so: undefined reference to `setcontext'
./libcrypto.so: undefined reference to `makecontext'

【错误原因】:
之前config使用:
./config no-asm shared --prefix=/home/wenyi/development/soft_arm/openssl-1.1.1/build_arm --cross-compile-prefix=arm-hisiv500-linux-
没有使用 no-async 参数,加上之后就可以了。
【参数说明】

  1. no-asm: 在交叉编译过程中不使用汇编代码代码加速编译过程.原因是它的汇编代码是对arm格式不支持的。
  2. shared: 生成动态连接库。
  3. no-async: 交叉编译工具链没有提供GNU C的ucontext库
  4. –prefix=: 安装路径,编译完成install后将有bin,lib,include等文件夹
  5. –cross-compile-prefix=: 交叉编译工具

【其他版本】

openssl-0.9.8编译

# ./config no-asm shared no-async --prefix=/home/wenyi/development/soft_arm/openssl-0.9.8zh/build_arm 

将Makefile中编译工具加上交叉编译工具前缀
修改Makefile中的-m64

# make && make install

使用openssl-1.0.0移植到hisi的问题解决

【错误描述】:

运行时报其他版本也报类似错误
3069428896:error:0306E06C:bignum routines:BN_mod_inverse:no inverse:bn_gcd.c:491:
3069428896:error:14098077:SSL routines:SSL3_SEND_CLIENT_KEY_EXCHANGE:bad rsa encrypt:s3_clnt.c:2059:

【错误原因】:
编译选项中没有指定芯片架构,配置脚本在猜测时将芯片架构猜测为linux-x86_64,解决办法为在config文件中修改

部分规则
626     OUT="linux-generic32" ;;
627   armv[1-3]*-*-linux2) OUT="linux-generic32" ;;
628   arm*-*-linux2) OUT="linux-armv4" ;;
629   sh*b-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
630   sh*-*-linux2)  OUT="linux-generic32"; options="$options -DL_ENDIAN" ;;
631   m68k*-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
632   s390-*-linux2) OUT="linux-generic32"; options="$options -DB_ENDIAN" ;;
633   s390x-*-linux2) OUT="linux-s390x" ;;
634   x86_64-*-linux?) OUT="linux-x86_64" ;;
635   *86-*-linux2) OUT="linux-elf"

我修改的地方
# read the output of the embedded GuessOS 
read GUESSOS
GUESSOS="armv7-hisi-linux2"     //查看config中对GUESSOS解析规则,根据自己芯片架构修改
echo Operating system: $GUESSOS

参考博客

1- 移植openssh-7.5p1(包括openssl-1.0.2l、zlib-1.2.11)到HISI3520d编译篇

  • 8
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值