diff options
Diffstat (limited to 'pkgs/development/compilers/ghc/head.nix')
-rw-r--r-- | pkgs/development/compilers/ghc/head.nix | 74 |
1 files changed, 37 insertions, 37 deletions
diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix index c203f5cf19ced..3ba88763117d3 100644 --- a/pkgs/development/compilers/ghc/head.nix +++ b/pkgs/development/compilers/ghc/head.nix @@ -1,4 +1,4 @@ -{ stdenv, pkgsBuildTarget, targetPackages +{ lib, stdenv, pkgsBuildTarget, targetPackages # build-tools , bootPkgs @@ -22,7 +22,7 @@ , # If enabled, GHC will be built with the GPL-free but slightly slower native # bignum backend instead of the faster but GPLed gmp backend. - enableNativeBignum ? !(stdenv.lib.any (stdenv.lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms) + enableNativeBignum ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms) , gmp , # If enabled, use -fPIC when compiling static libs. @@ -41,7 +41,7 @@ , version ? "8.11.20200824" , # What flavour to build. An empty string indicates no # specific flavour and falls back to ghc default values. - ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform) + ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform) (if useLLVM then "perf-cross" else "perf-cross-ncg") , # Whether to disable the large address space allocator @@ -57,7 +57,7 @@ let inherit (bootPkgs) ghc; # TODO(@Ericson2314) Make unconditional - targetPrefix = stdenv.lib.optionalString + targetPrefix = lib.optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-"; @@ -68,33 +68,33 @@ let endif DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"} BIGNUM_BACKEND = ${if enableNativeBignum then "native" else "gmp"} - '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) '' + '' + lib.optionalString (targetPlatform != hostPlatform) '' Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"} CrossCompilePrefix = ${targetPrefix} HADDOCK_DOCS = NO BUILD_SPHINX_HTML = NO BUILD_SPHINX_PDF = NO - '' + stdenv.lib.optionalString dontStrip '' + '' + lib.optionalString dontStrip '' STRIP_CMD = : - '' + stdenv.lib.optionalString (!enableProfiledLibs) '' + '' + lib.optionalString (!enableProfiledLibs) '' GhcLibWays = "v dyn" - '' + stdenv.lib.optionalString enableRelocatedStaticLibs '' + '' + lib.optionalString enableRelocatedStaticLibs '' GhcLibHcOpts += -fPIC GhcRtsHcOpts += -fPIC - '' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt '' + '' + lib.optionalString targetPlatform.useAndroidPrebuilt '' EXTRA_CC_OPTS += -std=gnu99 ''; # Splicer will pull out correct variations - libDeps = platform: stdenv.lib.optional enableTerminfo ncurses + libDeps = platform: lib.optional enableTerminfo ncurses ++ [libffi] - ++ stdenv.lib.optional (!enableNativeBignum) gmp - ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv - ++ stdenv.lib.optional enableDwarf elfutils; + ++ lib.optional (!enableNativeBignum) gmp + ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv + ++ lib.optional enableDwarf elfutils; toolsForTarget = [ pkgsBuildTarget.targetPackages.stdenv.cc - ] ++ stdenv.lib.optional useLLVM buildLlvmPackages.llvm; + ] ++ lib.optional useLLVM buildLlvmPackages.llvm; targetCC = builtins.head toolsForTarget; @@ -131,7 +131,7 @@ stdenv.mkDerivation (rec { export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx" # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177 # and more generally have a faster linker. - export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString useLdGold ".gold"}" + export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}" export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as" export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar" export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm" @@ -144,13 +144,13 @@ stdenv.mkDerivation (rec { echo ${src.rev} > GIT_COMMIT_ID ./boot sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure - '' + stdenv.lib.optionalString (!stdenv.isDarwin) '' + '' + lib.optionalString (!stdenv.isDarwin) '' export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}" - '' + stdenv.lib.optionalString stdenv.isDarwin '' + '' + lib.optionalString stdenv.isDarwin '' export NIX_LDFLAGS+=" -no_dtrace_dof" - '' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt '' + '' + 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 '' + '' + 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/^/ /' @@ -170,33 +170,33 @@ stdenv.mkDerivation (rec { # TODO(@Ericson2314): Always pass "--target" and always prefix. configurePlatforms = [ "build" "host" ] - ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target"; + ++ lib.optional (targetPlatform != hostPlatform) "target"; # `--with` flags for libraries needed for RTS linker configureFlags = [ "--datadir=$doc/share/doc/ghc" "--with-curses-libraries=${ncurses.out}/lib" - ] ++ stdenv.lib.optionals (libffi != null) [ + ] ++ lib.optionals (libffi != null) [ "--with-system-libffi" "--with-ffi-includes=${targetPackages.libffi.dev}/include" "--with-ffi-libraries=${targetPackages.libffi.out}/lib" - ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableNativeBignum) [ + ] ++ lib.optionals (targetPlatform == hostPlatform && !enableNativeBignum) [ "--with-gmp-includes=${targetPackages.gmp.dev}/include" "--with-gmp-libraries=${targetPackages.gmp.out}/lib" - ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [ + ] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [ "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib" - ] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [ + ] ++ lib.optionals (targetPlatform != hostPlatform) [ "--enable-bootstrap-with-devel-snapshot" - ] ++ stdenv.lib.optionals useLdGold [ + ] ++ lib.optionals useLdGold [ "CFLAGS=-fuse-ld=gold" "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold" "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold" - ] ++ stdenv.lib.optional disableLargeAddressSpace "--disable-large-address-space" - ++ stdenv.lib.optionals enableDwarf [ + ] ++ lib.optional disableLargeAddressSpace "--disable-large-address-space" + ++ lib.optionals enableDwarf [ "--enable-dwarf-unwind" - "--with-libdw-includes=${stdenv.lib.getDev elfutils}/include" - "--with-libdw-libraries=${stdenv.lib.getLib elfutils}/lib" + "--with-libdw-includes=${lib.getDev elfutils}/include" + "--with-libdw-libraries=${lib.getLib elfutils}/lib" ]; # Make sure we never relax`$PATH` and hooks support for compatibility. @@ -216,18 +216,18 @@ stdenv.mkDerivation (rec { buildInputs = [ perl bash ] ++ (libDeps hostPlatform); propagatedBuildInputs = [ targetPackages.stdenv.cc ] - ++ stdenv.lib.optional useLLVM llvmPackages.llvm; + ++ lib.optional useLLVM llvmPackages.llvm; - depsTargetTarget = map stdenv.lib.getDev (libDeps targetPlatform); - depsTargetTargetPropagated = map (stdenv.lib.getOutput "out") (libDeps targetPlatform); + depsTargetTarget = map lib.getDev (libDeps targetPlatform); + depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform); # required, because otherwise all symbols from HSffi.o are stripped, and # that in turn causes GHCi to abort - stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols"; + stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols"; checkTarget = "test"; - hardeningDisable = [ "format" ] ++ stdenv.lib.optional stdenv.targetPlatform.isMusl "pie"; + hardeningDisable = [ "format" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie"; postInstall = '' # Install the bash completion file. @@ -237,7 +237,7 @@ stdenv.mkDerivation (rec { for i in "$out/bin/"*; do test ! -h $i || continue egrep --quiet '^#!' <(head -n 1 $i) || continue - sed -i -e '2i export PATH="$PATH:${stdenv.lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i + sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i done ''; @@ -254,13 +254,13 @@ stdenv.mkDerivation (rec { meta = { homepage = "http://haskell.org/ghc"; description = "The Glasgow Haskell Compiler"; - maintainers = with stdenv.lib.maintainers; [ marcweber andres peti ]; + maintainers = with lib.maintainers; [ marcweber andres peti ]; inherit (ghc.meta) license platforms; }; dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm); -} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt{ +} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt{ dontPatchELF = true; noAuditTmpdir = true; }) |