From 1d538d51c3bc4bf0587c012d9e9ef58311edfe0d Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Thu, 4 Jan 2018 10:39:29 -0600 Subject: musl: linux headers, bsd compat headers, and ldd --- pkgs/os-specific/linux/musl/default.nix | 35 ++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) (limited to 'pkgs/os-specific/linux/musl') diff --git a/pkgs/os-specific/linux/musl/default.nix b/pkgs/os-specific/linux/musl/default.nix index 9abfcd7adf6..bfc7b717bf7 100644 --- a/pkgs/os-specific/linux/musl/default.nix +++ b/pkgs/os-specific/linux/musl/default.nix @@ -1,5 +1,19 @@ -{ stdenv, fetchurl, fetchpatch }: +{ stdenv, fetchurl, linuxHeaders, useBSDCompatHeaders ? true }: +let + cdefs_h = fetchurl { + url = "http://git.alpinelinux.org/cgit/aports/plain/main/libc-dev/sys-cdefs.h"; + sha256 = "16l3dqnfq0f20rzbkhc38v74nqcsh9n3f343bpczqq8b1rz6vfrh"; + }; + queue_h = fetchurl { + url = "http://git.alpinelinux.org/cgit/aports/plain/main/libc-dev/sys-queue.h"; + sha256 = "12qm82id7zys92a1qh2l1qf2wqgq6jr4qlbjmqyfffz3s3nhfd61"; + }; + tree_h = fetchurl { + url = "http://git.alpinelinux.org/cgit/aports/plain/main/libc-dev/sys-tree.h"; + sha256 = "14igk6k00bnpfw660qhswagyhvr0gfqg4q55dxvaaq7ikfkrir71"; + }; +in stdenv.mkDerivation rec { name = "musl-${version}"; version = "1.1.18"; @@ -30,6 +44,25 @@ stdenv.mkDerivation rec { outputs = [ "out" "dev" ]; dontDisableStatic = true; + dontStrip = true; + + postInstall = + '' + # Not sure why, but link in all but scsi directory as that's what uclibc/glibc do. + # Apparently glibc provides scsi itself? + (cd $dev/include && ln -s $(ls -d ${linuxHeaders}/include/* | grep -v "scsi$") .) + '' + + '' + mkdir -p $out/bin + # Create 'ldd' symlink, builtin + ln -s $out/lib/libc.so $out/bin/ldd + '' + stdenv.lib.optionalString useBSDCompatHeaders '' + install -D ${queue_h} $dev/include/sys/queue.h + install -D ${cdefs_h} $dev/include/sys/cdefs.h + install -D ${tree_h} $dev/include/sys/tree.h + ''; + + passthru.linuxHeaders = linuxHeaders; meta = { description = "An efficient, small, quality libc implementation"; -- cgit 1.4.1