From 6a5c0bb6abbfa987ac065789b50240e485b75725 Mon Sep 17 00:00:00 2001 From: Andres Freund Date: Mon, 28 Jan 2019 18:05:52 -0800 Subject: [PATCH] Fix LLVM related headers to compile standalone (to fix cpluspluscheck). 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 | 9 ++++++--- src/include/jit/llvmjit_emit.h | 9 +++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/include/jit/llvmjit.h b/src/include/jit/llvmjit.h index c81cff8a35f..94e6612823b 100644 --- a/src/include/jit/llvmjit.h +++ b/src/include/jit/llvmjit.h @@ -11,9 +11,11 @@ #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 @@ -135,4 +137,5 @@ extern char *LLVMGetHostCPUFeatures(void); } /* extern "C" */ #endif +#endif /* USE_LLVM */ #endif /* LLVMJIT_H */ diff --git a/src/include/jit/llvmjit_emit.h b/src/include/jit/llvmjit_emit.h index 0d1b246f42a..fdc51b1e907 100644 --- a/src/include/jit/llvmjit_emit.h +++ b/src/include/jit/llvmjit_emit.h @@ -9,9 +9,16 @@ #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 +#include "jit/llvmjit.h" + /* * Emit a non-LLVM pointer as an LLVM constant. @@ -208,4 +215,6 @@ l_mcxt_switch(LLVMModuleRef mod, LLVMBuilderRef b, LLVMValueRef nc) return ret; } + +#endif /* USE_LLVM */ #endif