Skip to content

Commit c112d5d

Browse files
committed
Merge remote-tracking branch 'origin/master' into angerman/fix-aarch64-android-9.6.6
2 parents 97d8d9e + cad6441 commit c112d5d

File tree

28 files changed

+655
-139
lines changed

28 files changed

+655
-139
lines changed

builder/comp-builder.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -499,7 +499,7 @@ let
499499
nativeBuildInputs =
500500
[ghc buildPackages.removeReferencesTo]
501501
++ executableToolDepends
502-
++ (lib.optional stdenv.hostPlatform.isGhcjs buildPackages.nodejs)
502+
++ (lib.optional stdenv.hostPlatform.isGhcjs pkgsBuildBuild.nodejs)
503503
++ (lib.optional (ghc.useLdLld or false) llvmPackages.bintools);
504504

505505
outputs = ["out"]

ci.nix

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
{ ifdLevel # This is passed in from flake.nix
44
, checkMaterialization ? false
55
, system ? builtins.currentSystem
6-
, evalSystem ? builtins.currentSystem or "x86_64-linux"
6+
, evalSystem ? "aarch64-darwin"
77
# NOTE: we apply checkMaterialization when defining nixpkgsArgs
88
, haskellNix ? import ./default.nix { inherit system ; }
99
}:
@@ -41,6 +41,8 @@
4141
"dwarfdump-20181024"
4242
];
4343
allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
44+
"platform-tools"
45+
"ndk"
4446
"android-sdk-ndk"
4547
"android-sdk-platform-tools"
4648
"aarch64-unknown-linux-android-ndk-toolchain-wrapper"
@@ -65,14 +67,14 @@
6567
nixpkgs.lib.optionalAttrs (builtins.elem nixpkgsName ["R2411" "R2505"]) {
6668
ghc96 = false;
6769
ghc98 = false;
70+
ghc98llvm = false;
6871
ghc910 = false;
72+
ghc910llvm = false;
6973
ghc912 = false;
7074
} // nixpkgs.lib.optionalAttrs (nixpkgsName == "unstable") {
7175
ghc96 = true;
7276
ghc98 = true;
73-
ghc98llvm = false;
7477
ghc910 = true;
75-
ghc910llvm = false;
7678
ghc912 = true;
7779
ghc912llvm = true;
7880
ghc913 = true;
@@ -91,7 +93,8 @@
9193
inherit (lib.systems.examples) ghcjs;
9294
} // lib.optionalAttrs (nixpkgsName == "unstable"
9395
&& (__match ".*llvm" compiler-nix-name == null)
94-
&& !builtins.elem compiler-nix-name ["ghc967" "ghc984" "ghc9102"]) {
96+
&& !builtins.elem compiler-nix-name ["ghc967" "ghc984" "ghc9102"]
97+
&& system != "x86_64-darwin") {
9598
inherit (lib.systems.examples) wasi32;
9699
} // lib.optionalAttrs (nixpkgsName == "unstable"
97100
&& (__match ".*llvm" compiler-nix-name == null)
@@ -112,7 +115,7 @@
112115
inherit (lib.systems.examples) musl32;
113116
} // lib.optionalAttrs (system == "x86_64-linux" && !builtins.elem compiler-nix-name ["ghc902" "ghc928" "ghc948"]) {
114117
inherit (lib.systems.examples) aarch64-android-prebuilt;
115-
} // lib.optionalAttrs (system == "x86_64-linux" && !builtins.elem compiler-nix-name ["ghc902" "ghc928" "ghc948" "ghc91320250523"]) {
118+
} // lib.optionalAttrs (system == "x86_64-linux" && nixpkgsName != "unstable" && !builtins.elem compiler-nix-name ["ghc902" "ghc928" "ghc948" "ghc91320250523"]) {
116119
inherit (lib.systems.examples) armv7a-android-prebuilt;
117120
} // lib.optionalAttrs (system == "x86_64-linux" && nixpkgsName == "unstable" && !builtins.elem compiler-nix-name ["ghc8107" "ghc902"]) {
118121
# TODO fix this for the compilers we build with hadrian (ghc >=9.4)

compiler/ghc/default.nix

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ let self =
99
# build-tools
1010
, bootPkgs
1111
, buildPackages
12+
, pkgsBuildBuild
1213
, autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3, m4, sphinx, numactl, elfutils, libcxx, libcxxabi ? throw "No libcxxabi"
1314
, autoreconfHook
1415
, bash
@@ -95,7 +96,7 @@ let self =
9596
#
9697
# We use this instead of `buildPackages` so that plan evaluation
9798
# can work on platforms other than the `buildPlatform`.
98-
, ghcEvalPackages ? buildPackages
99+
, ghcEvalPackages ? pkgsBuildBuild
99100
}@args:
100101

101102
assert !(enableIntegerSimple || enableNativeBignum) -> gmp != null;
@@ -128,23 +129,23 @@ let
128129
INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
129130
'';
130131

