|
15 | 15 | rustChannelOf = args: let |
16 | 16 | orig = pkgs.rustChannelOf args; |
17 | 17 | patchRustPkg = pkg: (pkg.overrideAttrs (oA: { |
18 | | - buildCommand = builtins.replaceStrings |
| 18 | + buildCommand = (builtins.replaceStrings |
19 | 19 | [ "rustc,rustdoc" ] |
20 | 20 | [ "rustc,rustdoc,clippy-driver,cargo-clippy" ] |
21 | | - oA.buildCommand; |
| 21 | + oA.buildCommand) + (let |
| 22 | + wrapperPath = pkgs.path + "/pkgs/build-support/bintools-wrapper/ld-wrapper.sh"; |
| 23 | + baseOut = pkgs.clangStdenv.cc.bintools.out; |
| 24 | + getStdenvAttrs = drv: (drv.overrideAttrs (oA: { |
| 25 | + passthru.origAttrs = oA; |
| 26 | + })).origAttrs; |
| 27 | + baseEnv = (getStdenvAttrs pkgs.clangStdenv.cc.bintools).env; |
| 28 | + baseSubstitutedWrapper = pkgs.replaceVars wrapperPath |
| 29 | + { |
| 30 | + inherit (baseEnv) |
| 31 | + shell coreutils_bin suffixSalt mktemp rm; |
| 32 | + use_response_file_by_default = "0"; |
| 33 | + prog = null; |
| 34 | + out = null; |
| 35 | + }; |
| 36 | + in '' |
| 37 | + # work around a bug in the overlay |
| 38 | + ${oA.postInstall} |
| 39 | +
|
| 40 | + # copy over helper scripts that the wrapper needs |
| 41 | + (cd "${baseOut}"; find . -type f \( -name '*.sh' -or -name '*.bash' \) -print0) | while read -d $'\0' script; do |
| 42 | + mkdir -p "$out/$(dirname "$script")" |
| 43 | + substitute "${baseOut}/$script" "$out/$script" --replace-quiet "${baseOut}" "$out" |
| 44 | + done |
| 45 | +
|
| 46 | + # TODO: Work out how to make this work with cross builds |
| 47 | + ldlld="$out/lib/rustlib/${pkgs.clangStdenv.targetPlatform.config}/bin/gcc-ld/ld.lld"; |
| 48 | + if [ -e "$ldlld" ]; then |
| 49 | + export prog="$(readlink -f "$ldlld")" |
| 50 | + rm "$ldlld" |
| 51 | + substitute ${baseSubstitutedWrapper} "$ldlld" --subst-var "out" --subst-var "prog" |
| 52 | + chmod +x "$ldlld" |
| 53 | + fi |
| 54 | + ''); |
22 | 55 | })) // { |
23 | 56 | targetPlatforms = [ "x86_64-linux" ]; |
24 | 57 | badTargetPlatforms = [ ]; |
|
116 | 149 | jq |
117 | 150 | jaq |
118 | 151 | gdb |
| 152 | + zlib |
119 | 153 | ]; |
120 | 154 | buildInputs = [ |
121 | 155 | pango |
|
0 commit comments