You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Update libcxx and libcxxabi from LLVM 21.1.8 to 22.1.8 (#27428)
This updates libcxx and libcxxabi from 21.1.8 to LLVM 22.1.8:
https://github.com/llvm/llvm-project/releases/tag/llvmorg-22.1.8
Additional changes:
(More detailed descriptions are in the commit messages)
- Don't copy llvm-libc files in `update_libcxx.py`:
e7af49c,
e81407b
In `update_libcxx.py`, we don't copy llvm-libc files that libcxx depend
on anymore, because we copy those files in `update_llvm_libc.py` too. We
just assume llvm-libc has been updated to the same version before doing
update, and I wrote that in the comments.
- Define `_LIBCPP_ASSERTION_SEMANTIC_DEFAULT` in `__config_site`:
b119c87llvm/llvm-project#167636 forces us to define
`_LIBCPP_ASSERTION_SEMANTIC_DEFAULT`. This defines it to follow the
hardening mode.
- Undefine `_LIBCPP_FILESYSTEM_USE_COPY_FILE_RANGE`:
e9f7296
After llvm/llvm-project#169405,
`_LIBCPP_FILESYSTEM_USE_COPY_FILE_RANGE` was defined, which caused
Emscripten to use `copy_file_range`. This commit adds
`!defined(__EMSCRIPTEN__)` clause at the end to make
`_LIBCPP_FILESYSTEM_USE_COPY_FILE_RANGE` undefined for Emscripten, as
was before this update.
- Make `__cxa_thread_atexit` available for Emscripten:
638d0e1llvm/llvm-project#116261 wrapped
`__cxa_thread_atexit` with `#if defined(__linux__) ||
defined(__Fuchsia__)`, which caused it to be undefined in Emscripten.
This adds `defined(__EMSCRIPTEN__)` to make it available again.
- Increase size expectations of `test_malloc_size*`:
c818aa2
This increase seems to be mainly due to the changes of implementation of
`std::num_get` in `libcxx/include/__locale_dir/num.h` in
llvm/llvm-project#121795. Note that we had a
similar size increase due to changes in `std::num_put` in
llvm/llvm-project#133572 in LLVM 21 update
(#26058).
- Create `module.modulemap` from `module.modulemap.in`:
be1f0a7
libcxx used to have `module.modulemap`, but since LLVM 21, it was
changed to `module.modulemap.in` in
llvm/llvm-project#134699. Rather than we copy
this manually in each update, this makes `update_libcxx.py` create
`module.modulemap` from `module.modulemap.in` automaticaly.
- Copy `default_assertion_handler.in` to `__assertion_handler`:
547432f
Since LLVM 18, llvm/llvm-project#77883 started
to provide a default assertion handler and a way to override it. We have
been using the default handler ever since. Rather than manually copying
it in each release, this automates the copying of the file in
`update_libcxx.py`.
0 commit comments