mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-27 15:41:46 +00:00
[NFCI] Clean up exceptions related CMake and Lit options in libc++abi and libunwind
First, libc++abi doesn't need to add the no-exceptions Lit feature itself, since that is already done in the config.py for libc++, which it reuses. Specifically, config.enable_exceptions is set based on @LIBCXXABI_ENABLE_EXCEPTIONS@ in libc++abi's lit.cfg.in, and libc++'s config.py handles that correctly. Secondly, libunwind's LIBUNWIND_ENABLE_EXCEPTIONS is never set (it's probably a remnant of copy-pasting code between the runtime libraries), so the library is always built with exceptions disabled (which makes sense since it implements the runtime support for exceptions). Conversely, the test suite is always run with exceptions enabled (not sure why), but that is preserved by the default behavior of libc++'s config.py.
This commit is contained in:
parent
f71a3b54f0
commit
0e04342ae0
@ -38,8 +38,6 @@ class Configuration(LibcxxConfiguration):
|
||||
|
||||
def configure_features(self):
|
||||
super(Configuration, self).configure_features()
|
||||
if not self.get_lit_bool('enable_exceptions', True):
|
||||
self.config.available_features.add('no-exceptions')
|
||||
if not self.has_cpp_feature('noexcept_function_type', 201510):
|
||||
self.config.available_features.add('libcxxabi-no-noexcept-function-type')
|
||||
if not self.get_lit_bool('llvm_unwinder', False):
|
||||
|
@ -15,7 +15,6 @@ pythonize_bool(LIBUNWIND_BUILD_32_BITS)
|
||||
pythonize_bool(LIBCXX_ENABLE_SHARED)
|
||||
pythonize_bool(LIBUNWIND_ENABLE_SHARED)
|
||||
pythonize_bool(LIBUNWIND_ENABLE_THREADS)
|
||||
pythonize_bool(LIBUNWIND_ENABLE_EXCEPTIONS)
|
||||
pythonize_bool(LIBUNWIND_USES_ARM_EHABI)
|
||||
pythonize_bool(LIBUNWIND_USE_COMPILER_RT)
|
||||
pythonize_bool(LIBUNWIND_BUILD_EXTERNAL_THREAD_LIBRARY)
|
||||
|
@ -35,15 +35,11 @@ class Configuration(LibcxxConfiguration):
|
||||
|
||||
def configure_features(self):
|
||||
super(Configuration, self).configure_features()
|
||||
if not self.get_lit_bool('enable_exceptions', True):
|
||||
self.config.available_features.add('no-exceptions')
|
||||
if self.get_lit_bool('arm_ehabi', False):
|
||||
self.config.available_features.add('libunwind-arm-ehabi')
|
||||
|
||||
def configure_compile_flags(self):
|
||||
self.cxx.compile_flags += ['-DLIBUNWIND_NO_TIMER']
|
||||
if not self.get_lit_bool('enable_exceptions', True):
|
||||
self.cxx.compile_flags += ['-fno-exceptions', '-DLIBUNWIND_HAS_NO_EXCEPTIONS']
|
||||
# Stack unwinding tests need unwinding tables and these are not
|
||||
# generated by default on all Targets.
|
||||
self.cxx.compile_flags += ['-funwind-tables']
|
||||
|
@ -23,9 +23,6 @@ config.suffixes = ['.cpp', '.s']
|
||||
# test_source_root: The root path where tests are located.
|
||||
config.test_source_root = os.path.dirname(__file__)
|
||||
|
||||
# needed to test libunwind with code that throws exceptions
|
||||
config.enable_exceptions = True
|
||||
|
||||
# Infer the libcxx_test_source_root for configuration import.
|
||||
# If libcxx_source_root isn't specified in the config, assume that the libcxx
|
||||
# and libunwind source directories are sibling directories.
|
||||
|
@ -18,7 +18,6 @@ config.test_compiler_flags = "@LIBUNWIND_TEST_COMPILER_FLAGS@"
|
||||
config.executor = "@LIBUNWIND_EXECUTOR@"
|
||||
config.libunwind_shared = @LIBUNWIND_ENABLE_SHARED@
|
||||
config.enable_shared = @LIBCXX_ENABLE_SHARED@
|
||||
config.enable_exceptions = @LIBUNWIND_ENABLE_EXCEPTIONS@
|
||||
config.arm_ehabi = @LIBUNWIND_USES_ARM_EHABI@
|
||||
config.host_triple = "@LLVM_HOST_TRIPLE@"
|
||||
config.target_triple = "@TARGET_TRIPLE@"
|
||||
|
Loading…
Reference in New Issue
Block a user