summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/common
diff options
context:
space:
mode:
Diffstat (limited to 'libc/sysdeps/linux/common')
-rw-r--r--libc/sysdeps/linux/common/close.c7
-rw-r--r--libc/sysdeps/linux/common/creat64.c2
-rw-r--r--libc/sysdeps/linux/common/create_module.c4
-rw-r--r--libc/sysdeps/linux/common/dl-osinfo.h51
-rw-r--r--libc/sysdeps/linux/common/getcwd.c18
-rw-r--r--libc/sysdeps/linux/common/getdents.c2
-rw-r--r--libc/sysdeps/linux/common/getdents64.c2
-rw-r--r--libc/sysdeps/linux/common/getdirname.c2
-rw-r--r--libc/sysdeps/linux/common/getdnnm.c4
-rw-r--r--libc/sysdeps/linux/common/getdtablesize.c2
-rw-r--r--libc/sysdeps/linux/common/gethstnm.c4
-rw-r--r--libc/sysdeps/linux/common/getrlimit.c15
-rw-r--r--libc/sysdeps/linux/common/getrlimit64.c2
-rw-r--r--libc/sysdeps/linux/common/gettimeofday.c6
-rw-r--r--libc/sysdeps/linux/common/longjmp.c2
-rw-r--r--libc/sysdeps/linux/common/open.c7
-rw-r--r--libc/sysdeps/linux/common/open64.c9
-rw-r--r--libc/sysdeps/linux/common/poll.c30
-rw-r--r--libc/sysdeps/linux/common/read.c7
-rw-r--r--libc/sysdeps/linux/common/setrlimit.c14
-rw-r--r--libc/sysdeps/linux/common/setrlimit64.c1
-rw-r--r--libc/sysdeps/linux/common/sigprocmask.c6
-rw-r--r--libc/sysdeps/linux/common/ssp.c12
-rw-r--r--libc/sysdeps/linux/common/ulimit.c2
-rw-r--r--libc/sysdeps/linux/common/write.c9
25 files changed, 124 insertions, 96 deletions
diff --git a/libc/sysdeps/linux/common/close.c b/libc/sysdeps/linux/common/close.c
index 1e03b091e..2e9c2073d 100644
--- a/libc/sysdeps/linux/common/close.c
+++ b/libc/sysdeps/linux/common/close.c
@@ -10,6 +10,7 @@
#include "syscalls.h"
#include <unistd.h>
-#define __NR___libc_close __NR_close
-_syscall1(int, __libc_close, int, fd);
-weak_alias(__libc_close, close);
+#define __NR___close __NR_close
+attribute_hidden _syscall1(int, __close, int, fd);
+strong_alias(__close,close)
+weak_alias(__close,__libc_close)
diff --git a/libc/sysdeps/linux/common/creat64.c b/libc/sysdeps/linux/common/creat64.c
index deeda3892..759f5bed8 100644
--- a/libc/sysdeps/linux/common/creat64.c
+++ b/libc/sysdeps/linux/common/creat64.c
@@ -16,6 +16,8 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
+#define open64 __open64
+
#include <features.h>
#include <fcntl.h>
#include <sys/types.h>
diff --git a/libc/sysdeps/linux/common/create_module.c b/libc/sysdeps/linux/common/create_module.c
index ee7b4daef..a54f13be5 100644
--- a/libc/sysdeps/linux/common/create_module.c
+++ b/libc/sysdeps/linux/common/create_module.c
@@ -34,7 +34,7 @@
# ifdef __STR_NR_create_module
# define __STR_NR___create_module __STR_NR_create_module
# endif
-attribute_hidden _syscall2(long, __create_module, const char *, name, size_t, size);
+static inline _syscall2(long, __create_module, const char *, name, size_t, size);
/* By checking the value of errno, we know if we have been fooled
* by the syscall2 macro making a very high address look like a
* negative, so we we fix it up here. */
@@ -53,7 +53,7 @@ unsigned long create_module(const char *name, size_t size)
# define __NR___create_module __NR_create_module
/* Alpha doesn't have the same problem, exactly, but a bug in older
kernels fails to clear the error flag. Clear it here explicitly. */
-attribute_hidden _syscall4(unsigned long, __create_module, const char *, name,
+static inline _syscall4(unsigned long, __create_module, const char *, name,
size_t, size, size_t, dummy, size_t, err);
unsigned long create_module(const char *name, size_t size)
{
diff --git a/libc/sysdeps/linux/common/dl-osinfo.h b/libc/sysdeps/linux/common/dl-osinfo.h
index 4976b2b46..7998b08a4 100644
--- a/libc/sysdeps/linux/common/dl-osinfo.h
+++ b/libc/sysdeps/linux/common/dl-osinfo.h
@@ -10,35 +10,35 @@
#include <features.h>
#ifdef __UCLIBC_HAS_SSP__
-#include <stdint.h>
-#include <sys/time.h>
+# if defined IS_IN_libc || defined IS_IN_rtld
-#ifdef IS_IN_libc
-#include <ssp-internal.h>
-#if 0
-#ifndef __SSP_QUICK_CANARY__
-#define OPEN __libc_open
-#define READ __libc_read
-#define CLOSE __libc_close
-#endif
-#define GETTIMEOFDAY gettimeofday
-#endif
-#else
-#ifdef __SSP__
-#error "file must not be compiled with stack protection enabled on it. Use -fno-stack-protector"
-#endif
-#ifndef __SSP_QUICK_CANARY__
-#define OPEN _dl_open
-#define READ _dl_read
-#define CLOSE _dl_close
-#endif
-#define GETTIMEOFDAY _dl_gettimeofday
-#endif
+# if defined __SSP__ || defined __SSP_ALL__
+# error "file must not be compiled with stack protection enabled on it. Use -fno-stack-protector"
+# endif
+
+# include <stdint.h>
+# include <sys/time.h>
+
+# ifdef IS_IN_libc
+# ifndef __SSP_QUICK_CANARY__
+# define OPEN __open
+# define READ __read
+# define CLOSE __close
+# endif
+# define GETTIMEOFDAY gettimeofday
+# else
+# ifndef __SSP_QUICK_CANARY__
+# define OPEN _dl_open
+# define READ _dl_read
+# define CLOSE _dl_close
+# endif
+# define GETTIMEOFDAY _dl_gettimeofday
+# endif
static __always_inline uintptr_t _dl_setup_stack_chk_guard(void)
{
uintptr_t ret;
-#ifndef __SSP_QUICK_CANARY__
+# ifndef __SSP_QUICK_CANARY__
{
int fd = OPEN("/dev/urandom", O_RDONLY, 0);
if (fd >= 0) {
@@ -48,7 +48,7 @@ static __always_inline uintptr_t _dl_setup_stack_chk_guard(void)
return ret;
}
}
-#endif /* !__SSP_QUICK_CANARY__ */
+# endif /* !__SSP_QUICK_CANARY__ */
/* Start with the "terminator canary". */
ret = 0xFF0A0D00UL;
@@ -62,6 +62,7 @@ static __always_inline uintptr_t _dl_setup_stack_chk_guard(void)
}
return ret;
}
+# endif /* libc || rtld */
#endif /* __UCLIBC_HAS_SSP__ */
#endif /* _DL_OSINFO_H */
diff --git a/libc/sysdeps/linux/common/getcwd.c b/libc/sysdeps/linux/common/getcwd.c
index c6a2fc005..d007993eb 100644
--- a/libc/sysdeps/linux/common/getcwd.c
+++ b/libc/sysdeps/linux/common/getcwd.c
@@ -47,13 +47,13 @@ static char *search_dir(dev_t this_dev, ino_t this_ino, char *path_buf, int path
slow_search = 1;
#endif
- slen = strlen(path_buf);
+ slen = __strlen(path_buf);
ptr = path_buf + slen - 1;
if (*ptr != '/') {
if (slen + 2 > path_size) {
goto oops;
}
- strcpy(++ptr, "/");
+ __strcpy(++ptr, "/");
slen++;
}
slen++;
@@ -67,10 +67,10 @@ static char *search_dir(dev_t this_dev, ino_t this_ino, char *path_buf, int path
#ifdef FAST_DIR_SEARCH_POSSIBLE
if (slow_search || this_ino == d->d_ino) {
#endif
- if (slen + strlen(d->d_name) > path_size) {
+ if (slen + __strlen(d->d_name) > path_size) {
goto oops;
}
- strcpy(ptr + 1, d->d_name);
+ __strcpy(ptr + 1, d->d_name);
if (stat(path_buf, &st) < 0)
continue;
if (st.st_ino == this_ino && st.st_dev == this_dev) {
@@ -108,13 +108,13 @@ static char *recurser(char *path_buf, int path_size, dev_t root_dev, ino_t root_
if (path_size < 2) {
goto oops;
}
- strcpy(path_buf, "/");
+ __strcpy(path_buf, "/");
return path_buf;
}
- if (strlen(path_buf) + 4 > path_size) {
+ if (__strlen(path_buf) + 4 > path_size) {
goto oops;
}
- strcat(path_buf, "/..");
+ __strcat(path_buf, "/..");
if (recurser(path_buf, path_size, root_dev, root_ino) == 0)
return 0;
@@ -141,11 +141,11 @@ int __syscall_getcwd(char * buf, unsigned long size)
return -1;
}
/* start with actual dir */
- if (buf) strncpy(buf, ".", size);
+ if (buf) __strncpy(buf, ".", size);
cwd = recurser(buf, size, st.st_dev, st.st_ino);
if (cwd) {
- len = strlen(buf);
+ len = __strlen(buf);
__set_errno(olderrno);
}
return len;
diff --git a/libc/sysdeps/linux/common/getdents.c b/libc/sysdeps/linux/common/getdents.c
index 876420664..6913798a8 100644
--- a/libc/sysdeps/linux/common/getdents.c
+++ b/libc/sysdeps/linux/common/getdents.c
@@ -90,7 +90,7 @@ ssize_t attribute_hidden __getdents (int fd, char *buf, size_t nbytes)
dp->d_off = kdp->d_off;
dp->d_reclen = new_reclen;
dp->d_type = DT_UNKNOWN;
- memcpy (dp->d_name, kdp->d_name,
+ __memcpy (dp->d_name, kdp->d_name,
kdp->d_reclen - offsetof (struct kernel_dirent, d_name));
dp = (struct dirent *) ((char *) dp + new_reclen);
kdp = (struct kernel_dirent *) (((char *) kdp) + kdp->d_reclen);
diff --git a/libc/sysdeps/linux/common/getdents64.c b/libc/sysdeps/linux/common/getdents64.c
index e45d9d364..37ecc1339 100644
--- a/libc/sysdeps/linux/common/getdents64.c
+++ b/libc/sysdeps/linux/common/getdents64.c
@@ -95,7 +95,7 @@ ssize_t attribute_hidden __getdents64 (int fd, char *buf, size_t nbytes)
dp->d_off = kdp->d_off;
dp->d_reclen = new_reclen;
dp->d_type = DT_UNKNOWN;
- memcpy (dp->d_name, kdp->d_name,
+ __memcpy (dp->d_name, kdp->d_name,
kdp->d_reclen - offsetof (struct kernel_dirent64, d_name));
dp = (struct dirent64 *) ((char *) dp + new_reclen);
kdp = (struct kernel_dirent64 *) (((char *) kdp) + kdp->d_reclen);
diff --git a/libc/sysdeps/linux/common/getdirname.c b/libc/sysdeps/linux/common/getdirname.c
index 4cc528fc7..d0865fba5 100644
--- a/libc/sysdeps/linux/common/getdirname.c
+++ b/libc/sysdeps/linux/common/getdirname.c
@@ -49,7 +49,7 @@ get_current_dir_name (void)
&& pwdstat.st_dev == dotstat.st_dev
&& pwdstat.st_ino == dotstat.st_ino)
/* The PWD value is correct. Use it. */
- return strdup (pwd);
+ return __strdup (pwd);
return getcwd ((char *) NULL, 0);
}
diff --git a/libc/sysdeps/linux/common/getdnnm.c b/libc/sysdeps/linux/common/getdnnm.c
index aa5a7d756..3c48b4ca0 100644
--- a/libc/sysdeps/linux/common/getdnnm.c
+++ b/libc/sysdeps/linux/common/getdnnm.c
@@ -18,10 +18,10 @@ getdomainname(char *name, size_t len)
if (uname(&uts) == -1) return -1;
- if (strlen(uts.domainname)+1 > len) {
+ if (__strlen(uts.domainname)+1 > len) {
__set_errno(EINVAL);
return -1;
}
- strcpy(name, uts.domainname);
+ __strcpy(name, uts.domainname);
return 0;
}
diff --git a/libc/sysdeps/linux/common/getdtablesize.c b/libc/sysdeps/linux/common/getdtablesize.c
index 016e6f62e..8cbcebdce 100644
--- a/libc/sysdeps/linux/common/getdtablesize.c
+++ b/libc/sysdeps/linux/common/getdtablesize.c
@@ -16,6 +16,8 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+#define getrlimit __getrlimit
+
#include <stdlib.h>
#include <unistd.h>
#include <sys/resource.h>
diff --git a/libc/sysdeps/linux/common/gethstnm.c b/libc/sysdeps/linux/common/gethstnm.c
index 0f7a04681..8a23e9516 100644
--- a/libc/sysdeps/linux/common/gethstnm.c
+++ b/libc/sysdeps/linux/common/gethstnm.c
@@ -15,10 +15,10 @@ gethostname(char *name, size_t len)
if (uname(&uts) == -1) return -1;
- if (strlen(uts.nodename)+1 > len) {
+ if (__strlen(uts.nodename)+1 > len) {
__set_errno(EINVAL);
return -1;
}
- strcpy(name, uts.nodename);
+ __strcpy(name, uts.nodename);
return 0;
}
diff --git a/libc/sysdeps/linux/common/getrlimit.c b/libc/sysdeps/linux/common/getrlimit.c
index c84330b03..fef907a03 100644
--- a/libc/sysdeps/linux/common/getrlimit.c
+++ b/libc/sysdeps/linux/common/getrlimit.c
@@ -13,9 +13,10 @@
#ifdef __NR_ugetrlimit
#define __NR___ugetrlimit __NR_ugetrlimit
-attribute_hidden _syscall2(int, __ugetrlimit, enum __rlimit_resource, resource,
+static inline
+_syscall2(int, __ugetrlimit, enum __rlimit_resource, resource,
struct rlimit *, rlim);
-int getrlimit(__rlimit_resource_t resource, struct rlimit *rlimits)
+int attribute_hidden __getrlimit(__rlimit_resource_t resource, struct rlimit *rlimits)
{
return (__ugetrlimit(resource, rlimits));
}
@@ -23,15 +24,15 @@ int getrlimit(__rlimit_resource_t resource, struct rlimit *rlimits)
#else /* __NR_ugetrlimit */
/* Only include the old getrlimit if the new one (ugetrlimit) is not around */
-#define __NR___getrlimit __NR_getrlimit
+#define __NR___syscall_getrlimit __NR_getrlimit
static inline
-_syscall2(int, __getrlimit, int, resource, struct rlimit *, rlim);
+_syscall2(int, __syscall_getrlimit, int, resource, struct rlimit *, rlim);
-int getrlimit(__rlimit_resource_t resource, struct rlimit *rlimits)
+int attribute_hidden __getrlimit(__rlimit_resource_t resource, struct rlimit *rlimits)
{
int result;
- result = __getrlimit(resource, rlimits);
+ result = __syscall_getrlimit(resource, rlimits);
if (result == -1)
return result;
@@ -45,3 +46,5 @@ int getrlimit(__rlimit_resource_t resource, struct rlimit *rlimits)
return result;
}
#endif
+
+strong_alias(__getrlimit,getrlimit)
diff --git a/libc/sysdeps/linux/common/getrlimit64.c b/libc/sysdeps/linux/common/getrlimit64.c
index 1af7870af..76c3196ad 100644
--- a/libc/sysdeps/linux/common/getrlimit64.c
+++ b/libc/sysdeps/linux/common/getrlimit64.c
@@ -16,6 +16,8 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
+#define getrlimit __getrlimit
+
#include <features.h>
#if defined _FILE_OFFSET_BITS && _FILE_OFFSET_BITS != 64
diff --git a/libc/sysdeps/linux/common/gettimeofday.c b/libc/sysdeps/linux/common/gettimeofday.c
index 0165acfc1..88f7f9999 100644
--- a/libc/sysdeps/linux/common/gettimeofday.c
+++ b/libc/sysdeps/linux/common/gettimeofday.c
@@ -9,4 +9,8 @@
#include "syscalls.h"
#include <sys/time.h>
-_syscall2(int, gettimeofday, struct timeval *, tv, struct timezone *, tz);
+#undef gettimeofday
+#define __NR___gettimeofday __NR_gettimeofday
+attribute_hidden _syscall2(int, __gettimeofday, struct timeval *, tv, struct timezone *, tz);
+strong_alias(__gettimeofday,gettimeofday)
+weak_alias(__gettimeofday,__libc_gettimeofday)
diff --git a/libc/sysdeps/linux/common/longjmp.c b/libc/sysdeps/linux/common/longjmp.c
index 1a4201922..5b4eff5f5 100644
--- a/libc/sysdeps/linux/common/longjmp.c
+++ b/libc/sysdeps/linux/common/longjmp.c
@@ -36,7 +36,7 @@ void __libc_longjmp (sigjmp_buf env, int val)
if (env[0].__mask_was_saved)
/* Restore the saved signal mask. */
- (void) sigprocmask (SIG_SETMASK, &env[0].__saved_mask,
+ (void) __sigprocmask (SIG_SETMASK, &env[0].__saved_mask,
(sigset_t *) NULL);
/* Call the machine-dependent function to restore machine state. */
diff --git a/libc/sysdeps/linux/common/open.c b/libc/sysdeps/linux/common/open.c
index 332d6a402..90e990a4f 100644
--- a/libc/sysdeps/linux/common/open.c
+++ b/libc/sysdeps/linux/common/open.c
@@ -18,7 +18,7 @@
static inline _syscall3(int, __syscall_open, const char *, file,
int, flags, __kernel_mode_t, mode);
-int __libc_open(const char *file, int flags, ...)
+int attribute_hidden __open(const char *file, int flags, ...)
{
/* gcc may warn about mode being uninitialized.
* Just ignore that, since gcc is wrong. */
@@ -33,9 +33,10 @@ int __libc_open(const char *file, int flags, ...)
}
return __syscall_open(file, flags, mode);
}
-weak_alias(__libc_open, open);
+strong_alias(__open,open)
+weak_alias(__open,__libc_open)
int creat(const char *file, mode_t mode)
{
- return __libc_open(file, O_WRONLY | O_CREAT | O_TRUNC, mode);
+ return __open(file, O_WRONLY | O_CREAT | O_TRUNC, mode);
}
diff --git a/libc/sysdeps/linux/common/open64.c b/libc/sysdeps/linux/common/open64.c
index d9a27a7bc..c1cd47141 100644
--- a/libc/sysdeps/linux/common/open64.c
+++ b/libc/sysdeps/linux/common/open64.c
@@ -26,11 +26,9 @@
#endif
#ifdef __UCLIBC_HAS_LFS__
-extern int __libc_open (__const char *file, int oflag, ...);
-
/* Open FILE with access OFLAG. If OFLAG includes O_CREAT,
a third argument is the file protection. */
-int __libc_open64 (const char *file, int oflag, ...)
+int attribute_hidden __open64 (const char *file, int oflag, ...)
{
int mode = 0;
@@ -42,7 +40,8 @@ int __libc_open64 (const char *file, int oflag, ...)
va_end (arg);
}
- return __libc_open(file, oflag | O_LARGEFILE, mode);
+ return __open(file, oflag | O_LARGEFILE, mode);
}
-weak_alias (__libc_open64, open64);
+strong_alias(__open64,open64)
+weak_alias(__open64,__libc_open64)
#endif /* __UCLIBC_HAS_LFS__ */
diff --git a/libc/sysdeps/linux/common/poll.c b/libc/sysdeps/linux/common/poll.c
index 06c857c43..87d0dbb27 100644
--- a/libc/sysdeps/linux/common/poll.c
+++ b/libc/sysdeps/linux/common/poll.c
@@ -62,9 +62,9 @@ int poll(struct pollfd *fds, nfds_t nfds, int timeout)
/* We can't call FD_ZERO, since FD_ZERO only works with sets
of exactly __FD_SETSIZE size. */
- memset (rset, 0, bytes);
- memset (wset, 0, bytes);
- memset (xset, 0, bytes);
+ __memset (rset, 0, bytes);
+ __memset (wset, 0, bytes);
+ __memset (xset, 0, bytes);
for (f = fds; f < &fds[nfds]; ++f)
{
@@ -86,13 +86,13 @@ int poll(struct pollfd *fds, nfds_t nfds, int timeout)
nwset = alloca (nbytes);
nxset = alloca (nbytes);
- memset ((char *) nrset + bytes, 0, nbytes - bytes);
- memset ((char *) nwset + bytes, 0, nbytes - bytes);
- memset ((char *) nxset + bytes, 0, nbytes - bytes);
+ __memset ((char *) nrset + bytes, 0, nbytes - bytes);
+ __memset ((char *) nwset + bytes, 0, nbytes - bytes);
+ __memset ((char *) nxset + bytes, 0, nbytes - bytes);
- rset = memcpy (nrset, rset, bytes);
- wset = memcpy (nwset, wset, bytes);
- xset = memcpy (nxset, xset, bytes);
+ rset = __memcpy (nrset, rset, bytes);
+ wset = __memcpy (nwset, wset, bytes);
+ xset = __memcpy (nxset, xset, bytes);
bytes = nbytes;
}
@@ -126,9 +126,9 @@ int poll(struct pollfd *fds, nfds_t nfds, int timeout)
struct timeval sngl_tv;
/* Clear the original set. */
- memset (rset, 0, bytes);
- memset (wset, 0, bytes);
- memset (xset, 0, bytes);
+ __memset (rset, 0, bytes);
+ __memset (wset, 0, bytes);
+ __memset (xset, 0, bytes);
/* This means we don't wait for input. */
sngl_tv.tv_sec = 0;
@@ -145,9 +145,9 @@ int poll(struct pollfd *fds, nfds_t nfds, int timeout)
{
int n;
- memset (sngl_rset, 0, bytes);
- memset (sngl_wset, 0, bytes);
- memset (sngl_xset, 0, bytes);
+ __memset (sngl_rset, 0, bytes);
+ __memset (sngl_wset, 0, bytes);
+ __memset (sngl_xset, 0, bytes);
if (f->events & POLLIN)
FD_SET (f->fd, sngl_rset);
diff --git a/libc/sysdeps/linux/common/read.c b/libc/sysdeps/linux/common/read.c
index 9b9ea5bc9..6490bccbc 100644
--- a/libc/sysdeps/linux/common/read.c
+++ b/libc/sysdeps/linux/common/read.c
@@ -10,6 +10,7 @@
#include "syscalls.h"
#include <unistd.h>
-#define __NR___libc_read __NR_read
-_syscall3(ssize_t, __libc_read, int, fd, __ptr_t, buf, size_t, count);
-weak_alias(__libc_read, read);
+#define __NR___read __NR_read
+attribute_hidden _syscall3(ssize_t, __read, int, fd, __ptr_t, buf, size_t, count);
+strong_alias(__read,read)
+weak_alias(__read,__libc_read)
diff --git a/libc/sysdeps/linux/common/setrlimit.c b/libc/sysdeps/linux/common/setrlimit.c
index c7ebe6c98..9c5466a09 100644
--- a/libc/sysdeps/linux/common/setrlimit.c
+++ b/libc/sysdeps/linux/common/setrlimit.c
@@ -12,12 +12,13 @@
#ifndef __NR_ugetrlimit
/* Only wrap setrlimit if the new ugetrlimit is not present */
-#define __NR___setrlimit __NR_setrlimit
+#define __NR___syscall_setrlimit __NR_setrlimit
#include <unistd.h>
#include <sys/resource.h>
#define RMIN(x, y) ((x) < (y) ? (x) : (y))
-_syscall2(int, __setrlimit, int, resource, const struct rlimit *, rlim);
-int setrlimit(__rlimit_resource_t resource, const struct rlimit *rlimits)
+static inline
+_syscall2(int, __syscall_setrlimit, int, resource, const struct rlimit *, rlim);
+int attribute_hidden __setrlimit(__rlimit_resource_t resource, const struct rlimit *rlimits)
{
struct rlimit rlimits_small;
@@ -27,7 +28,7 @@ int setrlimit(__rlimit_resource_t resource, const struct rlimit *rlimits)
RLIM_INFINITY >> 1);
rlimits_small.rlim_max = RMIN((unsigned long int) rlimits->rlim_max,
RLIM_INFINITY >> 1);
- return (__setrlimit(resource, &rlimits_small));
+ return (__syscall_setrlimit(resource, &rlimits_small));
}
#undef RMIN
@@ -36,6 +37,9 @@ int setrlimit(__rlimit_resource_t resource, const struct rlimit *rlimits)
#include <unistd.h>
struct rlimit;
-_syscall2(int, setrlimit, unsigned int, resource,
+#define __NR___setrlimit __NR_setrlimit
+attribute_hidden _syscall2(int, __setrlimit, unsigned int, resource,
const struct rlimit *, rlim);
#endif
+
+strong_alias(__setrlimit,setrlimit)
diff --git a/libc/sysdeps/linux/common/setrlimit64.c b/libc/sysdeps/linux/common/setrlimit64.c
index 8d190f573..d59057c90 100644
--- a/libc/sysdeps/linux/common/setrlimit64.c
+++ b/libc/sysdeps/linux/common/setrlimit64.c
@@ -16,6 +16,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
+#define setrlimit __setrlimit
#include <features.h>
diff --git a/libc/sysdeps/linux/common/sigprocmask.c b/libc/sysdeps/linux/common/sigprocmask.c
index c15ba2485..7a18648e8 100644
--- a/libc/sysdeps/linux/common/sigprocmask.c
+++ b/libc/sysdeps/linux/common/sigprocmask.c
@@ -19,7 +19,7 @@ static inline
_syscall4(int, __rt_sigprocmask, int, how, const sigset_t *, set,
sigset_t *, oldset, size_t, size);
-int sigprocmask(int how, const sigset_t * set, sigset_t * oldset)
+int attribute_hidden __sigprocmask(int how, const sigset_t * set, sigset_t * oldset)
{
if (set &&
#if (SIG_BLOCK == 0) && (SIG_UNBLOCK == 1) && (SIG_SETMASK == 2)
@@ -44,7 +44,7 @@ static inline
_syscall3(int, __syscall_sigprocmask, int, how, const sigset_t *, set,
sigset_t *, oldset);
-int sigprocmask(int how, const sigset_t * set, sigset_t * oldset)
+int attribute_hidden __sigprocmask(int how, const sigset_t * set, sigset_t * oldset)
{
if (set &&
#if (SIG_BLOCK == 0) && (SIG_UNBLOCK == 1) && (SIG_SETMASK == 2)
@@ -61,3 +61,5 @@ int sigprocmask(int how, const sigset_t * set, sigset_t * oldset)
return (__syscall_sigprocmask(how, set, oldset));
}
#endif
+
+strong_alias(__sigprocmask,sigprocmask)
diff --git a/libc/sysdeps/linux/common/ssp.c b/libc/sysdeps/linux/common/ssp.c
index 43708fe61..4c52d070f 100644
--- a/libc/sysdeps/linux/common/ssp.c
+++ b/libc/sysdeps/linux/common/ssp.c
@@ -30,10 +30,10 @@ static __always_inline void block_signals(void)
sigfillset(&mask);
sigdelset(&mask, SSP_SIGTYPE); /* Block all signal handlers */
- SIGPROCMASK(SIG_BLOCK, &mask, NULL); /* except SSP_SIGTYPE */
+ __sigprocmask(SIG_BLOCK, &mask, NULL); /* except SSP_SIGTYPE */
/* Make the default handler associated with the signal handler */
- memset(&sa, 0, sizeof(struct sigaction));
+ __memset(&sa, 0, sizeof(struct sigaction));
sigfillset(&sa.sa_mask); /* Block all signals */
sa.sa_flags = 0;
sa.sa_handler = SIG_DFL;
@@ -42,10 +42,10 @@ static __always_inline void block_signals(void)
static __always_inline void ssp_write(int fd, const char *msg1, const char *msg2, const char *msg3)
{
- WRITE(fd, msg1, strlen(msg1));
- WRITE(fd, msg2, strlen(msg2));
- WRITE(fd, msg3, strlen(msg3));
- WRITE(fd, "()\n", 3);
+ __write(fd, msg1, __strlen(msg1));
+ __write(fd, msg2, __strlen(msg2));
+ __write(fd, msg3, __strlen(msg3));
+ __write(fd, "()\n", 3);
openlog("ssp", LOG_CONS | LOG_PID, LOG_USER);
syslog(LOG_INFO, "%s%s%s()", msg1, msg2, msg3);
closelog();
diff --git a/libc/sysdeps/linux/common/ulimit.c b/libc/sysdeps/linux/common/ulimit.c
index 5bbed45a7..b8e09fc8f 100644
--- a/libc/sysdeps/linux/common/ulimit.c
+++ b/libc/sysdeps/linux/common/ulimit.c
@@ -19,6 +19,8 @@
*/
#define sysconf __sysconf
+#define getrlimit __getrlimit
+#define setrlimit __setrlimit
#define _GNU_SOURCE
#define _LARGEFILE64_SOURCE
diff --git a/libc/sysdeps/linux/common/write.c b/libc/sysdeps/linux/common/write.c
index b7e34f81c..d3b5fab93 100644
--- a/libc/sysdeps/linux/common/write.c
+++ b/libc/sysdeps/linux/common/write.c
@@ -10,9 +10,12 @@
#include "syscalls.h"
#include <unistd.h>
-#define __NR___libc_write __NR_write
-_syscall3(ssize_t, __libc_write, int, fd, const __ptr_t, buf, size_t, count);
-weak_alias(__libc_write, write);
+#define __NR___write __NR_write
+attribute_hidden _syscall3(ssize_t, __write, int, fd, const __ptr_t, buf, size_t, count);
+strong_alias(__write,write)
+weak_alias(__write,__libc_write)
+#if 0
/* Stupid libgcc.a from gcc 2.95.x uses __write in pure.o
* which is a blatent GNU libc-ism... */
weak_alias(__libc_write, __write);
+#endif