2007-01-16  Roland McGrath  <roland@redhat.com>

	* configure.ac, NEWS: Version 4.5.15.
	* debian/changelog, strace.spec: 4.5.15-1.

2007-01-16  Dmitry V. Levin <ldv@altlinux.org>

	Update mount parser to match kernel behaviour.
	* system.c [LINUX] (MS_VERBOSE): Rename to MS_SILENT.
	[LINUX] (MS_UNBINDABLE, MS_PRIVATE, MS_SLAVE, MS_SHARED):
	New macros.
	[LINUX] (mount_flags): Add them.
	[LINUX] (MS_MGC_MSK): New macro.
	[LINUX] (sys_mount): Update parser to match kernel behaviour:
	discard MS_MGC_VAL magic, do not decode type and/or data
	strings when specified flags do not imply valid strings.

2007-01-12  Dmitry V. Levin <ldv@altlinux.org>

	* time.c [LINUX] (tprint_timex32, tprint_timex): Decode adjtimex
	modes as flags.

2007-01-11  Dmitry V. Levin <ldv@altlinux.org>

	Update umount parser.
	* system.c [LINUX] (MNT_FORCE, MNT_DETACH, MNT_EXPIRE): New macros.
	[LINUX] (umount_flags): New xlat structure with MNT_* entries.
	[LINUX] (sys_umount2): Use umount_flags.

	Fix open(2) flags parser.
	* defs.h (tprint_open_modes): New function.
	* desc.c (sprint_open_modes): New function.
	(sys_fcntl): Use tprint_open_modes() and sprint_open_modes().
	* file.c (openmodes): Split xlat into open_access_modes and
	open_mode_flags.
	(tprint_open_modes): New function.
	(decode_open): Use it.
	* ipc.c (sys_mq_open, printmqattr): Likewise.
	Fixes RH#222385.

2007-01-11  Roland McGrath  <roland@redhat.com>

	* configure.ac, NEWS: Version 4.5.15.
	* debian/changelog, strace.spec: 4.5.15-1.

	* debian/control (Uploaders): Add Frederik Schueler <fs@debian.org>.

	* strace.spec (Release): Use %{?dist}.

	* system.c [LINUX] (CTL_CPU): Define in case header is missing it.

2006-12-27  Dmitry V. Levin <ldv@altlinux.org>

	Add const qualifier to xlookup() return value.
	* defs.h (xlookup): Add const qualifier to return value.
	* desc.c (sprintflags): Likewise.
	* process.c (printpriv): Update xlookup() use.
	* signal.c (sprintsigmask): Add const qualifier to first argument and
	return value.
	* util.c (xlookup): Add const qualifier to return value.
	(printxval): Update xlookup() use.

2006-12-21  Dmitry V. Levin <ldv@altlinux.org>

	Move counts code to separate file.
	* count.c: New file.
	* Makefile.am (strace_SOURCES): Add count.c.
	* syscall.c (call_counts, countv, counts, shortest, time_cmp,
	syscall_cmp, count_cmp, sortfun, overhead, set_sortby,
	set_overhead, call_summary_pers, call_summary): Move to count.c
	* count.c (count_syscall): New function.
	* defs.h (count_syscall): Declare it.
	* syscall.c (trace_syscall): Use it.

2006-12-20  Dmitry V. Levin <ldv@altlinux.org>

	* syscall.c (internal_syscall): Change conditions for internal_exit,
	internal_fork, internal_clone, internal_exec and internal_wait
	calls from switching on known scno values to switching on known
	sysent[tcp->scno].sys_func values.
	Fixes RH#179740.

	Show system call summary for each personality.
	* syscall.c (countv): New call_counts pointers array.
	(counts): Convert to macro wrapper around countv.
	(call_summary_pers): New function.
	(call_summary): Use it for each personality.
	Fixes RH#192193.

2006-12-12  Dmitry V. Levin <ldv@altlinux.org>

	Fix -ff -o behaviour.  Fix piping trace output.
	* defs.h (newoutf): Remove.
	(alloctcb): Rename to alloc_tcb.  Add alloctcb() macro wrapper
	around alloc_tcb().
	* process.c [!USE_PROCFS] (internal_clone, internal_fork):
	Remove newoutf() call.
	* strace.c (set_cloexec_flag, strace_fopen, strace_popen,
	swap_uid): New functions.
	(popen_pid): New variable.
	(newoutf): Make static, use strace_fopen().
	(main): Use strace_fopen() and strace_popen(), remove uids
	swapping.  Do not open outfname when followfork > 1.
	Reinitialize tcp->outf properly.
	(alloctcb): Rename to alloc_tcb.  Use newoutf().
	(trace): Check popen_pid.  Remove newoutf() call.
	[USE_PROCFS] (proc_open, proc_poll_open): Use set_cloexec_flag().
	Fixes RH#204950, RH#218435, Debian#353935.

2006-12-10  Dmitry V. Levin <ldv@altlinux.org>

	Add biarch support for "struct sigevent".
	* time.c [LINUX && SUPPORTED_PERSONALITIES > 1] (printsigevent32):
	New function.
	[LINUX] (printsigevent): [SUPPORTED_PERSONALITIES > 1]
	Handle 32-bit personality.

	Add biarch support for "struct timex".
	* time.c [LINUX && SUPPORTED_PERSONALITIES > 1] (tprint_timex32):
	New function.
	[LINUX] (tprint_timex): New function.
	[LINUX] (sys_adjtimex): Use it.

	Enhance adjtimex parser.
	* time.c [LINUX] (adjtimex_modes, adjtimex_status,
	adjtimex_state): New xlat structures.
	[LINUX] (sys_adjtimex): Print the whole struct timex.
	Decode modes, status and return code.

	Add biarch support for "struct itimerval".
	* time.c (printitv): Rename to printitv_bitness().
	Add printitv() macro wrapper around printitv_bitness().
	(printitv_bitness): Handle 32-bit personality.
	[ALPHA] (sys_osf_getitimer, sys_osf_setitimer):
	Use printitv_bitness().
	(tprint_timeval, tprint_timeval32): New functions.
	(printtv_bitness, printitv_bitness, sys_adjtimex): Use them.
	(printitv32): Remove.

	Add biarch support for "struct timeval".
	* defs.h (bitness_t): New enum type.
	(printtv_bitness, sprinttv): New function prototypes.
	(printtv): Convert to macro wrapper around printtv_bitness().
	(printtv32): Remove.
	* desc.c (decode_select): Use printtv_bitness() and sprinttv().
	(sys_oldselect, sys_osf_select, sys_select, sys_pselect6):
	Update decode_select() use.
	* file.c [ALPHA] (sys_osf_utimes): Use printtv_bitness().
	* time.c (printtv_bitness, sprinttv): New functions.
	(printtv, printtv32): Remove.
	[ALPHA] (sys_osf_settimeofday, sys_osf_settimeofday):
	Use printtv_bitness().
	Fixes RH#171626, RH#173050.

	Add biarch support for "struct iovec".
	* defs.h (personality_wordsize): Add.
	* io.c [HAVE_SYS_UIO_H] (tprint_iov): [LINUX &&
	SUPPORTED_PERSONALITIES > 1] Handle 32-bit personality.
	* util.c [HAVE_SYS_UIO_H] (dumpiov): [LINUX &&
	SUPPORTED_PERSONALITIES > 1] Likewise.
	Patch from Jakub Jelinek.
	Fixes RH#218433.

	* time.c (sys_timer_create): Check umove() return code.

	Make several global variables static.
	#ifdef definitions of rarely unused functions.
	* defs.h (rflag, tflag, outfname): Remove.
	* strace.c (iflag, interactive, pflag_seen, rflag, tflag,
	outfname, username): Make static.
	* desc.c (sys_getdtablesize): Define only for
	ALPHA || FREEBSD || SUNOS4.
	* file.c (sys_fchroot): Define only for SUNOS4 || SVR4.
	(sys_mkfifo): Define only for FREEBSD.
	* mem.c (sys_sbrk): Define only for FREEBSD || SUNOS4.
	(sys_getpagesize): Define only for
	ALPHA || FREEBSD || IA64 || SUNOS4 || SVR4.
	* net.c (sys_so_socket): Define only for SVR4.
	* process.c (sys_gethostid): Define only for
	FREEBSD || SUNOS4 || SVR4.
	(sys_gethostname): Define only for
	ALPHA || FREEBSD || SUNOS4 || SVR4.
	(sys_setpgrp): Define only for ALPHA || SUNOS4 || SVR4.
	(sys_execv): Define only for SPARC || SPARC64 || SUNOS4.
	* signal.c (sys_sigblock): Define only for FREEBSD || SUNOS4.
	(sys_sighold, sys_sigwait): Define only for SVR4.
	(sys_killpg): Define only for FREEBSD || SUNOS4.
	* stream.c (sys_getmsg): Define only for
	SPARC || SPARC64 || SUNOS4 || SVR4.
	* syscall.c (sys_indir): Define only for SUNOS4.

2006-11-27  Dmitry V. Levin  <ldv@altlinux.org>

	* system.c [LINUX]: Define CTL_PROC, since Linux 2.6.18+ headers
	removed CTL_PROC enum.	Patch from Jakub Jelinek.
	[LINUX] (sysctl_root): Add CTL_BUS, CTL_ABI and CTL_CPU.

2006-11-20  Jakub Jelinek  <jakub@redhat.com>

	* linux/ia64/syscallent.h: Add #if check to make sure that
	SYS_socket_subcall adjustment isn't forgotten again.

2006-10-16  Dmitry V. Levin  <ldv@altlinux.org>

	Implement comprehensive quotactl(2) parser for Linux.
	* Makefile.am (strace_SOURCES): Add quota.c.
	* quota.c: New file.
	* resource.c: Remove old quotactl(2) parser.
	Fixes RH#118696.

2006-10-14  Dmitry V. Levin  <ldv@altlinux.org>

	* configure.ac (AC_CHECK_HEADERS): Add inttypes.h.
	* file.c [_LFS64_LARGEFILE && (LINUX || SVR4)]:
	Include <inttypes.h>.
	(sys_getdents64): Use PRIu64/PRId64 to avoid gcc warnings on
	64-bit platforms.

	* strace.c (main): Check getcwd() return code.

2006-10-13  Ulrich Drepper  <drepper@redhat.com>
	    Bernhard Kaindl <bk@suse.de>
	    Dmitry V. Levin  <ldv@altlinux.org>
	    Michael Holzheu <holzheu@de.ibm.com>

	Add hooks for new syscalls.  Add decoders for *at, inotify*,
	pselect6, ppoll and unshare syscalls.

	* defs.h: Declare print_sigset.
	* desc.c (sys_pselect6): New function.
	* file.c (decode_open, decode_access, decode_mkdir,
	decode_readlink, decode_chmod, decode_utimes, decode_mknod):
	New functions.
	(sys_open, sys_access, sys_mkdir, sys_readlink, sys_chmod,
	sys_utimes, sys_mknod): Use them.
	[LINUX] (fstatatflags, unlinkatflags, inotify_modes): New
	variables.
	[LINUX] (print_dirfd, sys_openat, sys_faccessat,
	sys_newfstatat, sys_mkdirat, sys_linkat, sys_unlinkat,
	sys_symlinkat, sys_readlinkat, sys_renameat, sys_fchownat,
	sys_fchmodat, sys_futimesat, sys_mknodat, sys_inotify_add_watch,
	sys_inotify_rm_watch): New functions.
	* process.c [LINUX] (sys_unshare): New function.
	* signal.c (print_sigset): New function.
	(sys_sigprocmask): Use it.
	* stream.c (decode_poll): New function.
	(sys_poll): Use it.
	[LINUX] (sys_ppoll): New function.
	* linux/syscall.h: Delcare new syscall handlers.
	* linux/syscallent.h: Hook up new syscalls.
	* linux/alpha/syscallent.h: Likewise.
	* linux/hppa/syscallent.h: Likewise.
	* linux/ia64/syscallent.h: Likewise.
	* linux/mips/syscallent.h: Likewise.
	* linux/powerpc/syscallent.h: Likewise.
	* linux/s390/syscallent.h: Likewise.
	* linux/s390x/syscallent.h: Likewise.
	* linux/sparc/syscallent.h: Likewise.
	* linux/sparc64/syscallent.h: Likewise.
	* linux/x86_64/syscallent.h: Likewise.
	Fixes RH#178633.

2006-10-06  Dmitry V. Levin  <ldv@altlinux.org>

	* strace.c [!USE_PROCFS] (trace): Presence of PT_GETSIGINFO
	macro does not mean that PT_CR_IPSR and PT_CR_IIP macros are
	also defined, so check them along with PT_GETSIGINFO.
	Fixes RH#209856.

2006-09-01  Dmitry V. Levin  <ldv@altlinux.org>

	* file.c (print_xattr_val): Fix memory corruption bug reported
	by James Antill.
	Fixes RH#200621.

2006-04-21  Dmitry V. Levin  <ldv@altlinux.org>

	* defs.h [LINUX && X86_64 && !__NR_exit_group]: Define
	__NR_exit_group.

2006-03-29  Dmitry V. Levin  <ldv@altlinux.org>

	Fix race conditions in tcb allocation.
	* process.c (fork_tcb): Return error code as documented.  Do not
	print "tcb table full" error message.
	[USE_PROCFS] (internal_fork): Do not print "tcb table full"
	error message.
	[SYS_clone || SYS_clone2] (internal_clone, internal_fork): Call
	fork_tcb() before alloctcb().  Do not print "tcb table full"
	error message.
	* strace.c (main): Do not print "tcb table full" error message.
	(expand_tcbtab): Print error message in case of memory allocation
	failure.
	(alloctcb): Print error message when tcb table is full.
	(trace): Expand tcb table if necessary prior to allocating
	entry there.  Do not print "tcb table full" error message.
	Fixes RH#180293.

2006-08-22  Roland McGrath  <roland@redhat.com>

	* ipc.c (sys_msgget, sys_semget, sys_shmget): Show key values in hex.
	Fixes RH#198179.

2006-08-21  Roland McGrath  <roland@redhat.com>

	* linux/syscall.h (SYS_socket_subcall): Bump to 400.
	* linux/syscallent.h: Update table.
	* linux/arm/syscallent.h: Likewise.
	* linux/m68k/syscallent.h: Likewise.
	* linux/s390/syscallent.h: Likewise.
	* linux/s390x/syscallent.h: Likewise.
	* linux/powerpc/syscallent.h: Likewise.
	* linux/sh/syscallent.h: Likewise.
	* linux/sh64/syscallent.h: Likewise.
	Fixes RH#201462.

2006-04-25  Roland McGrath  <roland@redhat.com>

	* strace.c (main): Fail when -c is given with -ff.
	* strace.1: Note their incompatibility.
	Fixes RH#187847.

	* strace.c (main): Fail when nonoption args follow -p switches.
	Fixes Debian#361302.

	* Makefile.am (EXTRA_DIST): Add xlate.el.

	* linux/mips/Makefile.in: File removed, unused cruft.
	* linux/sparc/Makefile.in: Likewise.

	* strace.spec (Source0): Use http://dl.sourceforge.net URL.

	* ipc.c (sys_semtimedop): Fixed inverted indirect_ipccall test.
	* linux/hppa/syscallent.h: Fixed semtimedop entry.
	From Mike Stroyan <mike.stroyan@hp.com>.
	Fixes Debian#340239.

2006-03-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* linux/arm/syscallent.h: Correct the name of exit.  Remove
	M68K conditionals and sys_security.  Correct syscalls 243-282.
	Fixes Debian#360154.

	* process.c (change_syscall): Add ARM support.
	* syscall.c (get_scno): Handle ARM EABI.
	Fixes Debian#360152.

2006-01-16  Roland McGrath  <roland@redhat.com>

	* configure.ac, NEWS: Version 4.5.14.
	* debian/changelog, strace.spec: 4.5.14-1.

2006-01-13  Roland McGrath  <roland@redhat.com>

	* debian/control (Build-Depends): Add debhelper.

2006-01-12  Roland McGrath  <roland@redhat.com>

	* signal.c [LINUX] (sys_restart_syscall): New function.
	* linux/syscall.h: Declare sys_restart_syscall.
	* linux/sparc/syscall.h: Likewise.
	* linux/syscallent.h: Call 0 is restart_syscall.
	* linux/arm/syscallent.h: Likewise.
	* linux/powerpc/syscallent.h: Likewise.
	* linux/m68k/syscallent.h: Likewise.
	* linux/hppa/syscallent.h: Likewise.
	* linux/sh/syscallent.h: Likewise.
	* linux/sparc/syscallent.h: Likewise.
	* linux/sparc64/syscallent.h: Likewise.
	* linux/alpha/syscallent.h: Use sys_restart_syscall.
	* linux/ia64/syscallent.h: Likewise.
	* linux/mips/syscallent.h: Likewise.
	* linux/x86_64/syscallent.h: Likewise.
	Fixes RH#165469, Debian#350641.

2005-08-08  Dmitry V. Levin  <ldv@altlinux.org>

	* system.c [LINUX] (MS_MGC_VAL): New macro.
	[LINUX] (mount_flags): Add it.
	[LINUX] (sys_mount): If neither MS_BIND nor MS_MOVE bits are
        set in the flags argument, try to fetch data string.
	Fixes RH#165377.

2006-01-12  Roland McGrath  <roland@redhat.com>

	* system.c (sys_sysctl): Don't read off end of NAME when max_strlen
	exceeds INFO.nlen.
	From Timo Lindfors <timo.lindfors@iki.fi>.
	Fixes Debian#339117.

	* debian/rules (binary-arch): Don't pass -s to install.  Use dh_strip.
	Fixes Debian#325132.

	* debian/control (Standards-Version): Update to 3.6.2.

	* defs.h [LINUXSPARC] (PERSONALITY0_WORDSIZE, PERSONALITY1_WORDSIZE):
	New macros.
	[SPARC64] (PERSONALITY2_WORDSIZE): New macro.
	[X86_64] (PERSONALITY0_WORDSIZE, PERSONALITY1_WORDSIZE): New macros.
	* syscall.c (PERSONALITY0_WORDSIZE): New macro if undefined.
	(personality_wordsize): New variable.
	(decode_subcall): Use it for size of argument words.
	Fixes RH#174354.

2005-11-17  Dmitry V. Levin  <ldv@altlinux.org>

	Implement qual_flags support for each personality.
	* strace.c (main): Move qualify calls after set_personality call.
	* syscall.c (qual_flags0): New variable..
	[SUPPORTED_PERSONALITIES >= 2] (qual_flags1): New variable.
	[SUPPORTED_PERSONALITIES >= 3] (qual_flags2): New variable.
	(qual_flags): Change variable definition from array to pointer.
	(set_personality): Initialize qual_flags variable.
	(qualify_one): Add "pers" argument to specify personality.
	[SUPPORTED_PERSONALITIES >= 2]: Set qual_flags1 if requested.
	[SUPPORTED_PERSONALITIES >= 3]: Set qual_flags2 if requested.
	(qual_syscall): Pass personality to qualify_one.
	[SUPPORTED_PERSONALITIES >= 2]: Look for syscall also in sysent1
	table.
	[SUPPORTED_PERSONALITIES >= 3]: Look for syscall also in sysent2
	table.
	(qual_signal): Pass personality to qualify_one.
	(qual_desc): Likewise.
	(qualify): Use qualify_one instead of manual qual_flags
	manipulations.
	[SUPPORTED_PERSONALITIES >= 2]: Look for syscall also in sysent1
	table.
	[SUPPORTED_PERSONALITIES >= 3]: Look for syscall also in sysent2
	table.
	* defs.h: Update qual_flags declaration.
	Fixes RH#173986.

2005-11-14  Dmitry V. Levin  <ldv@altlinux.org>

	* syscall.c (qual_syscall): Handle numeric syscall specification.
	Fixes RH#174798.

	* syscall.c (qual_signal, qual_options): Remove redundant argument
	check.

2005-12-01  Roland McGrath  <roland@redhat.com>

	* ipc.c (indirect_ipccall) [MIPS || HPPA]: Return false.
	Fixes Debian#340239.

	* Makefile.am (EXTRA_DIST): Add linux/arm/syscallent.h
	and linux/m68k/syscallent.h.
	Fixes Debian#336197.

	* debian/control (Architecture): Add armeb.
	Fixes Debian#335681.

2005-11-02 Michal Marek  <mmarek@suse.cz>

	* strace-graph (handle_trace): follow clone() and vfork() calls.

2005-10-25  Heiko Carstens  <heiko.carstens@de.ibm.com>

	* linux/s390/syscallent.h: Added ioprio_set, ioprio_get,
	inotify_init, inotify_add_watch, inotify_rm_watch.
	Corrected number of arguments for request_key.
	* linux/s390x/syscallent.h: Likewise.

2005-12-01  Roland McGrath  <roland@redhat.com>

	* ipc.c (indirect_ipccall) [IA64]: Return false unless the syscall
	number is in the low range of IA32 syscalls.

2005-10-07  Andreas Schwab  <schwab@suse.de>

	* linux/ia64/syscallent.h: Syscall 1105 is gettid, not ioperm.

2005-12-01  Roland McGrath  <roland@redhat.com>

	* resource.c (resources): Add RLIMIT_NICE, RLIMIT_RTPRIO.
	Reported by Scott Tsai <scottt958@yahoo.com.tw>.

	* ipc.c (indirect_ipccall): New function.
	(sys_msgctl, sys_msgsnd, sys_msgrcv, sys_semop): Use that predicate
	instead of #ifdef LINUX test.
	[LINUX] (sys_semtimedop): Likewise.
	(sys_shmctl, sys_shmat, sys_shmdt): Likewise.
	Fixes RH#164755.

2005-07-31  Ulrich Drepper  <drepper@redhat.com>

	* linux/x86_64/syscallent.h: Fix syscall parameter count for msgrcv and
	msgctl.

	* ipc.c (sys_msgrcv): Add entering handling and print first parameter
	there.
	Fixes RH#164757.

2005-08-08  Dmitry V. Levin  <ldv@altlinux.org>

	* strace.1: Update "SEE ALSO" links to reference to valid
	manpages.
	Patch from Michail Litvak <mci@owl.openwall.com>.
	Fixes RH#165375.

2005-10-21  Roland McGrath  <roland@redhat.com>

	* util.c (printpathn): Cap N at sizeof path - 1.

2005-08-03  Roland McGrath  <roland@redhat.com>

	* configure.ac, NEWS: Version 4.5.13.
	* debian/changelog, strace.spec: 4.5.13-1.

	* configure.ac: Check for struct dqblk.dqb_curblocks field.
	* resource.c [LINUX] (OLD_CMD): New macro.
	(quotacmds): Use it to hard-wire old O_* values, don't use macros.
	(sys_quotactl): If dqb_curblocks is not there, it's called
	dqb_curspace instead.  Print dqb_* fields as unsigned long long.

2005-07-19  Michael Schmitz  <schmitz@debian.org>

	Long overdue m68k cleanup.
	* linux/syscallent.h: remove m68k declarations.
	* linux/m68k/syscallent.h: new file, fixed up declarations
	to match kernel version 2.6.11. Newer syscalls are sufficiently
	different from i386 to merit a separate file.

2005-08-03  Roland McGrath  <roland@redhat.com>

	* linux/x86_64/syscallent.h: Update init_module argument count.
	* linux/sparc/syscallent.h: Likewise.
	* linux/sparc64/syscallent2.h: Likewise.
	* linux/sparc64/syscallent.h: Likewise.
	* linux/sh/syscallent.h: Likewise.
	* linux/sh64/syscallent.h: Likewise.
	* linux/s390/syscallent.h: Likewise.
	* linux/s390x/syscallent.h: Likewise.
	* linux/powerpc/syscallent.h: Likewise.
	* linux/arm/syscallent.h: Likewise.

