Commit Graph

13 Commits

Author SHA1 Message Date
H.J. Lu
e5dee2c896 Revert "Add INLINE_SYSCALL_RETURN/INLINE_SYSCALL_ERROR_RETURN"
This reverts commit 0c5b8b5941.
2015-08-21 09:57:15 -07:00
H.J. Lu
0c5b8b5941 Add INLINE_SYSCALL_RETURN/INLINE_SYSCALL_ERROR_RETURN
For ia32 PIC, the first thing of many syscalls does is to call
__x86.get_pc_thunk.reg to load PC into reg in case there is an error,
which is required for setting errno.  In most cases, there are no
errors.  But we still call __x86.get_pc_thunk.reg.  This patch adds
INLINE_SYSCALL_RETURN and INLINE_SYSCALL_ERROR_RETURN so that i386
can optimize setting errno by branching to the internal __syscall_error
without PLT.

INLINE_SYSCALL_ERROR_RETURN is designed to take the negative error
number returned from the majority of Linux kernels for which negating
is a no-op with INTERNAL_SYSCALL_ERRNO.

With i386 INLINE_SYSCALL_RETURN, INLINE_SYSCALL_ERROR_RETURN and
i386 syscall inlining optimization for GCC 5, for
sysdeps/unix/sysv/linux/fchmodat.c with -O2 -march=i686
-mtune=generic, GCC 5.2 now generates:

<fchmodat>:
   0:	push   %ebx
   1:	mov    0x14(%esp),%eax
   5:	mov    0x8(%esp),%ebx
   9:	mov    0xc(%esp),%ecx
   d:	mov    0x10(%esp),%edx
  11:	test   $0xfffffeff,%eax
  16:	jne    38 <fchmodat+0x38>
  18:	test   $0x1,%ah
  1b:	jne    48 <fchmodat+0x48>
  1d:	mov    $0x132,%eax
  22:	call   *%gs:0x10
  29:	cmp    $0xfffff000,%eax
  2e:	ja     58 <fchmodat+0x58>
  30:	pop    %ebx
  31:	ret
  32:	lea    0x0(%esi),%esi
  38:	pop    %ebx
  39:	mov    $0xffffffea,%eax
  3e:	jmp    3f <fchmodat+0x3f>	3f: R_386_PC32	__syscall_error
  43:	nop
  44:	lea    0x0(%esi,%eiz,1),%esi
  48:	pop    %ebx
  49:	mov    $0xffffffa1,%eax
  4e:	jmp    4f <fchmodat+0x4f>	4f: R_386_PC32	__syscall_error
  53:	nop
  54:	lea    0x0(%esi,%eiz,1),%esi
  58:	pop    %ebx
  59:	jmp    5a <fchmodat+0x5a>	5a: R_386_PC32	__syscall_error

instead of

