]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
singleuse: limit checks to non-unity jobs
authorViktor Szakats <commit@vsz.me>
Thu, 26 Sep 2024 20:42:48 +0000 (22:42 +0200)
committerViktor Szakats <commit@vsz.me>
Fri, 27 Sep 2024 16:24:31 +0000 (18:24 +0200)
`singleuse.pl` requires non-unity builds. With unity builds, it remains
silent.

- make some jobs non-unity to allow singleuse to do its job.
- since all jobs used the `--unit` singleuse checker option, make this
  option permanent.

Closes #15065

.github/workflows/linux.yml

index cd919a3ac8ff7f14cf9bc9252f25dfcd7a8a8548..1f3e8e864ab36916a6fe3f958704112676102ee4 100644 (file)
@@ -70,128 +70,107 @@ jobs:
             install_packages: zlib1g-dev
             install_steps: bearssl pytest
             configure: LDFLAGS="-Wl,-rpath,$HOME/bearssl/lib" --with-bearssl=$HOME/bearssl --enable-debug
-            singleuse: --unit
 
           - name: bearssl clang
             install_packages: zlib1g-dev clang
             install_steps: bearssl
             configure: CC=clang LDFLAGS="-Wl,-rpath,$HOME/bearssl/lib" --with-bearssl=$HOME/bearssl --enable-debug
-            singleuse: --unit
 
           - name: libressl heimdal
             install_packages: zlib1g-dev heimdal-dev
             install_steps: libressl pytest
             configure: LDFLAGS="-Wl,-rpath,$HOME/libressl/lib" --with-openssl=$HOME/libressl --with-gssapi --enable-debug
-            singleuse: --unit
 
           - name: libressl heimdal valgrind
             install_packages: zlib1g-dev heimdal-dev valgrind
             install_steps: libressl pytest
             generate: -DOPENSSL_ROOT_DIR=$HOME/libressl -DCURL_USE_GSSAPI=ON -DENABLE_DEBUG=ON -DCURL_LIBCURL_VERSIONED_SYMBOLS=ON
-            singleuse: --unit
 
           - name: libressl clang
             install_packages: zlib1g-dev clang
             install_steps: libressl
             configure: CC=clang LDFLAGS="-Wl,-rpath,$HOME/libressl/lib" --with-openssl=$HOME/libressl --enable-debug
-            singleuse: --unit
 
           - name: wolfssl-all
             install_packages: zlib1g-dev
             install_steps: wolfssl-all
             configure: LDFLAGS="-Wl,-rpath,$HOME/wolfssl-all/lib" --with-wolfssl=$HOME/wolfssl-all --enable-debug
-            singleuse: --unit
 
           - name: wolfssl-opensslextra valgrind
             install_packages: zlib1g-dev valgrind
             install_steps: wolfssl-opensslextra
             configure: LDFLAGS="-Wl,-rpath,$HOME/wolfssl-opensslextra/lib" --with-wolfssl=$HOME/wolfssl-opensslextra --enable-debug
-            singleuse: --unit
 
           - name: mbedtls valgrind
             install_packages: libnghttp2-dev valgrind
             install_steps: mbedtls pytest
             configure: LDFLAGS="-Wl,-rpath,$HOME/mbedtls/lib" --with-mbedtls=$HOME/mbedtls --enable-debug
-            singleuse: --unit
 
           - name: mbedtls clang
             install_packages: libnghttp2-dev clang
             install_steps: mbedtls
             configure: CC=clang LDFLAGS="-Wl,-rpath,$HOME/mbedtls/lib" --with-mbedtls=$HOME/mbedtls --enable-debug
-            singleuse: --unit
 
           - name: msh3
             install_packages: zlib1g-dev
             install_steps: quictls msh3
             configure: LDFLAGS="-Wl,-rpath,$HOME/msh3/lib -Wl,-rpath,$HOME/quictls/lib" --with-msh3=$HOME/msh3 --with-openssl=$HOME/quictls --enable-debug