2005-07-22  James Lentini  <jlentini@gmail.com>

	* bjm.c (sys_init_module): Display all three arguments.
	* linux/syscallent.h: Update argument count.

2005-08-03  Roland McGrath  <roland@redhat.com>

	* process.c (internal_wait): Don't suspend when known child is known
	to be exiting already.

	* strace.c (detach): If detaching the last live thread in a group with
	a zombie leader, then detach the leader too.
	(handle_group_exit): Use detach, not droptcb, for predeceased thread.
	Mark process about to take a signal with TCB_GROUP_EXITING flag.
	Fixes RH#161919.

2005-07-19  Roland McGrath  <roland@redhat.com>

	* defs.h [LINUX] [M68K] (__NR_exit_group): Define it if missing.
	Fixes Debian#315500.

2005-07-14  Heiko Carstens  <heiko.carstens@de.ibm.com>

	* linux/s390/syscallent.h (sys_tgkill, vserver, fadvise64_64)
	(statfs64, fstatfs64, remap_file_pages, mbind, get_mempolicy)
	(set_mempolicy, mq_open, mq_unlink, mq_timedsend, mq_timedreceive)
	(mq_notify, mq_getsetattr, sys_kexec_load, add_key, request_key)
	(keyctl, waitid): Added.
	* linux/s390x/syscallent.h: Likewise and added missing _llseek.
	* linux/s390/errnoent.h (ECANCELED, ENOKEY, EKEYEXPIRED)
	(EKEYREVOKED, EKEYREJECTED, EOWNERDEAD, ENOTRECOVERABLE): Added.
	* linux/s390x/errnoent.h: Likewise.

2005-07-05  Roland McGrath  <roland@redhat.com>

	* mem.c [LINUX] (sys_old_mmap) [X86_64]: Extract 32-bit values if
	child is 32-bit.
	Fixes RH#162467.

2005-06-08  Dmitry V. Levin  <ldv@altlinux.org>

	Introduce "-e trace=desc".
	* defs.h (TRACE_DESC): New flag.
	* syscall.c: Define TD macro before include of syscallent files
	and undefine it afterwards.
	(lookup_class): Recognize "desc" keyword.
	* strace.1: Document "-e trace=desc".
	* freebsd/i386/syscallent.h: Mark those syscalls which take a
	file descriptor as an argument or return a file descriptor with
	TD flag.
	* linux/alpha/syscallent.h: Likewise.
	* linux/hppa/syscallent.h: Likewise.
	* linux/ia64/syscallent.h: Likewise.
	* linux/mips/syscallent.h: Likewise.
	* linux/powerpc/syscallent.h: Likewise.
	* linux/s390/syscallent.h: Likewise.
	* linux/s390x/syscallent.h: Likewise.
	* linux/sh/syscallent.h: Likewise.
	* linux/sh64/syscallent.h: Likewise.
	* linux/sparc/syscallent.h: Likewise.
	* linux/sparc64/syscallent2.h: Likewise.
	* linux/sparc64/syscallent.h: Likewise.
	* linux/syscallent.h: Likewise.
	* linux/x86_64/syscallent.h: Likewise.
	* sunos4/syscallent.h: Likewise.
	* svr4/syscallent.h: Likewise.
	Fixes RH#159400.

	Remove TF flag from those syscalls which have no filename argument.
	* freebsd/i386/syscallent.h: Remove TF flag from fstat, pread,
	pwrite, fstat, sendfile.
	* linux/alpha/syscallent.h: Remove TF flag from read, write,
	pread, pwrite, sendfile.
	* linux/hppa/syscallent.h: Remove TF flag from read, write,
	pread, pwrite, fstat64, sendfile, ftruncate64.
	* linux/ia64/syscallent.h: Remove TF flag from read, write,
	sendfile, fstat, fadvise64.
	* linux/mips/syscallent.h: Remove TF flag from read, write,
	fstatfs, fstat, pread, pwrite, sendfile, ftruncate64, fstat64,
	sendfile64, fadvise64, fstatfs64.
	* linux/powerpc/syscallent.h: Remove TF flag from read, write,
	fstat, pread, pwrite, sendfile, ftruncate64, fstat64, sendfile64,
	fadvise64, fstatfs64, fadvise64_64.
	* linux/s390/syscallent.h: Remove TF flag from pread, pwrite,
	sendfile, ftruncate64, fstat64, sendfile64.
	* linux/s390x/syscallent.h: Remove TF flag from pread, pwrite,
	sendfile, sendfile64.
	* linux/sh/syscallent.h: Remove TF flag from pread, pwrite,
	sendfile, fstat64.
	* linux/sh64/syscallent.h: Remove TF flag from pread, pwrite,
	sendfile, ftruncate64, fstat64.
	* linux/sparc/syscallent.h: Remove TF flag from sendfile, fstat64,
	pread, pwrite, sendfile64.
	* linux/sparc64/syscallent2.h: Likewise.
	* linux/sparc64/syscallent.h: Likewise.
	* linux/syscallent.h: Remove TF flag from pread, pwrite, sendfile,
	ftruncate64, fstat64, sendfile64, fadvise64, fadvise64, fstatfs64,
	fadvise64_64.
	* linux/x86_64/syscallent.h: Remove TF flag from pread, pwrite,
	sendfile, fadvise64_64.
	* svr4/syscallent.h: Remove TF flag from pread, pwrite, ftruncate,
	fstatvfs64, ftruncate64.
	Fixes RH#159340.

2005-07-04  Roland McGrath  <roland@redhat.com>

	* net.c (sockipv6options): Add IPV6_ADD_MEMBERSHIP,
	IPV6_DROP_MEMBERSHIP, IPV6_ROUTER_ALERT.
	From Ulrich Drepper <drepper@redhat.com>.
	Fixes RH#162450.

	* net.c (sockipoptions): Fix typos.
	From Ulrich Drepper <drepper@redhat.com>.
	Fixes RH#161578.

	* util.c (printnum_int): New function, printnum with s/long/int/.
	* defs.h: Declare it.
	* net.c (printsockopt): Use it for int-sized option.
	Fixes RH#162449.
	Reported by Ulrich Drepper <drepper@redhat.com>.

2005-06-09  Roland McGrath  <roland@redhat.com>

	* configure.ac, NEWS: Version 4.5.12.
	* debian/changelog, strace.spec: 4.5.12-1.

2005-06-08  Dmitry V. Levin  <ldv@altlinux.org>

	Minor namespace cleanup.
	* defs.h (string_quote): Remove declaration.
	* file.c (openmodessol) [LINUXSPARC]: Make static.
	(fileflags): Likewise.
	(aclcmds, aclipc) [HAVE_SYS_ACL_H]: Likewise.
	(direnttypes) [FREEBSD || LINUX]: Likewise.
	(xattrflags): Likewise.
	* process.c (unalignctl_string): Make static.
	(setarg): Disable.
	* syscall.c (subcalls_table): Make static.
	(socket_map) [!(LINUX && (ALPHA || MIPS))]: Likewise.
	(sparc_socket_decode): Make static, define for [SPARC || SPARC64] only.
	(decode_subcall): Make static.
	(syscall_fixup): Likewise.
	(get_error): Likewise.
	(syscall_enter): Likewise.
	* util.c (tv_tv): Disable.
	(getpc): Likewise.
	(string_quote): Make static.
	Fixes RH#159688.

2005-05-12  Philippe De Muyter  <phdm@macqel.be>

	* util.c (getpc, printcall): Check #if defined(M68K), not M68k.
	Enables `-i' on m68k machines.

2005-06-06  Roland McGrath  <roland@redhat.com>

	* process.c (struct_user_offsets) [X86_64]: Reorder elements so
	matching works right.
	Fixes RH#159787.

	* linux/syscall.h (SYS_socket, SYS_bind, SYS_connect, SYS_listen)
	(SYS_accept, SYS_getsockname, SYS_getpeername, SYS_socketpair)
	(SYS_send, SYS_recv, SYS_sendto, SYS_recvfrom, SYS_shutdown)
	(SYS_setsockopt, SYS_getsockopt, SYS_sendmsg, SYS_recvmsg)
	(SYS_getsockname, SYS_semop, SYS_semgsub_et, SYS_semget, SYS_semctl)
	(SYS_semtimedop, SYS_msgsnd, SYS_msgrcv, SYS_msgget)
	(SYS_msgctl, SYS_shmat, SYS_shmdt, SYS_shmget)
	(SYS_shmctl): Macros renamed to SYS_sub_*.
	* syscall.c (dumpio): Match SYS_sub_* if defined instead of SYS_*.

	* linux/syscall.h (SYS_waitid): Define if not defined.

	* linux/syscallent.h: Fix pread/pwrite names to pread64/pwrite64.

	* defs.h (struct sysent): New member `native_scno'.
	(known_scno): Declare new function.
	* linux/syscallent.h: Add new final field to interesting syscalls.
	* syscall.c (known_scno): New function.
	(dumpio, internal_syscall, syscall_fixup, trace_syscall): Use it.
	* process.c (internal_fork, internal_exit): Likewise.
	[IA64] (ARG_STACKSIZE, ARG_PTID, ARG_CTID, ARG_TLS): Likewise.
	* strace.c (proc_open): Likewise.
	* util.c [LINUX] (setbpt): Likewise.
	* linux/syscall.h: Remove [!defined(X86_64)] from conditional
	for defining SYS_socket_subcall et al.
	* linux/syscallent.h: Likewise for #error check.
	* syscall.c (trace_syscall): Likewise for SYS_{socketcall,ipc} cases.
	Fixes RH#158934.

2005-06-02  Roland McGrath  <roland@redhat.com>

	* file.c (printstatfs64): Cast values to unsigned long long and use
	%llu formats.
	Fixes RH#158243.

2005-05-31  Dmitry V. Levin  <ldv@altlinux.org>

	Deal with memory management issues.
	* defs.h (tprint_iov): Update prototype.
	* desc.c (sys_epoll_wait) [HAVE_SYS_EPOLL_H]: Do not allocate
	epoll_event array of arbitrary size on the stack, to avoid
	stack overflow.
	* file.c (print_xattr_val): Check for integer overflow during
	malloc size calculation, to avoid heap corruption.
	* io.c (tprint_iov) [HAVE_SYS_UIO_H]: Check for integer overflow
	during malloc size calculation, to avoid heap corruption.
	Change iovec array handling to avoid heap memory allocation.
	* mem.c (get_nodes) [LINUX]: Check for integer overflow during
	size calculation and do not allocate array of arbitrary size on
	the stack, to avoid stack overflow.
	* net.c (printcmsghdr) [HAVE_SENDMSG]: Do not allocate array of
	arbitrary size on the stack, to avoid stack overflow.  Do not
	trust cmsg.cmsg_len to avoid read beyond the end of allocated
	object.
	(printmsghdr) [HAVE_SENDMSG]: Update tprint_iov() usage.
	* process.c (sys_setgroups): Check for integer overflow during
	malloc size calculation, to avoid heap corruption.  Change gid_t
	array handling to avoid heap memory allocation.
	(sys_getgroups): Likewise.
	(sys_setgroups32) [LINUX]: Likewise.
	(sys_getgroups32) [LINUX]: Likewise.
	* stream.c (sys_poll) [HAVE_SYS_POLL_H]: Check for integer
	overflow during malloc size calculation, to avoid heap corruption.
	Change pollfd array handling to avoid heap memory allocation.
	* system.c (sys_sysctl) [LINUX]: Check for integer overflow
	during malloc size calculation, to avoid heap corruption.
	* util.c (dumpiov) [HAVE_SYS_UIO_H]: Check for integer overflow
	during malloc size calculation, to avoid heap corruption.
	Fixes RH#159196.

	* util.c (printxval): Change third argument from "char *" to
	"const char *".
	(printflags): Add third argument, "const char *", with similar
	meaning to the third argument of printxval().
	* defs.h (printxval): Change third argument from "char *" to
	"const char *".
	(printflags): Add third argument.
	* bjm.c (sys_query_module) [LINUX]: Pass third argument to
	printflags().
	* desc.c (sys_fcntl): Likewise.
	(sys_flock) [LOCK_SH]: Likewise.
	(print_epoll_event) [HAVE_SYS_EPOLL_H]: Likewise.
	* file.c (sys_open): Likewise.
	(solaris_open) [LINUXSPARC]: Likewise.
	(sys_access): Likewise.
	(sys_chflags, sys_fchflags) [FREEBSD]: Likewise.
	(realprintstat) [HAVE_LONG_LONG_OFF_T &&
	HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
	(printstat64) [HAVE_STAT64 &&
	HAVE_STRUCT_STAT_ST_FLAGS]: Likewise.
	(sys_setxattr, sys_fsetxattr): Likewise.
	* ipc.c (sys_msgget, sys_msgsnd, sys_msgrcv, sys_semget,
	sys_shmget, sys_shmat) [LINUX || SUNOS4 || FREEBSD]: Likewise.
	(sys_mq_open) [LINUX]: Likewise.
	(printmqattr) [HAVE_MQUEUE_H]: Likewise.
	* mem.c (print_mmap) [!HAVE_LONG_LONG_OFF_T]: Likewise.
	(sys_mmap64) [_LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T]: Likewise.
	(sys_mprotect): Likewise.
	(sys_mremap, sys_madvise, sys_mlockall) [LINUX]: Likewise.
	(sys_msync) [MS_ASYNC]: Likewise.
	(sys_mctl) [MC_SYNC]: Likewise.
	(sys_remap_file_pages, sys_mbind, sys_get_mempolicy) [LINUX]:
	Likewise.
	* net.c (printmsghdr) [HAVE_STRUCT_MSGHDR_MSG_CONTROL]: Likewise.
	(sys_send, sys_sendto): Likewise.
	(sys_sendmsg) [HAVE_SENDMSG]: Likewise.
	(sys_recv, sys_recvfrom): Likewise.
	(sys_recvmsg) [HAVE_SENDMSG]: Likewise.
	(printicmpfilter) [ICMP_FILTER]: Likewise.
	* proc.c (proc_ioctl) [SVR4 && !HAVE_MP_PROCFS || FREEBSD]: Likewise.
	* process.c (sys_clone) [LINUX]: Likewise.
	(printwaitn): Likewise.
	(sys_waitid) [SVR4 || LINUX]: Likewise.
	* signal.c (sys_sigvec) [SUNOS4 || FREEBSD]: Likewise.
	(sys_sigaction): Likewise.
	(printcontext) [SVR4]: Likewise.
	(print_stack_t) [LINUX) || FREEBSD]: Likewise.
	(sys_rt_sigaction) [LINUX]: Likewise.
	* sock.c (sock_ioctl) [LINUX]: Likewise.
	* stream.c (sys_putmsg, sys_getmsg): Likewise.
	(sys_putpmsg) [SYS_putpmsg]: Likewise.
	(sys_getpmsg) [SYS_getpmsg]: Likewise.
	(sys_poll): Likewise.
	(print_transport_message) [TI_BIND]: Likewise.
	(stream_ioctl): Likewise.
	* system.c (sys_mount, sys_reboot): Likewise.
	(sys_cacheflush) [LINUX && M68K]: Likewise.
	(sys_capget, sys_capset) [SYS_capget]: Likewise.
	* term.c (term_ioctl) [TIOCMGET]: Likewise.
	* time.c (sys_clock_nanosleep, sys_timer_settime) [LINUX]:
	Likewise.
	Fixes RH#159310.

	* bjm.c (sys_query_module) [LINUX]: Unitize "out of memory"
	errors reporting style.
	* strace.c (rebuild_pollv) [USE_PROCFS]: Likewise.
	* system.c (sys_capget, sys_capset) [SYS_capget]: Likewise.
	* util.c (printstr): Likewise.
	(dumpiov) [HAVE_SYS_UIO_H]: Likewise.
	(fixvfork) [SUNOS4]: Likewise.
	* desc.c (decode_select): Continue to decode syscall arguments
	in case of OOM condition.
	* file.c (sys_getdents): Likewise.
	(sys_getdents64) [_LFS64_LARGEFILE]: Likewise.
	(sys_getdirentries) [FREEBSD]: Likewise.
	* mem.c (sys_mincore): Changed type of variables which deal with
	malloc size from int to unsigned long.
	Fixes RH#159308.

2005-05-22  Dmitry V. Levin  <ldv@altlinux.org>

	* bjm.c [LINUX]: Do not include <linux/linkage.h>.  It is not
	safe to include kernel headers, and this one is not used anyway.
	Fixes RH#158488.

2005-05-26  Roland McGrath  <roland@redhat.com>

	* system.c (sys_sysctl): Check for errors accessing user pointers.
	Use malloc instead of alloca in case size is insane.

2005-05-09  Roland McGrath  <roland@redhat.com>

	* configure.ac: Check for libaio.h.
	* desc.c (sys_io_setup, sys_io_submit, sys_io_cancel,
	sys_io_getevents, sys_io_destroy): New functions.
	* linux/syscall.h: Declare them.
	* linux/syscallent.h: Use those for io_* syscalls.
	* linux/alpha/syscallent.h: Likewise.
	* linux/hppa/syscallent.h: Likewise.
	* linux/ia64/syscallent.h: Likewise.
	* linux/mips/syscallent.h: Likewise.
	* linux/powerpc/syscallent.h: Likewise.
	* linux/s390/syscallent.h: Likewise.
	* linux/s390x/syscallent.h: Likewise.
	* linux/x86_64/syscallent.h: Likewise.
	From Zach Brown <zach.brown@oracle.com>.
	Fixes RH#155065.

	* debian/control (Architecture): Add ppc64.
	Fixes Debian bug #301089.

2005-05-05  Anton Blanchard  <anton@samba.org>

	* process.c (ptrace_cmds): Add PTRACE_GETVRREGS and PTRACE_SETVRREGS
	if defined.

2005-05-09  Roland McGrath  <roland@redhat.com>

	* strace.c (main): Refuse negative -s argument value.
	Fixes Debian bug #303256.

2005-04-25  Anton Blanchard  <anton@samba.org>

	* file.c (openmodes): Add O_NOATIME flag if defined.

2005-04-05  Anton Blanchard  <anton@samba.org>

	* linux/powerpc/ioctlent.h: Regenerated.

	* signal.c (signame): Don't try and dereference negative index.

	* linux/powerpc/syscallent.h: Add debug_setcontext, vserver,
	mbind, *_mempolicy, mq_*, sys_kexec_load, add_key, request_key,
	keyctl, waitid, sys_semtimedop.  Fix various other syscalls.

	* ipc.c (shm_resource_flags): New variable, table has SHM_HUGETLB
	but not IPC_NOWAIT, which have the same value.
	(sys_shmget): Use that instead of resource_flags.

2005-03-22  Roland McGrath  <roland@redhat.com>

	* desc.c (decode_select): Increase local buffer size.
	Fixes RH#151570.

	* configure.ac, NEWS: Version 4.5.11.
	* debian/changelog, strace.spec: 4.5.11-1.

	* linux/arm/syscallent.h: Fix 113 entry (syscall, not vm86old).

2005-03-14  Roland McGrath  <roland@redhat.com>

	* configure.ac, NEWS: Version 4.5.10.
	* debian/changelog, strace.spec: 4.5.10-1.

2005-02-26  GOTO Masanori  <gotom@debian.or.jp>

	* linux/alpha/syscallent.h: Fix the reversed order of lstat64 and
	fstat64.  Clean up osf_nrecvmsg and osf_ngetsockname.

2005-02-28  Andreas Schwab  <schwab@suse.de>

	* syscall.c (getrval2): Move #ifdef IA64 inside #ifdef LINUX.

2005-03-14  Roland McGrath  <roland@redhat.com>

	* linux/mips/syscallent.h: Update various calls.
	From Thiemo Seufer <ths@networkno.de>.
	Fixes Debian bug #256684.

	* debian/control (Architecture): Add s390.
	Fixes Debian bug #294172.

2005-03-06  Roland McGrath  <roland@redhat.com>

	* strace.c (trace) [PTRACE_GETSIGINFO]: Fetch siginfo_t for SIGSEGV
	and SIGBUS signals, use si_addr in output.

2005-03-01  Roland McGrath  <roland@redhat.com>

	* file.c (print_xattr_val): Add a cast.

2005-02-05  Roland McGrath  <roland@redhat.com>

	* desc.c (decode_select): Calculate size of passed fd_set vectors and
	copy in the user's size rather than the standard sizeof(fd_set).
	Fixes Debian bug #65654, #284290.

	* util.c (printpath, printpathn): Print NULL and don't try any fetch
	when ADDR is zero.
	Fixes Debian bug #63093.

	* debian/control (Build-Depends): Fix for s390 and sparc.
	From Bastian Blank <waldi@debian.org>.
	Fixes Debian bug #293564.

2004-12-19  Dmitry V. Levin  <ldv@altlinux.org>

	* strace.c (main) [!USE_PROCFS]: In child process, raise SIGSTOP
	right before execv() call.  Remove fake_execve() call.
	* defs.h (fake_execve): Remove unused declaration.
	* process.c (fake_execve): Remove unused function.
	Fixes RH#143365.

2005-02-04  Roland McGrath  <roland@redhat.com>

	* configure.ac, NEWS: Version 4.5.9.
	* debian/changelog, strace.spec: 4.5.9-2.

	* file.c (O_LARGEFILE): Omit when #undef'd because it was zero.

2005-02-02  Roland McGrath  <roland@redhat.com>

	* debian/control: Add strace-udeb package for installer debugging.
	* debian/rules (binary-arch): Build it.
	From Joshua Kwan <joshk@triplehelix.org>.
	Fixes Debian bug #268294.

	* file.c (openmodes) [O_LARGEFILE] [O_LARGEFILE == 0]: Redefine to
	known values for Linux.

	* util.c (printcall): Print 16 ?s when long is 8 bytes.
	Fixes RH#146932.

	* linux/sparc/syscall.h: Declare sys_epoll_create, sys_epoll_ctl,
	sys_epoll_wait.
	* linux/sparc64/syscall.h: Just #include "../sparc/syscall.h" here.
	* ioctl.c (nioctlents2): Add const to type.
	Fixes Debian bug #278449.

	* sock.c (iffflags): New variable, table of IFF_* values.
	(print_addr): New function.
	(sock_ioctl): Handle SIOCGIFADDR, SIOCGIFDSTADDR, SIOCGIFBRDADDR,
	SIOCGIFNETMASK, SIOCGIFFLAGS, SIOCGIFMETRIC, SIOCGIFMTU, SIOCGIFSLAVE,
	SIOCGIFHWADDR.	Use print_addr for SIOCGIFCONF, SIOCGIFNAME, and
	SIOCGIFINDEX, and fix their output.
	From Ulrich Drepper <drepper@redhat.com>.
	Fixes RH#138223.
	Fixes Debian bug #192164.

2004-12-20  Dmitry V. Levin  <ldv@altlinux.org>

	* configure.ac: Use AC_GNU_SOURCE macro instead of changing CFLAGS.
	* defs.h [HAVE_CONFIG_H]: Include config.h first.
	* strace.c: Include "defs.h" first.
	Fixes RH#143370.

	* syscall.c (call_summary): Fix potential NULL dereference.
	Fixes RH#143369.

2004-12-19  Dmitry V. Levin  <ldv@altlinux.org>

	* syscall.c (qual_signal): Check bounds for numeric signal names.
	Fix parser of symbolic signal names.
	Fix return code, as required by qualify() function.
	* syscall.c (qual_desc): Check bounds for descriptor number.
	* syscall.c (qual_syscall): Correct return code, to be consistent
	with qualify() and other qual_* functions.
	Fixes RH#143362.

