lang/rust-nightly: Update to 1.83.0

This commit is contained in:
Mikael Urankar 2024-10-02 10:38:54 +02:00
commit 9e25c683b8

View file

@ -1,5 +1,5 @@
# Run update.sh to update to the latest nightly
PORTVERSION= 1.80.0.${NIGHTLY_DATE:C,-,,g}
PORTVERSION= 1.83.0.${NIGHTLY_DATE:C,-,,g}
# Always set PORTREVISION explicitly as otherwise it is inherited from lang/rust
PORTREVISION= 0
PKGNAMESUFFIX= -nightly
@ -14,8 +14,8 @@ MASTERDIR= ${.CURDIR}/../rust
PATCHDIR= ${.CURDIR}/files
DISTINFO_FILE= ${.CURDIR}/distinfo
NIGHTLY_DATE= 2024-05-07
BOOTSTRAPS_DATE= 2024-04-29
NIGHTLY_DATE= 2024-10-01
BOOTSTRAPS_DATE= 2024-09-22
RUST_BOOTSTRAP_VERSION= beta
.include "${MASTERDIR}/Makefile"

View file

@ -1,9 +1,9 @@
TIMESTAMP = 1715170997
SHA256 (rust/2024-05-07/rustc-nightly-src.tar.xz) = 980396ea6f15b926155ffaab4d56f70a0729a18a98ed99fe11004b5709855458
SIZE (rust/2024-05-07/rustc-nightly-src.tar.xz) = 162781340
SHA256 (rust/2024-04-29/rustc-beta-x86_64-unknown-freebsd.tar.xz) = 786f40030dbe5e6897aafe4bda44770920b2010b93fc5ce86574774e531e2eff
SIZE (rust/2024-04-29/rustc-beta-x86_64-unknown-freebsd.tar.xz) = 75473648
SHA256 (rust/2024-04-29/rust-std-beta-x86_64-unknown-freebsd.tar.xz) = 69626178bc5309afc8a02c941bd77e70e1aa6917ffb6bf0d67a57d921b5c664a
SIZE (rust/2024-04-29/rust-std-beta-x86_64-unknown-freebsd.tar.xz) = 27096208
SHA256 (rust/2024-04-29/cargo-beta-x86_64-unknown-freebsd.tar.xz) = 7fab806227d1a3be817602abb121ac7e039ba0bbf81e0a1d47bdcccca74203c6
SIZE (rust/2024-04-29/cargo-beta-x86_64-unknown-freebsd.tar.xz) = 9257888
TIMESTAMP = 1727858204
SHA256 (rust/2024-10-01/rustc-nightly-src.tar.xz) = 46c2d963da26229b8cdeed978b5c9affa091486015d474c1f8a754282a332d1a
SIZE (rust/2024-10-01/rustc-nightly-src.tar.xz) = 353516056
SHA256 (rust/2024-09-22/rustc-beta-x86_64-unknown-freebsd.tar.xz) = aeabedce922b315fb872127a6102a76e9fe5e1932b14a7210f31191f9a85488b
SIZE (rust/2024-09-22/rustc-beta-x86_64-unknown-freebsd.tar.xz) = 81004732
SHA256 (rust/2024-09-22/rust-std-beta-x86_64-unknown-freebsd.tar.xz) = 8749c2ae47644c16f62a310500ab91e5403a25c3e023a2c6e25cfa16217c98e9
SIZE (rust/2024-09-22/rust-std-beta-x86_64-unknown-freebsd.tar.xz) = 28846744
SHA256 (rust/2024-09-22/cargo-beta-x86_64-unknown-freebsd.tar.xz) = 7912a49f7a181145b71a197014e3de6594b216959cd7c95a003fcd13854cb056
SIZE (rust/2024-09-22/cargo-beta-x86_64-unknown-freebsd.tar.xz) = 9536628

View file

