summary refs log tree commit diff
path: root/pkgs/development/libraries/tbb
diff options
context:
space:
mode:
authorWill Dietz <w@wdtz.org>2017-10-22 21:02:39 -0500
committerWill Dietz <w@wdtz.org>2018-02-13 09:44:46 -0600
commit29b012e17715cd5ea4cb3ca297febce9d038180d (patch)
treeddbe07c5c72111bf97a4f503a4bc6f525089fc14 /pkgs/development/libraries/tbb
parentf96d0d114e8d0788d3328f86d055f54a421ba2ed (diff)
downloadnixpkgs-29b012e17715cd5ea4cb3ca297febce9d038180d.tar
nixpkgs-29b012e17715cd5ea4cb3ca297febce9d038180d.tar.gz
nixpkgs-29b012e17715cd5ea4cb3ca297febce9d038180d.tar.bz2
nixpkgs-29b012e17715cd5ea4cb3ca297febce9d038180d.tar.lz
nixpkgs-29b012e17715cd5ea4cb3ca297febce9d038180d.tar.xz
nixpkgs-29b012e17715cd5ea4cb3ca297febce9d038180d.tar.zst
nixpkgs-29b012e17715cd5ea4cb3ca297febce9d038180d.zip
tbb: mallinfo patch to fix build w/musl, fix w/clang
Diffstat (limited to 'pkgs/development/libraries/tbb')
-rw-r--r--pkgs/development/libraries/tbb/default.nix2
-rw-r--r--pkgs/development/libraries/tbb/glibc-struct-mallinfo.patch43
2 files changed, 45 insertions, 0 deletions
diff --git a/pkgs/development/libraries/tbb/default.nix b/pkgs/development/libraries/tbb/default.nix
index 13b1970866e..182fbb35d49 100644
--- a/pkgs/development/libraries/tbb/default.nix
+++ b/pkgs/development/libraries/tbb/default.nix
@@ -16,6 +16,8 @@ with stdenv.lib; stdenv.mkDerivation rec {
     optional (stdver != null) "stdver=${stdver}"
   );
 
+  patches = stdenv.lib.optional stdenv.hostPlatform.isMusl ./glibc-struct-mallinfo.patch;
+
   installPhase = ''
     mkdir -p $out/{lib,share/doc}
     cp "build/"*release*"/"*${stdenv.hostPlatform.extensions.sharedLibrary}* $out/lib/
diff --git a/pkgs/development/libraries/tbb/glibc-struct-mallinfo.patch b/pkgs/development/libraries/tbb/glibc-struct-mallinfo.patch
new file mode 100644
index 00000000000..64056ecb146
--- /dev/null
+++ b/pkgs/development/libraries/tbb/glibc-struct-mallinfo.patch
@@ -0,0 +1,43 @@
+From b577153a10c98f4e13405dc93ea2ab1a7b990e07 Mon Sep 17 00:00:00 2001
+From: David Huffman <storedbox+alpine@outlook.com>
+Date: Wed, 6 Jan 2016 07:09:30 -0500
+Subject: [PATCH] hard-code glibc's definition of struct mallinfo
+
+---
+ src/tbbmalloc/proxy.h | 20 ++++++++++++++++++++
+ 1 file changed, 20 insertions(+)
+
+diff --git a/src/tbbmalloc/proxy.h b/src/tbbmalloc/proxy.h
+index 781cadc..e1ea1ae 100644
+--- a/src/tbbmalloc/proxy.h
++++ b/src/tbbmalloc/proxy.h
+@@ -32,6 +32,26 @@
+ 
+ #include <stddef.h>
+ 
++// The following definition was taken from /usr/include/malloc.h as provided by
++// the glibc-devel-2.19-17.4.x86_64 package on openSUSE Leap 42.1; it is
++// made available under the GNU Lesser General Public License v2.1 or later.
++// See <https://www.gnu.org/licenses>.
++//
++// Copyright (C) 1996-2014 Free Software Foundation, Inc.
++struct mallinfo
++{
++  int arena;    /* non-mmapped space allocated from system */
++  int ordblks;  /* number of free chunks */
++  int smblks;   /* number of fastbin blocks */
++  int hblks;    /* number of mmapped regions */
++  int hblkhd;   /* space in mmapped regions */
++  int usmblks;  /* maximum total allocated space */
++  int fsmblks;  /* space available in freed fastbin blocks */
++  int uordblks; /* total allocated space */
++  int fordblks; /* total free space */
++  int keepcost; /* top-most, releasable (via malloc_trim) space */
++};
++
+ extern "C" {
+     void * scalable_malloc(size_t size);
+     void * scalable_calloc(size_t nobj, size_t size);
+-- 
+2.6.2
+