Re: lang/rust/Makefile for 1.82.0 has wrong llvm:min= value; more

From: Mark Millard <marklmi_at_yahoo.com>
Date: Thu, 14 Nov 2024 22:26:42 UTC
On Nov 14, 2024, at 13:21, Charlie Li <vishwin@freebsd.org> wrote:

> Mark Millard wrote:
>> https://github.com/rust-lang/rust/pull/130487 reports . . .
>> QUOTE
>> Update the minimum external LLVM to 18 #130487
>> With this change, we'll have stable support for LLVM 18 and 19.
>> For reference, the previous increase to LLVM 17 was #122649.
>> END QUOTE
>> Note: the internal LLVM is 19 for 1.82.0 .

> This commit is not in the 1.82 releases so the USES=llvm values remain correct. It will be bumped for 1.83 as tagged in the pull request.> It leads me to wonder if lang/rust should be using an external

From using pkg to update to the recent official lang/rust distribution:

# rustc -vV
rustc 1.82.0 (f6e511eec 2024-10-15) (built from a source tarball)
binary: rustc
commit-hash: f6e511eec7342f59a25f7c0534f1dbea00d01b14
commit-date: 2024-10-15
host: x86_64-unknown-freebsd
release: 1.82.0
LLVM version: 19.1.1

So the internal LLVM for lang/rust is LLVM 19.1.1 based as of that
update.

It is not my build, but is the official FreeBSD one for main [so:
15 as stands].

For reference:

# pkg info rust
rust-1.82.0_1
Name           : rust
Version        : 1.82.0_1
Installed on   : Thu Nov 14 22:09:53 2024 UTC
Origin         : lang/rust
Architecture   : FreeBSD:15:amd64
Prefix         : /usr/local
Categories     : lang
Licenses       : MIT or APACHE20
Maintainer     : rust@FreeBSD.org
WWW            : https://www.rust-lang.org/
Comment        : Language with a focus on memory safety and concurrency
Options        :
	DOCS           : on
	GDB            : off
	LTO            : off
	PORT_LLVM      : off
	SOURCES        : on
	WASM           : on
Shared Libs required:
	libcurl.so.4
Shared Libs provided:
	libstd-d4ce5f4319a0892a.so
	librustc_driver-3dd68610bfbc3827.so
Annotations    :
	FreeBSD_version: 1500026
	build_timestamp: 2024-11-12T01:08:37+0000
	built_by       : poudriere-git-3.4.2
	cpe            : cpe:2.3:a:rust-lang:rust:1.82.0:::::freebsd15:x64:1
	port_checkout_unclean: no
	port_git_hash  : b039f2e46b1
	ports_top_checkout_unclean: no
	ports_top_git_hash: ea7acb65556
	repo_type      : binary
	repository     : FreeBSD
Flat size      : 1.14GiB
. . .

The only way the internal LLVM for lang/rust ends up being based on
LLVM 18 for 1.82.0 is via use of PORT_LLVM , which the official
FreeBSD package builders do not do (at this time).

So lang/rust 1.82.0 builds can potentially have newer, LLVM 19
specific material if there is such.

>> devel/llvm* by default, set to match a default ports tree
>> LLVM to be used for major ports that involve lang/rust use.
> No. Not something upstream encourages by default even if support exists, especially because the default upstream builds use the bundled LLVM which is what most consumers qualify with.

The FreeBSD may at times have to update such that the default
LLVM is forced to well match the lang/rust default LLVM. That
might mean not updating lang/rust . (I'm not claiming there
are always conflicts to deal with when LLVM's mismatch, just
that there could be such at times.)


===
Mark Millard
marklmi at yahoo.com