2005-02-01  Roland McGrath  <roland@redhat.com>

	* system.c [LINUX] (MS_MANDLOCK, MS_NOATIME, MS_NODIRATIME, MS_BIND,
	MS_MOVE, MS_REC, MS_VERBOSE, MS_POSIXACL, MS_ACTIVE, MS_NOUSER):
	New macros.
	[LINUX] (mount_flags): Add them.
	[LINUX] (sys_mount): If any of (MS_BIND|MS_MOVE|MS_REMOUNT) bits are
	set in the flags argument, don't try to fetch the filesystem string.
	Fixes RH#141932.

	* config.guess: Update from canonical version, timestamp 2004-11-12.
	* config.sub: Likewise, timestamp 2004-11-30.

	* process.c [LINUX] [X86_64] (sys_arch_prctl): New function.
	* linux/syscall.h: Declare it.
	* linux/x86_64/syscallent.h: Use it.
	Part of RH#142667.

	* process.c (sys_sched_setscheduler): Use %#lx format for bad pointer.
	(sys_sched_getparam, sys_sched_setparam): Likewise.
	Part of RH#142667.

	* signal.c [HAVE_SIGACTION] [LINUX && X86_64] (SA_RESTORER): Define
	here too.
	Part of RH#142667.

	* linux/syscallent.h: Use sys_mincore instead of printargs.
	* linux/x86_64/syscallent.h: Likewise.  Also use sys_getrlimit,
	sys_semtimedop, sys_umount2.
	Part of RH#142667.

	* syscall.c (qual_signal): Fix inverted return value and bogus
	argument to qualify_one in the named case.

	* file.c (print_xattr_val): Don't use auto array sized by syscall
	argument.  Use malloc instead, so it can fail for insane values.
	Fixes Debian bug #283704.

	* net.c (sys_getsockopt): Fix a format %ld -> %d.

	* linux/syscall.h [IA64] (SYS_semtimedop): #undef it.

	* syscall.c (syscall_enter) [X86_64]: Fix 32-bit argument register map
	not to double the middle entry!
	Fixes RH#146093.

	* linux/x86_64/syscallent.h: Fix exit_group entry.

	* util.c (getpc) [S390 || S390X]: Implement it.
	Patch by David Wilder <wilder@us.ibm.com>.

	* linux/ia64/syscallent.h: Add fadvise64, fstatfs64, statfs64, mbind,
	[gs]et_mempolicy, mq_*, sys_kexec_load, vserver, and waitid.
	Fixes RH#146245.

2005-01-22  Andreas Schwab  <schwab@suse.de>

	* net.c (sys_getsockopt): Change type of len to int.

2004-10-19  Roland McGrath  <roland@redhat.com>

	* configure.ac, NEWS: Version 4.5.8.
	* debian/changelog, strace.spec: 4.5.8-1.

	* file.c (sys_fadvise64): Conditionalize just on [LINUX].

	* configure.ac: Check for sys/epoll.h.
	* desc.c: Protect #include <sys/epoll.h> with [HAVE_SYS_EPOLL_H].
	(epollctls, epollevents): Protect each entry with #ifdef on its macro.

	* strace.c (handle_group_exit): Don't detach leader that wasn't
	TCB_ATTACHED.  Instead mark it with TCB_GROUP_EXITING.
	Remove droptcb loop at end, no longer required since 2.6 reports each
	thread death.
	Fixes RH#135254.

	* strace.c (trace): Use handle_group_exit for non-TCB_ATTACHED child
	taking signal when it has nclone_threads > 0.

	* strace.c (handle_group_exit, trace): Mark leader with
	TCB_GROUP_EXITING and don't be surprised at child deaths when their
	leader has it set.
	Fixes RH#132150.

	* process.c (WCOREFLAG): Define if not defined.
	(W_STOPCODE, W_EXITCODE): Likewise.
	Reported by Marty Leisner <mleisner@eng.mc.xerox.com>.

	* sock.c [! LINUX]: Include <sys/socket.h> before <sys/sockio.h>.
	Reported by Marty Leisner <mleisner@eng.mc.xerox.com>.

	* debian/rules: Make strace64.1.gz symlink to strace.1.gz instead of
	strace64.1 to strace.1, which doesn't exist.
	Fixes Debian bug #269220.

2004-09-05  Phil Blundell  <pb@nexus.co.uk>

	* linux/arm/syscallent.h: New file.

2004-10-19  Roland McGrath  <roland@redhat.com>

	* debian/rules (DEB_BUILD_GNU_TYPE, CONFIG_OPTS): New variables.
	[$(DEB_HOST_GNU_TYPE) == s390-linux] (build64, HOST64, CC64): Set them.
	(build/Makefile): Use $(CONFIG_OPTS).
	(build64/Makefile): Pass --host as well as --build.
	From Bastian Blank <waldi@debian.org>.
	Fixes Debian bug #271500.

	* linux/hppa/syscallent.h: Update for 2.6.9 syscalls.
	From Randolph Chung <tausq@debian.org>
	Fixes Debian bug #273887.

	* file.c (sys_llseek): Revert last change.

2004-09-14  Richard Henderson  <rth@twiddle.net>

	* linux/alpha/syscallent.h: Add tgkill, *stat64, vserver, mbind,
	[gs]et_mempolicy, mq_*, waitid.

2004-10-07  Roland McGrath  <roland@redhat.com>

	* file.c (sys_llssek, sys_readahead, sys_fadvise64, sys_fadvise64_64):
	Use LONG_LONG macro.
	* io.c (sys_pread, sys_pwrite, sys_sendfile): Likewise.

	* linux/x86_64/syscallent.h: Fix botched table entries.
	From Ulrich Drepper <drepper@redhat.com>.

	* mem.c [LINUX] (sys_mbind, sys_set_mempolicy, sys_get_mempolicy):
	New functions.
	* linux/syscall.h: Declare them.
	* linux/x86_64/syscallent.h: Likewise.
	From Ulrich Drepper <drepper@redhat.com>.

	* linux/syscallent.h: Handle mbind, set_mempolicy, get_mempolicy.
	From Ulrich Drepper <drepper@redhat.com>.

	* file.c [LINUX && (I386 || X86_64)] (sys_fadvise64, sys_fadvise64_64):
	New functions.
	* linux/syscall.h: Declare them.
	* linux/syscallent.h: Handle fadvise64 and fadvise64_64 using those.
	* linux/x86_64/syscallent.h: Likewise.
	From Ulrich Drepper <drepper@redhat.com>.

2004-09-13  Dmitry V. Levin  <ldv@altlinux.org>

	* linux/ioctlsort.c (main): Omit duplicate lines
	(with same name and code) from output.
	* linux/ioctlent.sh: Build the list of ioctls defined in
	scsi/sg.h (0x22..), scsi/scsi.h and scsi/scsi_ioctl.h (0x53..),
	as suggested by Peter Jones <pjones@redhat.com>
	* linux/ioctlent.h: Regenerated.
	Fixes RH#129808.

2004-09-13  Ulrich Drepper <drepper@redhat.com>
	    Dmitry V. Levin <ldv@altlinux.org>

	* time.c [LINUX] (print_rtc): New function, for printing rtc_time
	structure.
	[LINUX] (rtc_ioctl): New function, for parsing RTC_* ioctls.
	* ioctl.c [LINUX] (ioctl_decode): Call rtc_ioctl.
	* defs.h [LINUX]: Declare rtc_ioctl.
	Fixes RH#58606.

2004-10-06  Roland McGrath  <roland@redhat.com>

	* desc.c [LINUX] (sys_epoll_create, sys_epoll_ctl, sys_epoll_wait):
	New functions.
	* linux/syscall.h: Declare them.
	* linux/syscallent.h: Use those for epoll_* syscalls.
	* linux/alpha/syscallent.h: Likewise.
	* linux/hppa/syscallent.h: Likewise.
	* linux/ia64/syscallent.h: Likewise.
	* linux/powerpc/syscallent.h: Likewise.
	* linux/s390/syscallent.h: Likewise.
	* linux/s390x/syscallent.h: Likewise.
	* linux/sparc/syscallent.h: Likewise.
	* linux/sparc64/syscallent.h: Likewise.
	* linux/sparc64/syscallent2.h: Likewise.
	* linux/x86_64/syscallent.h: Likewise.
	From Ulrich Drepper <drepper@redhat.com>.
	Fixes RH#134463.

	* resource.c (resources): Add RLIMIT_LOCKS, RLIMIT_SIGPENDING,
	and RLIMIT_MSGQUEUE, if defined.
	From Ulrich Drepper <drepper@redhat.com>.
	Fixes RH#133594.

	* net.c [HAVE_SENDMSG] (printcmsghdr): New function.
	(printmsghdr): Use it.
	From Ulrich Drepper <drepper@redhat.com>.
	Fixes RH#131689.

	* file.c (sprintmode): Add const to return type.
	(sprintfstype): Likewise.
	* signal.c (printsiginfo): Add a const.

2004-09-15  Roland McGrath  <roland@redhat.com>

	* linux/x86_64/syscallent.h: Use sys_waitid.

	* linux/syscallent.h: waitid takes 5 arguments, and is in TP category.
	* process.c (sys_waitid): Handle fifth argument (struct rusage *).

2004-09-11  Roland McGrath  <roland@redhat.com>

	* time.c (sys_clock_nanosleep): Print zero flags arg correctly.
	(sys_timer_settime): Likewise.
	(printsigevent): Print signals by name for SIGEV_SIGNAL.
	(sys_timer_create): Print clock ID symbolically.
	From Ulrich Drepper <drepper@redhat.com>.
	Fixes RH#131420.

2004-09-07  Michal Ludvig  <mludvig@suse.cz>

	* defs.h (nioctlents1, nsignals2): Fix typos in decls.

2004-09-03  Roland McGrath  <roland@redhat.com>

	* syscall.c (qual_options): Add const to defn.
	Update all uses.
	(call_count, error_count, tv_count): Variables removed.
	(struct call_counts, counts): New type and variable.
	Update all users of the old three to use the new array of structs.
	(trace_syscall): Allocate counts on first use.
	(sorted_count): Variable removed.
	(call_summary): Allocate locally.

	* syscall.c (sysent0, sysent1, sysent2, sysent): Add const to defn.
	(nsyscalls0, nsyscalls1, nsyscalls2): Likewise.
	(errnoent0, errnoent1, errnoent2, errnoent): Likewise.
	(nerrnos0, nerrnos1, nerrnos2): Likewise.
	* signal.c (signalent0, signalent1, signalent2): Likewise.
	(nsignals0, nsignals1, nsignals2): Likewise.
	(signame): LIkewise.
	* ioctl.c (ioctlent0, ioctlent1, ioctlent2): Likewise.
	(nioctlents0, nioctlents1, nioctlents2): Likewise.
	(ioctl_lookup, ioctl_next_match): Likewise.
	* defs.h: Update decls.
	* io.c (sys_ioctl): Update users.

	* util.c (xlookup, printxval, addflags, printflags): Use const for
	struct xlat * argument.
	* defs.h (xlookup, printxval, addflags, printflags): Update decls.
	* bjm.c: Add const to all struct xlat defns.
	* desc.c: Likewise.
	* file.c: Likewise.
	* ipc.c: Likewise.
	* mem.c: Likewise.
	* net.c: Likewise.
	* proc.c: Likewise.
	* process.c: Likewise.
	* resource.c: Likewise.
	* signal.c: Likewise.
	* sock.c: Likewise.
	* stream.c: Likewise.
	* system.c: Likewise.
	* term.c: Likewise.
	* time.c: Likewise.
	* util.c: Likewise.

2004-09-01  Roland McGrath  <roland@redhat.com>

	* linux/x86_64/syscallent.h: Add new entries for timer_*, clock_*, and
	mq_* syscalls, and names only for new calls up to 252.
	* linux/syscallent.h: Add waitid.
	* linux/x86_64/syscallent.h: Likewise.
	* linux/syscall.h: Declare sys_waitid.

	* process.c (internal_wait): Take second arg giving index of flags
	argument.
	* defs.h: Update prototype.
	* syscall.c (internal_syscall): Update caller.
	Also use internal_wait for SYS_waitid.
	* process.c (sys_waitid): Define for [LINUX] as well.
	Don't tweak TCB_SUSPENDED--internal_wait does that.
	(waitid_types): Conditionalize use of nonstandard P_* macros.

2004-08-31  Roland McGrath  <roland@redhat.com>

	* configure.ac, NEWS: Version 4.5.7.
	* debian/changelog: 4.5.7-1.
	* strace.spec: 4.5.7-2.

	* debian/rules: Rewrite sparc64 change of 2004-07-12.
	Always do each build in a separate build directory.
	Fixes Debian bug #254728.

	* time.c (clocknames): Use #ifdef around CLOCK_* uses.

	* strace.1: Say that -c shows system CPU time, not real time.
	Fixes Debian bug #254438.

	* syscall.c (dumpio): Match pread and pwrite system calls too.
	Fixes Debian bug #239947.

	* net.c (sockoptions): Add all SO_* macros known in Linux 2.6.9.
	Fixes Debian bug #171653.

2004-07-12  Dmitry V. Levin  <ldv@altlinux.org>

	* signal.c [LINUX] (parse_sigset_t): Fix hex strings parser.
	Fixes RH#128091.

2004-08-30  Roland McGrath  <roland@redhat.com>

	* strace.c (main): Don't call fake_execve under -c.
	From Ulrich Drepper <drepper@redhat.com>.
	Fixes RH#129166.

	* net.c (sockipoptions): Add some options.
	[SOL_IPV6] (sockipv6options): New variable.
	(sys_getsockopt, printsockopt): Use it for SOL_IPV6 level.
	From Ulrich Drepper <drepper@redhat.com>.
	Fixes RH#128391.

	* time.c (clocknames): New variable, symbolic names for clock_t.
	(sys_clock_settime, sys_clock_gettime, sys_clock_nanosleep): Use it.
	From Ulrich Drepper <drepper@redhat.com>.
	Fixes RH#129378.

	* system.c (personality_options): Hard-code values here.
	Don't #include <linux/personality.h> at all.
	Fixes RH#130965 and Debian bug #40588.

	* file.c (print_xattr_val): New function to show attribute values.
	(sys_setxattr, sys_fsetxattr, sys_getxattr, sys_fgetxattr): Use it.
	From Ulrich Drepper <drepper@redhat.com>.
	Fixes RH#131177.

2004-07-12  Roland McGrath  <roland@redhat.com>

	* configure.ac, NEWS: Version 4.5.6.
	* strace.spec, debian/changelog: 4.5.6-1.

	* Makefile.am (EXTRA_DIST): Add linux/sparc64 files.

	* debian/rules: On sparc-linux, build strace64 as well.
	From Ben Collins <bcollins@debian.org>.
	Fixes Debian bug #254728.

2004-07-07  David S. Miller  <davem@nuts.davemloft.net>

	* linux/sparc/syscallent.h: Sync with reality.
	* linux/sparc/syscall.h (sys_sendfile64, sys_futex, sys_gettid,
	sys_sched_setaffinity, sys_sched_getaffinity, sys_setxattr,
	sys_lsetxattr, sys_fsetxattr, sys_getxattr, sys_lgetxattr,
	sys_fgetxattr, sys_listxattr, sys_llistxattr, sys_flistxattr,
	sys_removexattr, sys_lremovexattr, sys_fremovexattr,
	sys_remap_file_pages, sys_readahead, sys_tgkill, sys_statfs64,
	sys_fstatfs64, sys_clock_settime, sys_clock_gettime,
	sys_clock_getres, sys_clock_nanosleep, sys_timer_create,
	sys_timer_settime, sys_timer_gettime): New declarations.
	* linux/sparc64/dummy2.h, linux/sparc64/syscallent2.h,
	linux/sparc64/syscall.h, linux/sparc64/errnoent.h,
	linux/sparc64/errnoent1.h, linux/sparc64/errnoent2.h,
	linux/sparc64/ioctlent.h, linux/sparc64/ioctlent1.h,
	linux/sparc64/ioctlent2.h, linux/sparc64/signalent.h,
	linux/sparc64/signalent.h, linux/sparc64/signalent.h,
	linux/sparc64/signalent1.h, linux/sparc64/signalent2.h,
	linux/sparc64/syscall1.h, linux/sparc64/syscallent.h,
	linux/sparc64/syscallent1.h: New files.
	* defs.h (LINUXSPARC): Define also when SPARC64.
	(LINUX && SPARC64): Set SUPPORTED_PERSONALITIES to 3.
	Ignore SIGTRAP after execve by defining TCB_WAITEXECVE.
	Define possibly missing __NR_exit_group.  Declare getrval2.
	* configure.ac (sparc64): New architecture case.
	* file.c (stat_sparc64): New structure.
	(printstat_sparc64): New output routine for that.
	(printstat): Call it, if personality is 2.
	(printstat64): Likewise.
	* util.c: Conditionalize ptrace defines on LINUXSPARC
	not LINUX && SPARC.
	(SPARC64 && LINUX): Define r_pc to r_tpc, and PTRACE_FOOREGS
	to PTRACE_FOOREGS64 so that more sparc code can be shared
	between 64-bit and 32-bit.
	(_hack_syscall5): Correct trap number when SPARC64.
	(PTRACE_WRITE{TEXT,DATA}): Add SPARC64 to ifdef guard.
	(getpc): Handle SPARC64 && LINUX.
	(printcall): Likewise.
	(arg fetching/setting): Use same code for SPARC64 LINUX
	as for SPARC.
	(setbpt): Handle SPARC64 && LINUX.
	(clearbpt): Likewise.
	* signal.c: Conditionalize ptrace defines on SPARC and
	SPARC64.
	(SPARC64 && LINUX): Define r_pc to r_tpc, and PTRACE_FOOREGS
	to PTRACE_FOOREGS64 so that more sparc code can be shared
	between 64-bit and 32-bit.
	(m_siginfo): Use same definition on SPARC64 as SPARC.
	(sys_sigreturn): Handle LINUX && SPARC64.
	* syscall.c: Conditionalize ptrace defines on SPARC and
	SPARC64.
	(SPARC64 && LINUX): Define r_pc to r_tpc, and PTRACE_FOOREGS
	to PTRACE_FOOREGS64 so that more sparc code can be shared
	between 64-bit and 32-bit.
	(getscno): Use same static state on SPARC64 as SPARC,
	and add SPARC64 handling.
	(get_error): Handle LINUX && SPARC64.
	(force_result): Likewise.
	(syscall_enter): Likewise.
	(trace_syscall): Handle sys_socketcall and sys_ipc on SPARC64
	just like SPARC.
	(getrval2): Handle LINUX && SPARC64.
	* process.c: Conditionalize ptrace defines on SPARC and
	SPARC64.
	(SPARC64 && LINUX): Define r_pc to r_tpc, and PTRACE_FOOREGS
	to PTRACE_FOOREGS64 so that more sparc code can be shared
	between 64-bit and 32-bit.
	(change_syscall): Handle LINUX && SPARC64.
	(struct_user_offsets): Ifdef out those which do not exist
	on SPARC64.
	* net.c (sys_pipe): Handle LINUX && SPARC64.
	* ioctl.c: Fix initializer typo for nioctlents2, was
	nioctlents1 by accident.

2004-06-28  Andreas Schwab  <schwab@suse.de>

	* process.c (internal_exec): Move TCB_WAITEXECVE handling here.
	(sys_execve): Remove it here.

2004-07-12  Roland McGrath  <roland@redhat.com>

	* Makefile.am (EXTRA_DIST): Add linux/sh64/syscallent.h.

	* debian/control (Section): Move to utils, matching Debian override.

	* net.c (addrfams): Make variable global.
	* sock.c (sock_ioctl): Decode the arguments for SIOCGIFNAME,
	SIOCGIFINDEX, and SIOCGIFCONF.
	From Ulrich Drepper <drepper@redhat.com>.
	Fixes RH#126917.

	* linux/ioctlsort.c: Add some #includes.
	[POWERPC]: Kludge out high bits.
	* linux/ia64/ioctlent.h: Regenerated using RHEL3 headers.
	* linux/powerpc/ioctlent.h: Likewise.

2004-07-11  Roland McGrath  <roland@redhat.com>

	* linux/ioctlent.sh: Replace asm with $asm in all places.

	* configure.ac: Add I386 as AM_CONDITIONAL.
	* Makefile.am [LINUX]: Add maintainer-mode rules to regenerate
	the ioctlent.h file.

2004-07-08  Roland McGrath  <roland@redhat.com>

	* resource.c (sys_quotactl): Truncate first argument to 32 bits, since
	that's what the kernel will do.

2004-07-07  Roland McGrath  <roland@redhat.com>

	* linux/ioctlent.sh: Take optional second argument to use as directory
	name in place of `asm'.

2004-06-27  Roland McGrath  <roland@redhat.com>

	* configure.ac, NEWS: Version 4.5.5.
	* strace.spec, debian/changelog: 4.5.5-1.

2004-06-22  Roland McGrath  <roland@redhat.com>

	* syscall.c (syscall_fixup) [LINUX && X86_64]: For 32-bit process,
	sign extend the low 32 bits of RAX to 64 bits.
	Fixes RH#126547.

	* syscall.c (force_result): [LINUX && X86_64]: Fix RAX*4 -> RAX*8.

2004-06-03  Roland McGrath  <roland@redhat.com>

	* configure.ac, NEWS: Version 4.5.4.
	* strace.spec, debian/changelog: 4.5.4-1.

	* net.c (domains): Add many PF_* values #ifdef PF_*.
	(addrfams): Add many AF_* values #ifdef AF_*.
	Fixes Debian bug #250506.

2004-05-02  Dmitry V. Levin  <ldv@altlinux.org>

	* linux/ioctlsort.c (compare): When ioctl codes equal, compare
	names.
	(main): Print a note that program output is generated by
	ioctlsort.
	* linux/ioctlent.sh: Build the list of ioctls defined in
	linux/fb.h (0x46..), linux/kd.h (0x4B..), linux/cdrom.h (0x53..),
	asm/ioctls.h (0x54..), linux/vt.h (0x56..), linux/videotext.h
	(0x71..), linux/videotext.h (0x72..), asm/sockios.h (0x89..),
	linux/sockios.h (0x89..), linux/wireless.h (0x8B..).
	* linux/ioctlent.h: Regenerated from linux-2.6.5.
	Fixes RH#122257.

2004-06-03  Roland McGrath  <roland@redhat.com>

	* debian/control (Architecture): Add amd64.
	Fixes Debian bug #246568.

	* strace.c (main) [LINUX]: Expand TCBTAB as necessary for threads
	attached.  Attach threads only under -f.  Set TCB_FOLLOWFORK in them.
	(expand_tcbtab): New function, broken out of ...
	* process.c (fork_tcb): ... here, call that.
	* defs.h: Declare expand_tcbtab.

2004-04-19  Roland McGrath  <roland@redhat.com>

	* process.c (printstatus): Add a space before | in output.

2004-04-16  Roland McGrath  <roland@redhat.com>

	* configure.ac: Version 4.5.3.
	* strace.spec, debian/changelog: 4.5.3-1.

2004-03-18  Dmitry V. Levin  <ldv@altlinux.org>

	* resource.c (sys_quotactl) [LINUX]: Cast arithmetic shift operand
	from long to unsigned long, to fix output of the quotactl command
	parser.
	Fixes RH#118694.

2004-04-16  Roland McGrath  <roland@redhat.com>

	* linux/s390/ioctlent.h, linux/s390x/ioctlent.h: Update DASD ioctls.
	From Maxim Shchetynin <maxim@de.ibm.com>.

	* configure.ac: Check for <mqueue.h>.
	* ipc.c (sys_mq_open, printmqattr) [! HAVE_MQUEUE_H]: Don't try to
	decode struct mq_attr.
	* NEWS: Mention mq support.

	* linux/syscall.h: Support new mq_* syscalls on Linux.
	* linux/syscallent.h: Likewise.
	* linux/dummy.h: Likewise.
	* ipc.c: Likewise.
	* time.c (printsigevent): Handle SIGEV_THREAD.
	From Ulrich Drepper <drepper@redhat.com>.
	Fixes RH#120701.

2004-04-13  Roland McGrath  <roland@redhat.com>

	* net.c (msg_flags): Grok MSG_FIX, MSG_SYN, MSG_RST, MSG_NOSIGNAL,
	MSG_MORE.
	From Ulrich Drepper <drepper@redhat.com>.
	Fixes RH#120541.

	* process.c (printstatus): Mask out bits presented symbolically, and
	print "| 0xnnn" if the remaining bits are not all zero.
	Fixes Debian bug #240062.

	* process.c (print_affinitylist): Rewritten to handle indirect values.
	(sys_sched_setaffinity, sys_sched_getaffinity): Update callers.
	From Ulrich Drepper <drepper@redhat.com>.
	Fixes RH#118685.

	* acinclude.m4: Quote first argument to AC_DEFUN in all cases.

2004-04-08  Roland McGrath  <roland@redhat.com>

	* strace.c (main) [LINUX]: When attaching for -p, look in
	/proc/PID/task for all threads and attach them as presumed
	CLONE_THREAD children.
	* NEWS: Mention the feature.
	Fixes RH#120462.

2004-03-02  Roland McGrath  <roland@redhat.com>

	* util.c (setbpt): Fix one missed spot to use new arg0_index macro.
	From Michael Holzheu <HOLZHEU@de.ibm.com>.

	* debian/control (Standards-Version): Update to 3.6.1.

2004-03-01  Roland McGrath  <roland@redhat.com>

	* configure.ac, NEWS: Version 4.5.2.
	* strace.spec, debian/changelog: 4.5.2-1.

	* strace.c (main): Avoid potential buffer overruns from ludicrous
	arguments or PATH values.
	* syscall.c (qual_signal): Bail out for too-long string.

	* mem.c [LINUX]: <asm/mman.h> -> <linux/mman.h>
	Fixes Debian bug #223207.

	* linux/sparc/syscall.h: Copy linux/syscall.h decls of sys_sched_*.

	* configure.ac: Check for `struct user_desc' in <asm/ldt.h>.
	* process.c [HAVE_STRUCT_USER_DESC]: Use struct user_desc in place of
	struct modify_ldt_ldt_s.
	* mem.c [HAVE_STRUCT_USER_DESC]: Likewise.

	* system.c (sysctl_vm): Conditionalize VM_* macro uses, add some more.
	From Tim Yamin <plasmaroo@gentoo.org>.

	* process.c (sys_execve): Clear instead of set TCB_WAITEXECVE on
	erring syscall.

	* configure.ac: Check for `struct pt_all_user_regs'
	and `struct ia64_fpreg' in <sys/ptrace.h>.
	* util.c, process.c, syscall.c, signal.c: Work around conflicts between
	<sys/ptrace.h> and <linux/ptrace.h> for defining those types.

	* process.c (struct_user_offsets) [LINUX && IA64]: Conditionalize
	PT_AR_CSD and PT_AR_SSD uses in case of older kernel headers.

	* util.c [LINUX] (arg0_index, arg1_index): New macros.
	[S390 || S390X]: Define them with inverted values.
	(setbpt): Use them for u_arg indices.

