musl: build iconv using just-built pieces

This is a bit unusual for a package,
but not libc's as they should stand alone.
This commit is contained in:
Will Dietz 2018-04-25 08:09:56 -05:00
parent 97698b0d6d
commit 2d54f8f915

View file

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