mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-10-27 12:48:22 +00:00
mlibc: temporary patch until changes are upstream
This commit is contained in:
@@ -100,6 +100,23 @@ index fc34a3b..b1a95a9 100644
|
|||||||
#include <bits/ensure.h>
|
#include <bits/ensure.h>
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
|
|
||||||
|
diff --git mlibc-clean/options/posix/generic/pwd-stubs.cpp mlibc-workdir/options/posix/generic/pwd-stubs.cpp
|
||||||
|
index 5d8f618..26eb4bb 100644
|
||||||
|
--- mlibc-clean/options/posix/generic/pwd-stubs.cpp
|
||||||
|
+++ mlibc-workdir/options/posix/generic/pwd-stubs.cpp
|
||||||
|
@@ -273,9 +273,9 @@ void endpwent(void) {
|
||||||
|
close_global_file();
|
||||||
|
}
|
||||||
|
|
||||||
|
-int putpwent(const struct passwd *, FILE *) {
|
||||||
|
- __ensure(!"Not implemented");
|
||||||
|
- __builtin_unreachable();
|
||||||
|
+int putpwent(const struct passwd *p, FILE *f) {
|
||||||
|
+ // Taken from musl.
|
||||||
|
+ return fprintf(f, "%s:%s:%u:%u:%s:%s:%s\n", p->pw_name, p->pw_passwd, p->pw_uid, p->pw_gid, p->pw_gecos, p->pw_dir, p->pw_shell) < 0 ? -1 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct passwd *fgetpwent(FILE *) {
|
||||||
diff --git mlibc-clean/options/posix/generic/unistd-stubs.cpp mlibc-workdir/options/posix/generic/unistd-stubs.cpp
|
diff --git mlibc-clean/options/posix/generic/unistd-stubs.cpp mlibc-workdir/options/posix/generic/unistd-stubs.cpp
|
||||||
index 3beb692..a7bbfaa 100644
|
index 3beb692..a7bbfaa 100644
|
||||||
--- mlibc-clean/options/posix/generic/unistd-stubs.cpp
|
--- mlibc-clean/options/posix/generic/unistd-stubs.cpp
|
||||||
@@ -207,10 +224,10 @@ index 0000000..e5b087a
|
|||||||
+
|
+
|
||||||
diff --git mlibc-workdir/sysdeps/astral/generic/generic.cpp mlibc-workdir/sysdeps/astral/generic/generic.cpp
|
diff --git mlibc-workdir/sysdeps/astral/generic/generic.cpp mlibc-workdir/sysdeps/astral/generic/generic.cpp
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..c025a3b
|
index 0000000..f0facf5
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ mlibc-workdir/sysdeps/astral/generic/generic.cpp
|
+++ mlibc-workdir/sysdeps/astral/generic/generic.cpp
|
||||||
@@ -0,0 +1,789 @@
|
@@ -0,0 +1,795 @@
|
||||||
+#include <bits/ensure.h>
|
+#include <bits/ensure.h>
|
||||||
+#include <mlibc/debug.hpp>
|
+#include <mlibc/debug.hpp>
|
||||||
+#include <mlibc/all-sysdeps.hpp>
|
+#include <mlibc/all-sysdeps.hpp>
|
||||||
@@ -388,12 +405,18 @@ index 0000000..c025a3b
|
|||||||
+ return sys_ioctl(fd, TTY_IOCTL_NAME, (void *)(buffer + prefixlen), &res);
|
+ return sys_ioctl(fd, TTY_IOCTL_NAME, (void *)(buffer + prefixlen), &res);
|
||||||
+ }
|
+ }
|
||||||
+ #endif
|
+ #endif
|
||||||
+
|
+
|
||||||
+ int sys_fsync(int fd) {
|
+ int sys_fsync(int fd) {
|
||||||
+ long ret;
|
+ long ret;
|
||||||
+ return syscall(SYSCALL_FSYNC, &ret, fd);
|
+ return syscall(SYSCALL_FSYNC, &ret, fd);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
|
+ int sys_fdatasync(int fd) {
|
||||||
|
+ // TODO proper datasync syscall
|
||||||
|
+ return sys_fsync(fd);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+
|
||||||
+ pid_t sys_getppid() {
|
+ pid_t sys_getppid() {
|
||||||
+ long ret;
|
+ long ret;
|
||||||
+ syscall(SYSCALL_GETPPID, &ret);
|
+ syscall(SYSCALL_GETPPID, &ret);
|
||||||
|
|||||||
Reference in New Issue
Block a user