summaryrefslogtreecommitdiff
path: root/config/llvm.m4
diff options
context:
space:
mode:
authorTom Lane2018-11-19 17:43:05 +0000
committerTom Lane2018-11-19 17:43:20 +0000
commit640a4ba052c2dd7aaf600ca13b6d3afca60adc05 (patch)
treeeeb37bec4f377a91cefd7c24a83e327c1e7054bb /config/llvm.m4
parent6e5f8d489acccdc50a35a1b7db8e72b5ad579253 (diff)
Postpone LLVM-related uses of AC_CHECK_DECLS.
Calling AC_CHECK_DECLS before we've finished setting up the compiler's CFLAGS seems like a pretty risky proposition, especially now that the first use of that macro will result in a test to see whether the compiler gives warning or error for undeclared built-in functions. That answer could very easily get changed later than where PGAC_LLVM_SUPPORT is called; furthermore, it's hardly unlikely that flags such as -D_GNU_SOURCE could change visibility of declarations. Hence, be a little less cavalier about where to do LLVM-related tests. This results in v11 and HEAD doing the warning-or-error check at the same place in the script as older branches are doing it, which seems like a good thing. Per further thought about commits 0b59b0e8b and 16fbac39f.
Diffstat (limited to 'config/llvm.m4')
-rw-r--r--config/llvm.m431
1 files changed, 21 insertions, 10 deletions
diff --git a/config/llvm.m4 b/config/llvm.m4
index 926d684ed15..c1e4bb1375a 100644
--- a/config/llvm.m4
+++ b/config/llvm.m4
@@ -1,11 +1,11 @@
# config/llvm.m4
# PGAC_LLVM_SUPPORT
-# ---------------
+# -----------------
#
# Look for the LLVM installation, check that it's new enough, set the
# corresponding LLVM_{CFLAGS,CXXFLAGS,BINPATH} and LDFLAGS
-# variables. Also verifies that CLANG is available, to transform C
+# variables. Also verify that CLANG is available, to transform C
# into bitcode.
#
AC_DEFUN([PGAC_LLVM_SUPPORT],
@@ -91,14 +91,6 @@ AC_DEFUN([PGAC_LLVM_SUPPORT],
LLVM_BINPATH=`$LLVM_CONFIG --bindir`
- # Check which functionality is present
- SAVE_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $LLVM_CPPFLAGS"
- AC_CHECK_DECLS([LLVMOrcGetSymbolAddressIn], [], [], [[#include <llvm-c/OrcBindings.h>]])
- AC_CHECK_DECLS([LLVMGetHostCPUName, LLVMGetHostCPUFeatures], [], [], [[#include <llvm-c/TargetMachine.h>]])
- AC_CHECK_DECLS([LLVMCreateGDBRegistrationListener, LLVMCreatePerfJITEventListener], [], [], [[#include <llvm-c/ExecutionEngine.h>]])
- CPPFLAGS="$SAVE_CPPFLAGS"
-
# LLVM_CONFIG, CLANG are already output via AC_ARG_VAR
AC_SUBST(LLVM_LIBS)
AC_SUBST(LLVM_CPPFLAGS)
@@ -107,3 +99,22 @@ AC_DEFUN([PGAC_LLVM_SUPPORT],
AC_SUBST(LLVM_BINPATH)
])# PGAC_LLVM_SUPPORT
+
+
+# PGAC_CHECK_LLVM_FUNCTIONS
+# -------------------------
+#
+# Check presence of some optional LLVM functions.
+# (This shouldn't happen until we're ready to run AC_CHECK_DECLS tests;
+# because PGAC_LLVM_SUPPORT runs very early, it's not an appropriate place.)
+#
+AC_DEFUN([PGAC_CHECK_LLVM_FUNCTIONS],
+[
+ # Check which functionality is present
+ SAVE_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $LLVM_CPPFLAGS"
+ AC_CHECK_DECLS([LLVMOrcGetSymbolAddressIn], [], [], [[#include <llvm-c/OrcBindings.h>]])
+ AC_CHECK_DECLS([LLVMGetHostCPUName, LLVMGetHostCPUFeatures], [], [], [[#include <llvm-c/TargetMachine.h>]])
+ AC_CHECK_DECLS([LLVMCreateGDBRegistrationListener, LLVMCreatePerfJITEventListener], [], [], [[#include <llvm-c/ExecutionEngine.h>]])
+ CPPFLAGS="$SAVE_CPPFLAGS"
+])# PGAC_CHECK_LLVM_FUNCTIONS