A kernel with COMPAT_FREEBSD11 is required for now like on all
other FreeBSD archs. FreeBSD11 never had riscv64 support, so
GENERIC does not have it and a kernel rebuild is required. The
same issue existed on powerpc64le.
The riscv64gc-unknown-freebsd target was upstreamed and will
be part of Rust 1.59.0 (2021-02-24).
Reviewed by: jrtc27, pkubaj
Differential Revision: https://reviews.freebsd.org/D32881
- Unbreak build with LibreSSL 3.4.x [0]
- Disable backtrace's libunwind backend on armv* since it or
libunwind in base seem to be buggy and cause rustc to crash when
building some consumers [1]
- Follow rust-nightly in d5f09dc31f
and reenable hardlinks in the build
Changes: https://blog.rust-lang.org/2021/12/02/Rust-1.57.0.html
PR: 259738 [0]
PR: 259799 [1]
PR: 260140
Exp-run by: antoine
Differential Revision: https://reviews.freebsd.org/D33190
With hat: rust
Move the build artifacts out of source to decrease likelihood
of ccache misses because of changed build directory prefix
(rustc-1.55.0-src/ vs. rustc-1.56.0-src/) per PR 246245.
ONLY_FOR_ARCHS_REASON is used as part of the sentence and thus should
start with lower-case letter and not end with a period which is added
by the framework, similar to other knobs like BROKEN, IGNORE, et al.
While here, remove needless quoting, add missing Oxford comma, expand
contractions and jargonisms, use correct spelling for proper names.
rustc stashes intermediary files in TMPDIR (default /tmp) which
might cause issues for users that for some reason space limit their
/tmp. WRKDIR should have plenty of space.
Other ports that use rustc might be affected too, but set it only
in USES=cargo and lang/rust* ports for now.
PR: 258126
With hat: rust
It could not really work before since MASTER_SITES also changes
based on FLAVOR.
While here
- move distfiles to rust/bootstrap
- use per flavor MASTER_SITES groups to separate the files properly
- change distclean to also just work like makesum
- set DIST_SUBDIR to fix fetching the rustc tarball (was not a
problem so far since lang/rust-bootstrap depends on lang/rust
which fetches it before)
Use ld.bfd from powerpc-binutils similar to lang/rust.
ld: error: rustc_hir_pretty.7ep572vg-cgu.0:(function rustc_hir_pretty::State::print_item::h993c6db847753592: .text._ZN16rustc_hir_pretty5State10print_item17h993c6db847753592E+0x55C): relocation R_PPC_PLTREL24 out of range: -33554484 is not in [-33554432, 33554431]
ld: error: rustc_hir_pretty.7ep572vg-cgu.0:(function rustc_hir_pretty::State::print_block_with_attrs::h3e09891900cd2aa9: .text._ZN16rustc_hir_pretty5State22print_block_with_attrs17h3e09891900cd2aa9E+0x2C): relocation R_PPC_PLTREL24 out of range: -33569004 is not in [-33554432, 33554431]
ld: error: rustc_hir_pretty.7ep572vg-cgu.0:(function rustc_hir_pretty::State::print_item::h993c6db847753592: .text._ZN16rustc_hir_pretty5State10print_item17h993c6db847753592E+0x664): relocation R_PPC_PLTREL24 out of range: -33554732 is not in [-33554432, 33554431]
ld: error: rustc_hir_pretty.7ep572vg-cgu.0:(function rustc_hir_pretty::State::print_block_maybe_unclosed::h3b0ddc7248032a61: .text._ZN16rustc_hir_pretty5State26print_block_maybe_unclosed17h3b0ddc7248032a61E+0xDC): relocation R_PPC_PLTREL24 out of range: -33570260 is not in [-33554432, 33554431]
ld: error: rustc_hir_pretty.7ep572vg-cgu.0:(function rustc_hir_pretty::State::print_item::h993c6db847753592: .text._ZN16rustc_hir_pretty5State10print_item17h993c6db847753592E+0x698): relocation R_PPC_PLTREL24 out of range: -33554800 is not in [-33554432, 33554431]
ld: error: rustc_hir_pretty.7ep572vg-cgu.0:(function rustc_hir_pretty::State::print_block_maybe_unclosed::h3b0ddc7248032a61: .text._ZN16rustc_hir_pretty5State26print_block_maybe_unclosed17h3b0ddc7248032a61E+0xE4): relocation R_PPC_PLTREL24 out of range: -33570108 is not in [-33554432, 33554431]
ld: error: rustc_hir_pretty.7ep572vg-cgu.0:(function rustc_hir_pretty::State::print_item::h993c6db847753592: .text._ZN16rustc_hir_pretty5State10print_item17h993c6db847753592E+0x6EC): relocation R_PPC_PLTREL24 out of range: -33554884 is not in [-33554432, 33554431]
ld: error: rustc_hir_pretty.7ep572vg-cgu.0:(function rustc_hir_pretty::State::print_item::h993c6db847753592: .text._ZN16rustc_hir_pretty5State10print_item17h993c6db847753592E+0x6F4): relocation R_PPC_PLTREL24 out of range: -33554732 is not in [-33554432, 33554431]
http://package19.nyi.freebsd.org/data/122amd64-default-build-as-user/ab31b591e5a6/logs/powerpc-rust-bootstrap-1.52.1_1.log
Samurai is a Ninja-compatible build tool with fewer dependencies
than Ninja. Hook it to the framework via a new NINJA_DEFAULT.
This also adds %p to NINJA_STATUS to make Ninja or Samurai print
the percentage of completed jobs to make it easier to eyeball how
much of the build is done.
PR: 254678
Exp-run by: antoine
Something goes wrong when it is built with LLVM > 9. Build it with
llvm90 for the time being.
rustc -Cllvm-args="..." with: Unknown command line argument '-generate-arange-section'. Try: 'rustc -Cllvm-args="..." with --help'
rustc -Cllvm-args="..." with: Unknown command line argument '-mergefunc-use-aliases'. Try: 'rustc -Cllvm-args="..." with --help'
rustc -Cllvm-args="..." with: Unknown command line argument '-preserve-alignment-assumptions-during-inlining=false'. Try: 'rustc -Cllvm-args="..." with --help'
or when built with llvm.assertions=true:
Assertion failed: (hasOptions() && "No options specified!"), function ParseCommandLineOptions, file src/llvm-project/llvm/lib/Support/CommandLine.cpp, line 1344.
- Fix DOCS build by disabling deny-warnings (rustc equivalent to
-Werror). Let's not fail the entire build just because a handful
of docs fail to build due to -D broken-intra-doc-links [0]
- Only install the host target docs. We otherwise waste time with
a rust-docs install-uninstall-install cycle for each additional
target during stage.
- Backport FreeBSD support for gimli, unbreak RUST_BACKTRACE, and
have useful stack traces with actual content again [1]
- While here also strip binaries under libexec/ and ack reading of
src/bootstrap/CHANGELOG.md (changelog-seen=2)
[0] https://github.com/rust-lang/rust/issues/76526
PR: 253557 [1]
Submitted by: jbeich [1]
- Update the sysroot to 11.4 to build the rust bootstrap on amd64, arm64, armv6 and i386
- Regen the sysroot for armv7 (it only includes the necessary bits: /lib, /usr/include and /usr/lib)
- Update the sysroot for powerpc64-elfv2 (previous one is 9 months old)
The sysroot is just the base.txz fetched from ftp://ftp.freebsd.org/pub/FreeBSD/
It's based on the WANDBOARD image for armv6 and armv7
Differential Revision: D26646
- This Rust release comes with LLVM 10. Drop the LLVM patches we
no longer need.
- On FreeBSD 13.0 powerpc64 set the elfv2 ABI explicitly in the
Rust target instead of patching LLVM.
- Build LLVM with Ninja. It can shorten the build time slightly.
- Force rebuild all consumers to catch regressions early
Changes: https://blog.rust-lang.org/2020/07/16/Rust-1.45.0.html
Tested by: mikael, pkubaj, tobik
With hat: rust
Differential Revision: https://reviews.freebsd.org/D25658