]> git.ipfire.org Git - thirdparty/xz.git/commitdiff
CI: Test musl libc builds on Ubuntu runner.
authorJia Tan <jiat0218@gmail.com>
Wed, 22 Nov 2023 13:20:12 +0000 (21:20 +0800)
committerJia Tan <jiat0218@gmail.com>
Thu, 30 Nov 2023 12:09:46 +0000 (20:09 +0800)
.github/workflows/ci.yml

index 0ab27beb106b9cfc64a2ac0664f425e4db0453b2..3ba089c52c5f8187eb5bdfa27630052ad326d922 100644 (file)
@@ -38,7 +38,7 @@ jobs:
         if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
         run: |
             sudo apt-get update
-            sudo apt-get install -y autoconf automake build-essential po4a autopoint gcc-multilib doxygen
+            sudo apt-get install -y autoconf automake build-essential po4a autopoint gcc-multilib doxygen musl-tools
 
       # Install Autotools on Mac
       - name: Install Dependencies
@@ -50,7 +50,7 @@ jobs:
         if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'cmake' }}
         run: |
             sudo apt-get update
-            sudo apt-get install -y build-essential cmake
+            sudo apt-get install -y build-essential cmake musl-tools
 
       # Install CMake on Mac
       - name: Install Dependencies
@@ -93,6 +93,21 @@ jobs:
             ./build-aux/ci_build.sh -b autotools -p test -f "-fsanitize=address,undefined" -d ifunc,sandbox
             cd ../xz_build && make distclean
 
+      # musl libc has some slight differences compared to glibc, including
+      # the lack of ifunc support. This tests if the ifunc detection
+      # functions properly since musl-gcc can compile with ifunc support,
+      # but will fail at runtime.
+      - name: Build with musl libc
+        if: ${{ matrix.os == 'ubuntu-latest'}}
+        run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -p build -m "/usr/bin/musl-gcc"
+      - name: Test with musl libc
+        if: ${{ matrix.os == 'ubuntu-latest'}}
+        run: |
+            ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -p test -m "/usr/bin/musl-gcc"
+      - name: Clean up musl libc run
+        if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }}
+        run: cd ../xz_build && make distclean
+
       - name: Build with full features
         run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -p build
       - name: Test with full features