summaryrefslogtreecommitdiff
path: root/dev-db/postgresql
diff options
context:
space:
mode:
authorMarek Szuba <marecki@gentoo.org>2021-08-13 12:31:04 +0100
committerMarek Szuba <marecki@gentoo.org>2021-08-13 12:34:03 +0100
commit4e6174c72b182b4e10556950cc4be63422df131a (patch)
tree168940fa758eeb5a0270b558486203c565e59286 /dev-db/postgresql
parentf696fdce4f90a84980344a974652b1c0a8597fa3 (diff)
downloadgentoo-4e6174c72b182b4e10556950cc4be63422df131a.tar.gz
gentoo-4e6174c72b182b4e10556950cc4be63422df131a.tar.bz2
gentoo-4e6174c72b182b4e10556950cc4be63422df131a.zip
dev-db/postgresql: enable native spinlock support on riscv
Don't bother with a revbump even though this is a run-time change - 13.4 and 14_beta3 were released yesterday so in the rather unlikely event of someone already running a PostgreSQL server on a Gentoo/RISC-V system, they will receive this change along with the the hopefully-imminent version bump. Signed-off-by: Marek Szuba <marecki@gentoo.org>
Diffstat (limited to 'dev-db/postgresql')
-rw-r--r--dev-db/postgresql/files/postgresql-13.3-riscv-spinlocks.patch26
-rw-r--r--dev-db/postgresql/postgresql-13.3.ebuild4
-rw-r--r--dev-db/postgresql/postgresql-14_beta2.ebuild4
-rw-r--r--dev-db/postgresql/postgresql-9999.ebuild5
4 files changed, 36 insertions, 3 deletions
diff --git a/dev-db/postgresql/files/postgresql-13.3-riscv-spinlocks.patch b/dev-db/postgresql/files/postgresql-13.3-riscv-spinlocks.patch
new file mode 100644
index 000000000000..86d1fae20d87
--- /dev/null
+++ b/dev-db/postgresql/files/postgresql-13.3-riscv-spinlocks.patch
@@ -0,0 +1,26 @@
+--- a/src/include/storage/s_lock.h
++++ b/src/include/storage/s_lock.h
+@@ -315,12 +315,12 @@
+ #endif /* __ia64__ || __ia64 */
+
+ /*
+- * On ARM and ARM64, we use __sync_lock_test_and_set(int *, int) if available.
++ * On ARM, ARM64 and RISC-V, we use __sync_lock_test_and_set(int *, int) if available.
+ *
+ * We use the int-width variant of the builtin because it works on more chips
+ * than other widths.
+ */
+-#if defined(__arm__) || defined(__arm) || defined(__aarch64__) || defined(__aarch64)
++#if defined(__arm__) || defined(__arm) || defined(__aarch64__) || defined(__aarch64) || defined(__riscv)
+ #ifdef HAVE_GCC__SYNC_INT32_TAS
+ #define HAS_TEST_AND_SET
+
+@@ -337,7 +337,7 @@
+ #define S_UNLOCK(lock) __sync_lock_release(lock)
+
+ #endif /* HAVE_GCC__SYNC_INT32_TAS */
+-#endif /* __arm__ || __arm || __aarch64__ || __aarch64 */
++#endif /* __arm__ || __arm || __aarch64__ || __aarch64 || __riscv */
+
+
+ /* S/390 and S/390x Linux (32- and 64-bit zSeries) */
diff --git a/dev-db/postgresql/postgresql-13.3.ebuild b/dev-db/postgresql/postgresql-13.3.ebuild
index 85d7618669ca..4063b6442c59 100644
--- a/dev-db/postgresql/postgresql-13.3.ebuild
+++ b/dev-db/postgresql/postgresql-13.3.ebuild
@@ -91,6 +91,8 @@ 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
@@ -159,7 +161,7 @@ src_configure() {
$(use_with xml libxslt) \
$(use_with zlib) \
$(use_enable nls)"
- if use alpha || use riscv; then
+ if use alpha; then
myconf+=" --disable-spinlocks"
else
# Should be the default but just in case
diff --git a/dev-db/postgresql/postgresql-14_beta2.ebuild b/dev-db/postgresql/postgresql-14_beta2.ebuild
index e6463312ebcb..7cf4067cc08d 100644
--- a/dev-db/postgresql/postgresql-14_beta2.ebuild
+++ b/dev-db/postgresql/postgresql-14_beta2.ebuild
@@ -92,6 +92,8 @@ 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
@@ -161,7 +163,7 @@ src_configure() {
$(use_with xml libxslt) \
$(use_with zlib) \
$(use_enable nls)"
- if use alpha || use riscv; then
+ if use alpha; then
myconf+=" --disable-spinlocks"
else
# Should be the default but just in case
diff --git a/dev-db/postgresql/postgresql-9999.ebuild b/dev-db/postgresql/postgresql-9999.ebuild
index 8bdc4467a149..9b90b0ee77a1 100644
--- a/dev-db/postgresql/postgresql-9999.ebuild
+++ b/dev-db/postgresql/postgresql-9999.ebuild
@@ -110,6 +110,9 @@ pkg_setup() {
}
src_prepare() {
+ # still needed as of 2021-08-13
+ 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
@@ -177,7 +180,7 @@ src_configure() {
$(use_with zlib) \
$(use_with systemd) \
${uuid_config}"
- if use alpha || use riscv; then
+ if use alpha; then
myconf+=" --disable-spinlocks"
else
# Should be the default but just in case