-            singleuse: --unit
 
           - name: awslc
             install_packages: zlib1g-dev
             install_steps: awslc
             configure: LDFLAGS="-Wl,-rpath,$HOME/awslc/lib" --with-openssl=$HOME/awslc
-            singleuse: --unit
 
           - name: awslc
             install_packages: zlib1g-dev
             install_steps: awslc
-            generate: -DOPENSSL_ROOT_DIR=$HOME/awslc
-            singleuse: --unit
+            generate: -DOPENSSL_ROOT_DIR=$HOME/awslc -DCMAKE_UNITY_BUILD=OFF
 
           - name: openssl default
             install_steps: pytest
-            configure: --with-openssl --enable-debug
-            singleuse: --unit
+            configure: --with-openssl --enable-debug --disable-unity
 
           - name: openssl libssh2 sync-resolver valgrind
             install_packages: zlib1g-dev libssh2-1-dev valgrind
             install_steps: pytest
             configure: --with-openssl --enable-debug --disable-threaded-resolver --with-libssh2
-            singleuse: --unit
 
           - name: openssl3
             install_packages: zlib1g-dev
             install_steps: gcc-11 openssl3 pytest
             configure: CFLAGS=-std=gnu89 LDFLAGS="-Wl,-rpath,$HOME/openssl3/lib" --with-openssl=$HOME/openssl3 --enable-debug --enable-websockets
-            singleuse: --unit
 
           - name: openssl3 -O3 valgrind
             install_packages: zlib1g-dev valgrind
             install_steps: gcc-11 openssl3
             configure: CPPFLAGS=-DCURL_WARN_SIGN_CONVERSION CFLAGS=-O3 LDFLAGS="-Wl,-rpath,$HOME/openssl3/lib" --with-openssl=$HOME/openssl3 --enable-debug --enable-websockets
-            singleuse: --unit
 
           - name: openssl3 clang krb5
             install_packages: zlib1g-dev libkrb5-dev clang
             install_steps: openssl3
             configure: CC=clang LDFLAGS="-Wl,-rpath,$HOME/openssl3/lib" --with-openssl=$HOME/openssl3 --with-gssapi --enable-debug --enable-websockets
-            singleuse: --unit
 
           - name: openssl3 clang krb5
             install_packages: zlib1g-dev libkrb5-dev clang
             install_steps: openssl3
             generate: -DOPENSSL_ROOT_DIR=$HOME/openssl3 -DCURL_USE_GSSAPI=ON -DENABLE_DEBUG=ON -DENABLE_WEBSOCKETS=ON
-            singleuse: --unit
 
           - name: openssl3 !ipv6
             install_steps: gcc-11 openssl3
-            configure: LDFLAGS="-Wl,-rpath,$HOME/openssl3/lib" --with-openssl=$HOME/openssl3 --enable-debug --disable-ipv6
-            singleuse: --unit
+            configure: LDFLAGS="-Wl,-rpath,$HOME/openssl3/lib" --with-openssl=$HOME/openssl3 --enable-debug --disable-ipv6 --disable-unity
 
           - name: openssl3 https-only
             install_steps: gcc-11 openssl3
             configure: >
-              LDFLAGS="-Wl,-rpath,$HOME/openssl3/lib" --with-openssl=$HOME/openssl3 --enable-debug
+              LDFLAGS="-Wl,-rpath,$HOME/openssl3/lib" --with-openssl=$HOME/openssl3 --enable-debug --disable-unity
               --disable-dict --disable-gopher --disable-ldap --disable-telnet
               --disable-imap --disable-pop3 --disable-smtp
               --disable-rtmp --disable-rtsp
               --disable-scp --disable-sftp --disable-tftp --disable-ftp --disable-file --disable-smb
-            singleuse: --unit
 
           - name: '!ssl !http !smtp !imap'
             install_steps: gcc-11
