From d2f30b0b11e66f8064132357892340fd814f8338 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Tue, 11 May 2021 15:53:44 +0200 Subject: 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. --- pkgs/development/libraries/tbb/default.nix | 15 +++++++- .../libraries/tbb/glibc-struct-mallinfo.patch | 43 ---------------------- 2 files changed, 13 insertions(+), 45 deletions(-) delete mode 100644 pkgs/development/libraries/tbb/glibc-struct-mallinfo.patch 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 -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 - -+// 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 . -+// -+// 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 - -- cgit 1.4.1