pkgsMusl.tbb: fix build

Use patches from openembedded:

39185eb1d1/meta-oe/recipes-support/tbb/tbb

Also apply the patches unconditionally so that it is obvious when they do not apply any more.
This commit is contained in:
Jan Tojnar 2021-05-11 15:53:44 +02:00
parent 99396a48a5
commit d2f30b0b11
No known key found for this signature in database
GPG key ID: 7FAB2A15F7A607A4
2 changed files with 13 additions and 45 deletions

View file

@ -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 [

View file

@ -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