Skip to content

Commit 22b48bb

Browse files
authored
fix: switched from zig to gcc compiler and simplified build command (#1043)
1 parent 5293ff6 commit 22b48bb

File tree

1 file changed

+22
-20
lines changed

1 file changed

+22
-20
lines changed

.github/workflows/rust_binaries_release.yml

+22-20
Original file line numberDiff line numberDiff line change
@@ -106,11 +106,23 @@ jobs:
106106
- name: Download and set up OpenSSL for cross-compilation
107107
if: matrix.target == 'aarch64-unknown-linux-gnu'
108108
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"
114126
make install_sw
115127
cd ..
116128
echo "OPENSSL_DIR=$HOME/openssl-aarch64" >> $GITHUB_ENV
@@ -121,31 +133,21 @@ jobs:
121133
echo "PKG_CONFIG_SYSROOT_DIR=/" >> $GITHUB_ENV
122134
echo "OPENSSL_STATIC=1" >> $GITHUB_ENV
123135
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-
135136
- name: Build binaries
136137
if: matrix.target == 'aarch64-unknown-linux-gnu'
137138
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
140142
OPENSSL_DIR: ${{ env.OPENSSL_DIR }}
141143
OPENSSL_LIB_DIR: ${{ env.OPENSSL_LIB_DIR }}
142144
OPENSSL_INCLUDE_DIR: ${{ env.OPENSSL_INCLUDE_DIR }}
143145
PKG_CONFIG_PATH: ${{ env.PKG_CONFIG_PATH }}
144146
PKG_CONFIG_ALLOW_CROSS: ${{ env.PKG_CONFIG_ALLOW_CROSS }}
145147
PKG_CONFIG_SYSROOT_DIR: ${{ env.PKG_CONFIG_SYSROOT_DIR }}
146148
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+
cargo build ${{ steps.cargo_args.outputs.args }}
149151
150152
- name: Build binaries
151153
if: matrix.target != 'aarch64-unknown-linux-gnu'

0 commit comments

Comments
 (0)