[EH] Apply Call EH personality fix from LLVM - #27445
Conversation
After llvm/llvm-project#209282, the user code calls a personality function instead of `Unwind_CallPersonality`. It also changed the signature of Wasm personality function. It had both code generation and library changes, but now our waterfall picks up the codegen changes but our libraries are still from the last release. This applies llvm/llvm-project#209282 library side patch here as well. This kind of change is rare enough so I don't think we necessary should follow LLVM tot for libunwind, unless we decide to do that broadly for all LLVM libraries. Also this adds `system/lib/libunwind/include` to libcxx's `includes` directory. Turns out so far we have been including Clang's default `unwind.h` and it was OK but now we need to include the correct file. Fixes emscripten-core#27442.
|
What is wrong with |
That is https://github.com/llvm/llvm-project/blob/main/clang/lib/Headers/unwind.h and it looks it mostly declares the same set of functions and constants. I guess clang provides it as a common set of interface? I don't know. TIL I learned clang has it. The upstream LLVM seems to control this in |
|
By the way the CI here can't succeed because the LLVM roll didn't roll. How do we resolve this? |
Is there some way to make a version of libunwind that can work with both old (before the roll) and new (after the roll) version of llvm? If not then we have to do something sad like temporarily disable some tests while the roll happens I think? |
After llvm/llvm-project#209282, the user code calls a personality function instead of
Unwind_CallPersonality. It also changed the signature of Wasm personality function. It had both code generation and library changes, but now our waterfall picks up the codegen changes but our libraries are still from the last release.This applies llvm/llvm-project#209282 library side patch here as well. This kind of change is rare enough so I don't think we necessary should follow LLVM tot for libunwind, unless we decide to do that broadly for all LLVM libraries.
Also this adds
system/lib/libunwind/includeto libcxx'sincludesdirectory. Turns out so far we have been including Clang's defaultunwind.hand it was OK but now we need to include the correct file.Fixes #27442.