2022/10/11

cross-compile openssl for linux-aarch64

Configure 有:
   CROSS_COMPILE => env('CROSS_COMPILE'),
所以猜..

用 linaro 的話,安裝在 /usr/local/linaro-aarch64-2020.09-gcc10.2-linux5.4/bin/
toolchain prefix 是 aarch64-linux-gnu

Configure 中也有:
--cross-compile-prefix=
結果用了這個configure:
./Configure linux-aarch64 --cross-compile-prefix=aarch64-linux-gnu- --shared --prefix=/home/charles/myssl
竟然就 build OK ?!
打開 configure 出來的 Makefile 看...
OPTIONS=--cross-compile-prefix=aarch64-linux-gnu- enable-shared --prefix=/home/charles-chang/myssl no-afalgeng no-asan no-buildtest-c++ 
 no-crypto-mdebug no-crypto-mdebug-backtrace no-devcryptoeng no-ec_nistp_64_gcc_128 no-egd no-external-tests no-fuzz-afl no-fuzz-libfuzzer
 no-heartbeats no-md2 no-msan no-rc5 no-sctp no-ssl-trace no-ssl3 no-ssl3-method no-ubsan no-unit-test no-weak-ssl-ciphers no-zlib
 no-zlib-dynamic
原來所有 support lib option 都 off 了。


附帶 liblzma (xz) 的 cross-compile:
看 configure..
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
其他就沒了,所以猜是
./configure --host=aarch64-linux-gnu --prefix=/home/charles-chang/myxz
果然這樣make 就 OK 了。

其他看 configure 可以知道,要 build static libary 的話,就 --enable-static (--enable-shared 是 default 就有的)

沒有留言:

張貼留言