2004-02-26  Andreas Schwab  <schwab@suse.de>

	* defs.h [LINUX && IA64]: Declare getrval2 also on IA64.
	* net.c (sys_pipe) [LINUX && IA64]: For IA64 use the two return values.
	* syscall.c (getrval2) [LINUX && IA64]: Implement for IA64.

2004-03-01  Roland McGrath  <roland@redhat.com>

	* linux/dummy.h (sys_sched_getscheduler, sys_sched_setparam,
	sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler,
	sys_sched_get_priority_max, sys_sched_get_priority_min): Remove macros.
	* process.c [LINUX] (sys_sched_getscheduler, sys_sched_setparam,
	sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler,
	sys_sched_get_priority_min): New functions.
	From Ulrich Drepper <drepper@redhat.com>.
	Fixes RH#116990.

2004-02-20  Roland McGrath  <roland@redhat.com>

	* linux/hppa/syscallent.h: Update some syscalls.
	From Randolph Chung <tausq@debian.org>.
	Fixes Debian bug #231632.

2003-12-31  David Mosberger  <davidm@hpl.hp.com>

	* process.c (internal_exit): For ia64, also recognize IA-32 252
	as exit_group().
	(change_syscall): For IA64, also support changing IA-32 syscalls.
	* syscall.c (internal_syscall): For IA64, also recognize IA-32
        syscall 252 (exit_group) as an internal_exit() syscall.
	* util.c (SYS_fork): For IA64, define them to the IA-32 syscall
	number.
	(SYS_vfork): Likewise.
	(arg_setup): For IA64 version, also support IA-32 syscalls.
	(get_arg0): Likewise.
	(get_arg1): Likewise.
	(set_arg0): Likewise.
	(set_arg1): Likewise.

2004-02-15  Anton Blanchard  <anton@samba.org>

	* linux/powerpc/syscallent.h: Add rtas call.
	Shift multiplexed syscalls to start at 300, we are already about
	to hit 256 real syscalls.
	* linux/syscall.h: SYS_socket_subcall is now 300 for [POWERPC].

2004-02-19  Roland McGrath  <roland@redhat.com>

	* strace.c (main): Use TCP->pid, not PID, in -p message.
	Fixes Debian bug #229802.

2004-01-13  Roland McGrath  <roland@redhat.com>

	* syscall.c (force_result) [LINUX] [S390 || S390X]: Remove bogus upeek
	call.

	* stream.c (internal_stream_ioctl): Fix typo strict -> struct.
	Reported by Petter Reinholdtsen <pere@hungry.com>.

2003-12-31  David Mosberger  <davidm@hpl.hp.com>

	* process.c (struct_user_offsets) [IA64]: Fix up register name list.

2003-12-14  Anton Blanchard  <anton@samba.org>

	* file.c (sys_getdents64): Don't cast d_ino and d_off to unsigned long.
	Use %llu formats for them.

	* file.c [LINUX] (fsmagic): Add SYSFS_MAGIC.

	* linux/powerpc/syscallent.h: Update to include recently added
	syscalls.

	* syscall.c (get_error) [POWERPC]: Cast result to unsigned long for
	ppc64, we were misreporting syscalls that really succeeded as having
	failed.

2004-01-13  Roland McGrath  <roland@redhat.com>

	* strace.1: Remove comment about vfork on Linux.
	Fixes Debian bug #223390.

	* file.c (direnttypes): Define under [LINUX] as well.  Add DT_UNKNOWN.
	(sys_getdents64) [LINUX]: Print d_type field.

2003-12-15  Dmitry V. Levin  <ldv@altlinux.org>

	* strace.c (trace) [WCOREDUMP]: Show coredump status of the
	killed process if available.  Fixes RH#112117.

2003-11-13  Roland McGrath  <roland@redhat.com>

	* configure.ac, NEWS: Version 4.5.1.
	* strace.spec, debian/changelog: 4.5.1-1.

2003-09-06  Dmitry V. Levin  <ldv@altlinux.org>

	* defs.h (ioctl_lookup): Prototype change.
	* ioctl.c (ioctl_next_match): New function.
	* defs.h: Declare it.
	* io.c (sys_ioctl): Use it, to display all possible ioctl names
	when there's more than one match.
	* ioctl.c (ioctl_lookup): Likewise.
	* stream.c (internal_stream_ioctl): Likewise.
	Patch from Solar Designer <solar@openwall.com>.

2003-11-13  Roland McGrath  <roland@redhat.com>

	* linux/sh/syscallent.h: Use sys_setgroups32, sys_getgroups32.
	* linux/sh64/syscallent.h: Likewise.

2003-09-06  Dmitry V. Levin  <ldv@altlinux.org>

	Fixes for RH#105359.
	* util.c (printuid): New function.
	* defs.h: Declare it.
	* file.c (sys_chown): Use it.
	* file.c (sys_fchown): Likewise.
	* process.c (sys_setreuid, sys_setregid, sys_setresuid,
	sys_setresgid): Likewise.
	* linux/syscallent.h: Better handle getgid32, geteuid32, getegid32,
	setreuid32, setregid32, getgroups32, setgroups32, fchown32,
	setresuid32, getresuid32, setresgid32, getresgid32, chown32,
	setuid32, setgid32, setfsuid32, setfsgid32.
	* process.c [LINUX]: Define GETGROUPS32_T.
	* process.c [LINUX] (sys_setgroups32, sys_getgroups32):
	New functions.
	* linux/syscall.h (sys_setgroups32, sys_getgroups32):
	Declare them.

2003-11-11  Roland McGrath  <roland@redhat.com>

	* strace.c (main): Bail with usage error for missing command before we
	open the -o file or fiddle uids.

2003-11-06  Roland McGrath  <roland@redhat.com>

	* strace.c (main): Treat piped output more like file output.
	Disallow -ff with piped output.  Fixes RH#105366.
	Reported by Dmitry V. Levin <ldv@altlinux.org>

	* strace.c (tprintf): Check result of vfprintf and use perror when it
	fails while not writing to stderr itself.  Fixes Debian bug #218762.

	* net.c (printsock): Fix typo in #ifdef AF_NETLINK.
	From Ulrich Drepper <drepper@redhat.com>.

2003-11-01  Roland McGrath  <roland@redhat.com>

	* syscall.c (trace_syscall) [LINUX]: Calculate ONE_TICK once using
	setitimer rather than hard-coding a value based on HZ.
	Fixes RH#108012, reported by Florian La Roche <laroche@redhat.com>.

2003-10-21  Roland McGrath  <roland@redhat.com>

	* strace.1: Fixed a few spelling errors.
	Fixes Debian bug #217008.

	* syscall.c: Revert last change, was broken.

2003-10-01  Roland McGrath  <roland@redhat.com>

	* process.c (internal_clone): Don't suspend parent when call requested
	a specific PID that is not a traced child.

	* signal.c [LINUX] (parse_sigset_t): Rewrite to process hex strings
	from right to left so we don't have to presume the size.
	Reported by David Woodhouse <dwmw2@redhat.com>.

2003-09-25  Roland McGrath  <roland@redhat.com>

	* mem.c (mmap_prot) [PROT_SEM, PROT_GROWSDOWN, PROT_GROWSUP]: Include
	these in the table if they are defined.

2003-09-24  Roland McGrath  <roland@redhat.com>

	* configure.ac, NEWS: Version 4.5.
	* strace.spec, debian/changelog: 4.5-1.

	* syscall.c (get_scno) [LINUX] [S390 || S390X]: Bail out of
	instruction decoding branch if TCB_INSYSCALL is clear.
	Reported by <jochen@penguin-breeder.org>.

	* linux/ioctlent.h: Swap order of overloaded TC* and SNDCTL_* values.

2003-09-23  Roland McGrath  <roland@redhat.com>

	* strace.spec: On ppc64 (maybe others later), create an strace64
	package as well containing just /usr/bin/strace64.

	* signal.c (sprintsigmask): Print RT_%u for __SIGRTMIN..__SIGRTMAX.
	Fixes RH#104365.

2003-08-21  Roland McGrath  <roland@redhat.com>

	* linux/syscallent.h: Fix mlock argument count.  Fixes RH#101499.
	* linux/x86_64/syscallent.h: Likewise.
	* linux/s390/syscallent.h: Likewise.
	* linux/s390x/syscallent.h: Likewise.

2003-07-28  Daniel Jacobowitz  <drow@mvista.com>

	* defs.h (ALIGN64): Define for MIPS.
	* io.c (PREAD_OFFSET_ARG): Define.
	(sys_pread, sys_pwrite): Use it.
	* process.c (struct_user_offsets) [SH]: Check whether REG_XDREG0
	is defined.
	* linux/sh/syscallent.h (pread, pwrite): Take six arguments.
	(truncate64, ftruncate64): Pretty-print.
	* linux/mips/syscallent.h (pread, pwrite): Take six arguments.
	(truncate64, ftruncate64): Take four arguments.

2003-07-17  Roland McGrath  <roland@redhat.com>

	* configure.ac, NEWS: Version 4.4.99.
	* strace.spec, debian/changelog: 4.4.99-1.

2003-07-15  Anton Blanchard  <anton@samba.org>

	* ipc.c: Add SHM_HUGETLB field.
	Mask out permission bits in msgget, semget and shmget before
		printing resource_flags.
	Mask execute permission bits (even though we dont currently
		use them).

2003-07-17  Roland McGrath  <roland@redhat.com>

	* linux/powerpc/syscallent.h (tgkill): New at 250.

	* linux/syscallent.h: truncate64/ftruncate64 need 3 args.
	From Ulrich Drepper <drepper@redhat.com>.

	* linux/syscallent.h: Handle statfs64, fstatfs64, utimes.
	* file.c (printstatfs): Print f_fsid and f_frsize.
	[LINUX] (printstatfs64, sys_statfs64, sys_fstatfs64): New functions.
	* linux/syscall.h: Add decls.
	From Ulrich Drepper <drepper@redhat.com>.

2003-07-09  Roland McGrath  <roland@redhat.com>

	* linux/ia64/syscallent.h (tgkill): New at 1235.

2003-07-05  Richard Henderson  <rth@twiddle.net>

	* process.c (sys_clone): Order arguments for alpha the same as x86_64.
	* syscall.c (ERESTART_RESTARTBLOCK): New.
	(trace_syscall): Print it.
	* linux/alpha/syscallent.h (osf_syscall): Name properly.
	(osf_set_program_attributes): Fix typo.
	(osf_nfssvc): Likewise.
	(osf_sigsendset): Likewise.
	(getdents64, gettid, readahead, tkill, setxattr, lsetxattr, fsetxattr,
	getxattr, lgetxattr, fgetxattr, listxattr, llistxattr, flistxattr,
	removexattr, lremovexattr, fremovexattr, futex, sched_setaffinity,
	sched_getaffinity, tuxcall, io_setup, io_destroy, io_getevents,
	io_submit, io_cancel, exit_group, lookup_dcookie, epoll_create,
	epoll_ctl, epoll_wait, remap_file_pages, set_tid_address,
	restart_syscall, fadvise, timer_create, timer_settime, timer_gettime,
	timer_getoverrun, timer_delete, clock_settime, clock_gettime,
	clock_getres, clock_nanosleep, semtimedop): New.

2003-07-08  Roland McGrath  <roland@redhat.com>

	* signal.c (sys_tgkill): New function.
	* linux/syscall.h: Declare it.
	* linux/syscallent.h: Add tgkill.

2003-06-27  Roland McGrath  <roland@redhat.com>

	* configure.ac: Check for type `struct __old_kernel_stat'.
	* file.c (convertoldstat, printoldstat): Define under
	[LINUX && HAVE_STRUCT___OLD_KERNEL_STAT] rather than a list of archs.
	(sys_oldstat, sys_oldfstat, sys_oldlstat): Likewise.
	* linux/dummy.h [! HAVE_STRUCT___OLD_KERNEL_STAT]
	(sys_oldstat, sys_oldfstat, sys_oldlstat): #define to printargs.

2003-06-26  Roland McGrath  <roland@redhat.com>

	* configure.ac: SHMEDIA -> SH64
	* defs.h: Likewise.
	* mem.c: Likewise.
	* process.c: Likewise.
	* sock.c: Likewise.
	* syscall.c: Likewise.
	* util.c: Likewise.
	* linux/shmedia/syscallent.h: Moved to ...
	* linux/sh64/syscallent.h: ... here.

	* config.guess: Update from canonical version, timestamp 2003-06-17.
	* config.sub: Likewise.

	* syscall.c (force_result) [LINUX] [ARM]: Fix variable usage.
	From: Joshua Neal <tinara@netpipeline.net>.

	* process.c [LINUX] (sys_futex): Grok FUTEX_REQUEUE and print 5th arg.
	* linux/syscallent.h: sys_futex argument count is now 5, not 4.
	* linux/ia64/syscallent.h: Likewise.
	* linux/powerpc/syscallent.h: Likewise.
	* linux/s390/syscallent.h: Likewise.
	* linux/s390x/syscallent.h: Likewise.
	* linux/x86_64/syscallent.h: Likewise.
	From Jakub Jelinek <jakub@redhat.com>.

	* syscall.c (get_scno) [S390 || S390X]: Fix old vs new mode detection.
	From Michael Holzheu <HOLZHEU@de.ibm.com>.

2003-06-23  Roland McGrath  <roland@redhat.com>

	* net.c (sys_socket): Decode protocol for PF_INET6 same as PF_INET.
	From Ulrich Drepper <drepper@redhat.com>.

2003-06-10  Roland McGrath  <roland@redhat.com>

	* configure.ac, NEWS: Version 4.4.98.
	* strace.spec, debian/changelog: 4.4.98-1.

2003-06-09  Roland McGrath  <roland@redhat.com>

	* linux/s390x/syscallent.h: Update many syscalls.
	* linux/syscall.h (SYS_socket_subcall): Update [S390X] value.

	* linux/s390/syscallent.h: Update many syscalls.
	* linux/syscall.h (SYS_socket_subcall): Update [S390] value.

	* linux/shmedia/syscallent.h: New file.
	From Stephen Thomas <stephen.thomas@superh.com>.

	* strace.c (trace): Print a message and newline for a WIFEXITED report
	from the process we just printed an unterminated syscall line for.

2003-06-03  Roland McGrath  <roland@redhat.com>

	* util.c (printcall) [LINUX]: Fix typo [IA62] -> [IA64].

	Linux/ARM improvements from Russell King <rmk@arm.linux.org.uk>:
	* defs.h [LINUX] (TCB_WAITEXECVE): Define for [ARM] too.
	* process.c (struct_user_offsets) [LINUX] [ARM]: Add ARM registers.
	* signal.c [LINUX] (sys_sigreturn) [ARM]: New case.
	* syscall.c (get_scno, syscall_fixup) [LINUX] [ARM]: Case rewritten.
	(get_error) [LINUX] [ARM]: Update.
	(syscall_enter) [LINUX] [ARM]: New case.
	* util.c (printcall) [LINUX] [ARM]: New case.

	* debian/control (Standards-Version): Update to 3.5.10.

	* strace.c (main): In PATH search, accept only a regular file with
	execute bits set.  Fixes Debian bug #137103.

2003-06-02  Roland McGrath  <roland@redhat.com>

	* strace.c (main): Set -q when given -o and not -p, and not when not
	given -o, to match what the man page always said.
	Fixes Debian bug #47113, #153678.

	* configure.ac, NEWS: Version 4.4.97.
	* strace.spec, debian/changelog: 4.4.97-1.

	* configure.ac, defs.h, mem.c, process.c, sock.c, syscall.c, util.c:
	Merged in SHmedia port from Stephen Thomas <stephen.thomas@superh.com>.

	* config.guess: Update from ftp://ftp.gnu.org/pub/gnu/config/,
	timestamp 2003-05-22.
	* config.sub: Likewise, timestamp 2003-05-24.

2003-05-22  Roland McGrath  <roland@redhat.com>

	* defs.h (struct tcb): New member `nzombies'.
	* strace.c (alloctcb): Initialize it.
	(droptcb): Increment our parent's zombie count.
	* process.c (internal_wait): Don't go into TCB_SUSPENDED if the
	process has zombies it can reap.  On the way out, if we reaped
	an untraced process, decrement the zombie count.

	* process.c (sys_clone): Mask CSIGNAL out of flags and print that
	separately using signame.

	* process.c (internal_clone) [TCB_CLONE_THREAD]: Use ARG_FLAGS instead
	of literal 0 for index.  Consult the right flags without clobbering
	anything when we reparent the new child to the caller's parent thread.

	* linux/s390/syscallent.h: Fix sys_clone argument count.
	* linux/s390x/syscallent.h: Likewise.
	* linux/mips/syscallent.h: Likewise.
	* linux/alpha/syscallent.h: Likewise.
	* linux/powerpc/syscallent.h: Likewise.
	* linux/sh/syscallent.h: Likewise.
	* linux/sparc/syscallent.h: Likewise.
	* linux/hppa/syscallent.h: Likewise.

	* process.c [LINUX] [S390 || S390X] (ARG_CTID, ARG_TLS): Fix swapped
	indices.  Reported by Jakub Jelinek <jakub@redhat.com>.

	* signal.c [LINUX] (SI_SIGIO, SI_TKILL): New macros.
	[LINUX || SVR4] (siginfo_codes): Add strings for them.

	* process.c (print_affinitylist): Fix loop condition.
	Reported by Ian Wienand <ianw@gelato.unsw.edu.au>.

2003-04-10  Roland McGrath  <roland@redhat.com>

	* syscall.c (qual_desc): Return zero after parsing number.
	From Rob Leslie <rob@mars.org>, fixes Debian bug #188379.

2003-04-07  Roland McGrath  <roland@redhat.com>

	* linux/syscallent.h: Handle semtimedop subcall of ipc syscall.
	* linux/syscall.h: Likewise.
	* ipc.c [LINUX] (sys_semtimedop): New function.
	From Ulrich Drepper <drepper@redhat.com>.

	* ipc.c (sys_semget): Mask off permission bits for resource_flags.
	From Ulrich Drepper <drepper@redhat.com>.

2003-04-01  Philippe De Muyter  <phdm@macqel.be>

	* sock.c, stream.c: Check #ifdef LINUX, not linux.
	* file.c: Always provide sys_*attr, regardless of #ifdef XATTR_CREATE.

2003-03-30  Roland McGrath  <roland@redhat.com>

	* configure.ac, NEWS: Version 4.4.96.
	* strace.spec, debian/changelog: 4.4.96-1.

2003-02-26  Stuart Menefy <stuart.menefy@st.com>

	Various fixes for SuperH [SH]:
	* mem.c (sys_old_mmap): mmap() parameters passed in registers
	* net.c (sys_pipe), syscall.c (getrval2): pipe() results returned
	in registers
	* process.c (change_syscall): Fixed register which holds system
	call number
	* util.c (arg0_offset, arg1_offset): provide definition
	* Makefile.am: Added new files in linux/sh
	* linux/sh/syscallent.h: New file.
	* linux/sh/errnoent.h: New file.
	* linux/sh/ioctlent.h: New file.
	* linux/sh/signalent.h: New file.

	* linux/ioctlent.sh: Take an arg for location of header files
	* syscallent.sh: Replaced lost $

2003-03-30  Roland McGrath  <roland@redhat.com>

	* time.c [LINUX]: Handle new Linux 2.5 clock/timer syscalls.
	* linux/syscall.h, linux/syscallent.h, linux/dummy.h: Likewise.
	From Ulrich Drepper <drepper@redhat.com>.

	* linux/syscallent.h: Use sys_getrlimit for 191.
	Use name "old_getrlimit" for 76.
	Reported by Ulrich Drepper <drepper@redhat.com>.

2003-03-18  Roland McGrath  <roland@redhat.com>

	* process.c [LINUX] (sys_clone): Don't dereference parent_tid argument.

2003-03-17  Roland McGrath  <roland@redhat.com>

	* linux/x86_64/syscallent.h: clone takes 5 args.
	* process.c [LINUX] (sys_clone) [X86_64]: Fix argument order.

2003-03-15  Roland McGrath  <roland@redhat.com>

	* linux/x86_64/syscallent.h: Add exit_group syscall at 231.

2003-03-14  Roland McGrath  <roland@redhat.com>

	* linux/x86_64/syscallent.h: Update and add many 2.5 syscalls.

	* linux/ia64/syscallent.h: clone takes 5 arguments.
	* process.c [LINUX && IA64] (ARG_*): Update for 2.5 clone calls.

