mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-23 13:50:11 +00:00
[libc++][CI] Tests the no RTTI configuration. (#65518)
There are a few drive-by fixes: - Since the combination RTTI disabled and exceptions enabled do not work, this combination is prohibited. - A small NFC in any fixing clang-tidy. The code in the Buildkite configuration is prepared for using the std module. There are more fixes needed for that configuration which will be done in a separate commit.
This commit is contained in:
parent
c209d56e0f
commit
ed210f9f5a
1
.github/workflows/libcxx-build-and-test.yaml
vendored
1
.github/workflows/libcxx-build-and-test.yaml
vendored
@ -160,6 +160,7 @@ jobs:
|
||||
'generic-no-tzdb',
|
||||
'generic-no-unicode',
|
||||
'generic-no-wide-characters',
|
||||
'generic-no-rtti',
|
||||
'generic-static',
|
||||
'generic-with_llvm_unwinder',
|
||||
# TODO Find a better place for the benchmark and bootstrapping builds to live. They're either very expensive
|
||||
|
@ -284,7 +284,9 @@ endif()
|
||||
|
||||
# Feature options -------------------------------------------------------------
|
||||
option(LIBCXX_ENABLE_EXCEPTIONS "Use exceptions." ON)
|
||||
option(LIBCXX_ENABLE_RTTI "Use run time type information." ON)
|
||||
option(LIBCXX_ENABLE_RTTI
|
||||
"Use runtime type information.
|
||||
This option may only be set to OFF when LIBCXX_ENABLE_EXCEPTIONS=OFF." ON)
|
||||
option(LIBCXX_ENABLE_THREADS "Build libc++ with support for threads." ON)
|
||||
option(LIBCXX_ENABLE_MONOTONIC_CLOCK
|
||||
"Build libc++ with support for a monotonic clock.
|
||||
@ -374,6 +376,13 @@ if (LIBCXX_HAS_PTHREAD_API)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (NOT LIBCXX_ENABLE_RTTI AND LIBCXX_ENABLE_EXCEPTIONS)
|
||||
message(FATAL_ERROR "Libc++ cannot be built with exceptions enabled but RTTI"
|
||||
" disabled, since that configuration is broken. See"
|
||||
" https://github.com/llvm/llvm-project/issues/66117"
|
||||
" for details.")
|
||||
endif()
|
||||
|
||||
# Ensure LLVM_USE_SANITIZER is not specified when LIBCXX_GENERATE_COVERAGE
|
||||
# is ON.
|
||||
if (LLVM_USE_SANITIZER AND LIBCXX_GENERATE_COVERAGE)
|
||||
|
4
libcxx/cmake/caches/Generic-no-rtti.cmake
Normal file
4
libcxx/cmake/caches/Generic-no-rtti.cmake
Normal file
@ -0,0 +1,4 @@
|
||||
set(LIBCXX_ENABLE_RTTI OFF CACHE BOOL "")
|
||||
set(LIBCXX_ENABLE_EXCEPTIONS OFF CACHE BOOL "")
|
||||
set(LIBCXXABI_ENABLE_RTTI OFF CACHE BOOL "")
|
||||
set(LIBCXXABI_ENABLE_EXCEPTIONS OFF CACHE BOOL "")
|
@ -369,6 +369,7 @@ libc++ Feature Options
|
||||
**Default**: ``ON``
|
||||
|
||||
Build libc++ with run time type information.
|
||||
This option may only be set to OFF when LIBCXX_ENABLE_EXCEPTIONS=OFF.
|
||||
|
||||
.. option:: LIBCXX_INCLUDE_TESTS:BOOL
|
||||
|
||||
|
@ -472,6 +472,11 @@ generic-no-exceptions)
|
||||
check-runtimes
|
||||
check-abi-list
|
||||
;;
|
||||
generic-no-rtti)
|
||||
clean
|
||||
generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-no-rtti.cmake"
|
||||
check-runtimes
|
||||
;;
|
||||
#
|
||||
# Other miscellaneous jobs
|
||||
#
|
||||
|
Loading…
Reference in New Issue
Block a user