-            configure: --without-ssl --enable-debug --disable-http --disable-smtp --disable-imap
-            singleuse: --unit
+            configure: --without-ssl --enable-debug --disable-http --disable-smtp --disable-imap --disable-unity
 
           - name: scanbuild
             install_packages: clang-tools clang libssl-dev libssh2-1-dev
@@ -199,7 +178,6 @@ jobs:
             configure: --with-openssl --enable-debug --with-libssh2 --disable-unity
             configure-prefix: CC=clang scan-build
             make-prefix: scan-build --status-bugs
-            singleuse: --unit
 
           - name: address-sanitizer
             install_packages: zlib1g-dev libssh2-1-dev clang libssl-dev libubsan1 libasan8 libtsan2
@@ -210,7 +188,6 @@ jobs:
               LDFLAGS="-fsanitize=address,undefined -fno-sanitize-recover=undefined,integer"
               LIBS="-ldl -lubsan"
               --with-openssl --enable-debug --enable-websockets
-            singleuse: --unit
 
           - name: thread-sanitizer
             install_packages: zlib1g-dev clang libtsan2
@@ -220,7 +197,6 @@ jobs:
               CFLAGS="-fsanitize=thread -g"
               LDFLAGS="-fsanitize=thread -Wl,-rpath,$HOME/openssl3/lib"
               --with-openssl=$HOME/openssl3 --enable-debug --enable-websockets
-            singleuse: --unit
 
           - name: memory-sanitizer
             install_packages: clang
@@ -230,36 +206,30 @@ jobs:
               LDFLAGS="-fsanitize=memory"
               LIBS="-ldl"
               --without-ssl --without-zlib --without-brotli --without-zstd --without-libpsl --without-nghttp2 --enable-debug --enable-websockets
-            singleuse: --unit
 
           - name: event-based
             install_packages: libssh-dev
             configure: --enable-debug --disable-shared --disable-threaded-resolver --with-libssh --with-openssl
             tflags: -n -e '!TLS-SRP'
-            singleuse: --unit
 
           - name: hyper
             install_steps: rust hyper
             configure: LDFLAGS="-Wl,-rpath,$HOME/hyper/target/debug" --with-openssl --with-hyper=$HOME/hyper --enable-debug --enable-websockets
-            singleuse: --unit
 
           - name: rustls valgrind
             install_packages: libpsl-dev valgrind
             install_steps: rust rustls pytest
             configure: --with-rustls=$HOME/rustls --enable-debug
-            singleuse: --unit
 
           - name: IntelC !SSL
             install_packages: zlib1g-dev
             install_steps: intel
             configure: CC=icc --enable-debug --without-ssl
-            singleuse: --unit
 
           - name: IntelC openssl valgrind
             install_packages: zlib1g-dev libssl-dev valgrind
             install_steps: intel
             configure: CC=icc --enable-debug --with-openssl
-            singleuse: --unit
 
           - name: Slackware openssl gssapi gcc
             # These are essentially the same flags used to build the curl Slackware package
@@ -271,7 +241,6 @@ jobs:
           - name: Alpine MUSL
             configure: --enable-debug --enable-websockets --with-ssl --with-libssh2 --with-libidn2 --with-gssapi --enable-ldap --with-libpsl
             container: 'alpine:3.18'
-            singleuse: --unit
 
     steps:
       - if: matrix.build.container == null
@@ -618,6 +587,7 @@ jobs:
           fi
 
       - name: single-use function check
+        if: ${{ contains(matrix.build.configure, '--disable-unity') || contains(matrix.build.generate, '-DCMAKE_UNITY_BUILD=OFF') }}
         run: |
           git config --global --add safe.directory "*"
           if [ -n '${{ matrix.build.generate }}' ]; then
@@ -625,7 +595,7 @@ jobs:
           else
             libcurla=lib/.libs/libcurl.a
           fi
-          ./scripts/singleuse.pl ${{ matrix.build.singleuse }} ${libcurla}
+          ./scripts/singleuse.pl --unit ${libcurla}
 
       - run: ./src/curl -V
         name: 'check curl -V output'