summary refs log tree commit diff
path: root/pkgs/development/libraries/db/db-4.8.nix
diff options
context:
space:
mode:
authorDaiderd Jordan <daiderd@gmail.com>2016-11-12 17:14:20 +0100
committerDaiderd Jordan <daiderd@gmail.com>2016-11-13 00:04:50 +0100
commit7e933af17344c049cdb13bffeafdb82f0927f3bc (patch)
tree27df7bccc028c868a2742ea2886826eeb6ebef9f /pkgs/development/libraries/db/db-4.8.nix
parentfcfe3c0909c7703bf5cfe6a7c2402e7e1b08b1d6 (diff)
db: fix build with libc++-3.8
Diffstat (limited to 'pkgs/development/libraries/db/db-4.8.nix')
-rw-r--r--pkgs/development/libraries/db/db-4.8.nix20
1 files changed, 19 insertions, 1 deletions
diff --git a/pkgs/development/libraries/db/db-4.8.nix b/pkgs/development/libraries/db/db-4.8.nix
index 40869a865ae5f..f631a032102ed 100644
--- a/pkgs/development/libraries/db/db-4.8.nix
+++ b/pkgs/development/libraries/db/db-4.8.nix
@@ -5,5 +5,23 @@ import ./generic.nix (args // rec {
   extraPatches = [ ./clang-4.8.patch ];
   sha256 = "0ampbl2f0hb1nix195kz1syrqqxpmvnvnfvphambj7xjrl3iljg0";
   branch = "4.8";
-  drvArgs = { hardeningDisable = [ "format" ]; };
+  drvArgs.hardeningDisable = [ "format" ];
+
+  # https://community.oracle.com/thread/3952592
+  # this patch renames some sybols that conflict with libc++-3.8
+  # symbols: atomic_compare_exchange, atomic_init, store
+  drvArgs.prePatch = ''
+    substituteInPlace dbinc/db.in \
+      --replace '#define	store' '#define	store_db'
+
+    substituteInPlace dbinc/atomic.h \
+      --replace atomic_compare_exchange atomic_compare_exchange_db \
+      --replace atomic_init atomic_init_db
+    substituteInPlace mp/*.c \
+      --replace atomic_compare_exchange atomic_compare_exchange_db \
+      --replace atomic_init atomic_init_db
+    substituteInPlace mutex/*.c \
+      --replace atomic_compare_exchange atomic_compare_exchange_db \
+      --replace atomic_init atomic_init_db
+  '';
 })