about summary refs log tree commit diff
diff options
context:
space:
mode:
authorWill Dietz <w@wdtz.org>2018-04-25 08:09:56 -0500
committerWill Dietz <w@wdtz.org>2018-04-25 08:18:07 -0500
commit2d54f8f915166dbdc93ed9497f622799e930bf9b (patch)
treef2ceedc9f0f7832d7a648a03777e95f15b42191d
parent97698b0d6d644cc6d59495e339f6fbf44ff8ac64 (diff)
downloadnixlib-2d54f8f915166dbdc93ed9497f622799e930bf9b.tar
nixlib-2d54f8f915166dbdc93ed9497f622799e930bf9b.tar.gz
nixlib-2d54f8f915166dbdc93ed9497f622799e930bf9b.tar.bz2
nixlib-2d54f8f915166dbdc93ed9497f622799e930bf9b.tar.lz
nixlib-2d54f8f915166dbdc93ed9497f622799e930bf9b.tar.xz
nixlib-2d54f8f915166dbdc93ed9497f622799e930bf9b.tar.zst
nixlib-2d54f8f915166dbdc93ed9497f622799e930bf9b.zip
musl: build iconv using just-built pieces
This is a bit unusual for a package,
but not libc's as they should stand alone.
-rw-r--r--pkgs/os-specific/linux/musl/default.nix11
1 files changed, 9 insertions, 2 deletions
diff --git a/pkgs/os-specific/linux/musl/default.nix b/pkgs/os-specific/linux/musl/default.nix
index 0912f427430b..cd102cca00f1 100644
--- a/pkgs/os-specific/linux/musl/default.nix
+++ b/pkgs/os-specific/linux/musl/default.nix
@@ -68,6 +68,8 @@ stdenv.mkDerivation rec {
   dontDisableStatic = true;
   separateDebugInfo = true;
 
+  NIX_DONT_SET_RPATH = true;
+
   postInstall = ''
     # Not sure why, but link in all but scsi directory as that's what uclibc/glibc do.
     # Apparently glibc provides scsi itself?
@@ -88,8 +90,13 @@ stdenv.mkDerivation rec {
     substituteInPlace $dev/bin/musl-gcc \
       --replace $out/lib/musl-gcc.specs $dev/lib/musl-gcc.specs
 
-    # provide 'iconv' utility
-    $CC ${iconv_c} -o $out/bin/iconv
+    # provide 'iconv' utility, using just-built headers, libc/ldso
+    $CC ${iconv_c} -o $out/bin/iconv \
+      -I$dev/include \
+      -L$out/lib -Wl,-rpath=$out/lib \
+      -lc \
+      -B $out/lib \
+      -Wl,-dynamic-linker=$(ls $out/lib/ld-*)
   '' + lib.optionalString useBSDCompatHeaders ''
     install -D ${queue_h} $dev/include/sys/queue.h
     install -D ${cdefs_h} $dev/include/sys/cdefs.h