<fchmodat>:
   0:	sub    $0x8,%esp
   3:	mov    0x18(%esp),%eax
   7:	mov    %ebx,(%esp)
   a:	call   b <fchmodat+0xb>	b: R_386_PC32	__x86.get_pc_thunk.bx
   f:	add    $0x2,%ebx	11: R_386_GOTPC	_GLOBAL_OFFSET_TABLE_
  15:	mov    %edi,0x4(%esp)
  19:	test   $0xfffffeff,%eax
  1e:	jne    70 <fchmodat+0x70>
  20:	test   $0x1,%ah
  23:	jne    88 <fchmodat+0x88>
  25:	mov    0x14(%esp),%edx
  29:	mov    0x10(%esp),%ecx
  2d:	mov    0xc(%esp),%edi
  31:	xchg   %ebx,%edi
  33:	mov    $0x132,%eax
  38:	call   *%gs:0x10
  3f:	xchg   %edi,%ebx
  41:	cmp    $0xfffff000,%eax
  46:	ja     58 <fchmodat+0x58>
  48:	mov    (%esp),%ebx
  4b:	mov    0x4(%esp),%edi
  4f:	add    $0x8,%esp
  52:	ret
  53:	nop
  54:	lea    0x0(%esi,%eiz,1),%esi
  58:	mov    0x0(%ebx),%edx	5a: R_386_TLS_GOTIE	__libc_errno
  5e:	neg    %eax
  60:	mov    %eax,%gs:(%edx)
  63:	mov    $0xffffffff,%eax
  68:	jmp    48 <fchmodat+0x48>
  6a:	lea    0x0(%esi),%esi
  70:	mov    0x0(%ebx),%eax	72: R_386_TLS_GOTIE	__libc_errno
  76:	movl   $0x16,%gs:(%eax)
  7d:	mov    $0xffffffff,%eax
  82:	jmp    48 <fchmodat+0x48>
  84:	lea    0x0(%esi,%eiz,1),%esi
  88:	mov    0x0(%ebx),%eax	8a: R_386_TLS_GOTIE	__libc_errno
  8e:	movl   $0x5f,%gs:(%eax)
  95:	mov    $0xffffffff,%eax
  9a:	jmp    48 <fchmodat+0x48>

	* sysdeps/unix/sysdep.h (INLINE_SYSCALL_RETURN): New.
	(INLINE_SYSCALL_ERROR_RETURN): Likewise.
	* sysdeps/unix/sysv/linux/adjtime.c (ADJTIME): Use
	INLINE_SYSCALL_RETURN and INLINE_SYSCALL_ERROR_RETURN.
	* sysdeps/unix/sysv/linux/aio_sigqueue.c (__aio_sigqueue):
	Likewise.
	* sysdeps/unix/sysv/linux/dl-openat64.c (openat64): Likewise.
	* sysdeps/unix/sysv/linux/eventfd.c (eventfd): Likewise.
	* sysdeps/unix/sysv/linux/faccessat.c (faccessat): Likewise.
	* sysdeps/unix/sysv/linux/fchmodat.c (fchmodat): Likewise.
	* sysdeps/unix/sysv/linux/fcntl.c (do_fcntl): Likewise.
	* sysdeps/unix/sysv/linux/fstatfs64.c (__fstatfs64): Likewise.
	* sysdeps/unix/sysv/linux/ftruncate64.c (__ftruncate64): Likewise.
	* sysdeps/unix/sysv/linux/futimens.c (futimens): Likewise.
	* sysdeps/unix/sysv/linux/futimes.c (__futimes): Likewise.
	* sysdeps/unix/sysv/linux/futimesat.c (futimesat): Likewise.
	* sysdeps/unix/sysv/linux/fxstat.c (__fxstat): Likewise.
	* sysdeps/unix/sysv/linux/fxstat64.c (___fxstat64): Likewise.
	* sysdeps/unix/sysv/linux/fxstatat.c (__fxstatat): Likewise.
	* sysdeps/unix/sysv/linux/fxstatat64.c (__fxstatat64): Likewise.
	* sysdeps/unix/sysv/linux/gai_sigqueue.c (__gai_sigqueue):
	Likewise.
	* sysdeps/unix/sysv/linux/getpriority.c (__getpriority): Likewise.
	* sysdeps/unix/sysv/linux/getrlimit64.c (__getrlimit64): Likewise.
	* sysdeps/unix/sysv/linux/llseek.c (__llseek): Likewise.
	* sysdeps/unix/sysv/linux/lutimes.c (lutimes): Likewise.
	* sysdeps/unix/sysv/linux/lxstat.c (__lxstat): Likewise.
	* sysdeps/unix/sysv/linux/lxstat64.c (___lxstat64): Likewise.
	* sysdeps/unix/sysv/linux/mmap64.c (__mmap64): Likewise.
	* sysdeps/unix/sysv/linux/mq_close.c (mq_close): Likewise.
	* sysdeps/unix/sysv/linux/mq_open.c (__mq_open): Likewise.
	* sysdeps/unix/sysv/linux/mq_unlink.c (mq_unlink): Likewise.
	* sysdeps/unix/sysv/linux/msgget.c (msgget): Likewise.
	* sysdeps/unix/sysv/linux/prlimit.c (prlimit): Likewise.
	* sysdeps/unix/sysv/linux/pt-raise.c (raise): Likewise.
	* sysdeps/unix/sysv/linux/raise.c (raise): Likewise.
	* sysdeps/unix/sysv/linux/readahead.c (__readahead): Likewise.
	* sysdeps/unix/sysv/linux/reboot.c (reboot): Likewise.
	* sysdeps/unix/sysv/linux/semget.c (semget): Likewise.
	* sysdeps/unix/sysv/linux/semop.c (semop): Likewise.
	* sysdeps/unix/sysv/linux/semtimedop.c (semtimedop): Likewise.
	* sysdeps/unix/sysv/linux/setrlimit64.c (setrlimit64): Likewise.
	* sysdeps/unix/sysv/linux/shmat.c (shmat): Likewise.
	* sysdeps/unix/sysv/linux/shmdt.c (shmdt): Likewise.
	* sysdeps/unix/sysv/linux/shmget.c (shmget): Likewise.
	* sysdeps/unix/sysv/linux/signalfd.c (signalfd): Likewise.
	* sysdeps/unix/sysv/linux/sigpending.c (sigpending): Likewise.
	* sysdeps/unix/sysv/linux/sigprocmask.c ( __sigprocmask): Likewise.
	* sysdeps/unix/sysv/linux/sigqueue.c (__sigqueue): Likewise.
	* sysdeps/unix/sysv/linux/speed.c (cfsetospeed): Likewise.
	* sysdeps/unix/sysv/linux/statfs64.c (__statfs64): Likewise.
	* sysdeps/unix/sysv/linux/sysctl.c (__sysctl): Likewise.
	* sysdeps/unix/sysv/linux/tcsendbrk.c (tcsendbreak): Likewise.
	* sysdeps/unix/sysv/linux/tcsetattr.c (tcsetattr): Likewise.
	* sysdeps/unix/sysv/linux/timer_getoverr.c (timer_getoverrun):
	Likewise.
	* sysdeps/unix/sysv/linux/timer_gettime.c (timer_gettime):
	Likewise.
	* sysdeps/unix/sysv/linux/timer_settime.c (timer_settime):
	Likewise.
	* sysdeps/unix/sysv/linux/truncate64.c (truncate64): Likewise.
	* sysdeps/unix/sysv/linux/ustat.c (ustat): Likewise.
	* sysdeps/unix/sysv/linux/utimensat.c (utimensat): Likewise.
	* sysdeps/unix/sysv/linux/utimes.c (__utimes): Likewise.
	* sysdeps/unix/sysv/linux/xmknod.c (__xmknod): Likewise.
	* sysdeps/unix/sysv/linux/xmknodat.c (__xmknodat): Likewise.
	* sysdeps/unix/sysv/linux/xstat.c (__xstat): Likewise.
	* sysdeps/unix/sysv/linux/xstat64.c (___xstat64): Likewise.
	* sysdeps/unix/sysv/linux/xstatconv.c (__xstat_conv): Likewise.
	(__xstat64_conv): Likewise.
	(__xstat32_conv): Likewise.
	* sysdeps/unix/sysv/linux/sched_getaffinity.c
	(__sched_getaffinity_new): Add libc_hidden_proto and
	libc_hidden_def.  Use INLINE_SYSCALL_ERROR_RETURN.