@ -1,28 +0,0 @@
Attempt to fix intermittent "can't find crate for `std`" build failures
The location of rustc (found via env::current_exe()) is used to
find the right libstd. However it might have been "copied" by
creating a hard link to the new location instead. Like /proc/curproc/file,
KERN_PROC_PATHNAME (used internally by current_exe()) can return
any of the file's multiple paths. Most of the time it returns the
right rustc path and the build will succeed but occasionally it
will return the "wrong" path and the build fails with:
error[E0463]: can't find crate for `std`
If this is right a viable workaround should be to never create hard
links during the build, so let's try that.
--- src/bootstrap/lib.rs.orig 2020-07-23 20:16:43 UTC
+++ src/bootstrap/lib.rs
@@ -1173,10 +1173,6 @@ impl Build {
if metadata.file_type().is_symlink() {
let link = t!(fs::read_link(src));
t!(symlink_file(link, dst));
- } else if let Ok(()) = fs::hard_link(src, dst) {
- // Attempt to "easy copy" by creating a hard link
- // (symlinks don't work on windows), but if that fails
- // just fall back to a slow `copy` operation.
} else {
if let Err(e) = fs::copy(src, dst) {
panic!("failed to copy `{}` to `{}`: {}", src.display(), dst.display(), e)

View file

@ -1,39 +0,0 @@
There seems to be some kind of race when using llvm-config-wrapper
for building rust-lld. Attempt to improve reliability of the build
by not using it. llvm-config-wrapper is a hack in the first place
that is only really needed on Windows.
--- src/bootstrap/native.rs.orig 2022-05-01 20:28:31 UTC
+++ src/bootstrap/native.rs
@@ -918,22 +918,6 @@ impl Step for Lld {
let mut cfg = cmake::Config::new(builder.src.join("src/llvm-project/lld"));
configure_cmake(builder, target, &mut cfg, true, LdFlags::default());
- // This is an awful, awful hack. Discovered when we migrated to using
- // clang-cl to compile LLVM/LLD it turns out that LLD, when built out of
- // tree, will execute `llvm-config --cmakedir` and then tell CMake about
- // that directory for later processing. Unfortunately if this path has
- // forward slashes in it (which it basically always does on Windows)
- // then CMake will hit a syntax error later on as... something isn't
- // escaped it seems?
- //
- // Instead of attempting to fix this problem in upstream CMake and/or
- // LLVM/LLD we just hack around it here. This thin wrapper will take the
- // output from llvm-config and replace all instances of `\` with `/` to
- // ensure we don't hit the same bugs with escaping. It means that you
- // can't build on a system where your paths require `\` on Windows, but
- // there's probably a lot of reasons you can't do that other than this.
- let llvm_config_shim = env::current_exe().unwrap().with_file_name("llvm-config-wrapper");
-
// Re-use the same flags as llvm to control the level of debug information
// generated for lld.
let profile = match (builder.config.llvm_optimize, builder.config.llvm_release_debuginfo) {
@@ -945,7 +929,7 @@ impl Step for Lld {
cfg.out_dir(&out_dir)
.profile(profile)
.env("LLVM_CONFIG_REAL", &llvm_config)
- .define("LLVM_CONFIG_PATH", llvm_config_shim)
+ .define("LLVM_CONFIG_PATH", &llvm_config)
.define("LLVM_INCLUDE_TESTS", "OFF");
// While we're using this horrible workaround to shim the execution of

View file

@ -0,0 +1,11 @@
--- compiler/rustc_target/src/abi/call/powerpc64.rs.orig 2020-03-09 22:11:17 UTC
+++ compiler/rustc_target/src/abi/call/powerpc64.rs
@@ -123,7 +123,7 @@ where
ELFv2
} else {
match cx.data_layout().endian {
- Endian::Big => ELFv1,
+ Endian::Big => ELFv2,
Endian::Little => ELFv2,
}
};

View file

@ -1,4 +1,6 @@
--- compiler/rustc_target/src/spec/targets/i686_unknown_freebsd.rs.orig 2023-11-27 08:52:00 UTC
i386 should be pentiumpro (no SSE2, no ...)
--- compiler/rustc_target/src/spec/targets/i686_unknown_freebsd.rs.orig 2023-12-22 11:18:00 UTC
+++ compiler/rustc_target/src/spec/targets/i686_unknown_freebsd.rs
@@ -2,7 +2,7 @@ pub fn target() -> Target {

View file

@ -0,0 +1,10 @@
--- library/backtrace/src/backtrace/mod.rs.orig 2024-10-02 09:23:54.876659000 +0200
+++ library/backtrace/src/backtrace/mod.rs 2024-10-02 09:23:44.139133000 +0200
@@ -176,6 +176,7 @@ cfg_if::cfg_if! {
unix,
not(target_os = "emscripten"),
not(all(target_os = "ios", target_arch = "arm")),
+ not(all(target_os = "freebsd", target_arch = "riscv64")),
),
all(
target_env = "sgx",

View file

@ -13,7 +13,7 @@ be stabilized first. It will be available in Rust 1.56.
--- src/tools/cargo/src/cargo/sources/git/source.rs.orig 2021-10-04 20:59:57 UTC
+++ src/tools/cargo/src/cargo/sources/git/source.rs
@@ -195,6 +195,9 @@ impl<'cfg> Source for GitSource<'cfg> {
@@ -205,6 +205,9 @@ impl<'cfg> Source for GitSource<'cfg> {
kind: QueryKind,
f: &mut dyn FnMut(IndexSummary),
) -> Poll<CargoResult<()>> {
@ -23,14 +23,14 @@ be stabilized first. It will be available in Rust 1.56.
if let Some(src) = self.path_source.as_mut() {
src.query(dep, kind, f)
} else {
@@ -217,6 +220,10 @@ impl<'cfg> Source for GitSource<'cfg> {
fn block_until_ready(&mut self) -> CargoResult<()> {
@@ -228,6 +231,10 @@ impl<'cfg> Source for GitSource<'cfg> {
if self.path_source.is_some() {
self.mark_used(None)?;
+ return Ok(());
return Ok(());
+ }
+
+ if std::env::var("CARGO_FREEBSD_PORTS_SKIP_GIT_UPDATE").is_ok() {
return Ok(());
+ return Ok(());
}
let git_fs = self.config.git_path();

View file

@ -8,92 +8,10 @@ until LLVM can be updated to use libc++ by default.
https://reviews.llvm.org/D77776
--- vendor/cc-1.0.73/src/lib.rs.orig 2021-03-04 20:58:54 UTC
+++ vendor/cc-1.0.73/src/lib.rs
@@ -2659,24 +2659,7 @@ impl Tool {
}
fn with_features(path: PathBuf, clang_driver: Option<&str>, cuda: bool) -> Self {
- // Try to detect family of the tool from its name, falling back to Gnu.
- let family = if let Some(fname) = path.file_name().and_then(|p| p.to_str()) {
- if fname.contains("clang-cl") {
- ToolFamily::Msvc { clang_cl: true }
- } else if fname.ends_with("cl") || fname == "cl.exe" {
- ToolFamily::Msvc { clang_cl: false }
- } else if fname.contains("clang") {
- match clang_driver {
- Some("cl") => ToolFamily::Msvc { clang_cl: true },
- _ => ToolFamily::Clang,
- }
- } else {
- ToolFamily::Gnu
- }
- } else {
- ToolFamily::Gnu
- };
-
+ let family = ToolFamily::Gnu;
Tool {
path: path,
cc_wrapper_path: None,
cc-1.1.10/ cc-1.1.22/
--- vendor/cc-1.0.79/src/lib.rs.orig 2021-03-04 20:58:54 UTC
+++ vendor/cc-1.0.79/src/lib.rs
@@ -2659,24 +2659,7 @@ impl Tool {
}
fn with_features(path: PathBuf, clang_driver: Option<&str>, cuda: bool) -> Self {
- // Try to detect family of the tool from its name, falling back to Gnu.
- let family = if let Some(fname) = path.file_name().and_then(|p| p.to_str()) {
- if fname.contains("clang-cl") {
- ToolFamily::Msvc { clang_cl: true }
- } else if fname.ends_with("cl") || fname == "cl.exe" {
- ToolFamily::Msvc { clang_cl: false }
- } else if fname.contains("clang") {
- match clang_driver {
- Some("cl") => ToolFamily::Msvc { clang_cl: true },
- _ => ToolFamily::Clang,
- }
- } else {
- ToolFamily::Gnu
- }
- } else {
- ToolFamily::Gnu
- };
-
+ let family = ToolFamily::Gnu;
Tool {
path: path,
cc_wrapper_path: None,
--- vendor/cc-1.0.90/src/tool.rs.orig 2024-03-18 11:23:17 UTC
+++ vendor/cc-1.0.90/src/tool.rs
@@ -122,22 +122,7 @@ impl Tool {
};
// Try to detect family of the tool from its name, falling back to Gnu.
- let family = if let Some(fname) = path.file_name().and_then(|p| p.to_str()) {
- if fname.contains("clang-cl") {
- ToolFamily::Msvc { clang_cl: true }
- } else if fname.ends_with("cl") || fname == "cl.exe" {
- ToolFamily::Msvc { clang_cl: false }
- } else if fname.contains("clang") {
- match clang_driver {
- Some("cl") => ToolFamily::Msvc { clang_cl: true },
- _ => ToolFamily::Clang,
- }
- } else {
- detect_family(&path)
- }
- } else {
- detect_family(&path)
- };
+ let family = ToolFamily::Gnu;
Tool {
path,
--- vendor/cc-1.0.92/src/tool.rs.orig 2024-05-09 18:20:47 UTC
+++ vendor/cc-1.0.92/src/tool.rs
--- vendor/cc-1.0.105/src/tool.rs.orig 2024-05-09 18:20:47 UTC
+++ vendor/cc-1.0.105/src/tool.rs
@@ -151,9 +151,7 @@ impl Tool {
match (clang, accepts_cl_style_flags, gcc) {
@ -105,3 +23,31 @@ https://reviews.llvm.org/D77776
(false, false, true) => Ok(ToolFamily::Gnu),
(false, false, false) => {
cargo_output.print_warning(&"Compiler family detection failed since it does not define `__clang__`, `__GNUC__` or `_MSC_VER`, fallback to treating it as GNU");
--- vendor/cc-1.1.10/src/tool.rs.orig 2024-05-09 18:20:47 UTC
+++ vendor/cc-1.1.10/src/tool.rs
@@ -151,9 +151,7 @@ impl Tool {
match (clang, accepts_cl_style_flags, gcc) {
(clang_cl, true, _) => Ok(ToolFamily::Msvc { clang_cl }),
- (true, false, _) => Ok(ToolFamily::Clang {
- zig_cc: is_zig_cc(path, cargo_output),
- }),
+ (true, false, _) => Ok(ToolFamily::Gnu),
(false, false, true) => Ok(ToolFamily::Gnu),
(false, false, false) => {
cargo_output.print_warning(&"Compiler family detection failed since it does not define `__clang__`, `__GNUC__` or `_MSC_VER`, fallback to treating it as GNU");
--- vendor/cc-1.1.22/src/tool.rs.orig 2024-10-02 09:43:22.970422000 +0200
+++ vendor/cc-1.1.22/src/tool.rs 2024-10-02 09:50:42.836352000 +0200
@@ -174,9 +174,7 @@ impl Tool {
match (clang, accepts_cl_style_flags, gcc, emscripten, vxworks) {
(clang_cl, true, _, false, false) => Ok(ToolFamily::Msvc { clang_cl }),
- (true, _, _, _, false) | (_, _, _, true, false) => Ok(ToolFamily::Clang {
- zig_cc: is_zig_cc(path, cargo_output),
- }),
+ (true, _, _, _, false) | (_, _, _, true, false) => Ok(ToolFamily::Gnu),
(false, false, true, _, false) | (_, _, _, _, true) => Ok(ToolFamily::Gnu),
(false, false, false, false, false) => {
cargo_output.print_warning(&"Compiler family detection failed since it does not define `__clang__`, `__GNUC__`, `__EMSCRIPTEN__` or `__VXWORKS__`, also does not accept cl style flag `-?`, fallback to treating it as GNU");

View file

@ -0,0 +1,20 @@
--- vendor/nix-0.28.0/src/sys/signal.rs.orig 2024-06-14 14:06:00 UTC
+++ vendor/nix-0.28.0/src/sys/signal.rs
@@ -1099,7 +1099,7 @@ pub type type_of_thread_id = libc::lwpid_t;
#[cfg(target_os = "freebsd")]
pub type type_of_thread_id = libc::lwpid_t;
/// Identifies a thread for [`SigevNotify::SigevThreadId`]
-#[cfg(all(not(target_os = "hurd"), any(target_env = "gnu", target_env = "uclibc")))]
+#[cfg(all(not(any(target_os = "freebsd", target_os = "hurd")), any(target_env = "gnu", target_env = "uclibc")))]
pub type type_of_thread_id = libc::pid_t;
/// Specifies the notification method used by a [`SigEvent`]
@@ -1349,7 +1349,7 @@ mod sigevent {
sev.sigev_value.sival_ptr = si_value as *mut libc::c_void;
sev._sigev_un._threadid = thread_id;
}
- #[cfg(any(target_env = "gnu", target_env = "uclibc"))]
+ #[cfg(all(not(target_os = "freebsd"), any(target_env = "gnu", target_env = "uclibc")))]
SigevNotify::SigevThreadId{signal, thread_id, si_value} => {
sev.sigev_notify = libc::SIGEV_THREAD_ID;
sev.sigev_signo = signal as libc::c_int;

View file

@ -14,10 +14,11 @@ fetch -qo /tmp/channel-rust-nightly.toml https://static.rust-lang.org/dist/chann
new_commit=$(</tmp/channel-rust-nightly.toml tomlq -r '.pkg.rustc.git_commit_hash')
rm /tmp/channel-rust-nightly.toml
fetch -qo - https://raw.githubusercontent.com/rust-lang/rust/${new_commit}/src/stage0.json | jq -r '
"BOOTSTRAPS_DATE=\(.compiler.date)",
"RUST_BOOTSTRAP_VERSION=\(.compiler.version)"
' | portedit merge -i .
fetch -qo /tmp/stage0 https://raw.githubusercontent.com/rust-lang/rust/${new_commit}/src/stage0
BOOTSTRAPS_DATE=$(awk -F "=" /^compiler_date/'{print $2}' /tmp/stage0)
RUST_BOOTSTRAP_VERSION=$(awk -F "=" /^compiler_version/'{print $2}' /tmp/stage0)
echo "BOOTSTRAPS_DATE=${BOOTSTRAPS_DATE}" | portedit merge -i .
echo "RUST_BOOTSTRAP_VERSION=${RUST_BOOTSTRAP_VERSION}" | portedit merge -i .
make makesum
echo "lang/rust-nightly: Update to $(make -V PORTVERSION)

View file

@ -66,7 +66,7 @@ SOURCES_VARS= _COMPONENTS+=rust-src-${_PACKAGE_VERS} \
WASM_VARS= _COMPONENTS+="rust-analysis-${_PACKAGE_VERS}-wasm32-unknown-unknown rust-std-${_PACKAGE_VERS}-wasm32-unknown-unknown" \
_RUST_TARGETS+=wasm32-unknown-unknown
# See WRKSRC/src/stage0.json for the date and version values
# See WRKSRC/src/stage0 for the date and version values
BOOTSTRAPS_DATE?= 2024-08-08
RUST_BOOTSTRAP_VERSION?= 1.80.0
@ -139,7 +139,7 @@ DISTFILES:= ${DISTFILES:M*\:src} \
post-patch:
@${REINPLACE_CMD} 's,gdb,${LOCALBASE}/bin/gdb,' ${WRKSRC}/src/etc/rust-gdb
.if defined(NIGHTLY_DATE)
@${REINPLACE_CMD} 's/"rustfmt"/"nothx"/' ${WRKSRC}/src/stage0.json
@${REINPLACE_CMD} 's/rustfmt/nothx/' ${WRKSRC}/src/stage0
.endif
# Disable vendor checksums
@${REINPLACE_CMD} 's,"files":{[^}]*},"files":{},' \
@ -193,6 +193,9 @@ do-configure:
.endif
@${ECHO_CMD} 'remap-debuginfo=true' >> ${WRKSRC}/config.toml
@${ECHO_CMD} '[llvm]' >> ${WRKSRC}/config.toml
.if defined(NIGHTLY_DATE)
@${ECHO_CMD} 'download-ci-llvm = false' >> ${WRKSRC}/config.toml
.endif
.if ${PORT_OPTIONS:MLTO}
@${ECHO_CMD} 'thin-lto=true' >> ${WRKSRC}/config.toml
.endif
@ -228,10 +231,6 @@ do-configure:
.endfor
@${ECHO_CMD} '[dist]' >> ${WRKSRC}/config.toml
@${ECHO_CMD} 'src-tarball=false' >> ${WRKSRC}/config.toml
.if defined(NIGHTLY_DATE)
# Don't abort if optional tools fail to build
@${ECHO_CMD} 'missing-tools=true' >> ${WRKSRC}/config.toml
.endif
do-build:
@cd ${WRKSRC} && \