From 1e8f6f4df1c8431773bf46e87b284db2b1541234 Mon Sep 17 00:00:00 2001 From: Owen Anderson Date: Thu, 7 Feb 2013 00:54:05 +0000 Subject: [PATCH] Fix CMake detection of various cmath functions, and XFAIL the test on platforms that are known to be missing them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174564 91177308-0d34-0410-b5e6-96231b3b80d8 --- cmake/config-ix.cmake | 13 +++++++------ include/llvm/Config/config.h.cmake | 18 ++++++++++++++++++ test/Transforms/ConstProp/half.ll | 1 + 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake index f077ecaf579..b83c1c67b24 100755 --- a/cmake/config-ix.cmake +++ b/cmake/config-ix.cmake @@ -7,6 +7,7 @@ include(CheckIncludeFile) include(CheckLibraryExists) include(CheckSymbolExists) include(CheckFunctionExists) +include(CheckCXXSymbolExists) include(CheckCXXSourceCompiles) include(TestBigEndian) @@ -119,12 +120,12 @@ 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 cmath" HAVE_LOG) -check_symbol_exists(log2 "math.h cmath" HAVE_LOG2) -check_symbol_exists(log10 "math.h cmath" HAVE_LOG10) -check_symbol_exists(exp "math.h cmath" HAVE_EXP) -check_symbol_exists(exp2 "math.h cmath" HAVE_EXP2) -check_symbol_exists(exp10 "math.h cmath" HAVE_EXP10) +check_cxx_symbol_exists(log cmath HAVE_LOG) +check_cxx_symbol_exists(log2 cmath HAVE_LOG2) +check_cxx_symbol_exists(log10 cmath HAVE_LOG10) +check_cxx_symbol_exists(exp cmath HAVE_EXP) +check_cxx_symbol_exists(exp2 cmath HAVE_EXP2) +check_cxx_symbol_exists(exp10 cmath HAVE_EXP10) if( HAVE_SETJMP_H ) check_symbol_exists(longjmp setjmp.h HAVE_LONGJMP) check_symbol_exists(setjmp setjmp.h HAVE_SETJMP) diff --git a/include/llvm/Config/config.h.cmake b/include/llvm/Config/config.h.cmake index 94870834313..0a268573978 100644 --- a/include/llvm/Config/config.h.cmake +++ b/include/llvm/Config/config.h.cmake @@ -146,6 +146,24 @@ /* Define to 1 if you have the `floorf' function. */ #cmakedefine HAVE_FLOORF ${HAVE_FLOORF} +/* Define to 1 if you have the `log' function. */ +#cmakedefine HAVE_LOG ${HAVE_LOG} + +/* Define to 1 if you have the `log2' function. */ +#cmakedefine HAVE_LOG2 ${HAVE_LOG2} + +/* Define to 1 if you have the `log10' function. */ +#cmakedefine HAVE_LOG10 ${HAVE_LOG10} + +/* Define to 1 if you have the `exp' function. */ +#cmakedefine HAVE_EXP ${HAVE_LOG} + +/* Define to 1 if you have the `exp2' function. */ +#cmakedefine HAVE_EXP2 ${HAVE_LOG2} + +/* Define to 1 if you have the `exp10' function. */ +#cmakedefine HAVE_EXP10 ${HAVE_LOG10} + /* Define to 1 if you have the `fmodf' function. */ #cmakedefine HAVE_FMODF ${HAVE_FMODF} diff --git a/test/Transforms/ConstProp/half.ll b/test/Transforms/ConstProp/half.ll index 3d246d88726..b9d2aeb7169 100644 --- a/test/Transforms/ConstProp/half.ll +++ b/test/Transforms/ConstProp/half.ll @@ -1,4 +1,5 @@ ; RUN: opt -constprop -S < %s | FileCheck %s +; XFAIL: win32, freebsd ; CHECK: fabs_call define half @fabs_call() { -- 2.34.1