[libc-commits] [libc] a33e985 - [libc] Disable rtti/expections

Guillaume Chatelet via libc-commits libc-commits at lists.llvm.org
Tue Feb 8 02:46:35 PST 2022


Author: Guillaume Chatelet
Date: 2022-02-08T10:46:28Z
New Revision: a33e98543a685174c06e462068c3425cd3f6e0f7

URL: https://github.com/llvm/llvm-project/commit/a33e98543a685174c06e462068c3425cd3f6e0f7
DIFF: https://github.com/llvm/llvm-project/commit/a33e98543a685174c06e462068c3425cd3f6e0f7.diff

LOG: [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

Added: 
    

Modified: 
    libc/cmake/modules/LLVMLibCObjectRules.cmake

Removed: 
    


################################################################################
diff  --git a/libc/cmake/modules/LLVMLibCObjectRules.cmake b/libc/cmake/modules/LLVMLibCObjectRules.cmake
index 3ab05e0e87431..0ddf8a19f5896 100644
--- a/libc/cmake/modules/LLVMLibCObjectRules.cmake
+++ b/libc/cmake/modules/LLVMLibCObjectRules.cmake
@@ -5,6 +5,15 @@ function(_get_common_compile_options output_var)
   if(NOT ${LIBC_TARGET_OS} STREQUAL "windows")
     set(compile_options ${compile_options} -fpie -ffreestanding)
   endif()
+  if(LLVM_COMPILER_IS_GCC_COMPATIBLE)
+    list(APPEND compile_options "-fno-exceptions")
+    list(APPEND compile_options "-fno-unwind-tables")
+    list(APPEND compile_options "-fno-asynchronous-unwind-tables")
+    list(APPEND compile_options "-fno-rtti")
+  elseif(MSVC)
+    list(APPEND compile_options "/EHs-c-")
+    list(APPEND compile_options "/GR-")
+  endif()
   set(${output_var} ${compile_options} PARENT_SCOPE)
 endfunction()
 


        


More information about the libc-commits mailing list