[libc-commits] [libc] [libc][cmake] move _get_{common|hermetic}_test_compile_options to LLVMLibCTestRules.cmake (PR #122549)
Nick Desaulniers via libc-commits
libc-commits at lists.llvm.org
Fri Jan 10 16:08:19 PST 2025
================
@@ -1,3 +1,85 @@
+function(_get_common_test_compile_options output_var c_test flags)
+ _get_compile_options_from_flags(compile_flags ${flags})
+
+ set(compile_options
+ ${LIBC_COMPILE_OPTIONS_DEFAULT}
+ ${LIBC_TEST_COMPILE_OPTIONS_DEFAULT}
+ ${compile_flags})
+
+ if(LLVM_LIBC_COMPILER_IS_GCC_COMPATIBLE)
+ list(APPEND compile_options "-fpie")
+
+ if(LLVM_LIBC_FULL_BUILD)
+ list(APPEND compile_options "-DLIBC_FULL_BUILD")
+ # Only add -ffreestanding flag in full build mode.
+ list(APPEND compile_options "-ffreestanding")
+ list(APPEND compile_options "-fno-exceptions")
+ list(APPEND compile_options "-fno-unwind-tables")
+ list(APPEND compile_options "-fno-asynchronous-unwind-tables")
+ if(NOT c_test)
+ list(APPEND compile_options "-fno-rtti")
+ endif()
+ endif()
+
+ if(LIBC_COMPILER_HAS_FIXED_POINT)
+ list(APPEND compile_options "-ffixed-point")
+ endif()
+
+ # list(APPEND compile_options "-Wall")
+ # list(APPEND compile_options "-Wextra")
+ # -DLIBC_WNO_ERROR=ON if you can't build cleanly with -Werror.
+ if(NOT LIBC_WNO_ERROR)
+ # list(APPEND compile_options "-Werror")
+ endif()
+ # list(APPEND compile_options "-Wconversion")
+ # list(APPEND compile_options "-Wno-sign-conversion")
+ # list(APPEND compile_options "-Wimplicit-fallthrough")
+ # list(APPEND compile_options "-Wwrite-strings")
+ # list(APPEND compile_options "-Wextra-semi")
+ # Silence this warning because _Complex is a part of C99.
+ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+ if(NOT c_test)
+ list(APPEND compile_options "-fext-numeric-literals")
+ endif()
+ else()
+ list(APPEND compile_options "-Wno-c99-extensions")
+ list(APPEND compile_options "-Wno-gnu-imaginary-constant")
+ endif()
+ list(APPEND compile_options "-Wno-pedantic")
+ # if(NOT CMAKE_COMPILER_IS_GNUCXX)
+ # list(APPEND compile_options "-Wnewline-eof")
+ # list(APPEND compile_options "-Wnonportable-system-include-path")
+ # list(APPEND compile_options "-Wstrict-prototypes")
+ # list(APPEND compile_options "-Wthread-safety")
+ # list(APPEND compile_options "-Wglobal-constructors")
+ # endif()
+ endif()
+ set(${output_var} ${compile_options} PARENT_SCOPE)
+endfunction()
+
+function(_get_hermetic_test_compile_options output_var)
+ _get_common_test_compile_options(compile_options "" "")
+
+ list(APPEND compile_options "-fpie")
+ list(APPEND compile_options "-ffreestanding")
+ list(APPEND compile_options "-fno-exceptions")
+ list(APPEND compile_options "-fno-rtti")
----------------
nickdesaulniers wrote:
13b2064632eb
https://github.com/llvm/llvm-project/pull/122549
More information about the libc-commits
mailing list