2015-08-21 04:46:53 -07:00
Joseph Myers
b168057aaa Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
Allan McRae
d4697bc93d Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
Joseph Myers
568035b787 Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
Paul Eggert
59ba27a63a Replace FSF snail mail address with URLs. 2012-02-09 23:18:22 +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
Ulrich Drepper
973209d8b0 Update.
2000-01-24  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/Dist: Add ipc_priv.h.
	* sysdeps/unix/sysv/linux/alpha/Dist: Likewise.

2000-01-24  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/bits/ipc.h: Move private decls...
	* sysdeps/unix/sysv/linux/ipc_priv.h: ...here.
	* sysdeps/unix/sysv/linux/bits/msq.h: Move private decls...
	* sysdeps/unix/sysv/linux/msgctl.c: ...here.  Include ipc_priv.h.
	* sysdeps/unix/sysv/linux/bits/sem.h: Move private decls...
	* sysdeps/unix/sysv/linux/semctl.c: ...here.  Include ipc_priv.h.
	* sysdeps/unix/sysv/linux/bits/shm.h: Move private decls...
	* sysdeps/unix/sysv/linux/shmctl.c: ...here.  Include ipc_priv.h.
	* sysdeps/unix/sysv/linux/alpha/bits/ipc.h: Move private decls...
	* sysdeps/unix/sysv/linux/alpha/ipc_priv.h: ...here.
	* sysdeps/unix/sysv/linux/alpha/bits/msq.h: Remove private decls.
	* sysdeps/unix/sysv/linux/alpha/bits/sem.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/shm.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/ipc.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/msq.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/sem.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/shm.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/msgctl.c: Include ipc_priv.h.
	* sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/shmctl.c: Likewise.
	* sysdeps/unix/sysv/linux/msgget.c: Likewise.
	* sysdeps/unix/sysv/linux/msgrcv.c: Likewise.
	* sysdeps/unix/sysv/linux/msgsnd.c: Likewise.
	* sysdeps/unix/sysv/linux/semget.c: Likewise.
	* sysdeps/unix/sysv/linux/semop.c: Likewise.
	* sysdeps/unix/sysv/linux/shmat.c: Likewise.
	* sysdeps/unix/sysv/linux/shmdt.c: Likewise.
	* sysdeps/unix/sysv/linux/shmget.c: Likewise.