2003-03-12  Roland McGrath  <roland@redhat.com>

	* linux/ia64/syscallent.h: Fix arg counts for clone and clone2.
	Use sys_clone for clone2.
	* linux/syscall.h: Don't declare sys_clone2.
	* process.c (sys_clone): Rewritten to handle both flavors,
	print all extra args depending on flag bits.
	(sys_clone2): Function removed.

	* linux/ia64/syscallent.h: Add a bunch of 2.5 syscalls.

2003-03-04  Roland McGrath  <roland@redhat.com>

	* syscall.c (get_scno) [IA64]: Do TCB_WAITEXECVE check only when
	TCB_INSYSCALL is clear, like other platforms do.

2003-03-04  Ulrich Drepper  <drepper@redhat.com>

	* mem.c [LINUX] (sys_remap_file_pages): New function.
	* linux/syscall.h: Declare it.
	* linux/syscallent.h: Use it.
	* linux/powerpc/syscallent.h: Likewise.

	* process.c [LINUX] (sys_futex): Omit final if op is not FUTEX_WAIT.

2003-02-26  Roland McGrath  <roland@redhat.com>

	* configure.ac: Fix typo in netinet/in.h check.
	Also include <sys/types.h> and <sys/socket.h> before <netinet/in.h>.
	Reported by Alex Semenyaka <alexs@snark.rinet.ru>.

2003-02-24  Roland McGrath  <roland@redhat.com>

	* configure.ac, NEWS: Version 4.4.95.
	* strace.spec, debian/changelog: 4.4.95-1.

	* process.c (sys_getresgid): Fix typos in argument access.

2003-02-23  Roland McGrath  <roland@redhat.com>

	* process.c (sys_getresuid): Fix typos in argument access.
	Reported by Anton Blanchard <anton@samba.org>.

2003-02-19  Roland McGrath  <roland@redhat.com>

	* configure.ac, NEWS: Version 4.4.94.
	* strace.spec, debian/changelog: 4.4.94-1.

	* version.c: Removed.
	* Makefile.am (strace_SOURCES): Remove it.
	* strace.c: Use PACKAGE_NAME and VERSION macros instead of version var.

	FreeBSD rfork support changes from Russ Cox <rsc@plan9.bell-labs.com>:
	* syscall.c (internal_syscall): Handle SYS_rfork with internal_fork.
	* process.c (internal_fork) [SYS_rfork]: Bail if RFPROC flag not set.

2003-01-23  Roland McGrath  <roland@redhat.com>

	* signal.c: Reorder #ifdefs so HAVE_ASM_SIGCONTEXT_H doesn't matter on
	SPARC, which doesn't use the header regardless.

	* util.c [LINUX && SPARC]: Do renaming kludges around <asm/reg.h>
	like signal.c does.

	* linux/sparc/syscall.h: Declare sys_getdents64, sys_llseek.

	* linux/dummy.h [! SYS_getpmsg] (sys_getpmsg): #define to printargs.
	[! SYS_putpmsg] (sys_putpmsg): Likewise.

	* process.c: Reorder includes to put sys/reg.h before linux/ptrace.h,
	since they can conflict.

2003-01-21  Roland McGrath  <roland@redhat.com>

	* strace.c (usage): Omit -z, since it has never worked properly.
	* NEWS: Likewise.

	* strace.c (main): Grok new option `-E var=val' or `-E var' to put
	var=val in environ or to remove var, respectively.
	(usage): Mention it.
	* strace.1, NEWS: Document it.

	* configure.ac, NEWS: Version 4.4.93.
	* strace.spec, debian/changelog: 4.4.93-1.
	* strace.spec (Source0): Use strace-VERSION.tar.bz2 now.

2003-01-20  Roland McGrath  <roland@redhat.com>

	* defs.h [LINUX] [S390 || S390X] (TCB_WAITEXECVE): Define it.
	* syscall.c (get_scno, syscall_fixup) [LINUX] [S390 || S390X]: Handle
	TCB_WAITEXECVE state with special kludges.

	* process.c [LINUX] (sys_clone) [S390 || S390X]: Argument order is
	reversed from other architectures.

	* process.c (sys_execve) [LINUX]: Make setting TCB_WAITEXECVE flag
	conditional on [TCB_WAITEXECVE] instead of list of processors.

	* util.c (restore_arg0): Evaluate args in no-op defns.

	* util.c [S390 || S390X] (arg0_offset, arg1_offset): Fix definitions
	for clone call on S390.  From Michael Holzheu <holzheu@de.ibm.com>.

2003-01-17  Anton Blanchard <anton@samba.org>

	* util.c [LINUX] (setbpt): Handle SYS_vfork like SYS_fork.

	* linux/syscall.h (SYS_socket_subcall): 256 also for POWERPC.

2003-01-14  Roland McGrath  <roland@redhat.com>

	* linux/powerpc/errnoent.h: Add missing errnos.
	* linux/powerpc/ioctlent.h: Update ioctl values.
	From Anton Blanchard <anton@samba.org>.

	* io.c [LINUX] (sys_pread, sys_pwrite): Fix last change.
	From Anton Blanchard <anton@samba.org>.

	* linux/hppa/syscallent.h: Use sys_getdents64, sys_truncate64,
	sys_ftruncate64, instead of printargs, for those syscalls.
	* linux/mips/syscallent.h: Likewise.
	* linux/powerpc/syscallent.h: Likewise.
	* linux/s390/syscallent.h: Likewise.
	* linux/sparc/syscallent.h: Likewise.

	* linux/syscall.h (SYS_socket_subcall): Only 256 for S390, S390X.
	All others at the moment use linux/syscallent.h, where it's 300.

	* strace.1: Update bug reporting info.

	* resource.c [LINUX] (quotacmds): Grok new command encodings.
	From Nathan Scott <nathans@debian.org>.

	* configure.ac, NEWS: Version 4.4.92.
	* strace.spec, debian/changelog: 4.4.92-1.

	* configure.ac: Match powerpc* (includes powerpc64), and don't match
	ppc (never comes out of config.sub).

	* process.c (sys_ptrace): Use #lx format for address argument.
	[POWERPC]: Use sizeof(unsigned long) in place of 4 for multipliers.
	* process.c [POWERPC]: Likewise.
	* signal.c (sys_sigreturn) [POWERPC]: Likewise.
	* syscall.c (get_scno) [POWERPC]: Likewise.
	* util.c [POWERPC]: Likewise.
	(printnum): Use long for NUM.
	From Anton Blanchard <anton@samba.org>.

	* defs.h (ALIGN64): Fix defn for PPC, same as FreeBSD one.

	* util.c [LINUX] (restore_arg0, restore_arg1): New macros, defined
	appropriately via set_arg0 or no-ops for each architecture.
	(clearbpt): Use those instead of set_arg0 and set_arg1.

	* defs.h [_LARGEFILE64_SOURCE] (_LFS64_LARGEFILE): Define it.
	* linux/syscallent.h: Use sys_getdents64, sys_truncate64,
	sys_ftruncate64, instead of printargs, for those syscalls.

	* process.c: Use <linux/ptrace.h> regardless of <sys/reg.h>.
	(sys_ptrace): Use printxval.
	(ptrace_cmds): Make PTRACE_GETREGS et al conditional on #ifdef PTRACE_*
	instead of only #ifdef SUNOS4.  Add PTRACE_[GS]ETFPXREGS.

	* ipc.c (PRINTCTL): New macro.  #ifdef IPC_64, factor out the flag and
	print it before using printxval.
	(sys_msgctl, sys_semctl, sys_shmctl): Use it.

2003-01-13  Roland McGrath  <roland@redhat.com>

	* config.guess: Update from ftp://ftp.gnu.org/pub/gnu/config/,
	timestamp 2003-01-10.
	* config.sub: Likewise, timestamp 2003-01-03.
	* install-sh: Update from Automake 1.7.2.

	* linux/powerpc/signalent.h: Add SIGRTMIN.
	From Anton Blanchard <anton@samba.org>.

	* linux/powerpc/syscallent.h: Add missing system calls.
	Decode more system calls, we were just printargs for many things.
	Remove some x86-specific system calls.
	Remove two syscalls between the socket and ipc syscalls,
	it was resulting in all IPC syscalls being off by two.

	* ioctl.c (ioctl_decode) [POWERPC]: Decode term ioctls like Alpha.
	From Anton Blanchard <anton@samba.org>.

	* defs.h [POWERPC] (UESP, EIP, EAX, ORIG_EAX): Remove this cruft.
	[LINUX && POWERPC && !__powerpc64__] (ALIGN64): New macro.
	* io.c (sys_pread, sys_pwrite): Use ALIGN64.
	From Anton Blanchard <anton@samba.org>.

	* term.c [LINUX]: Get kernel definition of struct termios.
	From Anton Blanchard <anton@samba.org>.

	* linux/ioctlent.sh: Look in sound/ directory too.
	From Anton Blanchard <anton@samba.org>.

	* desc.c (printflock64): Fix ADDR argument type.
	From Anton Blanchard <anton@samba.org>.

	* strace.c [! HAVE_STRSIGNAL]: Clean up #ifdefs on decls for
	sys_siglist and _sys_siglist.
	Reported by John Hughes <john@Calva.COM>.

	* net.c: HAVE_OPTHDR -> HAVE_STRUCT_OPTHDR
	Reported by John Hughes <john@Calva.COM>.

	* linux/syscall.h [ARM] (SYS_socket_subcall): Set to 300.

2003-01-10  Roland McGrath  <roland@redhat.com>

	* configure.ac, NEWS: Version 4.4.91.
	* strace.spec, debian/changelog: 4.4.91-1

	* util.c [LINUX && X86_64] (arg0_offset, arg1_offset): Use correct
	values for x86-64, conditional on current_personality.

	* strace.c (droptcb): Clear flags word before calling rebuild_pollv.

	* configure.ac: Check struct T_conn_res for QUEUE_ptr or ACCEPTOR_id.
	* stream.c (print_transport_message): Use #ifdefs for those members.

	* strace.c (rebuild_pollv): Fix typo: struct poll -> struct pollfd.

	* configure.ac: Fix siginfo_t/sig_atomic_t checks.
	Use prerequisite #include <netinet/in.h> for netinet/*.h checks.

	* strace.c (pfd2tcb): Fix for new tcbtab type.
	(rebuild_pollv): Likewise.
	(detach): Put variables used under [LINUX] inside #ifdef.

	* process.c (change_syscall) [POWERPC]: Add missing return.
	* util.c [POWERPC] (arg0_offset): Set to 4*PT_R3, not 4*PT_ORIG_R3.

	* strace.spec: New file.
	* debian/changelog: 4.4.90-1
	* debian/rules (binary-arch): Depend on build.
	(clean): Don't try to run Makefile.in.
	* debian/control (Standards-Version): Now 3.5.8.

	* configure.ac: Diddle CFLAGS after AC_PROG_CC, not before.

2003-01-09  Roland McGrath  <roland@redhat.com>

	* syscall.c (force_result) [S390 || S390X]: Fix typo.

	* debian/control: Update Maintainer: field.

2003-01-08  Roland McGrath  <roland@redhat.com>

	* NEWS: Update for 4.4.90 test release.

	Support for new Linux 2.5 thread features.
	* defs.h [LINUX]: Define __NR_exit_group if not defined.
	(struct tcb): New members nclone_threads, nclone_detached,
	and nclone_waiting.
	(TCB_CLONE_DETACHED, TCB_CLONE_THREAD, TCB_GROUP_EXITING): New macros.
	(waiting_parent): Macro removed.
	(pid2tcb): Declare it.
	* process.c (internal_clone) [TCB_CLONE_THREAD]: Reparent the new
	child to our parent if we are a CLONE_THREAD child ourselves.
	Maintain TCB_CLONE_THREAD and TCB_CLONE_DETACHED flags and counts.
	(internal_wait) [TCB_CLONE_THREAD]: Factor out detached children when
	determining if we have any.  If TCB_CLONE_THREAD is set, check
	parent's children instead of our own, and bump nclone_waiting count.
	(internal_exit) [__NR_exit_group]: Set the TCB_GROUP_EXITING flag if
	the syscall was exit_group.
	* syscall.c (internal_syscall): Use internal_exit for exit_group.
	* strace.c (pid2tcb): No longer static.
	(alloctcb) [TCB_CLONE_THREAD]: Initialize new fields.
	(droptcb) [TCB_CLONE_THREAD]: Maintain new fields.
	If we have thread children, set TCB_EXITING and don't clear the TCB.
	(resume) [TCB_CLONE_THREAD]: Decrement parent's nclone_waiting.
	(detach) [TCB_CLONE_THREAD]: When calling resume, check all thread
	children of our parent that might be waiting for us too.
	[TCB_GROUP_EXITING] (handle_group_exit): New function.
	(trace) [TCB_GROUP_EXITING]: Use that in place of detach or droptcb.

	Revamp -f support for Linux.
	* util.c [LINUX] (setbpt, clearbpt): New implementations that tweak
	the system call to be clone with CLONE_PTRACE set.  Various new static
	helper functions.
	* process.c (internal_clone): Define also #ifdef SYS_clone2.
	Initialize TCPCHILD->parent field.
	[CLONE_PTRACE]: Don't do PTRACE_ATTACH here, because it's preattached.
	Check in case the new child is in the tcb already.
	(internal_fork) [LINUX]: Just call internal_clone.
	* strace.c (trace) [LINUX]: Under -f/-F, grok an unknown pid
	reporting to wait, put it in the TCB with TCB_ATTACHED|TCB_SUSPENDED.

	* linux/x86_64/syscallent1.h (sys_oldlstat): #define as printargs.

	* file.c [LINUX]: #undef st_[amc]time in case they are macros.

	* Makefile.am (AM_CFLAGS): New variable, define to $(WARNFLAGS).

	* Makefile.am (EXTRA_DIST): Remove debian/postinst and debian/prerm.

2003-01-09  Wichert Akkerman  <wichert@deephackmode.org>

	* debian/postinst, debian/prerm: removed, /usr/doc symlink is no
	longer used
	* debian/rules: no longer install postinst and prerm
	* debian/control: do not end summary with full stop (lintian)

2002-12-30  Roland McGrath  <roland@redhat.com>

	* Makefile.am (bin_SCRIPTS): New variable, list strace-graph.
	(EXTRA_DIST): Add missing files.

	* configure.ac: Fix asm/sigcontext.h check to include prerequisite.

	* syscall.c (qualify_one): New function.
	(qual_options): Replace lookup field with qualify, update initializer.
	(qualify): Update caller.
	(qual_signal, qual_fault, qual_desc): Rewritten from lookup_*.
	(qual_syscall): Rewritten lookup_syscall, match name more than once.
	Fixes RH#70579, bites IA64 -efoo when foo exists on IA32.

	* version.c (version): Make const, bump to 4.4.90.
	* strace.c: Update decl.

	* Makefile.am [LINUX && X86_64]: Remove cruft.
	* linux/x86_64/errnoent1.h: New file.
	* linux/x86_64/ioctlent1.h: New file.
	* linux/x86_64/signalent1.h: New file.
	* linux/x86_64/syscallent1.h: New file.
	* linux/x86_64/i386-headers.diff: File removed.
	* linux/x86_64/makeheaders.sh: File removed.
	* linux/x86_64/Makefile.in: File removed.

	* linux/syscallent.h [X86_64]: Disable sanity checks, subcall stuff is
	already broken for 32-bit personality on x86-64.

2002-12-29  Roland McGrath  <roland@redhat.com>

	* configure.ac, Makefile.am: Punt subdirs, handle everything here.
	* linux/Makefile.am: File removed.
	* freebsd/Makefile.am: File removed.
	* sunos4/Makefile.in: File removed.
	* svr4/Makefile.in: File removed.

	* linux/alpha/Makefile.in: File removed.
	* linux/hppa/Makefile.in: File removed.
	* linux/ia64/Makefile.in: File removed.
	* linux/powerpc/Makefile.in: File removed.
	* linux/s390/Makefile.in: File removed.
	* linux/s390x/Makefile.in: File removed.

2002-12-26  Roland McGrath  <roland@redhat.com>

	* syscallent.sh: Grok three flavors of #define line, uniquify.
	* linux/hppa/syscallent.sh: File removed.
	* linux/powerpc/syscallent.sh: File removed.

	* linux/Makefile.am: New file.
	* linux/Makefile.in: File removed.
	* freebsd/Makefile.am: New file.
	* freebsd/i386/Makefile.am: New file.
	* freebsd/i386/Makefile.in: File removed.

2002-12-22  Roland McGrath  <roland@redhat.com>

	Update to Autoconf 2.57, and Automakify with version 1.7.
	* Makefile.am: New file.
	* Makefile.in: File removed.
	* configure.in: Moved to ...
	* configure.ac: ... here.  Update for Autoconf 2.5x and Automake.
	* aclocal.m4: Moved to ...
	* acinclude.m4: ... here.  Update for Autoconf 2.5x.
	* acconfig.h: File removed.
	* AUTHORS: New file, makes automake happy.
	* autogen.sh: File removed.
	* README-CVS: Update to recommend autoreconf instead.
	* file.c: HAVE_ST_* -> HAVE_STRUCT_STAT_ST_*.
	* net.c: HAVE_SIN6_SCOPE_ID -> HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID,
	HAVE_MSG_CONTROL -> HAVE_STRUCT_MSGHDR_MSG_CONTROL.
	* strace.c: *_DECLARED -> HAVE_DECL_*
	* stream.c: HAVE_* -> HAVE_STRUCT_*

	* linux/Makefile.in (ioctldefs.h ioctls.h): Use $(SHELL) instead of
	sh, and use $(srcdir) to find the script.
	* linux/powerpc/Makefile.in (ioctlent.raw): Find ioctlent.sh in ../.
	(ioctlsort.o): Use ../ioctlsort.c, not ../../ioctlsort.c.
	* linux/x86_64/Makefile.in (headers): Renamed to all.
	* linux/alpha/Makefile.in: Add empty install target.
	* linux/x86_64/Makefile.in: Likewise.
	* linux/powerpc/Makefile.in: Likewise.
	* linux/Makefile.in: Likewise.

2002-12-26  Roland McGrath  <roland@redhat.com>

	* defs.h [LINUX && MIPS] (MAX_QUALS): Set to 5000, not 4999.
	From Daniel Jacobowitz <drow@false.org>.

2002-12-21  Roland McGrath  <roland@redhat.com>

	* linux/syscallent.h: Add some new 2.5 syscall names.
	Now clone takes 5 args.
	* process.c [LINUX] (clone_flags): Update with 2.5 flag bits.
	[LINUX] (sys_clone): Print new args.
	* mem.c (print_ldt_entry): Make global.

	* linux/syscall.h [I386 || IA64] (SYS_socket_subcall): Bump to 300 for
	safety, since up to 260 are already used in 2.5 kernels.
	* linux/syscallent.h: Update the table.
	* linux/ia64/syscallent.h: Likewise.

	* syscall.c (force_result): New function.
	* process.c (internal_wait): Handle ECHILD exit from wait call with
	WNOHANG flag set; force the return value to 0 in the inferior when it
	has live children we are tracing.
	* NEWS: Mention the bug fix.

2002-12-17  Roland McGrath  <roland@redhat.com>

	* linux/ia64/syscallent.h: Remove placeholders 275-298 to catch up
	with linux/syscallent.h additions.

	* strace.c (tcbtab): Make this a pointer to pointers, not an array.
	(tcbtabsize): New variable.
	(main): Initialize them using dynamic allocation.
	(alloctcb, main): Use tcbtabsize in place of MAX_PROCS; indirect.
	(pid2tcb, cleanup): Likewise.
	[USE_PROCFS] (pollv): Make this a pointer, not an array; make static.
	(rebuild_pollv): Dynamically allocate the vector.
	* defs.h (tcbtab): Update decls.
	(MAX_PROCS): Macro removed, no more static limit on this.
	* process.c (fork_tcb): New function.
	(internal_clone, internal_fork): Use it instead of checking nprocs.

	* strace.c (detach) [LINUX]: Use __WALL (or a second try with __WCLONE)
	in wait after sending SIGSTOP.

2002-12-16  Roland McGrath  <roland@redhat.com>

	* signal.c (sprintsigmask): Increase static buffer size to account for
	worst possible case.  Reported by Daniel Jacobowitz <drow@false.org>.

	* process.c [LINUX] (wait4_options): Fix __WCLONE value.  Add
	__WNOTHREAD and __WALL.

	* strace.c (trace) [LINUX]: Only check errno if wait4 actually fails,
	so we don't repeat a wait and thus drop a status.  Fixes RH#62591.

