-
Notifications
You must be signed in to change notification settings - Fork 3.3k
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
Update libcxx and libcxxabi to LLVM 19.1.4 #22994
base: main
Are you sure you want to change the base?
Commits on Nov 23, 2024
-
Configuration menu - View commit details
-
Copy full SHA for cdbf682 - Browse repository at this point
Copy the full SHA cdbf682View commit details -
Configuration menu - View commit details
-
Copy full SHA for f619917 - Browse repository at this point
Copy the full SHA f619917View commit details
Commits on Dec 4, 2024
-
This is our emscripten-specific configuration file and was mistakenly deleted when I ran update_libcxx.py.
Configuration menu - View commit details
-
Copy full SHA for b74dda1 - Browse repository at this point
Copy the full SHA b74dda1View commit details -
Re-add + update __assertion_handler from default_assertion_handler.in
This file was added as a part of LLVM 18 update (emscripten-core#21638) in emscripten-core@8d51927 and mistakenly deleted when I ran update_libcxx.py. This file was copied from https://github.com/llvm/llvm-project/blob/aadaa00de76ed0c4987b97450dd638f63a385bed/libcxx/vendor/llvm/default_assertion_handler.in, so this also updates the file with the newest `default_assertion_handler.in`.
Configuration menu - View commit details
-
Copy full SHA for 41f8037 - Browse repository at this point
Copy the full SHA 41f8037View commit details -
Restore deleted Emscripten-specific files
These Emscripten-specific files were mistakenly deleted when I ran update_libcxx.py.
Configuration menu - View commit details
-
Copy full SHA for 6eec95b - Browse repository at this point
Copy the full SHA 6eec95bView commit details -
_LIBCPP_PSTL_CPU_BACKEND_SERIAL -> _LIBCPP_PSTL_BACKEND_SERIAL
This changed in llvm/llvm-project#88968.
Configuration menu - View commit details
-
Copy full SHA for 4b969c3 - Browse repository at this point
Copy the full SHA 4b969c3View commit details -
Build libc++ / libc++abi with C++23
https://github.com/llvm/llvm-project/blob/aadaa00de76ed0c4987b97450dd638f63a385bed/libcxx/src/expected.cpp was added in llvm/llvm-project#87390 and this file assumes C++23 to be compiled. Apparently libc++ sources are always built with C++23 so they don't guard things against it in `src/`: llvm/llvm-project#87390 (comment) This also bumps libc++abi to C++23 because... why not
Configuration menu - View commit details
-
Copy full SHA for 8b0bfdf - Browse repository at this point
Copy the full SHA 8b0bfdfView commit details -
We have excluded files in https://github.com/emscripten-core/emscripten/tree/main/system/lib/libcxx/src/support/win32. This is a new file added in this directory in llvm/llvm-project#83575.
Configuration menu - View commit details
-
Copy full SHA for 5bbcbf0 - Browse repository at this point
Copy the full SHA 5bbcbf0View commit details -
We disabled C++20 time zone support in LLVM 18 update (emscripten-core#21638): emscripten-core@df9af64 The list of source files related to time zone support has changed in llvm/llvm-project#74928, so this commit reflects it.
Configuration menu - View commit details
-
Copy full SHA for a5f2cbe - Browse repository at this point
Copy the full SHA a5f2cbeView commit details -
Remove basic_string<unsigned_char> from embind
Only `char`, `wchar`, `char8`, `char16`, and `char32` are valid specialization for `std::basic_string`: https://en.cppreference.com/w/cpp/string/basic_string But libc++ had a base template for `basic_string` that allows any type to be passed for a long time. It looks there have been several attempts to remove this but they restored it afterwards due to some complaints, in chronological order: llvm/llvm-project@aeecef0 llvm/llvm-project@08a0faf llvm/llvm-project@e30a148 llvm/llvm-project#66153 llvm/llvm-project#72694 The last one, llvm/llvm-project#72694, eventually removed it. So `std::basic_string<unsigned_char>` is not allowed anymore.
Configuration menu - View commit details
-
Copy full SHA for 643050f - Browse repository at this point
Copy the full SHA 643050fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9f291d8 - Browse repository at this point
Copy the full SHA 9f291d8View commit details -
Not sure why but some of them decreasd by ~3%. Increases don't seem to be meaningful; they are usually ~0.3%.
Configuration menu - View commit details
-
Copy full SHA for 1fb1316 - Browse repository at this point
Copy the full SHA 1fb1316View commit details -
Remove basic_string<unsigned_char> from embind
Only `char`, `wchar`, `char8`, `char16`, and `char32` are valid specialization for `std::basic_string`: https://en.cppreference.com/w/cpp/string/basic_string But libc++ had a base template for `basic_string` that allowed any type to be passed for a long time. It looks there have been several attempts to remove this after which they restored it due to complaints, in chronological order: llvm/llvm-project@aeecef0 llvm/llvm-project@08a0faf llvm/llvm-project@e30a148 llvm/llvm-project#66153 llvm/llvm-project#72694 The last one, llvm/llvm-project#72694, eventually removed it. So `std::basic_string<unsigned_char>` is not allowed anymore. This removes all uses of `std::basic_string<unsigned_char>` from embind. This needs to be done to update libc++ to LLVM 19 (emscripten-core#22994). I'm uploading this as a separate PR because this removes a functionality from embind.
Configuration menu - View commit details
-
Copy full SHA for ba8abf7 - Browse repository at this point
Copy the full SHA ba8abf7View commit details -
Configuration menu - View commit details
-
Copy full SHA for b132cff - Browse repository at this point
Copy the full SHA b132cffView commit details -
Configuration menu - View commit details
-
Copy full SHA for d7aa36b - Browse repository at this point
Copy the full SHA d7aa36bView commit details