2000-01-24 12:38:46 +00:00
Ulrich Drepper
0482576eec Update.
2000-01-17  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/bits/ipc.h: New file.
	* sysdeps/unix/sysv/linux/bits/sem.h: New file.
	* sysdeps/unix/sysv/linux/bits/shm.h: New file.
	* sysdeps/unix/sysv/linux/bits/msg.h: New file.
	* sysdeps/unix/sysv/linux/bits/alpha/ipc.h: Update for new ipc.
	* sysdeps/unix/sysv/linux/bits/alpha/sem.h: New file.
	* sysdeps/unix/sysv/linux/bits/alpha/shm.h: New file.
	* sysdeps/unix/sysv/linux/bits/alpha/msg.h: New file.
	* sysdeps/unix/sysv/linux/bits/sparc/ipc.h: New file.
	* sysdeps/unix/sysv/linux/bits/sparc/sem.h: New file.
	* sysdeps/unix/sysv/linux/bits/sparc/shm.h: New file.
	* sysdeps/unix/sysv/linux/bits/sparc/msg.h: New file.

	* sysdeps/unix/sysv/linux/msgctl.c (__old_msgctl):
	Renamed from msgctl.
	(__new_msgctl): New function.
	* sysdeps/unix/sysv/linux/semctl.c (__old_semctl):
	Renamed from semctl.
	(__new_semctl): New function.
	* sysdeps/unix/sysv/linux/shmctl.c (__old_shmctl):
	Renamed from shmctl.
	(__new_shmctl): New function.

	* sysdeps/unix/sysv/linux/msgget.c: Define __LIBC_IPC_INTERNAL.
	* sysdeps/unix/sysv/linux/msgrcv.c: Likewise.
	* sysdeps/unix/sysv/linux/semget.c: Likewise.
	* sysdeps/unix/sysv/linux/msgsnd.c: Likewise.
	* sysdeps/unix/sysv/linux/semop.c: Likewise.
	* sysdeps/unix/sysv/linux/shmat.c: Likewise.
	* sysdeps/unix/sysv/linux/shmdt.c: Likewise.
	* sysdeps/unix/sysv/linux/shmget.c: Likewise.

	* sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/msgctl.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/shmctl.c: New file.

	* sysdeps/unix/sysv/linux/Versions: Add msgctl, semctl, shmctl.

2000-01-17  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/sparc/sparc32/seteuid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setegid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Dist: Remove setres[ug]id.
	* sysdeps/unix/sysv/linux/sparc/sparc32/mmap64.c: Kill warnings.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Define needed
	syscalls.

	* sysdeps/unix/sysv/linux/pwrite64.c: Use proper prototype.
	* sysdeps/unix/sysv/linux/truncate64.c: Likewise.

	* sysdeps/unix/sysv/linux/kernel-features.h: [gs]etres[ug]id are
	available on sparc since 2.3.39.

	* sysdeps/unix/sysv/linux/execve.c: Kill warnings.

2000-01-17  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/i386/chown.c (__syscall_chown): Use proper
	prototype.
	(__real_chown): Return EINVAL if owner or group are out of the range
	-1U .. 65534.
	* sysdeps/unix/sysv/linux/i386/lchown.c (__lchown): Likewise.
	* sysdeps/unix/sysv/linux/i386/fchown.c (__fchown): Likewise.
	* sysdeps/unix/sysv/linux/i386/setresuid.c (__setresuid): Return
	EINVAL if ruid, euid or suid are out of the range -1U .. 65534.
	* sysdeps/unix/sysv/linux/i386/setresgid.c (__setresgid): Similarly.
	* sysdeps/unix/sysv/linux/i386/setreuid.c (__setreuid): Simplify.
	* sysdeps/unix/sysv/linux/i386/setregid.c (__setregid): Likewise.
	* sysdeps/unix/sysv/linux/m68k/chown.c (__syscall_chown): Use proper
	prototype.
	Don't include non-existant header.
	(__chown): Return EINVAL if owner or group are out of the range
	-1U .. 65534.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list (setresuid,
	setresgid): Inherit standard linux/syscalls.list definitions.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setresuid.c: Remove.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setresgid.c: Remove.
	* sysdeps/unix/sysv/linux/syscalls.list (setresgid): Provide
	__setresgid symbol.
