diff options
| author | Mingming Liu <mingmingl@google.com> | 2025-09-10 15:25:31 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-10 15:25:31 -0700 |
| commit | 1417dafa1db9cb1b2b09438aa9f53ea5ab6e36e2 (patch) | |
| tree | 57f4b1f313c8cf74eed8819870f39c36ea263c68 /llvm/cmake/modules/HandleLLVMOptions.cmake | |
| parent | 898b813bc8a6d0276bf0f4769f5f2f64b34e632d (diff) | |
| parent | b8cefcb601ddaa18482555c4ff363c01a270c2fe (diff) | |
Merge branch 'main' into users/mingmingl-llvm/samplefdo-profile-formatusers/mingmingl-llvm/samplefdo-profile-format
Diffstat (limited to 'llvm/cmake/modules/HandleLLVMOptions.cmake')
| -rw-r--r-- | llvm/cmake/modules/HandleLLVMOptions.cmake | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake index d3c6e9f6a168..5ab34bc3b9c7 100644 --- a/llvm/cmake/modules/HandleLLVMOptions.cmake +++ b/llvm/cmake/modules/HandleLLVMOptions.cmake @@ -183,7 +183,15 @@ CHECK_CXX_SOURCE_COMPILES(" int main() { return 0; } " LLVM_USES_LIBSTDCXX) -option(GLIBCXX_USE_CXX11_ABI "Use new libstdc++ CXX11 ABI" ON) +CHECK_CXX_SOURCE_COMPILES(" +#include <string> +#if _GLIBCXX_USE_CXX11_ABI == 0 +#error _GLIBCXX_USE_CXX11_ABI not active +#endif +int main() { return 0; } +" LLVM_DEFAULT_TO_GLIBCXX_USE_CXX11_ABI) + +option(GLIBCXX_USE_CXX11_ABI "Use new libstdc++ CXX11 ABI" ${LLVM_DEFAULT_TO_GLIBCXX_USE_CXX11_ABI}) if (LLVM_USES_LIBSTDCXX) if (GLIBCXX_USE_CXX11_ABI) @@ -193,10 +201,6 @@ if (LLVM_USES_LIBSTDCXX) endif() endif() -if (LLVM_ENABLE_STRICT_FIXED_SIZE_VECTORS) - add_compile_definitions(STRICT_FIXED_SIZE_VECTORS) -endif() - string(TOUPPER "${LLVM_ABI_BREAKING_CHECKS}" uppercase_LLVM_ABI_BREAKING_CHECKS) if( uppercase_LLVM_ABI_BREAKING_CHECKS STREQUAL "WITH_ASSERTS" ) @@ -885,6 +889,14 @@ if (LLVM_ENABLE_WARNINGS AND (LLVM_COMPILER_IS_GCC_COMPATIBLE OR CLANG_CL)) endif() endif() + # Disable -Wdangling-reference, a C++-only warning from GCC 13 that seems + # to produce a large number of false positives. + if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13.1) + append("-Wno-dangling-reference" CMAKE_CXX_FLAGS) + endif() + endif() + # Disable -Wredundant-move and -Wpessimizing-move on GCC>=9. GCC wants to # remove std::move in code like # "A foo(ConvertibleToA a) { return std::move(a); }", @@ -1172,16 +1184,13 @@ if(LLVM_ENABLE_EH AND NOT LLVM_ENABLE_RTTI) message(FATAL_ERROR "Exception handling requires RTTI. You must set LLVM_ENABLE_RTTI to ON") endif() -option(LLVM_ENABLE_IR_PGO "Build LLVM and tools with IR PGO instrumentation (deprecated)" Off) -mark_as_advanced(LLVM_ENABLE_IR_PGO) - set(LLVM_BUILD_INSTRUMENTED OFF CACHE STRING "Build LLVM and tools with PGO instrumentation. May be specified as IR or Frontend") set(LLVM_VP_COUNTERS_PER_SITE "1.5" CACHE STRING "Value profile counters to use per site for IR PGO with Clang") mark_as_advanced(LLVM_BUILD_INSTRUMENTED LLVM_VP_COUNTERS_PER_SITE) string(TOUPPER "${LLVM_BUILD_INSTRUMENTED}" uppercase_LLVM_BUILD_INSTRUMENTED) if (LLVM_BUILD_INSTRUMENTED) - if (LLVM_ENABLE_IR_PGO OR uppercase_LLVM_BUILD_INSTRUMENTED STREQUAL "IR") + if (uppercase_LLVM_BUILD_INSTRUMENTED STREQUAL "IR") append("-fprofile-generate=\"${LLVM_PROFILE_DATA_DIR}\"" CMAKE_CXX_FLAGS CMAKE_C_FLAGS) @@ -1333,7 +1342,7 @@ endif() # linking (due to incompatibility). With MSVC, note that the plugin has to # explicitly link against (exactly one) tool so we can't unilaterally turn on # LLVM_ENABLE_PLUGINS when it's enabled. -if("${CMAKE_SYSTEM_NAME}" MATCHES AIX) +if("${CMAKE_SYSTEM_NAME}" MATCHES "AIX") set(LLVM_EXPORT_SYMBOLS_FOR_PLUGINS_OPTION OFF) else() set(LLVM_EXPORT_SYMBOLS_FOR_PLUGINS_OPTION ON) |
