Skip to content

Commit 23905a1

Browse files
bootstrap::rust-libc: update to 0.2.139
Signed-off-by: Andy-Python-Programmer <[email protected]>
1 parent 964f171 commit 23905a1

File tree

2 files changed

+198
-12
lines changed

2 files changed

+198
-12
lines changed

patches/rust-libc/rust-libc.patch

Lines changed: 197 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,191 @@
1-
From c6ec5b50fc2d7bc6b984b5c6910d944664da8e08 Mon Sep 17 00:00:00 2001
1+
From 06433417feda99e2f407026d95349e3dbde054d1 Mon Sep 17 00:00:00 2001
22
From: Andy-Python-Programmer <[email protected]>
3-
Date: Sat, 17 Dec 2022 15:50:08 +1100
3+
Date: Fri, 17 Feb 2023 18:18:23 +1100
44
Subject: [PATCH] <xxx>
55

66
---
7-
src/unix/mlibc/mod.rs | 453 ++++++++++++++++++++++++++++++++++++++----
8-
1 file changed, 417 insertions(+), 36 deletions(-)
7+
.../linux_like/linux/gnu/b64/x86_64/mod.rs | 4 +-
8+
src/unix/linux_like/linux/gnu/mod.rs | 4 +-
9+
src/unix/linux_like/linux/mod.rs | 28 +-
10+
src/unix/mlibc/mod.rs | 457 ++++++++++++++++--
11+
4 files changed, 439 insertions(+), 54 deletions(-)
912

