dev-db/postgresql: Support LLVM 21

Signed-off-by: Patrick Lauer <patrick@gentoo.org>
This commit is contained in:
Patrick Lauer
2025-09-15 09:09:15 +00:00
parent 96f62bfe26
commit 6c433f974e
8 changed files with 62 additions and 9 deletions

View File

@@ -0,0 +1,36 @@
From 282d0bdee6192f1a859ee34672ae73abf49794dc Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Mon, 15 Sep 2025 08:13:21 +0200
Subject: [PATCH 1/1] jit: fix build with LLVM-21
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit
LLVM-21 renamed llvm::GlobalValue::getGUID() to
getGUIDAssumingExternalLinkage(), so add a version guard.
Author: Holger Hoffstätte <holger@applied-asynchrony.com>
Discussion: https://www.postgresql.org/message-id/flat/d25e6e4a-d1b4-84d3-2f8a-6c45b975f53d%40applied-asynchrony.com
---
src/backend/jit/llvm/llvmjit_inline.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/backend/jit/llvm/llvmjit_inline.cpp b/src/backend/jit/llvm/llvmjit_inline.cpp
index 2764c3bbe2f..51b32cd9f94 100644
--- a/src/backend/jit/llvm/llvmjit_inline.cpp
+++ b/src/backend/jit/llvm/llvmjit_inline.cpp
@@ -238,7 +238,11 @@ llvm_build_inline_plan(LLVMContextRef lc, llvm::Module *mod)
llvm_split_symbol_name(symbolName.data(), &cmodname, &cfuncname);
+#if LLVM_VERSION_MAJOR >= 21
+ funcGUID = llvm::GlobalValue::getGUIDAssumingExternalLinkage(cfuncname);
+#else
funcGUID = llvm::GlobalValue::getGUID(cfuncname);
+#endif
/* already processed */
if (inlineState.processed)
--
2.39.5

View File

@@ -4,7 +4,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{11..14} )
LLVM_COMPAT=( {15..20} )
LLVM_COMPAT=( {15..21} )
LLVM_OPTIONAL=1
inherit dot-a flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
@@ -83,6 +83,9 @@ RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-postgresql )
"
PATCHES=( "${FILESDIR}"/${PN}-13.3-riscv-spinlocks.patch
"${FILESDIR}"/postgresql-17.6-llvm21.patch )
pkg_setup() {
use llvm && llvm-r1_pkg_setup
@@ -92,8 +95,6 @@ pkg_setup() {
}
src_prepare() {
eapply "${FILESDIR}"/${PN}-13.3-riscv-spinlocks.patch
# Set proper run directory
sed "s|\(PGSOCKET_DIR\s\+\)\"/tmp\"|\1\"${EPREFIX}/run/postgresql\"|" \
-i src/include/pg_config_manual.h || die
@@ -111,6 +112,7 @@ src_prepare() {
die 'PGSQL_PAM_SERVICE rename failed.'
fi
default
eapply_user
}

View File

@@ -4,7 +4,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{11..14} )
LLVM_COMPAT=( {15..20} )
LLVM_COMPAT=( {15..21} )
LLVM_OPTIONAL=1
inherit dot-a flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
@@ -84,6 +84,8 @@ RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-postgresql )
"
PATCHES=( "${FILESDIR}"/postgresql-17.6-llvm21.patch )
pkg_setup() {
use llvm && llvm-r1_pkg_setup
@@ -110,6 +112,7 @@ src_prepare() {
die 'PGSQL_PAM_SERVICE rename failed.'
fi
default
eapply_user
}

View File

@@ -4,7 +4,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{11..14} )
LLVM_COMPAT=( {15..20} )
LLVM_COMPAT=( {15..21} )
LLVM_OPTIONAL=1
inherit dot-a flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
@@ -85,6 +85,8 @@ RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-postgresql )
"
PATCHES=( "${FILESDIR}"/postgresql-17.6-llvm21.patch )
pkg_setup() {
use llvm && llvm-r1_pkg_setup
@@ -111,6 +113,7 @@ src_prepare() {
die 'PGSQL_PAM_SERVICE rename failed.'
fi
default
eapply_user
}

View File

@@ -4,7 +4,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{11..14} )
LLVM_COMPAT=( {15..20} )
LLVM_COMPAT=( {15..21} )
LLVM_OPTIONAL=1
inherit dot-a flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
@@ -86,6 +86,8 @@ RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-postgresql )
"
PATCHES=( "${FILESDIR}"/postgresql-17.6-llvm21.patch )
pkg_setup() {
use llvm && llvm-r1_pkg_setup
@@ -112,6 +114,7 @@ src_prepare() {
die 'PGSQL_PAM_SERVICE rename failed.'
fi
default
eapply_user
}

View File

@@ -4,7 +4,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{11..14} )
LLVM_COMPAT=( {15..20} )
LLVM_COMPAT=( {15..21} )
LLVM_OPTIONAL=1
inherit dot-a flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
@@ -98,6 +98,8 @@ dev-libs/libxml2
dev-libs/libxslt
"
PATCHES=( "${FILESDIR}"/postgresql-17.6-llvm21.patch )
pkg_setup() {
use llvm && llvm-r1_pkg_setup
@@ -124,6 +126,7 @@ src_prepare() {
die 'PGSQL_PAM_SERVICE rename failed.'
fi
default
eapply_user
}

View File

@@ -4,7 +4,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{11..14} )
LLVM_COMPAT=( {15..20} )
LLVM_COMPAT=( {15..21} )
LLVM_OPTIONAL=1
inherit dot-a flag-o-matic linux-info llvm-r1 pam python-single-r1 systemd tmpfiles
@@ -101,6 +101,8 @@ dev-libs/libxml2
dev-libs/libxslt
"
PATCHES=( "${FILESDIR}"/postgresql-17.6-llvm21.patch )
pkg_setup() {
use llvm && llvm-r1_pkg_setup
@@ -127,6 +129,7 @@ src_prepare() {
die 'PGSQL_PAM_SERVICE rename failed.'
fi
default
eapply_user
}

View File

@@ -4,7 +4,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{11..14} )
LLVM_COMPAT=( {15..20} )
LLVM_COMPAT=( {15..21} )
LLVM_OPTIONAL=1
inherit dot-a flag-o-matic linux-info llvm-r1 meson pam python-single-r1 \