2000-01-18 04:33:34 +00:00
Ulrich Drepper
219aa9e9f9 Update.
1999-08-18  Ulrich Drepper  <drepper@cygnus.com>

	* Rules: When generating stdio_lim.h also rewrite IOV_MAX definition.
	* stdio-common/stdio_lim.h.in: Add IOV_MAX template.
	* include/bits/xopen_lim.h: Don't define IOV_MAX here, get it from
	stdio_lim.h.  Define LONG_BIT and WORD_BIT.

	* include/features.h: Define __USE_XOPEN2K if _XOPEN_SOURCE == 600.

	* libio/stdio.h: Don't declare cuserid and getopt for X/Open issue 6.

	* misc/search.h: Don't define NULL.

	* posix/sys/types.h: Define blksize_t if it hasn't happened.
	Only define key_t and blkcnt_t if it hasn't happened before.
	Define blksize_t if not happened before.
	* io/sys/stat.h: Don't define pid_t.  Define blkcnt_t and blksize_t.
	* sysdeps/generic/bits/types.h: Define __blksize_t.
	* sysdeps/unix/sysv/linux/alpha/bits/types.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/types.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/types.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/types.h: Likewise.
	* sysdeps/unix/sysv/sysv4/solaris2/bits/types.h: Likewise.
	* sysdeps/mach/hurd/bits/stat.h (struct stat): Use __blksize_t for
	st_blksize member.
	(struct stat64): Likewise.
	* sysdeps/unix/bsd/bits/stat.h: Likewise.
	* sysdeps/unix/bsd/osf/alpha/bits/stat.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/stat.h: Likewise.
	* sysdeps/unix/sysv/linux/bits/stat.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/stat.h: Likewise.
	* sysdeps/unix/sysv/sysv4/i386/bist/stat.h: Likewise.
	* sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h: Likewise.

	* stdlib/getsubopt.c: Correct type of second argument.
	* stdlib/stdlib.h: Likewise.

	* stdlib/monetary.h: Don't include sys/types.h.  Define only size_t
	and ssize_t.

	* sysdeps/generic/putenv.c: Correct type of parameter.
	* stdlib/stdlib.h: Likewise.

	* sysdeps/generic/msgsnd.c: Correct type of second parameter.
	* sysdeps/unix/sysv/linux/msgsnd.c: Likewise.
	* sysvips/sys/msg.h: Likewise.

	* sysdeps/generic/semop.c: Correct type of third parameter.
	* sysdeps/unix/sysv/linux/semop.c: Likewise.
	* sysvipc/sys/sem.h: Likewise.  Don't include sys/types.h, define
	size_t.

	* sysdeps/generic/shmget.c: Correct type of second parameter.
	* sysdeps/unix/sysv/linux/shmget.c: Likewise.
	* sysvips/sys/shm.h: Likewise.  Don't include unistd.h and sys/types.h.
	Declare __getpagesize here.

	* sysdeps/generic/bits/ipc.h: Include bits/types.h instead of
	sys/types.h.
	* sysdeps/gnu/bits/ipc.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/ipc.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/ipc.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/ipc.h: Likewise.
	* sysvipc/sys/ipc.h: Define uid_t, gid_t, mode_t, and key_t if not
	already done.

	* sysdeps/unix/bsd/usleep.c: Correct type of parameter.

	* debug/versions: Export __cyg_profile_func_enter and
	__cyg_profile_func_exit.

	* math/bits/mathcalls.h: Pretty print.
1999-08-18 07:53:35 +00:00
Ulrich Drepper
e9dcb08080 Update.
* sysdeps/unix/sysv/linux/msgctl.c: Use INLINE_SYSCALL.
	* sysdeps/unix/sysv/linux/msgget.c: Likewise.
	* sysdeps/unix/sysv/linux/msgrcv.c: Likewise.
	* sysdeps/unix/sysv/linux/msgsnd.c: Likewise.
	* sysdeps/unix/sysv/linux/semctl.c: Likewise.
	* sysdeps/unix/sysv/linux/semget.c: Likewise.
	* sysdeps/unix/sysv/linux/semop.c: Likewise.
	* sysdeps/unix/sysv/linux/shmat.c: Likewise.
	* sysdeps/unix/sysv/linux/shmctl.c: Likewise.
	* sysdeps/unix/sysv/linux/shmdt.c: Likewise.
	* sysdeps/unix/sysv/linux/shmget.c: Likewise.
	* sysdeps/unix/sysv/linux/syscalls.list: Remove ipc syscall here.
	* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Add ipc syscall here.

	* time/strftime.c: Remove 'f' format.

	* time/strptime.c (get_number): Ignore trailing whitespace.
	(strptime_internal): Handle 'F' and 'k' formats.
