From 04496dc5743d54134405c604ca863ce913283a0e Mon Sep 17 00:00:00 2001 From: Jakub Kądziołka Date: Wed, 4 Nov 2020 14:36:30 +0100 Subject: gnu: bdb: Fix building with GCC 9. * gnu/packages/dbm.scm (bdb-4.8, bdb-5.3)[source]: Apply patch. * gnu/packages/patches/bdb-5.3-atomics-on-gcc-9.patch: New file. * gnu/local.mk (dist_patch_DATA): Register new file. Signed-off-by: Marius Bakke --- gnu/local.mk | 1 + gnu/packages/dbm.scm | 8 ++++++-- .../patches/bdb-5.3-atomics-on-gcc-9.patch | 22 ++++++++++++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/bdb-5.3-atomics-on-gcc-9.patch diff --git a/gnu/local.mk b/gnu/local.mk index fc4d9a177e..924aa4bd21 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -827,6 +827,7 @@ dist_patch_DATA = \ %D%/packages/patches/bastet-change-source-of-unordered_set.patch \ %D%/packages/patches/bazaar-CVE-2017-14176.patch \ %D%/packages/patches/bc-fix-cross-compilation.patch \ + %D%/packages/patches/bdb-5.3-atomics-on-gcc-9.patch \ %D%/packages/patches/bsd-games-2.17-64bit.patch \ %D%/packages/patches/bsd-games-add-configure-config.patch \ %D%/packages/patches/bsd-games-add-wrapper.patch \ diff --git a/gnu/packages/dbm.scm b/gnu/packages/dbm.scm index 82647c0c28..6610a705a7 100644 --- a/gnu/packages/dbm.scm +++ b/gnu/packages/dbm.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner ;;; Copyright © 2017, 2018 Marius Bakke ;;; Copyright © 2018 Mark H Weaver +;;; Copyright © 2020 Jakub Kądziołka ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,7 +46,8 @@ version ".tar.gz")) (sha256 (base32 - "0ampbl2f0hb1nix195kz1syrqqxpmvnvnfvphambj7xjrl3iljg0")))) + "0ampbl2f0hb1nix195kz1syrqqxpmvnvnfvphambj7xjrl3iljg0")) + (patches (search-patches "bdb-5.3-atomics-on-gcc-9.patch")))) (build-system gnu-build-system) (outputs '("out" ; programs, libraries, headers "doc")) ; 94 MiB of HTML docs @@ -108,7 +110,9 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.") version ".tar.gz")) (sha256 (base32 - "0a1n5hbl7027fbz5lm0vp0zzfp1hmxnz14wx3zl9563h83br5ag0")))))) + "0a1n5hbl7027fbz5lm0vp0zzfp1hmxnz14wx3zl9563h83br5ag0")) + (patch-flags '("-p0")) + (patches (search-patches "bdb-5.3-atomics-on-gcc-9.patch")))))) (define-public bdb-6 (package (inherit bdb-4.8) diff --git a/gnu/packages/patches/bdb-5.3-atomics-on-gcc-9.patch b/gnu/packages/patches/bdb-5.3-atomics-on-gcc-9.patch new file mode 100644 index 0000000000..56d404da15 --- /dev/null +++ b/gnu/packages/patches/bdb-5.3-atomics-on-gcc-9.patch @@ -0,0 +1,22 @@ +Patch borrowed from Arch Linux. Allows compiling bdb 5.3 and earlier with GCC newer than 7. + +--- src/dbinc/atomic.h 2013-03-12 14:07:22.000000000 -0400 ++++ src/dbinc/atomic.h.change 2013-03-12 14:06:35.000000000 -0400 +@@ -144,7 +144,7 @@ + #define atomic_inc(env, p) __atomic_inc(p) + #define atomic_dec(env, p) __atomic_dec(p) + #define atomic_compare_exchange(env, p, o, n) \ +- __atomic_compare_exchange((p), (o), (n)) ++ __atomic_compare_exchange_db((p), (o), (n)) + static inline int __atomic_inc(db_atomic_t *p) + { + int temp; +@@ -176,7 +176,7 @@ + * http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html + * which configure could be changed to use. + */ +-static inline int __atomic_compare_exchange( ++static inline int __atomic_compare_exchange_db( + db_atomic_t *p, atomic_value_t oldval, atomic_value_t newval) + { + atomic_value_t was; -- cgit v1.2.3