diff options
Diffstat (limited to 'usr/src/lib/libc')
-rw-r--r-- | usr/src/lib/libc/port/mapfile-vers | 4 | ||||
-rw-r--r-- | usr/src/lib/libc/port/sys/epoll.c | 8 | ||||
-rw-r--r-- | usr/src/lib/libc/sparcv9/Makefile.com | 3 |
3 files changed, 13 insertions, 2 deletions
diff --git a/usr/src/lib/libc/port/mapfile-vers b/usr/src/lib/libc/port/mapfile-vers index eb81629318..29af604724 100644 --- a/usr/src/lib/libc/port/mapfile-vers +++ b/usr/src/lib/libc/port/mapfile-vers @@ -3367,6 +3367,10 @@ $if sparc32 __ucmpdi2; $endif +$if sparcv9 + __multi3; +$endif + $if _x86 _D_cplx_lr_div; _D_cplx_lr_div_ix; diff --git a/usr/src/lib/libc/port/sys/epoll.c b/usr/src/lib/libc/port/sys/epoll.c index e510b0b247..230860d391 100644 --- a/usr/src/lib/libc/port/sys/epoll.c +++ b/usr/src/lib/libc/port/sys/epoll.c @@ -11,6 +11,7 @@ /* * Copyright 2017 Joyent, Inc. + * Copyright 2020 Oxide Computer Company */ #include <sys/types.h> @@ -56,7 +57,7 @@ * Events that we ignore entirely. They can be set in events, but they will * never be returned. */ -#define EPOLLIGNORED (EPOLLMSG | EPOLLWAKEUP) +#define EPOLLIGNORED (EPOLLMSG | EPOLLWAKEUP | EPOLLEXCLUSIVE) /* * Events that we swizzle into other bit positions. @@ -140,6 +141,11 @@ epoll_ctl(int epfd, int op, int fd, struct epoll_event *event) break; case EPOLL_CTL_MOD: + /* EPOLLEXCLUSIVE is prohibited for modify operations */ + if ((event->events & EPOLLEXCLUSIVE) != 0) { + errno = EINVAL; + return (-1); + } /* * In the modify case, we pass down two events: one to * remove the event and another to add it back. diff --git a/usr/src/lib/libc/sparcv9/Makefile.com b/usr/src/lib/libc/sparcv9/Makefile.com index 2a1dc8d0cd..0a826826ee 100644 --- a/usr/src/lib/libc/sparcv9/Makefile.com +++ b/usr/src/lib/libc/sparcv9/Makefile.com @@ -135,7 +135,8 @@ COMOBJS= \ strtol.o \ strtoul.o \ strtoll.o \ - strtoull.o + strtoull.o \ + multi3.o GENOBJS= \ _getsp.o \ |