summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author"Steven J. Hill" <sjhill@realitydiluted.com>2005-12-10 18:44:06 +0000
committer"Steven J. Hill" <sjhill@realitydiluted.com>2005-12-10 18:44:06 +0000
commitde75ca704ea62dce9e62b6e1289da796b0567f8f (patch)
treebe5d95f07dd7832e2590c1f06e518c44b33a16af
parent76924b4458605d292202ab87be64853dba1c0a70 (diff)
downloaduClibc-alpine-de75ca704ea62dce9e62b6e1289da796b0567f8f.tar.bz2
uClibc-alpine-de75ca704ea62dce9e62b6e1289da796b0567f8f.tar.xz
Bring in sleep.c from trunk and update change sigaction.c for MIPS
to call __memcpy, even though it produces a compiler warning.
-rw-r--r--libc/sysdeps/linux/mips/sigaction.c4
-rw-r--r--libc/unistd/sleep.c8
2 files changed, 8 insertions, 4 deletions
diff --git a/libc/sysdeps/linux/mips/sigaction.c b/libc/sysdeps/linux/mips/sigaction.c
index 37637093f..b2982678b 100644
--- a/libc/sysdeps/linux/mips/sigaction.c
+++ b/libc/sysdeps/linux/mips/sigaction.c
@@ -39,7 +39,7 @@ int __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oa
if (act) {
kact.k_sa_handler = act->sa_handler;
- memcpy (&kact.sa_mask, &act->sa_mask, sizeof (kact.sa_mask));
+ __memcpy (&kact.sa_mask, &act->sa_mask, sizeof (kact.sa_mask));
kact.sa_flags = act->sa_flags;
# ifdef HAVE_SA_RESTORER
# if _MIPS_SIM == _ABIO32
@@ -57,7 +57,7 @@ int __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oa
if (oact && result >= 0) {
oact->sa_handler = koact.k_sa_handler;
- memcpy (&oact->sa_mask, &koact.sa_mask, sizeof (oact->sa_mask));
+ __memcpy (&oact->sa_mask, &koact.sa_mask, sizeof (oact->sa_mask));
oact->sa_flags = koact.sa_flags;
# ifdef HAVE_SA_RESTORER
oact->sa_restorer = koact.sa_restorer;
diff --git a/libc/unistd/sleep.c b/libc/unistd/sleep.c
index 01a9b641b..3d3d516ab 100644
--- a/libc/unistd/sleep.c
+++ b/libc/unistd/sleep.c
@@ -18,6 +18,9 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+#define sigaction __sigaction
+#define nanosleep __nanosleep
+
#include <errno.h>
#include <time.h>
#include <signal.h>
@@ -27,7 +30,7 @@
/* This is a quick and dirty, but not 100% compliant with
* the stupid SysV SIGCHLD vs. SIG_IGN behaviour. It is
* fine unless you are messing with SIGCHLD... */
-unsigned int sleep (unsigned int sec)
+unsigned int attribute_hidden __sleep (unsigned int sec)
{
unsigned int res;
struct timespec ts = { .tv_sec = (long int) seconds, .tv_nsec = 0 };
@@ -41,7 +44,7 @@ unsigned int sleep (unsigned int sec)
/* We are going to use the `nanosleep' syscall of the kernel. But the
kernel does not implement the sstupid SysV SIGCHLD vs. SIG_IGN
behaviour for this syscall. Therefore we have to emulate it here. */
-unsigned int sleep (unsigned int seconds)
+unsigned int attribute_hidden __sleep (unsigned int seconds)
{
struct timespec ts = { .tv_sec = (long int) seconds, .tv_nsec = 0 };
sigset_t set, oset;
@@ -105,3 +108,4 @@ unsigned int sleep (unsigned int seconds)
return result;
}
#endif
+strong_alias(__sleep,sleep)