[bazel] fix `lld` system requirement
@cfrantz is already working on this.
Since May 3, 2022.
- Dominant language
- SystemVerilog
- Stars
- 3.6k
- Forks
- 1.1k
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 141
Description
Since #12263, there is a new system requirement (the LLVM linker `lld`) needed to prevent the build from erroring out with:
```
"/usr/bin/gcc" "-m64" "bazel-out/k8-opt-exec-2B5CBBC6-ST-e846b08c7501/bin/external/raze__anyhow__1_0_57/anyhow_build_script_script_.anyhow_build_script_script_.b5d9878d-cgu.0.rcgu.o" "bazel-out/k8-opt-exec-2B5CBBC6-ST-e846b08c7501/bin/external/raze__anyhow__1_0_57/anyhow_build_script_script_.anyhow_build_script_script_.b5d9878d-cgu.1.rcgu.o" "bazel-out/k8-opt-exec-2B5CBBC6-ST-e846b08c7501/bin/external/raze__anyhow__1_0_57/anyhow_build_script_script_.anyhow_build_script_script_.b5d9878d-cgu.10.rcgu.o" "bazel-out/k8-opt-exec-2B5CBBC6-ST-e846b08c7501/bin/external/raze__anyhow__1_0_57/anyhow_build_script_script_.anyhow_build_script_script_.b5d9878d-cgu.11.rcgu.o" "bazel-out/k8-opt-exec-2B5CBBC6-ST-e846b08c7501/bin/external/raze__anyhow__1_0_57/anyhow_build_script_script_.anyhow_build_script_script_.b5d9878d-cgu.12.rcgu.o" "bazel-out/k8-opt-exec-2B5CBBC6-ST-e846b08c7501/bin/external/raze__anyhow__1_0_57/anyhow_build_script_script_.anyhow_build_script_script_.b5d9878d-cgu.13.rcgu.o" "bazel-out/k8-opt-exec-2B5CBBC6-ST-e846b08c7501/bin/external/raze__anyhow__1_0_57/anyhow_build_script_script_.anyhow_build_script_script_.b5d9878d-cgu.14.rcgu.o" "bazel-out/k8-opt-exec-2B5CBBC6-ST-e846b08c7501/bin/external/raze__anyhow__1_0_57/anyhow_build_script_script_.anyhow_build_script_script_.b5d9878d-cgu.15.rcgu.o" "bazel-out/k8-opt-exec-2B5CBBC6-ST-e846b08c7501/bin/external/raze__anyhow__1_0_57/anyhow_build_script_script_.anyhow_build_script_script_.b5d9878d-cgu.2.rcgu.o" "bazel-out/k8-opt-exec-2B5CBBC6-ST-e846b08c7501/bin/external/raze__anyhow__1_0_57/anyhow_build_script_script_.anyhow_build_script_script_.b5d9878d-cgu.3.rcgu.o" "bazel-out/k8-opt-exec-2B5CBBC6-ST-e846b08c7501/bin/external/raze__anyhow__1_0_57/anyhow_build_script_script_.anyhow_build_script_script_.b5d9878d-cgu.4.rcgu.o" "bazel-out/k8-opt-exec-2B5CBBC6-ST-e846b08c7501/bin/external/raze__anyhow__1_0_57/anyhow_build_script_script_.anyhow_build_script_script_.b5d9878d-cgu.5.rcgu.o" "bazel-out/k8-opt-exec-2B5CBBC6-ST-e846b08c7501/bin/external/raze__anyhow__1_0_57/anyhow_build_script_script_.anyhow_build_script_script_.b5d9878d-cgu.6.rcgu.o" "bazel-out/k8-opt-exec-2B5CBBC6-ST-e846b08c7501/bin/external/raze__anyhow__1_0_57/anyhow_build_script_script_.anyhow_build_script_script_.b5d9878d-cgu.7.rcgu.o" "bazel-out/k8-opt-exec-2B5CBBC6-ST-e846b08c7501/bin/external/raze__anyhow__1_0_57/anyhow_build_script_script_.anyhow_build_script_script_.b5d9878d-cgu.8.rcgu.o" "bazel-out/k8-opt-exec-2B5CBBC6-ST-e846b08c7501/bin/external/raze__anyhow__1_0_57/anyhow_build_script_script_.anyhow_build_script_script_.b5d9878d-cgu.9.rcgu.o" "bazel-out/k8-opt-exec-2B5CBBC6-ST-e846b08c7501/bin/external/raze__anyhow__1_0_57/anyhow_build_script_script_.2dnsutg9cqf7fz43.rcgu.o" "-Wl,--as-needed" "-L" "external/rust_linux_x86_64/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/usr/local/google/home/ttrippel/.cache/bazel/_bazel_ttrippel/acc6ccf7248fd6f8fb611f7cc1105621/external/rust_linux_x86_64/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,--start-group" "-Wl,-Bstatic" "/usr/local/google/home/ttrippel/.cache/bazel/_bazel_ttrippel/acc6ccf7248fd6f8fb611f7cc1105621/external/rust_linux_x86_64/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-1e1088264352fcd6.rlib" "/usr/local/google/home/ttrippel/.cache/bazel/_bazel_ttrippel/acc6ccf7248fd6f8fb611f7cc1105621/external/rust_linux_x86_64/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-a969816f41e59f04.rlib" "/usr/local/google/home/ttrippel/.cache/bazel/_bazel_ttrippel/acc6ccf7248fd6f8fb611f7cc1105621/external/rust_linux_x86_64/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-18e12a7cddee847a.rlib" "/usr/local/google/home/ttrippel/.cache/bazel/_bazel_ttrippel/acc6ccf7248fd6f8fb611f7cc1105621/external/rust_linux_x86_64/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-f32cf3bc142978d3.rlib" "/usr/local/google/home/ttrippel/.cache/bazel/_bazel_ttrippel/acc6ccf7248fd6f8fb611f7cc1105621/external/rust_linux_x86_64/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-a0e394a75c0959fe.rlib" "/usr/local/google/home/ttrippel/.cache/bazel/_bazel_ttrippel/acc6ccf7248fd6f8fb611f7cc1105621/external/rust_linux_x86_64/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-9b944335c98e9e5a.rlib" "/usr/local/google/home/ttrippel/.cache/bazel/_bazel_ttrippel/acc6ccf7248fd6f8fb611f7cc1105621/external/rust_linux_x86_64/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-53ff769910bef363.rlib" "/usr/local/google/home/ttrippel/.cache/bazel/_bazel_ttrippel/acc6ccf7248fd6f8fb611f7cc1105621/external/rust_linux_x86_64/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-99cc1718e48a21ca.rlib" "/usr/local/google/home/ttrippel/.cache/bazel/_bazel_ttrippel/acc6ccf7248fd6f8fb611f7cc1105621/external/rust_linux_x86_64/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-c6d3e92e16ddaaea.rlib" "/usr/local/google/home/ttrippel/.cache/bazel/_bazel_ttrippel/acc6ccf7248fd6f8fb611f7cc1105621/external/rust_linux_x86_64/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-3bca69e5bcc0a46e.rlib" "/usr/local/google/home/ttrippel/.cache/bazel/_bazel_ttrippel/acc6ccf7248fd6f8fb611f7cc1105621/external/rust_linux_x86_64/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-391afe94b4105cde.rlib" "/usr/local/google/home/ttrippel/.cache/bazel/_bazel_ttrippel/acc6ccf7248fd6f8fb611f7cc1105621/external/rust_linux_x86_64/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-e310d903422b1611.rlib" "/usr/local/google/home/ttrippel/.cache/bazel/_bazel_ttrippel/acc6ccf7248fd6f8fb611f7cc1105621/external/rust_linux_x86_64/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-f892a560e94b36bb.rlib" "/usr/local/google/home/ttrippel/.cache/bazel/_bazel_ttrippel/acc6ccf7248fd6f8fb611f7cc1105621/external/rust_linux_x86_64/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-89b36d2fd36f710b.rlib" "/usr/local/google/home/ttrippel/.cache/bazel/_bazel_ttrippel/acc6ccf7248fd6f8fb611f7cc1105621/external/rust_linux_x86_64/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-3edad9197d8d2a0e.rlib" "/usr/local/google/home/ttrippel/.cache/bazel/_bazel_ttrippel/acc6ccf7248fd6f8fb611f7cc1105621/external/rust_linux_x86_64/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-6123b310ab5947a4.rlib" "/usr/local/google/home/ttrippel/.cache/bazel/_bazel_ttrippel/acc6ccf7248fd6f8fb611f7cc1105621/external/rust_linux_x86_64/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-125fb607b0118c1e.rlib" "/usr/local/google/home/ttrippel/.cache/bazel/_bazel_ttrippel/acc6ccf7248fd6f8fb611f7cc1105621/external/rust_linux_x86_64/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-690babb9362d4823.rlib" "-Wl,--end-group" "/usr/local/google/home/ttrippel/.cache/bazel/_bazel_ttrippel/acc6ccf7248fd6f8fb611f7cc1105621/external/rust_linux_x86_64/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-c39f82cdaf262b3f.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "/usr/local/google/home/ttrippel/.cache/bazel/_bazel_ttrippel/acc6ccf7248fd6f8fb611f7cc1105621/external/rust_linux_x86_64/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "bazel-out/k8-opt-exec-2B5CBBC6-ST-e846b08c7501/bin/external/raze__anyhow__1_0_57/anyhow_build_script_script_" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro,-znow" "-Wl,-O1" "-nodefaultlibs" "-fuse-ld=lld" "-Wl,-no-as-needed" "-Wl,-z,relro,-z,now" "-B/usr/bin" "-pass-exit-codes" "-Wl,--gc-sections" "-lstdc++" "-lm"
= note: collect2: fatal error: cannot find 'ld'
compilation terminated.
```
## Temporary solution:
The temporary solution is to simply:
- [ ] install `lld` with: `sudo apt install lld`
- [ ] add `lld` to the relevant `*-requirements.txt` files
- [ ] update the getting started page on the website
## Long-term solution:
Figure out why bazel is attempting to use `gcc` with `lld` to build some rust crates.
Hints:
- https://github.com/bazelbuild/rules_rust/issues/1114
- it seems things can be traced part way to [this line](https://github.com/bazelbuild/rules_rust/blob/42f78f25e12017a99bae5de4ad21a6f44faa8d5e/rust/private/rustc.bzl#L781).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.