赞
踩
在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 参数,加上之后就可以了。
【参数说明】
【其他版本】
# ./config no-asm shared no-async --prefix=/home/wenyi/development/soft_arm/openssl-0.9.8zh/build_arm
将Makefile中编译工具加上交叉编译工具前缀
修改Makefile中的-m64
# make && make install
【错误描述】:
运行时报其他版本也报类似错误
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编译篇
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。