How to cross-compile OpenSSL for ARM

来源:互联网 发布:ubuntu终端不支持中文 编辑:程序博客网 时间:2024/05/07 03:39
In a nutshell:
/opt/arm% wget http://www.openssl.org/source/openssl-0.9.7d.tar.gz && tar xvzf openssl-0.9.7d.tar.gz && cd openssl-0.9.7d
/opt/arm/openssl-0.9.7d% ./Configure linux-elf-arm --prefix=/usr
Then set your environment so a gcc 3.3-based ARM crosscompiler (OpenZaurus 3.3.1 in /usr/local/arm/3.3 will be fine) is in your $PATH, and patch your Makefile to use this cross-compiler (the patch also contains a linking instruction to libdl, needed to get the openssl binary):
/opt/arm/openssl-0.9.7d% export PATH=/usr/local/arm/3.3/bin:$PATH
/opt/arm/openssl-0.9.7d% wget -N http://people.via.ecp.fr/~clem/nist/opensslForARM.Makefile.patch && patch -p1 < opensslForARM.Makefile.patch
You can compile it now! (after setting DISTCC to /usr/bin/distcc, DISTCC_HOSTS to your distcc hosts, and using make -j DISTCC_HOSTS*2, for example, instead of make to distribute compiling if you want and can):
/opt/arm/openssl-0.9.7d% make && make build-shared
You can do the following if you want (that way /opt/arm/openssl will be your local OpenSSL dir, its includes will be in include and its libs in lib):
/opt/arm/openssl-0.9.7d% mkdir lib && cd lib && ln -s ../libcrypto* ../libssl* . && cd ../.. && ln -s openssl-0.9.7d openssl