summary refs log tree commit diff
path: root/pkgs/os-specific/linux/musl
diff options
context:
space:
mode:
authorWill Dietz <w@wdtz.org>2018-01-04 10:39:29 -0600
committerWill Dietz <w@wdtz.org>2018-02-13 09:44:33 -0600
commit1d538d51c3bc4bf0587c012d9e9ef58311edfe0d (patch)
treefb85a59b746e9e15a26705a4e03759de3c92f7ab /pkgs/os-specific/linux/musl
parentd5916a84cf60398f6b10676a8c26b9c09d85f4d5 (diff)
downloadnixpkgs-1d538d51c3bc4bf0587c012d9e9ef58311edfe0d.tar
nixpkgs-1d538d51c3bc4bf0587c012d9e9ef58311edfe0d.tar.gz
nixpkgs-1d538d51c3bc4bf0587c012d9e9ef58311edfe0d.tar.bz2
nixpkgs-1d538d51c3bc4bf0587c012d9e9ef58311edfe0d.tar.lz
nixpkgs-1d538d51c3bc4bf0587c012d9e9ef58311edfe0d.tar.xz
nixpkgs-1d538d51c3bc4bf0587c012d9e9ef58311edfe0d.tar.zst
nixpkgs-1d538d51c3bc4bf0587c012d9e9ef58311edfe0d.zip
musl: linux headers, bsd compat headers, and ldd
Diffstat (limited to 'pkgs/os-specific/linux/musl')
-rw-r--r--pkgs/os-specific/linux/musl/default.nix35
1 files changed, 34 insertions, 1 deletions
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";