Skip to content

Test with LLVM 22 in CI, fix a setjmp/longjmp issue #772

Merged
alexcrichton merged 1 commit intoWebAssembly:mainfrom
alexcrichton:test-more
Mar 11, 2026
Merged

Test with LLVM 22 in CI, fix a setjmp/longjmp issue #772
alexcrichton merged 1 commit intoWebAssembly:mainfrom
alexcrichton:test-more

Conversation

@alexcrichton
Copy link
Collaborator

This commit adds a new CI builder for LLVM 22, distinct from preexisting
builders using LLVM 20. This notably exposes a bug where setjmp/longjmp
needed a fix because the method of definition of __c_setjmp, the tag
used, changed in LLVM 22.

Note: this is temporarily built on #770 and #771

@alexcrichton alexcrichton requested a review from dicej March 11, 2026 04:31
sbc100 pushed a commit to llvm/llvm-project that referenced this pull request Mar 11, 2026
This is similar to #185770 where it removes an
exception-handling-related symbol from `compiler-rt` in favor of having
definitions elsewhere. The compiler-rt library is linked into all shared
objects, for example, which can result in duplicate definitions of a
symbol where this tag wants to have one unique definition. The intention
behind this commit is to defer the definition of this symbol to
downstream libraries, such as the definition of `longjmp` itself. An
example of this is WebAssembly/wasi-libc#772 where the responsibility of
defining this symbol now lies with wasi-libc.
llvm-sync bot pushed a commit to arm/arm-toolchain that referenced this pull request Mar 11, 2026
This is similar to #185770 where it removes an
exception-handling-related symbol from `compiler-rt` in favor of having
definitions elsewhere. The compiler-rt library is linked into all shared
objects, for example, which can result in duplicate definitions of a
symbol where this tag wants to have one unique definition. The intention
behind this commit is to defer the definition of this symbol to
downstream libraries, such as the definition of `longjmp` itself. An
example of this is WebAssembly/wasi-libc#772 where the responsibility of
defining this symbol now lies with wasi-libc.
This commit adds a new CI builder for LLVM 22, distinct from preexisting
builders using LLVM 20. This notably exposes a bug where setjmp/longjmp
needed a fix because the method of definition of `__c_setjmp`, the tag
used, changed in LLVM 22.
@alexcrichton alexcrichton enabled auto-merge (squash) March 11, 2026 14:42
@alexcrichton alexcrichton merged commit 2fc32bc into WebAssembly:main Mar 11, 2026
62 of 64 checks passed
@alexcrichton alexcrichton deleted the test-more branch March 11, 2026 14:51
shermpay pushed a commit to shermpay/llvm-project that referenced this pull request Mar 12, 2026
This is similar to llvm#185770 where it removes an
exception-handling-related symbol from `compiler-rt` in favor of having
definitions elsewhere. The compiler-rt library is linked into all shared
objects, for example, which can result in duplicate definitions of a
symbol where this tag wants to have one unique definition. The intention
behind this commit is to defer the definition of this symbol to
downstream libraries, such as the definition of `longjmp` itself. An
example of this is WebAssembly/wasi-libc#772 where the responsibility of
defining this symbol now lies with wasi-libc.
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.

2 participants