commit f3a7fb548c8600a6e290d306b933725ebc546cd0 Author: Emery Hemingway Date: Wed May 6 04:38:35 2020 +0530 libc: add siginterrupt dummy diff --git a/repos/libports/src/lib/libc/signal.cc b/repos/libports/src/lib/libc/signal.cc index dc9af2d443..784257c48e 100644 --- a/repos/libports/src/lib/libc/signal.cc +++ b/repos/libports/src/lib/libc/signal.cc @@ -131,6 +131,9 @@ extern "C" int sigaction(int signum, const struct sigaction *act, struct sigacti } +extern "C" int siginterrupt(int sig, int flag) { return 0; }; + + extern "C" int _sigaction(int, const struct sigaction *, struct sigaction *) __attribute__((weak, alias("sigaction"))); extern "C" int __sys_sigaction(int, const struct sigaction *, struct sigaction *) __attribute__((weak, alias("sigaction"))); extern "C" int __libc_sigaction(int, const struct sigaction *, struct sigaction *) __attribute__((weak, alias("sigaction"))); commit 65244c99c250767922b9afca9663ddcb7a7753f8 Author: Emery Hemingway Date: Wed May 6 04:59:56 2020 +0530 libc: add upstream mbsinit diff --git a/repos/libports/lib/mk/libc-locale.mk b/repos/libports/lib/mk/libc-locale.mk index 8e75e59589..2bb98b1456 100644 --- a/repos/libports/lib/mk/libc-locale.mk +++ b/repos/libports/lib/mk/libc-locale.mk @@ -6,7 +6,7 @@ CC_OPT += -D_Thread_local="" FILTER_OUT = \ c16rtomb.c c32rtomb_iconv.c mbrtoc16_iconv.c mbrtoc32_iconv.c \ setlocale.c xlocale.c setrunelocale.c \ - ascii.c big5.c euc.co gb18030.c gb2312.c gbk.c mbsinit.c mskanji.c utf8.c \ + ascii.c big5.c euc.co gb18030.c gb2312.c gbk.c mskanji.c utf8.c \ SRC_C = $(filter-out $(FILTER_OUT),$(notdir $(wildcard $(LIBC_LOCALE_DIR)/*.c))) commit 81fc78f8e0ac66a7275e149f7f7fdc5f4f1f2979 Author: Emery Hemingway Date: Wed May 27 16:35:16 2020 +0530 libc: add mlock and munlock dummies diff --git a/repos/libports/src/lib/libc/dummies.cc b/repos/libports/src/lib/libc/dummies.cc index 37c2c83f89..bc2f15a90a 100644 --- a/repos/libports/src/lib/libc/dummies.cc +++ b/repos/libports/src/lib/libc/dummies.cc @@ -221,5 +221,15 @@ int __attribute__((weak)) madvise(void *addr, size_t length, int advice) const struct res_sym __p_type_syms[] = { }; +#define DUMMY_EPERM(ret_type, ret_val, name, args) __attribute__((weak)) \ +ret_type name args \ +{ \ + errno = EPERM; \ + return ret_val; \ +} + +DUMMY_EPERM(int, -1, mlock, (const void *, size_t)); +DUMMY_EPERM(int, -1, munlock, (const void *, size_t)); + } /* extern "C" */ commit f45e11626aca92be04bc9c8ed74f010ff62862dd Author: Emery Hemingway Date: Fri May 29 09:26:50 2020 +0530 libc: return 0 from getpgrp and getppid dummies diff --git a/repos/libports/src/lib/libc/dummies.cc b/repos/libports/src/lib/libc/dummies.cc index 150640ddf3..e511897600 100644 --- a/repos/libports/src/lib/libc/dummies.cc +++ b/repos/libports/src/lib/libc/dummies.cc @@ -109,8 +109,8 @@ DUMMY(char *, 0, _getlogin, (void)) DUMMY(int , -1, getnameinfo, (const sockaddr *, socklen_t, char *, size_t, char *, size_t, int)) DUMMY(struct servent *, 0, getservbyname, (const char *, const char *)) DUMMY(int , -1, getsid, (pid_t)) -DUMMY_SILENT(pid_t , -1, getppid, (void)) -DUMMY(pid_t , -1, getpgrp, (void)) +DUMMY_SILENT(pid_t , 0, getpgrp, (void)) +DUMMY_SILENT(pid_t , 0, getppid, (void)) DUMMY(int , -1, getpriority, (int, int)) DUMMY(int , -1, getrusage, (int, rusage *)) DUMMY_SILENT(uid_t , 0, getuid, (void)) commit d64e4b926c1dec39569efee89567f0575770bbd6 Author: Emery Hemingway Date: Sun Nov 1 23:18:05 2020 +0100 libc: do not strip file paths in dlopen Request files by verbatim path rather than shorten them to just a filename. This is to ensure that libraries with the "/nix/store/..." prefix are resolved correctly. diff --git a/repos/libports/src/lib/libc/dynamic_linker.cc b/repos/libports/src/lib/libc/dynamic_linker.cc index ba47856bed..b7aff1b869 100644 --- a/repos/libports/src/lib/libc/dynamic_linker.cc +++ b/repos/libports/src/lib/libc/dynamic_linker.cc @@ -78,9 +78,7 @@ void *dlopen(const char *name, int mode) static Libc::Allocator global_alloc; return new (global_alloc) - Shared_object(*genode_env, global_alloc, - name ? Genode::Path<128>(name).last_element() : nullptr, /* extract file name */ - bind, keep); + Shared_object(*genode_env, global_alloc, name, bind, keep); } catch (...) { snprintf(err_str, MAX_ERR, "Unable to open file %s\n", name); }