Re: Using modern APIs in Rust on FreeBSD
- Reply: Konstantin Belousov : "Re: Using modern APIs in Rust on FreeBSD"
- In reply to: Alan Somers : "Using modern APIs in Rust on FreeBSD"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 22 Sep 2021 04:27:09 UTC
On Wed, Sep 22, 2021 at 6:08 AM Alan Somers <asomers@freebsd.org> wrote: > tldr; should the Rust ecosystem ditch FreeBSD 10 compat for new code? > > Rust uses FFI to talk to the OS's C library. That makes cross-compiling a > breeze. Unfortunately, it also fossilizes the ABI. FreeBSD's libc makes > careful use of ELF symbol versioning. That's how we were able to change > ino_t to 64-bits while maintaining backwards-compatibility with old > binaries, for example. But the Rust toolchain isn't able to take > advantage. Right now, the toolchain uses a FreeBSD 10 ABI, and the libc > crate (which virtually all crates depend on) uses a FreeBSD 11 ABI. > How exactly is the ABI fossilized? If Rust's FFI uses run-time dynamic linking, it should be able to use dlvsym() to access the correct version of libc symbols. Damjan