mirror of
https://git.yoctoproject.org/poky
synced 2026-06-01 13:09:50 +00:00
rust: Upgrade 1.73.0 -> 1.74.0
Replace musl fixes with backports from upstream. Add sysconfdir to config.toml to fix: | thread 'main' panicked at install.rs:92:9: | User doesn't have write access on `install.sysconfdir` path in `config.toml`. https://blog.rust-lang.org/2023/11/16/Rust-1.74.0.html (From OE-Core rev: 84f46dd2503bb0ef238fef0097c66fda88f6cbda) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
537ed2b654
commit
8fd396bc3d
@@ -1,169 +0,0 @@
|
||||
From 3ecce665198e3420d70139d86ed22e74804c9379 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 28 Dec 2022 22:35:55 -0800
|
||||
Subject: [PATCH] Do not use LFS64 on linux with musl
|
||||
|
||||
glibc is providing open64 and other lfs64 functions but musl aliases
|
||||
them to normal equivalents since off_t is always 64-bit on musl,
|
||||
therefore check for target env along when target OS is linux before
|
||||
using open64, this is more available. Latest Musl has made these
|
||||
namespace changes [1]
|
||||
|
||||
[1] https://git.musl-libc.org/cgit/musl/commit/?id=246f1c811448f37a44b41cd8df8d0ef9736d95f4
|
||||
|
||||
Upstream-Status: Submitted [https://github.com/rust-lang/rust/pull/106246]
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
library/std/src/os/linux/fs.rs | 9 ++++++++-
|
||||
library/std/src/sys/unix/fd.rs | 14 ++++++++++----
|
||||
library/std/src/sys/unix/fs.rs | 27 ++++++++++++++++++++-------
|
||||
3 files changed, 38 insertions(+), 12 deletions(-)
|
||||
|
||||
Index: rustc-1.73.0-src/library/std/src/os/linux/fs.rs
|
||||
===================================================================
|
||||
--- rustc-1.73.0-src.orig/library/std/src/os/linux/fs.rs
|
||||
+++ rustc-1.73.0-src/library/std/src/os/linux/fs.rs
|
||||
@@ -329,7 +329,14 @@ pub trait MetadataExt {
|
||||
impl MetadataExt for Metadata {
|
||||
#[allow(deprecated)]
|
||||
fn as_raw_stat(&self) -> &raw::stat {
|
||||
- unsafe { &*(self.as_inner().as_inner() as *const libc::stat64 as *const raw::stat) }
|
||||
+ #[cfg(target_env = "musl")]
|
||||
+ unsafe {
|
||||
+ &*(self.as_inner().as_inner() as *const libc::stat as *const raw::stat)
|
||||
+ }
|
||||
+ #[cfg(not(target_env = "musl"))]
|
||||
+ unsafe {
|
||||
+ &*(self.as_inner().as_inner() as *const libc::stat64 as *const raw::stat)
|
||||
+ }
|
||||
}
|
||||
fn st_dev(&self) -> u64 {
|
||||
self.as_inner().as_inner().st_dev as u64
|
||||
Index: rustc-1.73.0-src/library/std/src/sys/unix/fd.rs
|
||||
===================================================================
|
||||
--- rustc-1.73.0-src.orig/library/std/src/sys/unix/fd.rs
|
||||
+++ rustc-1.73.0-src/library/std/src/sys/unix/fd.rs
|
||||
@@ -124,9 +124,12 @@ impl FileDesc {
|
||||
}
|
||||
|
||||
pub fn read_at(&self, buf: &mut [u8], offset: u64) -> io::Result<usize> {
|
||||
- #[cfg(not(any(target_os = "linux", target_os = "android")))]
|
||||
+ #[cfg(not(any(
|
||||
+ all(target_os = "linux", not(target_env = "musl")),
|
||||
+ target_os = "android"
|
||||
+ )))]
|
||||
use libc::pread as pread64;
|
||||
- #[cfg(any(target_os = "linux", target_os = "android"))]
|
||||
+ #[cfg(any(all(target_os = "linux", not(target_env = "musl")), target_os = "android"))]
|
||||
use libc::pread64;
|
||||
|
||||
unsafe {
|
||||
@@ -281,9 +284,12 @@ impl FileDesc {
|
||||
}
|
||||
|
||||
pub fn write_at(&self, buf: &[u8], offset: u64) -> io::Result<usize> {
|
||||
- #[cfg(not(any(target_os = "linux", target_os = "android")))]
|
||||
+ #[cfg(not(any(
|
||||
+ all(target_os = "linux", not(target_env = "musl")),
|
||||
+ target_os = "android"
|
||||
+ )))]
|
||||
use libc::pwrite as pwrite64;
|
||||
- #[cfg(any(target_os = "linux", target_os = "android"))]
|
||||
+ #[cfg(any(all(target_os = "linux", not(target_env = "musl")), target_os = "android"))]
|
||||
use libc::pwrite64;
|
||||
|
||||
unsafe {
|
||||
Index: rustc-1.73.0-src/library/std/src/sys/unix/fs.rs
|
||||
===================================================================
|
||||
--- rustc-1.73.0-src.orig/library/std/src/sys/unix/fs.rs
|
||||
+++ rustc-1.73.0-src/library/std/src/sys/unix/fs.rs
|
||||
@@ -39,9 +39,13 @@ use libc::{c_int, mode_t};
|
||||
all(target_os = "linux", target_env = "gnu")
|
||||
))]
|
||||
use libc::c_char;
|
||||
-#[cfg(any(target_os = "linux", target_os = "emscripten", target_os = "android"))]
|
||||
+#[cfg(any(
|
||||
+ all(target_os = "linux", not(target_env = "musl")),
|
||||
+ target_os = "emscripten",
|
||||
+ target_os = "android"
|
||||
+))]
|
||||
use libc::dirfd;
|
||||
-#[cfg(any(target_os = "linux", target_os = "emscripten"))]
|
||||
+#[cfg(any(not(target_env = "musl"), target_os = "emscripten"))]
|
||||
use libc::fstatat64;
|
||||
#[cfg(any(
|
||||
target_os = "android",
|
||||
@@ -53,7 +57,7 @@ use libc::fstatat64;
|
||||
target_os = "vita",
|
||||
))]
|
||||
use libc::readdir as readdir64;
|
||||
-#[cfg(target_os = "linux")]
|
||||
+#[cfg(all(target_os = "linux", not(target_env = "musl")))]
|
||||
use libc::readdir64;
|
||||
#[cfg(any(target_os = "emscripten", target_os = "l4re"))]
|
||||
use libc::readdir64_r;
|
||||
@@ -68,6 +72,7 @@ use libc::readdir64_r;
|
||||
target_os = "redox",
|
||||
target_os = "nto",
|
||||
target_os = "vita",
|
||||
+ target_env = "musl",
|
||||
)))]
|
||||
use libc::readdir_r as readdir64_r;
|
||||
#[cfg(target_os = "android")]
|
||||
@@ -75,7 +80,13 @@ use libc::{
|
||||
dirent as dirent64, fstat as fstat64, fstatat as fstatat64, ftruncate64, lseek64,
|
||||
lstat as lstat64, off64_t, open as open64, stat as stat64,
|
||||
};
|
||||
+#[cfg(target_env = "musl")]
|
||||
+use libc::{
|
||||
+ dirent as dirent64, fstat as fstat64, ftruncate as ftruncate64, lseek as lseek64,
|
||||
+ lstat as lstat64, off_t as off64_t, open as open64, stat as stat64,
|
||||
+};
|
||||
#[cfg(not(any(
|
||||
+ target_env = "musl",
|
||||
target_os = "linux",
|
||||
target_os = "emscripten",
|
||||
target_os = "l4re",
|
||||
@@ -85,7 +96,7 @@ use libc::{
|
||||
dirent as dirent64, fstat as fstat64, ftruncate as ftruncate64, lseek as lseek64,
|
||||
lstat as lstat64, off_t as off64_t, open as open64, stat as stat64,
|
||||
};
|
||||
-#[cfg(any(target_os = "linux", target_os = "emscripten", target_os = "l4re"))]
|
||||
+#[cfg(any(not(target_env = "musl"), target_os = "emscripten", target_os = "l4re"))]
|
||||
use libc::{dirent64, fstat64, ftruncate64, lseek64, lstat64, off64_t, open64, stat64};
|
||||
|
||||
pub use crate::sys_common::fs::try_exists;
|
||||
@@ -272,6 +283,7 @@ unsafe impl Sync for Dir {}
|
||||
#[cfg(any(
|
||||
target_os = "android",
|
||||
target_os = "linux",
|
||||
+ not(target_env = "musl"),
|
||||
target_os = "solaris",
|
||||
target_os = "illumos",
|
||||
target_os = "fuchsia",
|
||||
@@ -313,6 +325,7 @@ struct dirent64_min {
|
||||
}
|
||||
|
||||
#[cfg(not(any(
|
||||
+ target_env = "musl",
|
||||
target_os = "android",
|
||||
target_os = "linux",
|
||||
target_os = "solaris",
|
||||
@@ -809,7 +822,7 @@ impl DirEntry {
|
||||
}
|
||||
|
||||
#[cfg(all(
|
||||
- any(target_os = "linux", target_os = "emscripten", target_os = "android"),
|
||||
+ any(not(target_env = "musl"), target_os = "emscripten", target_os = "android"),
|
||||
not(miri)
|
||||
))]
|
||||
pub fn metadata(&self) -> io::Result<FileAttr> {
|
||||
@@ -833,7 +846,7 @@ impl DirEntry {
|
||||
}
|
||||
|
||||
#[cfg(any(
|
||||
- not(any(target_os = "linux", target_os = "emscripten", target_os = "android")),
|
||||
+ not(any(not(target_env = "musl"), target_os = "emscripten", target_os = "android")),
|
||||
miri
|
||||
))]
|
||||
pub fn metadata(&self) -> io::Result<FileAttr> {
|
||||
@@ -0,0 +1,163 @@
|
||||
From df423041e070dc30b835ecfea7181914e834e33d Mon Sep 17 00:00:00 2001
|
||||
From: git-bruh <e817509a-8ee9-4332-b0ad-3a6bdf9ab63f@aleeas.com>
|
||||
Date: Tue, 19 Sep 2023 19:47:50 +0530
|
||||
Subject: [PATCH] Don't use LFS64 symbols on musl
|
||||
|
||||
Simplify #[cfg] blocks
|
||||
|
||||
fmt
|
||||
|
||||
don't try to use the more appropriate direntry on musl
|
||||
|
||||
Upstream-Status: Backport [https://github.com/rust-lang/rust/pull/115968/commits/7a504cc68a56bfaa7855016c81ced9e6b1320fc5]
|
||||
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
|
||||
---
|
||||
library/std/src/os/linux/fs.rs | 9 ++++++++-
|
||||
library/std/src/sys/unix/fd.rs | 24 ++++++++++++++++++++----
|
||||
library/std/src/sys/unix/fs.rs | 23 ++++++++++++++---------
|
||||
3 files changed, 42 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/library/std/src/os/linux/fs.rs b/library/std/src/os/linux/fs.rs
|
||||
index 479bbcc17a89..ab0b2a3eda3f 100644
|
||||
--- a/library/std/src/os/linux/fs.rs
|
||||
+++ b/library/std/src/os/linux/fs.rs
|
||||
@@ -329,7 +329,14 @@ pub trait MetadataExt {
|
||||
impl MetadataExt for Metadata {
|
||||
#[allow(deprecated)]
|
||||
fn as_raw_stat(&self) -> &raw::stat {
|
||||
- unsafe { &*(self.as_inner().as_inner() as *const libc::stat64 as *const raw::stat) }
|
||||
+ #[cfg(target_env = "musl")]
|
||||
+ unsafe {
|
||||
+ &*(self.as_inner().as_inner() as *const libc::stat as *const raw::stat)
|
||||
+ }
|
||||
+ #[cfg(not(target_env = "musl"))]
|
||||
+ unsafe {
|
||||
+ &*(self.as_inner().as_inner() as *const libc::stat64 as *const raw::stat)
|
||||
+ }
|
||||
}
|
||||
fn st_dev(&self) -> u64 {
|
||||
self.as_inner().as_inner().st_dev as u64
|
||||
diff --git a/library/std/src/sys/unix/fd.rs b/library/std/src/sys/unix/fd.rs
|
||||
index 6c4f408426a9..bf1fb3123c4c 100644
|
||||
--- a/library/std/src/sys/unix/fd.rs
|
||||
+++ b/library/std/src/sys/unix/fd.rs
|
||||
@@ -126,9 +126,17 @@ pub fn read_to_end(&self, buf: &mut Vec<u8>) -> io::Result<usize> {
|
||||
}
|
||||
|
||||
pub fn read_at(&self, buf: &mut [u8], offset: u64) -> io::Result<usize> {
|
||||
- #[cfg(not(any(target_os = "linux", target_os = "android", target_os = "hurd")))]
|
||||
+ #[cfg(not(any(
|
||||
+ all(target_os = "linux", not(target_env = "musl")),
|
||||
+ target_os = "android",
|
||||
+ target_os = "hurd"
|
||||
+ )))]
|
||||
use libc::pread as pread64;
|
||||
- #[cfg(any(target_os = "linux", target_os = "android", target_os = "hurd"))]
|
||||
+ #[cfg(any(
|
||||
+ all(target_os = "linux", not(target_env = "musl")),
|
||||
+ target_os = "android",
|
||||
+ target_os = "hurd"
|
||||
+ ))]
|
||||
use libc::pread64;
|
||||
|
||||
unsafe {
|
||||
@@ -285,9 +293,17 @@ pub fn is_write_vectored(&self) -> bool {
|
||||
}
|
||||
|
||||
pub fn write_at(&self, buf: &[u8], offset: u64) -> io::Result<usize> {
|
||||
- #[cfg(not(any(target_os = "linux", target_os = "android", target_os = "hurd")))]
|
||||
+ #[cfg(not(any(
|
||||
+ all(target_os = "linux", not(target_env = "musl")),
|
||||
+ target_os = "android",
|
||||
+ target_os = "hurd"
|
||||
+ )))]
|
||||
use libc::pwrite as pwrite64;
|
||||
- #[cfg(any(target_os = "linux", target_os = "android", target_os = "hurd"))]
|
||||
+ #[cfg(any(
|
||||
+ all(target_os = "linux", not(target_env = "musl")),
|
||||
+ target_os = "android",
|
||||
+ target_os = "hurd"
|
||||
+ ))]
|
||||
use libc::pwrite64;
|
||||
|
||||
unsafe {
|
||||
diff --git a/library/std/src/sys/unix/fs.rs b/library/std/src/sys/unix/fs.rs
|
||||
index 764e1f257901..b61554098531 100644
|
||||
--- a/library/std/src/sys/unix/fs.rs
|
||||
+++ b/library/std/src/sys/unix/fs.rs
|
||||
@@ -40,13 +40,17 @@
|
||||
))]
|
||||
use libc::c_char;
|
||||
#[cfg(any(
|
||||
- target_os = "linux",
|
||||
+ all(target_os = "linux", not(target_env = "musl")),
|
||||
target_os = "emscripten",
|
||||
target_os = "android",
|
||||
- target_os = "hurd",
|
||||
+ target_os = "hurd"
|
||||
))]
|
||||
use libc::dirfd;
|
||||
-#[cfg(any(target_os = "linux", target_os = "emscripten", target_os = "hurd"))]
|
||||
+#[cfg(any(
|
||||
+ all(target_os = "linux", not(target_env = "musl")),
|
||||
+ target_os = "emscripten",
|
||||
+ target_os = "hurd"
|
||||
+))]
|
||||
use libc::fstatat64;
|
||||
#[cfg(any(
|
||||
target_os = "android",
|
||||
@@ -56,9 +60,10 @@
|
||||
target_os = "illumos",
|
||||
target_os = "nto",
|
||||
target_os = "vita",
|
||||
+ all(target_os = "linux", target_env = "musl"),
|
||||
))]
|
||||
use libc::readdir as readdir64;
|
||||
-#[cfg(any(target_os = "linux", target_os = "hurd"))]
|
||||
+#[cfg(any(all(target_os = "linux", not(target_env = "musl")), target_os = "hurd"))]
|
||||
use libc::readdir64;
|
||||
#[cfg(any(target_os = "emscripten", target_os = "l4re"))]
|
||||
use libc::readdir64_r;
|
||||
@@ -82,7 +87,7 @@
|
||||
lstat as lstat64, off64_t, open as open64, stat as stat64,
|
||||
};
|
||||
#[cfg(not(any(
|
||||
- target_os = "linux",
|
||||
+ all(target_os = "linux", not(target_env = "musl")),
|
||||
target_os = "emscripten",
|
||||
target_os = "l4re",
|
||||
target_os = "android",
|
||||
@@ -93,7 +98,7 @@
|
||||
lstat as lstat64, off_t as off64_t, open as open64, stat as stat64,
|
||||
};
|
||||
#[cfg(any(
|
||||
- target_os = "linux",
|
||||
+ all(target_os = "linux", not(target_env = "musl")),
|
||||
target_os = "emscripten",
|
||||
target_os = "l4re",
|
||||
target_os = "hurd"
|
||||
@@ -829,10 +834,10 @@ pub fn file_name(&self) -> OsString {
|
||||
|
||||
#[cfg(all(
|
||||
any(
|
||||
- target_os = "linux",
|
||||
+ all(target_os = "linux", not(target_env = "musl")),
|
||||
target_os = "emscripten",
|
||||
target_os = "android",
|
||||
- target_os = "hurd",
|
||||
+ target_os = "hurd"
|
||||
),
|
||||
not(miri)
|
||||
))]
|
||||
@@ -858,7 +863,7 @@ pub fn metadata(&self) -> io::Result<FileAttr> {
|
||||
|
||||
#[cfg(any(
|
||||
not(any(
|
||||
- target_os = "linux",
|
||||
+ all(target_os = "linux", not(target_env = "musl")),
|
||||
target_os = "emscripten",
|
||||
target_os = "android",
|
||||
target_os = "hurd",
|
||||
--
|
||||
2.39.0
|
||||
|
||||
+122
File diff suppressed because one or more lines are too long
-115
File diff suppressed because one or more lines are too long
+41
File diff suppressed because one or more lines are too long
+205
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+115
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
When building for the target, some build paths end up embedded in the binaries.
|
||||
When building for the target, some build paths end up embedded in the binaries.
|
||||
These changes remove that. Further investigation is needed to work out the way
|
||||
to resolve these issues properly upstream.
|
||||
|
||||
@@ -6,19 +6,19 @@ Upstream-Status: Inappropriate [patches need rework]
|
||||
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
||||
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
|
||||
|
||||
Index: rustc-1.73.0-src/compiler/rustc_codegen_llvm/src/context.rs
|
||||
===================================================================
|
||||
--- rustc-1.73.0-src.orig/compiler/rustc_codegen_llvm/src/context.rs
|
||||
+++ rustc-1.73.0-src/compiler/rustc_codegen_llvm/src/context.rs
|
||||
@@ -157,46 +157,6 @@ pub unsafe fn create_module<'ll>(
|
||||
diff --git a/compiler/rustc_codegen_llvm/src/context.rs b/compiler/rustc_codegen_llvm/src/context.rs
|
||||
index b4b2ab1e1f8a..8bb3e3f0557c 100644
|
||||
--- a/compiler/rustc_codegen_llvm/src/context.rs
|
||||
+++ b/compiler/rustc_codegen_llvm/src/context.rs
|
||||
@@ -158,46 +158,6 @@ pub unsafe fn create_module<'ll>(
|
||||
}
|
||||
}
|
||||
|
||||
- // Ensure the data-layout values hardcoded remain the defaults.
|
||||
- if sess.target.is_builtin {
|
||||
- // tm is disposed by its drop impl
|
||||
- let tm = crate::back::write::create_informational_target_machine(tcx.sess);
|
||||
- llvm::LLVMRustSetDataLayoutFromTargetMachine(llmod, tm);
|
||||
- llvm::LLVMRustDisposeTargetMachine(tm);
|
||||
- llvm::LLVMRustSetDataLayoutFromTargetMachine(llmod, &tm);
|
||||
-
|
||||
- let llvm_data_layout = llvm::LLVMGetDataLayoutStr(llmod);
|
||||
- let llvm_data_layout = str::from_utf8(CStr::from_ptr(llvm_data_layout).to_bytes())
|
||||
|
||||
Reference in New Issue
Block a user