Track LLVM 18 changes.
authorThomas Munro <tmunro@postgresql.org>
Wed, 24 Jan 2024 21:37:35 +0000 (10:37 +1300)
committerThomas Munro <tmunro@postgresql.org>
Thu, 25 Jan 2024 00:44:54 +0000 (13:44 +1300)
A function was given a newly standard name from C++20 in LLVM 16.  Then
LLVM 18 added a deprecation warning for the old name, and it is about to
ship, so it's time to adjust that.

Back-patch to all supported releases.

Discussion: https://www.postgresql.org/message-id/CA+hUKGLbuVhH6mqS8z+FwAn4=5dHs0bAWmEMZ3B+iYHWKC4-ZA@mail.gmail.com

src/backend/jit/llvm/llvmjit_inline.cpp

index fa3a7ad031cc210fac6ec937a6fb61b415e90e68..c9efc0bc994e43876b7180ca57cce16a0c13bf8a 100644 (file)
@@ -821,7 +821,10 @@ static void
 add_module_to_inline_search_path(InlineSearchPath& searchpath, llvm::StringRef modpath)
 {
    /* only extension in libdir are candidates for inlining for now */
-   if (!modpath.startswith("$libdir/"))
+#if LLVM_VERSION_MAJOR < 16
+#define starts_with startswith
+#endif
+   if (!modpath.starts_with("$libdir/"))
        return;
 
    /* if there's no match, attempt to load */