brew tap SergioBenitez/osxct
brew install x86_64-unknown-linux-gnu
this should get installed in:
/opt/homebrew/Cellar/x86_64-unknown-linux-gnu/
Installing the macOS OpenSSL - if not already installed
this should get installed in:
Download the OpenSSL Source
cd /tmp
wget https://www.openssl.org/source/openssl-1.1.1s.tar.gz
tar xvf openssl-1.1.1s.tar.gz
cd openssl-1.1.1s
Configure for Intel x86_64
CC=" x86_64-unknown-linux-gnu-gcc -fPIE -pie" \
CXX=" x86_64-unknown-linux-gnu-g++" \
AS=" x86_64-unknown-linux-gnu-as" \
AR=" x86_64-unknown-linux-gnu-ar" \
NM=" x86_64-unknown-linux-gnu-nm" \
RANLIB=" x86_64-unknown-linux-gnu-gcc-ranlib" \
LD=" x86_64-unknown-linux-gnu-ld" \
STRIP=" x86_64-unknown-linux-gnu-strip" \
./Configure linux-x86_64 no-shared no-async --prefix=/opt/homebrew/Cellar/openssl\@ 1.1/1.1.1s/x86_64-linux-gnu --openssldir=/opt/homebrew/Cellar/openssl\@ 1.1/1.1.1s/x86_64-linux-gnu
CC=" aarch64-unknown-linux-gnu-gcc -fPIE -pie" \
CXX=" aarch64-unknown-linux-gnu-g++" \
AS=" aarch64-unknown-linux-gnu-as" \
AR=" aarch64-unknown-linux-gnu-ar" \
NM=" aarch64-unknown-linux-gnu-nm" \
RANLIB=" aarch64-unknown-linux-gnu-gcc-ranlib" \
LD=" aarch64-unknown-linux-gnu-ld" \
STRIP=" aarch64-unknown-linux-gnu-strip" \
./Configure linux-aarch64 no-shared no-async --prefix=/opt/homebrew/Cellar/openssl\@ 1.1/1.1.1s/aarch64-linux-gnu --openssldir=/opt/homebrew/Cellar/openssl\@ 1.1/1.1.1s/aarch64-linux-gnu
Now you should have a linux x86_64 version of openssl installed in:
Rust Cross compile in Mac for linux
Now if you want to cross compile for linux on your mac m1 using rust with openssl or openss-sys
Cargo.toml - as much as possible try to use "vendored" feature in openssl - that way the openssl will not become
a dependancy on the target system
OPENSSL_INCLUDE_DIR=` brew --prefix [email protected] ` /x86_64-linux-gnu/include OPENSSL_LIB_DIR=` brew --prefix [email protected] ` /x86_64-linux-gnu/lib OPENSSL_STATIC=1 cargo b --release --target x86_64-unknown-linux-gnu
OPENSSL_INCLUDE_DIR=` brew --prefix [email protected] ` /aarch64-linux-gnu/include OPENSSL_LIB_DIR=` brew --prefix [email protected] ` /aarch64-linux-gnu/lib OPENSSL_STATIC=1 cargo b --release --target aarch64-unknown-linux-gnu
if you want to strip the executable:
x86_64-unknown-linux-gnu-strip target/release/< file>
aarch64-unknown-linux-gnu-strip target/release/< file>