diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/generic/crypt-entry.c | 2 | ||||
-rw-r--r-- | sysdeps/i386/i586/strchr.S | 25 | ||||
-rw-r--r-- | sysdeps/posix/euidaccess.c | 16 | ||||
-rw-r--r-- | sysdeps/stub/e_j0l.c | 9 | ||||
-rw-r--r-- | sysdeps/stub/e_j1l.c | 9 | ||||
-rw-r--r-- | sysdeps/stub/e_jnl.c | 11 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/Dist | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/alpha/clone.S | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/errnos.h | 17 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/clone.S | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/m68k/clone.S | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/net/if_ppp.h | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/net/ppp-comp.h | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/net/ppp_defs.h | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/posix_opt.h | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sys/soundcard.h | 2 |
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> |