@@ -149,6 +149,10 @@ jobs:
149
149
- true
150
150
- false
151
151
library :
152
+ - name : boringssl
153
+ version : master
154
+ - name : boringssl
155
+ version : 5697a9202615925696f8dc7f4e286d44d474769e
152
156
- name : openssl
153
157
version : vendored
154
158
- name : openssl
@@ -197,6 +201,10 @@ jobs:
197
201
library :
198
202
name : libressl
199
203
version : 3.5.2
204
+ exclude :
205
+ - library :
206
+ name : boringssl
207
+ bindgen : true
200
208
name : ${{ matrix.target }}-${{ matrix.library.name }}-${{ matrix.library.version }}-${{ matrix.bindgen }}
201
209
runs-on : ubuntu-latest
202
210
env :
@@ -217,10 +225,10 @@ jobs:
217
225
exit 0
218
226
;;
219
227
"i686-unknown-linux-gnu")
220
- packages="gcc-multilib"
228
+ packages="gcc-multilib g++-multilib "
221
229
;;
222
230
"arm-unknown-linux-gnueabihf")
223
- packages="gcc-arm-linux-gnueabihf qemu-user"
231
+ packages="gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf qemu-user"
224
232
;;
225
233
esac
226
234
@@ -233,14 +241,24 @@ jobs:
233
241
key : openssl-${{ matrix.target }}-${{ matrix.library.name }}-${{ matrix.library.version }}-2
234
242
if : matrix.library.version != 'vendored'
235
243
id : openssl-cache
244
+ - run : |
245
+ echo "RUST_TEST_THREADS=1" >> $GITHUB_ENV
246
+ echo BINDGEN_EXTRA_CLANG_ARGS="--sysroot /usr/arm-linux-gnueabihf" >> $GITHUB_ENV
247
+ if: matrix.target == 'arm-unknown-linux-gnueabihf'
236
248
- name : Build OpenSSL
237
249
run : |
238
250
case "${{ matrix.library.name }}" in
239
251
"openssl")
240
252
url="https://openssl.org/source${{ matrix.library.dl-path }}/openssl-${{ matrix.library.version }}.tar.gz"
253
+ tar_flags="--strip-components=1"
241
254
;;
242
255
"libressl")
243
256
url="https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-${{ matrix.library.version }}.tar.gz"
257
+ tar_flags="--strip-components=1"
258
+ ;;
259
+ "boringssl")
260
+ url="https://boringssl.googlesource.com/boringssl/+archive/${{ matrix.library.version }}.tar.gz"
261
+ tar_flags=""
244
262
;;
245
263
esac
246
264
@@ -258,30 +276,45 @@ jobs:
258
276
OS_FLAGS=""
259
277
export AR=arm-linux-gnueabihf-ar
260
278
export CC=arm-linux-gnueabihf-gcc
279
+ export CXX=arm-linux-gnueabihf-g++
261
280
;;
262
281
esac
263
282
264
283
mkdir /tmp/build
265
284
cd /tmp/build
266
285
267
- curl -L $url | tar --strip-components=1 -xzf -
286
+ curl -L $url | tar $tar_flags -xzf -
268
287
269
288
case "${{ matrix.library.name }}" in
270
289
"openssl")
271
290
./Configure --prefix=$OPENSSL_DIR --libdir=lib $OS_COMPILER -fPIC -g $OS_FLAGS no-shared
291
+ make
292
+ make install_sw
272
293
;;
273
294
"libressl")
274
295
./configure --prefix=$OPENSSL_DIR --disable-shared --with-pic
296
+ make
297
+ make install_sw
275
298
;;
299
+ "boringssl")
300
+ sed -i rust/CMakeLists.txt -e '1s%^%include_directories(../include)\n%'
301
+ cpu=`echo ${{ matrix.target }} | cut -d - -f 1`
302
+ echo "set(CMAKE_SYSTEM_NAME Linux)" > toolchain.cmake
303
+ echo "set(CMAKE_SYSTEM_PROCESSOR $cpu)" >> toolchain.cmake
304
+ echo "set(triple ${{ matrix.target }})" >> toolchain.cmake
305
+ echo 'set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} '$OS_FLAGS '" CACHE STRING "c++ flags")' >> toolchain.cmake
306
+ echo 'set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} '$OS_FLAGS '" CACHE STRING "c flags")' >> toolchain.cmake
307
+ echo 'set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} '$OS_FLAGS '" CACHE STRING "asm flags")' >> toolchain.cmake
308
+ cmake -DRUST_BINDINGS="${{ matrix.target }}" -B $OPENSSL_DIR -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake
309
+ make -C $OPENSSL_DIR
276
310
esac
277
311
278
- make
279
- make install_sw
280
312
if : matrix.library.version != 'vendored' && !steps.openssl-cache.outputs.cache-hit
281
313
- run : |
282
- echo "RUST_TEST_THREADS=1" >> $GITHUB_ENV
283
- echo BINDGEN_EXTRA_CLANG_ARGS="--sysroot /usr/arm-linux-gnueabihf" >> $GITHUB_ENV
284
- if: matrix.target == 'arm-unknown-linux-gnueabihf'
314
+ mkdir -p .cargo
315
+ echo '[patch.crates-io]' > .cargo/config.toml
316
+ echo 'bssl-sys = { path = "'$OPENSSL_DIR'/rust" }' >> .cargo/config.toml
317
+ if: matrix.library.name == 'boringssl'
285
318
- uses : actions/cache@v1
286
319
with :
287
320
path : ~/.cargo/registry/index
@@ -307,8 +340,12 @@ jobs:
307
340
features="$features --features bindgen"
308
341
fi
309
342
cargo run --manifest-path=systest/Cargo.toml --target ${{ matrix.target }} $features
343
+ if : matrix.library.name != 'boringssl'
310
344
- name : Test openssl
311
345
run : |
346
+ if [[ "${{ matrix.library.name }}" == "boringssl" ]]; then
347
+ features="--features boringssl"
348
+ fi
312
349
if [[ "${{ matrix.library.version }}" == "vendored" ]]; then
313
350
features="--features vendored"
314
351
fi
@@ -325,3 +362,4 @@ jobs:
325
362
features="$features --features openssl-sys/bindgen"
326
363
fi
327
364
cargo test --manifest-path=openssl-errors/Cargo.toml --target ${{ matrix.target }} $features
365
+ if : matrix.library.name != 'boringssl'
0 commit comments