diff options
Diffstat (limited to 'openmp/runtime/test')
| -rw-r--r-- | openmp/runtime/test/CMakeLists.txt | 13 | ||||
| -rw-r--r-- | openmp/runtime/test/lit.cfg | 2 | ||||
| -rw-r--r-- | openmp/runtime/test/lit.site.cfg.in | 2 |
3 files changed, 16 insertions, 1 deletions
diff --git a/openmp/runtime/test/CMakeLists.txt b/openmp/runtime/test/CMakeLists.txt index 8162855163d..88c02c873f4 100644 --- a/openmp/runtime/test/CMakeLists.txt +++ b/openmp/runtime/test/CMakeLists.txt @@ -1,6 +1,7 @@ # CMakeLists.txt file for unit testing OpenMP Library include(FindPythonInterp) include(CheckTypeSize) +include(CheckFunctionExists) include(CheckLibraryExists) if(NOT PYTHONINTERP_FOUND) @@ -11,6 +12,17 @@ endif() # Some tests use math functions check_library_exists(m sqrt "" LIBOMP_HAVE_LIBM) +# When using libgcc, -latomic may be needed for atomics +# (but when using compiler-rt, the atomics will be built-in) +# Note: we can not check for __atomic_load because clang treats it +# as special built-in and that breaks CMake checks +check_function_exists(__atomic_load_1 LIBOMP_HAVE_BUILTIN_ATOMIC) +if(NOT LIBOMP_HAVE_BUILTIN_ATOMIC) + check_library_exists(atomic __atomic_load_1 "" LIBOMP_HAVE_LIBATOMIC) +else() + # not needed + set(LIBOMP_HAVE_LIBATOMIC 0) +endif() macro(pythonize_bool var) if (${var}) @@ -25,6 +37,7 @@ pythonize_bool(LIBOMP_OMPT_SUPPORT) pythonize_bool(LIBOMP_OMPT_BLAME) pythonize_bool(LIBOMP_OMPT_TRACE) pythonize_bool(LIBOMP_HAVE_LIBM) +pythonize_bool(LIBOMP_HAVE_LIBATOMIC) set(LIBOMP_TEST_CFLAGS "" CACHE STRING "Extra compiler flags to send to the test compiler") diff --git a/openmp/runtime/test/lit.cfg b/openmp/runtime/test/lit.cfg index 7f18da4b1b7..bef61d444da 100644 --- a/openmp/runtime/test/lit.cfg +++ b/openmp/runtime/test/lit.cfg @@ -52,6 +52,8 @@ config.test_cflags = config.test_openmp_flag + \ libs = "" if config.has_libm: libs += " -lm" +if config.has_libatomic: + libs += " -latomic" # Allow XFAIL to work config.target_triple = [ ] diff --git a/openmp/runtime/test/lit.site.cfg.in b/openmp/runtime/test/lit.site.cfg.in index 448132eb513..b0d57ce2a7e 100644 --- a/openmp/runtime/test/lit.site.cfg.in +++ b/openmp/runtime/test/lit.site.cfg.in @@ -12,7 +12,7 @@ config.hwloc_library_dir = "@LIBOMP_HWLOC_LIBRARY_DIR@" config.using_hwloc = @LIBOMP_USE_HWLOC@ config.has_ompt = @LIBOMP_OMPT_SUPPORT@ and @LIBOMP_OMPT_BLAME@ and @LIBOMP_OMPT_TRACE@ config.has_libm = @LIBOMP_HAVE_LIBM@ +config.has_libatomic = @LIBOMP_HAVE_LIBATOMIC@ # Let the main config do the real work. lit_config.load_config(config, "@LIBOMP_BASE_DIR@/test/lit.cfg") - |

