summaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/crypt-entry.c2
-rw-r--r--sysdeps/i386/i586/strchr.S25
-rw-r--r--sysdeps/posix/euidaccess.c16
-rw-r--r--sysdeps/stub/e_j0l.c9
-rw-r--r--sysdeps/stub/e_j1l.c9
-rw-r--r--sysdeps/stub/e_jnl.c11
-rw-r--r--sysdeps/unix/sysv/linux/Dist3
-rw-r--r--sysdeps/unix/sysv/linux/alpha/clone.S1
-rw-r--r--sysdeps/unix/sysv/linux/errnos.h17
-rw-r--r--sysdeps/unix/sysv/linux/i386/clone.S1
-rw-r--r--sysdeps/unix/sysv/linux/m68k/clone.S1
-rw-r--r--sysdeps/unix/sysv/linux/net/if_ppp.h1
-rw-r--r--sysdeps/unix/sysv/linux/net/ppp-comp.h1
-rw-r--r--sysdeps/unix/sysv/linux/net/ppp_defs.h1
-rw-r--r--sysdeps/unix/sysv/linux/posix_opt.h3
-rw-r--r--sysdeps/unix/sysv/linux/sys/soundcard.h2
16 files changed, 83 insertions, 20 deletions
diff --git a/sysdeps/generic/crypt-entry.c b/sysdeps/generic/crypt-entry.c
index 84c6974697..de15904b2c 100644
--- a/sysdeps/generic/crypt-entry.c
+++ b/sysdeps/generic/crypt-entry.c
@@ -32,7 +32,7 @@ static const char md5_salt_prefix[] = "$1$";
/* Prototypes for the MD5 encryption replacement functions. */
extern char *md5_crypt_r (const char *key, const char *salt, char *buffer,
int buflen);
-extern char *md5_crpyt (const char *key, const char *salt);
+extern char *md5_crypt (const char *key, const char *salt);
/* We recognize an intended call of the MD5 crypt replacement function
diff --git a/sysdeps/i386/i586/strchr.S b/sysdeps/i386/i586/strchr.S
index bc435bfe0a..8a6691f7df 100644
--- a/sysdeps/i386/i586/strchr.S
+++ b/sysdeps/i386/i586/strchr.S
@@ -68,21 +68,18 @@ ENTRY (strchr)
andl $3, %edi /* mask alignment bits */
jz L11 /* alignment is 0 => start loop */
- jp L0 /* exactly two bits set */
- movb (%eax), %cl /* load single byte */
- cmpb (%eax), %dl /* is byte == C? */
+ movb %dl, %cl /* 0 is needed below */
+ jp L0 /* exactly two bits set */
- je L2 /* aligned => return pointer */
+ xorb (%eax), %cl /* is byte the one we are looking for? */
+ jz L2 /* yes => return pointer */
- cmpb $0, %cl /* is byte NUL? */
+ xorb %dl, %cl /* load single byte and test for NUL */
je L3 /* yes => return NULL */
- incl %eax /* increment pointer */
- xorl $3, %edi /* was alignment == 3? */
-
-L0: movb (%eax), %cl /* load single byte */
- je L11 /* yes => start loop */
+ movb 1(%eax), %cl /* load single byte */
+ incl %eax
cmpb %cl, %dl /* is byte == C? */
je L2 /* aligned => return pointer */
@@ -90,8 +87,12 @@ L0: movb (%eax), %cl /* load single byte */
cmpb $0, %cl /* is byte NUL? */
je L3 /* yes => return NULL */
- movb 1(%eax), %cl /* load single byte */
- incl %eax /* increment pointer */
+ incl %eax
+ decl %edi
+
+ jne L11
+
+L0: movb (%eax), %cl /* load single byte */
cmpb %cl, %dl /* is byte == C? */
je L2 /* aligned => return pointer */
diff --git a/sysdeps/posix/euidaccess.c b/sysdeps/posix/euidaccess.c
index f3a10c9b9c..04648ce08b 100644
--- a/sysdeps/posix/euidaccess.c
+++ b/sysdeps/posix/euidaccess.c
@@ -137,8 +137,12 @@ euidaccess (path, mode)
int granted;
#ifdef _LIBC
- uid_t uid = getuid (), euid = geteuid ();
- gid_t gid = getgid (), egid = getegid ();
+ uid_t euid;
+ gid_t egid;
+
+ if (! __libc_enable_secure)
+ /* If we are not set-uid or set-gid, access does the same. */
+ return access (path, mode);
#else
if (have_ids == 0)
{
@@ -148,11 +152,11 @@ euidaccess (path, mode)
euid = geteuid ();
egid = getegid ();
}
-#endif
if (uid == euid && gid == egid)
/* If we are not set-uid or set-gid, access does the same. */
return access (path, mode);
+#endif
if (stat (path, &stats))
return -1;
@@ -165,6 +169,12 @@ euidaccess (path, mode)
if (mode == F_OK)
return 0; /* The file exists. */
+#ifdef _LIBC
+ /* Now we need the IDs. */
+ euid = geteuid ();
+ egid = getegid ();
+#endif
+
/* The super-user can read and write any file, and execute any file
that anyone can execute. */
if (euid == 0 && ((mode & X_OK) == 0
diff --git a/sysdeps/stub/e_j0l.c b/sysdeps/stub/e_j0l.c
index 90fa2c6ff1..c16e8a8a9d 100644
--- a/sysdeps/stub/e_j0l.c
+++ b/sysdeps/stub/e_j0l.c
@@ -9,3 +9,12 @@ __ieee754_j0l (long double x)
}
stub_warning (__ieee754_j0l)
+
+long double
+__ieee754_y0l (long double x)
+{
+ fputs ("__ieee754_y0l not implemented\n", stderr);
+ return 0.0;
+}
+
+stub_warning (__ieee754_y0l)
diff --git a/sysdeps/stub/e_j1l.c b/sysdeps/stub/e_j1l.c
index d84e3cd1c2..0a781e5cc1 100644
--- a/sysdeps/stub/e_j1l.c
+++ b/sysdeps/stub/e_j1l.c
@@ -9,3 +9,12 @@ __ieee754_j1l (long double x)
}
stub_warning (__ieee754_j1l)
+
+long double
+__ieee754_y1l (long double x)
+{
+ fputs ("__ieee754_y1l not implemented\n", stderr);
+ return 0.0;
+}
+
+stub_warning (__ieee754_y1l)
diff --git a/sysdeps/stub/e_jnl.c b/sysdeps/stub/e_jnl.c
index b9f59004ea..86ff03b031 100644
--- a/sysdeps/stub/e_jnl.c
+++ b/sysdeps/stub/e_jnl.c
@@ -2,10 +2,19 @@
#include <stdio.h>
long double
-__ieee754_jnl (long double x)
+__ieee754_jnl (int n, long double x)
{
fputs ("__ieee754_jnl not implemented\n", stderr);
return 0.0;
}
stub_warning (__ieee754_jnl)
+
+long double
+__ieee754_ynl (int n, long double x)
+{
+ fputs ("__ieee754_ynl not implemented\n", stderr);
+ return 0.0;
+}
+
+stub_warning (__ieee754_ynl)
diff --git a/sysdeps/unix/sysv/linux/Dist b/sysdeps/unix/sysv/linux/Dist
index db0cd6000d..0879234162 100644
--- a/sysdeps/unix/sysv/linux/Dist
+++ b/sysdeps/unix/sysv/linux/Dist
@@ -1,6 +1,9 @@
init-first.h
sysctl.c
net/if.h
+net/if_ppp.h
+net/ppp-comp.h
+net/ppp_defs.h
nfs/nfs.h
sys/acct.h
sys/io.h
diff --git a/sysdeps/unix/sysv/linux/alpha/clone.S b/sysdeps/unix/sysv/linux/alpha/clone.S
index a1ef324956..71d8053b12 100644
--- a/sysdeps/unix/sysv/linux/alpha/clone.S
+++ b/sysdeps/unix/sysv/linux/alpha/clone.S
@@ -20,6 +20,7 @@ Cambridge, MA 02139, USA. */
and invokes a function in the right context after its all over. */
#include <sysdep.h>
+#define _ERRNO_H 1
#include <errnos.h>
/* int clone(int (*fn)(), void *child_stack, int flags, int nargs, ...) */
diff --git a/sysdeps/unix/sysv/linux/errnos.h b/sysdeps/unix/sysv/linux/errnos.h
index 8a7055aa6a..40707d1d62 100644
--- a/sysdeps/unix/sysv/linux/errnos.h
+++ b/sysdeps/unix/sysv/linux/errnos.h
@@ -17,6 +17,10 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+#ifdef _ERRNO_H
+
+#undef EDOM
+#undef ERANGE
#include <linux/errno.h>
#ifndef __ASSEMBLER__
@@ -35,5 +39,14 @@ extern int *__errno_location __P ((void)) __attribute__ ((__const__));
#define __set_errno(val) errno = (val)
-#endif
-#endif
+#endif /* __USE_REENTRANT && (!_LIBC || _LIBC_REENTRANT) */
+#endif /* !__ASSEMBLER */
+#endif /* _ERRNO_H */
+
+#if !defined (_ERRNO_H) && defined (__need_Emath)
+/* This is ugly but the kernel header is not clean enough. We must
+ define only the values EDOM and ERANGE in case __need_Emath is
+ defined. The value is the same for all Linux ports. */
+#define EDOM 33 /* Math argument out of domain of function. */
+#define ERANGE 34 /* Math result not representable. */
+#endif /* !_ERRNO_H && __need_Emath */
diff --git a/sysdeps/unix/sysv/linux/i386/clone.S b/sysdeps/unix/sysv/linux/i386/clone.S
index 0afbf872d9..0742cc5f74 100644
--- a/sysdeps/unix/sysv/linux/i386/clone.S
+++ b/sysdeps/unix/sysv/linux/i386/clone.S
@@ -20,6 +20,7 @@ Cambridge, MA 02139, USA. */
and invokes a function in the right context after its all over. */
#include <sysdep.h>
+#define _ERRNO_H 1
#include <errnos.h>
/* int clone(int (*fn)(), void *child_stack, int flags, int nargs, ...) */
diff --git a/sysdeps/unix/sysv/linux/m68k/clone.S b/sysdeps/unix/sysv/linux/m68k/clone.S
index 64077e00de..07280031a5 100644
--- a/sysdeps/unix/sysv/linux/m68k/clone.S
+++ b/sysdeps/unix/sysv/linux/m68k/clone.S
@@ -20,6 +20,7 @@ Cambridge, MA 02139, USA. */
and invokes a function in the right context after its all over. */
#include <sysdep.h>
+#define _ERRNO_H 1
#include <errnos.h>
/* int clone (int (*fn) (), void *child_stack, int flags, int nargs, ...) */
diff --git a/sysdeps/unix/sysv/linux/net/if_ppp.h b/sysdeps/unix/sysv/linux/net/if_ppp.h
new file mode 100644
index 0000000000..27652546ae
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/net/if_ppp.h
@@ -0,0 +1 @@
+#include <linux/if_ppp.h>
diff --git a/sysdeps/unix/sysv/linux/net/ppp-comp.h b/sysdeps/unix/sysv/linux/net/ppp-comp.h
new file mode 100644
index 0000000000..4a992d5422
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/net/ppp-comp.h
@@ -0,0 +1 @@
+#include <linux/ppp-comp.h>
diff --git a/sysdeps/unix/sysv/linux/net/ppp_defs.h b/sysdeps/unix/sysv/linux/net/ppp_defs.h
new file mode 100644
index 0000000000..e51dba7dea
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/net/ppp_defs.h
@@ -0,0 +1 @@
+#include <linux/ppp_defs.h>
diff --git a/sysdeps/unix/sysv/linux/posix_opt.h b/sysdeps/unix/sysv/linux/posix_opt.h
index c1ff431fc9..8a6fad0eb1 100644
--- a/sysdeps/unix/sysv/linux/posix_opt.h
+++ b/sysdeps/unix/sysv/linux/posix_opt.h
@@ -60,4 +60,7 @@ Boston, MA 02111-1307, USA. */
using the value _POSIX_VDISABLE. */
#define _POSIX_VDISABLE '\0'
+/* Filenames are not silently truncated. */
+#define _POSIX_NO_TRUNC 1
+
#endif /* posix_opt.h */
diff --git a/sysdeps/unix/sysv/linux/sys/soundcard.h b/sysdeps/unix/sysv/linux/sys/soundcard.h
index 098fae1c33..fade986fe4 100644
--- a/sysdeps/unix/sysv/linux/sys/soundcard.h
+++ b/sysdeps/unix/sysv/linux/sys/soundcard.h
@@ -1 +1 @@
-#include <linux/soundard.h>
+#include <linux/soundcard.h>