Commit Graph

18 Commits

Author SHA1 Message Date
Joseph Myers
a66bc30d6b Define struct rusage in sys/wait.h when required (bug 21575).
Some older standards (XPG4.2 through POSIX.1:2001, XSI only) require
sys/wait.h to include the definition of struct rusage.  This is
missing in glibc.

This patch adds the required definition.  struct rusage is moved to a
new header bits/types/struct_rusage.h to avoid bringing in the whole
of sys/resource.h (although the standards in question do allow the
whole of sys/resource.h to be brought in).  In the five
bits/resource.h headers, the only variation between the definitions of
struct rusage is that the sysdeps/unix/sysv/linux version is prepared
for x32 (by having anonymous unions with __syscall_slong_t fields) and
the others are not.  Thus, this version is suitable for use
generically (everything other than x32 simply has __syscall_slong_t
the same as long int, so there are no API or ABI changes involved, and
anonymous unions are already a required language feature for glibc
headers elsewhere), and this patch uses it as a base for the single
implementation of bits/types/struct_rusage.h.

Tested for x86_64, and with build-many-glibcs.py.

	[BZ #21575]
	* resource/bits/types/struct_rusage.h: New file.
	* include/bits/types/struct_rusage.h: Likewise.
	* bits/resource.h (struct rusage): Include
	<bits/types/struct_rusage.h> instead of defining here.
	* sysdeps/unix/sysv/linux/bits/resource.h (struct rusage):
	Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/resource.h (struct rusage):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/resource.h (struct rusage):
	Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/resource.h (struct rusage):
	Likewise.
	* resource/Makefile (headers): Add bits/types/struct_rusage.h.
	* posix/sys/wait.h [__USE_XOPEN_EXTENDED && !__USE_XOPEN2K8]:
	Include <bits/types/struct_rusage.h>
2017-06-19 11:59:19 +00:00
Joseph Myers
bfff8b1bec Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Zack Weinberg
05b68e14b1 Installed-header hygiene (BZ#20366): time.h types.
Many headers are expected to expose a subset of the type definitions
in time.h.  time.h has a whole bunch of messy logic for conditionally
defining some its types and structs, but, as best I can tell, this
has never worked 100%.  In particular, __need_timespec is ineffective
if _TIME_H has already been defined, which means that if you compile

  #include <time.h>
  #include <sched.h>

with e.g. -fsyntax-only -std=c89 -Wall -Wsystem-headers, you will get

In file included from test.c:2:0:
/usr/include/sched.h:74:57: warning: "struct timespec" declared inside
  parameter list will not be visible outside of this definition or declaration
 extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
                                                         ^~~~~~~~

And if you want to _use_ sched_rr_get_interval in a TU compiled that
way, you're hosed.

This patch replaces all of that with small bits/types/TYPE.h headers
as introduced earlier.  time.h and bits/time.h are now *much* simpler,
and a lot of other headers are slightly simpler.

	* time/time.h, bits/time.h, sysdeps/unix/sysv/linux/bits/time.h:
	Remove all logic conditional on __need macros.  Move all the
	conditionally defined types to their own headers...
	* time/bits/types/clock_t.h: Define clock_t here.
	* time/bits/types/clockid_t.h: Define clockid_t here.
	* time/bits/types/struct_itimerspec.h: Define struct itimerspec here.
	* time/bits/types/struct_timespec.h: Define struct timespec here.
	* time/bits/types/struct_timeval.h: Define struct timeval here.
	* time/bits/types/struct_tm.h: Define struct tm here.
	* time/bits/types/time_t.h: Define time_t here.
	* time/bits/types/timer_t.h: Define timer_t here.
	* time/Makefile: Install the new headers.

	* bits/resource.h, io/fcntl.h, io/sys/poll.h, io/sys/stat.h
	* io/utime.h, misc/sys/select.h, posix/sched.h, posix/sys/times.h
	* posix/sys/types.h, resolv/netdb.h, rt/aio.h, rt/mqueue.h
	* signal/signal.h, pthread/semaphore.h, sysdeps/nptl/pthread.h
	* sysdeps/unix/sysv/linux/alpha/bits/resource.h
	* sysdeps/unix/sysv/linux/alpha/sys/acct.h
	* sysdeps/unix/sysv/linux/bits/resource.h
	* sysdeps/unix/sysv/linux/bits/timex.h
	* sysdeps/unix/sysv/linux/mips/bits/resource.h
	* sysdeps/unix/sysv/linux/net/ppp_defs.h
	* sysdeps/unix/sysv/linux/sparc/bits/resource.h
	* sysdeps/unix/sysv/linux/sys/acct.h
	* sysdeps/unix/sysv/linux/sys/timerfd.h
	* sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h
	* time/sys/time.h, time/sys/timeb.h
	Use the new bits/types headers.

	* include/time.h: Remove __need logic.
	* include/bits/time.h
	* include/bits/types/clock_t.h, include/bits/types/clockid_t.h
	* include/bits/types/time_t.h, include/bits/types/timer_t.h
	* include/bits/types/struct_itimerspec.h
	* include/bits/types/struct_timespec.h
	* include/bits/types/struct_timeval.h
	* include/bits/types/struct_tm.h:
	New wrapper headers.
2016-09-23 08:43:56 -04:00
Joseph Myers
f7a9f785e5 Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
Joseph Myers
b168057aaa Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
Richard Henderson
68b7efaadb Relocate alpha from ports to libc
Also fixed the following whitespace nits to satisfy the push:

sysdeps/alpha/alphaev6/memset.S:142: space before tab in indent.
sysdeps/alpha/configure:1: new blank line at EOF.
sysdeps/alpha/fpu/e_sqrt.c:126: space before tab in indent.
sysdeps/alpha/preconfigure:1: new blank line at EOF.
sysdeps/unix/sysv/linux/alpha/syscalls.list:1: new blank line at EOF.
2014-02-12 07:00:06 -08:00
Roland McGrath
c0439b95b8 Moved alpha to ports repository.
2008-11-25  Roland McGrath  <roland@redhat.com>

	* sysdeps/alpha, sysdeps/unix/bsd/osf/alpha,
	sysdeps/unix/bsd/Attic/osf1/alpha, sysdeps/unix/sysv/linux/alpha,
	sysdeps/unix/sysv/linux/alpha/alpha, sysdeps/unix/alpha,
	sysdeps/mach/alpha, sysdeps/mach/hurd/alpha:
	Subdirectories moved to ports repository.
	* configure.in (base_machine): Remove alpha case.
2008-11-26 07:26:32 +00:00
Ulrich Drepper
1ce0612b99 Define RUSAGE_THREAD and RUSAGE_LWP. 2008-05-01 05:37:45 +00:00
Ulrich Drepper
6a4635077d * sysdeps/unix/sysv/linux/bits/resource.h (RLIMIT_RTPRIO): Fix typo.
* sysdeps/unix/sysv/linux/alpha/bits/resource.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/resource.h: Likewise.
2005-06-21 18:39:48 +00:00
Ulrich Drepper
dc69e770dc * sysdeps/unix/sysv/linux/bits/resource.h (RLIMIT_NICE,
RLIMIT_RTPRIO): Add.
	(RLIMIT_NLIMITS): Adjust.
	* sysdeps/unix/sysv/linux/alpha/bits/resource.h (RLIMIT_NICE,
	RLIMIT_RTPRIO): Add.
	(RLIMIT_NLIMITS): Adjust.
	* sysdeps/unix/sysv/linux/mips/bits/resource.h (RLIMIT_NICE,
	RLIMIT_RTPRIO): Add.
	(RLIMIT_NLIMITS): Adjust.
	* sysdeps/unix/sysv/linux/sparc/bits/resource.h (RLIMIT_NICE,
	RLIMIT_RTPRIO): Add.
	(RLIMIT_NLIMITS): Adjust.
2005-06-20 15:08:12 +00:00
Ulrich Drepper
a334319f65 (CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4. 2004-12-22 20:10:10 +00:00
Jakub Jelinek
0ecb606cb6 2.5-18.1 2007-07-12 18:26:36 +00:00
Roland McGrath
a29db458e3 * sysdeps/unix/sysv/linux/bits/resource.h (enum __rusage_who):
Remove __RUSAGE_BOTH constant and RUSAGE_BOTH macro.
	* sysdeps/unix/sysv/linux/alpha/bits/resource.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/resource.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/resource.h: Likewise.
2004-08-16 08:51:53 +00:00
Ulrich Drepper
4d004cfb45 Update.
2004-08-12  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/bits/resource.h: Define non-standard
	RUSAGE_ enums as __RUSAGE_ and adjust macros accordingly.
	* sysdeps/unix/sysv/linux/alpha/bits/resource.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/resource.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/resource.h: Likewise.
	Define non-standard RLIMIT_ enums as __RLIMIT_ and adjust macros
	accordingly.
2004-08-13 05:46:56 +00:00
Ulrich Drepper
30c06335ce Update.
2004-08-12  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/bits/resource.h: Define non-standard
	RLIMIT__ enums as __RLIMIT_ and adjust macros accordingly.
	* sysdeps/unix/sysv/linux/alpha/bits/resource.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/resource.h: Likewise.

2004-08-12  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/bits/resource.h (RLIMIT_SIGPENDING,
	RLIMIT_MSGQUEUE): Add.
	(RLIMIT_NLIMITS, RLIM_NLIMITS): Adjust.
	* sysdeps/unix/sysv/linux/alpha/bits/resource.h (RLIMIT_SIGPENDING,
	RLIMIT_MSGQUEUE, RLIMIT_NLIMITS): Add.
	(RLIM_NLIMITS): Adjust.
	* sysdeps/unix/sysv/linux/sparc/bits/resource.h (RLIMIT_SIGPENDING,
	RLIMIT_MSGQUEUE, RLIMIT_NLIMITS): Add.
	(RLIM_NLIMITS): Adjust.
	* sysdeps/unix/sysv/linux/mips/bits/resource.h (RLIMIT_SIGPENDING,
	RLIMIT_MSGQUEUE, RLIMIT_NLIMITS): Add.
	(RLIM_NLIMITS): Adjust.
2004-08-12 18:05:59 +00:00
Andreas Jaeger
41bdb6e20c Update to LGPL v2.1.
2001-07-06  Paul Eggert  <eggert@twinsun.com>

	* manual/argp.texi: Remove ignored LGPL copyright notice; it's
	not appropriate for documentation anyway.
	* manual/libc-texinfo.sh: "Library General Public License" ->
	"Lesser General Public License".

2001-07-06  Andreas Jaeger  <aj@suse.de>

	* All files under GPL/LGPL version 2: Place under LGPL version
	2.1.
2001-07-06 04:58:11 +00:00
Andreas Jaeger
3f23079417 Update.
2000-10-02  Andreas Jaeger  <aj@suse.de>

	* sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Synch with Linux
	2.4.0-test9-pre8.

	* sysdeps/unix/sysv/linux/alpha/bits/resource.h: Add RLIMIT_LOCKS.
2000-10-02 08:51:41 +00:00
Ulrich Drepper
63a34b0f01 Update.
1999-12-18  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/i386/setrlimit.c: Declare local variable
	result if necessary.

	* sysdeps/unix/sysv/linux/i386/bits/resource.h: Don't depend on the
	unreliable kernel headers.
	* sysdeps/unix/sysv/linux/bits/resource.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/resource.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/resource.h: New file.
	* sysdeps/unix/sysv/linux/mips/bits/resource.h: New file.

1999-12-18  Andreas Jaeger  <aj@suse.de>

	* config.make.in (datadir): Added.
	Closes PR libc/1491. Patch by dervishd@jazzfree.com.

1999-12-18  Andreas Jaeger  <aj@suse.de>

	* sysdeps/unix/sysv/linux/ftruncate64.c (ftruncate64): Save and
	set errno.
	* sysdeps/unix/sysv/linux/truncate64.c (truncate64): Likewise.

1999-12-18  Andreas Jaeger  <aj@suse.de>

	* sysdeps/unix/sysv/linux/fxstat64.c: Rewrite to use fstat64
	syscall if available.
	* sysdeps/unix/sysv/linux/lxstat64.c: Likewise for lstat64.
	* sysdeps/unix/sysv/linux/xstat64.c: Likewise for stat64.

	* sysdeps/unix/sysv/linux/kernel-features.h
	(__ASSUME_STAT64_SYSCALL): New.

1999-12-17  Scott Bambrough  <scottb@netwinder.org>

	* sysdeps/arm/dl-machine.h (CLEAR_CACHE): New macro to force a
	cache flush.
	* elf/dl-reloc.c (_dl_relocate_object): Add call to flush cache
	after .text segment fixups.

1999-12-16  Andreas Jaeger  <aj@suse.de>

	* rt/aio.h: Remove erroneous __restrict declarations.

1999-12-18  Ulrich Drepper  <drepper@cygnus.com>

	* scripts/rellns-sh: Find pwd program also in /usr/bin and let shell
	do the job if it is there neither.
	Patch by David R. Conrad <drc@adni.net> (PR libc/1485).

1999-12-16  Andreas Jaeger  <aj@suse.de>

	* sysdeps/ieee754/bits/nan.h (NAN): Rename union to avoid
	duplicate definition with function __nan.
	Closes PR libc/1487 reported by <diana@kai.com>.

	* string/bits/string2.h (__strsep): Help gcc optimizing string access.
1999-12-19 00:04:05 +00:00