Skip to content

Commit 3d3293f

Browse files
bootstrap.yml: bump mlibc
Signed-off-by: Andy-Python-Programmer <[email protected]>
1 parent 83a27c4 commit 3d3293f

File tree

2 files changed

+27
-24
lines changed

2 files changed

+27
-24
lines changed

bootstrap.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ sources:
4141

4242
- name: mlibc
4343
subdir: 'bundled'
44-
url: 'https://github.com/managarm/mlibc/archive/73b86f569e7575fcafdf5f26c3fd81312611dd0d.tar.gz'
44+
url: 'https://github.com/managarm/mlibc/archive/afd11daf4565943f8265b2c1ed2a9116e7a4ba4f.tar.gz'
4545
format: 'tar.gz'
46-
extract_path: 'mlibc-73b86f569e7575fcafdf5f26c3fd81312611dd0d'
46+
extract_path: 'mlibc-afd11daf4565943f8265b2c1ed2a9116e7a4ba4f'
4747
patch-path-strip: 1
4848
version: '12.rolling'
4949

patches/mlibc/mlibc.patch

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
From 190cae31fc322a34ec97738854148baaaf4f4934 Mon Sep 17 00:00:00 2001
1+
From c3b39e03d05479e743517e390a56820e32ba4af4 Mon Sep 17 00:00:00 2001
22
From: unknown <[email protected]>
33
Date: Sun, 6 Jun 2021 16:37:54 +1000
44
Subject: [PATCH] targets: add aero target port
@@ -15,7 +15,7 @@ Signed-off-by: Andy-Python-Programmer <[email protected]>
1515
sysdeps/aero/generic/entry.cc | 32 +++
1616
sysdeps/aero/generic/filesystem.cc | 180 ++++++++++++++++
1717
sysdeps/aero/generic/sockets.cc | 0
18-
sysdeps/aero/generic/thread.cc | 42 ++++
18+
sysdeps/aero/generic/thread.cc | 45 ++++
1919
sysdeps/aero/generic/thread_entry.S | 8 +
2020
sysdeps/aero/include/abi-bits/abi.h | 1 +
2121
sysdeps/aero/include/abi-bits/auxv.h | 1 +
@@ -46,7 +46,7 @@ Signed-off-by: Andy-Python-Programmer <[email protected]>
4646
sysdeps/aero/include/mlibc/thread-entry.hpp | 10 +
4747
sysdeps/aero/meson.build | 60 ++++++
4848
sysdeps/dripos/generic/generic.cpp | 3 +
49-
41 files changed, 767 insertions(+), 7 deletions(-)
49+
41 files changed, 770 insertions(+), 7 deletions(-)
5050
create mode 100644 abis/aero/auxv.h
5151
create mode 100644 sysdeps/aero/crt-x86_64/crt0.S
5252
create mode 100644 sysdeps/aero/generic/aero.cc
@@ -114,10 +114,10 @@ index 0000000..59d4d4d
114114
+
115115
+#endif // _ABIBITS_AUXV_H
116116
diff --git a/meson.build b/meson.build
117-
index 55e9070..8b3f4ba 100644
117+
index 4027c99..b363aa3 100644
118118
--- a/meson.build
119119
+++ b/meson.build
120-
@@ -94,6 +94,10 @@ if host_machine.system() == 'linux'
120+
@@ -98,6 +98,10 @@ if host_machine.system() == 'linux'
121121
rtdl_include_dirs += include_directories('sysdeps/linux/include')
122122
libc_include_dirs += include_directories('sysdeps/linux/include')
123123
subdir('sysdeps/linux')
@@ -143,10 +143,10 @@ index 347c659..8e97b26 100644
143143
sigemptyset(&set);
144144
sigaddset(&set, SIGABRT);
145145
diff --git a/options/rtdl/generic/main.cpp b/options/rtdl/generic/main.cpp
146-
index 1521779..5d145bf 100644
146+
index bed8e11..5f5d22d 100644
147147
--- a/options/rtdl/generic/main.cpp
148148
+++ b/options/rtdl/generic/main.cpp
149-
@@ -118,9 +118,10 @@ extern "C" [[gnu::alias("dl_debug_state"), gnu::visibility("default")]] void _dl
149+
@@ -119,9 +119,10 @@ extern "C" [[gnu::alias("dl_debug_state"), gnu::visibility("default")]] void _dl
150150
[[ gnu::visibility("default") ]] DebugInterface *_dl_debug_addr = &globalDebugInterface;
151151

