[arch-commits] Commit in mongodb/trunk (2 files)

Evangelos Foutras foutrelis at archlinux.org
Sun Sep 20 05:32:01 UTC 2015


    Date: Sunday, September 20, 2015 @ 07:32:00
  Author: foutrelis
Revision: 141167

upgpkg: mongodb 3.0.6-2

Build with clang to work around a mongod crash while running pymongo's tests.

Added:
  mongodb/trunk/fix-compile-error-in-clang-with-m32-and-64.patch
Modified:
  mongodb/trunk/PKGBUILD

--------------------------------------------------+
 PKGBUILD                                         |   17 ++++++++++++-
 fix-compile-error-in-clang-with-m32-and-64.patch |   26 +++++++++++++++++++++
 2 files changed, 41 insertions(+), 2 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2015-09-20 03:49:18 UTC (rev 141166)
+++ PKGBUILD	2015-09-20 05:32:00 UTC (rev 141167)
@@ -7,13 +7,13 @@
 
 pkgname=mongodb
 pkgver=3.0.6
-pkgrel=1
+pkgrel=2
 pkgdesc='A high-performance, open source, schema-free document-oriented database'
 arch=('i686' 'x86_64')
 url='http://www.mongodb.org'
 license=('AGPL3')
 depends=('pcre' 'snappy' 'openssl' 'libsasl' 'boost-libs') # 'libyaml' 'yaml-cpp' 'v8' 'gperftools')
-makedepends=('scons' 'readline' 'ncurses' 'libpcap' 'boost')
+makedepends=('scons' 'readline' 'ncurses' 'libpcap' 'boost' 'clang')
 checkdepends=('python2-pymongo')
 optdepends=('libpcap: needed for mongosniff'
             'mongodb-tools: mongoimport, mongodump, mongotop, etc')
@@ -20,11 +20,21 @@
 backup=('etc/mongodb.conf')
 install=mongodb.install
 source=("http://downloads.mongodb.org/src/mongodb-src-r${pkgver}.tar.gz"
+        'fix-compile-error-in-clang-with-m32-and-64.patch'
         'mongodb.conf' 'mongodb.service')
 sha512sums=('1990e9011ae586e30aef28be58f9fc6d8b7f45b787dbde9785c82eff6fb0a70ea45152e450c032a898e6464bbb9b1683082f2a072ba874f7532e167330658175'
+            '94e5b61a81eb3d907f34430cec1fb3bccc2ee5730c8dd33d00adb26fc144b672e605516cc2a83c4ca4aad2a9d67643fa42dd8c6fe4f1f07e1336901cc17ea9ec'
             '05dead727d3ea5fe8af1a3c3888693f6b3e2b8cb7f197a5d793352e10d2c524e96c9a5c55ad2e88c1114643a9612ec0b26a2574b48a5260a9b51ec8941461f1c'
             '177251404b2e818ae2b546fe8b13cb76e348c99e85c7bef22a04b0f07b600fd515a309ede50214f4198594388a6d2b31f46e945b9dae84aabb4dfa13b1123bb9')
 
+prepare() {
+  cd mongodb-src-r${pkgver}
+
+  # https://jira.mongodb.org/browse/SERVER-17461
+  # https://github.com/gperftools/gperftools/commit/772a686c4545
+  patch -d src/third_party/gperftools-2.2 -Np1 <../fix-compile-error-in-clang-with-m32-and-64.patch
+}
+
 _scons_args=(
   --use-system-pcre
   --use-system-snappy
@@ -34,10 +44,13 @@
   --ssl
   --c++11=on
   --disable-warnings-as-errors
+  --cc=clang --cxx=clang++
+  LIBS=atomic
 )
 # --use-system-v8 (Doesn't compile)
 # --use-system-yaml (Doesn't compile)
 # --use-system-tcmalloc (Disabled as upstream suggests in https://jira.mongodb.org/browse/SERVER-17447?focusedCommentId=841890&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-841890)
+# LIBS=atomic is a workaround for https://jira.mongodb.org/browse/SERVER-17447
 
 build() {
   export SCONSFLAGS="$MAKEFLAGS"

Added: fix-compile-error-in-clang-with-m32-and-64.patch
===================================================================
--- fix-compile-error-in-clang-with-m32-and-64.patch	                        (rev 0)
+++ fix-compile-error-in-clang-with-m32-and-64.patch	2015-09-20 05:32:00 UTC (rev 141167)
@@ -0,0 +1,26 @@
+From 772a686c45455893708178d3b59b1d3b571015aa Mon Sep 17 00:00:00 2001
+From: Aliaksey Kandratsenka <alk at tut.by>
+Date: Sun, 3 May 2015 13:15:16 -0700
+Subject: [PATCH] issue-683: fix compile error in clang with -m32 and 64-bit
+ off_t
+
+---
+ src/malloc_hook_mmap_linux.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/malloc_hook_mmap_linux.h b/src/malloc_hook_mmap_linux.h
+index 8e5a3b0..0f531db 100755
+--- a/src/malloc_hook_mmap_linux.h
++++ b/src/malloc_hook_mmap_linux.h
+@@ -105,7 +105,7 @@ static inline void* do_mmap64(void *start, size_t length,
+     // Fall back to old 32-bit offset mmap() call
+     // Old syscall interface cannot handle six args, so pass in an array
+     int32 args[6] = { (int32) start, (int32) length, prot, flags, fd,
+-                      (off_t) offset };
++                      (int32)(off_t) offset };
+     result = (void *)syscall(SYS_mmap, args);
+   }
+ #else
+-- 
+2.5.2
+



More information about the arch-commits mailing list