diff options
| author | Ulrich Drepper <drepper@redhat.com> | 2000-01-24 12:09:14 +0000 |
|---|---|---|
| committer | Ulrich Drepper <drepper@redhat.com> | 2000-01-24 12:09:14 +0000 |
| commit | e645ed3a23d40bfc2949851c83a96aa4dcb60f5c (patch) | |
| tree | 022e511782fca96070018023c56f72c54acb13d3 | |
| parent | 608cc1f0bc053b8b5b8c1f11c31176d772a88e8f (diff) | |
| download | glibc-e645ed3a23d40bfc2949851c83a96aa4dcb60f5c.tar.xz glibc-e645ed3a23d40bfc2949851c83a96aa4dcb60f5c.zip | |
Update.
2000-01-24 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/arm/bits/resource.h: New file.
* sysdeps/unix/sysv/linux/arm/Makefile: Remove oldsetrlimit64.c.
* sysdeps/unix/sysv/linux/i386/Makefile: Likewise.
* sysdeps/unix/sysv/linux/i386/Dist: Likewise.
* sysdeps/unix/sysv/linux/arm/Versions: Remove
setrlimit64@GLIBC_2.1.3.
* sysdeps/unix/sysv/linux/i386/Versions: Likewise.
* sysdeps/unix/sysv/linux/arm/oldsetrlimit64.c: Remove.
* sysdeps/unix/sysv/linux/i386/oldsetrlimit64.c: Likewise.
* sysdeps/unix/sysv/linux/arm/setrlimit64.c: Likewise.
* sysdeps/unix/sysv/linux/i386/setrlimit64.c: Likewise.
* sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c: Call __new_getrlimit,
so that setrlimit64@GLIBC_2.1 can report limits above 2G.
* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list (getrlimit,
setrlimit): Remove syscall stubs, add normal syscalls.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (setrlimit):
Remove syscall stub.
21 files changed, 570 insertions, 105 deletions
@@ -1,3 +1,23 @@ +2000-01-24 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/arm/bits/resource.h: New file. + * sysdeps/unix/sysv/linux/arm/Makefile: Remove oldsetrlimit64.c. + * sysdeps/unix/sysv/linux/i386/Makefile: Likewise. + * sysdeps/unix/sysv/linux/i386/Dist: Likewise. + * sysdeps/unix/sysv/linux/arm/Versions: Remove + setrlimit64@GLIBC_2.1.3. + * sysdeps/unix/sysv/linux/i386/Versions: Likewise. + * sysdeps/unix/sysv/linux/arm/oldsetrlimit64.c: Remove. + * sysdeps/unix/sysv/linux/i386/oldsetrlimit64.c: Likewise. + * sysdeps/unix/sysv/linux/arm/setrlimit64.c: Likewise. + * sysdeps/unix/sysv/linux/i386/setrlimit64.c: Likewise. + * sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c: Call __new_getrlimit, + so that setrlimit64@GLIBC_2.1 can report limits above 2G. + * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list (getrlimit, + setrlimit): Remove syscall stubs, add normal syscalls. + * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (setrlimit): + Remove syscall stub. + 2000-01-22 Andreas Jaeger <aj@suse.de> * localedata/tst-locale.sh: Enable test for de_DE.437. diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 2433c38c6a..670d6c013e 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,3 +1,9 @@ +2000-01-24 Ulrich Drepper <drepper@cygnus.com> + + * locales/POSIX: Remove trailing semicolon. + * locales/th_TH: Likewise. + PR libc/1545. + 2000-01-18 Ulrich Drepper <drepper@cygnus.com> * locales/ja_JP: Add double-width digits to digit class. diff --git a/localedata/locales/POSIX b/localedata/locales/POSIX index 0eb1216b39..24e296bf44 100644 --- a/localedata/locales/POSIX +++ b/localedata/locales/POSIX @@ -56,7 +56,7 @@ punct <exclamation-mark>;<quotation-mark>;<number-sign>;\ <greater-than-sign>;<question-mark>;<commercial-at>;\ <left-square-bracket>;<backslash>;<right-square-bracket>;\ <circumflex>;<underscore>;<grave-accent>;\ - <left-curly-bracket>;<vertical-line>;<right-curly-bracket>;<tilde>; + <left-curly-bracket>;<vertical-line>;<right-curly-bracket>;<tilde> # xdigit <zero>;<one>;<two>;<three>;<four>;<five>;<six>;<seven>;<eight>;\ <nine>;<A>;<B>;<C>;<D>;<E>;<F>;<a>;<b>;<c>;<d>;<e>;<f> diff --git a/localedata/locales/th_TH b/localedata/locales/th_TH index c8a1d71dae..98b50b306a 100644 --- a/localedata/locales/th_TH +++ b/localedata/locales/th_TH @@ -68,7 +68,7 @@ cntrl <alert>;<backspace>;<tab>;<newline>;<vertical-tab>;/ <form-feed>;<carriage-return>;/ <NUL>;<SOH>;<STX>;<ETX>;<EOT>;<ENQ>;<ACK>;<SO>;<SI>;/ <DLE>;<DC1>;<DC2>;<DC3>;<DC4>;<NAK>;<SYN>;<ETB>;<CAN>;/ - <EM>;<SUB>;<ESC>;<IS4>;<IS3>;<IS2>;<IS1>;<DEL>; + <EM>;<SUB>;<ESC>;<IS4>;<IS3>;<IS2>;<IS1>;<DEL> % % punct = ASCII punct diff --git a/sysdeps/unix/sysv/linux/aio_sigqueue.c b/sysdeps/unix/sysv/linux/aio_sigqueue.c index 94a8ce0d2a..6e53f87fb0 100644 --- a/sysdeps/unix/sysv/linux/aio_sigqueue.c +++ b/sysdeps/unix/sysv/linux/aio_sigqueue.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. +/* Copyright (C) 1997, 1998, 1999, 2000 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 @@ -20,6 +20,7 @@ #include <errno.h> #include <signal.h> #include <unistd.h> +#include <string.h> #include <sysdep.h> #include <sys/syscall.h> @@ -39,9 +40,11 @@ __aio_sigqueue (sig, val, caller_pid) { siginfo_t info; + /* First, clear the siginfo_t structure, so that we don't pass our + stack content to other tasks. */ + memset (&info, 0, sizeof (siginfo_t)); /* We must pass the information about the data in a siginfo_t value. */ info.si_signo = sig; - info.si_errno = 0; info.si_code = SI_ASYNCIO; info.si_pid = caller_pid; info.si_uid = getuid (); diff --git a/sysdeps/unix/sysv/linux/arm/Makefile b/sysdeps/unix/sysv/linux/arm/Makefile index b82a6ef160..6040b20193 100644 --- a/sysdeps/unix/sysv/linux/arm/Makefile +++ b/sysdeps/unix/sysv/linux/arm/Makefile @@ -10,5 +10,5 @@ sysdep_routines += rt_sigsuspend rt_sigprocmask rt_sigtimedwait \ endif ifeq ($(subdir),resource) -sysdep_routines += oldgetrlimit64 oldsetrlimit64 +sysdep_routines += oldgetrlimit64 endif diff --git a/sysdeps/unix/sysv/linux/arm/Versions b/sysdeps/unix/sysv/linux/arm/Versions index 39f209f086..531817f737 100644 --- a/sysdeps/unix/sysv/linux/arm/Versions +++ b/sysdeps/unix/sysv/linux/arm/Versions @@ -6,6 +6,6 @@ libc { } GLIBC_2.1.3 { # New rlimit interface - getrlimit; setrlimit; getrlimit64; setrlimit64; + getrlimit; setrlimit; getrlimit64; } } diff --git a/sysdeps/unix/sysv/linux/arm/bits/resource.h b/sysdeps/unix/sysv/linux/arm/bits/resource.h new file mode 100644 index 0000000000..710f1119c0 --- /dev/null +++ b/sysdeps/unix/sysv/linux/arm/bits/resource.h @@ -0,0 +1,205 @@ +/* Bit values & structures for resource limits. Linux version. + Copyright (C) 1994, 1996, 1997, 1998, 1999 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 + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + 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. */ + +#ifndef _SYS_RESOURCE_H +# error "Never use <bits/resource.h> directly; include <sys/resource.h> instead." +#endif + +#include <bits/types.h> + +/* Transmute defines to enumerations. The macro re-definitions are + necessary because some programs want to test for operating system + features with #ifdef RUSAGE_SELF. In ISO C the reflexive + definition is a no-op. */ + +/* Kinds of resource limit. */ +enum __rlimit_resource +{ + /* Per-process CPU limit, in seconds. */ + RLIMIT_CPU = 0, +#define RLIMIT_CPU RLIMIT_CPU + + /* Largest file that can be created, in bytes. */ + RLIMIT_FSIZE = 1, +#define RLIMIT_FSIZE RLIMIT_FSIZE + + /* Maximum size of data segment, in bytes. */ + RLIMIT_DATA = 2, +#define RLIMIT_DATA RLIMIT_DATA + + /* Maximum size of stack segment, in bytes. */ + RLIMIT_STACK = 3, +#define RLIMIT_STACK RLIMIT_STACK + + /* Largest core file that can be created, in bytes. */ + RLIMIT_CORE = 4, +#define RLIMIT_CORE RLIMIT_CORE + + /* Largest resident set size, in bytes. + This affects swapping; processes that are exceeding their + resident set size will be more likely to have physical memory + taken from them. */ + RLIMIT_RSS = 5, +#define RLIMIT_RSS RLIMIT_RSS + + /* Number of open files. */ + RLIMIT_NOFILE = 7, + RLIMIT_OFILE = RLIMIT_NOFILE, /* BSD name for same. */ +#define RLIMIT_NOFILE RLIMIT_NOFILE +#define RLIMIT_OFILE RLIMIT_OFILE + + /* Address space limit. */ + RLIMIT_AS = 9, +#define RLIMIT_AS RLIMIT_AS + + /* Number of processes. */ + RLIMIT_NPROC = 6, +#define RLIMIT_NPROC RLIMIT_NPROC + + /* Locked-in-memory address space. */ + RLIMIT_MEMLOCK = 8, +#define RLIMIT_MEMLOCK RLIMIT_MEMLOCK + + RLIMIT_NLIMITS = 10, + RLIM_NLIMITS = RLIMIT_NLIMITS +#define RLIMIT_NLIMITS RLIMIT_NLIMITS +#define RLIM_NLIMITS RLIM_NLIMITS +}; + +/* Value to indicate that there is no limit. */ +#ifndef __USE_FILE_OFFSET64 +# define RLIM_INFINITY ((unsigned long int)(~0UL)) +#else +# define RLIM_INFINITY 0xffffffffffffffffuLL +#endif + +#ifdef __USE_LARGEFILE64 +# define RLIM64_INFINITY 0xffffffffffffffffuLL +#endif + +/* We can represent all limits. */ +#define RLIM_SAVED_MAX RLIM_INFINITY +#define RLIM_SAVED_CUR RLIM_INFINITY + + +/* Type for resource quantity measurement. */ +#ifndef __USE_FILE_OFFSET64 +typedef __rlim_t rlim_t; +#else +typedef __rlim64_t rlim_t; +#endif +#ifdef __USE_LARGEFILE64 +typedef __rlim64_t rlim64_t; +#endif + +struct rlimit + { + /* The current (soft) limit. */ + rlim_t rlim_cur; + /* The hard limit. */ + rlim_t rlim_max; + }; + +#ifdef __USE_LARGEFILE64 +struct rlimit64 + { + /* The current (soft) limit. */ + rlim64_t rlim_cur; + /* The hard limit. */ + rlim64_t rlim_max; + }; +#endif + +/* Whose usage statistics do you want? */ +enum __rusage_who +{ + /* The calling process. */ + RUSAGE_SELF = 0, +#define RUSAGE_SELF RUSAGE_SELF + + /* All of its terminated child processes. */ + RUSAGE_CHILDREN = -1, +#define RUSAGE_CHILDREN RUSAGE_CHILDREN + + /* Both. */ + RUSAGE_BOTH = -2 +#define RUSAGE_BOTH RUSAGE_BOTH +}; + +#define __need_timeval +#include <bits/time.h> /* For `struct timeval'. */ + +/* Structure which says how much of each resource has been used. */ +struct rusage + { + /* Total amount of user time used. */ + struct timeval ru_utime; + /* Total amount of system time used. */ + struct timeval ru_stime; + /* Maximum resident set size (in kilobytes). */ + long int ru_maxrss; + /* Amount of sharing of text segment memory + with other processes (kilobyte-seconds). */ + long int ru_ixrss; + /* Amount of data segment memory used (kilobyte-seconds). */ + long int ru_idrss; + /* Amount of stack memory used (kilobyte-seconds). */ + long int ru_isrss; + /* Number of soft page faults (i.e. those serviced by reclaiming + a page from the list of pages awaiting reallocation. */ + long int ru_minflt; + /* Number of hard page faults (i.e. those that required I/O). */ + long int ru_majflt; + /* Number of times a process was swapped out of physical memory. */ + long int ru_nswap; + /* Number of input operations via the file system. Note: This + and `ru_oublock' do not include operations with the cache. */ + long int ru_inblock; + /* Number of output operations via the file system. */ + long int ru_oublock; + /* Number of IPC messages sent. */ + long int ru_msgsnd; + /* Number of IPC messages received. */ + long int ru_msgrcv; + /* Number of signals delivered. */ + long int ru_nsignals; + /* Number of voluntary context switches, i.e. because the process + gave up the process before it had to (usually to wait for some + resource to be available). */ + long int ru_nvcsw; + /* Number of involuntary context switches, i.e. a higher priority process + became runnable or the current process used up its time slice. */ + long int ru_nivcsw; + }; + +/* Priority limits. */ +#define PRIO_MIN -20 /* Minimum priority a process can have. */ +#define PRIO_MAX 20 /* Maximum priority a process can have. */ + +/* The type of the WHICH argument to `getpriority' and `setpriority', + indicating what flavor of entity the WHO argument specifies. */ +enum __priority_which +{ + PRIO_PROCESS = 0, /* WHO is a process ID. */ +#define PRIO_PROCESS PRIO_PROCESS + PRIO_PGRP = 1, /* WHO is a process group ID. */ +#define PRIO_PGRP PRIO_PGRP + PRIO_USER = 2 /* WHO is a user ID. */ +#define PRIO_USER PRIO_USER +}; diff --git a/sysdeps/unix/sysv/linux/arm/oldsetrlimit64.c b/sysdeps/unix/sysv/linux/arm/oldsetrlimit64.c deleted file mode 100644 index 93bdc37cac..0000000000 --- a/sysdeps/unix/sysv/linux/arm/oldsetrlimit64.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/oldsetrlimit64.c> diff --git a/sysdeps/unix/sysv/linux/arm/setrlimit64.c b/sysdeps/unix/sysv/linux/arm/setrlimit64.c deleted file mode 100644 index ed64b871f4..0000000000 --- a/sysdeps/unix/sysv/linux/arm/setrlimit64.c +++ /dev/null @@ -1 +0,0 @@ -#include <sysdeps/unix/sysv/linux/i386/setrlimit64.c> diff --git a/sysdeps/unix/sysv/linux/bits/siginfo.h b/sysdeps/unix/sysv/linux/bits/siginfo.h index dcabddbf2c..9426c13ee7 100644 --- a/sysdeps/unix/sysv/linux/bits/siginfo.h +++ b/sysdeps/unix/sysv/linux/bits/siginfo.h @@ -1,5 +1,5 @@ -/* siginfo_t, sigevent and constants. Linux version. - Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. +/* siginfo_t, sigevent and constants. Linux/SPARC version. + Copyright (C) 1997, 1998, 1999, 2000 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 @@ -21,6 +21,8 @@ # error "Never include this file directly. Use <signal.h> instead" #endif +#include <bits/wordsize.h> + #if (!defined __have_siginfo_t \ && (defined _SIGNAL_H || defined __need_siginfo_t)) # define __have_siginfo_t 1 @@ -33,7 +35,11 @@ typedef union sigval } sigval_t; # define __SI_MAX_SIZE 128 -# define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 3) +# if __WORDSIZE == 64 +# define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 4) +# else +# define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 3) +# endif typedef struct siginfo { @@ -245,7 +251,11 @@ enum /* Structure to transport application-defined values with signals. */ # define __SIGEV_MAX_SIZE 64 -# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3) +# if __WORDSIZE == 64 +# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4) +# else +# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3) +# endif typedef struct sigevent { diff --git a/sysdeps/unix/sysv/linux/i386/Dist b/sysdeps/unix/sysv/linux/i386/Dist index d4b5035379..babeff87c6 100644 --- a/sysdeps/unix/sysv/linux/i386/Dist +++ b/sysdeps/unix/sysv/linux/i386/Dist @@ -1,6 +1,5 @@ clone.S oldgetrlimit64.c -oldsetrlimit64.c setresuid.c setresgid.c setfsuid.c diff --git a/sysdeps/unix/sysv/linux/i386/Makefile b/sysdeps/unix/sysv/linux/i386/Makefile index c44c2b5ed1..06325ab752 100644 --- a/sysdeps/unix/sysv/linux/i386/Makefile +++ b/sysdeps/unix/sysv/linux/i386/Makefile @@ -13,5 +13,5 @@ CFLAGS-initfini.s += -DWEAK_GMON_START endif ifeq ($(subdir),resource) -sysdep_routines += oldgetrlimit64 oldsetrlimit64 +sysdep_routines += oldgetrlimit64 endif diff --git a/sysdeps/unix/sysv/linux/i386/Versions b/sysdeps/unix/sysv/linux/i386/Versions index e9b8605f5a..68b0ee4730 100644 --- a/sysdeps/unix/sysv/linux/i386/Versions +++ b/sysdeps/unix/sysv/linux/i386/Versions @@ -9,6 +9,6 @@ libc { } GLIBC_2.1.3 { # New rlimit interface - getrlimit; setrlimit; getrlimit64; setrlimit64; + getrlimit; setrlimit; getrlimit64; } } diff --git a/sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c b/sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c index 5fb0becfbe..e77486494f 100644 --- a/sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c +++ b/sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1995-1999, 2000 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 @@ -24,7 +24,7 @@ #include <sys/resource.h> #include <sys/types.h> -extern int __old_getrlimit (enum __rlimit_resource, struct rlimit *); +extern int __new_getrlimit (enum __rlimit_resource, struct rlimit *); /* Put the soft and hard limits for RESOURCE in *RLIMITS. Returns 0 if successful, -1 if not (and sets errno). */ @@ -33,14 +33,14 @@ __old_getrlimit64 (enum __rlimit_resource resource, struct rlimit64 *rlimits) { struct rlimit rlimits32; - if (__old_getrlimit (resource, &rlimits32) < 0) + if (__new_getrlimit (resource, &rlimits32) < 0) return -1; - if (rlimits32.rlim_cur == RLIM_INFINITY >> 1) + if (rlimits32.rlim_cur == RLIM_INFINITY) rlimits->rlim_cur = RLIM64_INFINITY >> 1; else rlimits->rlim_cur = rlimits32.rlim_cur; - if (rlimits32.rlim_max == RLIM_INFINITY >> 1) + if (rlimits32.rlim_max == RLIM_INFINITY) rlimits->rlim_max = RLIM64_INFINITY >> 1; else rlimits->rlim_max = rlimits32.rlim_max; diff --git a/sysdeps/unix/sysv/linux/i386/oldsetrlimit64.c b/sysdeps/unix/sysv/linux/i386/oldsetrlimit64.c deleted file mode 100644 index c5448dcdce..0000000000 --- a/sysdeps/unix/sysv/linux/i386/oldsetrlimit64.c +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright (C) 1991, 95, 96, 97, 98, 1999 Free Software Foundation, Inc. |
