diff options
author | Alyssa Ross <hi@alyssa.is> | 2021-08-04 10:43:07 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2021-08-04 10:43:07 +0000 |
commit | 62614cbef7da005c1eda8c9400160f6bcd6546b8 (patch) | |
tree | c2630f69080637987b68acb1ee8676d2681fe304 /pkgs/development/libraries/tbb | |
parent | d9c82ed3044c72cecf01c6ea042489d30914577c (diff) | |
parent | e24069138dfec3ef94f211f1da005bb5395adc11 (diff) | |
download | nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.gz nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.bz2 nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.lz nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.xz nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.tar.zst nixpkgs-62614cbef7da005c1eda8c9400160f6bcd6546b8.zip |
Merge branch 'nixpkgs-update' into master
Diffstat (limited to 'pkgs/development/libraries/tbb')
-rw-r--r-- | pkgs/development/libraries/tbb/default.nix | 69 | ||||
-rw-r--r-- | pkgs/development/libraries/tbb/glibc-struct-mallinfo.patch | 43 |
2 files changed, 56 insertions, 56 deletions
diff --git a/pkgs/development/libraries/tbb/default.nix b/pkgs/development/libraries/tbb/default.nix index 18f9e541acd..7aef5ba7476 100644 --- a/pkgs/development/libraries/tbb/default.nix +++ b/pkgs/development/libraries/tbb/default.nix @@ -1,31 +1,74 @@ -{ stdenv, fetchFromGitHub, compiler ? if stdenv.cc.isClang then "clang" else null, stdver ? null }: +{ lib +, stdenv +, fetchurl +, fetchFromGitHub +, fixDarwinDylibNames +}: -with stdenv.lib; stdenv.mkDerivation rec { +stdenv.mkDerivation rec { pname = "tbb"; - version = "2019_U9"; + version = "2020.3"; src = fetchFromGitHub { - owner = "01org"; - repo = "tbb"; - rev = version; - sha256 = "1a39nflw7b2n51jfp3fdprnkpgzaspzww1dckfvaigflfli9s8rj"; + owner = "oneapi-src"; + repo = "oneTBB"; + rev = "v${version}"; + sha256 = "prO2O5hd+Wz5iA0vfrqmyHFr0Ptzk64so5KpSpvuKmU="; }; - makeFlags = optional (compiler != null) "compiler=${compiler}" - ++ optional (stdver != null) "stdver=${stdver}"; + patches = [ + # Fixes build with Musl. + (fetchurl { + url = "https://github.com/openembedded/meta-openembedded/raw/39185eb1d1615e919e3ae14ae63b8ed7d3e5d83f/meta-oe/recipes-support/tbb/tbb/GLIBC-PREREQ-is-not-defined-on-musl.patch"; + sha256 = "gUfXQ9OZQ82qD6brgauBCsKdjLvyHafMc18B+KxZoYs="; + }) - patches = stdenv.lib.optional stdenv.hostPlatform.isMusl ./glibc-struct-mallinfo.patch; + # Fixes build with Musl. + (fetchurl { + url = "https://github.com/openembedded/meta-openembedded/raw/39185eb1d1615e919e3ae14ae63b8ed7d3e5d83f/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch"; + sha256 = "fhorfqO1hHKZ61uq+yTR7eQ8KYdyLwpM3K7WpwJpV74="; + }) + ]; + + nativeBuildInputs = lib.optionals stdenv.isDarwin [ + fixDarwinDylibNames + ]; + + makeFlags = lib.optionals stdenv.cc.isClang [ + "compiler=clang" + ]; + + enableParallelBuilding = true; installPhase = '' + runHook preInstall + mkdir -p $out/lib cp "build/"*release*"/"*${stdenv.hostPlatform.extensions.sharedLibrary}* $out/lib/ mv include $out/ rm $out/include/index.html + + runHook postInstall ''; - enableParallelBuilding = true; + postInstall = let + pcTemplate = fetchurl { + url = "https://github.com/oneapi-src/oneTBB/raw/master/integration/pkg-config/tbb.pc.in"; + sha256 = "2pCad9txSpNbzac0vp/VY3x7HNySaYkbH3Rx8LK53pI="; + }; + in '' + # Generate pkg-config file based on upstream template. + # It should not be necessary with tbb after 2021.2. + mkdir -p "$out/lib/pkgconfig" + substitute "${pcTemplate}" "$out/lib/pkgconfig/tbb.pc" \ + --subst-var-by CMAKE_INSTALL_PREFIX "$out" \ + --subst-var-by CMAKE_INSTALL_LIBDIR "lib" \ + --subst-var-by CMAKE_INSTALL_INCLUDEDIR "include" \ + --subst-var-by TBB_VERSION "${version}" \ + --subst-var-by TBB_LIB_NAME "tbb" + ''; - meta = { + meta = with lib; { description = "Intel Thread Building Blocks C++ Library"; homepage = "http://threadingbuildingblocks.org/"; license = licenses.asl20; @@ -37,7 +80,7 @@ with stdenv.lib; stdenv.mkDerivation rec { represents a higher-level, task-based parallelism that abstracts platform details and threading mechanisms for scalability and performance. ''; - platforms = with platforms; linux ++ darwin; + platforms = platforms.unix; maintainers = with maintainers; [ thoughtpolice dizfer ]; }; } diff --git a/pkgs/development/libraries/tbb/glibc-struct-mallinfo.patch b/pkgs/development/libraries/tbb/glibc-struct-mallinfo.patch deleted file mode 100644 index 64056ecb146..00000000000 --- a/pkgs/development/libraries/tbb/glibc-struct-mallinfo.patch +++ /dev/null @@ -1,43 +0,0 @@ -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 - |