diff options
author | Jan Tojnar <jtojnar@gmail.com> | 2021-05-11 15:53:44 +0200 |
---|---|---|
committer | Jan Tojnar <jtojnar@gmail.com> | 2021-05-11 18:43:00 +0200 |
commit | d2f30b0b11e66f8064132357892340fd814f8338 (patch) | |
tree | 52245f0552bad449cdf0d223183f742fb71a61bb | |
parent | 99396a48a5ade1b6349ecb7cb17e8cc278804545 (diff) | |
download | nixpkgs-d2f30b0b11e66f8064132357892340fd814f8338.tar nixpkgs-d2f30b0b11e66f8064132357892340fd814f8338.tar.gz nixpkgs-d2f30b0b11e66f8064132357892340fd814f8338.tar.bz2 nixpkgs-d2f30b0b11e66f8064132357892340fd814f8338.tar.lz nixpkgs-d2f30b0b11e66f8064132357892340fd814f8338.tar.xz nixpkgs-d2f30b0b11e66f8064132357892340fd814f8338.tar.zst nixpkgs-d2f30b0b11e66f8064132357892340fd814f8338.zip |
pkgsMusl.tbb: fix build
Use patches from openembedded: https://github.com/openembedded/meta-openembedded/tree/39185eb1d1615e919e3ae14ae63b8ed7d3e5d83f/meta-oe/recipes-support/tbb/tbb Also apply the patches unconditionally so that it is obvious when they do not apply any more.
-rw-r--r-- | pkgs/development/libraries/tbb/default.nix | 15 | ||||
-rw-r--r-- | pkgs/development/libraries/tbb/glibc-struct-mallinfo.patch | 43 |
2 files changed, 13 insertions, 45 deletions
diff --git a/pkgs/development/libraries/tbb/default.nix b/pkgs/development/libraries/tbb/default.nix index 93750621275..af22361f7a2 100644 --- a/pkgs/development/libraries/tbb/default.nix +++ b/pkgs/development/libraries/tbb/default.nix @@ -1,5 +1,6 @@ { lib , stdenv +, fetchurl , fetchFromGitHub , fixDarwinDylibNames }: @@ -15,8 +16,18 @@ stdenv.mkDerivation rec { sha256 = "prO2O5hd+Wz5iA0vfrqmyHFr0Ptzk64so5KpSpvuKmU="; }; - patches = lib.optionals stdenv.hostPlatform.isMusl [ - ./glibc-struct-mallinfo.patch + 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="; + }) + + # 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 [ 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 - |