海思 himix200交叉编译openssl

Posted 10km

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了海思 himix200交叉编译openssl相关的知识,希望对你有一定的参考价值。

编译环境

Ubuntu 16.04 x86_64
himix2000 编译工具链

下载openssl源码

wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz

解压源码

tar xvf openssl-1.1.1d.tar.gz

执行Configure脚本

./Configure linux-generic32  \\
	no-shared \\
	no-asm \\
	--prefix=/ilock/dist/himix200_openssl_111d \\
	--cross-compile-prefix=arm-himix200-linux-
  • linux-generic32 指定目标平台类型,
    有的文章指定为 linux-x86,也可以但会报错:

    arm-himix200-linux-gcc: error: unrecognized command line option ‘-m32’

    这种情况需要手工修改Makefile,删除文件中所有的 -m32 选项

  • no-shared 生成静态库,如果要生成动态库,则使用-shared选项

  • no-asm 在交叉编译过程中不使用汇编代码代码加速编译过程

  • –prefix 指定安装目录

  • –cross-compile-prefix 指定交叉编译器名字前缀

执行成功显示如下信息

Configuring OpenSSL version 1.1.0d (0x1010004fL)
    no-asan         [default]  OPENSSL_NO_ASAN
    no-asm          [option]   OPENSSL_NO_ASM
    no-crypto-mdebug [default]  OPENSSL_NO_CRYPTO_MDEBUG
    no-crypto-mdebug-backtrace [default]  OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE
    no-dynamic-engine [forced]  
    no-ec_nistp_64_gcc_128 [default]  OPENSSL_NO_EC_NISTP_64_GCC_128
    no-egd          [default]  OPENSSL_NO_EGD
    no-fuzz-afl     [default]  OPENSSL_NO_FUZZ_AFL
    no-fuzz-libfuzzer [default]  OPENSSL_NO_FUZZ_LIBFUZZER
    no-heartbeats   [default]  OPENSSL_NO_HEARTBEATS
    no-md2          [default]  OPENSSL_NO_MD2 (skip dir)
    no-msan         [default]  OPENSSL_NO_MSAN
    no-rc5          [default]  OPENSSL_NO_RC5 (skip dir)
    no-sctp         [default]  OPENSSL_NO_SCTP
    no-shared       [option]  
    no-ssl-trace    [default]  OPENSSL_NO_SSL_TRACE
    no-ssl3         [default]  OPENSSL_NO_SSL3
    no-ssl3-method  [default]  OPENSSL_NO_SSL3_METHOD
    no-ubsan        [default]  OPENSSL_NO_UBSAN
    no-unit-test    [default]  OPENSSL_NO_UNIT_TEST
    no-weak-ssl-ciphers [default]  OPENSSL_NO_WEAK_SSL_CIPHERS
    no-zlib         [default] 
    no-zlib-dynamic [default] 
Configuring for linux-generic32
CC            =arm-himix200-linux-gcc
CFLAG         =-Wall -O3 -pthread 
SHARED_CFLAG  =-fPIC -DOPENSSL_USE_NODELETE
DEFINES       =DSO_DLFCN HAVE_DLFCN_H NDEBUG OPENSSL_THREADS OPENSSL_NO_DYNAMIC_ENGINE OPENSSL_PIC
LFLAG         =
PLIB_LFLAG    =
EX_LIBS       =-ldl 
APPS_OBJ      =
CPUID_OBJ     =mem_clr.o
UPLINK_OBJ    =
BN_ASM        =bn_asm.o
EC_ASM        =
DES_ENC       =des_enc.o fcrypt_b.o
AES_ENC       =aes_core.o aes_cbc.o
BF_ENC        =bf_enc.o
CAST_ENC      =c_enc.o
RC4_ENC       =rc4_enc.o rc4_skey.o
RC5_ENC       =rc5_enc.o
MD5_OBJ_ASM   =
SHA1_OBJ_ASM  =
RMD160_OBJ_ASM=
CMLL_ENC      =camellia.o cmll_misc.o cmll_cbc.o
MODES_OBJ     =
PADLOCK_OBJ   =
CHACHA_ENC    =chacha_enc.o
POLY1305_OBJ  =
BLAKE2_OBJ    =
PROCESSOR     =
RANLIB        =arm-himix200-linux-ranlib
ARFLAGS       =
PERL          =/usr/bin/perl

THIRTY_TWO_BIT mode
BN_LLONG mode
RC4 uses unsigned char

Configured for linux-generic32.

编译安装

make install

以上是关于海思 himix200交叉编译openssl的主要内容,如果未能解决你的问题,请参考以下文章

make/cmake:海思himix200交叉编译zlib

make/cmake:海思himix200交叉编译zlib

海思交叉编译器安装

经验分享华为海思Hi35xx系列ARM32交叉编译opencv

海思平台osdrv 顶层 Makefile 使用说明

海思平台osdrv 顶层 Makefile 使用说明