Page MenuHomeFreeBSD

D44238.id135660.diff
No OneTemporary

D44238.id135660.diff

diff --git a/lib/libc/include/libc_private.h b/lib/libc/include/libc_private.h
--- a/lib/libc/include/libc_private.h
+++ b/lib/libc/include/libc_private.h
@@ -414,8 +414,8 @@
int __libc_sigprocmask(int, const __sigset_t *, __sigset_t *)
__hidden;
int __libc_sigsuspend(const __sigset_t *) __hidden;
-int __libc_sigwait(const __sigset_t * __restrict,
- int * restrict sig);
+int __libsys_sigwait(const __sigset_t * __restrict,
+ int *__restrict) __hidden;
int __libc_system(const char *);
int __libc_tcdrain(int);
int __fcntl_compat(int fd, int cmd, ...);
diff --git a/lib/libsys/Makefile.sys b/lib/libsys/Makefile.sys
--- a/lib/libsys/Makefile.sys
+++ b/lib/libsys/Makefile.sys
@@ -37,7 +37,8 @@
__getosreldate.c \
getpagesize.c \
getpagesizes.c \
- interposing_table.c
+ interposing_table.c \
+ libsys_sigwait.c
SRCS+= getdents.c lstat.c mknod.c stat.c
diff --git a/lib/libsys/Symbol.sys.map b/lib/libsys/Symbol.sys.map
--- a/lib/libsys/Symbol.sys.map
+++ b/lib/libsys/Symbol.sys.map
@@ -433,7 +433,6 @@
FBSDprivate_1.0 {
/* Add entries in sort(1) order */
- __libc_sigwait;
__libsys_interposing_slot;
__set_error_selector;
__sigwait;
diff --git a/lib/libsys/interposing_table.c b/lib/libsys/interposing_table.c
--- a/lib/libsys/interposing_table.c
+++ b/lib/libsys/interposing_table.c
@@ -59,7 +59,7 @@
SLOT(sigaction, __sys_sigaction),
SLOT(sigprocmask, __sys_sigprocmask),
SLOT(sigsuspend, __sys_sigsuspend),
- SLOT(sigwait, __libc_sigwait),
+ SLOT(sigwait, __libsys_sigwait),
SLOT(sigtimedwait, __sys_sigtimedwait),
SLOT(sigwaitinfo, __sys_sigwaitinfo),
SLOT(swapcontext, __sys_swapcontext),
diff --git a/lib/libsys/sigwait.c b/lib/libsys/libsys_sigwait.c
copy from lib/libsys/sigwait.c
copy to lib/libsys/libsys_sigwait.c
--- a/lib/libsys/sigwait.c
+++ b/lib/libsys/libsys_sigwait.c
@@ -29,23 +29,16 @@
#include <signal.h>
#include "libc_private.h"
-__weak_reference(__libc_sigwait, __sigwait);
+/* XXX: why does this symbol exist? */
+__weak_reference(__libsys_sigwait, __sigwait);
-#pragma weak sigwait
int
-sigwait(const sigset_t *set, int *sig)
-{
- return (((int (*)(const sigset_t *, int *))
- __libsys_interposing[INTERPOS_sigwait])(set, sig));
-}
-
-int
-__libc_sigwait(const sigset_t *set, int *sig)
+__libsys_sigwait(const sigset_t *set, int *sig)
{
int ret;
/* POSIX does not allow EINTR to be returned */
- do {
+ do {
ret = __sys_sigwait(set, sig);
} while (ret == EINTR);
return (ret);
diff --git a/lib/libsys/sigwait.c b/lib/libsys/sigwait.c
--- a/lib/libsys/sigwait.c
+++ b/lib/libsys/sigwait.c
@@ -25,12 +25,9 @@
* SUCH DAMAGE.
*/
-#include <errno.h>
#include <signal.h>
#include "libc_private.h"
-__weak_reference(__libc_sigwait, __sigwait);
-
#pragma weak sigwait
int
sigwait(const sigset_t *set, int *sig)
@@ -38,15 +35,3 @@
return (((int (*)(const sigset_t *, int *))
__libsys_interposing[INTERPOS_sigwait])(set, sig));
}
-
-int
-__libc_sigwait(const sigset_t *set, int *sig)
-{
- int ret;
-
- /* POSIX does not allow EINTR to be returned */
- do {
- ret = __sys_sigwait(set, sig);
- } while (ret == EINTR);
- return (ret);
-}

File Metadata

Mime Type
text/plain
Expires
Sat, Jan 31, 8:20 PM (21 h, 14 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28176104
Default Alt Text
D44238.id135660.diff (3 KB)

Event Timeline