GHA/codeql: enable more build options, build servers and tunits#18557
Closed
vszakats wants to merge 15 commits intocurl:masterfrom
Closed
GHA/codeql: enable more build options, build servers and tunits#18557vszakats wants to merge 15 commits intocurl:masterfrom
vszakats wants to merge 15 commits intocurl:masterfrom
Conversation
13 tasks
vszakats
added a commit
that referenced
this pull request
Nov 21, 2025
Turns out the cause of CodeQL hangs (or probably just extreme long compile) is the header `curl/typecheck-gcc.h`. By accident I noticed that the preprocessed output of libtests.c is 75 MB (megabytes). This is much higher than the amounf of source code hinted, also compared to e.g. units.c or other build targets. The reason for the extreme size is each easy option call pulling in the large checker logic defined in this header. By compiling with `-DCURL_DISABLE_TYPECHECK`, preprocessed output drops to 2.2 MB (34x), and the libtests target builds without issues. Also build all tests and examples with the Linux HTTP/3 config, covering 3 more files. With these, CodeQL C coverage is 893 out of 930 (96%) (was: 645 69%) Follow-up to 71fc11e #18695 Follow-up to a333fd4 #18557 Follow-up to b4922b1 #18564 Closes vszakats#11 Closes #19632
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Coverage is now 466 C files. (was: 446)
It's a first in curl CI that Linuxbrew packages are used in builds.
It allows building with packages missing from Ubuntu 24.04:
gsasl (upcoming in 24.10), mbedtls 3, also latest wolfSSL (though
not compatible with coexist), openssl, nghttp3, ngtcp2 (openssl), and
rustls-ffi.
clang 18 is slower (but able to build units) 1m44s: https://github.com/curl/curl/actions/runs/17744622476/job/50426706985?pr=18557
gcc 1m14s: https://github.com/curl/curl/actions/runs/17745349876/job/50429178627?pr=18557