Rust is an open-source systems programming language that runs blazingly
fast, prevents almost all crashes, and eliminates data races.
This port creates the required bootstrap compilers for building the
next version of lang/rust.
lang/rust{,-bootstrap}, Mk/Uses/cargo.mk: Relax COMPAT_FREEBSD11 check
lang/rust{,-bootstrap} themselves do not need COMPAT_FREEBSD11 any more,
nor do crates that don't depend on pre-0.2.176 libc. For those that
still do, emit a warning for porters to see so that we can eventually
fully move away from needing COMPAT_FREEBSD11.
Note lang/rust188, and the bootstrap 1.87 it depends on, both predate
1.93, the first version of rust itself to use libc >= 0.2.176, so the
check remains in lang/rust188.
Note also Mk/bsd.gecko.mk does its own thing due to the vendored crates,
and will need its own approach to this issue.
PR: 281600
Reviewed by: mikael (rust)
Approved by: mikael (rust)
MFH: 2026Q3
lang/rust: fix build on armv7
We have previously (cf. PR 282663) disabled the has_thread_local feature
on armv7 to work around an rtld bug. The bug was fixed with D42415, but
the workaround remained. Earlier this year, rust started to fail to
build due to the workaround, as the fallback TLS implementation is
limited to the number of pthread TLS keys (256) and rust has started to
consume more and more of them. While a temporary workaround reducing
the hunger for TLS keys was implemented in 2026Q2, we can actually just
reenable has_thread_local to go back to how things are supposed to work.
PR: 294545
Approved by: mikael (rust)
MFH: no
*/*: Sunset 12.4-RELEASE/12-STABLE from ports tree
- Remove all references to defunct ARCH arm
- Remove all references to defunct ARCH sparc64
- Remove x11-drivers/xf86-video-sunffb which requires defunct sparc64
ARCH
- Remove sysutils/afbinit requires defunct sparc64 ARCH
- Remove all references to bktr driver
- Remove all references to defunct FreeBSD_12
- Remove all references to OSVERSION/OSREL corresponding to 12
- Remove conditionals in Mk/Uses/cabal.mk
- Remove sparc reference from Mk/Uses/qt-dist.mk
- Remove BROKEN_sparc64/NOT_FOR_ARCH=sparc64
- Remove BROKEN_FreeBSD_12* from:
- Remove OpenSSL patches from:
- Remove conditional flags for OSVERSION >= 1300000 to fixed flags.
Also move conditional flags for non sparc64/arm ARCH to fixed flags.
Reviewed by: brooks, jbeich, rene, salvadore
Differential Revision: https://reviews.freebsd.org/D42068
all: remove explicit versions in USES=python for "3.x+"
The logic in USES=python will automatically convert this to 3.8+ by
itself.
Adjust two ports that only had Python 3.7 mentioned but build fine
on Python 3.8 too.
finance/quickfix: mark BROKEN with PYTHON
libtool: compile: c++ -DHAVE_CONFIG_H -I. -I../.. -I -I. -I.. -I../.. -I../C++
-DLIBICONV_PLUG -DPYTHON_MAJOR_VERSION=3 -Wno-unused-variable
-Wno-maybe-uninitialized -O2 -pipe -DLIBICONV_PLUG -fstack-protector-strong
-fno-strict-aliasing -DLIBICONV_PLUG -Wall -ansi
-Wno-unused-command-line-argument -Wpointer-arith -Wwrite-strings
-Wno-overloaded-virtual -Wno-deprecated-declarations -Wno-deprecated -std=c++0x
-MT _quickfix_la-QuickfixPython.lo -MD -MP -MF
.deps/_quickfix_la-QuickfixPython.Tpo -c QuickfixPython.cpp -fPIC -DPIC -o
.libs/_quickfix_la-QuickfixPython.o
warning: unknown warning option '-Wno-maybe-uninitialized'; did you mean
'-Wno-uninitialized'? [-Wunknown-warning-option]
QuickfixPython.cpp:175:11: fatal error: 'Python.h' file not found
^~~~~~~~~~
1 warning and 1 error generated.
Reviewed by: portmgr, vishwin, yuri
Differential Revision: <https://reviews.freebsd.org/D40568>
*/*: Update path set in BUILD_DEPENDS for CMake in more ports
Commit b23ea4e2d2f51b53d8915fe9fd7b4efbdd575e38 changed its location to
devel/cmake-core
Approved by: portmgr (blanket)
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
rust: bring back update to 1.63
Revert back the revert of the update of rust and related commits
This revert was drive by beside validation by portmgr via exp-run
and not respectful of the etiquette we have between committers
This reverts commit 8ecb1f8141144c1603eb4026122d2e60eeaccd64.
This reverts commit 04d257baa182926cff158f32cf459e560426add0.
This reverts commit 2757c63bd0e6d01f9f0657fe03bb3a7b49adcae2.
This reverts commit 75f4713de5e3fbd1c6a0cb572e08121814a4072e.
This reverts commit e88e592111c86fdd1c0ac8717dbef9342e15e27c.
This reverts commit 783c056d7d681d66e2c5c59251c275d65274028e.
With hat: portmgr
Revert "lang/rust: Update to 1.63.0"
This reverts commit f36cc819accadae1fefc14c203e5fbe9c74e1492.
I asked for an exp-run for powerpc and powerpc64 on a recently provided
cluster machine but got no reply.
PR: 265915
lang/rust: Add riscv64 (riscv64gc-unknown-freebsd) support
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
lang/rust: Update to 1.57.0
- 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 d5f09dc31fcfdb77b69c86b9093bf67ec67653d9
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
lang/rust*: Move the build artifacts out of source
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.
Style: improve ONLY_FOR_ARCHS_REASON (grammar, markup, etc.)
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.
lang/rust*: Mk/Uses/cargo.mk: Move TMPDIR to WRKDIR
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
lang/rust-bootstrap: Export MASTER_SITES via .MAKEFLAGS for makesum
Just replacing one hack with another. With this it is localized
on one line and we no longer need .export and MASTER_SITES with ?=
lang/rust-bootstrap: Unbreak makesum after d50822c34fe1
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)
lang/rust-bootstrap: Try to unbreak powerpc build
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
Mk/Uses/ninja.mk: Add support for devel/samurai (D29353)
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
lang/rust-bootstrap: Unbreak aarch64 bootstrap
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.
lang/rust: Fix DOCS build, unbreak RUST_BACKTRACE
- 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]