Skip to content

Commit a33e985

Browse files
committed
[libc] Disable rtti/expections
llvm-libc exhibits a C interface but its source is C++. This patch explicitly disables the use of exceptions and RTTI when compiling the entrypoints. Differential Revision: https://reviews.llvm.org/D118889
1 parent 62c4ac7 commit a33e985

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

libc/cmake/modules/LLVMLibCObjectRules.cmake

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,15 @@ function(_get_common_compile_options output_var)
55
if(NOT ${LIBC_TARGET_OS} STREQUAL "windows")
66
set(compile_options ${compile_options} -fpie -ffreestanding)
77
endif()
8+
if(LLVM_COMPILER_IS_GCC_COMPATIBLE)
9+
list(APPEND compile_options "-fno-exceptions")
10+
list(APPEND compile_options "-fno-unwind-tables")
11+
list(APPEND compile_options "-fno-asynchronous-unwind-tables")
12+
list(APPEND compile_options "-fno-rtti")
13+
elseif(MSVC)
14+
list(APPEND compile_options "/EHs-c-")
15+
list(APPEND compile_options "/GR-")
16+
endif()
817
set(${output_var} ${compile_options} PARENT_SCOPE)
918
endfunction()
1019

0 commit comments

Comments
 (0)