2002-12-15  Roland McGrath  <roland@redhat.com>

	* process.c (setarg) [POWERPC]: Support it.

	* util.c [POWERPC] (LOOP): Fix value, now 0x48000000 (0: b 0b).
	Old value was bogus, not even a proper instruction.
	From Guy M. Streeter <streeter@redhat.com>.

	* strace.c (main) [! USE_PROCFS]: Always reset SIGCHLD to SIG_DFL.

	* configure.in: Don't check for putpmsg.
	* stream.c (sys_getpmsg, sys_putpmsg): Make these conditional on
	#ifdef SYS_*, rather than on HAVE_PUTPMSG.

	* aclocal.m4 (AC_STAT64): Include <linux/types.h> before <asm/stat.h>
	in test.  Test our own #ifdef LINUX rather than predefined `linux'.

	* linux/powerpc/syscallent.h: Use sys_llseek for _llseek.
	* linux/sparc/syscallent.h: Likewise.
	* linux/hppa/syscallent.h: Likewise.

	* syscall.c (syscall_enter) [LINUX && POWERPC]: Define PT_ORIG_R3 if
	not defined, since <asm/ptrace.h> defines it only #ifdef __KERNEL__.
	* process.c: Likewise.

	* desc.c (sys_osf_select): Add missing return type.

	* syscall.c (trace_syscall): Use strerror, not sys_errlist/sys_nerr.

	* linux/ia64/syscallent.h: Remove macros for sys_delete_module,
	sys_nanosleep, both already in linux/dummy.h.

	* syscall.c (get_scno): Move static `currpers' inside #ifdef X86_64.
	(trace_syscall): Fix return without value.

	* linux/syscallent.h: Update table with names of new syscalls
	io_setup, io_destroy, io_getvents, io_submit, io_cancel.
	* linux/ia64/syscallent.h: Likewise.
	* linux/powerpc/syscallent.h: Likewise.

	* signal.c [LINUX && I386]: Provide SA_RESTORER constant if not
	defined.  If the bit is set, print the sa_restorer field of sigaction.

	* mem.c: Add sys_{get,set}_thread_area.
	* linux/syscall.h: Declare them.
	* linux/syscallent.h: Update the table for these.
	* linux/dummy.h (sys_modify_ldt): Define only #ifndef I386.
	(sys_get_thread_area, sys_set_thread_area): New macros #ifndef I386.

	* configure.in: Check for linux/xattr.h and linux/futex.h headers.
	* linux/syscall.h: Add sys_* decls for new syscalls getpmsg, putpmsg,
	readahead, sendfile64, setxattr, fsetxattr, getxattr, fgetxattr, int
	listxattr, flistxattr, removexattr, fremovexattr, sched_setaffinity,
	sched_getaffinity, futex.
	* linux/syscallent.h: Update the table.
	* io.c: Add sys_sendfile64.
	* file.c: Add sys_readahead, sys_*xattr.
	* process.c: Add sys_futex, sys_*affinity.

	* linux/syscall.h (SYS_socket_subcall): Define to 256 on all machines.
	(SYS_ipc_subcall): Always SYS_socket_subcall + SYS_socket_nsubcalls.
	* linux/syscallent.h: Update the table for socket and ipc subcalls.

2002-11-09  Heiko Carstens <heiko.carstens@de.ibm.com>

	Bugfix for s390/s390x:
	* syscall.c: Fixed scno derivation for s390/s390x.

2002-11-06  Michal Ludvig  <mludvig@suse.cz>

	Merged patch from Steven J. Hill <sjhill@realitydiluted.com>
	to allow the compilation of a native MIPS strace.

2002-11-06  Michal Ludvig  <mludvig@suse.cz>

	From Marty Leisner <leisner@rochester.rr.com>,
	rewritten by mludvig:
	* strace.c (not_failing_only): New.
	(usage): Added -z switch description.
	(main): Added -z switch parsing to not_failing_only variable.
	* syscall.c (trace_syscall): Added not_failing_only handling.

2002-10-08  Heiko Carstens <heiko.carstens@de.ibm.com>

	Missing complete changelog for 2002-10-07 commit:
	* Makefile.in: Added linux/s390, linux/s390x to ALL_SUBDIRS.
	* acconfig.h: New define for s390x.
	* config.sub: Added missing define for s390 and new one for s390x.
	* configure.in: Added new define for s390x.
	* file.c: Added missing #undef dirent64 and new defines for s390x.
	* linux/s390: New directory.
	* linux/s390/Makefile.in: New file.
	* linux/s390/errnoent.h: New file.
	* linux/s390/ioctlent.h: New file.
	* linux/s390/signalent.h: New file.
	* linux/s390/syscallent.h: New file.
	* linux/s390x: New directoy.
	* linux/s390x/Makefile.in: New file.
	* linux/s390x/errnoent.h: New file.
	* linux/s390x/ioctlent.h: New file.
	* linux/s390x/signalent.h: New file.
	* linux/s390x/syscallent.h: New file.
	* linux/syscall.h: Added sys_mincore() prototype and added new
	s390x defines.
	* process.c: Added s390x defines.
	(change_syscall): Changed handling for s390.
	(setarg): Added missing s390/s390x code in setarg().
	* signal.c: Added s390x define.
	(sys_sigreturn): Bugfix in s390/s390x code (wrong number of
	arguments to sprintsigmask()).
	* stream.c (internal_stream_ioctl): Changed int cast to long cast,
	since printstr() expects a long.
	* syscall.c (decode_subcall): Changed several variables to be long
	instead of int to match 64 bit requirements. Added s390x defines.
	(syscall_enter): Changed upeek() call to match s390 and s390x
	requirements.
	* util.c: Added s390x defines.

2002-10-07  Michal Ludvig  <mludvig@suse.cz>

	Merged s390x port by Heiko Carstens <Heiko.Carstens@de.ibm.com>
	and bugfixes to s390 by D.J. Barrow.

2002-09-23  Michal Ludvig  <mludvig@suse.cz>

	Merged x86-64 port by Andi Kleen <ak@suse.de>
	and Michal Ludvig <mludvig@suse.cz>
	* Makefile.in: New target 'headers'. Failure ignored.
	* acconfig.h: New defines for x86-64.
	* configure.in: Ditto.
	* defs.h: Ditto.
	* file.c: Ditto.
	* signal.c: Ditto.
	* process.c: Added support for x86-64.
	* util.c: Ditto.
	* syscall.c: Ditto + added automatic personality switching.
	* linux/syscall.h: Ditto.
	* linux/x86_64: New directory.
	* linux/x86_64/Makefile.in: New file.
	* linux/x86_64/gentab.pl: Ditto.
	* linux/x86_64/i386-headers.diff: Ditto.
	* linux/x86_64/makeheaders.sh: Ditto.
	* linux/x86_64/syscallent.h: Ditto.
	* mem.c (print_mmap): Always print arg[4] as int.

2002-09-23  Michal Ludvig  <mludvig@suse.cz>

	* configure.in: Fix regular expressions.
	* linux/syscall.h: Added missing braces in prototype of
	sys_getdents64().
	* file.c: Use '#ifdef LINUX' instead of '#ifdef linux'.
	(struct fileflags): Made extern to inhibit compiation warnings.
	(sys_getdents64): Merged LINUX and SVR4 part.
	* syscall.c (get_scno): Split multiline string into two distinct
	strings.

2002-05-24  John Hughes <john@calva.com>

	* stream.h, net.h: Avoid possible infinite loop caused by
	unsigned arithmetic in preceeding change.

2002-05-23  John Hughes <john@calva.com>

	* acconfig.h: Add HAVE_OPTHDR and HAVE_T_OPTHDR defines.

	* aclocal.m4: Add tests for struct opthdr in sys/socket.h and
	struct t_opthdr in sys/tiuser.h, define HAVE_OPTHDR and HAVE_T_OPTHDR
	if found.

	* configure.in: use tests for struct opthdr and struct t_opthdr.

	* defs.h: add new function print_sock_optmgmt.

	* io.c: add hack that lets ioctl decode functions set auxilliary
	string return.

	* stream.c: better decoding for timod ioctls.

	* net.c: add function print_sock_optmgmt, used by timod ioctl
	decoding functions in stream.c.

2002-05-23  John Hughes <john@calva.com>

	* acconfig.h: Make autoheader happy about Linux/SuperH

2002-05-23  John Hughes <john@calva.com>

	* strace.c: Get rid of warning if not using POLL_HACK

2002-05-22  John Hughes <john@calva.com>

	* net.c: Simplify {get,set}sockopt, decode SO_LINGER, cope with
	options that are not just ints, cope with systems that don't
	#define SOL_TCP and so on.

2002-05-21  John Hughes <john@calva.com>

	* strace.c: Fix warning if POLL_HACK is used.

2002-05-17  John Hughes <john@calva.com>

	* svr4/ioctlent.sh: Some defines on UW come with too many spaces.

2002-05-17  John Hughes <john@calva.com>

	* svr4/ioctlent.sh: Cope with #defines wrapped in #ifdefs.

2002-05-17  John Hughes <john@calva.com>

	* stream.c: tidy up output a little.

2002-05-17  John Hughes <john@calva.com>

	* process.c, svr4/dummy.h, svr4/syscall.h: decode arguments
	to procpriv syscall.

2002-05-01  Wichert Akkerman <wichert@deephackmode.org>

	* configure.in, defs.h, process.c, sock.c, syscall.c, util.c: merge
	  patch from Greg Banks <gbanks@pocketpenguins.com> for Linux/SuperH
	  support

2002-04-01  Wichert Akkerman <wichert@deephackmode.org>

	* strace.c: close tcp->outf in droptcb()

2002-04-01  Wichert Akkerman <wichert@deephackmode.org>

	* net.c: decode packet options

2002-03-31  Wichert Akkerman <wichert@deephackmode.org>

	* linux/{alpha,hppa,ia64,mips,powerpc,sparc}/syscallent.h: regenerated

2002-03-31  Wichert Akkerman <wichert@deephackmode.org>

	* debian/*: added
	* linux/syscallent.h: fix typo and add the reserved stream syscalls
	* defs.h, file.c, io.c: fix signed/unsigned issues
	* syscall.c: check for negative u_errors
	* cvsbuild: renamed to autogen.sh

2001-12-17  Wichert Akkerman <wakkerma@debian.org>

	* net.c: add new TCP socket options

2001-10-26  John Hughes <john@calva.com>

	* svr4/ioctlent.sh: Cope with #define lines containing
	comments that terminate on subsequent lines.  Used to
	comment out subsequent ioctls!

2001-10-25  Wichert Akkerman <wakkerma@debian.org>

	* linux/ioctlent.h: regenerated using current scripts so
	  term ioctls are included

2001-10-19  John Hughes  <john@Calva.COM>

	* strace.c(proc_open): On SVR4 only trace the syscalls,
	signals and faults we care about.

2001-10-18  John Hughes  <john@Calva.COM>

	* acconfig.h: Add HAS_SIGINFO_T.
	* aclocal.m4: add check for siginfo_t in signal.h.
	* configure.in: use check for siginfo_t.
	* defs.h: if HAVE_SIGINFO_T the declare printsiginfo.  On SVR4
	  allow access to siginfo when signal recieved.
	* process.c: Remove SVR4 only version of printsiginfo.
	* signal.c: merge SVR4 and LINUX versions of printsiginfo.
	* strace.c: on SVR4 print siginfo when signal recieved.

2001-10-18  John Hughes  <john@Calva.COM>

	* system.c(sys_ssisys): handle return values for ssisys

2001-10-18  John Hughes  <john@Calva.COM>

	* signal.c: handle sigwait
	* svr4/dummy.c: Move sigwait to done
	* svr4/syscall.h: handle sigwait

2001-10-16  John Hughes  <john@Calva.COM>

	* system.c(sys_ssisys): decode some args for ssisys.

2001-10-16  John Hughes  <john@Calva.COM>

	* mem.c: MS_SYNC is zero, so must be first in xlat list.

	* svr4/dummy.h: memcntl is much like mctl.

2001-10-16  John Hughes  <john@Calva.COM>

	* util.c (umovestr): UnixWare (svr4?) returns 0 when trying
	to read unmapped page.  Make it possible to strace ksh.

2001-10-03  David Mosberger  <davidm@hpl.hp.com>

	* process.c (internal_clone): Avoid race condition by clearing
	breakpoint after attaching to child.

2001-10-02  David Mosberger  <davidm@hpl.hp.com>

	* linux/ia64/syscallent.h: Define ia32 syscall numbers (originally
	by Don Dugger, with my refinements).

	* linux/ia64/ioctlent.h: Regenerate and manually merge conflicting
	ioctls (TCGETS & SNDCTL_TMR_TIMEBASE, etc.).

	* linux/ia64/Makefile.in (ioctldefs.h ioctls.h): Update for
	new ioctlent.h generation scheme.

	* linux/syscall.h (sys_clone2): Declare.
	[IA64] Define ia32 socket, ipc, and extra syscall numbers.

	* linux/ioctlent.sh (regexp): Also handle <asm/ioctls.h> so we
	don't miss the tty ioctls (unfortunately, some of the sound timer
	ioctls are in conflict with them!).

	* util.c (setbpt) [IA64]: Add ia32 support (by Don Dugger).
	(clrbpt) [IA64]: Ditto.

	* syscall.c (internal_syscall): Handle SYS_clone2, SYS32_wait4,
	and SYS32_exit.
	(get_scno): Get ia32 syscall number from r1 (orig eax) instead of
	r8 (eax).  Handle TCB_WAITEXECVE.
	(syscall_fixup): Handle ia64.
	(syscall_enter): Fix argument fetching for ia64.

	* strace.c [IA64 && LINUX]: Include <asm/ptrace_offsets.h>.
	(trace) [PT_GETSIGINFO]: Print signal address and pc if possible.

	* process.c (tcp): New function.
	(change_syscall): Add support for ia64 linux.
	(sys_execve): Turn on TCB_WAITEXECVE for ia64 linux.

	* desc.c (getlk): Cast l_len to "long long" to avoid warnings when
	type is narrower.
	* resource.c (sprintrlim64): Ditto.

	* defs.h (TCB_WAITEXECVE) [IA64]: Define.
	[IA64]: Declare "ia32" variable.

	* bjm.c: Do not include <linux/module.h>.  It's not safe to include
	kernel headers.  Declare the necessary constants and structures
	directly instead.

2001-10-01  David Mosberger  <davidm@hpl.hp.com>

	* signal.c (parse_sigset_t): New function.
	(sigishandled): Fix off-by-one bug by using parse_sigset_t() and
	avoiding relying on internal layout of sigset_t datastructure.

2001-04-26  David Mosberger  <davidm@hpl.hp.com>

	* linux/ia64/syscallent.h: Add getunwind().

2001-04-11  David Mosberger  <davidm@hpl.hp.com>

	* syscall.c (syscall_enter): Use PT_RBS_END instead of deprecated
	PT_AR_BSP.  Pick up arguments starting with out0, which is not
	always the same as r32 (e.g., consider inlined syscalls).

2001-09-28   John Hughes <john@Calva.COM>

  * process.c: FreeBSD-CURRENT no longer has PT_READ_U, and anyway we
    were showing it as PT_WRITE_U!  Fix from Maxime Henrion.

2001-09-18   John Hughes <john@Calva.COM>

  * net.c: fix display of sockaddr structures, sometimes too many "}",
    sometimes too few.  Fix suggested by Richard Kettlewell.

2001-08-19   Wichert Akkerman <wakkerma@debian.org>

  * signal.c: do not include asm/sigcontext.h on IA64 since it gets
    the struct from bits/sigcontext.h already which signal.h includes.

2001-08-03   Wichert Akkerman <wakkerma@debian.org>

  * linux/ioctlent.sh: change regexps so we catch sound ioctls as well in
    Linux
  * linux/Makefile.in: fix a few things so the ioctl list is generated
    properly
  * ioctl.c: remember to shift ioctl masks as well

2001-08-03   Wichert Akkerman <wakkerma@debian.org>

  * Linux/**/syscallent.h: synchronize section for fcntl and use sys_fcntl
    for sys_fcntl as well

2001-08-03   Wichert Akkerman <wakkerma@debian.org>

  * linux/hppa/syscallent.h: updated from Matthew Wilcox

2001-08-03   Wichert Akkerman <wakkerma@debian.org>

  * process.c: seems Linux/IA64 changed register names on us, switch to
    using new names.

2001-08-03   Wichert Akkerman <wakkerma@debian.org>

  * strace.c: set CLOEXEC  flag for outputfile

2001-08-03   Wichert Akkerman <wakkerma@debian.org>

  * linux/sparc/syscall.h, linux/sparc/syscallent.h: add some LFS calls

2001-07-23  Wichert Akkerman <wakkerma@debian.org>

  * configure.in: Support cross-compiling between architectures

2001-07-13  Wichert Akkerman <wakkerma@debian.org>

  * configure.in: add S390 to architecture list

2001-07-10  John Hughes <john@Calva.COM>

  * TODO, defs.h, io.h, net.c, strace.c, syscall.c, util.c: Merge fixes
    from Richard Kettlewell <rkettlewell@zeus.com> which add I/O dumping
    of args to readv/writev.  Also gets rid of redundant printiovec
    routine from net.c (duplicate of tprint_iov in util.c).

2001-07-02  Wichert Akkerman <wakkerma@debian.org>

  * config.{guess,sub}: updated

2001-05-15  John Hughes <john@Calva.COM>

  * signal.c: pass a pointer to sigmask to printsigmask from printcontext,
    it was just passing the sigmask (ucp->uc_sigmask).

2001-05-15  John Hughes <john@Calva.COM>

  * util.c: Don't run off the end of valid memory in umovestr when
    USE_PROCFS.  Important for FREEBSD systems (which seem to have an
    unmapped page just after the args/env area).

2001-04-18  John Hughes <john@Calva.COM>

  * configure.in: test for sys/nscsys.h, the non-stop clusters includes.
  * process.c: handle rfork{1,all} and rexecve calls on non-stop clusters.
  * syscall.c: treat rfork{1,all} and fork{1,all} as fork like calls.
    Treat rexecve as an exec.
  * system.c: decode arguments to ssisys call on nsc systems.
  * svr4/dummy.h, svr4/syscall.h: now we handle rfork{1,all}, ssisys and
    rexecve calls.

2001-04-12  Wichert Akkerman <wakkerma@debian.org>

  * process.c: fix cast for powerpc code
  * linux/powerpc/syscallent.h: update syscall list
  * README: fix address for the strace mailinglist
  * signal.c: switch to using /proc/<pid>/status on Linux so we can get
    the realtime signals as well

2001-04-10  Wichert Akkerman <wakkerma@debian.org>

  * Merge patches from Maciej W. Rozycki:
    + util.c: add code to print PC for MIPS
    + linux/mips/syscallent.h: updated
    + system.c: formating fixes for sys_sysmips
    + configure.in: test for yet more headers
    + stream.c: use configure-headertests instead of relying on OS hints

2001-04-07  Wichert Akkerman <wakkerma@debian.org>

  * NEWS: start 4.3.1 items
  * version.c: updated to say 4.3.1 (was still 4.2, oops!)

2001-04-07  Wichert Akkerman <wakkerma@debian.org>

  * configure.in: test for asm/sysmips.h and linux/utsname.h
  * linux/syscall.h: fix a typo for sys_sysmips
  * system.c: include asm/sysmips.h and linux/utsname.h if they exist,
    fix typo

2001-03-31  Wichert Akkerman <wakkerma@debian.org>

  * linux/mips/ioctlent.h: updated using new Linux ioctl setup

2001-03-31  Wichert Akkerman <wakkerma@debian.org>

  * linux/ia64/ioctlent.h: regenerated

2001-03-31  Wichert Akkerman <wakkerma@debian.org>

  * linux/{alpha,ia64,powerpc}/ioctlent.sh: removed, all archs use the
    general Linux ioctlent.sh

2001-03-31  Wichert Akkerman <wakkerma@debian.org>

  * linux/ioctlent.sh: add dir variable for location of kernel headers

2001-03-29  Wichert Akkerman <wakkerma@debian.org>

  * linux/ia64/ioctlent.h: updated using new Linux ioctl setup

2001-03-29  Wichert Akkerman <wakkerma@debian.org>

  * linux/powerpc/ioctlent.h: updated using new Linux ioctl setup

2001-03-29  Wichert Akkerman <wakkerma@debian.org>

  * linux/hppa/ioctlent.h: updated using new Linux ioctl setup

2001-03-29  Wichert Akkerman <wakkerma@debian.org>

  * linux/alpha/ioctlent.h: updated using new Linux ioctl setup

2001-03-28  Wichert Akkerman <wakkerma@debian.org>

  * configure.in: use sparc* so we can compile on sparc64 as well
  * process.c, syscall.c: work around double define of fpq, fq and fpu
    structs on Linux/sparc, and use regs instead of pt_regs
  * don't use asm/sigcontext.h on Linux/sparc

2001-03-28  Wichert Akkerman <wakkerma@debian.org>

  * linux/sparc/ioctlent.h: updated using new Linux ioctl setup

2001-03-28  Wichert Akkerman <wakkerma@debian.org>

  * strace.c: use __WALL as wait4 flag if it exists so we can properly
    trace threaded programs

2001-03-27  John Hughes <john@Calva.COM>

  * aclocal.m4: add check for endianness of long long.
  * acconfig.h: add #define for LITTLE_ENDIAN_LONG_LONG.
  * configure.in: check for endianness of long long.
  * defs.h: change LONG_LONG macro to work with either endianness of
    long long.

2001-03-27  John Hughes <john@Calva.COM>

  * net.c: Make compilable by SCO UDK compiler (doesn't like empty
    initialisation list for array).

2001-03-27  John Hughes <john@Calva.COM>

  * svr4/syscallent.h: ntp_adjtime entry was duplicated on Solaris
    systems - bad merge of Harald Boehme's patch by me.

2001-03-27  Wichert Akkerman <wakkerma@debian.org>

  * lots of files: add Linux/hppa support

2001-03-19  Wichert Akkerman <wakkerma@debian.org>

  * linux/mips/syscallent.h: we can't have -1 nargs, change to 0
  * linux/syscallent.h: not that syscalls 220 and 221 are used now
  * config.guess: updated

2001-03-17  Wichert Akkerman <wakkerma@debian.org>

  * linux/ioclsort.c: new file
  * linux/ioctlent.sh: complete rewrite to use a more sane approach to get
    the ioctl list that doesn't involve attempting to #include all kernel
    headers
  * linux/.cvsignore: added ioctdefs.h and ioctls.h which are generated
    by the new ioctlent.sh
  * ioctl.c: only look at the number and type bits for linux, since
    ioctlent.sh no longer supplies the others

2001-03-08  John Hughes <john@Calva.COM>

  * freebsd/syscalls.pl: On FreeBSD we must cope with COMPATibility syscalls,
    pretend they have names ending with "?" so that -e trace=stat (for
    example) will work.
  * freebsd/i386/syscallent.h: add ? to compatability syscalls.
  * freebsd/i386/syscall.h: consistency.

2001-03-08  John Hughes <john@Calva.COM>

  * acconfig.h: add new ST_xxx defines.
  * aclocal.m4: macros to check for more fields in struct stat.
  * configure.in: use new macros to check for fields in struct stat.
  * file.c: use new defines to replace #ifdef FREEBSD by #if HAVE_ST_xxx.

2001-03-08  John Hughes <john@Calva.COM>

  * defs.h: rename wimpy get64 as powerful new LONG_LONG
  * file.c: use LONG_LONG
  * io.c: use LONG_LONG
  * mem.c use LONG_LONG

2001-03-08  John Hughes <john@Calva.COM>

  * acconfig.h: new #defines HAVE_LONG_LONG_OFF_T and HAVE_LONG_LONG_RLIM_T.
  * aclocal.m4: routines to check for long long off_t and rlim_t.
  * configure.in: check for long long off_t and rlim_t.
  * desc.c: if HAVE_LONG_LONG_OFF_T treat flock as flock64
  * file.c: if HAVE_LONG_LONG_OFF_T treat stat,lstat,fstat and lseek as 64
    bit versions.
  * io.c: if HAVE_LONG_LONG_OFF_T use 64 bit versions of pread and pwrite.
  * mem.c: if HAVE_LONG_LONG_OFF_T use 64 bit version of mmap
  * resource.c: if HAVE_LONG_LONG_OFF_T use 64 bit versions of getrlimit
    and setrlimit.
  * freebsd/syscalls.print: don't explicitly use 64 bit versions of calls,
    now done automaticaly for us.
  * freebsd/i386/syscall.h: ditto.
  * freebsd/i386/syscallent.h ditto.

2001-03-07  John Hughes <john@Calva.COM>

  * desc.c: On FreeBSD flock structure uses 64 bit offsets.
  * file.c: On FreeBSD use stat64 and pals instead of stat.
  * freebsd/syscalls.print: use stat64, lstat64 and fstat64.
  * freebsd/i386/syscall.h: ditto.
  * freebsd/i386/syscallent.h: ditto.

2001-03-07  John Hughes <john@Calva.COM>

  * file.c: merge missing part of Harald Böhme's solaris patches,
    was only declaring sys_{stat64,lstat64,fstat64} on linux!

2001-03-07  John Hughes <john@Calva.COM>

  * svr4/dummy.h: fix multiple define warning on non LFS64 systems.
  * svr4/syscallent.h: pread/pwrite are TF calls.

2001-03-07  John Hughes <john@Calva.COM>

  * defs.h: add ALIGN64 macro to cope with FreeBSD's strange insistence
    on alignment for off_t (64 bit) arguments.  Also simplify get64 so
    we don't need to know endianness of long long.
  * file.c: FreeBSD now uses 64 bit versions of lseek, truncate,
    ftruncate, allows reduction in numvber of horrid #if's
  * io.c: FreeBSD now uses 64 bit versions of pread, pwrite.
  * mem.c: FreeBSD now uses 64 bit version of mmap.
  * freebsd/syscalls.print: use 64 bit versions of various syscalls.
  * freebsd/i386/syscall.h: use 64 bit versions of various syscalls.
  * freebsd/i386/syscallent.h: use 64 bit versions of various syscalls.

2001-03-06  John Hughes <john@Calva.COM>

  * file.c: Implement truncate64 and ftruncate64
  * svr4/dummy.h: add dummies for truncate64 and ftruncate64 for non
    LFS64 systems.
  * svr4/syscall.h: add declarations for truncate64 and ftruncate64.

2001-03-06  John Hughes <john@Calva.COM>

  * freebsd/syscalls.pl: fix for FreeBSD 4.1 (new optional field in
    syscall master file).

2001-03-06  John Hughes <john@Calva.COM>

  * syscall.c: fix for FreeBSD 4.1 (SYS_semconfig has disappeared).  Also
    zap incorrect syscall subarg range check.

2001-03-06  John Hughes <john@Calva.COM>

  * configure.in, defs.h, desc.c, file.c, io.c, mem.c, net.c, resource.c,
    signal.c, syscall.c, svr4/dummy.h, svr4/syscall.h, svr4/syscallent.h:
    merge Harald Böhme's solaris patches (_LFS64_LARGEFILE and kernel aio
    mostly).

2001-03-06  John Hughes <john@Calva.COM>

  * dummy.h: add unimplemented UW sycalls
  * syscall.h: we can do settimeofday for UW, whopee!
  * syscallent.h: fix unimplemented UW syscalls

2001-03-06  John Hughes <john@Calva.COM>

  * aclocal.m4: look for pr_syscall in pr_lwp if we HAVE_MP_PROCFS
  * defs.h: add PR_SYSCALL to allow use of pr_lwp.pr_syscall if it exists.
  * syscall.c: use PR_SYSCALL instead of pr_syscall, fix up UnixWare code
    so it doesn't try to use pr_sysarg.

2001-03-06  John Hughes <john@Calva.COM>

  * aclocal.m4: on systems other than linux look for stat64 in sys/stat.h
  * file.c: handle xstat version _STAT64_VER, aka stat64.

2001-03-06  John Hughes <john@Calva.COM>

  * net.c: make sure SOL_ options are defined before using.
  * signal.c: declare sigset variable, only used on linux, inside #ifdef.

2001-02-21  Wichert Akkerman <wakkerma@debian.org>

  * net.c: fix format for printing Unix domain sockets

2001-02-19  Wichert Akkerman <wakkerma@debian.org>

  * linux/mips/syscallent.h: use new sys_sysmips
  * system.c: add sys_sysmips decoding

2001-02-16  Wichert Akkerman <wakkerma@debian.org>

  * CREDITS: add Arkadiusz Miskiewicz <misiek@pld.org.pl> who
    submitted the IP6 scope ID updates
  * acconfig.h: add HAVE_SIN6_SCOPE_ID and HAVE_SIN6_SCOPE_ID_LINUX
  * aclocal.m4: add AC_SIN6_SCOPE_ID to check if sin6_scope_id is
    available
  * configure.in: check for if_indextoname function and sin6_scope_id
  * net.c: teach printsock about IP6 scope ids

2001-02-16  Wichert Akkerman <wakkerma@debian.org>

  * configure.in: test for netinet/tcp.h and netinet/udp.h existance
  * net.c: include netinet/tcp.h and netinet/udp.h if they exist
  * Makefile.in: use @mandir@ and @bindir@

2000-11-26  Wichert Akkerman <wakkerma@debian.org>

  *  net.c: fix formating error in sys_setsockopt
  *  net.c: add list of socketlayers and use that for [gs]etsockopt

2000-10-12  Wichert Akkerman <wakkerma@debian.org>

  * time.c: use sys/timex.h so things compile with 2.2 kernels
  * stream.c: test if MSG_* constants are #defined

2000-09-03  Wichert Akkerman <wakkerma@debian.org>

  * process.c: perform bpt trick for clone as well so we can get the
    pid of the child before it starts doing something
  * file.c: rename dirent64 struct to kernel_dirent64 so things compile
    again with newer libcs
  * test/clone.c: improve our testcase a bit
  * Merge another patch from Gäel Roualland with FreeBSD updates

2000-09-01  Wichert Akkerman <wakkerma@debian.org>

  * lots of files: merge patch from Gaël Roualland to add
    support for FreeBSD.

2000-08-09  Wichert Akkerman <wakkerma@debian.org>

  * file.c: update to reflect that st_ino suddenly became a long long
    in the in Linux 2.4.0-test6

2000-08-09  Wichert Akkerman <wakkerma@debian.org>

  * test/clone.c: minor fixup
  * Another bunch of patches from John Hughes merged:
  * signal.c:
    + SVR4 printcontext(): sigset_t != sigset_t*
    + getcontext returns a value, so print on exit of syscall
    + add UC_FP to ucontext_flags for OS writers that can't spell
    + sys_signal(): special case SIG_{ERR,DFL,IGN}
    + decode_subcall(): only do subcall range checking when needed
  * bunch of UnixWare updates
  * aclocal.m4, acconfig.h, configure.in: add test for long long type

2000-07-04  Wichert Akkerman <wakkerma@debian.org>

  * net.c: add SOL_PACKET and SOL_RAW socket options, update
    SOL_IP and SOL_TCP

2000-06-23  Wichert Akkerman <wakkerma@debian.org>

  * strace.c: close outf before we exec a child process

2000-06-09  Ulrich Drepper  <drepper@redhat.com>

  * configure.in: Don't link against libnsl on Linux, it's unnecessary.
  * defs.h (struct tcb): Make auxstr member const.
  * file.c (fsmagic): And many more magic numbers.
  * util.c: Don't include <linux/ptrace.h> for glibc 2.1 and up.

2000-04-26  Wichert Akkerman <wakkerma@debian.org>

  * defs.h: balance #if/#endif again
  * system.c: fix return statements in sys_capget()
  * Merge updates from Topi Miettinen <Topi.Miettinen@nic.fi>:
    + file.c: add F_[SG]ETSIG to fcntl flags
    + strace.c: don't setre[gu]id if not needed
    + system.c: handle sys_reboot for Linux
    + term.c: add baudrate constants up to B4000000
    + linux/**/syscallent.h: note that munlockall has no arguments

2000-04-25  David Mosberger  <davidm@hpl.hp.com>

  * CREDITS: fix email address
  * process.c: handle PR_[GS]ET_UNALIGN and PR_[GS]ET_KEEPCAPS
  * signal.c: honour offset of sigconfig in sigframe structure for
    Linux/ia64
  * linux/ia64/syscallent.h: Add perfmonctl, pivotroot, mincore, and
    madvise syscalls.
  * syscall.c (syscall_enter): With Kevin's latest ptrace patches,
    AR_BSP points to the _end_ of the active register frame, so we need
    to adjust bsp by moving it back by the size of the active frame
    before using it.

2000-04-24  Wichert Akkerman <wakkerma@debian.org>

  * process.c: add sparc support to change_syscall

2000-04-22  Wichert Akkerman <wakkerma@debian.org>

  * linux/mips/syscallent.h: fix some typos

2000-04-14  Wichert Akkerman <wakkerma@debian.org>

  * linux/mips/syscallent.h: added names for SVR4, SYSV, BSD4.3 and POSIX
    syscalls

2000-04-13  Wichert Akkerman <wakkerma@debian.org>

  * defs.h: Linux/MIPS uses syscalls up to >4k, so set MAX_QUALS to
    4999

2000-04-09  Wichert Akkerman <wakkerma@debian.org>

  * README-linux: updated to note that strace might not compile
    with development kernels
  * bjm.c: sys_query_module: check if malloc succeeds
  * system.c: sys_cap[gs]et(): check if malloc succeeds, only malloc once
  * linux/syscallent.h: updated for 2.3.99pre3
  * linux/alpha/syscallent.h: updated for 2.3.99pre3, add all osf syscalls
    even though Linux doesn't implement them
  * syscall.c: add global variables for MIPS registers as well
  * syscall.c: move global variables to before get_scno since that uses them
  * util.c: oops, misspelled defined
  * process.c: fix ptrace calls in change_syscall
  * mem.c: decode sys_madvise
  * Merge patch from Topi Miettinen <Topi.Miettinen@nic.fi>
    + add support for quotactl, fdatasync, mlock, mlockall, munlockall & acct
    + small fix for RLIMIT_* and RUSAGE_BOTH
    + enhace support for capget and capset

2000-02-19 Wichert Akkerman <wakkerma@debian.org>

  * test/vfork.c: new file to test vfork traces
  * test/.cvsignore: new file
  * defs.h: Up maximum number of traced processed to 64
  * strace.c: Disable some debugging code from davidm
  * implement setarg for more architectures
  * implement change_syscall

1999-12-27  Morten Welinder  <terra@diku.dk>

	* syscall.c (lookup_signal, lookup_desc): isdigit requires an
 	_unsigned_ char parameter.

2000-02-14 Wichert Akkerman <wakkerma@debian.org>

  * S390 updates

2000-02-03 Wichert Akkerman <wakkerma@debian.org>

  * Merge Linux/ia64 patches

2000-01-02 Pavel Machek	     <pavel@ucw.cz>

  * probe if sys/poll.h exists in configure + minor cleanups

  * syscall.c: split trace_syscall into few pieces to make code readable

2000-01-21 Wichert Akkerman  <wakkerma@debian.org>

  * Release version 4.2 to get the current updates out and so
    we can concentrate in finishing the clone support.

2000-01-11 Wichert Akkerman  <wakkerma@debian.org>

  * Add 1900 to tm_year in sprinttime

1999-12-24  Wichert Akkerman  <wakkerma@debian.org>

 * file.c: protect printstat64 with STAT64 instead of linux so we can
   compile on Linux architectures that don't have it
 * util.c: fix LOOP for ARM

Fri Dec 24 18:05:00 EST 1999

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

 * file.c: Use ugly libc_stat trick also for stat64.
   Implement sys_stat64, sys_fstat64, sys_lstat64, and printstat64.
 * process.c (internal_clone): Fix a few typos and add definitions to make
   it at least compile.
 * linux/syscall.h: Declare sys_stat64, sys_lstat64, and sys_fstat64.
 * linux/syscallent.h: Define table entries for sys_stat64, sys_lstat64,
   and sys_fstat64.
 * aclocal.m4: Define AC_STAT64.
 * acconfig.h: Define HAVE_STAT64.
 * configure.in: Add AC_STAT64.

Thu Dec 23 15:01:37 CET 1999 Wichert Akkerman <wakkerma@debian.org>

  * Merge patch from ftp://oss.software.ibm.com/linux390/ to add
    support for Linux on the IBM S/390 architecture
  * process.c: add internal_clone(), currently only shows the options
  * syscall.c: use internal_clone to handle SYS_clone

Mon Dec 20 00:27:50 CET 1999 Wichert Akkerman <wakkerma@debian.org>

  * Rewrite mmap-handling to support mmap2 on Linux

Tue Dec 14 11:35:16 CET 1999 Wichert Akkerman <wakkerma@debian.org>

  * Note that Linux can handle sys_semop() as well

Tue Nov 30 11:05:26 CET 1999 Wichert Akkerman <wakkerma@debian.org>

  * Include linux/in6.h for glibc2.0 and older

Mon Nov 29 16:33:04 CET 1999 Wichert Akkerman <wakkerma@debian.org>

  * Merge patches from John Hughes to make configure support UnixWare

Sat Nov 27 21:38:17 CET 1999 Wichert Akkerman <wakkerma@debian.org>

  * Enhance sys_query_module

Fri Nov 26 10:51:55 CET 1999 Wichert Akkerman <wakkerma@debian.org>

  * Patches from John Hughes:
    + cosmectic fix in sys_getpmsg
    + allow net.c to compile on systems without AF_INET6
    + Only use long_to_sigset on Linux systems
    + UnixWare treats sigmask_t and sigmask_t* as the same thing
    + Add pollhack
    + Parse mount arguments for UnixWare
    + ACL fixes for UnixWare

Fri Nov 26 01:28:09 CET 1999 Wichert Akkerman <wakkerma@debian.org>

  * Release 4.1 to get all the changes made out there

Thu Nov 18 18:04:04 CET 1999 Wichert Akkerman <wakkerma@debian.org>

  * Merge stracefork from Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
    + Socket calls parsed better
	+ bunch of alpha OSF syscalls added
	+ Fix alpha 32/64 bit issues

Mon Nov  1 20:52:08 CET 1999 Wichert Akkerman <wakkerma@debian.org>

  * Move Linux kernelmodule-functions from system.c to bjm.c and
    remove duplicate for sys_create_module
  * Linux MIPS updates:
    + Play with #ifdef's in net.c to get IPv6 right
    + Use printargs for vm86-syscall

Sun Oct 31 22:03:00 CET 1999 Wichert Akkerman <wakkerma@debian.org>

  * Merge Linux mips patch from Florian Lohoff <flo@rfc822.org>

Mon Oct 11 00:36:25 CEST 1999 Wichert Akkerman <wakkerma@debian.org>

  * Merge patch from Keith Owens <kaos@ocs.com.au> to sys_query_module
    and sys_delete_module correctly

Wed Oct  6 02:00:33 CEST 1999 Wichert Akkerman <wakkerma@debian.org>

  * Update cvsbuild to give a better error if autoconf isn't installed
  * Add test for linux/ptrace.h to configure
  * Since we define GNU_SOURCE in the Makefile we don't need to define
    USE_GNU in file.c anymore

Fri Sep 10 04:35:16 CEST 1999 Wichert Akkerman <wakkerma@debian.org>

  * #define USE_GNU before including file.c so we get some extra O_* flags

Tue Aug 31 16:27:21 CEST 1999 Wichert Akkerman <wakkerma@debian.org>

  * Add missing } in IPv6 output

Tue Aug 31 01:23:08 CEST 1999  Wichert Akkerman <wakkerma@debian.org>

  * Update copyright for strace-graph to BSD to be consistent with
    the rest of strace

Mon Aug 30 00:53:57 CEST 1999 Wichert Akkerman <wakkerma@debian.org>

  * Merge patch from Daniel Jacobowitz: KERN_JAVA_* and KERN_SECURELVL aren't
    defined for all kernelversions
  * Add strace-graph, written by Richard Braakman <dark@xs4all.nl>

Thu Aug 19 13:10:15 CEST 1999 Jakub Jelinek <jj@ultra.linux.cz>

  * linux/sparc/syscall.h: Declare create_module/init_module.
  * configure.in: Allow compilation in a different directory
    than the source one.
  * signal.c: Use asm/reg.h and struct regs instead of pt_regs
    so that we don't depend on asm/ptrace.h which clashes with
    glibc sys/ptrace.h.
  * util.c: Likewise.
  * syscall.c: Likewise.

Wed Aug  4 18:01:50 CEST 1999 Wichert Akkerman <wakkerma@debian.org>

  * Syscall 94 on Linux alpha is sys_poll

Sun Jul 25 14:38:33 CEST 1999 Wichert Akkerman <wakkerma@debian.org>

  * Merge in UnixWare patches from John Hughes <john@Calva.COM>

Thu Jul 15 23:00:32 CEST 1999 Wichert Akkerman <wakkerma@debian.org>

  * Merge patch from Maciej W. Rozycki <macro@ds2.pg.gda.pl>:
    + Correctly implement fix sys_createmodule (Linux)
    + Add limited handlig of sys_initmodule (Linux)

Tue Jul 13 17:07:50 CEST 1999 Wichert Akkerman <wakkerma@debian.org>

  * Add configure-test for sys/reg.h and use that
  * Use sys/reg.h instead of asm/ptrace.h

Sat Jul 10 01:46:10 CEST 1999 Wichert Akkerman <wakkerma@debian.org>

  * Remove hack in signal.c for arm architecture
  * Add hack so we compile correctly on powerpc

Fri Jul  9 02:28:16 CEST 1999 Wichert Akkerman <wakkerma@debian.org>

  * Add a corrected patch from Daniel Jacobowitz

Thu Jul  8 16:00:04 CEST 1999 Wichert Akkerman <wakkerma@debian.org>

  * Merge patch from Daniel Jacobowitz to allow us to use the kernel types
    for the stat structure

Thu Jun 24 15:54:18 CEST 1999 Wichert Akkerman <wakkerma@debian.org>

  * Fix test for sys/reg include

Tue Jun 22 17:26:33 CEST 1999 Wichert Akkerman <wakkerma@debian.org>

  * Fixed some Linux/powerpc sillyness, thanks to Daniel Jacobowitz
  * Fixed some SunOS compile problems earlier that I forgot to include
    here

Mon Jun 14 12:44:25 CEST 1999

  * Avoid leakint fd into child when forking, patch from
    John Hughes <john@Calva.COM>

Fri Jun 11 14:54:47 CEST 1999

  * Applied IRIX64 patch from Thomas E. Dickey <dickey@clark.net>
  * Applied Solaris and manpage updates from Guy Harris <guy@netapp.com>

Wed Jun  9 14:48:49 CEST 1999 Wichert Akkerman <wakkerma@debian.org>

  * Brought syscall list for alpha up to date

Wed Jun  2 18:30:12 CEST 1999 Jakub Jelinek <jj@ultra.linux.cz>

  * system.c: sys_umount2 syscall support.
  * linux/sparc/errnoent.h: Update sparc-linux errnos.
  * linux/sparc/syscall.h: Update used sparc-linux syscalls.
  * linux/sparc/syscallent.h: Match 2.2.9 system calls.
  * file.c: sparc-linux asm/stat.h uses dev_t etc. types,
    so it needs strace's own copy of the stat structure.
  * util.c: Make it compile on sparc-linux.
  * strace.c: Fix strace -f and -ff operation on sparc-linux.
  * signal.c: rt_sigaction has different arguments on sparc*-linux
    and alpha-linux.
  * syscall.c: Recognize sparc64-linux binaries.

Fri May 28 21:09:00 PST Ulrich Drepper <drepper@cygnus.com>

  * configure.in: Fix typo (CFLAG -> CFLAGS).

  * syscall.c: Don't include linux/ptrace.h explicitly for glibc.

Thu May 27 13:59:27 CEST 1999 Wichert Akkerman <wakkerma@debian.org>

  * Add some sysctl support, patch from Ulrich Drepper

Wed May 26 01:04:34 CEST 1999 Wichert Akkerman <wakkerma@debian.org>

  * Use kernel dirent structure for Linux

Sun May  9 02:18:30 CEST 1999 Wichert Akkerman <wakkerma@debian.org>

  * Merge in patches from Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
    + some layout and other minor fixes
    + add some m68k-specific things to linux/syscallent.h. Note that m68k
      is similar enough to i386 to not need it's own subdirectory
    + add support for sendfile and mremap syscalls for Linux
  * Merge in patches from Sascha Schumann <sascha@schumann.2ns.de>
    + ioctls.h vs sys/ioctl.h on Alpha platform
    + pointer was casted to an int in stream.c
    + strsignal() needs -D_GNU_SOURCE in CFLAGS
    + several other casts changed
    + correct ARM/POWERPC architecture defines in acconfig.h
  * Merge in patches from Morten Welinder <terra@diku.dk>
    + add some autoconf-tests for includefiles
    + handle solaris version of sigcontext struct (actually I hacked this
      up again, but the idea is his :)

Sun Apr 18 22:32:42 CEST 1999 Wichert Akkerman <wakkerma@debian.org>

  * Update syscalls for linux alpha, patch from Bart Warmerdam
    <bartw@debian.org>
  * Update sparc code so it actually compiles

Fri Apr 16 02:18:05 CEST 1999 Wichert Akkerman <wakkerma@debian.org>

  * Add support for old_*stat functions for Linux. Please note you need
    to use reasonably recent kernel headers to compile strace now.
  * Change references to LINUX into linux in file.c
  * Fix include for LDT in mem.c

Thu Apr 15 22:28:15 CEST 1999 Wichert Akkerman <wakkerma@debian.org>

  * Change in strace maintainership, jrs passed the torch to me.
  * Use autoconf 2.13
  * Incorporate all changes already made in the Debian strace package:
    + compiles with more Linux kernels
    + added support for more Linux architectures
    + add support for a lot of extra syscalls
    + fix some problems with hanging children
    + check stray syscall after execv
    + decode capget and capset arguments
    + add more constants to net.c
    + detect ROSE networking
    + add more protocol families to domains
    + add IPIP protocol
    + added MSG_PROXY and MSG_CTRUNC to msg_flags
    + added SO_BSDCOMPAT and SO_REUSEPORT to sockoptions
    + added IP, IPX and TCP-options
    + added IP, IPX and TCP support to get-/setsockopt()
    + added IPX support
    + updated handling of signals

Sun Oct 27 22:28:00 1996  J. Richard Sladkey  <jrs@world.std.com>

	* util.c (umovestr) [LINUX]: Handle Linux like SunOS4
	instead of SVR4.  That is, read a few bytes at a time
	to avoid overrunning the end of the stack.

Fri May 31 01:48:49 1996  J. Richard Sladkey  <jrs@world.std.com>

	* version.c: Version 3.1 is released.

Thu May 23 01:04:43 1996  J. Richard Sladkey  <jrs@world.std.com>

	* aclocal.m4 (AC_DECL_SYS_ERRLIST): Try looking in stdio.h
	as well since that's where glibc declares it.  Go figure.
	* signal.c (sys_sigreturn) [ALPHA]: Use sigcontext
	instead of sigcontext_struct since glibc v5+ apparently
	plays games with the native OS namespace.
	From David Mosberger-Tang <davidm@AZStarNet.com>.

Mon May 20 23:17:14 1996  J. Richard Sladkey  <jrs@world.std.com>

	* version.c: Version 3.0.14 is released.

	* aclocal.m4 (AC_STRUCT_MSG_CONTROL): New macro.
	* configure.in: Add call to AC_STRUCT_MSG_CONTROL.
	* net.c (printmsghdr): Handle BSD 4.3 and 4.4 msghdr members
 	differently.
	Reported by Henrik Storner <storner@osiris.ping.dk>.

	* configure.in: (AC_CHECK_{HEADERS,FUNCS}): Add checks for
 	sys/filio.h and sys/stream.h and remove check for poll.
	* desc.c (decode_select, sys_select, sys_oldselect) [LINUX]:
 	Handle old and new styles of argument passing for select on Linux.
	* ioctl.c, stream.c: Conditionalize stream code on presence of
	sys/stream.h instead of poll because glibc implements poll but
	not the rest of the stream interface.
	* signal.c [LINUX]: Standardize on the name sigcontext_struct.
	(sys_sigprocmask) [ALPHA]: Handle OSF flavor which is more like
	sigsetmask.
	* term.c (term_ioctl): Use _VMIN, if present, for TC{G,S}ETA*.
	* util.c (umoven, umovestr): Move data in long-sized chunks
	at a time, instead of hard coding it to be 4.
	From David Mosberger-Tang <davidm@AZStarNet.com>.

Mon May 20 01:19:36 1996  J. Richard Sladkey  <jrs@world.std.com>

	* version.c: Version 3.0.13 is released.

	* configure.in (AC_CHECK_HEADERS): Add check for asm/sigcontext.h.
	* signal.c [HAVE_ASM_SIGCONTEXT_H]: Conditionally include
	asm/sigcontext.h to define sigcontext_struct and don't define it
	locally if the header is present.

	* syscall.c (nerrnos{0,2}): Correct size computation.

	* Makefile.in: Remove dependencies and rules relating to files
 	normally found in the os directory.  Because of the new scheme we
 	don't know precisely where they come from.  Sigh.
	* signalent.sh: Make it work for sunos4, linux, and svr4.
	* {sunos4,linux{,/alpha},svr4}/Makefile.in: Make rules correspond
 	to traditional make syntax.  Add signalent.h to files which can
 	unconditionally be rebuilt.  Prevent signalent.h from being
 	unconditionally being rebuilt since it's customized.
	* {sunos4,linux{,/alpha},svr4}/{ioctlent,errnoent,signalent}.h:
 	Use versions built by {ioctlent,errnoent,signaltent}.sh.
  	* sunos4/ioctlent.sh: Work around sprintf troubles with SunOS
 	4.1.4 and gcc 2.7.2.

Sun May 19 17:14:09 1996  J. Richard Sladkey  <jrs@world.std.com>

	* configure.in, Makefile.in: Add OSARCH concept to finish
	build support for the alpha.
	* Makefile.in, linux/Makefile.in: Rewrite clean, distclean,
	and maintainer-clean rules.
	* defs.h, ioctlsort.c: Make ioctl code member unsigned.
	* ioctl.c, ioctlsort.c (compare): Perform explicit checking
	for less, greater, and equal since subtraction on two's
	complement numbers isn't an order relation (it isn't transitive)!
	* linux/Makefile.in: Add rules for the signalent.h file.
	* linux/alpha/Makefile.in: New file.

Sun May 19 01:12:28 1996  J. Richard Sladkey  <jrs@world.std.com>

	* version.c: Version 3.0.12 is released.

	* linux{,alpha}/ioctlent.sh: Tweak for recent kernels.
	From Michael E Chastain <mec@duracef.shout.net>.

	* defs.h (SUPPORTED_PERSONALITES, DEFAULT_PERSONALITY): New.
	* syscall.c (set_personality): New.
	* strace.c (main): Call set_personality.
 	* defs.h, syscall.c, ioctl.c, signal.c: Make sysent, errnoent,
 	ioctlent, and signalent indirect pointers and redirect them
	based on personality.
	* {sunos4,svr4,linux{,/alpha}}/signalent.h: New files.
	Suggested by Tom Dyas <tdyas@eden.rutgers.edu>.

	* util.c (upeek): Handle case where ptrace returns a long
	and sizeof(long) != sizeof(int).
	From Richard Henderson <richard@twiddle.tamu.edu>

Fri May 17 21:03:36 1996  J. Richard Sladkey  <jrs@world.std.com>

	* version.c: Version 3.0.11 is released.

	* many files: Fix more printf warnings for other platforms.

	* ipc.c (sys_msgrcv) [LINUX]: Conditionalize definition of ipc_wrapper.

	* linux/dummy.h: Handle missing library support for {send,recv}msg.
	Reported by Thomas Bogendoerfer <tsbogend@bigbug.franken.de>.

	* linux/syscall.h (sys_utimes): Fix a typo in the declaration.
	From Thomas Bogendoerfer <tsbogend@bigbug.franken.de>.

Fri May 17 00:50:06 1996  J. Richard Sladkey  <jrs@world.std.com>

	* version.c: Version 3.0.10 is released.

	* Makfile.in: Add os/arch to includes so that a given arch
	(like alpha) can override the native arch (like i386).
	* configure.in: Check for sendmsg.

	* net.c: Make sendmsg and recvmsg dependent on an autoconf
	test.  Reported by Michael E Chastain <mec@duracef.shout.net>.

	* acconfig.h, configure.in: Detect the alpha.
	* ioctl.c: Handle the alpha.
	* defs.h: Make some members long for the alpha.  Define
	some register nicknames.  Add support for WAITEXECVE.
	* file.c [ALPHA]: Support the alpha for statfs.  Add
	osf_statfs and osf_fstatfs for the alpha.  Make damn sure
	major and minor results are suitable for passing to printf.
	* signal.c, syscall.c: Support the alpha.
	* process.c: Add alpha user offsets.
	* most files: Use %l? for printf arguments since
	most are now longs for the alpha.
	* linux/alpha/{errnoent.h,ioctlent.{h,sh},syscallent.h}:
	New for the alpha.
	From Thomas Bogendoerfer <tsbogend@bigbug.franken.de>.

Wed May 15 00:29:37 1996  J. Richard Sladkey  <jrs@world.std.com>

	* version.c: Version 3.0.9 is released.

	* config.in, config.sub, install-sh: Upgrade to autoconf 2.10.

	* linux/dummy.h, linux/syscallent.h, linux/syscall.h: Add recent
	Linux kernel version system calls.

Wed Mar 13 01:03:38 1996  J. Richard Sladkey  <jrs@world.std.com>

	* ipc.c [SUNOS4]: Add SunOS support for decoding IPC calls.
	* syscall.c [SUNOS4]: Compile decode_subcall on SunOS and
	decode IPC calls using it.
	* sunos4/dummy.h: Alias sys_semop to printargs.
	* sunos4/syscall.h: Add new pseudo syscalls for IPC.
	* sunos4/syscallent.h: Include new subcalls for IPC.
	From Matthias Pfaller <leo@dachau.marco.de>.

Tue Feb 13 22:08:25 1996  J. Richard Sladkey  <jrs@world.std.com>

	* version.c: Version 3.0.8 is released.

	* time.c [LINUX]: Explicitly include linux/version.h.

	* strace.c (main): Don't let them even *try* to
	get strace to attach to itself since some systems
	don't handle this case very gracefully.
	Reported by David S. Miller <davem@caip.rutgers.edu>.

	* Makefile.in (distclean): Fix it for subdirectories.

	* sunos4/syscallent.h, svr4/syscallent.h: Fill in the new
	sys_flags member for each defined system call.

Fri Dec  8 01:17:28 1995  Rick Sladkey  <jrs@world.std.com>

	* defs.h (TRACE_*): New flags to describe what class
	of system call each system call is.
	(sysent): Add sys_flags member.
	* syscall.c (sysent): Define (and later undef) abbreviations
	for the system call class flags.
	(lookup_class): New function to translate strings to
	system call class flags.
	(qualify): Handle new system call class mechanism.
	* linux/syscallent.h: Fill in the new sys_flags member
	for each defined system call.

	* defs.h (print_sock): Remove redundant and non-K&R C
	compatible prototype.  From Juergen Weigert
	<jnweiger@immd4.informatik.uni-erlangen.de>.

Thu Dec  7 01:17:40 1995  Rick Sladkey  <jrs@world.std.com>

	* linux/ioctlent.sh: Tweak to improve ioctl accuracy.
	From Michael E Chastain <mec@duracef.shout.net>.

	* system.c (includes) [LINUX]: Add linux/nfs.h for recent
	kernels.  From Michael E Chastain <mec@duracef.shout.net>.

Wed Dec  6 21:52:28 1995  Rick Sladkey  <jrs@world.std.com>

	* file.c (sprintfstype): Enclose string result in double
	quotes.

	* time.c (sys_adjtimex) [LINUX]: Conditionalize
	constantly evolving timex structure.
	From Aaron Ucko <UCKO@VAX1.ROCKHURST.EDU>.

	* defs.h, syscall.c, strace.c: Rename syscall to
	trace_syscall and change prototype and all callers
	because of broken Linux shared libraries.
	From Aaron Ucko <UCKO@VAX1.ROCKHURST.EDU>.

	* Makefile.in (clean): Check for a file with test -f not
	test -d.  From Aaron Ucko <UCKO@VAX1.ROCKHURST.EDU>.

Tue Sep 26 02:32:31 1995  Rick Sladkey  <jrs@world.std.com>

	* version.c: Version 3.0.7 is released.

	* util.c (string_quote): Fix thinko which caused core
	dumps for strings with quotes in them.
	Reported by Marty Leisner <leisner@sdsp.mc.xerox.com>.

	* linux/Makefile.in (errnoent.h rule): Grab all errno.h
	files from /usr/include, not just the linux one.
	From Michael E Chastain <mec@duracef.shout.net>.

	* linux/errnoent.sh: Total rewrite to handle more ioctls with
	fewer false positives on more kernel flavors.
	From Michael E Chastain <mec@duracef.shout.net>.

Mon Sep  4 01:29:22 1995  Rick Sladkey  <jrs@world.std.com>

	* version.c: Version 3.0.6 is released.

	* linux/dummy.h, linux/syscall.h, linux/syscallent.h: Add
	sys_msync.
	* mem.c (mctl_funcs, mctl_lockas, sys_mctl): Conditionalize
	on MC_SYNC instead of HAVE_MCTL.
	(mctl_sync): Conditionalize on MS_ASYNC instead of HAVE_MCTL.
	(sys_msync): New function.

Sat Sep  2 12:06:04 1995  Rick Sladkey  <jrs@world.std.com>

	* linux/dummy.h, linux/syscall.h, linux/syscallent.h: Add
	sys_flock and sys_getdents.
	* desc.c (flockcmds, sys_flock): Conditionalize on LOCK_SH
	not SUNOS4.
	* file.c (sys_getdents): Define unconditionally and handle
	LINUX case.
	* strace.c (main): Disallow username option unless both real
	and effective uids are root.

Wed Aug 30 01:29:58 1995  Rick Sladkey  <jrs@world.std.com>

	* strace.c (main): Ensure that run_uid and run_gid are
	always set to something meaningful.
	(main, newoutf) [!SVR4]: Swap real and effective uids while
	opening any output files.
	(main) [!SVR4]: Treat effective uid of root as a request
	to handle suid binaries correctly using the real uid of
	the invoking user.

Sat Aug 19 00:06:08 1995  Rick Sladkey  <jrs@world.std.com>

	* Makefile.in: Add `|| true' to clean rule because
	although GNU make 3.74 uses `sh -c' to invoke commands
	every other make in the world uses `sh -ec'.

	* syscall.c (syscall) [SVR4, MIPS]: The fifth and subsequent
	arguments appear to be stored on the stack, not in the
	registers following A3 (empirical result).

	* defs.h: Add prototype for printsock.
	* svr4/dummy.h: Remove generic handling of sys_mount.
	* system.c [SVR4, MIPS]: Include several system headers to cleanly
	get access to SGI mount information.
	(mount_flags, nfs_flags) [SVR4, MIPS]: New objects.
	(sys_mount) [SVR4, MIPS]: New function.
	(sys_mount) [SVR4, !MIPS]: New function.

