summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/rust/files/0001-Don-t-use-LFS64-symbols-on-musl.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/rust/files/0001-Don-t-use-LFS64-symbols-on-musl.patch')
-rw-r--r--meta/recipes-devtools/rust/files/0001-Don-t-use-LFS64-symbols-on-musl.patch163
1 files changed, 163 insertions, 0 deletions
diff --git a/meta/recipes-devtools/rust/files/0001-Don-t-use-LFS64-symbols-on-musl.patch b/meta/recipes-devtools/rust/files/0001-Don-t-use-LFS64-symbols-on-musl.patch
new file mode 100644
index 0000000000..ddad684e57
--- /dev/null
+++ b/meta/recipes-devtools/rust/files/0001-Don-t-use-LFS64-symbols-on-musl.patch
@@ -0,0 +1,163 @@
1From df423041e070dc30b835ecfea7181914e834e33d Mon Sep 17 00:00:00 2001
2From: git-bruh <e817509a-8ee9-4332-b0ad-3a6bdf9ab63f@aleeas.com>
3Date: Tue, 19 Sep 2023 19:47:50 +0530
4Subject: [PATCH] Don't use LFS64 symbols on musl
5
6Simplify #[cfg] blocks
7
8fmt
9
10don't try to use the more appropriate direntry on musl
11
12Upstream-Status: Backport [https://github.com/rust-lang/rust/pull/115968/commits/7a504cc68a56bfaa7855016c81ced9e6b1320fc5]
13Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
14---
15 library/std/src/os/linux/fs.rs | 9 ++++++++-
16 library/std/src/sys/unix/fd.rs | 24 ++++++++++++++++++++----
17 library/std/src/sys/unix/fs.rs | 23 ++++++++++++++---------
18 3 files changed, 42 insertions(+), 14 deletions(-)
19
20diff --git a/library/std/src/os/linux/fs.rs b/library/std/src/os/linux/fs.rs
21index 479bbcc17a89..ab0b2a3eda3f 100644
22--- a/library/std/src/os/linux/fs.rs
23+++ b/library/std/src/os/linux/fs.rs
24@@ -329,7 +329,14 @@ pub trait MetadataExt {
25 impl MetadataExt for Metadata {
26 #[allow(deprecated)]
27 fn as_raw_stat(&self) -> &raw::stat {
28- unsafe { &*(self.as_inner().as_inner() as *const libc::stat64 as *const raw::stat) }
29+ #[cfg(target_env = "musl")]
30+ unsafe {
31+ &*(self.as_inner().as_inner() as *const libc::stat as *const raw::stat)
32+ }
33+ #[cfg(not(target_env = "musl"))]
34+ unsafe {
35+ &*(self.as_inner().as_inner() as *const libc::stat64 as *const raw::stat)
36+ }
37 }
38 fn st_dev(&self) -> u64 {
39 self.as_inner().as_inner().st_dev as u64
40diff --git a/library/std/src/sys/unix/fd.rs b/library/std/src/sys/unix/fd.rs
41index 6c4f408426a9..bf1fb3123c4c 100644
42--- a/library/std/src/sys/unix/fd.rs
43+++ b/library/std/src/sys/unix/fd.rs
44@@ -126,9 +126,17 @@ pub fn read_to_end(&self, buf: &mut Vec<u8>) -> io::Result<usize> {
45 }
46
47 pub fn read_at(&self, buf: &mut [u8], offset: u64) -> io::Result<usize> {
48- #[cfg(not(any(target_os = "linux", target_os = "android", target_os = "hurd")))]
49+ #[cfg(not(any(
50+ all(target_os = "linux", not(target_env = "musl")),
51+ target_os = "android",
52+ target_os = "hurd"
53+ )))]
54 use libc::pread as pread64;
55- #[cfg(any(target_os = "linux", target_os = "android", target_os = "hurd"))]
56+ #[cfg(any(
57+ all(target_os = "linux", not(target_env = "musl")),
58+ target_os = "android",
59+ target_os = "hurd"
60+ ))]
61 use libc::pread64;
62
63 unsafe {
64@@ -285,9 +293,17 @@ pub fn is_write_vectored(&self) -> bool {
65 }
66
67 pub fn write_at(&self, buf: &[u8], offset: u64) -> io::Result<usize> {
68- #[cfg(not(any(target_os = "linux", target_os = "android", target_os = "hurd")))]
69+ #[cfg(not(any(
70+ all(target_os = "linux", not(target_env = "musl")),
71+ target_os = "android",
72+ target_os = "hurd"
73+ )))]
74 use libc::pwrite as pwrite64;
75- #[cfg(any(target_os = "linux", target_os = "android", target_os = "hurd"))]
76+ #[cfg(any(
77+ all(target_os = "linux", not(target_env = "musl")),
78+ target_os = "android",
79+ target_os = "hurd"
80+ ))]
81 use libc::pwrite64;
82
83 unsafe {
84diff --git a/library/std/src/sys/unix/fs.rs b/library/std/src/sys/unix/fs.rs
85index 764e1f257901..b61554098531 100644
86--- a/library/std/src/sys/unix/fs.rs
87+++ b/library/std/src/sys/unix/fs.rs
88@@ -40,13 +40,17 @@
89 ))]
90 use libc::c_char;
91 #[cfg(any(
92- target_os = "linux",
93+ all(target_os = "linux", not(target_env = "musl")),
94 target_os = "emscripten",
95 target_os = "android",
96- target_os = "hurd",
97+ target_os = "hurd"
98 ))]
99 use libc::dirfd;
100-#[cfg(any(target_os = "linux", target_os = "emscripten", target_os = "hurd"))]
101+#[cfg(any(
102+ all(target_os = "linux", not(target_env = "musl")),
103+ target_os = "emscripten",
104+ target_os = "hurd"
105+))]
106 use libc::fstatat64;
107 #[cfg(any(
108 target_os = "android",
109@@ -56,9 +60,10 @@
110 target_os = "illumos",
111 target_os = "nto",
112 target_os = "vita",
113+ all(target_os = "linux", target_env = "musl"),
114 ))]
115 use libc::readdir as readdir64;
116-#[cfg(any(target_os = "linux", target_os = "hurd"))]
117+#[cfg(any(all(target_os = "linux", not(target_env = "musl")), target_os = "hurd"))]
118 use libc::readdir64;
119 #[cfg(any(target_os = "emscripten", target_os = "l4re"))]
120 use libc::readdir64_r;
121@@ -82,7 +87,7 @@
122 lstat as lstat64, off64_t, open as open64, stat as stat64,
123 };
124 #[cfg(not(any(
125- target_os = "linux",
126+ all(target_os = "linux", not(target_env = "musl")),
127 target_os = "emscripten",
128 target_os = "l4re",
129 target_os = "android",
130@@ -93,7 +98,7 @@
131 lstat as lstat64, off_t as off64_t, open as open64, stat as stat64,
132 };
133 #[cfg(any(
134- target_os = "linux",
135+ all(target_os = "linux", not(target_env = "musl")),
136 target_os = "emscripten",
137 target_os = "l4re",
138 target_os = "hurd"
139@@ -829,10 +834,10 @@ pub fn file_name(&self) -> OsString {
140
141 #[cfg(all(
142 any(
143- target_os = "linux",
144+ all(target_os = "linux", not(target_env = "musl")),
145 target_os = "emscripten",
146 target_os = "android",
147- target_os = "hurd",
148+ target_os = "hurd"
149 ),
150 not(miri)
151 ))]
152@@ -858,7 +863,7 @@ pub fn metadata(&self) -> io::Result<FileAttr> {
153
154 #[cfg(any(
155 not(any(
156- target_os = "linux",
157+ all(target_os = "linux", not(target_env = "musl")),
158 target_os = "emscripten",
159 target_os = "android",
160 target_os = "hurd",
161--
1622.39.0
163