Taints upcoming store and adds bogus conditional branches else where. Now as a separa...
[oota-llvm.git] / cmake / config-ix.cmake
index 337a5a7da8f73535f95a019125b398e5bdade427..f699211bd5b4cdd1fd5069b0830d3b697c5bec4a 100755 (executable)
@@ -67,7 +67,6 @@ check_include_file(sys/resource.h HAVE_SYS_RESOURCE_H)
 check_include_file(sys/stat.h HAVE_SYS_STAT_H)
 check_include_file(sys/time.h HAVE_SYS_TIME_H)
 check_include_file(sys/uio.h HAVE_SYS_UIO_H)
-check_include_file(sys/wait.h HAVE_SYS_WAIT_H)
 check_include_file(termios.h HAVE_TERMIOS_H)
 check_include_file(unistd.h HAVE_UNISTD_H)
 check_include_file(utime.h HAVE_UTIME_H)
@@ -106,6 +105,12 @@ if( NOT PURE_WINDOWS )
   endif()
   check_library_exists(dl dlopen "" HAVE_LIBDL)
   check_library_exists(rt clock_gettime "" HAVE_LIBRT)
+endif()
+
+# Don't look for these libraries on Windows. Also don't look for them if we're
+# using MSan, since uninstrmented third party code may call MSan interceptors
+# like strlen, leading to false positives.
+if( NOT PURE_WINDOWS AND NOT LLVM_USE_SANITIZER MATCHES "Memory.*")
   if (LLVM_ENABLE_ZLIB)
     check_library_exists(z compress2 "" HAVE_LIBZ)
   else()
@@ -137,20 +142,6 @@ check_symbol_exists(getpagesize unistd.h HAVE_GETPAGESIZE)
 check_symbol_exists(getrusage sys/resource.h HAVE_GETRUSAGE)
 check_symbol_exists(setrlimit sys/resource.h HAVE_SETRLIMIT)
 check_symbol_exists(isatty unistd.h HAVE_ISATTY)
-check_symbol_exists(isinf cmath HAVE_ISINF_IN_CMATH)
-check_symbol_exists(isinf math.h HAVE_ISINF_IN_MATH_H)
-check_symbol_exists(finite ieeefp.h HAVE_FINITE_IN_IEEEFP_H)
-check_symbol_exists(isnan cmath HAVE_ISNAN_IN_CMATH)
-check_symbol_exists(isnan math.h HAVE_ISNAN_IN_MATH_H)
-check_symbol_exists(ceilf math.h HAVE_CEILF)
-check_symbol_exists(floorf math.h HAVE_FLOORF)
-check_symbol_exists(fmodf math.h HAVE_FMODF)
-check_symbol_exists(log math.h HAVE_LOG)
-check_symbol_exists(log2 math.h HAVE_LOG2)
-check_symbol_exists(log10 math.h HAVE_LOG10)
-check_symbol_exists(exp math.h HAVE_EXP)
-check_symbol_exists(exp2 math.h HAVE_EXP2)
-check_symbol_exists(exp10 math.h HAVE_EXP10)
 check_symbol_exists(futimens sys/stat.h HAVE_FUTIMENS)
 check_symbol_exists(futimes sys/time.h HAVE_FUTIMES)
 if( HAVE_SETJMP_H )
@@ -162,7 +153,6 @@ endif()
 if( HAVE_SYS_UIO_H )
   check_symbol_exists(writev sys/uio.h HAVE_WRITEV)
 endif()
