New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Request: Update libc++ to LLVM 13 #15396
Comments
Updated title to focus on libc++, as this is special to that (the emsdk already uses newer LLVM, but not libc++ yet). |
If someone is interested to work on this, Emscripten has a bundled version of libc++ in |
This change should probably also include updates to compiler-rt and libc++-abi as well. There are some scripts that should make the process easier: |
Looking at those python scripts, they just copy files. I suspect, that there need some patches to be applied, or reapplied afterwards, as pointed out in e.g. https://github.com/emscripten-core/emscripten/blob/main/system/lib/libcxx/readme.txt |
Yes, it may make sense to look at the diff before, then apply it afterwards. |
My idea (which I admit is still being thought through, and not documented) is that all the patches for llvm libraries will live in our llvm fork at: https://github.com/emscripten-core/llvm-project I do mention this in the readme for libcxx, libcxxabi, compiler-rt, but I don't talk about how we maintain them there: emscripten/system/lib/compiler-rt/readme.txt Lines 1 to 9 in 0d24418
The idea is that for each major llvm release we maintain a branch in our llvm fork, and we periodically update it by copying the emscipten-files back to the fork. For example, for llvm 12.0.0 I we a branch called emscripten-core/llvm-project@llvmorg-12.0.0...emscripten-core:emscripten-libs-12.0.0 The idea is that when one wants to upgrade to llvm-13 one could rebase all of the llvm-12 changes onto the llvm-13 branch. At this point any conflicts could be resolved and the resulting branch in the llvm repo could then be copied back into the emscripten repo. I'll see if I can take care of documenting/automating/improving this process as part of the llvm-13 upgrade, |
Tried building LLVM.
I created a pull request against main to update it to latest upstream. (If that was ok. Sounded sensible before branching off its tag: llvmorg-13.0.0 ) |
Hopefully updating libc++/libc++abi/compiler-rt in emscripten will not actually require the building of llvm. Is there some reason you need to build it that I'm missing? |
I guess I just had all projects enabled.
|
There should be no need to configure or build llvm to update emscripten's library code. IIUC, all compiling and testing of these library copies is done in the emscripten tree. The llvm tree is just the place where the upstream sources live, and where we hope to one day upstream all out changes (#15097) |
You don't want to at least test compile the code to see if it might has problems? Ah! |
I'm afraid there might be a lot of internal implementation of knowledge required to do this update. The process is (sadly) not well documented. Unless you are keen to learn a lot of how all this fits together it might not be good task to take on as new contributor. The |
I'm afraid you are very much right. |
LLVM 13.0.0 got released on 4 Oct 2021
Would it be possible to update to it?
I would currently be most interested in
"The implementation of the C++20 concepts library has been completed."
Older tickets:
c++ 20 concept support
concepts not supported
The text was updated successfully, but these errors were encountered: