Skip to content

Remove vestigial LLVM_jll from the test environment#867

Closed
maleadt wants to merge 2 commits into
mainfrom
nightly
Closed

Remove vestigial LLVM_jll from the test environment#867
maleadt wants to merge 2 commits into
mainfrom
nightly

Conversation

@maleadt

@maleadt maleadt commented Jul 6, 2026

Copy link
Copy Markdown
Member

Problem

All Julia nightly CI jobs have failed since 2026-06-29. Julia 1.14 nightly (JuliaLang/julia#61709) rejects cglobal calls whose library-name element is a computed expression, enforced at method-definition time — so merely include-ing such a file throws:

TypeError: in cglobal library name, expected Symbol, got a value of type Expr

test/Project.toml pinned LLVM_jll = "15,16,18,20". On nightly that capped LLVM_jll at v20.1.8+0, whose platform_augmentation.jl contains exactly such a call:

cglobal((:_ZN4llvm24DisableABIBreakingChecksE, Base.libllvm_path()), Cvoid)

Pkg.testinstantiatedownload_artifacts runs each augmented JLL's select_artifacts.jl in a subprocess; including that file now throws and kills the whole Pkg.test.

Fix

GPUCompiler's tests never use LLVM_jll directly — they use FileCheck.jl's @filecheck/@check_* macros. FileCheck.jl itself depends on LLVM_jll and locates the FileCheck binary via its artifact (joinpath(LLVM_jll.artifact_dir, "tools", "FileCheck")). So the explicit LLVM_jll entry in the test deps was vestigial; its only effect was the version bound, and that bound is what pinned the broken v20.1.8+0 build on nightly.

Dropping the dep lets FileCheck.jl govern resolution:

  • Julia 1.14: FileCheck v1.2.0 (which no longer bounds LLVM_jll) resolves the fixed LLVM_jll v21.1.8+1, whose augmentation uses Libdl.dlsym(dlopen(...)) (JuliaPackaging/Yggdrasil#13664).
  • Older Julia (1.10–1.13): unaffected — julia-compat keeps LLVM_jll at ≤ v20, and those Julia versions accept the dynamic cglobal.

Verification

Full suite on nightly (1.14.0-DEV), with LLVM_jll removed from the test deps: resolves FileCheck v1.2.0 + LLVM_jll v21.1.8+1, FileCheck binary found, 336 pass, 3 broken. No cglobal instantiate error.

🤖 Generated with Claude Code

maleadt and others added 2 commits July 6, 2026 18:34
Fixes nightly CI: LLVM_jll v20.1.8's platform augmentation uses a dynamic
`cglobal` that Julia 1.14 rejects (JuliaLang/julia#61709); v21.1.8+1 ships
the fixed augmentation (JuliaPackaging/Yggdrasil#13664) and is only
resolvable on 1.14+.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
GPUCompiler's tests don't use LLVM_jll directly. FileCheck.jl (which
provides the @FileCheck macros) already depends on LLVM_jll and locates
the FileCheck binary via its artifact, so the explicit test dep only
acted as a version bound -- and that bound was what capped LLVM_jll at
the broken v20.1.8+0 build on nightly. Dropping the dep lets FileCheck.jl
govern: on 1.14 it pulls the fixed LLVM_jll v21.1.8+1, and older Julia is
unaffected (julia-compat keeps them on <= v20, which they accept).

This supersedes the compat bump in the previous commit.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@maleadt maleadt changed the title Allow LLVM_jll 21 in the test environment Remove vestigial LLVM_jll from the test environment Jul 6, 2026
@codecov

codecov Bot commented Jul 6, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 80.02%. Comparing base (c740f2e) to head (b589a67).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #867      +/-   ##
==========================================
+ Coverage   79.60%   80.02%   +0.41%     
==========================================
  Files          25       25              
  Lines        4805     4805              
==========================================
+ Hits         3825     3845      +20     
+ Misses        980      960      -20     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@maleadt maleadt closed this Jul 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant