From b95580ab252feedf49c5c9ce09b42fbc8d22c849 Mon Sep 17 00:00:00 2001 From: Dennis Bonke Date: Fri, 26 Jul 2024 16:55:35 +0200 Subject: [PATCH 1/5] abis/linux: Define MCAST_JOIN_GROUP --- abis/linux/in.h | 1 + 1 file changed, 1 insertion(+) diff --git a/abis/linux/in.h b/abis/linux/in.h index eb7be7b6c9..87bc25f9be 100644 --- a/abis/linux/in.h +++ b/abis/linux/in.h @@ -193,6 +193,7 @@ struct group_source_req { #define IP_PMTUDISC_INTERFACE 4 #define IP_PMTUDISC_OMIT 5 +#define MCAST_JOIN_GROUP 42 #define MCAST_BLOCK_SOURCE 43 #define MCAST_UNBLOCK_SOURCE 44 #define MCAST_JOIN_SOURCE_GROUP 46 From d81024b7b16fff7d1603389c8669763532770c7d Mon Sep 17 00:00:00 2001 From: Dennis Bonke Date: Fri, 26 Jul 2024 16:55:47 +0200 Subject: [PATCH 2/5] options/ansi: Define SCNu16 --- options/ansi/include/inttypes.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/options/ansi/include/inttypes.h b/options/ansi/include/inttypes.h index 549544057a..33ad46a535 100644 --- a/options/ansi/include/inttypes.h +++ b/options/ansi/include/inttypes.h @@ -117,6 +117,8 @@ #define SCNd32 "d" #define SCNd64 __PRI64 "d" +#define SCNu16 "hu" + #endif /* !__MLIBC_ABI_ONLY */ #ifdef __cplusplus From a80bd0ab1fc12d44fb1ccfbd19ca72ee64832eb7 Mon Sep 17 00:00:00 2001 From: Dennis Bonke Date: Fri, 26 Jul 2024 16:56:00 +0200 Subject: [PATCH 3/5] options/posix: Stub tempnam --- options/posix/generic/posix_stdio.cpp | 5 +++++ options/posix/include/bits/posix/posix_stdio.h | 2 ++ 2 files changed, 7 insertions(+) diff --git a/options/posix/generic/posix_stdio.cpp b/options/posix/generic/posix_stdio.cpp index b1c6ffd6e6..2cfe40748d 100644 --- a/options/posix/generic/posix_stdio.cpp +++ b/options/posix/generic/posix_stdio.cpp @@ -205,6 +205,11 @@ char *fgetln(FILE *, size_t *) { __builtin_unreachable(); } +char *tempnam(const char *, const char *) { + __ensure(!"Not implemented"); + __builtin_unreachable(); +} + FILE *fopencookie(void *cookie, const char *__restrict mode, cookie_io_functions_t funcs) { int flags = mlibc::fd_file::parse_modestring(mode); diff --git a/options/posix/include/bits/posix/posix_stdio.h b/options/posix/include/bits/posix/posix_stdio.h index d595d1edb7..8bdb2659fd 100644 --- a/options/posix/include/bits/posix/posix_stdio.h +++ b/options/posix/include/bits/posix/posix_stdio.h @@ -36,6 +36,8 @@ int vdprintf(int fd, const char *format, __builtin_va_list args); char *fgetln(FILE *, size_t *); +char *tempnam(const char *dir, const char *pfx); + #endif /* !__MLIBC_ABI_ONLY */ #define RENAME_EXCHANGE (1 << 1) From 932ff70501df5cf4f902b177fcf0e65192bad953 Mon Sep 17 00:00:00 2001 From: Dennis Bonke Date: Fri, 26 Jul 2024 16:56:10 +0200 Subject: [PATCH 4/5] options/posix: Stub strerror_l --- options/posix/generic/posix_string.cpp | 5 +++++ options/posix/include/bits/posix/posix_string.h | 2 ++ 2 files changed, 7 insertions(+) diff --git a/options/posix/generic/posix_string.cpp b/options/posix/generic/posix_string.cpp index d0bc7b5eb2..838b85b012 100644 --- a/options/posix/generic/posix_string.cpp +++ b/options/posix/generic/posix_string.cpp @@ -152,6 +152,11 @@ void *memrchr(const void *m, int c, size_t n) { return 0; } +char *strerror_l(int errnum, locale_t) { + mlibc::infoLogger() << "mlibc: strerror_l locale is ignored!" << frg::endlog; + return strerror(errnum); +} + // BSD extensions. // Taken from musl size_t strlcpy(char *d, const char *s, size_t n) { diff --git a/options/posix/include/bits/posix/posix_string.h b/options/posix/include/bits/posix/posix_string.h index 1f619424fd..a475a6549a 100644 --- a/options/posix/include/bits/posix/posix_string.h +++ b/options/posix/include/bits/posix/posix_string.h @@ -24,6 +24,8 @@ void *memccpy(void *__restrict dest, const void *__restrict src, int c, size_t n int strcoll_l(const char *s1, const char *s2, locale_t locale); +char *strerror_l(int errnum, locale_t locale); + // GNU extensions. #if defined(_GNU_SOURCE) char *strcasestr(const char *, const char *); From 380fef564ce134c666ff2049bd25a474580fa1a1 Mon Sep 17 00:00:00 2001 From: Dennis Bonke Date: Fri, 26 Jul 2024 16:56:19 +0200 Subject: [PATCH 5/5] sysdeps/managarm: Stub setsockopt with SOL_SOCKET and SO_PRIORITY --- sysdeps/managarm/generic/socket.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sysdeps/managarm/generic/socket.cpp b/sysdeps/managarm/generic/socket.cpp index 222b4cd737..d5cb6ca598 100644 --- a/sysdeps/managarm/generic/socket.cpp +++ b/sysdeps/managarm/generic/socket.cpp @@ -534,6 +534,9 @@ int sys_setsockopt(int fd, int layer, int number, }else if(layer == SOL_SOCKET && number == SO_OOBINLINE) { mlibc::infoLogger() << "\e[31mmlibc: setsockopt() call with SOL_SOCKET and SO_OOBINLINE is unimplemented\e[39m" << frg::endlog; return 0; + }else if(layer == SOL_SOCKET && number == SO_PRIORITY) { + mlibc::infoLogger() << "\e[31mmlibc: setsockopt() call with SOL_SOCKET and SO_PRIORITY is unimplemented\e[39m" << frg::endlog; + return 0; }else{ mlibc::panicLogger() << "\e[31mmlibc: Unexpected setsockopt() call, layer: " << layer << " number: " << number << "\e[39m" << frg::endlog; __builtin_unreachable();