ghc821-binary: use glibc on musl
These prebuilt binaries need to be used with glibc, it doesn't matter what we're using otherwise. This may seem a bit strange but has the huge advantage of not needing to create/host/download musl-specific variants, and instead continue to use the official ones from upstream.
This commit is contained in:
parent
2d1d17032b
commit
4a1d311c49
@ -1,6 +1,6 @@
|
|||||||
{ stdenv
|
{ stdenv
|
||||||
, fetchurl, perl, gcc, llvm_39
|
, fetchurl, perl, gcc, llvm_39
|
||||||
, ncurses5, gmp, libiconv
|
, ncurses5, gmp, glibc, libiconv
|
||||||
}:
|
}:
|
||||||
|
|
||||||
# Prebuilt only does native
|
# Prebuilt only does native
|
||||||
@ -14,6 +14,12 @@ let
|
|||||||
libEnvVar = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin "DY"
|
libEnvVar = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin "DY"
|
||||||
+ "LD_LIBRARY_PATH";
|
+ "LD_LIBRARY_PATH";
|
||||||
|
|
||||||
|
glibcDynLinker = assert stdenv.isLinux;
|
||||||
|
if stdenv.hostPlatform.libc == "glibc" then
|
||||||
|
stdenv.cc.bintools.dynamicLinker
|
||||||
|
else
|
||||||
|
"${stdenv.lib.getLib glibc}/lib/ld-linux*";
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
@ -95,7 +101,7 @@ stdenv.mkDerivation rec {
|
|||||||
find . -type f -perm -0100 -exec patchelf \
|
find . -type f -perm -0100 -exec patchelf \
|
||||||
--replace-needed libncurses${stdenv.lib.optionalString stdenv.is64bit "w"}.so.5 libncurses.so \
|
--replace-needed libncurses${stdenv.lib.optionalString stdenv.is64bit "w"}.so.5 libncurses.so \
|
||||||
--replace-needed libtinfo.so libtinfo.so.5 \
|
--replace-needed libtinfo.so libtinfo.so.5 \
|
||||||
--interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" {} \;
|
--interpreter ${glibcDynLinker} {} \;
|
||||||
|
|
||||||
paxmark m ./ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
|
paxmark m ./ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user