Skip to content

Merge r1920081 from trunk: #574

Merge r1920081 from trunk:

Merge r1920081 from trunk: #574

Workflow file for this run

name: Linux
on:
push:
branches: [ "*" ]
tags: [ "*" ]
pull_request:
branches: [ "trunk", "1.8.x" ]
env:
MARGS: "-j2"
jobs:
build:
strategy:
matrix:
include:
- name: Default
# Check default shm decision logic for Linux:
config-output: APR_USE_SHMEM_MMAP_SHM APR_USE_SHMEM_MMAP_ANON
- name: Static
config: --enable-static
- name: Maintainer-mode
config: --enable-maintainer-mode
- name: Named SHM - SysV, Maintainer-mode
config: --enable-maintainer-mode --enable-sysv-shm
config-output: APR_USE_SHMEM_SHMGET
- name: Named SHM - Classic mmap, Maintainer-mode
config: --enable-maintainer-mode ac_cv_func_shm_open=no ac_cv_func_shmget=no
config-output: APR_USE_SHMEM_MMAP_TMP
- name: Pool-debug
config: --enable-pool-debug
- name: Pool-debug, maintainer-mode
config: --enable-pool-debug --enable-maintainer-mode
- name: Maintainer-mode, no IPv6
config: --enable-maintainer-mode --disable-ipv6
- name: Maintainer-mode, -Werror
notest-cflags: -Werror
config: --enable-maintainer-mode
- name: ASan
# w/o ODBC since DSO unload leaks memory and fails the tests
notest-cflags: -fsanitize=address -fno-sanitize-recover=address -fno-omit-frame-pointer -Werror -O2
config: --with-odbc=no
- name: ASan, pool-debug
# w/o ODBC since DSO unload leaks memory and fails the tests
notest-cflags: -fsanitize=address -fno-sanitize-recover=address -fno-omit-frame-pointer -Werror -O2
config: --enable-pool-debug --with-odbc=no
- name: UBsan
notest-cflags: -fsanitize=undefined -fno-sanitize-recover=undefined -fno-omit-frame-pointer -Werror -O2
fail-fast: false
runs-on: ubuntu-latest
env:
NOTEST_CFLAGS: ${{ matrix.notest-cflags }}
name: ${{ matrix.name }}
steps:
- name: Install prerequisites
run: sudo apt-get install libtool libtool-bin
- uses: actions/checkout@v4
# https://github.com/actions/runner-images/issues/9491#issuecomment-1989718917
- name: Workaround ASAN issue in Ubuntu 22.04 runners
run: sudo sysctl vm.mmap_rnd_bits=28
- name: buildconf
run: ./buildconf
- name: configure
run: ./configure --prefix=/tmp/apr ${{ matrix.config }}
- if: ${{ matrix.config-output != '' }}
name: check for expected configure output ${{ matrix.config-output }}
run: for var in ${{ matrix.config-output }}; do grep "^#define *${var} *1" include/apr.h; done
- name: make
run: make $MARGS
- name: install
run: make install
- name: check
run: make check