|
42 | 42 | warnUndeclaredOptions = true; |
43 | 43 | fetchedSourceNameDefault = "full"; |
44 | 44 | doCheckByDefault = false; |
| 45 | + allowUnsupportedSystem = true; |
45 | 46 |
|
46 | 47 | # RUSTFLAGS = "-C target-cpu=znver3 "; |
47 | 48 | # permittedInsecurePackages = [ "nix-2.15.3" ]; |
|
52 | 53 | { pkgs }: |
53 | 54 | let |
54 | 55 | clangStdenv = pkgs.llvmPackages_latest.stdenv; |
55 | | - moldStdenv = pkgs.stdenvAdapters.useMoldLinker clangStdenv; |
56 | | - withPackRelativeRelocs = |
| 56 | + |
| 57 | + customStdenv = |
57 | 58 | stdenv: |
| 59 | + let |
| 60 | + bintools = stdenv.cc.bintools.override { |
| 61 | + extraBuildCommands = '' |
| 62 | + wrap ld.mold ${pkgs.path}/pkgs/build-support/bintools-wrapper/ld-wrapper.sh ${pkgs.buildPackages.mold}/bin/ld.mold |
| 63 | + wrap ${stdenv.cc.bintools.targetPrefix}ld.mold ${pkgs.path}/pkgs/build-support/bintools-wrapper/ld-wrapper.sh ${pkgs.buildPackages.mold}/bin/ld.mold |
| 64 | + wrap ${stdenv.cc.bintools.targetPrefix}ld ${pkgs.path}/pkgs/build-support/bintools-wrapper/ld-wrapper.sh ${pkgs.buildPackages.mold}/bin/ld.mold |
| 65 | + ''; |
| 66 | + }; |
| 67 | + in |
58 | 68 | stdenv.override (old: { |
| 69 | + allowedRequisites = null; |
| 70 | + cc = stdenv.cc.override { inherit bintools; }; |
| 71 | + |
59 | 72 | mkDerivationFromStdenv = |
60 | 73 | stdenvSelf: |
61 | 74 | let |
62 | | - mkDerivationSuper = |
63 | | - (old.mkDerivationFromStdenv or (import (pkgs.outPath + "/pkgs/stdenv/generic/make-derivation.nix") { |
64 | | - inherit (pkgs) |
65 | | - lib |
66 | | - config |
67 | | - ; |
68 | | - }) |
69 | | - ) |
70 | | - stdenvSelf; |
| 75 | + defaultMkDerivationFromStdenv = |
| 76 | + stdenv: |
| 77 | + (import (pkgs.path + "/pkgs/stdenv/generic/make-derivation.nix") { |
| 78 | + inherit (pkgs) lib config; |
| 79 | + } stdenv).mkDerivation; |
| 80 | + mkDerivationSuper = (old.mkDerivationFromStdenv or defaultMkDerivationFromStdenv) stdenvSelf; |
71 | 81 | in |
72 | 82 | args: |
73 | | - (mkDerivationSuper args).overrideAttrs (prevAttrs: { |
74 | | - NIX_CFLAGS_LINK = toString (prevAttrs.NIX_CFLAGS_LINK or "") + " -Wl,-z,pack-relative-relocs,-pipe"; |
75 | | - }); |
| 83 | + (mkDerivationSuper args).overrideAttrs ( |
| 84 | + prevAttrs: |
| 85 | + if (prevAttrs.__structuredAttrs or false) || (prevAttrs ? env.NIX_CFLAGS_LINK) then |
| 86 | + { |
| 87 | + env = (prevAttrs.env or { }) // { |
| 88 | + NIX_CFLAGS_LINK = |
| 89 | + toString (prevAttrs.env.NIX_CFLAGS_LINK or "") + " -fuse-ld=mold -Wl,-z,pack-relative-relocs"; |
| 90 | + }; |
| 91 | + } |
| 92 | + else |
| 93 | + { |
| 94 | + NIX_CFLAGS_LINK = |
| 95 | + toString (prevAttrs.NIX_CFLAGS_LINK or "") + " -fuse-ld=mold -Wl,-z,pack-relative-relocs"; |
| 96 | + } |
| 97 | + ); |
76 | 98 | }); |
77 | 99 | in |
78 | | - withPackRelativeRelocs moldStdenv; |
| 100 | + customStdenv clangStdenv; |
79 | 101 | # replaceStdenv = ({ pkgs }: pkgs.clangStdenv); |
80 | 102 | }; |
81 | 103 | }; |
|
0 commit comments