Re: dns/bind916 builds rust unexpectedly
- In reply to: Tomoaki AOKI : "Re: dns/bind916 builds rust unexpectedly"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 27 Sep 2023 10:33:35 UTC
Tomoaki AOKI wrote: > On Tue, 26 Sep 2023 22:03:18 +0200 > Thierry Thomas <thierry@freebsd.org> wrote: >> This is true, but rust is very heavy, and it seems to be updated quiet >> frequently. >> >> Just an idea: maybe it could be possible to repocopy lang/rust to e.g. >> lang/rust-devel (we already have rust-nightly), lang/rust being a stable >> release, used to compile the depending ports, and rust-devel being used >> by rust developers and updated more frequently. >> Not really feasible, even if some other major changes happen. Every actual release is deemed stable. >> I do not know if these ports would be installed at the same place, with >> CONFLICTS_INSTALL, or if would be better to install the -devel port >> with some suffix? [rust@FreeBSD.org added to Cc:] > They would conflict big time by default. > There is lang/rust-nightly [1] [2], which may be the -devel version. > IIRC, this is not so frequently updated. currently, the latest update > was to 1.72.0.20230612 at Jun.20, 2023, while lang/rust 1.72.0 landed > at Sep.08, 2023. > > The problem, I think, is that all BUILD_DEPEND'ed ports are basically > bumped when lang/rust is updated. > > I'm not at all a rust developer nor porter, but if possible, files > causing the rebuild (would be statically linked files like crt0.o in C) > would be better splitted into individual port(s) and updated only when > its source code is updated (and, if applicable, the behaviour of > resulting binary is ACTUALLY changed WITH BACKWARD-INCOMPATIBLE WAY by > rust code generator or optimizer) and all rust[-nightly] consumers > LIB_DEPEND to them. > Every Rust release contains changes to the compiler itself and the supporting cast in dependent crates and external non-Rust libraries including LLVM. Crates are always built as single unit outputs, with all dependencies built together. Unless the crate uses FFI, the only dynamic linking by default is with libc. Think of the bumps like every time a new LLVM/clang is getting prepared for -CURRENT. https://rustc-dev-guide.rust-lang.org/overview.html https://doc.rust-lang.org/reference/crates-and-source-files.html https://doc.rust-lang.org/reference/linkage.html -- Charlie Li ...nope, still don't have an exit line.