1998-12-15 16:47:38 +00:00
Ulrich Drepper
3e5f555752 Update.
1997-03-25 02:15  Ulrich Drepper  <drepper@cygnus.com>

	* gmon/gmon.c: Optimize a bit by using more sets of records to
	write in a single writev call.

	* math/math.h: Add definitions of macros __MATHCALLX and __MATHDECLX.
	* math/mathcalls.h: Use __MATHCALLX for fabs, infnan, copysign,
	nan, isnan, nextafter, trunc, __fpclassify and signbit to mark as
	`const'.
	Use __MATHDECLX for isinf and finite.

	* sysdeps/generic/setenv.c [_LIBC]: Define __clearenv and make
	clearenv a weak alias.

	Implement complex exponential function.
	* sysdeps/libm-ieee754/s_cexp.c: New file.
	* sysdeps/libm-ieee754/s_cexpf.c: New file.
	* sysdeps/libm-ieee754/s_cexpl.c: New file.

	* sysdeps/libm-ieee754/s_nan.c: Define function as __nan and make
	nan a weak alias.
	* sysdeps/libm-ieee754/s_nanf.c: Likewise for nanf.
	* sysdeps/libm-ieee754/s_nanl.c: Likewise for nanl.

	* sysdeps/unix/sysv/linux/iovec.h: Don't use kernel header because
	of type clashes.  Add all definitions here.

	* sysdeps/unix/sysv/linux/shmat.c: Likewise.  Correct types according
	to XPG4.2.
	* sysdeps/unix/sysv/linux/shmdt.c: Likewise.
	* sysdeps/unix/sysv/linux/msgrcv.c: Likewise.

	* sysvipc/sys/shm.h (shmat, shmdt): Correct types.

	* sysdeps/unix/sysv/linux/sys/kd.h: Define _LINUX_TYPES_H to avoid
	use of kernel types.

1997-03-25 00:00  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/netinet/ip.h (struct ip_timestamp):
	Correct typos.  Reported by a sun <asun@zoology.washington.edu>.

1997-03-20 21:58  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/libm-ieee754/s_asinhl.c: Fix sign of result.

1997-03-20 16:20  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/libm-ieee754/e_atan2l.c: Fix typo.

1997-03-20 14:23  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/fpu/__math.h (__logb, logb): Don't define.
	* sysdeps/m68k/fpu/s_logb.c: Removed.
	* sysdeps/m68k/fpu/s_logbf.c: Removed.
	* sysdeps/m68k/fpu/s_logbl.c: Removed.

	* sysdeps/m68k/fpu/__math.h (__ieee754_atan2, __ieee754_pow):
	Don't define here.
	* sysdeps/m68k/fpu/e_atan2.c: Rewritten.
	* sysdeps/m68k/fpu/e_pow.c: Likewise.
	* sysdeps/m68k/fpu/e_atan2f.c: Based on e_atan2.c.
	* sysdeps/m68k/fpu/e_atan2l.c: Likewise.
	* sysdeps/m68k/fpu/e_powf.c: Based on e_pow.c.
	* sysdeps/m68k/fpu/e_powl.c: Likewise.

	* sysdeps/m68k/fpu/s_log2.c: New file.
	* sysdeps/m68k/fpu/s_log2f.c: New file.
	* sysdeps/m68k/fpu/s_log2l.c: New file.
	* sysdeps/m68k/fpu/s_exp2.c: New file.
	* sysdeps/m68k/fpu/s_exp2f.c: New file.
	* sysdeps/m68k/fpu/s_exp2l.c: New file.

1997-03-20 14:46  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makeconfig (all): Make sure this is always the default goal.

1997-03-20 11:09  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* math/libm-test.c: Increase epsilon in many places.  Fix many
	typos.  Allow optinal argument also for short option.

1997-03-20 11:09  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* math/Makefile ($(objpfx)$(tests)): Link against libm.

1997-03-24 23:14  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/libm-ieee754/s_fpclassifyl.c: Correct recognition of
	denormalized numbers.

	* sysdeps/i386/huge_val.h: Remove references to byte order macros.
	Don't include <endian.h>.

1997-03-19 15:18  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
	* sysdeps/m68k/huge_val.h: Remove references to byte order macros.
	Don't include <endian.h>.

1997-03-24 23:09  Ulrich Drepper  <drepper@cygnus.com>

	* inet/rcmd.c (iruserok): Use access instead of euidaccess.

1997-03-15 18:08  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* math/cmathcalls.h: Remove whitespace before function name in use
	of __MATHDECL macro, to make it compilable with a traditional
	preprocessor.

1997-03-24 15:31  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Use AC_PROG_CC instead of AC_PROG_TOOL to find
	compiler.

1997-03-24 02:34  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/libm-ieee754/s_finitel.c (__finitel): Shift return value
	by 31 positions to get 0/1 result.
	Patch by Joe Keane <jgk@jgk.org>.

1997-03-23 12:15  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* posix/getopt.c (__getopt_nonoption_flags): Make it extern
	to prevent from ld linking in getopt.o even if there is another
	incompatible one.

	* posix/getopt_init.c (__getopt_nonoption_flags): Remove extern.

1997-03-23 23:30   Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>

	* nis/nis_call.c (__do_niscall): Print message if cold start file
	does not exist.
	* nis/nis_file.c: Don't print error messages.
	* nis/nis_local_name.c (nis_local_host): Fix pointer errors.
	* nis/rpcsvc/ypclnt.h: Fix copyright and prototypes.
	* nis/rpcsvc/nis.h: Likewise.
	* nis/ypclnt.c: Fix prototypes.

1997-03-24 01:36  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/libm-i387/e_scalb.S: Pop additional result before
	returning.
	* sysdeps/libm-i387/e_scalbf.S: Likewise.
	* sysdeps/libm-i387/e_scalbl.S: Likewise.
	Reported by Andreas Jaeger <aj@arthur.pfalz.de>.

	* elf/rtld.c (dl_main): Set main_map->l_opencount to 1 also if
	dynamic linker was called implicitly by the kernel.
	Reported by Eric Youngdale <eric@andante.jic.com>.

	* math/Makefile (CFLAGS-test-float.c, CFLAGS-test-double.c,
	CFLAGS-test-longdouble.c): New variables.  Set to -fno-inline to
	prevent clever optimizations which corrupt the tests.

1997-03-23 21:33  Andreas Jaeger  <aj@arthur.pfalz.de>

	* math/libm-test.c (scalb_test): New function.
	(sqrt_test): New function.
	(scalbn_test): New function.
	(ilogb_test): New function.
	(main): Added calls for new test functions.
	(ldexp_test): Add another test for ldexp(x,0).

1997-03-23 12:35  Andreas Jaeger  <aj@arthur.pfalz.de>

	* math/libm-test.c (remquo_test): Correct messages so that they
	match the tests.
	(copysign_test): Likewise.

1997-03-23 16:28  Ulrich Drepper  <drepper@cygnus.com>

	* stdio-common/Makefile (routines): Add printf_size.

	* stdio-common/printf.h: Add declarations for printf_size and
	printf_size_info.

	* stdio-common/printf-parse.h (__printf_arginfo_table): Correct
	declaration.
	(parse_one_spec): Test whether __printf_function_table is not NULL
	before using registered handlers and don't test
	__printf_arginfo_table.  Update nargs also when handler is
	registered.

	* stdio-common/vfprintf.c (vfprintf): Count number of specifiers
	processed in fast loop.

	* stdio-common/printf_size: New file.

1997-03-22 04:53  Ulgmon_out_readrich Drepper  <drepper@cygnus.com>
1997-03-25 01:45:04 +00:00
Ulrich Drepper
d2f5be2a12 Document new files for Linux i386/ELF port.
Fri Sep  8 16:32:12 1995  Ulrich Drepper  <drepper@gnu.ai.mit.edu>

        * sysdeps/unix/sysv/linux/Implies,
        sysdeps/unix/sysv/linux/Makefile, sysdeps/unix/sysv/linux/Subdirs,
        sysdeps/unix/sysv/linux/accept.S, sysdeps/unix/sysv/linux/adjtime.c,
        sysdeps/unix/sysv/linux/adjtimex.S, sysdeps/unix/sysv/linux/bind.S,
        sysdeps/unix/sysv/linux/connect.S, sysdeps/unix/sysv/linux/direct.h,
        sysdeps/unix/sysv/linux/dl-machine.h, sysdeps/unix/sysv/linux/errnos.h,
        sysdeps/unix/sysv/linux/fork.S, sysdeps/unix/sysv/linux/gethostid.c,
        sysdeps/unix/sysv/linux/gethostname.C,
        sysdeps/unix/sysv/linux/getpeername.S,
        sysdeps/unix/sysv/linux/getpgid.S, sysdeps/unix/sysv/linux/getpgrp.S,
	sysdeps/unix/sysv/linux/getsockname.S,
	sysdeps/unix/sysv/linux/getsockopt.S, sysdeps/unix/sysv/linux/gtty.S,
	sysdeps/unix/sysv/linux/listen.S, sysdeps/unix/sysv/linux/local_lim.h,
	sysdeps/unix/sysv/linux/madvise.c, sysdeps/unix/sysv/linux/msgctl.c,
	sysdeps/unix/sysv/linux/msgget.c, sysdeps/unix/sysv/linux/msgrcv.c,
	sysdeps/unix/sysv/linux/msgsnd.c, sysdeps/unix/sysv/linux/pipe.S,
	sysdeps/unix/sysv/linux/poll.c, sysdeps/unix/sysv/linux/readv.c,
	sysdeps/unix/sysv/linux/recv.S, sysdeps/unix/sysv/linux/recvfrom.S,
	sysdeps/unix/sysv/linux/recvmsg.S, sysdeps/unix/sysv/linux/semctl.c,
	sysdeps/unix/sysv/linux/semget.c, sysdeps/unix/sysv/linux/semop.c,
	sysdeps/unix/sysv/linux/send.S, sysdeps/unix/sysv/linux/sendmsg.S,
	sysdeps/unix/sysv/linux/sendto.S, sysdeps/unix/sysv/linux/setegid.c,
	sysdeps/unix/sysv/linux/seteuid.c, sysdeps/unix/sysv/linux/sethostid.c,
	sysdeps/unix/sysv/linux/setpgid.c, sysdeps/unix/sysv/linux/setpgrp.c,
	sysdeps/unix/sysv/linux/setsid.S, sysdeps/unix/sysv/linux/setsockopt.S,
	sysdeps/unix/sysv/linux/settimeofday.S,
	sysdeps/unix/sysv/linux/shmat.c, sysdeps/unix/sysv/linux/shmctl.c,
	sysdeps/unix/sysv/linux/shmdt.c, sysdeps/unix/sysv/linux/shmget.c,
	sysdeps/unix/sysv/linux/shutdown.S,
	sysdeps/unix/sysv/linux/sigaction.S, sysdeps/unix/sysv/linux/signal.S,
	sysdeps/unix/sysv/linux/sigpending.S, sysdeps/unix/sysv/linux/sigset.h,
	sysdeps/unix/sysv/linux/sockaddrcom.h,
	sysdeps/unix/sysv/linux/socketpair.S, sysdeps/unix/sysv/linux/speed.c,
	sysdeps/unix/sysv/linux/statbuf.h, sysdeps/unix/sysv/linux/stty.S,
	sysdeps/unix/sysv/linux/syscall.h, sysdeps/unix/sysv/linux/sysconf.c,
	sysdeps/unix/sysv/linux/tcdrain.c, sysdeps/unix/sysv/linux/tcflow.c,
	sysdeps/unix/sysv/linux/tcflush.c, sysdeps/unix/sysv/linux/tcgetattr.c,
	sysdeps/unix/sysv/linux/tcsetattr.c,
	sysdeps/unix/sysv/linux/termbits.h, sysdeps/unix/sysv/linux/ualarm.c,
	sysdeps/unix/sysv/linux/ulimit.c, sysdeps/unix/sysv/linux/usleep.c,
	sysdeps/unix/sysv/linux/utsnamelen.h, sysdeps/unix/sysv/linux/vfork.c,
	sysdeps/unix/sysv/linux/wait.c, sysdeps/unix/sysv/linux/wait4.S,
	sysdeps/unix/sysv/linux/waitpid.c, sysdeps/unix/sysv/linux/writev.c:
	New Linux/ELF specific, architecture independent files.

	sysdeps/unix/sysv/linux/i386/Dist,
	sysdeps/unix/sysv/linux/i386/Makefile,
	sysdeps/unix/sysv/linux/i386/brk.S,
	sysdeps/unix/sysv/linux/i386/fcntlbits.h,
	sysdeps/unix/sysv/linux/i386/fpu_control.c,
	sysdeps/unix/sysv/linux/i386/fpu_control.h,
	sysdeps/unix/sysv/linux/i386/fstat.S,
	sysdeps/unix/sysv/linux/i386/fxstat.S,
	sysdeps/unix/sysv/linux/i386/ieee_fpu.c,
	sysdeps/unix/sysv/linux/i386/init-first.S,
	sysdeps/unix/sysv/linux/i386/ipc.S,
	sysdeps/unix/sysv/linux/i386/lstat.S,
	sysdeps/unix/sysv/linux/i386/lxstat.S,
	sysdeps/unix/sysv/linux/i386/mknod.S,
	sysdeps/unix/sysv/linux/i386/mmap.S,
	sysdeps/unix/sysv/linux/i386/sbrk.S,
	sysdeps/unix/sysv/linux/i386/setfpucw.c,
	sysdeps/unix/sysv/linux/i386/signum.h,
	sysdeps/unix/sysv/linux/i386/socket.S,
	sysdeps/unix/sysv/linux/i386/stat.S,
	sysdeps/unix/sysv/linux/i386/syscall.S,
	sysdeps/unix/sysv/linux/i386/sysdep.S,
	sysdeps/unix/sysv/linux/i386/sysdep.h,
	sysdeps/unix/sysv/linux/i386/xmknod.S,
	sysdeps/unix/sysv/linux/i386/xstat.S:
	New Linux i386/ELF specific files.

	sysdeps/unix/sysv/linux/sys/ipc_buf.h,
	sysdeps/unix/sysv/linux/sys/mman.h,
	sysdeps/unix/sysv/linux/sys/msq_buf.h,
	sysdeps/unix/sysv/linux/sys/sem_buf.h,
	sysdeps/unix/sysv/linux/sys/shm_buf.h,
	sysdeps/unix/sysv/linux/sys/socketcall.h,
	sysdeps/unix/sysv/linux/sys/timex.h:
	New Linux/ELF specific, architecture independent header files.
1995-09-08 17:02:25 +00:00