diff options
-rw-r--r-- | config/llvm.m4 | 2 | ||||
-rwxr-xr-x | configure | 11 | ||||
-rw-r--r-- | src/backend/jit/llvm/llvmjit_wrap.cpp | 2 | ||||
-rw-r--r-- | src/include/jit/llvmjit.h | 2 | ||||
-rw-r--r-- | src/include/pg_config.h.in | 4 | ||||
-rw-r--r-- | src/include/pg_config.h.win32 | 4 |
6 files changed, 24 insertions, 1 deletions
diff --git a/config/llvm.m4 b/config/llvm.m4 index 09ff6812280..7d81ac0b997 100644 --- a/config/llvm.m4 +++ b/config/llvm.m4 @@ -95,7 +95,7 @@ AC_DEFUN([PGAC_LLVM_SUPPORT], SAVE_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $LLVM_CPPFLAGS" AC_CHECK_DECLS([LLVMOrcGetSymbolAddressIn], [], [], [[#include <llvm-c/OrcBindings.h>]]) - AC_CHECK_DECLS([LLVMGetHostCPUName], [], [], [[#include <llvm-c/TargetMachine.h>]]) + AC_CHECK_DECLS([LLVMGetHostCPUName, LLVMGetHostCPUFeatures], [], [], [[#include <llvm-c/TargetMachine.h>]]) AC_CHECK_DECLS([LLVMCreateGDBRegistrationListener, LLVMCreatePerfJITEventListener], [], [], [[#include <llvm-c/ExecutionEngine.h>]]) CPPFLAGS="$SAVE_CPPFLAGS" diff --git a/configure b/configure index dd439ddd2f6..2d36f1da307 100755 --- a/configure +++ b/configure @@ -5204,6 +5204,17 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_LLVMGETHOSTCPUNAME $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "LLVMGetHostCPUFeatures" "ac_cv_have_decl_LLVMGetHostCPUFeatures" "#include <llvm-c/TargetMachine.h> +" +if test "x$ac_cv_have_decl_LLVMGetHostCPUFeatures" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_LLVMGETHOSTCPUFEATURES $ac_have_decl +_ACEOF ac_fn_c_check_decl "$LINENO" "LLVMCreateGDBRegistrationListener" "ac_cv_have_decl_LLVMCreateGDBRegistrationListener" "#include <llvm-c/ExecutionEngine.h> " diff --git a/src/backend/jit/llvm/llvmjit_wrap.cpp b/src/backend/jit/llvm/llvmjit_wrap.cpp index 5d1a17cde04..4d0c3f680ff 100644 --- a/src/backend/jit/llvm/llvmjit_wrap.cpp +++ b/src/backend/jit/llvm/llvmjit_wrap.cpp @@ -32,6 +32,7 @@ char *LLVMGetHostCPUName(void) { #endif +#if defined(HAVE_DECL_LLVMGETHOSTCPUFEATURES) && !HAVE_DECL_LLVMGETHOSTCPUFEATURES char *LLVMGetHostCPUFeatures(void) { llvm::SubtargetFeatures Features; llvm::StringMap<bool> HostFeatures; @@ -42,3 +43,4 @@ char *LLVMGetHostCPUFeatures(void) { return strdup(Features.getString().c_str()); } +#endif diff --git a/src/include/jit/llvmjit.h b/src/include/jit/llvmjit.h index b0093db49d7..c81cff8a35f 100644 --- a/src/include/jit/llvmjit.h +++ b/src/include/jit/llvmjit.h @@ -125,9 +125,11 @@ extern LLVMValueRef slot_compile_deform(struct LLVMJitContext *context, TupleDes extern char *LLVMGetHostCPUName(void); #endif +#if defined(HAVE_DECL_LLVMGETHOSTCPUFEATURES) && !HAVE_DECL_LLVMGETHOSTCPUFEATURES /** Get the host CPU features as a string. The result needs to be disposed with LLVMDisposeMessage. */ extern char *LLVMGetHostCPUFeatures(void); +#endif #ifdef __cplusplus } /* extern "C" */ diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in index 827574ee40d..31bef2b7f51 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -142,6 +142,10 @@ `LLVMCreatePerfJITEventListener', and to 0 if you don't. */ #undef HAVE_DECL_LLVMCREATEPERFJITEVENTLISTENER +/* Define to 1 if you have the declaration of `LLVMGetHostCPUFeatures', and to + 0 if you don't. */ +#undef HAVE_DECL_LLVMGETHOSTCPUFEATURES + /* Define to 1 if you have the declaration of `LLVMGetHostCPUName', and to 0 if you don't. */ #undef HAVE_DECL_LLVMGETHOSTCPUNAME diff --git a/src/include/pg_config.h.win32 b/src/include/pg_config.h.win32 index 46ce49def2f..436bc5f0874 100644 --- a/src/include/pg_config.h.win32 +++ b/src/include/pg_config.h.win32 @@ -119,6 +119,10 @@ if you don't. */ #define HAVE_DECL_LLVMGETHOSTCPUNAME 0 +/* Define to 1 if you have the declaration of `LLVMGetHostCPUFeatures', and to 0 + if you don't. */ +#define HAVE_DECL_LLVMGETHOSTCPUFEATURES 0 + /* Define to 1 if you have the declaration of `LLVMOrcGetSymbolAddressIn', and to 0 if you don't. */ #define HAVE_DECL_LLVMORCGETSYMBOLADDRESSIN 0 |