diff options
Diffstat (limited to 'llvm/cmake')
| -rw-r--r-- | llvm/cmake/modules/AddLLVM.cmake | 17 | ||||
| -rw-r--r-- | llvm/cmake/modules/GetHostTriple.cmake | 2 | ||||
| -rw-r--r-- | llvm/cmake/modules/HandleLLVMOptions.cmake | 29 | ||||
| -rw-r--r-- | llvm/cmake/modules/LLVMExternalProjectUtils.cmake | 2 |
4 files changed, 37 insertions, 13 deletions
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake index 835750e2d2a1..c98e78da97b3 100644 --- a/llvm/cmake/modules/AddLLVM.cmake +++ b/llvm/cmake/modules/AddLLVM.cmake @@ -2192,7 +2192,12 @@ endfunction() function(add_lit_testsuites project directory) if (NOT LLVM_ENABLE_IDE) - cmake_parse_arguments(ARG "EXCLUDE_FROM_CHECK_ALL" "FOLDER;BINARY_DIR" "PARAMS;DEPENDS;ARGS" ${ARGN}) + cmake_parse_arguments(ARG + "EXCLUDE_FROM_CHECK_ALL" + "FOLDER;BINARY_DIR" + "PARAMS;DEPENDS;ARGS;SKIP" + ${ARGN} + ) if (NOT ARG_FOLDER) get_subproject_title(subproject_title) @@ -2214,6 +2219,16 @@ function(add_lit_testsuites project directory) # Create a check- target for the directory. string(REPLACE "${directory}/" "" name_slash ${lit_suite}) + set(_should_skip FALSE) + foreach(skip IN LISTS ARG_SKIP) + if(name_slash MATCHES "${skip}") + set(_should_skip TRUE) + break() + endif() + endforeach() + if (_should_skip) + continue() + endif() if (name_slash) set(filter ${name_slash}) string(REPLACE "/" "-" name_slash ${name_slash}) diff --git a/llvm/cmake/modules/GetHostTriple.cmake b/llvm/cmake/modules/GetHostTriple.cmake index 2a2f84ada098..cbecd85df5e4 100644 --- a/llvm/cmake/modules/GetHostTriple.cmake +++ b/llvm/cmake/modules/GetHostTriple.cmake @@ -34,7 +34,7 @@ function( get_host_triple var ) endif() elseif( CMAKE_SYSTEM_NAME MATCHES "OS390" ) set( value "s390x-ibm-zos" ) - elseif( CMAKE_SYSTEM_NAME STREQUAL AIX ) + elseif( CMAKE_SYSTEM_NAME STREQUAL "AIX" ) # We defer to dynamic detection of the host AIX version. if( CMAKE_SIZEOF_VOID_P EQUAL 8 ) set( value "powerpc64-ibm-aix" ) 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) diff --git a/llvm/cmake/modules/LLVMExternalProjectUtils.cmake b/llvm/cmake/modules/LLVMExternalProjectUtils.cmake index caccb62d666c..975798a8c263 100644 --- a/llvm/cmake/modules/LLVMExternalProjectUtils.cmake +++ b/llvm/cmake/modules/LLVMExternalProjectUtils.cmake @@ -99,7 +99,7 @@ function(llvm_ExternalProject_Add name source_dir) list(APPEND ARG_TOOLCHAIN_TOOLS flang) endif () # AIX 64-bit XCOFF and big AR format is not yet supported in some of these tools. - if(NOT _cmake_system_name STREQUAL AIX) + if(NOT _cmake_system_name STREQUAL "AIX") list(APPEND ARG_TOOLCHAIN_TOOLS lld llvm-ar llvm-ranlib llvm-nm llvm-objdump) if(_cmake_system_name STREQUAL Darwin) list(APPEND ARG_TOOLCHAIN_TOOLS llvm-libtool-darwin llvm-lipo) |
