Skip to content

Update libcxx and libcxxabi to LLVM 18.1.2 #21638

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

Merged
merged 21 commits into from
Apr 3, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
c49d831
Update libcxxabi to LLVM 18.1.2
aheejin Mar 25, 2024
e9a39c1
Update libcxx to LLVM 18.1.2
aheejin Mar 26, 2024
31ac683
Fix unused variable compile error
aheejin Mar 27, 2024
6a0909e
Fix destructor return type in __cxa_init_primary_exception
aheejin Mar 27, 2024
df9af64
Disable C++20 time zone support
aheejin Mar 27, 2024
2bd7c67
Set _LIBCPP_AVAILABILITY_HAS_VERBOSE_ABORT to 0
aheejin Mar 27, 2024
e508f3d
Disable hardening mode
aheejin Mar 27, 2024
8d51927
Add default __assertion_handler to libcxx/include
aheejin Mar 28, 2024
78af7d4
Add comments to https://github.com/emscripten-core/emscripten/commit/…
aheejin Mar 28, 2024
72283aa
Rebaseline other.test_metadce_files_wasmfs
aheejin Mar 28, 2024
e4d4bc7
Disable __libcpp_verbose_abort directly in code
aheejin Mar 28, 2024
39c27d1
Add __cxa_init_primary_exception to library_exception.js
aheejin Mar 28, 2024
047d130
Rebaseline other.test_minimal_runtime_code_size_hello_embind_val
aheejin Mar 29, 2024
f628139
Merge branch 'main' into update_libcxx
aheejin Mar 29, 2024
5eeb965
Rebaseline other.test_minimal_runtime_code_size_hello_embind_val
aheejin Mar 29, 2024
57dbfba
Make __cxa_init_primary_exception return exception ptr
aheejin Mar 30, 2024
3504d7c
Remove stale comment line
aheejin Mar 30, 2024
942b0d4
Merge branch 'main' into update_libcxx
aheejin Apr 1, 2024
5f265c7
Restore deps for __cxa_thorw
aheejin Apr 1, 2024
1fbe318
Merge branch 'main' into update_libcxx
aheejin Apr 1, 2024
a4ec944
Move __cxa_init_primary_exception to native
aheejin Apr 1, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Disable C++20 time zone support
LLVM 18.1.2 adds C++20 time zone support
(https://libcxx.llvm.org/DesignDocs/TimeZone.html) to libcxx, which
requires access IANA Time Zone Database. Currently it seems it only
supports Linux:
https://github.com/llvm/llvm-project/blob/26a1d6601d727a96f4301d0d8647b5a42760ae0c/libcxx/src/tz.cpp#L45-L49

So this excludes the two source files from build (which is done via
`CMakeLists.txt` in the upstream LLVM) and sets
`_LIBCPP_HAS_NO_TIME_ZONE_DATABASE` macro in `__config_site`. In future
maybe we can consider implementing this in JS.
  • Loading branch information
aheejin committed Mar 28, 2024
commit df9af64eb3f36b56133abacb6a0687253bd9563c
1 change: 1 addition & 0 deletions system/lib/libcxx/include/__config_site
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@
#define _LIBCPP_PSTL_CPU_BACKEND_SERIAL
// __libcpp_verbose_abort creases code size too much
#define _LIBCPP_AVAILABILITY_HAS_NO_VERBOSE_ABORT
#define _LIBCPP_HAS_NO_TIME_ZONE_DATABASE
4 changes: 4 additions & 0 deletions tools/system_libs.py
Original file line number Diff line number Diff line change
Expand Up @@ -1617,6 +1617,10 @@ class libcxx(NoExceptLibrary, MTLibrary):
'support.cpp',
'int128_builtins.cpp',
'libdispatch.cpp',
# Emscripten does not have C++20's time zone support which requires access
# to IANA Time Zone Database. TODO Implement this using JS timezone
'tz.cpp',
'tzdb_list.cpp',
]

def get_cflags(self):
Expand Down