diff options
Diffstat (limited to 'libc')
| -rw-r--r-- | libc/sysdeps/linux/common/creat64.c | 9 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/ioctl.c | 2 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/open.c | 6 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/open64.c | 3 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/poll.c | 11 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/pselect.c | 5 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/readv.c | 7 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/select.c | 13 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/sigsuspend.c | 11 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/writev.c | 7 | 
10 files changed, 51 insertions, 23 deletions
diff --git a/libc/sysdeps/linux/common/creat64.c b/libc/sysdeps/linux/common/creat64.c index c1f250832..f5f00182c 100644 --- a/libc/sysdeps/linux/common/creat64.c +++ b/libc/sysdeps/linux/common/creat64.c @@ -22,11 +22,14 @@  #include <fcntl.h>  #include <sys/types.h> -libc_hidden_proto(open64) +extern __typeof(open64) __libc_open64; +libc_hidden_proto(__libc_open64) +extern __typeof(creat64) __libc_creat64;  /* Create FILE with protections MODE.  */ -int creat64 (const char *file, mode_t mode) +int __libc_creat64 (const char *file, mode_t mode)  { -    return open64 (file, O_WRONLY|O_CREAT|O_TRUNC, mode); +    return __libc_open64 (file, O_WRONLY|O_CREAT|O_TRUNC, mode);  } +weak_alias(__libc_creat64,creat64)  #endif /* __UCLIBC_HAS_LFS__ */ diff --git a/libc/sysdeps/linux/common/ioctl.c b/libc/sysdeps/linux/common/ioctl.c index e8e3a1031..e4e710a71 100644 --- a/libc/sysdeps/linux/common/ioctl.c +++ b/libc/sysdeps/linux/common/ioctl.c @@ -15,7 +15,7 @@ libc_hidden_proto(ioctl)  #define __NR___syscall_ioctl __NR_ioctl  static inline -_syscall3(int, __syscall_ioctl, int, fd, unsigned long int, request, void *, arg); +_syscall3(int, __syscall_ioctl, int, fd, int, request, void *, arg);  int ioctl(int fd, unsigned long int request, ...)  { diff --git a/libc/sysdeps/linux/common/open.c b/libc/sysdeps/linux/common/open.c index 822ac4f63..580876a26 100644 --- a/libc/sysdeps/linux/common/open.c +++ b/libc/sysdeps/linux/common/open.c @@ -15,12 +15,13 @@  #include <sys/param.h>  extern __typeof(open) __libc_open; -libc_hidden_proto(__libc_open) +extern __typeof(creat) __libc_creat;  #define __NR___syscall_open __NR_open  static inline _syscall3(int, __syscall_open, const char *, file,  		int, flags, __kernel_mode_t, mode); +libc_hidden_proto(__libc_open)  int __libc_open(const char *file, int flags, ...)  {  	/* gcc may warn about mode being uninitialized. @@ -42,7 +43,8 @@ libc_hidden_proto(open)  weak_alias(__libc_open,open)  libc_hidden_weak(open) -int creat(const char *file, mode_t mode) +int __libc_creat(const char *file, mode_t mode)  {  	return __libc_open(file, O_WRONLY | O_CREAT | O_TRUNC, mode);  } +weak_alias(__libc_creat,creat) diff --git a/libc/sysdeps/linux/common/open64.c b/libc/sysdeps/linux/common/open64.c index 81480f88e..93a27e9bd 100644 --- a/libc/sysdeps/linux/common/open64.c +++ b/libc/sysdeps/linux/common/open64.c @@ -20,6 +20,7 @@ libc_hidden_proto(__libc_open)  /* Open FILE with access OFLAG.  If OFLAG includes O_CREAT,     a third argument is the file protection.  */ +libc_hidden_proto(__libc_open64)  int __libc_open64 (const char *file, int oflag, ...)  {    int mode = 0; @@ -34,6 +35,8 @@ int __libc_open64 (const char *file, int oflag, ...)    return __libc_open(file, oflag | O_LARGEFILE, mode);  } +libc_hidden_def(__libc_open64) +  libc_hidden_proto(open64)  weak_alias(__libc_open64,open64)  libc_hidden_weak(open64) diff --git a/libc/sysdeps/linux/common/poll.c b/libc/sysdeps/linux/common/poll.c index 00fd70816..2512dc4da 100644 --- a/libc/sysdeps/linux/common/poll.c +++ b/libc/sysdeps/linux/common/poll.c @@ -20,10 +20,11 @@  #include "syscalls.h"  #include <sys/poll.h> -libc_hidden_proto(poll) +extern __typeof(poll) __libc_poll;  #ifdef __NR_poll -_syscall3(int, poll, struct pollfd *, fds, +# define __NR___libc_poll __NR_poll +_syscall3(int, __libc_poll, struct pollfd *, fds,  	unsigned long int, nfds, int, timeout);  #else @@ -48,7 +49,7 @@ libc_hidden_proto(select)     Returns the number of file descriptors with events, zero if timed out,     or -1 for errors.  */ -int poll(struct pollfd *fds, nfds_t nfds, int timeout) +int __libc_poll(struct pollfd *fds, nfds_t nfds, int timeout)  {      static int max_fd_size;      struct timeval tv; @@ -207,4 +208,6 @@ int poll(struct pollfd *fds, nfds_t nfds, int timeout)  }  #endif -libc_hidden_def(poll) +libc_hidden_proto(poll) +weak_alias(__libc_poll,poll) +libc_hidden_weak(poll) diff --git a/libc/sysdeps/linux/common/pselect.c b/libc/sysdeps/linux/common/pselect.c index 93a85a622..3a958fcfc 100644 --- a/libc/sysdeps/linux/common/pselect.c +++ b/libc/sysdeps/linux/common/pselect.c @@ -23,6 +23,8 @@  #include <sys/time.h>  #include <sys/select.h> +extern __typeof(pselect) __libc_pselect; +  libc_hidden_proto(sigprocmask)  libc_hidden_proto(select) @@ -34,7 +36,7 @@ libc_hidden_proto(select)     SIGMASK for this call.  Returns the number of ready descriptors, or -1 for     errors.  */  int -pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, +__libc_pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,  	   const struct timespec *timeout, const sigset_t *sigmask)  {    struct timeval tval; @@ -64,3 +66,4 @@ pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,    return retval;  } +weak_alias(__libc_pselect,pselect) diff --git a/libc/sysdeps/linux/common/readv.c b/libc/sysdeps/linux/common/readv.c index 040e61266..20226f39c 100644 --- a/libc/sysdeps/linux/common/readv.c +++ b/libc/sysdeps/linux/common/readv.c @@ -9,5 +9,10 @@  #include "syscalls.h"  #include <sys/uio.h> -_syscall3(ssize_t, readv, int, filedes, const struct iovec *, vector, + +extern __typeof(readv) __libc_readv; + +#define __NR___libc_readv __NR_readv +_syscall3(ssize_t, __libc_readv, int, filedes, const struct iovec *, vector,  		  int, count); +weak_alias(__libc_readv,readv) diff --git a/libc/sysdeps/linux/common/select.c b/libc/sysdeps/linux/common/select.c index 9a50d198a..db038107a 100644 --- a/libc/sysdeps/linux/common/select.c +++ b/libc/sysdeps/linux/common/select.c @@ -10,12 +10,15 @@  #include "syscalls.h"  #include <sys/select.h> -libc_hidden_proto(select) +extern __typeof(select) __libc_select;  #ifdef __NR__newselect -# undef __NR_select -# define __NR_select __NR__newselect +# define __NR___libc_select __NR__newselect +#else +# define __NR___libc_select __NR_select  #endif -_syscall5(int, select, int, n, fd_set *, readfds, fd_set *, writefds, +_syscall5(int, __libc_select, int, n, fd_set *, readfds, fd_set *, writefds,  		  fd_set *, exceptfds, struct timeval *, timeout); -libc_hidden_def(select) +libc_hidden_proto(select) +weak_alias(__libc_select,select) +libc_hidden_weak(select) diff --git a/libc/sysdeps/linux/common/sigsuspend.c b/libc/sysdeps/linux/common/sigsuspend.c index 7bc3a59c1..87054e8e0 100644 --- a/libc/sysdeps/linux/common/sigsuspend.c +++ b/libc/sysdeps/linux/common/sigsuspend.c @@ -9,15 +9,14 @@  #include "syscalls.h"  #include <signal.h> -#undef sigsuspend -libc_hidden_proto(sigsuspend) +extern __typeof(sigsuspend) __libc_sigsuspend;  #ifdef __NR_rt_sigsuspend  # define __NR___rt_sigsuspend __NR_rt_sigsuspend  static inline _syscall2(int, __rt_sigsuspend, const sigset_t *, mask, size_t, size); -int sigsuspend(const sigset_t * mask) +int __libc_sigsuspend(const sigset_t * mask)  {  	return __rt_sigsuspend(mask, _NSIG / 8);  } @@ -26,9 +25,11 @@ int sigsuspend(const sigset_t * mask)  static inline _syscall3(int, __syscall_sigsuspend, int, a, unsigned long int, b,  		  unsigned long int, c); -int sigsuspend(const sigset_t * set) +int __libc_sigsuspend(const sigset_t * set)  {  	return __syscall_sigsuspend(0, 0, set->__val[0]);  }  #endif -libc_hidden_def(sigsuspend) +libc_hidden_proto(sigsuspend) +weak_alias(__libc_sigsuspend,sigsuspend) +libc_hidden_weak(sigsuspend) diff --git a/libc/sysdeps/linux/common/writev.c b/libc/sysdeps/linux/common/writev.c index 4efff02fb..4ea9395f4 100644 --- a/libc/sysdeps/linux/common/writev.c +++ b/libc/sysdeps/linux/common/writev.c @@ -9,5 +9,10 @@  #include "syscalls.h"  #include <sys/uio.h> -_syscall3(ssize_t, writev, int, filedes, const struct iovec *, vector, + +extern __typeof(writev) __libc_writev; + +#define __NR___libc_writev __NR_writev +_syscall3(ssize_t, __libc_writev, int, filedes, const struct iovec *, vector,  		  int, count); +weak_alias(__libc_writev,writev)  | 
