diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:36 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:47 +0000 |
commit | 36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch) | |
tree | b3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/development/libraries/tbb | |
parent | 4e31070265257dc67d120c27e0f75c2344fdfa9a (diff) | |
parent | abf060725d7614bd3b9f96764262dfbc2f9c2199 (diff) | |
download | nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2 nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip |
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/tbb')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/tbb/default.nix | 46 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/tbb/glibc-struct-mallinfo.patch | 43 |
2 files changed, 89 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/tbb/default.nix b/nixpkgs/pkgs/development/libraries/tbb/default.nix new file mode 100644 index 000000000000..a7b7f5243fb0 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/tbb/default.nix @@ -0,0 +1,46 @@ +{ stdenv, fetchFromGitHub, compiler ? if stdenv.cc.isClang then "clang" else null, stdver ? null }: + +with stdenv.lib; stdenv.mkDerivation rec { + name = "tbb-${version}"; + version = "2018_U5"; + + src = fetchFromGitHub { + owner = "01org"; + repo = "tbb"; + rev = version; + sha256 = "080df8h2whnly6n9pslpg07dc9vr0p45gqgy9qijpjvxkjwfkdkp"; + }; + + makeFlags = concatStringsSep " " ( + optional (compiler != null) "compiler=${compiler}" ++ + 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/ + mv include $out/ + rm $out/include/index.html + mv doc/html $out/share/doc/tbb + ''; + + enableParallelBuilding = true; + + meta = { + description = "Intel Thread Building Blocks C++ Library"; + homepage = "http://threadingbuildingblocks.org/"; + license = licenses.asl20; + longDescription = '' + Intel Threading Building Blocks offers a rich and complete approach to + expressing parallelism in a C++ program. It is a library that helps you + take advantage of multi-core processor performance without having to be a + threading expert. Intel TBB is not just a threads-replacement library. It + represents a higher-level, task-based parallelism that abstracts platform + details and threading mechanisms for scalability and performance. + ''; + platforms = with platforms; linux ++ darwin; + maintainers = with maintainers; [ peti thoughtpolice dizfer ]; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/tbb/glibc-struct-mallinfo.patch b/nixpkgs/pkgs/development/libraries/tbb/glibc-struct-mallinfo.patch new file mode 100644 index 000000000000..64056ecb1462 --- /dev/null +++ b/nixpkgs/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 + |