]> granicus.if.org Git - postgresql/commitdiff
Fix LLVM related headers to compile standalone (to fix cpluspluscheck).
authorAndres Freund <andres@anarazel.de>
Tue, 29 Jan 2019 02:05:52 +0000 (18:05 -0800)
committerAndres Freund <andres@anarazel.de>
Tue, 29 Jan 2019 02:05:52 +0000 (18:05 -0800)
Previously llvmjit.h #error'ed when USE_LLVM was not defined, to
prevent it from being included from code not having #ifdef USE_LLVM
guards - but that's not actually that useful after, during the
development of JIT support, LLVM related code was moved into a
separately compiled .so.  Having that #error means cpluspluscheck
doesn't work when llvm support isn't enabled, which isn't great.

Similarly add USE_LLVM guards to llvmjit_emit.h, and additionally make
sure it compiles standalone.

Per complaint from Tom Lane.

Author: Andres Freund
Discussion: https://postgr.es/m/19808.1548692361@sss.pgh.pa.us
Backpatch: 11, where JIT support was added

src/include/jit/llvmjit.h
src/include/jit/llvmjit_emit.h

index 6af5fe74388343613c94e3a9dc5a42dbe064e1c0..726ec99130b0f30f74c3db6e98f2c35b1e11742a 100644 (file)
 #ifndef LLVMJIT_H
 #define LLVMJIT_H
 
-#ifndef USE_LLVM
-#error "llvmjit.h should only be included by code dealing with llvm"
-#endif
+/*
+ * To avoid breaking cpluspluscheck, allow including the file even when LLVM
+ * is not available.
+ */
+#ifdef USE_LLVM
 
 #include <llvm-c/Types.h>
 
@@ -140,4 +142,5 @@ extern char *LLVMGetHostCPUFeatures(void);
 } /* extern "C" */
 #endif
 
+#endif                                                 /* USE_LLVM */
 #endif                                                 /* LLVMJIT_H */
index 41145fc517a0a88d0eb8e6b8a51b1e2d8e9fce29..9569da6fbf1bf67e1278ac81da889ecbc8e33679 100644 (file)
@@ -9,9 +9,17 @@
 #ifndef LLVMJIT_EMIT_H
 #define LLVMJIT_EMIT_H
 
+/*
+ * To avoid breaking cpluspluscheck, allow including the file even when LLVM
+ * is not available.
+ */
+#ifdef USE_LLVM
 
 #include <llvm-c/Core.h>
 
+#include "fmgr.h"
+#include "jit/llvmjit.h"
+
 
 /*
  * Emit a non-LLVM pointer as an LLVM constant.
@@ -263,4 +271,5 @@ l_funcvalue(LLVMBuilderRef b, LLVMValueRef v_fcinfo, size_t argno)
        return LLVMBuildLoad(b, l_funcvaluep(b, v_fcinfo, argno), "");
 }
 
+#endif                                                 /* USE_LLVM */
 #endif