commit d927e6fa1e990685dd353bd3f526924fdcc179b8 Author: Emery Hemingway Date: Tue Oct 20 16:50:49 2020 +0200 libc: exit for raise(SIGQUIT/SIGABRT/SIGKILL) diff --git a/repos/libports/src/lib/libc/dummies.cc b/repos/libports/src/lib/libc/dummies.cc index 91a5ed34a8..b01d95f717 100644 --- a/repos/libports/src/lib/libc/dummies.cc +++ b/repos/libports/src/lib/libc/dummies.cc @@ -123,7 +123,6 @@ DUMMY(void *, 0, ___mtctxres, (void)) DUMMY(void *, 0, __nsdefaultsrc, (void)) DUMMY(int , -1, _nsdispatch, (void)) DUMMY(long , -1, pathconf, (const char *, int)) -DUMMY(int , -1, raise, (int)) DUMMY(int , -1, rmdir, (const char *)) DUMMY(void *, 0, sbrk, (intptr_t)) DUMMY(int , -1, sched_setparam, (pid_t, const sched_param *)) diff --git a/repos/libports/src/lib/libc/signal.cc b/repos/libports/src/lib/libc/signal.cc index dc9af2d443..a08854a8c0 100644 --- a/repos/libports/src/lib/libc/signal.cc +++ b/repos/libports/src/lib/libc/signal.cc @@ -199,3 +199,20 @@ extern "C" int waitid(idtype_t idtype, id_t id, siginfo_t *info, int flags) ret = 0; return (ret); } + + +extern "C" int raise(int sig) +{ + char const *signame = sys_signame[sig]; + + switch(sig) { + case SIGQUIT: + case SIGABRT: + case SIGKILL: + error(__func__, "(", signame, ")"); + exit(-1); + default: + warning(__func__, "(", signame, ") not implemented"); + return Libc::Errno(EINVAL); + }; +}