[Bug 297814] riscv: remove COMPAT11 dependency for 223 ports
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 297814] riscv: remove COMPAT11 dependency for 223 ports"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 297814] riscv: remove COMPAT11 dependency for 223 ports"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 297814] riscv: remove COMPAT11 dependency for 223 ports"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 297814] riscv: remove COMPAT11 dependency for 223 ports"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 297814] riscv: remove COMPAT11 dependency for 223 ports"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 23 Aug 2026 14:59:01 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=297814
Bug ID: 297814
Summary: riscv: remove COMPAT11 dependency for 223 ports
Product: Ports & Packages
Version: Latest
Hardware: Any
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: Individual Port(s)
Assignee: ports-bugs@FreeBSD.org
Reporter: asomers@FreeBSD.org
CC: alexey@pentode.fi, bofh@freebsd.org,
driesm@freebsd.org, lcook@freebsd.org,
nivit@FreeBSD.org, pizzamig@freebsd.org,
sunpoet@FreeBSD.org, vishwin@freebsd.org,
vladislav.movchan@gmail.com
CC: alexey@pentode.fi, bofh@freebsd.org,
driesm@freebsd.org, lcook@freebsd.org,
nivit@FreeBSD.org, pizzamig@freebsd.org,
sunpoet@FreeBSD.org, vishwin@freebsd.org,
vladislav.movchan@gmail.com
Rust uses FFI to bind C libraries, which makes cross-compiling a breeze. But
it also means that Rust programs don't automatically pick up newer versions of
functions that employ ELF symbol versioning. As a result, for years Rust stuck
with a FreeBSD 11 ABI. That is a particular problem for RISCV, which doesn't
enable COMPAT11 in the kernel by default. So FreeBSD RISCV users can't run
most Rust programs unless they rebuild a custom kernel.
But as of libc-0.2.176 Rust now uses a FreeBSD 12 ABI. So any program that
uses it can run on a vanilla FreeBSD RISCV kernel.
But that was nearly a year ago, and many ports haven't updated. Fortunately,
libc is highly backwards compatible. I'm only aware of two Rust crates that
won't work with libc-0.2.186: nix < 0.25.0 and mio < 0.8.3. For any port that
doesn't depend on one of those, we can simply patch the port to use a newer
libc version, and resolve the COMPAT11 problem.
This patch does just that, for 223 ports.
Notes on specific ports:
* x11/wezterm: I have tested this myself. The others I have
build-tested only.
* textproc/bookokrat: Rework bookokrat's existing patch to be more
robust. Also, report the issue upstream:
https://github.com/bugzmanov/bookokrat/issues/182
* devel/tokei: delete a long obsolete patch file
* emulators/fab-agon-emulator: the build currently fails on
16.0-CURRENT. But it doesn't appear to be the result of this change.
* archivers/py-cramjam x11-fonts/py-shaperglot
These crates contained extra entries in CARGO_CRATES that didn't
need
to be there, perhaps because they were created using Rust's version
1
resolver. Remove the extras.
* security/sequoia-chameleon-gnupg security/sequoia-sq
"cargo update -p libc" insisted on updating some other crates, too.
* devel/cargo-generate editors/lapce finance/tickrs net-im/gurk-rs
net-p2p/oura textproc/mdbook-linkchec www/lychee
These creates contained an extra entry in CARGO_CRATES for
openssl-src.
I don't know why. Remove it.
* www/tuifeed
Alone among all the crates touched, this one uses cargo's --locked
argument. So I had to create a patch-Cargo.lock file for it.
There are several other ports that still use old versions of libc. But
for various reasons, each needs more attention that I can afford in this
already-large commit.
--
You are receiving this mail because:
You are the assignee for the bug.