152152
extern "C" void *interpreterMain(uintptr_t *entry_stack) {
@@ -159,7 +159,7 @@ index 1521779..5d145bf 100644
159159
runtimeTlsMap.initialize();
160160

161161
void *phdr_pointer = 0;
162-
@@ -134,11 +135,9 @@ extern "C" void *interpreterMain(uintptr_t *entry_stack) {
162+
@@ -135,11 +136,9 @@ extern "C" void *interpreterMain(uintptr_t *entry_stack) {
163163
#ifndef MLIBC_STATIC_BUILD
164164
auto ldso_base = reinterpret_cast<uintptr_t>(_DYNAMIC)
165165
- reinterpret_cast<uintptr_t>(_GLOBAL_OFFSET_TABLE_[0]);
@@ -171,15 +171,15 @@ index 1521779..5d145bf 100644
171171

172172
// on aarch64 these lines corrupt unrelated GOT entries (entries for ld.so functions)
173173
#ifdef __x86_64__
174-
@@ -211,7 +210,6 @@ extern "C" void *interpreterMain(uintptr_t *entry_stack) {
174+
@@ -212,7 +211,6 @@ extern "C" void *interpreterMain(uintptr_t *entry_stack) {
175175
__ensure(phdr_pointer);
176176
__ensure(entry_pointer);
177177

178178
- if(logStartup)
179179
mlibc::infoLogger() << "ldso: Executable PHDRs are at " << phdr_pointer
180180
<< frg::endlog;
181181

182-
@@ -267,8 +265,7 @@ extern "C" void *interpreterMain(uintptr_t *entry_stack) {
182+
@@ -268,8 +266,7 @@ extern "C" void *interpreterMain(uintptr_t *entry_stack) {
183183
globalDebugInterface.state = 0;
184184
dl_debug_state();
185185

@@ -205,7 +205,7 @@ index 0000000..190b5a0
205205
+.size _start, . - _start
206206
diff --git a/sysdeps/aero/generic/aero.cc b/sysdeps/aero/generic/aero.cc
207207
new file mode 100644
208-
index 0000000..4a0d95e
208+
index 0000000..7980cbe
209209
--- /dev/null
210210
+++ b/sysdeps/aero/generic/aero.cc
211211
@@ -0,0 +1,222 @@
@@ -227,7 +227,7 @@ index 0000000..4a0d95e
227227
+#define ARCH_GET_GS 0x1004
228228
+
229229
+struct Slice {
230-
+ void* ptr;
230+
+ void *ptr;
231231
+ uint64_t len;
232232
+};
233233
+
@@ -236,7 +236,7 @@ index 0000000..4a0d95e
236236
+ return frg::vector<Slice, MemoryAllocator> { getAllocator() };
237237
+ }
238238
+
239-
+ auto len = 0;
239+
+ size_t len = 0;
240240
+
241241
+ while (arg[len] != nullptr) {
242242
+ len += 1;
@@ -259,7 +259,7 @@ index 0000000..4a0d95e
259259
+ return syscall(SYS_GETTID);
260260
+}
261261
+
262-
+int sys_futex_wait(int *pointer, int expected) UNIMPLEMENTED("sys_futex_wait")
262+
+int sys_futex_wait(int *pointer, int expected, const struct timespec *time) UNIMPLEMENTED("sys_futex_wait")
263263
+int sys_futex_wake(int *pointer) UNIMPLEMENTED("sys_futex_wake")
264264
+
265265
+int sys_tcb_set(void* pointer) {
@@ -414,10 +414,10 @@ index 0000000..4a0d95e
414414
+ path_ptr,
415415
+ path_len,
416416
+
417-
+ argv_slice.data(),
418-
+ argv_slice.size(),
419-
+
420-
+ envv_slice.data(),
417+
+ argv_slice.data(),
418+
+ argv_slice.size(),
419+
+
420+
+ envv_slice.data(),
421421
+ envv_slice.size()
422422
+ );
423423
+
@@ -660,22 +660,25 @@ new file mode 100644
660660
index 0000000..e69de29
661661
diff --git a/sysdeps/aero/generic/thread.cc b/sysdeps/aero/generic/thread.cc
662662
new file mode 100644
663-
index 0000000..eeedeb7
663+
index 0000000..41a47b2
664664
--- /dev/null
665665
+++ b/sysdeps/aero/generic/thread.cc
666-
@@ -0,0 +1,42 @@
666+
@@ -0,0 +1,45 @@
667667
+#include <mlibc/thread-entry.hpp>
668668
+#include <mlibc/all-sysdeps.hpp>
669+
+
669670
+#include <mlibc/tcb.hpp>
670671
+#include <bits/ensure.h>
672+
+
671673
+#include <sys/mman.h>
674+
+
672675
+#include <stdint.h>
673676
+#include <stddef.h>
674677
+
675678
+extern "C" void __mlibc_enter_thread(void *entry, void *user_arg, Tcb *tcb) {
676679
+ // Wait until our parent sets up the TID.
677680
+ while(!__atomic_load_n(&tcb->tid, __ATOMIC_RELAXED))
678-
+ mlibc::sys_futex_wait(&tcb->tid, 0);
681+
+ mlibc::sys_futex_wait(&tcb->tid, 0, nullptr);
679682
+
680683
+ if(mlibc::sys_tcb_set(tcb))
681684
+ __ensure(!"sys_tcb_set() failed");
@@ -1161,7 +1164,7 @@ index 0000000..d3dbb22
11611164
+ )
11621165
+endif
11631166
diff --git a/sysdeps/dripos/generic/generic.cpp b/sysdeps/dripos/generic/generic.cpp
1164-
index 124b860..7520c15 100644
1167+
index 0a85169..48bfc57 100644
11651168
--- a/sysdeps/dripos/generic/generic.cpp
11661169
+++ b/sysdeps/dripos/generic/generic.cpp
11671170
@@ -7,6 +7,9 @@

0 commit comments

Comments
 (0)