LLVMJIT: LLVMGetHostCPUFeatures now is upstream, use LLMV version if available.

Noticed thanks to buildfarm animal seawasp.

Author: Andres Freund
Backpatch: v11-, where LLVM based JIT compliation was introduced.
This commit is contained in:
Andres Freund 2018-08-24 10:20:55 -07:00
parent b0c5da615e
commit cb92520563
6 changed files with 24 additions and 1 deletions

View File

@ -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"

11
configure vendored
View File

@ -5203,6 +5203,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>

View File

@ -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

View File

@ -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" */

View File

@ -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

View File

@ -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