From 3b9f022f1cd627b560cdb91e57d9c22403f75b76 Mon Sep 17 00:00:00 2001 From: Christian Helmuth Date: Tue, 16 Aug 2016 15:44:42 +0200 Subject: [PATCH] libc: some symbol cleanups --- repos/libports/lib/mk/spec/x86_64/libc-gen.mk | 2 +- repos/libports/src/lib/libc/dummies.cc | 4 --- repos/libports/src/lib/libc/nanosleep.cc | 7 +++++ repos/libports/src/lib/libc/select.cc | 30 +++++++++++++++---- 4 files changed, 33 insertions(+), 10 deletions(-) diff --git a/repos/libports/lib/mk/spec/x86_64/libc-gen.mk b/repos/libports/lib/mk/spec/x86_64/libc-gen.mk index 1de88824f..c5c931e8f 100644 --- a/repos/libports/lib/mk/spec/x86_64/libc-gen.mk +++ b/repos/libports/lib/mk/spec/x86_64/libc-gen.mk @@ -12,7 +12,7 @@ FILTER_OUT_S += fabs.S modf.S FILTER_OUT_C += frexp.c SRC_S = $(filter-out $(FILTER_OUT_S),$(notdir $(wildcard $(LIBC_GEN_AMD64_DIR)/*.S))) -SRC_C += flt_rounds.c +SRC_C += $(filter-out $(FILTER_OUT_C),$(notdir $(wildcard $(LIBC_GEN_AMD64_DIR)/*.c))) vpath %.c $(LIBC_GEN_AMD64_DIR) vpath %.S $(LIBC_GEN_AMD64_DIR) diff --git a/repos/libports/src/lib/libc/dummies.cc b/repos/libports/src/lib/libc/dummies.cc index 4c6e0c229..4d01dd619 100644 --- a/repos/libports/src/lib/libc/dummies.cc +++ b/repos/libports/src/lib/libc/dummies.cc @@ -47,9 +47,7 @@ DUMMY(int , -1, chown, (const char *, uid_t, gid_t)) DUMMY(int , -1, chroot, (const char *)) DUMMY(char *, 0, crypt, (const char *, const char *)) DUMMY(DB * , 0, dbopen, (const char *, int, int, DBTYPE, const void *)) -DUMMY(int , -1, dup, (int)) DUMMY(u_int32_t, 0, __default_hash, (const void *, size_t)); -DUMMY(int , -1, dup2, (int, int)) DUMMY(void , , endpwent, (void)) DUMMY(int , 0, fchmod, (int, mode_t)) DUMMY(int , -1, fchown, (int, uid_t, gid_t)) @@ -86,7 +84,6 @@ DUMMY(int , -1, mkfifo, (const char *, mode_t)) DUMMY(int , -1, mknod, (const char *, mode_t, dev_t)) DUMMY(int , -1, mprotect, (const void *, size_t, int)) DUMMY(void *, 0, ___mtctxres, (void)) -DUMMY(int , -1, nanosleep, (const timespec *, timespec *)) DUMMY(void *, 0, __nsdefaultsrc, (void)) DUMMY(int , -1, _nsdispatch, (void)) DUMMY(long , -1, pathconf, (const char *, int)) @@ -96,7 +93,6 @@ DUMMY(void *, 0, sbrk, (intptr_t)) DUMMY(int , -1, sched_setparam, (pid_t, const sched_param *)) DUMMY(int , -1, sched_setscheduler, (pid_t, int, const sched_param *)) DUMMY(int , -1, sched_yield, (void)) -DUMMY(int , -1, _select, (void)) DUMMY(int , -1, __semctl, (void)) DUMMY(int , -1, setcontext, (const ucontext_t *)) DUMMY(int , -1, setegid, (uid_t)) diff --git a/repos/libports/src/lib/libc/nanosleep.cc b/repos/libports/src/lib/libc/nanosleep.cc index 0e8abe7a2..70a86ea65 100644 --- a/repos/libports/src/lib/libc/nanosleep.cc +++ b/repos/libports/src/lib/libc/nanosleep.cc @@ -39,3 +39,10 @@ int _nanosleep(const struct timespec *req, struct timespec *rem) return 0; } + + +extern "C" __attribute__((weak)) +int nanosleep(const struct timespec *req, struct timespec *rem) +{ + return _nanosleep(req, rem); +} diff --git a/repos/libports/src/lib/libc/select.cc b/repos/libports/src/lib/libc/select.cc index b52f98aaa..af2c30ac2 100644 --- a/repos/libports/src/lib/libc/select.cc +++ b/repos/libports/src/lib/libc/select.cc @@ -154,8 +154,8 @@ static void select_notify() extern "C" int __attribute__((weak)) -select(int nfds, fd_set *readfds, fd_set *writefds, - fd_set *exceptfds, struct timeval *timeout) +_select(int nfds, fd_set *readfds, fd_set *writefds, + fd_set *exceptfds, struct timeval *timeout) { int nready; fd_set in_readfds, in_writefds, in_exceptfds; @@ -274,11 +274,21 @@ select(int nfds, fd_set *readfds, fd_set *writefds, return nready; } + extern "C" int __attribute__((weak)) -pselect(int nfds, fd_set *readfds, fd_set *writefds, - fd_set *exceptfds, const struct timespec *timeout, - const sigset_t *sigmask) +select(int nfds, fd_set *readfds, fd_set *writefds, + fd_set *exceptfds, struct timeval *timeout) +{ + return _select(nfds, readfds, writefds, exceptfds, timeout); +} + + +extern "C" int +__attribute__((weak)) +_pselect(int nfds, fd_set *readfds, fd_set *writefds, + fd_set *exceptfds, const struct timespec *timeout, + const sigset_t *sigmask) { struct timeval tv; sigset_t origmask; @@ -297,3 +307,13 @@ pselect(int nfds, fd_set *readfds, fd_set *writefds, return nready; } + + +extern "C" int +__attribute__((weak)) +pselect(int nfds, fd_set *readfds, fd_set *writefds, + fd_set *exceptfds, const struct timespec *timeout, + const sigset_t *sigmask) +{ + return _pselect(nfds, readfds, writefds, exceptfds, timeout, sigmask); +}