diff --git a/pkgs/development/compilers/ghc/7.10.3-binary.nix b/pkgs/development/compilers/ghc/7.10.3-binary.nix index 6fed39317c7..b68c84711b0 100644 --- a/pkgs/development/compilers/ghc/7.10.3-binary.nix +++ b/pkgs/development/compilers/ghc/7.10.3-binary.nix @@ -1,7 +1,7 @@ { stdenv , fetchurl, perl , ncurses5, gmp, libiconv -, gcc +, gcc, llvm_35 }: # Prebuilt only does native @@ -43,6 +43,7 @@ stdenv.mkDerivation rec { or (throw "cannot bootstrap GHC on this platform")); nativeBuildInputs = [ perl ]; + buildInputs = stdenv.lib.optionals stdenv.isArm [ llvm_35 ]; # Cannot patchelf beforehand due to relative RPATHs that anticipate # the final install location/ diff --git a/pkgs/development/compilers/ghc/7.10.3.nix b/pkgs/development/compilers/ghc/7.10.3.nix index 1d9e2814a1f..dd5acfa16f1 100644 --- a/pkgs/development/compilers/ghc/7.10.3.nix +++ b/pkgs/development/compilers/ghc/7.10.3.nix @@ -2,7 +2,7 @@ , buildPlatform, hostPlatform, targetPlatform # build-tools -, bootPkgs, hscolour +, bootPkgs, hscolour, llvm_35 , coreutils, fetchurl, fetchpatch, perl , docbook_xsl, docbook_xml_dtd_45, docbook_xml_dtd_42, libxml2, libxslt @@ -44,7 +44,7 @@ stdenv.mkDerivation rec { ./relocation.patch ]; - buildInputs = [ ghc perl libxml2 libxslt docbook_xsl docbook_xml_dtd_45 docbook_xml_dtd_42 hscolour ]; + buildInputs = [ ghc perl libxml2 libxslt docbook_xsl docbook_xml_dtd_45 docbook_xml_dtd_42 hscolour ] ++ stdenv.lib.optionals stdenv.isArm [ llvm_35 ]; enableParallelBuilding = true; diff --git a/pkgs/development/compilers/ghc/8.0.2.nix b/pkgs/development/compilers/ghc/8.0.2.nix index 762fe547ca9..bb706aa6bbc 100644 --- a/pkgs/development/compilers/ghc/8.0.2.nix +++ b/pkgs/development/compilers/ghc/8.0.2.nix @@ -2,7 +2,7 @@ , buildPlatform, hostPlatform, targetPlatform # build-tools -, bootPkgs, hscolour +, bootPkgs, hscolour, llvm_37 , coreutils, fetchurl, fetchpatch, patchutils, perl, sphinx , libiconv ? null, ncurses @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { ++ stdenv.lib.optional stdenv.isLinux ./ghc-no-madv-free.patch ++ stdenv.lib.optional stdenv.isDarwin ./ghc-8.0.2-no-cpp-warnings.patch; - buildInputs = [ ghc perl hscolour sphinx ]; + buildInputs = [ ghc perl hscolour sphinx ] ++ stdenv.lib.optionals (stdenv.isArm || stdenv.isAarch64) [ llvm_37 ]; enableParallelBuilding = true; diff --git a/pkgs/development/compilers/ghc/8.2.1-binary.nix b/pkgs/development/compilers/ghc/8.2.1-binary.nix index b3b5e2eceec..ec2694a0028 100644 --- a/pkgs/development/compilers/ghc/8.2.1-binary.nix +++ b/pkgs/development/compilers/ghc/8.2.1-binary.nix @@ -1,5 +1,5 @@ { stdenv -, fetchurl, perl, gcc +, fetchurl, perl, gcc, llvm_39 , ncurses5, gmp, libiconv }: @@ -46,6 +46,7 @@ stdenv.mkDerivation rec { or (throw "cannot bootstrap GHC on this platform")); nativeBuildInputs = [ perl ]; + buildInputs = stdenv.lib.optionals (stdenv.isArm || stdenv.isAarch64) [ llvm_39 ]; # Cannot patchelf beforehand due to relative RPATHs that anticipate # the final install location/ diff --git a/pkgs/development/compilers/ghc/8.2.2.nix b/pkgs/development/compilers/ghc/8.2.2.nix index bffc7c3fc6c..5ef71804b57 100644 --- a/pkgs/development/compilers/ghc/8.2.2.nix +++ b/pkgs/development/compilers/ghc/8.2.2.nix @@ -3,7 +3,7 @@ , selfPkgs, cross ? null # build-tools -, bootPkgs, alex, happy, hscolour +, bootPkgs, alex, happy, hscolour, llvm_39 , autoconf, automake, coreutils, fetchurl, perl, python3, sphinx , libiconv ? null, ncurses @@ -46,7 +46,7 @@ stdenv.mkDerivation (rec { sed 's|#BuildFlavour = quick-cross|BuildFlavour = perf-cross|' mk/build.mk.sample > mk/build.mk ''; - buildInputs = [ alex autoconf automake ghc happy hscolour perl python3 sphinx ]; + buildInputs = [ alex autoconf automake ghc happy hscolour perl python3 sphinx ] ++ stdenv.lib.optionals (stdenv.isArm || stdenv.isAarch64) [ llvm_39 ]; enableParallelBuilding = true; @@ -58,6 +58,8 @@ stdenv.mkDerivation (rec { "--with-gmp-includes=${gmp.dev}/include" "--with-gmp-libraries=${gmp.out}/lib" ] ++ stdenv.lib.optional stdenv.isDarwin [ "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib" + ] ++ stdenv.lib.optional stdenv.isArm [ + "LD=${stdenv.cc}/bin/ld.gold" ]; # required, because otherwise all symbols from HSffi.o are stripped, and diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 3a1e733a63d..b67666ab6e0 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -1029,4 +1029,6 @@ self: super: { # https://github.com/Twinside/Juicy.Pixels/issues/149 JuicyPixels = dontHaddock super.JuicyPixels; + # armv7l fixes. + happy = if pkgs.stdenv.isArm then dontCheck super.happy else super.happy; # Similar to https://ghc.haskell.org/trac/ghc/ticket/13062 } diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix index 29bcdfce2c9..bf195696f94 100644 --- a/pkgs/development/haskell-modules/generic-builder.nix +++ b/pkgs/development/haskell-modules/generic-builder.nix @@ -130,7 +130,7 @@ let (optionalString (enableSharedExecutables && stdenv.isDarwin) "--ghc-option=-optl=-Wl,-headerpad_max_install_names") (optionalString enableParallelBuilding "--ghc-option=-j$NIX_BUILD_CORES") (optionalString useCpphs "--with-cpphs=${cpphs}/bin/cpphs --ghc-options=-cpp --ghc-options=-pgmP${cpphs}/bin/cpphs --ghc-options=-optP--cpp") - (enableFeature (enableDeadCodeElimination && (versionAtLeast "8.0.1" ghc.version)) "split-objs") + (enableFeature (enableDeadCodeElimination && !stdenv.isArm && !stdenv.isAarch64 && (versionAtLeast "8.0.1" ghc.version)) "split-objs") (enableFeature enableLibraryProfiling "library-profiling") (enableFeature enableExecutableProfiling (if versionOlder ghc.version "8" then "executable-profiling" else "profiling")) (enableFeature enableSharedLibraries "shared")