1{
2 lib,
3 callPackage,
4 stdenv,
5 stdenvAdapters,
6 recurseIntoAttrs,
7 gccVersions ? { },
8 patchesFn ? lib.id,
9 buildPackages,
10 targetPackages,
11 binutilsNoLibc,
12 binutils,
13 generateSplicesForMkScope,
14 ...
15}@packageSetArgs:
16let
17 versions = {
18 "15.1.0".officialRelease.sha256 = "sha256-4rCewhZg8B/s/7cV4BICZSFpQ/A40OSKmGhxPlTwbOo=";
19 }
20 // gccVersions;
21
22 mkPackage =
23 {
24 name ? null,
25 officialRelease ? null,
26 gitRelease ? null,
27 monorepoSrc ? null,
28 version ? null,
29 }@args:
30 let
31 inherit
32 (import ./common/common-let.nix {
33 inherit
34 lib
35 gitRelease
36 officialRelease
37 version
38 ;
39 })
40 releaseInfo
41 ;
42 inherit (releaseInfo) release_version;
43 attrName =
44 args.name or (if (gitRelease != null) then "git" else lib.versions.major release_version);
45 in
46 lib.nameValuePair attrName (
47 recurseIntoAttrs (
48 callPackage ./common (
49 {
50 inherit (stdenvAdapters) overrideCC;
51 inherit
52 officialRelease
53 gitRelease
54 monorepoSrc
55 version
56 patchesFn
57 ;
58
59 buildGccPackages = buildPackages."gccNGPackages_${attrName}";
60 targetGccPackages = targetPackages."gccNGPackages_${attrName}" or gccPackages."${attrName}";
61 otherSplices = generateSplicesForMkScope "gccNGPackages_${attrName}";
62 }
63 // packageSetArgs # Allow overrides.
64 )
65 )
66 );
67
68 gccPackages = lib.mapAttrs' (version: args: mkPackage (args // { inherit version; })) versions;
69in
70gccPackages // { inherit mkPackage; }