-check_symbol_exists(nearbyintf math.h HAVE_NEARBYINTF)
 check_symbol_exists(mallctl malloc_np.h HAVE_MALLCTL)
 check_symbol_exists(mallinfo malloc.h HAVE_MALLINFO)
 check_symbol_exists(malloc_zone_statistics malloc/malloc.h
@@ -309,6 +299,10 @@ if( LLVM_ENABLE_PIC )
   set(ENABLE_PIC 1)
 else()
   set(ENABLE_PIC 0)
+  check_cxx_compiler_flag("-fno-pie" SUPPORTS_NO_PIE_FLAG)
+  if(SUPPORTS_NO_PIE_FLAG)
+    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fno-pie")
+  endif()
 endif()
 
 check_cxx_compiler_flag("-Wno-variadic-macros" SUPPORTS_NO_VARIADIC_MACROS_FLAG)
@@ -373,6 +367,10 @@ elseif (LLVM_NATIVE_ARCH MATCHES "hexagon")
   set(LLVM_NATIVE_ARCH Hexagon)
 elseif (LLVM_NATIVE_ARCH MATCHES "s390x")
   set(LLVM_NATIVE_ARCH SystemZ)
+elseif (LLVM_NATIVE_ARCH MATCHES "wasm32")
+  set(LLVM_NATIVE_ARCH WebAssembly)
+elseif (LLVM_NATIVE_ARCH MATCHES "wasm64")
+  set(LLVM_NATIVE_ARCH WebAssembly)
 else ()
   message(FATAL_ERROR "Unknown architecture ${LLVM_NATIVE_ARCH}")
 endif ()
@@ -408,12 +406,10 @@ else ()
 endif ()
 
 if( MINGW )
-  set(HAVE_LIBIMAGEHLP 1)
   set(HAVE_LIBPSAPI 1)
   set(HAVE_LIBSHELL32 1)
   # TODO: Check existence of libraries.
   #   include(CheckLibraryExists)
-  #   CHECK_LIBRARY_EXISTS(imagehlp ??? . HAVE_LIBIMAGEHLP)
 endif( MINGW )
 
 if (NOT HAVE_STRTOLL)
@@ -446,10 +442,10 @@ if( MSVC )
   else()
     set(HAVE_DIA_SDK 0)
   endif()
+else()
+  set(HAVE_DIA_SDK 0)
 endif( MSVC )
 
-message("CMake set HAVE_DIA_SDK to ${HAVE_DIA_SDK}")
-
 if( PURE_WINDOWS )
   CHECK_CXX_SOURCE_COMPILES("
     #include <windows.h>
@@ -504,7 +500,7 @@ if (LLVM_ENABLE_DOXYGEN)
 
     option(LLVM_DOXYGEN_EXTERNAL_SEARCH "Enable doxygen external search." OFF)
     if (LLVM_DOXYGEN_EXTERNAL_SEARCH)
-      set(LLVM_DOXYGEN_SEARCHENGINE_URL "" CACHE STRING "URL to use for external searhc.")
+      set(LLVM_DOXYGEN_SEARCHENGINE_URL "" CACHE STRING "URL to use for external search.")
       set(LLVM_DOXYGEN_SEARCH_MAPPINGS "" CACHE STRING "Doxygen Search Mappings")
     endif()
   endif()
@@ -541,10 +537,12 @@ else()
   endif()
 endif()
 
-find_program(GOLD_EXECUTABLE NAMES ld.gold ld DOC "The gold linker")
-if(GOLD_EXECUTABLE)
-       set(LLVM_BINUTILS_INCDIR "" CACHE PATH
-               "PATH to binutils/include containing plugin-api.h for gold plugin.")
+find_program(GOLD_EXECUTABLE NAMES ${LLVM_DEFAULT_TARGET_TRIPLE}-ld.gold ld.gold ${LLVM_DEFAULT_TARGET_TRIPLE}-ld ld DOC "The gold linker")
+set(LLVM_BINUTILS_INCDIR "" CACHE PATH
+       "PATH to binutils/include containing plugin-api.h for gold plugin.")
+
+if(APPLE)
+  find_program(LD64_EXECUTABLE NAMES ld DOC "The ld64 linker")
 endif()
 
 include(FindOCaml)
@@ -559,13 +557,13 @@ else()
     if( OCAML_VERSION VERSION_LESS "4.00.0" )
       message(STATUS "OCaml bindings disabled, need OCaml >=4.00.0.")
     else()
-      find_ocamlfind_package(ctypes VERSION 0.3 OPTIONAL)
+      find_ocamlfind_package(ctypes VERSION 0.4 OPTIONAL)
       if( HAVE_OCAML_CTYPES )
         message(STATUS "OCaml bindings enabled.")
         find_ocamlfind_package(oUnit VERSION 2 OPTIONAL)
         set(LLVM_BINDINGS "${LLVM_BINDINGS} ocaml")
       else()
-        message(STATUS "OCaml bindings disabled, need ctypes >=0.3.")
+        message(STATUS "OCaml bindings disabled, need ctypes >=0.4.")
       endif()
     endif()
   endif()