131-
nodejs = buildPackages.nodejs_24;
132+
nodejs = pkgsBuildBuild.nodejs_24;
132133

133-
libffi-wasm = buildPackages.runCommand "libffi-wasm" {
134+
libffi-wasm = pkgsBuildBuild.runCommand "libffi-wasm" {
134135
nativeBuildInputs = [
135-
(buildPackages.haskell-nix.tool "ghc912" "libffi-wasm" {
136-
src = buildPackages.haskell-nix.sources.libffi-wasm;
136+
(pkgsBuildBuild.haskell-nix.tool "ghc912" "libffi-wasm" {
137+
src = pkgsBuildBuild.haskell-nix.sources.libffi-wasm;
137138
evalPackages = ghcEvalPackages;
138139
})
139140
targetPackages.buildPackages.llvmPackages.clang
140141
targetPackages.buildPackages.llvmPackages.llvm
141-
targetPackages.buildPackages.binaryen
142+
pkgsBuildBuild.binaryen
142143
];
143144
outputs = ["out" "dev"];
144145
NIX_NO_SELF_RPATH = true;
145146
} ''
146147
mkdir cbits
147-
cp ${buildPackages.haskell-nix.sources.libffi-wasm}/cbits/* cbits/
148+
cp ${pkgsBuildBuild.haskell-nix.sources.libffi-wasm}/cbits/* cbits/
148149
libffi-wasm
149150
wasm32-unknown-wasi-clang -Wall -Wextra -mcpu=mvp -Oz -DNDEBUG -Icbits -c cbits/ffi.c -o cbits/ffi.o
150151
wasm32-unknown-wasi-clang -Wall -Wextra -mcpu=mvp -Oz -DNDEBUG -Icbits -c cbits/ffi_call.c -o cbits/ffi_call.o
@@ -159,7 +160,7 @@ let
159160
wasm-opt --low-memory-unused --converge --debuginfo --flatten --rereloop --gufa -O4 -Oz libffi.so -o $out/lib/libffi.so
160161
'';
161162

162-
lib-wasm = buildPackages.symlinkJoin {
163+
lib-wasm = pkgsBuildBuild.symlinkJoin {
163164
name = "lib-wasm";
164165
paths = [ targetPackages.wasilibc libffi-wasm ];
165166
};
@@ -315,13 +316,15 @@ let
315316
compiler-nix-name =
316317
if builtins.compareVersions ghc-version "9.4.7" < 0
317318
then "ghc928"
318-
else if buildPackages.haskell.compiler ? ghc966
319+
else if pkgsBuildBuild.haskell.compiler ? ghc967
320+
then "ghc967"
321+
else if pkgsBuildBuild.haskell.compiler ? ghc966
319322
then "ghc966"
320-
else if buildPackages.haskell.compiler ? ghc964
323+
else if pkgsBuildBuild.haskell.compiler ? ghc964
321324
then "ghc964"
322325
else "ghc962";
323326
in
324-
buildPackages.haskell-nix.cabalProject' ({
327+
pkgsBuildBuild.haskell-nix.cabalProject' ({
325328
inherit compiler-nix-name;
326329
name = "hadrian";
327330
compilerSelection = p: p.haskell.compiler;
@@ -343,8 +346,8 @@ let
343346
cabalProjectFreeze = null;
344347
src = haskell-nix.haskellLib.cleanSourceWith {
345348
src = {
346-
outPath = buildPackages.srcOnly {
347-
stdenv = buildPackages.stdenvNoCC;
349+
outPath = pkgsBuildBuild.srcOnly {
350+
stdenv = pkgsBuildBuild.stdenvNoCC;
348351
name = "hadrian";
349352
inherit src;
350353
};
@@ -354,7 +357,7 @@ let
354357
includeSiblings = true;
355358
};
356359
# When building the plan we do not need a patched version
357-
# of the source and `buildPackages.srcOnly` requires introduces
360+
# of the source and `pkgsBuildBuild.srcOnly` requires introduces
358361
# a dependency on a build machine.
359362
evalSrc = haskell-nix.haskellLib.cleanSourceWith {
360363
src = {
@@ -615,7 +618,7 @@ haskell-nix.haskellLib.makeCompilerDeps (stdenv.mkDerivation (rec {
615618
if builtins.compareVersions ghc-version "9.13" < 0
616619
then "--experimental-wasm-type-reflection"
617620
else "--max-old-space-size=65536"} --no-turbo-fast-api-calls --wasm-lazy-validation" \
618-
"${buildPackages.writeShellScriptBin "node" ''
621+
"${pkgsBuildBuild.writeShellScriptBin "node" ''
619622
SCRIPT=$1
620623
shift
621624
LIB_WASM=$1
@@ -853,11 +856,6 @@ haskell-nix.haskellLib.makeCompilerDeps (stdenv.mkDerivation (rec {
853856
for a in libraries/*/*.cabal.in utils/*/*.cabal.in compiler/ghc.cabal.in; do
854857
${hadrian}/bin/hadrian ${hadrianArgs} "''${a%.*}"
855858
done
856-
'' + lib.optionalString (ghc-version == "9.8.20230704") ''
857-
for a in bytearray-access-ops.txt.pp addr-access-ops.txt.pp primops.txt; do
858-
${hadrian}/bin/hadrian ${hadrianArgs} _build/stage0/compiler/build/$a
859-
cp _build/stage0/compiler/build/$a compiler/GHC/Builtin/$a
860-
done
861859
'' + lib.optionalString (stdenv.isDarwin && (__tryEval libcxxabi).success) ''
862860
substituteInPlace mk/system-cxx-std-lib-1.0.conf \
863861
--replace 'dynamic-library-dirs:' 'dynamic-library-dirs: ${libcxx}/lib ${libcxxabi}/lib'
@@ -950,6 +948,10 @@ haskell-nix.haskellLib.makeCompilerDeps (stdenv.mkDerivation (rec {
950948
export XATTR=$(mktemp -d)/nothing
951949
'';
952950
} // lib.optionalAttrs useHadrian {
951+
preUnpack = ''
952+
mkdir -p $out/build
953+
cd $out/build
954+
'';
953955
postConfigure = lib.optionalString (stdenv.isDarwin && (__tryEval libcxxabi).success) ''
954956
substituteInPlace mk/system-cxx-std-lib-1.0.conf \
955957
--replace 'dynamic-library-dirs:' 'dynamic-library-dirs: ${libcxx}/lib ${libcxxabi}/lib'
@@ -1012,7 +1014,6 @@ haskell-nix.haskellLib.makeCompilerDeps (stdenv.mkDerivation (rec {
10121014
installPhase =
10131015
if installStage1
10141016
then ''
1015-
mkdir $out
10161017
cp -r _build/stage1/bin $out
10171018
# let's assume that if we find a non-prefixed genprimop,
10181019
# we also find a non-prefixed deriveConstants
@@ -1029,6 +1030,8 @@ haskell-nix.haskellLib.makeCompilerDeps (stdenv.mkDerivation (rec {
10291030
mkdir $doc
10301031
cp -r _build/stage1/share $doc
10311032
runHook postInstall
1033+
cd $out
1034+
rm -rf $out/build
10321035
''
10331036
# there appears to be a bug in GHCs configure script not properly passing dllwrap, and windres to the
10341037
# generated settings file. Hence we patch it back in here.
@@ -1059,6 +1062,8 @@ haskell-nix.haskellLib.makeCompilerDeps (stdenv.mkDerivation (rec {
10591062
make install
10601063
cd ../../..
10611064
runHook postInstall
1065+
cd $out
1066+
rm -rf $out/build
10621067
'';
10631068
}));
10641069
in self

flake.lock

Lines changed: 15 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/check.nix

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{ stdenv, lib, haskellLib, buildPackages }:
1+
{ stdenv, lib, haskellLib, pkgsBuildBuild }:
22
let self = drvOrig:
33

44
let
@@ -39,8 +39,8 @@ in stdenv.mkDerivation ((
3939
meta = builtins.removeAttrs drv.meta ["mainProgram"];
4040

4141
nativeBuildInputs = drv.nativeBuildInputs
42-
++ [buildPackages.xorg.lndir]
43-
++ lib.optional (stdenv.hostPlatform.isGhcjs) buildPackages.nodejs;
42+
++ [pkgsBuildBuild.xorg.lndir]
43+
++ lib.optional (stdenv.hostPlatform.isGhcjs) pkgsBuildBuild.nodejs;
4444

4545
inherit (component) doCheck doCrossCheck;
4646

lib/default.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ in {
241241
# Check a test component
242242
check = import ./check.nix {
243243
inherit stdenv lib haskellLib;
244-
inherit (pkgs) buildPackages;
244+
inherit (pkgs) pkgsBuildBuild;
245245
};
246246

247247
# Do coverage of a package

lib/pkgconf-nixpkgs-map.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3150,7 +3150,7 @@ pkgs:
31503150
"libsixel" = [ "libsixel" ];
31513151
"libskk" = [ "libskk" ];
31523152
"slirp" = [ "libslirp" ];
3153-
"smartcols" = [ "libsmartcols" ];
3153+
"smartcols" = [ "util-linux" ];
31543154
"libsmbios_c" = [ "libsmbios" ];
31553155
"smf" = [ "libsmf" ];
31563156
"libsmi" = [ "libsmi" ];

lib/system-nixpkgs-map.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,7 @@ in
386386
# In future versions of `nixpkgs` these will be removed
387387
# so make sure they are there.
388388
&& darwin ? apple_sdk
389+
&& (builtins.tryEval (darwin.apple_sdk ? frameworks)).success
389390
&& darwin.apple_sdk ? frameworks
390391
&& darwin.apple_sdk.frameworks ? ${n}
391392
&& !(darwin.apple_sdk.frameworks.${n}.passthru.isDarwinCompatStub or false)

materialized/alex-3.2.7.1/ghc967/cabal-files/alex.nix

Lines changed: 57 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)