Skip to content

Linux

Linux #1

Workflow file for this run

name: Linux
on: workflow_dispatch
env:
BOOST_DOT_VERSION: "1.81.0"
BOOST_VERSION: "1_81_0"
OPENSSL_VERSION: "1.1.1t"
OPENSSL_NO_OPTS: "no-deprecated no-shared no-makedepend no-static-engine no-stdio no-posix-io no-threads no-ui-console no-zlib no-zlib-dynamic -fno-strict-aliasing -fvisibility=hidden -O3"
CXX: g++-10
CC: gcc-10
jobs:
arm64-b2:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: setup gcc
run: |
sudo apt update
sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu binutils-aarch64-linux-gnu
- name: setup boost
run: |
wget -nv -O boost.tar.gz https://boostorg.jfrog.io/artifactory/main/release/${BOOST_DOT_VERSION}/source/boost_${BOOST_VERSION}.tar.gz
tar xzf boost.tar.gz
mv boost_${BOOST_VERSION} boost
cd boost
./bootstrap.sh
cd ..
- name: setup openssl
run: |
export CC=aarch64-linux-gnu-gcc
export AR=aarch64-linux-gnu-gcc-ar
export LD=aarch64-linux-gnu-ld
export RANLIB=aarch64-linux-gnu-gcc-ranlib
wget -nv -O openssl.tar.gz https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz
tar xzf openssl.tar.gz
cd openssl-${OPENSSL_VERSION}
./Configure linux-aarch64 ${OPENSSL_NO_OPTS} -fPIC --prefix=${PWD}/../openssl
make &> /dev/null
make install_sw &> /dev/null
cd ..
- name: build
run: |
export BOOST_ROOT=${PWD}/boost
export OPENSSL_ROOT=${PWD}/openssl
export LIBTORRENT_ROOT=${PWD}/swig/deps/libtorrent
export CXX=aarch64-linux-gnu-g++
export CC=aarch64-linux-gnu-gcc
export AR=aarch64-linux-gnu-gcc-ar
export LD=aarch64-linux-gnu-ld
export RANLIB=aarch64-linux-gnu-gcc-ranlib
cd swig
${BOOST_ROOT}/b2 -j2 --user-config=config/linux-arm-config.jam variant=release toolset=gcc-arm target-os=linux location=bin/release/linux/arm64
cd ..
- name: strip
run: |
aarch64-linux-gnu-objcopy --only-keep-debug swig/bin/release/linux/arm64/libtorrent4j.so swig/bin/release/linux/arm64/libtorrent4j.so.debug
aarch64-linux-gnu-strip --strip-unneeded -x swig/bin/release/linux/arm64/libtorrent4j.so
- name: dependencies
run: aarch64-linux-gnu-readelf -d swig/bin/release/linux/arm64/libtorrent4j.so
- uses: actions/upload-artifact@v3
with:
name: libtorrent4j-linux-arm64-b2
path: |
swig/bin/release/linux/arm64/libtorrent4j.so
swig/bin/release/linux/arm64/libtorrent4j.so.debug
retention-days: 5