13+
diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs
14+
index e6307e2..cae81c4 100644
15+
--- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs
16+
+++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs
17+
@@ -330,7 +330,7 @@ cfg_if! {
18+
impl Eq for user_fpregs_struct {}
19+
20+
impl ::fmt::Debug for user_fpregs_struct {
21+
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
22+
+ fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result {
23+
f.debug_struct("user_fpregs_struct")
24+
.field("cwd", &self.cwd)
25+
.field("ftw", &self.ftw)
26+
@@ -375,7 +375,7 @@ cfg_if! {
27+
impl Eq for ucontext_t {}
28+
29+
impl ::fmt::Debug for ucontext_t {
30+
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
31+
+ fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result {
32+
f.debug_struct("ucontext_t")
33+
.field("uc_flags", &self.uc_flags)
34+
.field("uc_link", &self.uc_link)
35+
diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs
36+
index b8b6ded..98b49a0 100644
37+
--- a/src/unix/linux_like/linux/gnu/mod.rs
38+
+++ b/src/unix/linux_like/linux/gnu/mod.rs
39+
@@ -519,7 +519,7 @@ cfg_if! {
40+
impl Eq for utmpx {}
41+
42+
impl ::fmt::Debug for utmpx {
43+
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
44+
+ fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result {
45+
f.debug_struct("utmpx")
46+
.field("ut_type", &self.ut_type)
47+
.field("ut_pid", &self.ut_pid)
48+
@@ -568,7 +568,7 @@ cfg_if! {
49+
50+
#[cfg(libc_union)]
51+
impl ::fmt::Debug for __c_anonymous_ptrace_syscall_info_data {
52+
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
53+
+ fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result {
54+
unsafe {
55+
f.debug_struct("__c_anonymous_ptrace_syscall_info_data")
56+
.field("entry", &self.entry)
57+
diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs
58+
index be12190..c8762d5 100644
59+
--- a/src/unix/linux_like/linux/mod.rs
60+
+++ b/src/unix/linux_like/linux/mod.rs
61+
@@ -840,7 +840,7 @@ cfg_if! {
62+
}
63+
impl Eq for sockaddr_nl {}
64+
impl ::fmt::Debug for sockaddr_nl {
65+
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
66+
+ fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result {
67+
f.debug_struct("sockaddr_nl")
68+
.field("nl_family", &self.nl_family)
69+
.field("nl_pid", &self.nl_pid)
70+
@@ -873,7 +873,7 @@ cfg_if! {
71+
impl Eq for dirent {}
72+
73+
impl ::fmt::Debug for dirent {
74+
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
75+
+ fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result {
76+
f.debug_struct("dirent")
77+
.field("d_ino", &self.d_ino)
78+
.field("d_off", &self.d_off)
79+
@@ -911,7 +911,7 @@ cfg_if! {
80+
impl Eq for dirent64 {}
81+
82+
impl ::fmt::Debug for dirent64 {
83+
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
84+
+ fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result {
85+
f.debug_struct("dirent64")
86+
.field("d_ino", &self.d_ino)
87+
.field("d_off", &self.d_off)
88+
@@ -941,7 +941,7 @@ cfg_if! {
89+
impl Eq for pthread_cond_t {}
90+
91+
impl ::fmt::Debug for pthread_cond_t {
92+
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
93+
+ fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result {
94+
f.debug_struct("pthread_cond_t")
95+
// FIXME: .field("size", &self.size)
96+
.finish()
97+
@@ -963,7 +963,7 @@ cfg_if! {
98+
impl Eq for pthread_mutex_t {}
99+
100+
impl ::fmt::Debug for pthread_mutex_t {
101+
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
102+
+ fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result {
103+
f.debug_struct("pthread_mutex_t")
104+
// FIXME: .field("size", &self.size)
105+
.finish()
106+
@@ -985,7 +985,7 @@ cfg_if! {
107+
impl Eq for pthread_rwlock_t {}
108+
109+
impl ::fmt::Debug for pthread_rwlock_t {
110+
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
111+
+ fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result {
112+
f.debug_struct("pthread_rwlock_t")
113+
// FIXME: .field("size", &self.size)
114+
.finish()
115+
@@ -1007,7 +1007,7 @@ cfg_if! {
116+
impl Eq for pthread_barrier_t {}
117+
118+
impl ::fmt::Debug for pthread_barrier_t {
119+
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
120+
+ fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result {
121+
f.debug_struct("pthread_barrier_t")
122+
.field("size", &self.size)
123+
.finish()
124+
@@ -1041,7 +1041,7 @@ cfg_if! {
125+
impl Eq for sockaddr_alg {}
126+
127+
impl ::fmt::Debug for sockaddr_alg {
128+
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
129+
+ fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result {
130+
f.debug_struct("sockaddr_alg")
131+
.field("salg_family", &self.salg_family)
132+
.field("salg_type", &self.salg_type)
133+
@@ -1072,7 +1072,7 @@ cfg_if! {
134+
impl Eq for uinput_setup {}
135+
136+
impl ::fmt::Debug for uinput_setup {
137+
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
138+
+ fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result {
139+
f.debug_struct("uinput_setup")
140+
.field("id", &self.id)
141+
.field("name", &&self.name[..])
142+
@@ -1103,7 +1103,7 @@ cfg_if! {
143+
impl Eq for uinput_user_dev {}
144+
145+
impl ::fmt::Debug for uinput_user_dev {
146+
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
147+
+ fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result {
148+
f.debug_struct("uinput_setup")
149+
.field("name", &&self.name[..])
150+
.field("id", &self.id)
151+
@@ -1152,7 +1152,7 @@ cfg_if! {
152+
153+
#[allow(deprecated)]
154+
impl ::fmt::Debug for af_alg_iv {
155+
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
156+
+ fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result {
157+
f.debug_struct("af_alg_iv")
158+
.field("ivlen", &self.ivlen)
159+
.finish()
160+
@@ -1176,7 +1176,7 @@ cfg_if! {
161+
}
162+
impl Eq for mq_attr {}
163+
impl ::fmt::Debug for mq_attr {
164+
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
165+
+ fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result {
166+
f.debug_struct("mq_attr")
167+
.field("mq_flags", &self.mq_flags)
168+
.field("mq_maxmsg", &self.mq_maxmsg)
169+
@@ -1195,7 +1195,7 @@ cfg_if! {
170+
}
171+
#[cfg(libc_union)]
172+
impl ::fmt::Debug for __c_anonymous_ifr_ifru {
173+
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
174+
+ fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result {
175+
f.debug_struct("ifr_ifru")
176+
.field("ifru_addr", unsafe { &self.ifru_addr })
177+
.field("ifru_dstaddr", unsafe { &self.ifru_dstaddr })
178+
@@ -1214,7 +1214,7 @@ cfg_if! {
179+
}
180+
}
181+
impl ::fmt::Debug for ifreq {
182+
- fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
183+
+ fn fmt(&self, f: &mut ::fmt::Formatter<'_>) -> ::fmt::Result {
184+
f.debug_struct("ifreq")
185+
.field("ifr_name", &self.ifr_name)
186+
.field("ifr_ifru", &self.ifr_ifru)
10187
diff --git a/src/unix/mlibc/mod.rs b/src/unix/mlibc/mod.rs
11-
index 2046530..93fcc61 100644
188+
index 2046530..abae13c 100644
12189
--- a/src/unix/mlibc/mod.rs
13190
+++ b/src/unix/mlibc/mod.rs
14191
@@ -47,7 +47,6 @@ pub type fsfilcnt_t = ::c_uint;
@@ -557,7 +734,16 @@ index 2046530..93fcc61 100644
557734
pub const F_GETOWN: ::c_int = 10;
558735
pub const F_SETOWN: ::c_int = 11;
559736
pub const O_ACCMODE: ::c_int = 7;
560-
@@ -649,18 +961,42 @@ pub const WCOREFLAG: ::c_int = 0x80;
737+
@@ -644,23 +956,51 @@ pub const S_IXGRP: mode_t = 0o10;
738+
pub const S_IXOTH: mode_t = 0o1;
739+
pub const S_IXUSR: mode_t = 0o100;
740+
741+
+// Used by utimensat() and friends
742+
+pub const UTIME_NOW: c_long = (1 << 30) - 1;
743+
+pub const UTIME_OMIT: c_long = (1 << 30) - 2;
744+
+
745+
// options/posix/include/sys/wait.h
746+
pub const WCOREFLAG: ::c_int = 0x80;
561747
pub const WNOHANG: ::c_int = 2;
562748

563749
// options/linux/include/sys/poll.h
@@ -601,7 +787,7 @@ index 2046530..93fcc61 100644
601787

602788
// options/posix/include/pthread.h
603789
align_const! {
604-
@@ -668,9 +1004,12 @@ align_const! {
790+
@@ -668,9 +1008,12 @@ align_const! {
605791
__mlibc_state: 0,
606792
__mlibc_recursion: 0,
607793
__mlibc_flags: 0,
@@ -614,7 +800,7 @@ index 2046530..93fcc61 100644
614800
};
615801
pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t {
616802
__mlibc_m: 0,
617-
@@ -689,11 +1028,40 @@ pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0;
803+
@@ -689,11 +1032,40 @@ pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0;
618804
pub const PTHREAD_PROCESS_SHARED: ::c_int = 1;
619805

620806
extern "C" {
@@ -655,7 +841,7 @@ index 2046530..93fcc61 100644
655841
pub fn getgrgid_r(
656842
gid: ::gid_t,
657843
grp: *mut ::group,
658-
@@ -728,13 +1096,24 @@ extern "C" {
844+
@@ -728,13 +1100,24 @@ extern "C" {
659845
buflen: ::size_t,
660846
result: *mut *mut passwd,
661847
) -> ::c_int;
@@ -684,7 +870,7 @@ index 2046530..93fcc61 100644
684870
pub fn pthread_create(
685871
thread: *mut ::pthread_t,
686872
attr: *const ::pthread_attr_t,
687-
@@ -752,6 +1131,8 @@ extern "C" {
873+
@@ -752,6 +1135,8 @@ extern "C" {
688874
addr: *mut ::sockaddr,
689875
addrlen: *mut ::socklen_t,
690876
) -> ::ssize_t;
@@ -694,5 +880,5 @@ index 2046530..93fcc61 100644
694880
pub fn setpwent();
695881
pub fn writev(fd: ::c_int, iov: *const ::iovec, count: ::c_int) -> ::ssize_t;
696882
--
697-
2.38.1
883+
2.39.1
698884

tools/cargo-inject-patches.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
patched_libs = {
1010
"backtrace": "0.3.64",
1111
"calloop": "0.9.3",
12-
"libc": "0.2.93",
12+
"libc": "0.2.139",
1313
"libloading": "0.7.3",
1414
"mio": ["0.6.23", "0.8.3"],
1515
"nix": "0.22.3",

0 commit comments

Comments
 (0)