diff --git a/.github/matrix.py b/.github/matrix.py index b5eec8b5d..8eafdc7af 100755 --- a/.github/matrix.py +++ b/.github/matrix.py @@ -145,10 +145,12 @@ def main(ref_name): if is_stable: os = "ubuntu-24.04" # stable branch os_arm = "ubuntu-24.04-arm" # stable branch + os_armhf = "ubuntu-24.04-arm" # stable branch os_i686 = "ubuntu-24.04" # stable branch else: os = "ubuntu-24.04" # development branch os_arm = "ubuntu-24.04-arm" # development branch + os_armhf = "ubuntu-24.04-arm" # development branch os_i686 = "ubuntu-24.04" # development branch TARGET = "linux-glibc" @@ -353,6 +355,22 @@ def main(ref_name): } ) + # arm32 + + matrix.append( + { + "name": "{}, armhf".format(os_armhf), + "os": os_armhf, + "TARGET": "linux-glibc", + "CC": "arm-linux-gnueabihf-gcc", + "FLAGS": [ + "USE_OPENSSL=1", + "USE_PCRE2=1", + "USE_PCRE2_JIT=1", + ], + } + ) + # Print matrix print(json.dumps(matrix, indent=4, sort_keys=True)) diff --git a/.github/workflows/vtest.yml b/.github/workflows/vtest.yml index 5129cae3c..bd0c1ea7b 100644 --- a/.github/workflows/vtest.yml +++ b/.github/workflows/vtest.yml @@ -72,18 +72,18 @@ jobs: with: path: '~/opt-ot/' key: ${{ matrix.os }}-ot-${{ matrix.CC }}-${{ env.OT_CPP_VERSION }}-${{ contains(matrix.name, 'ASAN') }} - - name: Add i386 architecture - if: ${{ matrix.CC == 'i686-linux-gnu-gcc' }} - run: sudo dpkg --add-architecture i386 - name: Install apt dependencies if: ${{ startsWith(matrix.os, 'ubuntu-') && matrix.TARGET != 'linux-musl' }} run: | + ${{ matrix.CC == 'i686-linux-gnu-gcc' && 'sudo dpkg --add-architecture i386' || '' }} + ${{ matrix.CC == 'arm-linux-gnueabihf-gcc' && 'sudo dpkg --add-architecture armhf' || '' }} sudo apt-get update -o Acquire::Languages=none -o Acquire::Translation=none sudo apt-get --no-install-recommends -y install \ ${{ case(contains(matrix.FLAGS, 'USE_LUA=1'), 'liblua5.4-dev', '') }} \ ${{ case(contains(matrix.FLAGS, 'USE_PCRE2=1'), 'libpcre2-dev', '') }} \ ${{ case(contains(matrix.ssl, 'BORINGSSL=yes'), 'ninja-build', '') }} \ ${{ case(matrix.CC == 'i686-linux-gnu-gcc', 'gcc-i686-linux-gnu libc6-dev-i386-cross libssl-dev:i386 libpcre2-dev:i386', '') }} \ + ${{ case(matrix.CC == 'arm-linux-gnueabihf-gcc', 'gcc-arm-linux-gnueabihf libc6-dev-armhf-cross libssl-dev:armhf libpcre2-dev:armhf qemu-user-static', '') }} \ socat \ gdb \ jose @@ -126,12 +126,12 @@ jobs: id: show-version run: | echo "::group::Show dynamic libraries." - if command -v ldd > /dev/null; then - # Linux - ldd $(which haproxy) - else - # macOS + if [ "$(uname)" = "Darwin" ]; then otool -L $(which haproxy) + elif [ "${{ matrix.CC }}" = "arm-linux-gnueabihf-gcc" ]; then + readelf -d $(which haproxy) | grep NEEDED + else + ldd $(which haproxy) fi echo "::endgroup::" haproxy -vv