Tue Jul  4 00:30:34 1995  Rick Sladkey  <jrs@world.std.com>

	* version.c: Version 3.0.5 is released.

	* desc.c, resource.c, strace.c, syscall.c, time.c: Cast tv_sec and
 	tv_usec members to long when using printf.

	* ipc.c: Omit define of __KERNEL__.
	({MSG,SEM,SHM}_{STAT,INFO}): Explicitly define those things we
 	want which __KERNEL__ used to provide.
	(sys_msgrcv): Change reference to ipc_kludge structure to
	look-alike ipc_wrapper to avoid dependence on __KERNEL__.

	mem.c (mmap_flags) [MAP_{GROWSDOWN,DENYWRITE,EXECUTABLE}]: Add
 	Linux specific options.

	syscall.c: Use SYS_ERRLIST_DECLARED instead of guessing.
  	[E{RESTART{SYS,NO{INTR,HAND}},NOIOCTLCMD}]: Explicitly define
 	instead of depending of __KERNEL__.

	term.c: Cast c_{i,o,c,l}flag to long when using printf.

Tue Jun  6 00:27:48 1995  Rick Sladkey  <jrs@world.std.com>

	* aclocal.m4 (AC_DECL_SYS_ERRLIST, AC_DECL__SYS_SIGLIST): New.
	* configure.in: Call AC_DECL_SYS_ERRLIST, AC_DECL_SYS_SIGLIST,
	and AC_DECL__SYS_SIGLIST.
	* acconfig.h (SYS_ERRLIST_DECLARED): New.
	* strace.c (strerror): Use SYS_ERRLIST_DECLARED.
	(strsignal): Use SYS_SIGLIST_DECLARED.

	net.c (sys_socket): Omit inadvertent surplus comma when
	protocol family isn't PF_INET.

	util.c (dumpstr): Fix incorrect printing of one too many
	characters when the length is not an even multiple of 16 bytes.
	Reported by Juergen Weigert
	<jnweiger@immd4.informatik.uni-erlangen.de>.

