mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-16 14:54:29 +01:00
Merge pull request #74090 from obsidiansystems/ghcjs-cross-without-cc
stdenv, haskell: bonafied GHCJS cross compilation without stdenv.cc
This commit is contained in:
commit
cfd013813e
13 changed files with 71 additions and 33 deletions
|
@ -27,6 +27,8 @@ let
|
||||||
"riscv32-linux" "riscv64-linux"
|
"riscv32-linux" "riscv64-linux"
|
||||||
|
|
||||||
"aarch64-none" "avr-none" "arm-none" "i686-none" "x86_64-none" "powerpc-none" "msp430-none" "riscv64-none" "riscv32-none" "vc4-none"
|
"aarch64-none" "avr-none" "arm-none" "i686-none" "x86_64-none" "powerpc-none" "msp430-none" "riscv64-none" "riscv32-none" "vc4-none"
|
||||||
|
|
||||||
|
"js-ghcjs"
|
||||||
];
|
];
|
||||||
|
|
||||||
allParsed = map parse.mkSystemFromString all;
|
allParsed = map parse.mkSystemFromString all;
|
||||||
|
@ -46,6 +48,7 @@ in {
|
||||||
mips = filterDoubles predicates.isMips;
|
mips = filterDoubles predicates.isMips;
|
||||||
riscv = filterDoubles predicates.isRiscV;
|
riscv = filterDoubles predicates.isRiscV;
|
||||||
vc4 = filterDoubles predicates.isVc4;
|
vc4 = filterDoubles predicates.isVc4;
|
||||||
|
js = filterDoubles predicates.isJavaScript;
|
||||||
|
|
||||||
cygwin = filterDoubles predicates.isCygwin;
|
cygwin = filterDoubles predicates.isCygwin;
|
||||||
darwin = filterDoubles predicates.isDarwin;
|
darwin = filterDoubles predicates.isDarwin;
|
||||||
|
|
|
@ -12,7 +12,7 @@ let
|
||||||
expected = lib.sort lib.lessThan y;
|
expected = lib.sort lib.lessThan y;
|
||||||
};
|
};
|
||||||
in with lib.systems.doubles; lib.runTests {
|
in with lib.systems.doubles; lib.runTests {
|
||||||
testall = mseteq all (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ wasi ++ windows ++ embedded);
|
testall = mseteq all (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ wasi ++ windows ++ embedded ++ js);
|
||||||
|
|
||||||
testarm = mseteq arm [ "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "arm-none" "armv7a-darwin" ];
|
testarm = mseteq arm [ "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "arm-none" "armv7a-darwin" ];
|
||||||
testi686 = mseteq i686 [ "i686-linux" "i686-freebsd" "i686-netbsd" "i686-openbsd" "i686-cygwin" "i686-windows" "i686-none" "i686-darwin" ];
|
testi686 = mseteq i686 [ "i686-linux" "i686-freebsd" "i686-netbsd" "i686-openbsd" "i686-cygwin" "i686-windows" "i686-none" "i686-darwin" ];
|
||||||
|
|
|
@ -66,7 +66,7 @@ let
|
||||||
else null;
|
else null;
|
||||||
|
|
||||||
expand-response-params =
|
expand-response-params =
|
||||||
if buildPackages.stdenv.cc or null != null && buildPackages.stdenv.cc != "/dev/null"
|
if buildPackages ? stdenv && buildPackages.stdenv.hasCC && buildPackages.stdenv.cc != "/dev/null"
|
||||||
then import ../expand-response-params { inherit (buildPackages) stdenv; }
|
then import ../expand-response-params { inherit (buildPackages) stdenv; }
|
||||||
else "";
|
else "";
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,7 @@ let
|
||||||
infixSalt = replaceStrings ["-" "."] ["_" "_"] targetPlatform.config;
|
infixSalt = replaceStrings ["-" "."] ["_" "_"] targetPlatform.config;
|
||||||
|
|
||||||
expand-response-params =
|
expand-response-params =
|
||||||
if buildPackages.stdenv.cc or null != null && buildPackages.stdenv.cc != "/dev/null"
|
if buildPackages.stdenv.hasCC && buildPackages.stdenv.cc != "/dev/null"
|
||||||
then import ../expand-response-params { inherit (buildPackages) stdenv; }
|
then import ../expand-response-params { inherit (buildPackages) stdenv; }
|
||||||
else "";
|
else "";
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{ stdenv
|
{ stdenv
|
||||||
|
, pkgsHostHost
|
||||||
, callPackage
|
, callPackage
|
||||||
, fetchgit
|
, fetchgit
|
||||||
, ghcjsSrcJson ? null
|
, ghcjsSrcJson ? null
|
||||||
|
@ -14,7 +15,6 @@
|
||||||
, pkgconfig
|
, pkgconfig
|
||||||
, gcc
|
, gcc
|
||||||
, lib
|
, lib
|
||||||
, nodePackages
|
|
||||||
, ghcjsDepOverrides ? (_:_:{})
|
, ghcjsDepOverrides ? (_:_:{})
|
||||||
, haskell
|
, haskell
|
||||||
}:
|
}:
|
||||||
|
@ -46,7 +46,7 @@ let
|
||||||
|
|
||||||
enableShared = true;
|
enableShared = true;
|
||||||
|
|
||||||
socket-io = nodePackages."socket.io";
|
socket-io = pkgsHostHost.nodePackages."socket.io";
|
||||||
|
|
||||||
# Relics of the old GHCJS build system
|
# Relics of the old GHCJS build system
|
||||||
stage1Packages = [];
|
stage1Packages = [];
|
||||||
|
|
|
@ -40,7 +40,7 @@ in
|
||||||
# They must be propagated to the environment of any executable linking with the library
|
# They must be propagated to the environment of any executable linking with the library
|
||||||
, libraryFrameworkDepends ? [], executableFrameworkDepends ? []
|
, libraryFrameworkDepends ? [], executableFrameworkDepends ? []
|
||||||
, homepage ? "https://hackage.haskell.org/package/${pname}"
|
, homepage ? "https://hackage.haskell.org/package/${pname}"
|
||||||
, platforms ? with stdenv.lib.platforms; unix ++ windows # GHC can cross-compile
|
, platforms ? with stdenv.lib.platforms; all # GHC can cross-compile
|
||||||
, hydraPlatforms ? null
|
, hydraPlatforms ? null
|
||||||
, hyperlinkSource ? true
|
, hyperlinkSource ? true
|
||||||
, isExecutable ? false, isLibrary ? !isExecutable
|
, isExecutable ? false, isLibrary ? !isExecutable
|
||||||
|
@ -131,9 +131,13 @@ let
|
||||||
'';
|
'';
|
||||||
|
|
||||||
crossCabalFlags = [
|
crossCabalFlags = [
|
||||||
"--with-ghc=${ghc.targetPrefix}ghc"
|
"--with-ghc=${ghcCommand}"
|
||||||
"--with-ghc-pkg=${ghc.targetPrefix}ghc-pkg"
|
"--with-ghc-pkg=${ghc.targetPrefix}ghc-pkg"
|
||||||
"--with-gcc=${stdenv.cc.targetPrefix}cc"
|
# Pass the "wrong" C compiler rather than none at all so packages that just
|
||||||
|
# use the C preproccessor still work, see
|
||||||
|
# https://github.com/haskell/cabal/issues/6466 for details.
|
||||||
|
"--with-gcc=${(if stdenv.hasCC then stdenv else buildPackages.stdenv).cc.targetPrefix}cc"
|
||||||
|
] ++ optionals stdenv.hasCC [
|
||||||
"--with-ld=${stdenv.cc.bintools.targetPrefix}ld"
|
"--with-ld=${stdenv.cc.bintools.targetPrefix}ld"
|
||||||
"--with-ar=${stdenv.cc.bintools.targetPrefix}ar"
|
"--with-ar=${stdenv.cc.bintools.targetPrefix}ar"
|
||||||
# use the one that comes with the cross compiler.
|
# use the one that comes with the cross compiler.
|
||||||
|
@ -156,7 +160,9 @@ let
|
||||||
"--libsubdir=\\$abi/\\$libname"
|
"--libsubdir=\\$abi/\\$libname"
|
||||||
(optionalString enableSeparateDataOutput "--datadir=$data/share/${ghc.name}")
|
(optionalString enableSeparateDataOutput "--datadir=$data/share/${ghc.name}")
|
||||||
(optionalString enableSeparateDocOutput "--docdir=${docdir "$doc"}")
|
(optionalString enableSeparateDocOutput "--docdir=${docdir "$doc"}")
|
||||||
|
] ++ optionals stdenv.hasCC [
|
||||||
"--with-gcc=$CC" # Clang won't work without that extra information.
|
"--with-gcc=$CC" # Clang won't work without that extra information.
|
||||||
|
] ++ [
|
||||||
"--package-db=$packageConfDir"
|
"--package-db=$packageConfDir"
|
||||||
(optionalString (enableSharedExecutables && stdenv.isLinux) "--ghc-option=-optl=-Wl,-rpath=$out/lib/${ghc.name}/${pname}-${version}")
|
(optionalString (enableSharedExecutables && stdenv.isLinux) "--ghc-option=-optl=-Wl,-rpath=$out/lib/${ghc.name}/${pname}-${version}")
|
||||||
(optionalString (enableSharedExecutables && stdenv.isDarwin) "--ghc-option=-optl=-Wl,-headerpad_max_install_names")
|
(optionalString (enableSharedExecutables && stdenv.isDarwin) "--ghc-option=-optl=-Wl,-headerpad_max_install_names")
|
||||||
|
|
|
@ -23,7 +23,8 @@
|
||||||
# This will build mmorph and monadControl, and have the hoogle installation
|
# This will build mmorph and monadControl, and have the hoogle installation
|
||||||
# refer to their documentation via symlink so they are not garbage collected.
|
# refer to their documentation via symlink so they are not garbage collected.
|
||||||
|
|
||||||
{ lib, stdenv, hoogle, writeText, ghc
|
{ lib, stdenv, buildPackages
|
||||||
|
, hoogle, writeText, ghc
|
||||||
, packages
|
, packages
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
@ -53,7 +54,7 @@ let
|
||||||
(map (lib.getOutput "doc") packages);
|
(map (lib.getOutput "doc") packages);
|
||||||
|
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation {
|
buildPackages.stdenv.mkDerivation {
|
||||||
name = "hoogle-local-0.1";
|
name = "hoogle-local-0.1";
|
||||||
buildInputs = [ghc hoogle];
|
buildInputs = [ghc hoogle];
|
||||||
|
|
||||||
|
|
|
@ -144,7 +144,7 @@ let
|
||||||
substituteInPlace "$out"/lib/perl5/*/*/Config_heavy.pl \
|
substituteInPlace "$out"/lib/perl5/*/*/Config_heavy.pl \
|
||||||
--replace "${libcInc}" /no-such-path \
|
--replace "${libcInc}" /no-such-path \
|
||||||
--replace "${
|
--replace "${
|
||||||
if stdenv.cc.cc or null != null then stdenv.cc.cc else "/no-such-path"
|
if stdenv.hasCC then stdenv.cc.cc else "/no-such-path"
|
||||||
}" /no-such-path \
|
}" /no-such-path \
|
||||||
--replace "${stdenv.cc}" /no-such-path \
|
--replace "${stdenv.cc}" /no-such-path \
|
||||||
--replace "$man" /no-such-path
|
--replace "$man" /no-such-path
|
||||||
|
|
|
@ -121,9 +121,16 @@ stageFuns: let
|
||||||
postStage = buildPackages: {
|
postStage = buildPackages: {
|
||||||
__raw = true;
|
__raw = true;
|
||||||
stdenv.cc =
|
stdenv.cc =
|
||||||
if buildPackages.stdenv.cc.isClang or false
|
if buildPackages.stdenv.hasCC
|
||||||
then buildPackages.clang
|
then
|
||||||
else buildPackages.gcc;
|
if buildPackages.stdenv.cc.isClang or false
|
||||||
|
then buildPackages.clang
|
||||||
|
else buildPackages.gcc
|
||||||
|
else
|
||||||
|
# This will blow up if anything uses it, but that's OK. The `if
|
||||||
|
# buildPackages.stdenv.cc.isClang then ... else ...` would blow up
|
||||||
|
# everything, so we make sure to avoid that.
|
||||||
|
buildPackages.stdenv.cc;
|
||||||
};
|
};
|
||||||
|
|
||||||
in dfold folder postStage (_: {}) withAllowCustomOverrides
|
in dfold folder postStage (_: {}) withAllowCustomOverrides
|
||||||
|
|
|
@ -51,12 +51,18 @@ in lib.init bootStages ++ [
|
||||||
extraBuildInputs = [ ]; # Old ones run on wrong platform
|
extraBuildInputs = [ ]; # Old ones run on wrong platform
|
||||||
allowedRequisites = null;
|
allowedRequisites = null;
|
||||||
|
|
||||||
|
hasCC = !targetPlatform.isGhcjs;
|
||||||
|
|
||||||
cc = if crossSystem.useiOSPrebuilt or false
|
cc = if crossSystem.useiOSPrebuilt or false
|
||||||
then buildPackages.darwin.iosSdkPkgs.clang
|
then buildPackages.darwin.iosSdkPkgs.clang
|
||||||
else if crossSystem.useAndroidPrebuilt or false
|
else if crossSystem.useAndroidPrebuilt or false
|
||||||
then buildPackages."androidndkPkgs_${crossSystem.ndkVer}".clang
|
then buildPackages."androidndkPkgs_${crossSystem.ndkVer}".clang
|
||||||
else if targetPlatform.isGhcjs
|
else if targetPlatform.isGhcjs
|
||||||
then null
|
# Need to use `throw` so tryEval for splicing works, ugh. Using
|
||||||
|
# `null` or skipping the attribute would cause an eval failure
|
||||||
|
# `tryEval` wouldn't catch, wrecking accessing previous stages
|
||||||
|
# when there is a C compiler and everything should be fine.
|
||||||
|
then throw "no C compiler provided for this platform"
|
||||||
else if crossSystem.useLLVM or false
|
else if crossSystem.useLLVM or false
|
||||||
then buildPackages.llvmPackages_8.lldClang
|
then buildPackages.llvmPackages_8.lldClang
|
||||||
else buildPackages.gcc;
|
else buildPackages.gcc;
|
||||||
|
|
|
@ -1,6 +1,15 @@
|
||||||
let lib = import ../../../lib; in lib.makeOverridable (
|
let lib = import ../../../lib; in lib.makeOverridable (
|
||||||
|
|
||||||
{ name ? "stdenv", preHook ? "", initialPath, cc, shell
|
{ name ? "stdenv", preHook ? "", initialPath
|
||||||
|
|
||||||
|
, # If we don't have a C compiler, we might either have `cc = null` or `cc =
|
||||||
|
# throw ...`, but if we do have a C compiler we should definiely have `cc !=
|
||||||
|
# null`.
|
||||||
|
#
|
||||||
|
# TODO(@Ericson2314): Add assert without creating infinite recursion
|
||||||
|
hasCC ? cc != null, cc
|
||||||
|
|
||||||
|
, shell
|
||||||
, allowedRequisites ? null, extraAttrs ? {}, overrides ? (self: super: {}), config
|
, allowedRequisites ? null, extraAttrs ? {}, overrides ? (self: super: {}), config
|
||||||
|
|
||||||
, # The `fetchurl' to use for downloading curl and its dependencies
|
, # The `fetchurl' to use for downloading curl and its dependencies
|
||||||
|
@ -57,7 +66,8 @@ let
|
||||||
../../build-support/setup-hooks/move-sbin.sh
|
../../build-support/setup-hooks/move-sbin.sh
|
||||||
../../build-support/setup-hooks/move-lib64.sh
|
../../build-support/setup-hooks/move-lib64.sh
|
||||||
../../build-support/setup-hooks/set-source-date-epoch-to-latest.sh
|
../../build-support/setup-hooks/set-source-date-epoch-to-latest.sh
|
||||||
cc
|
# TODO use lib.optional instead
|
||||||
|
(if hasCC then cc else null)
|
||||||
];
|
];
|
||||||
|
|
||||||
defaultBuildInputs = extraBuildInputs;
|
defaultBuildInputs = extraBuildInputs;
|
||||||
|
@ -145,7 +155,7 @@ let
|
||||||
|
|
||||||
inherit overrides;
|
inherit overrides;
|
||||||
|
|
||||||
inherit cc;
|
inherit cc hasCC;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Propagate any extra attributes. For instance, we use this to
|
# Propagate any extra attributes. For instance, we use this to
|
||||||
|
|
|
@ -8473,7 +8473,7 @@ in
|
||||||
|
|
||||||
llvmPackages_35 = callPackage ../development/compilers/llvm/3.5 ({
|
llvmPackages_35 = callPackage ../development/compilers/llvm/3.5 ({
|
||||||
isl = isl_0_14;
|
isl = isl_0_14;
|
||||||
} // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
} // stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
|
||||||
stdenv = gcc6Stdenv;
|
stdenv = gcc6Stdenv;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -8481,7 +8481,7 @@ in
|
||||||
inherit (stdenvAdapters) overrideCC;
|
inherit (stdenvAdapters) overrideCC;
|
||||||
buildLlvmTools = buildPackages.llvmPackages_39.tools;
|
buildLlvmTools = buildPackages.llvmPackages_39.tools;
|
||||||
targetLlvmLibraries = targetPackages.llvmPackages_39.libraries;
|
targetLlvmLibraries = targetPackages.llvmPackages_39.libraries;
|
||||||
} // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
} // stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
|
||||||
stdenv = gcc6Stdenv;
|
stdenv = gcc6Stdenv;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -8489,7 +8489,7 @@ in
|
||||||
inherit (stdenvAdapters) overrideCC;
|
inherit (stdenvAdapters) overrideCC;
|
||||||
buildLlvmTools = buildPackages.llvmPackages_4.tools;
|
buildLlvmTools = buildPackages.llvmPackages_4.tools;
|
||||||
targetLlvmLibraries = targetPackages.llvmPackages_4.libraries;
|
targetLlvmLibraries = targetPackages.llvmPackages_4.libraries;
|
||||||
} // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
} // stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
|
||||||
stdenv = gcc6Stdenv;
|
stdenv = gcc6Stdenv;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -8497,7 +8497,7 @@ in
|
||||||
inherit (stdenvAdapters) overrideCC;
|
inherit (stdenvAdapters) overrideCC;
|
||||||
buildLlvmTools = buildPackages.llvmPackages_5.tools;
|
buildLlvmTools = buildPackages.llvmPackages_5.tools;
|
||||||
targetLlvmLibraries = targetPackages.llvmPackages_5.libraries;
|
targetLlvmLibraries = targetPackages.llvmPackages_5.libraries;
|
||||||
} // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
} // stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
|
||||||
stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
|
stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -8505,7 +8505,7 @@ in
|
||||||
inherit (stdenvAdapters) overrideCC;
|
inherit (stdenvAdapters) overrideCC;
|
||||||
buildLlvmTools = buildPackages.llvmPackages_6.tools;
|
buildLlvmTools = buildPackages.llvmPackages_6.tools;
|
||||||
targetLlvmLibraries = targetPackages.llvmPackages_6.libraries;
|
targetLlvmLibraries = targetPackages.llvmPackages_6.libraries;
|
||||||
} // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
} // stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
|
||||||
# with gcc-7 on i686: undefined reference to `__divmoddi4'
|
# with gcc-7 on i686: undefined reference to `__divmoddi4'
|
||||||
# Failing tests with gcc8.
|
# Failing tests with gcc8.
|
||||||
stdenv = overrideCC stdenv (if stdenv.hostPlatform.isi686 then gcc6 else gcc7);
|
stdenv = overrideCC stdenv (if stdenv.hostPlatform.isi686 then gcc6 else gcc7);
|
||||||
|
@ -8515,7 +8515,7 @@ in
|
||||||
inherit (stdenvAdapters) overrideCC;
|
inherit (stdenvAdapters) overrideCC;
|
||||||
buildLlvmTools = buildPackages.llvmPackages_7.tools;
|
buildLlvmTools = buildPackages.llvmPackages_7.tools;
|
||||||
targetLlvmLibraries = targetPackages.llvmPackages_7.libraries;
|
targetLlvmLibraries = targetPackages.llvmPackages_7.libraries;
|
||||||
} // stdenv.lib.optionalAttrs (buildPackages.stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
} // stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && buildPackages.stdenv.cc.isGNU) {
|
||||||
stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
|
stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -8523,7 +8523,7 @@ in
|
||||||
inherit (stdenvAdapters) overrideCC;
|
inherit (stdenvAdapters) overrideCC;
|
||||||
buildLlvmTools = buildPackages.llvmPackages_8.tools;
|
buildLlvmTools = buildPackages.llvmPackages_8.tools;
|
||||||
targetLlvmLibraries = targetPackages.llvmPackages_8.libraries;
|
targetLlvmLibraries = targetPackages.llvmPackages_8.libraries;
|
||||||
} // stdenv.lib.optionalAttrs (buildPackages.stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
} // stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && buildPackages.stdenv.cc.isGNU) {
|
||||||
stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
|
stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -8531,7 +8531,7 @@ in
|
||||||
inherit (stdenvAdapters) overrideCC;
|
inherit (stdenvAdapters) overrideCC;
|
||||||
buildLlvmTools = buildPackages.llvmPackages_9.tools;
|
buildLlvmTools = buildPackages.llvmPackages_9.tools;
|
||||||
targetLlvmLibraries = targetPackages.llvmPackages_9.libraries;
|
targetLlvmLibraries = targetPackages.llvmPackages_9.libraries;
|
||||||
} // stdenv.lib.optionalAttrs (buildPackages.stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
} // stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && buildPackages.stdenv.cc.isGNU) {
|
||||||
stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
|
stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -9406,7 +9406,7 @@ in
|
||||||
spidermonkey_1_8_5 = callPackage ../development/interpreters/spidermonkey/1.8.5.nix { };
|
spidermonkey_1_8_5 = callPackage ../development/interpreters/spidermonkey/1.8.5.nix { };
|
||||||
spidermonkey_38 = callPackage ../development/interpreters/spidermonkey/38.nix ({
|
spidermonkey_38 = callPackage ../development/interpreters/spidermonkey/38.nix ({
|
||||||
inherit (darwin) libobjc;
|
inherit (darwin) libobjc;
|
||||||
} // (stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
} // (stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
|
||||||
stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
|
stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
|
||||||
}));
|
}));
|
||||||
spidermonkey_60 = callPackage ../development/interpreters/spidermonkey/60.nix { };
|
spidermonkey_60 = callPackage ../development/interpreters/spidermonkey/60.nix { };
|
||||||
|
@ -10787,7 +10787,7 @@ in
|
||||||
|
|
||||||
arrow-cpp = callPackage ../development/libraries/arrow-cpp ({
|
arrow-cpp = callPackage ../development/libraries/arrow-cpp ({
|
||||||
gtest = gtest.override { static = true; };
|
gtest = gtest.override { static = true; };
|
||||||
} // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
} // stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
|
||||||
stdenv = overrideCC stdenv buildPackages.gcc6; # hidden symbol `__divmoddi4'
|
stdenv = overrideCC stdenv buildPackages.gcc6; # hidden symbol `__divmoddi4'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -11869,27 +11869,27 @@ in
|
||||||
icu58 = callPackage (import ../development/libraries/icu/58.nix fetchurl) ({
|
icu58 = callPackage (import ../development/libraries/icu/58.nix fetchurl) ({
|
||||||
nativeBuildRoot = buildPackages.icu58.override { buildRootOnly = true; };
|
nativeBuildRoot = buildPackages.icu58.override { buildRootOnly = true; };
|
||||||
} //
|
} //
|
||||||
(stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
(stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
|
||||||
stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
|
stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
|
||||||
}));
|
}));
|
||||||
icu59 = callPackage ../development/libraries/icu/59.nix ({
|
icu59 = callPackage ../development/libraries/icu/59.nix ({
|
||||||
nativeBuildRoot = buildPackages.icu59.override { buildRootOnly = true; };
|
nativeBuildRoot = buildPackages.icu59.override { buildRootOnly = true; };
|
||||||
} // (stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
} // (stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
|
||||||
stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
|
stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
|
||||||
}));
|
}));
|
||||||
icu60 = callPackage ../development/libraries/icu/60.nix ({
|
icu60 = callPackage ../development/libraries/icu/60.nix ({
|
||||||
nativeBuildRoot = buildPackages.icu60.override { buildRootOnly = true; };
|
nativeBuildRoot = buildPackages.icu60.override { buildRootOnly = true; };
|
||||||
} // (stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
} // (stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
|
||||||
stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
|
stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
|
||||||
}));
|
}));
|
||||||
icu63 = callPackage ../development/libraries/icu/63.nix ({
|
icu63 = callPackage ../development/libraries/icu/63.nix ({
|
||||||
nativeBuildRoot = buildPackages.icu63.override { buildRootOnly = true; };
|
nativeBuildRoot = buildPackages.icu63.override { buildRootOnly = true; };
|
||||||
} // (stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
} // (stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
|
||||||
stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
|
stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
|
||||||
}));
|
}));
|
||||||
icu64 = callPackage ../development/libraries/icu/64.nix ({
|
icu64 = callPackage ../development/libraries/icu/64.nix ({
|
||||||
nativeBuildRoot = buildPackages.icu64.override { buildRootOnly = true; };
|
nativeBuildRoot = buildPackages.icu64.override { buildRootOnly = true; };
|
||||||
} // (stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
|
} // (stdenv.lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
|
||||||
stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
|
stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
|
@ -135,6 +135,11 @@ in
|
||||||
/* Linux on the fuloong */
|
/* Linux on the fuloong */
|
||||||
fuloongminipc = mapTestOnCross lib.systems.examples.fuloongminipc linuxCommon;
|
fuloongminipc = mapTestOnCross lib.systems.examples.fuloongminipc linuxCommon;
|
||||||
|
|
||||||
|
/* Javacript */
|
||||||
|
ghcjs = mapTestOnCross lib.systems.examples.ghcjs {
|
||||||
|
haskell.packages.ghcjs.hello = nativePlatforms;
|
||||||
|
};
|
||||||
|
|
||||||
/* Linux on Raspberrypi */
|
/* Linux on Raspberrypi */
|
||||||
rpi = mapTestOnCross lib.systems.examples.raspberryPi rpiCommon;
|
rpi = mapTestOnCross lib.systems.examples.raspberryPi rpiCommon;
|
||||||
rpi-musl = mapTestOnCross lib.systems.examples.muslpi rpiCommon;
|
rpi-musl = mapTestOnCross lib.systems.examples.muslpi rpiCommon;
|
||||||
|
|
Loading…
Reference in a new issue