1
0
mirror of https://github.com/lz4/lz4.git synced 2026-10-24 01:48:57 +03:00
Files
lz4/.github/workflows/compilers.yml
dependabot[bot] 7c4d9817a5 build(deps): bump actions/checkout from 6.0.2 to 7.0.1
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.2 to 7.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](de0fac2e45...3d3c42e5aa)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-10-17 22:44:35 +00:00

120 lines
3.8 KiB
YAML

# Compiler compatibility testing across multiple C compilers
name: Compiler Tests
on:
push:
pull_request:
permissions:
contents: read
concurrency:
cancel-in-progress: true
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
jobs:
compiler-matrix:
name: ${{ matrix.cc }} on ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
# System default compilers
- { pkgs: '', cc: cc, cxx: c++, x86: true, cxxtest: true, freestanding: true, os: ubuntu-latest }
- { pkgs: '', cc: gcc, cxx: g++, x86: true, cxxtest: true, freestanding: true, os: ubuntu-latest }
# GCC versions - latest stable and LTS
- { pkgs: 'gcc-14 g++-14 lib32gcc-14-dev', cc: gcc-14, cxx: g++-14, x86: true, cxxtest: true, freestanding: true, os: ubuntu-24.04 }
- { pkgs: 'gcc-11 g++-11 lib32gcc-11-dev', cc: gcc-11, cxx: g++-11, x86: true, cxxtest: true, freestanding: true, os: ubuntu-22.04 }
# Clang versions - system default, latest stable, and older stable
- { pkgs: 'lib32gcc-12-dev', cc: clang, cxx: clang++, x86: true, cxxtest: true, freestanding: false, os: ubuntu-latest }
- { pkgs: 'clang-18 lib32gcc-12-dev', cc: clang-18, cxx: clang++-18, x86: true, cxxtest: true, freestanding: false, os: ubuntu-24.04 }
- { pkgs: 'clang-14 lib32gcc-12-dev', cc: clang-14, cxx: clang++-14, x86: true, cxxtest: true, freestanding: false, os: ubuntu-22.04 }
runs-on: ${{ matrix.os }}
env:
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
FIXME__LZ4_CI_IGNORE: ' echo Error. But we ignore it for now.'
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install gcc-multilib
if [ "${{ matrix.pkgs }}" != "" ]; then
sudo apt-get install ${{ matrix.pkgs }}
fi
- name: Display environment info
run: |
echo "=== Compiler Information ==="
type $CC && which $CC && $CC --version
echo "=== C++ Compiler Information ==="
type $CXX && which $CXX && $CXX --version
- name: Basic build test
run: make -j V=1
- name: Installation test
run: make -C tests test-install V=1
- name: Build all with strict flags
run: |
make clean
CFLAGS="-Werror -O0" make -j all V=1
- name: C90 standard compliance test
run: |
make clean
make -j c_standards_c90 V=1
- name: C11 standard compliance test
run: |
make clean
make -j c_standards_c11 V=1
- name: C library for C++ program test
if: ${{ matrix.cxxtest }}
run: |
make clean
make -j ctocxxtest V=1
- name: C++ compilation test
if: ${{ matrix.cxxtest }}
run: |
make clean
make -j cxxtest V=1
- name: Freestanding environment test
if: ${{ matrix.freestanding }}
run: |
make clean
make test-freestanding V=1
- name: Freestanding test with 32-bit target on 64-bit host
# freestanding test must be selected from the compiler's target, not the host (#1464)
if: ${{ matrix.x86 }}
run: |
make clean
make test-freestanding V=1 CC="$CC -m32"
- name: Fortified build test
run: |
make clean
CFLAGS='-fPIC' LDFLAGS='-pie -fPIE -D_FORTIFY_SOURCE=2' make -j -C programs default V=1
- name: Core functionality test
run: |
make clean
CPPFLAGS=-DLZ4IO_NO_TSAN_ONLY make -j V=1 -C tests test-lz4
- name: 32-bit compatibility test
if: ${{ matrix.x86 }}
run: |
make clean
CFLAGS='-Werror -O1' make -j -C tests test-lz4c32 V=1