On 11/04/2024 18:26, Peter Eisentraut wrote:
I have been checking the pg_config.h generated by configure and meson to
see if there is anything materially different.  I found that

HAVE_DECL_LLVMCREATEGDBREGISTRATIONLISTENER and
HAVE_DECL_LLVMCREATEPERFJITEVENTLISTENER

are missing on the meson side.

Something like the below would appear to fix that:

diff --git a/meson.build b/meson.build
index 43fad5323c0..cdfd31377d1 100644
--- a/meson.build
+++ b/meson.build
@@ -2301,6 +2301,14 @@ decl_checks += [
     ['pwritev', 'sys/uio.h'],
   ]

+# Check presence of some optional LLVM functions.
+if llvm.found()
+  decl_checks += [
+    ['LLVMCreateGDBRegistrationListener', 'llvm-c/ExecutionEngine.h'],
+    ['LLVMCreatePerfJITEventListener', 'llvm-c/ExecutionEngine.h'],
+  ]
+endif
+
   foreach c : decl_checks
     func = c.get(0)
     header = c.get(1)

I don't know what these functions do, but the symbols are used in the
source code.  Thoughts?

+1. I also don't know what they do, but clearly the configure and meson checks should be in sync.

There's also this in llvmjit.c:

                if (llvm_opt3_orc)
                {
#if defined(HAVE_DECL_LLVMORCREGISTERPERF) && HAVE_DECL_LLVMORCREGISTERPERF
                        if (jit_profiling_support)
                                LLVMOrcUnregisterPerf(llvm_opt3_orc);
#endif
                        LLVMOrcDisposeInstance(llvm_opt3_orc);
                        llvm_opt3_orc = NULL;
                }

                if (llvm_opt0_orc)
                {
#if defined(HAVE_DECL_LLVMORCREGISTERPERF) && HAVE_DECL_LLVMORCREGISTERPERF
                        if (jit_profiling_support)
                                LLVMOrcUnregisterPerf(llvm_opt0_orc);
#endif
                        LLVMOrcDisposeInstance(llvm_opt0_orc);
                        llvm_opt0_orc = NULL;
                }
        }

The autoconf test that set HAVE_DECL_LLVMORCREGISTERPERF was removed in commit e9a9843e13. I believe that's a leftover that should also have been removed.

--
Heikki Linnakangas
Neon (https://neon.tech)



Reply via email to