diff options
author | Andreas Schwab <schwab@redhat.com> | 2010-02-08 14:36:40 +0100 |
---|---|---|
committer | Andreas Schwab <schwab@redhat.com> | 2010-02-08 14:36:40 +0100 |
commit | 299f2f92c8a7955ff09b34b27508cb5c8cf2185e (patch) | |
tree | 212e51f400a1ee01ec5b3ac081aee425934209ae /sysdeps | |
parent | 8565786828afe379e4ee646787a1f0baa9b4e04b (diff) | |
parent | 0cbcca89bad6656bfda8c60e143295e0f00054b6 (diff) |
Merge remote branch 'origin/master' into fedora/master
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/ia64/memchr.S | 26 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c | 20 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c | 18 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h | 14 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/Versions | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sys/mount.h | 41 |
6 files changed, 83 insertions, 40 deletions
diff --git a/sysdeps/ia64/memchr.S b/sysdeps/ia64/memchr.S index cdd71ca5a5..355effe94b 100644 --- a/sysdeps/ia64/memchr.S +++ b/sysdeps/ia64/memchr.S @@ -1,6 +1,6 @@ /* Optimized version of the standard memchr() function. This file is part of the GNU C Library. - Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2003, 2010 Free Software Foundation, Inc. Contributed by Dan Pop <Dan.Pop@cern.ch>. The GNU C Library is free software; you can redistribute it and/or @@ -21,9 +21,9 @@ /* Return: the address of the first occurence of chr in str or NULL Inputs: - in0: str - in1: chr - in2: byte count + in0: str + in1: chr + in2: byte count This implementation assumes little endian mode. For big endian mode, the instruction czx1.r should be replaced by czx1.l. @@ -47,7 +47,7 @@ #define saved_lc r16 #define chr r17 #define len r18 -#define pos0 r20 +#define last r20 #define val r21 #define tmp r24 #define chrx8 r25 @@ -62,12 +62,13 @@ ENTRY(__memchr) .rotr value[MEMLAT+1], addr[MEMLAT+3], aux[2], poschr[2] .rotp p[MEMLAT+3] .save ar.lc, saved_lc - mov saved_lc = ar.lc // save the loop counter + mov saved_lc = ar.lc // save the loop counter .save pr, saved_pr mov saved_pr = pr // save the predicates .body - mov ret0 = str - and tmp = 7, str // tmp = str % 8 + mov ret0 = str + add last = str, in2 // last byte + and tmp = 7, str // tmp = str % 8 cmp.ne p7, p0 = r0, r0 // clear p7 extr.u chr = in1, 0, 8 // chr = (unsigned char) in1 mov len = in2 @@ -88,7 +89,7 @@ ENTRY(__memchr) .str_aligned: cmp.ne p6, p0 = r0, r0 // clear p6 shr.u loopcnt = len, 3 // loopcnt = len / 8 - and len = 7, len ;; // remaining len = len & 7 + and len = 7, len ;; // remaining len = len & 7 adds loopcnt = -1, loopcnt mov ar.ec = MEMLAT + 3 mux1 chrx8 = chr, @brcst ;; // get a word full of chr @@ -119,7 +120,7 @@ ENTRY(__memchr) mov ret0 = r0 ;; // return NULL .foundit: .pred.rel "mutex" p6, p7 -(p6) adds ret0 = -1, ret0 // if we got here from l1 or l3 +(p6) adds ret0 = -1, ret0 // if we got here from l1 or l3 (p7) add ret0 = addr[MEMLAT+2], poschr[1] // if we got here from l2 mov pr = saved_pr, -1 mov ar.lc = saved_lc @@ -143,7 +144,10 @@ ENTRY(__memchr) ld8 tmp = [ret0];; // load the first unchecked 8byte xor aux[1] = tmp, chrx8;; czx1.r poschr[1] = aux[1];; - cmp.ne p7, p0 = 8, poschr[1] + cmp.ne p7, p0 = 8, poschr[1];; +(p7) add ret0 = addr[MEMLAT+2], poschr[1];; +(p7) cmp.geu p6, p7 = ret0, last // don't go over the last byte +(p6) br.cond.spnt .notfound;; (p7) br.cond.spnt .foundit;; adds ret0 = 8, ret0 // load the next unchecked 8byte br.sptk .l4;; diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c b/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c index 32a5d71376..d5793b3905 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c +++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2008 Free Software Foundation, Inc. +/* Copyright (C) 2008, 2010 Free Software Foundation, Inc. Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>. This file is part of the GNU C Library. @@ -31,7 +31,7 @@ calls. */ #define ALLOCATE_UTMP32_OUT(OUT) \ static struct utmp32 *OUT = NULL; \ - \ + \ if (OUT == NULL) \ { \ OUT = malloc (sizeof (struct utmp32)); \ @@ -62,7 +62,7 @@ struct utmp32 * getutid32 (const struct utmp32 *id) { - ACCESS_UTMP_ENTRY (getutid, id) + ACCESS_UTMP_ENTRY (__getutid, id) } symbol_version (getutid32, getutid, GLIBC_2.0); @@ -71,7 +71,7 @@ symbol_version (getutid32, getutid, GLIBC_2.0); struct utmp32 * getutline32 (const struct utmp32 *line) { - ACCESS_UTMP_ENTRY (getutline, line) + ACCESS_UTMP_ENTRY (__getutline, line) } symbol_version (getutline32, getutline, GLIBC_2.0); @@ -79,7 +79,7 @@ symbol_version (getutline32, getutline, GLIBC_2.0); struct utmp32 * pututline32 (const struct utmp32 *utmp_ptr) { - ACCESS_UTMP_ENTRY (pututline, utmp_ptr) + ACCESS_UTMP_ENTRY (__pututline, utmp_ptr) } symbol_version (pututline32, pututline, GLIBC_2.0); @@ -90,7 +90,7 @@ getutent32 (void) struct utmp *out64; ALLOCATE_UTMP32_OUT (out32); - out64 = getutent (); + out64 = __getutent (); if (!out64) return NULL; @@ -108,7 +108,7 @@ getutent32_r (struct utmp32 *buffer, struct utmp32 **result) struct utmp *out64p; int ret; - ret = getutent_r (&out64, &out64p); + ret = __getutent_r (&out64, &out64p); if (ret == -1) { *result = NULL; @@ -133,7 +133,7 @@ getutid32_r (const struct utmp32 *id, struct utmp32 *buffer, utmp_convert32to64 (id, &in64); - ret = getutid_r (&in64, &out64, &out64p); + ret = __getutid_r (&in64, &out64, &out64p); if (ret == -1) { *result = NULL; @@ -158,7 +158,7 @@ getutline32_r (const struct utmp32 *line, utmp_convert32to64 (line, &in64); - ret = getutline_r (&in64, &out64, &out64p); + ret = __getutline_r (&in64, &out64, &out64p); if (ret == -1) { *result = NULL; @@ -180,6 +180,6 @@ updwtmp32 (const char *wtmp_file, const struct utmp32 *utmp) struct utmp in32; utmp_convert32to64 (utmp, &in32); - updwtmp (wtmp_file, &in32); + __updwtmp (wtmp_file, &in32); } symbol_version (updwtmp32, updwtmp, GLIBC_2.0); diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c index 69a1384db6..790b46466e 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c +++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2008 Free Software Foundation, Inc. +/* Copyright (C) 2008, 2010 Free Software Foundation, Inc. Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>. This file is part of the GNU C Library. @@ -34,7 +34,7 @@ calls. */ #define ALLOCATE_UTMPX32_OUT(OUT) \ static struct utmpx32 *OUT = NULL; \ - \ + \ if (OUT == NULL) \ { \ OUT = malloc (sizeof (struct utmpx32)); \ @@ -68,7 +68,7 @@ getutxent32 (void) struct utmpx *out64; ALLOCATE_UTMPX32_OUT (out32); - out64 = getutxent (); + out64 = __getutxent (); if (!out64) return NULL; @@ -82,7 +82,7 @@ symbol_version (getutxent32, getutxent, GLIBC_2.1); struct utmpx32 * getutxid32 (const struct utmpx32 *id) { - ACCESS_UTMPX_ENTRY (getutxid, id); + ACCESS_UTMPX_ENTRY (__getutxid, id); } symbol_version (getutxid32, getutxid, GLIBC_2.1); @@ -90,7 +90,7 @@ symbol_version (getutxid32, getutxid, GLIBC_2.1); struct utmpx32 * getutxline32 (const struct utmpx32 *line) { - ACCESS_UTMPX_ENTRY (getutxline, line); + ACCESS_UTMPX_ENTRY (__getutxline, line); } symbol_version (getutxline32, getutxline, GLIBC_2.1); @@ -98,7 +98,7 @@ symbol_version (getutxline32, getutxline, GLIBC_2.1); struct utmpx32 * pututxline32 (const struct utmpx32 *utmpx) { - ACCESS_UTMPX_ENTRY (pututxline, utmpx); + ACCESS_UTMPX_ENTRY (__pututxline, utmpx); } symbol_version (pututxline32, pututxline, GLIBC_2.1); @@ -109,7 +109,7 @@ updwtmpx32 (const char *wtmpx_file, const struct utmpx32 *utmpx) struct utmpx in64; utmpx_convert32to64 (utmpx, &in64); - updwtmpx (wtmpx_file, &in64); + __updwtmpx (wtmpx_file, &in64); } symbol_version (updwtmpx32, updwtmpx, GLIBC_2.1); @@ -121,7 +121,7 @@ getutmp32 (const struct utmpx32 *utmpx, struct utmp32 *utmp) struct utmp out64; utmpx_convert32to64 (utmpx, &in64); - getutmp (&in64, &out64); + __getutmp (&in64, &out64); utmp_convert64to32 (&out64, utmp); } symbol_version (getutmp32, getutmp, GLIBC_2.1.1); @@ -134,7 +134,7 @@ getutmpx32 (const struct utmp32 *utmp, struct utmpx32 *utmpx) struct utmpx out64; utmp_convert32to64 (utmp, &in64); - getutmpx (&in64, &out64); + __getutmpx (&in64, &out64); utmpx_convert64to32 (&out64, utmpx); } symbol_version (getutmpx32, getutmpx, GLIBC_2.1.1); diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h index 5f468ed68d..dedc6c6be8 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h +++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h @@ -1,5 +1,5 @@ /* The `struct utmp' type, describing entries in the utmp file. GNU version. - Copyright (C) 1993, 1996, 1997, 1998, 1999, 2002, 2008 + Copyright (C) 1993, 1996, 1997, 1998, 1999, 2002, 2008, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -49,4 +49,16 @@ struct utmpx32 char __unused[20]; /* Reserved for future use. */ }; +/* The internal interface needed by the compat wrapper functions. */ +extern struct utmpx *__getutxent (void); +extern struct utmpx *__getutxid (__const struct utmpx *__id); +extern struct utmpx *__getutxline (__const struct utmpx *__line); +extern struct utmpx *__pututxline (__const struct utmpx *__utmpx); +extern void __updwtmpx (__const char *__wtmpx_file, + __const struct utmpx *__utmpx); +extern void __getutmp (__const struct utmpx *__utmpx, + struct utmp *__utmp); +extern void __getutmpx (__const struct utmp *__utmp, + struct utmpx *__utmpx); + #endif /* utmpx32.h */ diff --git a/sysdeps/unix/sysv/linux/sparc/Versions b/sysdeps/unix/sysv/linux/sparc/Versions index be3d2b96c2..8fb638bb30 100644 --- a/sysdeps/unix/sysv/linux/sparc/Versions +++ b/sysdeps/unix/sysv/linux/sparc/Versions @@ -19,6 +19,10 @@ libc { #errlist-compat 134 _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; } + GLIBC_2.12 { + #errlist-compat 135 + _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; + } } librt { GLIBC_2.3 { diff --git a/sysdeps/unix/sysv/linux/sys/mount.h b/sysdeps/unix/sysv/linux/sys/mount.h index 57d440f273..a41220d14e 100644 --- a/sysdeps/unix/sysv/linux/sys/mount.h +++ b/sysdeps/unix/sysv/linux/sys/mount.h @@ -1,5 +1,5 @@ /* Header file for mounting/unmount Linux filesystems. - Copyright (C) 1996,1997,1998,1999,2000,2004 Free Software Foundation, Inc. + Copyright (C) 1996-2000, 2004, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -47,23 +47,46 @@ enum #define MS_REMOUNT MS_REMOUNT MS_MANDLOCK = 64, /* Allow mandatory locks on an FS. */ #define MS_MANDLOCK MS_MANDLOCK - S_WRITE = 128, /* Write on file/directory/symlink. */ -#define S_WRITE S_WRITE - S_APPEND = 256, /* Append-only file. */ -#define S_APPEND S_APPEND - S_IMMUTABLE = 512, /* Immutable file. */ -#define S_IMMUTABLE S_IMMUTABLE + MS_DIRSYNC = 128, /* Directory modifications are synchronous. */ +#define MS_DIRSYNC MS_DIRSYNC MS_NOATIME = 1024, /* Do not update access times. */ #define MS_NOATIME MS_NOATIME MS_NODIRATIME = 2048, /* Do not update directory access times. */ #define MS_NODIRATIME MS_NODIRATIME MS_BIND = 4096, /* Bind directory at different place. */ #define MS_BIND MS_BIND + MS_MOVE = 8192, +#define MS_MOVE MS_MOVE + MS_REC = 16384, +#define MS_REC MS_REC + MS_SILENT = 32768, +#define MS_SILENT MS_SILENT + MS_POSIXACL = 1 << 16, /* VFS does not apply the umask. */ +#define MS_POSIXACL MS_POSIXACL + MS_UNBINDABLE = 1 << 17, /* Change to unbindable. */ +#define MS_UNBINDABLE MS_UNBINDABLE + MS_PRIVATE = 1 << 18, /* Change to private. */ +#define MS_PRIVATE MS_PRIVATE + MS_SLAVE = 1 << 19, /* Change to slave. */ +#define MS_SLAVE MS_SLAVE + MS_SHARED = 1 << 20, /* Change to shared. */ +#define MS_SHARED MS_SHARED + MS_RELATIME = 1 << 21, /* Update atime relative to mtime/ctime. */ +#define MS_RELATIME MS_RELATIME + MS_KERNMOUNT = 1 << 22, /* This is a kern_mount call. */ +#define MS_KERNMOUNT MS_KERNMOUNT + MS_I_VERSION = 1 << 23, /* Update inode I_version field. */ +#define MS_I_VERSION MS_I_VERSION + MS_STRICTATIME = 1 << 24, /* Always perform atime updates. */ +#define MS_STRICTATIME MS_STRICTATIME + MS_ACTIVE = 1 << 30, +#define MS_ACTIVE MS_ACTIVE + MS_NOUSER = 1 << 31 +#define MS_NOUSER MS_NOUSER }; /* Flags that can be altered by MS_REMOUNT */ -#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_NOATIME \ - |MS_NODIRATIME) +#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION) /* Magic mount flag number. Has to be or-ed to the flag values. */ |