Index: CMakeLists.txt =================================================================== --- CMakeLists.txt +++ CMakeLists.txt @@ -351,6 +351,8 @@ set(ENABLE_BACKTRACES 1) endif() +option(LLVM_ENABLE_UNWIND_TABLES "Emit unwind tables for the libraries" ON) + option(LLVM_ENABLE_CRASH_OVERRIDES "Enable crash overrides." ON) if(LLVM_ENABLE_CRASH_OVERRIDES) set(ENABLE_CRASH_OVERRIDES 1) Index: cmake/modules/AddLLVM.cmake =================================================================== --- cmake/modules/AddLLVM.cmake +++ cmake/modules/AddLLVM.cmake @@ -21,6 +21,10 @@ else() if(LLVM_COMPILER_IS_GCC_COMPATIBLE) list(APPEND LLVM_COMPILE_FLAGS "-fno-exceptions") + if(NOT LLVM_ENABLE_UNWIND_TABLES) + list(APPEND LLVM_COMPILE_FLAGS "-fno-unwind-tables") + list(APPEND LLVM_COMPILE_FLAGS "-fno-asynchronous-unwind-tables") + endif() elseif(MSVC) list(APPEND LLVM_COMPILE_DEFINITIONS _HAS_EXCEPTIONS=0) list(APPEND LLVM_COMPILE_FLAGS "/EHs-c-") Index: docs/CMake.rst =================================================================== --- docs/CMake.rst +++ docs/CMake.rst @@ -266,6 +266,10 @@ **LLVM_ENABLE_THREADS**:BOOL Build with threads support, if available. Defaults to ON. +**LLVM_ENABLE_UNWIND_TABLES**:BOOL + Enable unwind tables in the binary. Disabling unwind tables can reduce the + size of the libraries. Defaults to ON. + **LLVM_CXX_STD**:STRING Build with the specified C++ standard. Defaults to "c++11".