X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5dd0dada0d453b81d01de62a9b0859c617c73357..fcb0af8b6fab2d05361157b04ce25541790b91eb:/tools/cmake/Flags.cmake diff --git a/tools/cmake/Flags.cmake b/tools/cmake/Flags.cmake index cb7a0c2276..7bf32b9e4a 100644 --- a/tools/cmake/Flags.cmake +++ b/tools/cmake/Flags.cmake @@ -49,8 +49,11 @@ if(enable_compile_warnings) if(CMAKE_Fortran_COMPILER_ID MATCHES "GCC|PGI") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Wall") - endif() - if(CMAKE_Fortran_COMPILER_ID MATCHES "Intel") + elseif(CMAKE_Fortran_COMPILER_ID MATCHES "Flang") + # flang >= 7 has a bug with common and debug flags. Ignore cmake-added -g in this case. + # https://github.com/flang-compiler/flang/issues/671 + set(CMAKE_Fortran_FLAGS "-Wall") + elseif(CMAKE_Fortran_COMPILER_ID MATCHES "Intel") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -warn all") endif() set(CMAKE_JAVA_COMPILE_FLAGS "-Xlint") @@ -95,7 +98,11 @@ if(CMAKE_COMPILER_IS_GNUCC) message(WARNING "Failed to find relative source directory. Using \".\".") set(RELATIVE_SOURCE_DIR ".") endif() - set(optCFLAGS "${optCFLAGS} -fdebug-prefix-map=${CMAKE_SOURCE_DIR}=${RELATIVE_SOURCE_DIR}") + if (CMAKE_C_COMPILER_VERSION VERSION_LESS "8.0") + set(optCFLAGS "${optCFLAGS} -fdebug-prefix-map=${CMAKE_SOURCE_DIR}=${RELATIVE_SOURCE_DIR}") + else() + set(optCFLAGS "${optCFLAGS} -ffile-prefix-map=${CMAKE_SOURCE_DIR}=${RELATIVE_SOURCE_DIR}") + endif() endif() # Configure LTO @@ -221,9 +228,12 @@ if(enable_thread_sanitizer) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=thread -fno-omit-frame-pointer -no-pie") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread -fno-omit-frame-pointer -no-pie") set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -fsanitize=thread -no-pie") - set(HAVE_SANITIZER_THREAD TRUE CACHE INTERNAL "") + try_compile(HAVE_SANITIZER_THREAD ${CMAKE_BINARY_DIR} ${CMAKE_HOME_DIRECTORY}/tools/cmake/test_prog/prog_tsan.cpp) + try_compile(HAVE_SANITIZER_THREAD_FIBER_SUPPORT ${CMAKE_BINARY_DIR} ${CMAKE_HOME_DIRECTORY}/tools/cmake/test_prog/prog_tsan.cpp + COMPILE_DEFINITIONS -DCHECK_FIBER_SUPPORT) else() set(HAVE_SANITIZER_THREAD FALSE CACHE INTERNAL "") + set(HAVE_SANITIZER_THREAD_FIBER_SUPPORT FALSE CACHE INTERNAL "") endif() if(enable_undefined_sanitizer)