mirror of
https://github.com/RPCS3/llvm.git
synced 2026-01-31 01:25:19 +01:00
build: add option to disable unwind tables
The unwind tables (`.eh_frame`, `.arm.extab`) add a significant chunk of data to the final binaries. These should not be needed normally, particularly when exceptions are disabled. This enables shrinking `lldb-server` by ~18% (3 MiB) when built with gold. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@359819 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -351,6 +351,8 @@ if(LLVM_ENABLE_BACKTRACES)
|
||||
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)
|
||||
|
||||
@@ -21,6 +21,10 @@ function(llvm_update_compile_flags name)
|
||||
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-")
|
||||
|
||||
@@ -266,6 +266,10 @@ LLVM-specific variables
|
||||
**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".
|
||||
|
||||
|
||||
Reference in New Issue
Block a user