@@ -106,11 +106,23 @@ jobs:
106
106
- name : Download and set up OpenSSL for cross-compilation
107
107
if : matrix.target == 'aarch64-unknown-linux-gnu'
108
108
run : |
109
- wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz
110
- tar -xzf openssl-1.1.1k.tar.gz
111
- cd openssl-1.1.1k
112
- ./Configure linux-aarch64 --prefix=$HOME/openssl-aarch64 --cross-compile-prefix=aarch64-linux-gnu-
113
- make -j$(nproc)
109
+ wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
110
+ tar -xzf openssl-1.1.1g.tar.gz
111
+ cd openssl-1.1.1g
112
+ # More restrictive C99 flags and additional compiler options
113
+ export CROSS_COMPILE="" # Clear CROSS_COMPILE to prevent double prefix
114
+ export CC="aarch64-linux-gnu-gcc"
115
+ export CXX="aarch64-linux-gnu-g++"
116
+ export CFLAGS="-std=gnu99 -O2 -fPIC -D_GNU_SOURCE -I/usr/aarch64-linux-gnu/include"
117
+ export LDFLAGS="-L/usr/aarch64-linux-gnu/lib"
118
+ ./Configure linux-aarch64 --prefix=$HOME/openssl-aarch64 \
119
+ no-asm \
120
+ no-shared \
121
+ no-async \
122
+ no-engine \
123
+ no-dso \
124
+ no-deprecated
125
+ make -j$(nproc) CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS"
114
126
make install_sw
115
127
cd ..
116
128
echo "OPENSSL_DIR=$HOME/openssl-aarch64" >> $GITHUB_ENV
@@ -121,31 +133,22 @@ jobs:
121
133
echo "PKG_CONFIG_SYSROOT_DIR=/" >> $GITHUB_ENV
122
134
echo "OPENSSL_STATIC=1" >> $GITHUB_ENV
123
135
124
- - name : Install and configure Zig for aarch64 cross-compilation
125
- if : matrix.target == 'aarch64-unknown-linux-gnu'
126
- run : |
127
- wget https://ziglang.org/download/0.11.0/zig-linux-x86_64-0.11.0.tar.xz
128
- tar -xf zig-linux-x86_64-0.11.0.tar.xz
129
- echo "ZIG_PATH=$PWD/zig-linux-x86_64-0.11.0/zig" >> $GITHUB_ENV
130
- echo "$PWD/zig-linux-x86_64-0.11.0" >> $GITHUB_PATH
131
- zig-linux-x86_64-0.11.0/zig version
132
- echo "CARGO_ZIGBUILD_ZIG=$PWD/zig-linux-x86_64-0.11.0/zig" >> $GITHUB_ENV
133
- cargo install cargo-zigbuild
134
-
135
136
- name : Build binaries
136
137
if : matrix.target == 'aarch64-unknown-linux-gnu'
137
138
env :
138
- C_INCLUDE_PATH : /usr/lib/gcc-cross/aarch64-linux-gnu/11/include
139
- CXX_INCLUDE_PATH : /usr/lib/gcc-cross/aarch64-linux-gnu/11/include/c++
139
+ CC_aarch64_unknown_linux_gnu : aarch64-linux-gnu-gcc
140
+ CXX_aarch64_unknown_linux_gnu : aarch64-linux-gnu-g++
141
+ CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER : aarch64-linux-gnu-gcc
140
142
OPENSSL_DIR : ${{ env.OPENSSL_DIR }}
141
143
OPENSSL_LIB_DIR : ${{ env.OPENSSL_LIB_DIR }}
142
144
OPENSSL_INCLUDE_DIR : ${{ env.OPENSSL_INCLUDE_DIR }}
143
145
PKG_CONFIG_PATH : ${{ env.PKG_CONFIG_PATH }}
144
146
PKG_CONFIG_ALLOW_CROSS : ${{ env.PKG_CONFIG_ALLOW_CROSS }}
145
147
PKG_CONFIG_SYSROOT_DIR : ${{ env.PKG_CONFIG_SYSROOT_DIR }}
146
148
OPENSSL_STATIC : ${{ env.OPENSSL_STATIC }}
147
- RUSTFLAGS : ' -C link-arg=-lstdc++ -C link-arg=-lpthread -C link-arg=-lc'
148
- run : cargo zigbuild ${{ steps.cargo_args.outputs.args }}
149
+ run : |
150
+ # Remove cargo-zigbuild
151
+ cargo build ${{ steps.cargo_args.outputs.args }}
149
152
150
153
- name : Build binaries
151
154
if : matrix.target != 'aarch64-unknown-linux-gnu'
0 commit comments