From 894f313e3c654e62eb6d23fe0eb81760f10127ff Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Tue, 10 Jul 2018 11:50:44 -0500 Subject: ghc{843,861}: clone linux-gnu targets so musl variants are available Fixes build with "muslpi" (armv6l-unknown-linux-musleabihf). This was done via patch at first but it wouldn't apply to both at once, and it's probably best to stick to just having musl clones for now (instead of patching 8.6.1 targets into 8.4.3 and hoping that's okay). --- pkgs/development/compilers/ghc/8.4.3.nix | 8 ++++++++ pkgs/development/compilers/ghc/8.6.1.nix | 8 ++++++++ 2 files changed, 16 insertions(+) (limited to 'pkgs/development/compilers') diff --git a/pkgs/development/compilers/ghc/8.4.3.nix b/pkgs/development/compilers/ghc/8.4.3.nix index 0f5a43d57eda..853926a430a8 100644 --- a/pkgs/development/compilers/ghc/8.4.3.nix +++ b/pkgs/development/compilers/ghc/8.4.3.nix @@ -124,6 +124,14 @@ stdenv.mkDerivation (rec { export NIX_LDFLAGS+=" -no_dtrace_dof" '' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt '' sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets + '' + stdenv.lib.optionalString targetPlatform.isMusl '' + echo "patching llvm-targets for musl targets...." + echo "Cloning these existing '*-linux-gnu*' targets:" + grep linux-gnu llvm-targets | sed 's/^/ /' + echo "go go gadget sed" + sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets + echo "llvm-targets now contains these '*-linux-musl*' targets:" + grep linux-musl llvm-targets | sed 's/^/ /' ''; # TODO(@Ericson2314): Always pass "--target" and always prefix. diff --git a/pkgs/development/compilers/ghc/8.6.1.nix b/pkgs/development/compilers/ghc/8.6.1.nix index 89dcec348433..1fd53f2544a1 100644 --- a/pkgs/development/compilers/ghc/8.6.1.nix +++ b/pkgs/development/compilers/ghc/8.6.1.nix @@ -116,6 +116,14 @@ stdenv.mkDerivation (rec { export NIX_LDFLAGS+=" -no_dtrace_dof" '' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt '' sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets + '' + stdenv.lib.optionalString targetPlatform.isMusl '' + echo "patching llvm-targets for musl targets...." + echo "Cloning these existing '*-linux-gnu*' targets:" + grep linux-gnu llvm-targets | sed 's/^/ /' + echo "go go gadget sed" + sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets + echo "llvm-targets now contains these '*-linux-musl*' targets:" + grep linux-musl llvm-targets | sed 's/^/ /' ''; # TODO(@Ericson2314): Always pass "--target" and always prefix. -- cgit 1.4.1 From 773ae700b75174bb11146e5f588a22c4c54b73af Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Tue, 10 Jul 2018 13:05:28 -0500 Subject: ghc{843,861}: keep '-musleabi' in targets like w/'-gnueabi' --- pkgs/development/compilers/ghc/8.4.3.nix | 12 ++++++++++-- pkgs/development/compilers/ghc/8.6.1.nix | 12 ++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) (limited to 'pkgs/development/compilers') diff --git a/pkgs/development/compilers/ghc/8.4.3.nix b/pkgs/development/compilers/ghc/8.4.3.nix index 853926a430a8..12e01a159a21 100644 --- a/pkgs/development/compilers/ghc/8.4.3.nix +++ b/pkgs/development/compilers/ghc/8.4.3.nix @@ -125,13 +125,21 @@ stdenv.mkDerivation (rec { '' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt '' sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets '' + stdenv.lib.optionalString targetPlatform.isMusl '' - echo "patching llvm-targets for musl targets...." + echo "patching llvm-targets for musl targets..." echo "Cloning these existing '*-linux-gnu*' targets:" grep linux-gnu llvm-targets | sed 's/^/ /' - echo "go go gadget sed" + echo "(go go gadget sed)" sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets echo "llvm-targets now contains these '*-linux-musl*' targets:" grep linux-musl llvm-targets | sed 's/^/ /' + + echo "And now patching to preserve '-musleabi' as done with '-gnueabi'" + # (aclocal.m4 is actual source, but patch configure as well since we don't re-gen) + for x in configure aclocal.m4; do + substituteInPlace $x \ + --replace '*-android*|*-gnueabi*)' \ + '*-android*|*-gnueabi*|*-musleabi*)' + done ''; # TODO(@Ericson2314): Always pass "--target" and always prefix. diff --git a/pkgs/development/compilers/ghc/8.6.1.nix b/pkgs/development/compilers/ghc/8.6.1.nix index 1fd53f2544a1..9627e87f8bde 100644 --- a/pkgs/development/compilers/ghc/8.6.1.nix +++ b/pkgs/development/compilers/ghc/8.6.1.nix @@ -117,13 +117,21 @@ stdenv.mkDerivation (rec { '' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt '' sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets '' + stdenv.lib.optionalString targetPlatform.isMusl '' - echo "patching llvm-targets for musl targets...." + echo "patching llvm-targets for musl targets..." echo "Cloning these existing '*-linux-gnu*' targets:" grep linux-gnu llvm-targets | sed 's/^/ /' - echo "go go gadget sed" + echo "(go go gadget sed)" sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets echo "llvm-targets now contains these '*-linux-musl*' targets:" grep linux-musl llvm-targets | sed 's/^/ /' + + echo "And now patching to preserve '-musleabi' as done with '-gnueabi'" + # (aclocal.m4 is actual source, but patch configure as well since we don't re-gen) + for x in configure aclocal.m4; do + substituteInPlace $x \ + --replace '*-android*|*-gnueabi*)' \ + '*-android*|*-gnueabi*|*-musleabi*)' + done ''; # TODO(@Ericson2314): Always pass "--target" and always prefix. -- cgit 1.4.1