Gcc 16 switch - #502
Open
vineetgarc wants to merge 5 commits into
Open
Conversation
Make the selftests build produce the test_progs-bpf_gcc binary, with the GCC series chosen by a single CI variable: - download-gh-release.sh: accept an optional tag prefix and pick the most recent release matching it, so "gcc-16-" tracks the latest GCC 16 build. An empty prefix keeps the previous latest-release behavior, and a full tag still works since a tag is a prefix of itself. - kernel-build.yml: download the GCC BPF compiler and set BPF_GCC on x86_64 so the normal selftests build produces test_progs-bpf_gcc in the test artifact. The series comes from GCC_BPF_VERSION, defaulting to 15. Plain "latest release" is ambiguous now that several GCC series are published to the same repo, hence selecting by prefix. This only builds the binary; the test runner is enabled separately. Signed-off-by: Vineet Gupta <vineet.gupta@linux.dev>
Change the default GCC_BPF_VERSION from 15 to 16 so test_progs-bpf_gcc is built with the latest GCC 16 release instead of GCC 15, and regenerate the GCC BPF denylist to match what GCC 16 actually fails. The denylist shrinks from 904 to 192 entries (61 whole tests, 131 subtests). A test is denied outright only when nothing in it passes; otherwise just the failing subtests are listed so the rest keep running. Signed-off-by: Vineet Gupta <vineet.gupta@linux.dev>
Add test_progs-bpf_gcc back to the x86_64 test list so the GCC BPF selftests are actually executed, not just built. The runner was disabled back in Jan 2025 [1] because too many tests were failing with GCC 15. With GCC 16 things have improved significantly so turn it back on. Following is the data from two fresh CI runs: ┌─────────────────┬────────┬───────────────┐ │ │ gcc-15 │ gcc-16 │ ├─────────────────┼────────┼───────────────┤ │ Tests PASSED │ 510 │ 640 (+25.5%) │ ├─────────────────┼────────┼───────────────┤ │ Tests FAILED │ 231 │ 100 (−56.7%) │ ├─────────────────┼────────┼───────────────┤ │ Subtests PASSED │ 4051 │ 5750 (+41.9%) │ ├─────────────────┼────────┼───────────────┤ │ Subtests FAILED │ 1678 │ 344 (−79.5%) │ ├─────────────────┼────────┼───────────────┤ │ Runtime │ 72 min │ 11 min │ └─────────────────┴────────┴───────────────┘ [1] https://lore.kernel.org/bpf/87bjw6qpje.fsf@oracle.com/ Signed-off-by: Vineet Gupta <vineet.gupta@linux.dev>
The separate 'GCC BPF' job compiles test_progs-bpf_gcc purely as a build check and uploads nothing. Earlier in this series the regular selftests build started producing that binary and the vmtest runner started executing it, so the job now rebuilds the same thing only to throw it away, costing an extra CodeBuild runner on every pull request. Running the tests also subsumes the build check, since a compile failure fails the build job just the same. This is effectively a revert of vmtest commit 83c4015 ("GCC BPF: factor out into a separate job (#338)"), which moved the GCC BPF build out of kernel-build.yml. That was the right call at the time. The build ran libbpf/ci/build-bpf-gcc, which compiled binutils and GCC from source on every x86_64 build, sitting directly on the critical path of the main build job. And the runner had been disabled a few weeks earlier in vmtest commit f7504ae ("Disable test_progs-bpf_gcc"), so nothing consumed the resulting binary and a standalone compile check was all that remained of it. Neither reason holds any more. vmtest commit 81846c8 ("GCC BPF: use pre-built release") replaced the from-source build with a download of a pre-built release, so folding it back into the build job costs a tarball fetch rather than a full GCC build, and the runner re-enabled earlier in this series consumes the binary again. Nothing depends on the job, so remove it along with its workflow. Signed-off-by: Vineet Gupta <vineet.gupta@linux.dev>
Temporary, do not merge. Pulls in the libbpf/ci change that re-runs the denylisted tests after the main test_progs-bpf_gcc pass, so it can be exercised before that change lands and v4 is re-tagged. Only the kernel-test.yml pin is bumped; the veristat and asan jobs use run-vmtest with a different script and are unaffected. Drop this commit once libbpf/ci has merged the change.
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.
No description provided.