Thu May  4 23:37:47 1995  Rick Sladkey  <jrs@world.std.com>

	* ioctl.c (compare): Change prototype to match POSIX qsort.
	* signal.c (sigishandled) [SVR4]: Omit everything after return.
	* strace.c (trace) [SVR4]: Break out of for loop instead of
	returning when finished so final return statement is executed.
	* syscall.c (internal_syscall): Add more SYS_wait* variations.
	(syscall) [LINUX]: Correct typo which commented out the M68K
	argument to ifdef.
	* util.c (printstr): Cast unsigned char pointer argument
	to char pointer in umovestr call.
	(dumpstr): Likewise for umoven.

Wed May  3 01:10:56 1995  Rick Sladkey  <jrs@world.std.com>

	* version.c: Version 3.0.4 is released.

	* signal.c (sys_sigblock): Move after the definition of
	sys_sigsetmask that it calls to avoid an implicit declaration.
	* stream.c (transport_user_options, transport_server_options):
	Only needed if TI_BIND is defined.
	* configure.in: Add -Wno-implicit to WARNFLAGS on SunOS 4.x.

	* process.c (internal_fork) [SVR4]: Fix a typo that omitted
	the tcp arguement from the call to exiting.  Add getrval2
	check so no fork processing is done in the child.
	(printwaitn): Initialize exited so that its value is defined
	for all flows of execution.

Tue May  2 22:39:42 1995  Rick Sladkey  <jrs@world.std.com>

	* linux/dummy.h: Add aliases for sysfs, personality, afs_syscall,
	setfsuid, setfsgid, and _llseek syscalls.
	* linux/syscall.h: Add prototypes for them.
	* linux/syscallent.h: Add them to the syscall entries table.
	* system.c (headers) [LINUX]: Include linux/unistd.h to get __NR_*
	defines and conditionally include linux/personality.h if
	__NR_personality is defined.
	(personality_options) [LINUX]: New table.
	(sys_personality) [LINUX]: New function.

Tue May  2 00:20:39 1995  Rick Sladkey  <jrs@world.std.com>

	* strace.c (trace) [!SVR4]: Change forever loop to one predicated
	on the number of traced processes so that we can have untraced
	children (e.g. via popen).

	* strace (main) [!SVR4]: Call fake_execve to get the actual
	exec and its arguments into the trace.
	(environ): Declare it.
	* process.c (fake_execve): New function.
	(headers): Include sys/syscall.h to get SYS_* defines.

	* process.c (sys_execv, sys_execve): Surround argument annotations
	with C comment delimiters.
	(printargv, printargc): The arg vector is an array of char pointers
	not ints.

	* strace.c (printleader): Also check for multiple -p arguments
	when deciding whether to print the pid field.

	* strace.c (strerror) [!HAVE_STRERROR]: New function.
	* defs.h (strerror, strsignal): Add these prototypes if we provide
	the functions.
	* configure.in (AC_CHECK_FUNCS): Add strerror.

	* strace.c (main, proc_poller): Add SIGPIPE to the list of caught
	and blocked signals.

	* strace.c (main): Add username option.  Verify they are root before
	letting them use it.  Look up the ids in the password file.  Set
	them just before executing the program.
	From Reuben Sumner <rasumner@undergrad.math.uwaterloo.ca>.

Sat Apr 29 00:09:56 1995  Rick Sladkey  <jrs@world.std.com>

	* version.c: Version 3.0.3 is released.

	* system.c (mount_flags) [LINUX]: Omit duplicated MS_NOSUID entry.
	From Reuben Sumner <rasumner@undergrad.math.uwaterloo.ca>.

	* strace.c (outfname): Initialize to NULL.
	(main): Defer output file processing until after arguments.
	Allow either a pipe or a bang for command arguments.
	Check if outfname is NULL instead of checking outf for stderr.
	Reinitialize each startup TCB's outf to fix -p/-o ordering bug.
	(droptcb): Reset close TCB's outf to NULL instead of stderr.
	(tprintf): Avoid calling vfprintf if outf is NULL.

	* strace.c (main): Use popen if -o argument begins with a pipe.
	From Marty Leisner <leisner@sdsp.mc.xerox.com>.

	* process.c (printstatus): Fix a typo where WIFSIGNALED was meant
	but WIFSTOPPED was used.

	* Makefile.in: Add an EXTRA_DEFS variable and use it in the .c.o
	rule to prevent the comment from being untrue.

Fri Apr 28 22:01:56 1995  Rick Sladkey  <jrs@world.std.com>

	* strace.c (sys_exit): Move follow fork code to internal_exit.
	(sys_fork): Move follow fork code to internal_fork.
	(sys_execv, sys_execve): Move follow fork code to internal_exec.
	(sys_waitpid, sys_wait4): Move follow fork code to internal_wait.
	(vforking): Remove this static variable and check scno in
	internal_fork instead.
	(internal_exit, internal_fork, internal_exec, internal_wait): New
	functions.
	* defs.h: Add prototypes for the new internal_* functions.
	* syscall.c (syscall): Move syscall entering trace qualifier check
	and reprint checking after context decoding and precede them with
	a call to internal_syscall.  Precede syscall exiting trace
	qualifier check with a call to internal_syscall.
	(internal_syscall): New function.

	* defs.h (struct tcb): Make scno signed.
	* strace.c (syscall) Make u_error signed.
	[LINUX, I386]: Avoid unsigned cast in eax check.
	* syscall.c (sys_indir): Make i, scno, and nargs signed.
	* desc.c (sys_select): Make cumlen unsigned

Mon Apr 24 23:52:47 1995  Rick Sladkey  <jrs@world.std.com>

	* net.c (socktypes): Add SOCK_PACKET.

Sun Apr  2 23:50:39 1995  Rick Sladkey  <jrs@world.std.com>

	* Makefile (clean): Check explicitly for a Makefile in subdirs
	before running make in them.

Sun Mar 26 12:37:21 1995  Rick Sladkey  <jrs@world.std.com>

	* strace.c [MIPS] (proc_open): Conditionalize run on MIPS.
	[MIPS] (detach): Initialize error for MIPS case.
	(trace): Initialize ioctl_result and ioctl_errno for overly helpful
	compilers.
	* syscall.c (decode_subcall): Move variable i into conditionals
	that use use it.
	* system.c (syssgi_options): Conditionalize SGI_RECVLMSG and
	SGI_SET_FPDEBUG that SGI decided to drop.  I don't have the stomach
	to change them all.
	* term.c (term_ioctl): Force [c_[iocl]flags members to long before
	printing since we don't know what the size of their type is.
	* util.c [SVR4, MIPS] (umoven): Prevent MIPS from using pread even
	if autoconf detects it since it seems to either not work or do
	something else entirely on Irix 5.3.

Sun Mar 26 00:01:11 1995  Rick Sladkey  <jrs@world.std.com>

	* version.c: Version 3.0.2 is released.
	* linux/dummy.h: Make sys_fchdir like sys_close instead of printargs
	so that the file descriptor arg is decimal.

Sat Mar 25 22:50:13 1995  Rick Sladkey  <jrs@world.std.com>

	* net.c [LINUX] (protocols): Explicitly define all IPPROTO_* entries
	because on Linux they are enumerators.

	* system.c [LINUX] (mount_flags): Handle renaming of MS_SYNC to
	MS_SYNCHRONOUS.

	* util.c (printxval): When there is no translation, print the actual
	number first and the the default value as a C comment.

	* net.c (sys_send, sys_sendto, sys_sendmsg, sys_getsockopt,
	sys_setsockopt): Change first argument from unsigned to signed to
	cater to the frequent practice of calling system calls with a file
	descriptor of -1.
	* mem.c (sys_mmap): Likewise.

Sun Mar 19 13:53:52 1995  Rick Sladkey  <jrs@world.std.com>

	* signal.c [LINUX] (signalent): Handle old and new values of SIGIO.

Sun Dec 11 22:51:51 1994  Rick Sladkey  <jrs@world.std.com>

	* version.c: Version 3.0.1 is released.
	* Makefile.in, configure.in, aclocal.m4: Changes for autoconf 2.0.
	* config.guess, config.guess: Update from the FSF.
	* install-sh: New from the FSF.

Mon Dec  5 20:51:29 1994  Rick Sladkey  <jrs@world.std.com>

	* Makefile.in: Add m68k arch.
	* acconfig.h (M68K): Add m68k define.
	* configure.in: Add detection of arch m68k.
	* process.c [M68K] (struct_user_offsets): Support m68k registers and
	offsets.
	* signal.c [M68K] (sigcontext_struct): Support m68k sigcontext
	structure.
	[M68K] (sys_sigreturn): Support m68k sigreturn handling.
	* syscall.c [M68K] (syscall): Support m68k syscall number register
	and errno in d0 instead of eax.
	* util.c [M68K] (getpc, printcall, setbpt, clearbpt): Support m68k
	program counter in PT_PC instead of EIP.
	[M68K] (LOOP): Support m68k loop instruction.
	From Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>.

	* mem.c [MAP_ANONYMOUS] (mmap_flags): Correct inadvertent reference
	to MAP_FIXED instead of MAP_ANONYMOUS.
	From Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>.

	* signal.c [LINUX] (signalent): Signal 30 is now SIGPWR.
	From Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>.

Mon Dec  5 01:05:46 1994  Rick Sladkey  <jrs@world.std.com>

	* defs.h (tprintf): Fix typo in non-gcc ansi prototype for tprintf.
	Reported by Thanh Ma <tma@encore.com>.

	* strace.c (cleanup): Send SIGCONT before SIGTERM because Linux
	1.1.62 doesn't continue a traced child when the parent exits.
	Reported by Matt Day <mday@artisoft.com>.

	* system.c [LINUX]: Include netinet/in.h before arpa/inet.h.

	* util.c (printstr): Fix longstanding bug in notating string
	continuation.

	* strace.c [SVR4] (proc_open): Specifically wait for the child the
	child to go into the execve syscall to avoid spurious traces.
	[LINUX] (detach): Conditionalize the status variable.

Sun Dec  4 23:21:42 1994  Rick Sladkey  <jrs@world.std.com>

	* Makefile.in: Add mips arch.
	* acconfig.h (MIPS): Add mips define.
	* configure.in: Add detection of opsys irix5 and arch mips.  Check
	for prctl function.
	Check for sys/sysconfig.h header.
	* defs.h (MAX_ARGS): Bump maximum syscall arguments from 8 to 32.
	* file.c [SVR4]: Include sys/cred.h.
	(access_flags): Update access flags for SGI.
	(sprinttime): Change type of sprinttime argument from unsigned
	long to time_t.
	* process.c [HAVE_PRCTL]: Include sys/prctl.h.
	[HAVE_PRCTL] (prctl_options, sys_prctl): New for SGI.
	(printsiginfo): Conditionally compile SI_TIMER and SI_MESGQ.
	Cast si_band member to long before printing.
	* signal.c (sigact_flags): Add _SA_BSDCALL for SGI.
	(sigprocmaskcmds): Add SIG_SETMASK32 for SGI.
	* strace.c [SVR4] [MIPS]:
	(foobar): New dummy signal handler.
	(main): Install a dummy signal handler in the child before pausing
	to work around an SGI bug in PRSABORT.
	(proc_open): Send a interrupt to the child instead of aborting the
	syscall which doesn't work on Irix5.2.
	* svr4/dummy.h: Add new unfinished SGI syscalls
	(e.g. sys_sysmp, sys_sginap, etc.).  Handle some SGI syscalls like
	existing calls (e.g. sys_ksigaction like sys_sigaction).
	Printargs does the print thing for sys_sethostid.
	* svr4/syscall.h: Declare all new SGI syscalls.
	(SGI_KLUDGE): Define syscall table starting index to be 1 for SGI
	and add it to all subcall entry points.
	(SYS_pgrpsys_subcall, SYS_sigcall_subcall, SYS_context): Don't
	decode as subcalls on MIPS. Instead, use the normal syscalls.
	* svr4/syscallent.h [MIPS]: Lead syscall table with a dummy entry
	since SGI syscall numbers are off by one.
	[MIPS] (sys_pgrpsys): Rename to sys_setpgrp on SGI.
	[MIPS] (sys_xenix): Rename to sys_syssgi on SGI.
	[MIPS] (sys_sysmachine): Rename to sys_sysmips on SGI.
	[MIPS]: Conditionalize SVR4 extension into SGI and Solaris classes.
	* syscall.c (dumpio): Validate descriptor against MAX_QUALS.
	[HAVE_PR_SYSCALL] (syscall): Conditionalize SYS_vfork.
	[MIPS] (syscall): Add SGI section for decoding u_error and u_rval.
	Add workaround for broken SGI pr_sysarg on syscall entry.
	[SVR4] (syscall): Conditionalize subcall decoding for
	SYS_ptrpsys_subcall, SYS_sigcall_subcall and SYS_context_subcall.
	[SVR4] [MIPS] (getrval2): Handle SGI.
	* syscallent.sh: Dork the sed line to be choosier about SYS_ lines.
	* system.c [HAVE_SYSCONFIG_H]: Include sys/sysconfig.h.
	[MIPS] (syssgi_options, sys_syssgi): New for SGI.
