Project import
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..4b1e2ba
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,92 @@
+#
+#    Copyright (c) 2010-2011 Nest, Inc.
+#    All rights reserved.
+#
+#    This document is the property of Nest. It is considered
+#    confidential and proprietary information.
+#
+#    This document may not be reproduced or transmitted in any form,
+#    in whole or in part, without the express written permission of
+#    Nest.
+#
+#    Description:
+#      This file is the makefile for the system call tracer (strace).
+#
+
+BuildConfigSpecialized	:= No
+BuildProductSpecialized	:= No
+
+include pre.mak
+
+PackageName		:= strace
+
+PackageExtension	:= tar.bz2
+PackageSeparator	:= -
+
+PackagePatchArgs	:=
+
+PackageArchive		:= $(PackageName).$(PackageExtension)
+PackageSourceDir	:= $(PackageName)$(PackageSeparator)$(PackageVersion)
+
+PackageBuildMakefile	= $(call GenerateBuildPaths,Makefile)
+
+CleanPaths		+= $(PackageLicenseFile)
+
+all: $(PackageDefaultGoal)
+
+# Generate the package license contents.
+
+$(PackageSourceDir)/COPYRIGHT: source
+
+$(PackageLicenseFile): $(PackageSourceDir)/COPYRIGHT
+	$(copy-result)
+
+# Extract the source from the archive and apply patches, if any.
+
+$(PackageSourceDir): $(PackageArchive) $(PackagePatchPaths)
+	$(expand-and-patch-package)
+
+# Prepare the sources.
+
+.PHONY: source
+source: | $(PackageSourceDir)
+
+# Patch the sources, if necessary.
+
+.PHONY: patch
+patch: source
+
+# Generate the package build makefile.
+
+$(PackageBuildMakefile): | $(PackageSourceDir) $(BuildDirectory)
+	$(Verbose)cd $(BuildDirectory) && \
+	$(CURDIR)/$(PackageSourceDir)/configure \
+	INSTALL="$(INSTALL) $(INSTALLFLAGS)" \
+	CC="$(CC)" STRIP=$(STRIP) \
+	--build=$(HostTuple) \
+	--host=$(TargetTuple) \
+	--prefix=/usr
+
+# Configure the source for building.
+
+.PHONY: configure
+configure: source $(PackageBuildMakefile)
+
+# Build the source.
+
+.PHONY: build
+build: configure
+	$(Verbose)$(MAKE) $(JOBSFLAG) -C $(BuildDirectory) all
+
+# Stage the build to a temporary installation area.
+
+.PHONY: stage
+stage: build | $(ResultDirectory)
+	$(Verbose)$(MAKE) $(JOBSFLAG) -C $(BuildDirectory) DESTDIR=$(ResultDirectory) install
+
+clean:
+	$(Verbose)$(RM) $(RMFLAGS) -r $(PackageSourceDir)
+	$(Verbose)$(RM) $(RMFLAGS) -r $(BuildDirectory)
+	$(Verbose)$(RM) $(RMFLAGS) -r $(ResultDirectory)
+
+include post.mak
diff --git a/strace-4.5.20/AUTHORS b/strace-4.5.20/AUTHORS
new file mode 100644
index 0000000..bbba831
--- /dev/null
+++ b/strace-4.5.20/AUTHORS
@@ -0,0 +1 @@
+See the file CREDITS.  Automake likes us to have this file called AUTHORS.
diff --git a/strace-4.5.20/COPYRIGHT b/strace-4.5.20/COPYRIGHT
new file mode 100644
index 0000000..faaa2d8
--- /dev/null
+++ b/strace-4.5.20/COPYRIGHT
@@ -0,0 +1,31 @@
+Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
+Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+Copyright (c) 1993 Ulrich Pegelow <pegelow@moorea.uni-muenster.de>
+Copyright (c) 1995, 1996 Michael Elizabeth Chastain <mec@duracef.shout.net>
+Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+Copyright (C) 1998-2001 Wichert Akkerman <wakkerma@deephackmode.org>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. The name of the author may not be used to endorse or promote products
+   derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+$Id$
diff --git a/strace-4.5.20/CREDITS b/strace-4.5.20/CREDITS
new file mode 100644
index 0000000..1b6600f
--- /dev/null
+++ b/strace-4.5.20/CREDITS
@@ -0,0 +1,49 @@
+The primary authors of strace are:
+
+	Paul Kranenburg <pk@cs.few.eur.nl>
+	Branko Lankester <branko@hacktic.nl>
+	Rick Sladkey <jrs@world.std.com>
+
+Thanks to the follow people for contributing to strace by reporting
+bugs, providing fixes, providing information, providing resources or
+porting to new systems:
+
+	Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+	Arkadiusz Miskiewicz <misiek@pld.org.pl>
+	Marty Leisner <leisner@sdsp.mc.xerox.com>
+	Lupe Christoph <lupe@alanya.isar.muc.de>
+	Thanh Ma <tma@encore.com>
+	Keith Thompson <kst@alsys.com>
+	Roland Borde <bo@uebemc.siemens.de>
+	Matt Day <mday@artisoft.com>
+	Joe Ilacqua <spike@world.std.com>
+	Ju"rgen Fluk <louis@marco.de>
+	Bo Kullmar <bk@kullmar.se>
+	Leonard N. Zubkoff <lnz@dandelion.com>
+	Reuben Sumner <rasumner@undergrad.math.uwaterloo.ca>
+	Juergen Weigert <jnweiger@immd4.informatik.uni-erlangen.de>
+	Linus Torvalds <Linus.Torvalds@cs.Helsinki.FI>
+	Michael E Chastain <mec@duracef.shout.net>
+	Aaron Ucko <UCKO@VAX1.ROCKHURST.EDU>
+	David S. Miller <davem@caip.rutgers.edu>
+	Matthias Pfaller <leo@dachau.marco.de>
+	Thomas Bogendoerfer <tsbogend@bigbug.franken.de>
+	Richard Henderson <richard@twiddle.tamu.edu>
+	Tom Dyas <tdyas@eden.rutgers.edu>
+	Henrik Storner <storner@osiris.ping.dk>
+	David Mosberger-Tang <davidm@hpl.hp.com>
+	Ulrich Drepper <drepper@cygnus.com>
+	Nate Eldredge <nate@cartsys.com>
+	Jakub Jelinek <jj@ultra.linux.cz>
+	John Hughes <john@Calva.COM>
+	Richard Braakman <dark@xs4all.nl>
+	Florian Lohoff <flo@rfc822.org>
+	D.J. Barrow <djbarrow@de.ibm.com>
+	Topi Miettinen <Topi.Miettinen@nic.fi>
+	Gaël Roualland <gael.roualland@iname.com>
+	Richard Hirst <rhirst@linuxcare.com>
+	Ganesan Rajagopal <rganesan@myrealbox.com>
+	Greg Banks <gbanks@pocketpenguins.com>
+	Andi Kleen <ak@suse.de>
+	Michal Ludvig <mludvig@suse.cz>
+	Heiko Carstens <heiko.carstens@de.ibm.com>
diff --git a/strace-4.5.20/ChangeLog b/strace-4.5.20/ChangeLog
new file mode 100644
index 0000000..9538df5
--- /dev/null
+++ b/strace-4.5.20/ChangeLog
@@ -0,0 +1,595 @@
+2010-04-13  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Prepare for 4.5.20 release
+	* NEWS: Update for 4.5.20 release.
+	* configure.ac: Version 4.5.20.
+	* debian/changelog: 4.5.20-1.
+	* strace.spec: 4.5.20-1.
+
+2010-04-13  Frederik Schüler  <fs@debian.org>
+
+	Update debian/* files for the upcoming release
+	* debian/control: update standards-version to 3.8.4.
+	* debian/rules: allow parallel building.
+	* debian/rules: comment out verbose build, only needed for debugging.
+	* debian/rules: clean up clean: target, dh_clean does most of the work
+	  already.
+	* debian/rules: use *-stamp instead of stamp-*, so dh_clean can tidy
+	  up for us.
+
+2010-04-13  Heiko Carstens  <heiko.carstens@de.ibm.com>
+
+	Fix s390 system call table list
+	* linux/s390/syscallent.h: Add the missing entries for preadv and
+	pwritev to the system call table list.
+	* linux/s390x/syscallent.h: Likewise.
+
+2010-04-07  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Update linux/ioctlent.h
+	* linux/ioctlent.sh: Search in asm-generic directory as well.
+	* linux/ioctlent.h: Regenerated.
+
+	Update linux/*/syscallent.h files to match Linux kernel v2.6.33
+	* linux/alpha/syscallent.h: Add 47 hooks.
+	* linux/arm/syscallent.h: Update hooks for pselect6, ppoll,
+	epoll_pwait.  Add 11 hooks.
+	* linux/bfin/syscallent.h: Update hooks for prctl, fallocate,
+	signalfd4, eventfd2, epoll_create1, dup3, pipe2, perf_event_open.
+	Hook up recvmmsg.
+	* linux/hppa/syscallent.h: Update hooks for signalfd4, eventfd2,
+	epoll_create1, dup3, pipe2, perf_event_open.
+	* linux/i386/syscallent.h: Fix syscall name for the kexec_load hook.
+	Add 5 hooks.
+	* linux/ia64/syscallent.h: Fix syscall name for the kexec_load hook.
+	Add 4 hooks.
+	* linux/m68k/syscallent.h: Add 50 hooks.
+	* linux/powerpc/syscallent.h: Fix hook for timerfd_create.  Fix
+	6 syscall names to match the kernel.  Use sys_semop to parse semop.
+	Add 14 hooks.
+	* linux/s390/syscallent.h: Fix syscall name for the kexec_load hook.
+	Add 14 hooks.
+	* linux/s390x/syscallent.h: Likewise.
+	* linux/sh/syscallent.h: Add 13 hooks.
+	* linux/sh64/syscallent.h: Add 15 hooks.
+	* linux/sparc/syscallent.h: Add 22 hooks.
+	* linux/x86_64/syscallent.h: Add 5 hooks.
+
+	Enhance recvmmsg parser
+	* net.c (sys_recvmmsg): Decode mmsghdr structure on exit from the
+	syscall.  Decode timespec structure both on entrance and on exit.
+
+2010-04-07  Andreas Schwab  <schwab@linux-m68k.org>
+
+	Decode recvmmsg syscall
+	* net.c (do_msghr): New function to print struct msghdr.
+	(printmsghdr): Use it.
+	(printmmsghdr, sys_recvmmsg): New.
+	* linux/syscall.h: Declare sys_recvmmsg.
+	(SYS_sub_recvmmsg): Define.
+	(SYS_socket_nsubcalls): Bump.
+	* linux/sparc/syscall.h: Likewise.
+	* linux/arm/syscallent.h: Add sys_recvmmsg.
+	* linux/bfin/syscallent.h: Likewise.
+	* linux/i386/syscallent.h: Likewise.
+	* linux/m68k/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/ia64/syscallent.h: Adjust.
+
+2010-04-07  Dmitry V. Levin  <ldv@altlinux.org>
+
+	* strace.1: Fix quoting of hyphens and formatting of strace options.
+
+	Split trace_syscall() for better readability
+	* syscall.c (trace_syscall): Split into trace_syscall_exiting() and
+	trace_syscall_entering().
+
+	Implement -C option to combine regular and -c output
+	* defs.h (cflag_t): New enum.
+	* strace.1: Document -C option.
+	* strace.c (cflag): Update type.
+	(main): Handle -C option.
+	(trace): Update use of cflag.
+	* count.c (count_syscall): Move clearing of TCB_INSYSCALL to ...
+	* syscall.c (trace_syscall): ... here.  Update use of cflag.
+	Based on patch by Adrien Kunysz.
+
+	Fix "make dist" regression introduced by commit v4.5.19-12-g5078770
+	* Makefile.am (EXTRA_DIST): Rename linux/syscallent.h to linux/i386/syscallent.h
+
+	* desc.c (sys_epoll_pwait): Fix output formatting bug.
+
+	* desc.c (decode_select): Fix potential stack buffer overflow.
+
+2010-03-31  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Fix msgsnd indirect ipccall decoding
+	This regression was introduced by commit v4.5.18-136-g783f5bc.
+	* ipc.c (tprint_msgsnd): Add and use "flags" argument.
+	(sys_msgsnd): Pass "flags" argument to tprint_msgsnd().
+	Patch by Anton Blanchard.
+
+2010-03-23  Mark Wielaard  <mjw@redhat.com>
+
+	Hook up inotify_init1 open mode flags printer
+	* file.c [LINUX] (sys_inotify_init1): New function.
+	* linux/syscall.h: Declare new sys_inotify_init1 handler.
+	* linux/bfin/syscallent.h: Hook up new handler.
+	* linux/hppa/syscallent.h: Likewise.
+	* linux/i386/syscallent.h: Likewise.
+	* linux/x86_64/syscallent.h: Likewise.
+
+2010-03-09  Andreas Schwab  <schwab@redhat.com>
+
+	Avoid spurious error when checking for linux/netlink.h
+	* configure.ac: Include <asm/types.h> when checking for
+	linux/netlink.h.
+
+2010-02-23  Andreas Schwab  <schwab@linux-m68k.org>
+
+	Fix reporting signal mask by sigreturn on powerpc
+	* signal.c (sys_sigreturn) [POWERPC]: Skip dummy stack frame when
+	locating signal context.
+
+2010-02-09  David Daney  <ddaney@caviumnetworks.com>
+
+	Fix MIPS N32/N64 compile error
+	* syscall.c [LINUX_MIPSN32 || LINUX_MIPSN64] (syscall_enter): Pass
+	tcp->pid to ptrace().
+
+2010-02-05  Chris Metcalf  <cmetcalf@tilera.com>
+
+	Add support for the TILE architecture
+	* configure.ac: Add TILE to the list of supported architectures.
+	* defs.h: Define TCB_WAITEXECVE for TILE.
+	* linux/tile/syscallent.h: New file.
+	* Makefile.am (EXTRA_DIST): Add linux/tile/syscallent.h
+	* process.c (change_syscall, struct_user_offsets): Add TILE support.
+	* syscall.c (get_scno, get_error, syscall_enter): Likewise.
+	* mem.c (mmap_flags, print_mmap): Add MAP_CACHE_xxx TILE extensions
+	support.
+	* signal.c (sigact_flags): Add SA_NOPTRACE.
+	(sys_sigreturn): Add TILE support.
+
+2010-02-04  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Remove dead code
+	* defs.h (tv_tv): Remove.
+	* net.c (sys_xsetsockaddr): Remove commented out dead code.
+	* process.c (setarg, sys_execv, sys_execve, struct_user_offsets):
+	Likewise.
+	* signal.c (sys_sigsuspend): Likewise.
+	* strace.c (reaper, trace): Likewise.
+	* stream.c (internal_stream_ioctl): Likewise.
+	* syscall.c (trace_syscall): Likewise.
+	* term.c (term_ioctl): Likewise.
+	* util.c (tv_tv, umoven, uload, getpc, fixvfork, setbpt, clearbpt):
+	Likewise.
+
+	Merge Linux internal_clone() into internal_fork()
+	* defs.h (internal_clone): Remove.
+	* process.c (internal_clone): Merge into internal_fork().
+	(internal_fork) [!LINUX]: Remove dead code.
+	* syscall.c (internal_syscall): Replace internal_clone() with
+	internal_fork().
+
+	* Makefile.am (INCLUDES): Remove redundant search directories.
+
+2010-02-04  Frederik Schüler  <fs@debian.org>
+
+	Update debian/* files
+	* debian/control: add sparc64 to the architectures list.
+	This closes Debian bug #560062
+	* Backport commit f0df31e71a58c6e79ba77c1a9d84b2f38d44bec7 to fix FTBFS.
+	This closes Debian bug #560516
+	* debian/control: Update standards-version to 3.8.3.
+	* debian/control: Lower package priority to optional, matching
+	the archive override.
+	* debian/control: add ${misc:Depends} to Depends: lines where
+	appropriate.
+	* debian/watch: new file, allows automatic tracking of new
+	upstream versions.
+	* debian/source/format: new file, adapt to debian source format "quilt"
+	* debian/rules: indentation cleanups; use dh_testroot and dh_prep
+	in clean target.
+
+2010-01-25  Andreas Schwab  <schwab@redhat.com>
+
+	Fix spurious failure of AC_STAT64 test
+	* acinclude.m4 (AC_STAT64): Include <sys/types.h> first.
+
+2010-01-12  Andreas Schwab  <schwab@redhat.com>
+
+	Don't kill the process when detaching
+	* strace.c (detach): Call clearbpt when TCB_BPTSET is set.
+
+2009-12-25  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Decode fifth argument of mremap syscall
+	* mem.c (sys_mremap): Decode fifth argument.
+	* linux/*/syscallent.h: Update the number of mremap syscall arguments.
+
+2009-12-24  Chris Metcalf  <cmetcalf@tilera.com>
+
+	* mem.c (sys_mbind): Display first argument in hex
+
+	* mem.c (mremap_flags): Add MREMAP_FIXED
+
+2009-11-16  Mike Frysinger  <vapier@gentoo.org>
+
+	Move i386-specific files out of common linux dir
+	* linux/syscallent.h: Moved to ...
+	* linux/i386/syscallent.h: ... here.
+	* linux/ia64/syscallent.h: Update i386 syscallent.h include.
+	* linux/sparc/gen.pl: Likewise.
+	* linux/x86_64/syscallent1.h: Likewise.
+
+2009-11-16  Andreas Schwab  <schwab@redhat.com>
+
+	Remove support for pre-C89
+	* defs.h: Remove references to __STDC__ and P macros.
+	* strace.c: Likewise.
+
+2009-11-13  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Decode more SOL_PACKET socket options
+	* net.c (sockpacketoptions): Add more PACKET_* entries.
+	(sys_getsockopt): Decode PACKET_STATISTICS.
+	(printsockopt): Decode PACKET_RX_RING and PACKET_TX_RING.
+	Patch by Gabor Gombas.
+
+2009-11-11  Andreas Schwab  <schwab@redhat.com>
+
+	Ignore errors if a thread is killed
+	* util.c (clearbpt): Ignore ESRCH error.
+
+2009-11-06  Bernhard Reutner-Fischer  <rep.dot.nop@gmail.com>
+
+	Fix handling of Linux systems without struct statfs64
+	* acinclude.m4 (AC_STATFS64): New macro to check for struct statfs64.
+	* configure.ac: Call AC_STATFS64.
+	* file.c (printstatfs64, sys_statfs64, sys_fstatfs64): Compile only
+	  if struct statfs64 is available.
+
+2009-11-06  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Fix getsockopt decoding on architectures where sizeof(long) > sizeof(int)
+	* net.c (sys_getsockopt): Optimize output a bit.
+	Decode integer argument using printnum_int(), patch by Gabor Gombas.
+
+	Check umove() return code
+	* bjm.c (sys_query_module): Print input parameters when entering
+	syscall.  Fix handling of syscall error.  Handle unlikely umove()
+	failures.
+	* ipc.c (tprint_msgrcv): New function.  Move part of msgrcv parser code
+	here, add check umove() return code.
+	(sys_msgsnd): Print msqid parameter as int instead of long.
+	(sys_msgrcv): Likewise.  Use tprint_msgrcv().
+	* process.c (print_affinitylist): Check umove() return code.
+	* sock.c (sock_ioctl): Handle unlikely umove() failure in the
+	SIOCGIFCONF parser.
+
+	Fix check for linux/netlink.h on Linux 2.6.32-rc5+
+	* configure.ac (AC_CHECK_HEADERS): In check for linux/netlink.h, include
+	sys/socket.h instead of linux/socket.h beforehand.
+
+2009-11-04  Andreas Schwab  <schwab@redhat.com>
+
+	Decode fallocate on PowerPC
+	* linux/powerpc/syscallent.h: Decode fallocate.
+
+	Factor out printing of 64bit syscall argument
+	* defs.h (ALIGN64): Remove.
+	(printllval): Declare.
+	* util.c (printllval): Define.
+	* file.c (sys_readahead): Use printllval.
+	(sys_lseek64): Likewise.
+	(sys_truncate64): Likewise.
+	(sys_ftruncate64): Likewise.
+	(sys_fadvise64): Likewise.
+	(sys_fadvise64_64): Likewise.
+	(sys_fallocate): Likewise.
+	* io.c (sys_pread): Likewise.
+	(sys_pwrite): Likewise.
+	(sys_pread64): Likewise.
+	(sys_pwrite64): Likewise.
+	* mem.c (sys_mmap64): Likewise.
+
+2009-11-03  Andreas Schwab  <schwab@redhat.com>
+
+	Correct decoding of readahead and fadvice64(_64) on PowerPC
+	* file.c (sys_readahead): Align 64bit argument.  Handle PowerPC64
+	like other 64bit architectures.
+	(sys_fadvise64): Likewise.
+	(sys_fadvise64_64): Handle PowerPC like ARM.
+	* linux/powerpc/syscallent.h (sys_readahead): Account for 64bit
+	argument alignment on PowerPC32.
+
+2009-10-27  Andreas Schwab  <schwab@redhat.com>
+
+	Maintain separate print column for each process
+	* defs.h (struct tcp): Add curcol.
+	* strace.c: (alloc_tcb): Initialize it.
+	(trace): Use curcol from current process and save it before
+	continuing.
+	(tprintf): Don't modify curcol on output error.
+
+2009-10-21  Roland McGrath  <roland@redhat.com>
+
+	* strace.spec: 4.5.19-1 release.
+
+2009-10-21  Dmitry V. Levin  <ldv@altlinux.org>
+
+	* file.c (printstat64): Cleanup trailing whitespace.
+
+2009-10-16  Andreas Schwab  <schwab@redhat.com>
+
+	Fix decoding of newfstatat syscall on x86-64
+	* file.c (printstat64) [LINUX && X68_64]: If tracing a 64-bit
+	process redirect to printstat.
+	Fixes RH#529316 "Field values shown for "newfstatat" system
+	call are incorrect"
+
+2009-10-12  Dmitry V. Levin  <ldv@altlinux.org>
+
+	* configure.ac (AC_CHECK_HEADERS): Remove asm/reg.h.
+
+2009-10-12  Mike Frysinger  <vapier@gentoo.org>
+
+	sparc/linux: Rewrite to use asm/ptrace.h
+	The current sparc/linux code uses asm/reg.h, but recent Linux kernels
+	dropped that header completely.  So switch over to the ptrace headers
+	as those should stick around indefinitely as part of the ABI.
+
+	* defs.h [LINUXSPARC] (U_REG_G1, U_REG_O0, U_REG_O1): Define.
+	* process.c: Drop asm/regs.h include.
+	[SPARC || SPARC64] (change_syscall): Change struct regs to struct pt_regs.
+	* signal.c: Drop asm/regs.h include.
+	(m_siginfo_t): Unify [SPARC || SPARC64] and [MIPS].
+	[SPARC || SPARC64] (sys_sigreturn): Change struct regs to struct pt_regs.
+	* syscall.c: Drop asm/regs.h include.
+	[SPARC || SPARC64] (internal_syscall, get_scno, get_error, force_result,
+	syscall_enter): Change struct regs to struct pt_regs.
+	* util.c: Drop asm/regs.h include.
+	(_hack_syscall5, _ptrace): Delete.
+	[SPARC || SPARC64] (getpc, printcall, arg_setup_state): Change
+	struct regs to struct pt_regs.
+
+2009-10-11  Roland McGrath  <roland@redhat.com>
+
+	* make-dist: Clean up.
+
+	* configure.ac: Use AC_CONFIG_AUX_DIR([.]).
+
+2009-10-09  Dmitry V. Levin  <ldv@altlinux.org>
+
+	* make-dist: New script for preparing release tarballs.
+
+	* git-set-file-times: Import from rsync.
+
+	* Makefile.am [MAINTAINER_MODE]: Define and export TAR_OPTIONS.
+
+2009-10-08  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Enhance msgsnd() parser
+	* ipc.c (tprint_msgsnd): New function.  Move msgsnd parser code here,
+	add check for umove() return code.
+	(sys_msgsnd): Use tprint_msgsnd().
+
+	* NEWS: Update for 4.5.19 release.
+
+	Enhance semop()/semtimedop() sembuf parser
+	* ipc.c (tprint_sembuf): New function. Move sembuf parser code here,
+	add abbrev() support.
+	(sys_semop, sys_semtimedop): Use tprint_sembuf().
+
+2009-10-08  Jakub Bogusz  <qboosh@pld-linux.org>
+
+	Add pretty printing of sembuf argument to semop() and semtimedop()
+	* ipc.c (semop_flags): New xlat structure.
+	(sys_semop, sys_semtimedop): Add pretty printing of sembuf argument.
+
+2009-10-08  Mike Frysinger  <vapier@gentoo.org>
+
+	Add support for Linux/no-mmu with vfork
+	* configure.ac (AC_CHECK_FUNCS): Add fork.
+	* strace.c (strace_vforked): Define.
+	(startup_child): Do not raise SIGSTOP if vforked.
+	(trace): Skip first exec when starting up after vforked.
+	* syscall.c [BFIN] (get_scno): Drop waitexec checks.
+
+	Avoid malloc(0) in getdents parsers
+	On end of directory, getdents returns 0.  This return value is used to
+	then try and do malloc(0), but on some systems this will always return
+	NULL.  Since the code won't read the pointer in question if len is 0,
+	then don't bother calling malloc(0) and set the pointer to NULL ourself.
+	* file.c (sys_getdents, sys_getdents64): Avoid malloc(0) call.
+
+2009-10-07  Mike Frysinger  <vapier@gentoo.org>
+
+	Add sys_nanosleep() prototype for sparc
+	* linux/sparc/syscall.h (sys_nanosleep): New prototype.
+	Reported by Frederik Schüler.
+
+	Silence compiler warnings about implicit cast from pointer to integer
+	* util.c (do_ptrace): Cast ptrace() 4th arg to long.
+	(ptrace_restart): Drop void* cast on ptrace() 4th arg.
+
+	Ignore .gdb files from FLAT toolchains
+	* .gitignore: Add /*.gdb.
+
+	* configure.ac (AC_CHECK_FUNCS): Sort and expand.
+
+	Blackfin: Update ioctl/syscall lists
+	* linux/bfin/ioctlent.h: Sync list with latest kernel sources.
+	* linux/bfin/syscallent.h: Likewise.
+
+	ioctlsort: Check ppc hosts too
+	* linux/ioctlsort.c: Check for __powerpc__.
+
+2009-10-07  Andreas Schwab  <schwab@redhat.com>
+
+	Fix build on ia64
+	* linux/ia64/syscallent.h: Update for addition of accept4 syscall
+	in ../syscallent.h.
+
+2009-10-07  Roland McGrath  <roland@redhat.com>
+
+	* strace.spec (%doc): Add ChangeLog-CVS.
+
+	* Makefile.am (srpm): New phony target.
+
+	* Makefile.am (EXTRA_DIST): Add ChangeLog.
+	($(srcdir)/ChangeLog): New target, replaces gen-changelog phony target.
+	Put it inside [MAINTAINER_MODE].
+
+2009-10-06  Dmitry V. Levin  <ldv@altlinux.org>
+
+	* NEWS: Update for 4.5.19 release.
+
+2009-10-05  Frederik Schüler  <fs@debian.org>
+
+	Prepare debian/* files for release
+	* debian/rules: Do not ship ChangeLog anymore.
+	* debian/control: Update to Debian standards version 3.8.1, and remove
+	Roland from the Maintainers list.  This closes Debian bug #521458.
+	* debian/changelog: Document changes and prepare for release.
+
+2009-10-05  Dmitry V. Levin  <ldv@altlinux.org>
+
+	* defs.h [HPPA]: Lower MAX_ARGS from 32 to 6.
+
+	* ipc.c [LINUX] (sys_shmat): HPPA does not use an IPC multiplexer.
+	Based on patch from Carlos O'Donell.
+
+2009-10-05  Carlos O'Donell  <carlos@systemhalted.org>
+
+	* linux/hppa/syscallent.h: Update syscalls.
+	Based on work by Kyle McMartin and Helge Deller.
+
+	Fix SA_HANDLER function pointer comparisons for hppa
+	* signal.c (sys_sigaction): Cast SA_HANDLER function pointers to long.
+	(sys_rt_sigaction): Likewise.
+
+2009-10-05  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
+
+	CRIS: Correct first argument to upeek()
+	This complements commit ea0e6e80260d2b1b7ad40282012b0e47869bcddf.
+	* syscall.c [CRISV10 || CRISV32] (syscall_fixup, syscall_enter): Pass
+	tcp pointer instead of pid to upeek().
+	* util.c [CRISV10 || CRISV32] (printcall): Likewise.
+
+2009-10-05  Dmitry V. Levin  <ldv@altlinux.org>
+
+	* signal.c (do_signalfd): Fix typo in output format.
+
+2009-09-21  Dmitry V. Levin  <ldv@altlinux.org>
+
+	* Makefile.am (gen_changelog_start_date): Fix date.
+
+2009-09-19  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Prepare for 4.5.19 release
+	* NEWS: Update for 4.5.19 release.
+	* configure.ac: Version 4.5.19.
+	* debian/changelog: 4.5.19-1.
+	* strace.spec: 4.5.19-1.
+
+	Update debian/* to 4.5.18-1
+	* debian/changelog: Update to 4.5.18-1.
+	* debian/compat: Set compatibility level to 7.
+	* debian/control (Build-Depends): Update debhelper requirement.
+	(strace, strace64): Add Section and Priority tags.
+
+2009-09-19  Kirill A. Shutemov  <kirill@shutemov.name>
+
+	Fix fadvise64 decoding on ARM
+	* file.c (sys_fadvise64_64) [ARM]: Fix argument ordering.
+
+2009-09-18  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Fix follow fork/vfork on Linux ARM OABI
+	__NR_SYSCALL_BASE eis 0 for EABI and is 0x900000 for OABI.
+	* process (change_syscall) [LINUX && ARM]: Mask off the high order bits
+	when changing syscall.
+
+	Reviewed-by: Kirill A. Shutemov <kirill@shutemov.name>
+
+2009-09-18  Mike Frysinger  <vapier@gentoo.org>
+
+	Mark shell scripts as executable
+
+	Ignore ioctlsort helper program
+	* .gitignore: Add ioctlsort.
+
+	linux/errno: Add ERFKILL
+	* linux/errnoent.h: Change ERRNO_132 to ERFKILL according to errno 132
+	definition introduced in Linux 2.6.31.
+
+2009-09-01  Paolo Bonzini  <pbonzini@redhat.com>
+
+	Add accept4 socketcall
+	This second patch in the series adds support for accept4 as a socketcall
+	sub-call.  Besides the need to renumber all system calls, this poses
+	no problem.
+	Tested on i686.
+
+	* linux/arm/syscallent.h: Add accept4 socketcall.
+	* linux/m68k/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/syscallent.h: Likewise.
+
+	* linux/sparc/syscall.h (SYS_sub_accept4): Declare.
+	(SYS_socket_nsubcalls): Update.
+	* linux/syscall.h: Likewise.
+
+	Replace x86-64 paccept with accept4
+	This patch changes the paccept syscall to accept4 for x86-64, since
+	the former was dropped in Linux kernel commit v2.6.27-rc7-14-g2d4c826.
+	At the same time, it adds support for pretty printing its arguments.
+
+	* linux/x86_64/syscallent.h: Replace paccept with accept4,
+	hook in sys_accept4.
+	* net.c (sys_accept): Leave a small stub calling the new...
+	(do_accept): ... function, which also adds a flags_arg argument.
+	(sys_accept4): New.
+
+2009-08-28  Andreas Schwab  <schwab@redhat.com>
+
+	Zero-extend 32-bit addresses when printing argv array.
+	(printargv): Zero-extend 32-bit addresses.
+	Fixes RH#519480 "64-bit strace is lazy on execve of 32-bit
+	process".
+
+2009-08-12  Andreas Schwab  <schwab@redhat.com>
+
+	Add more futex decoding.
+	* process.c (FUTEX_WAIT_REQUEUE_PI, FUTEX_CMP_REQUEUE_PI)
+	(FUTEX_PRIVATE_FLAG, FUTEX_CLOCK_REALTIME): Define.
+	(futexops): Add entries for them.
+	(sys_futex): Decode FUTEX_CMP_REQUEUE_PI and
+	FUTEX_WAIT_REQUEUE_PI.
+
+2009-07-08  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Generate ChangeLog from git log
+	* .gitignore: Add ChangeLog
+	* ChangeLog: Rename to ChangeLog-CVS.
+	* Makefile.am (gen-changelog): New rule.
+	(dist-hook): Depend on it.
+	(EXTRA_DIST): Add ChangeLog-CVS.
+	* README-hacking: Describe changes.
+	* gitlog-to-changelog: Import from gnulib.
+
+
+See ChangeLog-CVS for older changes.
diff --git a/strace-4.5.20/ChangeLog-CVS b/strace-4.5.20/ChangeLog-CVS
new file mode 100644
index 0000000..b5262ad
--- /dev/null
+++ b/strace-4.5.20/ChangeLog-CVS
@@ -0,0 +1,5614 @@
+2009-07-08  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Clean up spacing to fix warnings reported by git diff --check.
+	* ChangeLog: Fix spaces before tab in indent.
+	* bjm.c: Likewise.
+	* debian/changelog: Likewise.
+	* strace-graph: Likewise.
+	* syscall.c: Likewise.
+	* INSTALL: Fix trailing blank lines.
+	* README-linux: Likewise.
+	* README-svr4: Likewise.
+	* linux/sparc/gen.pl: Likewise.
+	* linux/sparc/syscall1.h: Likewise.
+	* linux/sparc64/syscall1.h: Likewise.
+	* linux/x86_64/gentab.pl: Likewise.
+	* sunos4/syscall.h: Likewise.
+	* test/Makefile: Likewise.
+	* debian/rules: Fix trailing whitespaces.
+	* desc.c: Likewise.
+	* svr4/syscallent.h: Likewise.
+	* test/childthread.c: Likewise.
+	* test/leaderkill.c: Likewise.
+
+2009-07-07  Dmitry V. Levin  <ldv@altlinux.org>
+
+	* .cvsignore: Remove.
+	* README-CVS: Rename to README-hacking.
+	* Makefile.am (EXTRA_DIST): Remove README-CVS.
+
+2009-06-01  Dmitry V. Levin  <ldv@altlinux.org>
+
+	* bjm.c (sys_query_module): Fix format warning reported by
+	gcc -Wformat-security.
+	* file.c (tprint_open_modes): Likewise.
+	* process.c (printargv): Likewise.
+	* signal.c (printsignal): Likewise.
+
+	Clean up header checks.
+	* configure.ac: Reformat AC_CHECK_HEADERS to keep it sorted and
+	easily updated, and reduce merging errors in the future.
+	* system.c: Convert all non-standard #ifdef checks for specific
+	headers to regular #ifdef HAVE_*_H checks.
+	Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+
+2009-04-20  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	* file.c (printstatsol, printstat_sparc64):
+	Remove NULL/error check for addr parameter.
+	(printoldstat, printstat, printoldstat64):
+	Move NULL/error check for addr parameter
+	so that it happens before printstatsol/printstat_sparc64 calls.
+
+2009-04-16  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	* file.c (print_dirfd): Use int for file descriptor, not a long.
+	* process.c (printwaitn): Use int for PID, not a long.
+
+2009-04-15  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	* signal (sys_rt_sigtimedwait): Fix sigtimedwait syscall decoding.
+
+2009-04-15  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	* signal (sys_rt_sigaction): Print struct sigaction correctly
+	in 32/64 environment.
+	* desc.c (printflock): Add #ifdefs around earlier flock 32/64 fix
+	so that we don't waste time on arches with one personality.
+
+2009-04-14  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	* signal.c: Whitespace, comment, and style fixes, no code changes.
+	* file.c: Ditto.
+	* time.c: Ditto.
+	* process.c: Ditto.
+	* resource.c: Ditto.
+
+2009-03-23  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	* system.c (sram_alloc_flag): Add L2_SRAM constant.
+	by Mike Frysinger (vapier AT gentoo.org).
+	(sys_sram_alloc): Fix improperly used %zu:
+	tcp->u_arg is not a size_t, it is a long.
+	* net.c (printcmsghdr): Fix improperly used %zu:
+	struct cmsghdr::cmsg_len is not a size_t.
+
+2009-03-10  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	Decode fcntl's F_{GET,SET}LEASE, F_NOTIFY, and F_DUPFD_CLOEXEC.
+	By Mike Frysinger (vapier AT gentoo.org)
+	* desc.c: Add F_SETLEASE, F_GETLEASE, F_NOTIFY,
+	F_DUPFD_CLOEXEC to fcntlcmds[]. Create notifyflags[] array.
+	(sys_fcntl): Handle new flags.
+
+	Optimize printing of open modes.
+	* defs.h: Declare sprint_open_modes(),
+	remove unused parameter in tprint_open_modes().
+	* desc.c (sprint_open_modes): Move fuction definition from here...
+	* file.c (sprint_open_modes): To here.
+	(tprint_open_modes): Use sprint_open_modes(), it already
+	generates needed string.
+	* ipc.c: Remove unused parameter from calls
+	to tprint_open_modes().
+
+2009-02-27  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	AVR32 support by Hans-Christian Egtvedt
+	(hans-christian.egtvedt AT atmel.com).
+	* configure.ac: Make it recognize avr32.
+	* defs.h: Define LINUX_AVR32.
+	* linux/avr32/syscallent.h: New file.
+	* Makefile.am: Reference linux/avr32/syscallent.h.
+	* proc.c (change_syscall, setarg): Add support for avr32.
+	(struct xlat struct_user_offsets[]): Ditto.
+	* syscall.c (get_scno): Ditto.
+	(get_error, force_result, syscall_enter): Ditto.
+	* util.c (getpc, printcall): Ditto.
+
+2009-02-25  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	CRIS support by Hinko Kocevar (hinko.kocevar AT cetrtapot.si)
+	* configure.ac: Make it recognize cris.
+	* process.c: Define ARG_xxx constants for cris.
+	(change_syscall): Add support for cris.
+	(struct_user_offsets): Add cris-specific data.
+	* signal.c (sys_sigreturn): Add support for cris.
+	* syscall.c (get_scno): Add support for cris.
+	(syscall_fixup): Add support for cris.
+	(get_error): Add support for cris.
+	(syscall_enter): Add support for cris.
+	(force_result): While at it, fix cpp directives indentation.
+	* util.c (printcall): Add support for cris.
+
+2009-02-24  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	* process.c: Indent preprocessor directives so that nesting
+	can be figured out. Add PTRACE_SET_SYSCALL to ptrace_cmds[].
+	* ioctlent.sh: Improved by Mike Frysinger.
+	* HACKING-scripts: New file by Mike Frysinger.
+
+2009-02-20  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	Further signalent.h cleanup.
+	* linux/ia64/signalent.h: Remove, it is identical to common signalent.h
+	sans "SIGRTnn" definitions which are redundant.
+	* linux/powerpc/signalent.h: Remove, it is identical to common signalent.h
+	sans outdated "SIGUNUSED" which should be "SIGSYS".
+	* linux/s390/signalent.h: Ditto.
+	* linux/s390x/signalent.h: Ditto.
+	* Makefile.am: Remove references to the above files.
+
+2009-02-20  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	Patch by Mike Frysinger (vapier AT gentoo.org).
+	* linux/ioctlent.sh: Update sed machinery to parse _IOC() macros
+	with two constants.
+
+2009-02-20  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	Patch by Mike Frysinger (vapier AT gentoo.org).
+	* Makefile.am: Remove reference to linux/sh/signalent.h.
+	* linux/sh/signalent.h: Remove, it is identical to common signalent.h.
+
+2009-02-20  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	Patch by Mike Frysinger (vapier AT gentoo.org).
+	* linux/errnoent.h: Make ERRNO_58 show EDEADLOCK for POWERPC.
+	* Makefile.am: Remove reference to linux/powerpc/errnoent.h.
+	* linux/powerpc/errnoent.h: Remove, we can use common errnoent.h now.
+
+2009-02-20  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	Patch by Mike Frysinger (vapier AT gentoo.org).
+	Removing redundant errnoent.h files.
+	* Makefile.am: Remove reference to linux/ia64/errnoent.h,
+	linux/s390/errnoent.h, linux/s390x/errnoent.h and linux/sh/errnoent.h.
+	* linux/ia64/errnoent.h: Remove, this arch uses common errnoent.h.
+	* linux/s390/errnoent.h: Ditto.
+	* linux/s390x/errnoent.h: Ditto.
+	* linux/sh/errnoent.h: Ditto.
+
+2009-02-10  Roland McGrath  <roland@redhat.com>
+
+	* configure.ac: Check for struct sigcontext.
+	* signal.c [LINUX] [M68K] (struct sigcontext): Don't define it if
+	[HAVE_STRUCT_SIGCONTEXT].
+	From Muttley Meen <muttley.meen@gmail.com>.
+
+2009-02-09  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	* defs.h: Correct the comment about TCB_SUSPENDED.
+	* strace.c: Fix misplaced #endif.
+	* util.c: Indent preprocessor directives, mark code parts
+	which can never be reached by compilation because of
+	the combination of #if directives. These are likely dead code,
+	I want to remove them later.
+
+2009-01-29  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	* strace.c (newoutf): Prevent -o FILENAME overflowing the stack.
+	(startup_attach): Fix wrong pid in "Process <PID> attached".
+	(handle_group_exit): Do not consider exit to be spurious if
+	tcb has TCB_STARTUP bit set - we can attach to the task
+	right before its death, it can legitimately happen.
+	(handle_stopped_tcbs): Ditto.
+
+2009-01-26  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	* process.c (printwaitn): Add comment about wait4() pid expansion.
+	Use #ifdef ALPHA instead of LINUX_64BIT, it was misleading
+	(by implying "any 64-bit platform").
+	* defs.h: Remove now-unused LINUX_64BIT define.
+	* resource.c (sys_osf_getrusage): Fix indentation.
+
+2009-01-26  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	* process.c (internal_clone): Fix fallout from tcb table expansion
+	simplification. Due to overlooked else, I forgot to group
+	fork_tcb(tcp) and alloctcb(pid) in a block.
+
+2009-01-23  Michal Nowak  <mnowak@redhat.com>
+
+	* syscall.c (get_scno): Fix warnings about unused variable 'pid'.
+
+2009-01-23  Michal Nowak  <mnowak@redhat.com>
+
+	* mem.c (print_ldt_entry): Fix warning:
+	Format '%#08lx' expects type 'long unsigned int', but
+	argument 2 was type 'unsigned int'.
+
+2009-01-17  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	Two cleanups: tcb table expansion failure is not really a survivable
+	event, we do not have any viable way to continue. No wonder most
+	places where that is detected have FIXMEs.
+	It's way simpler to treat as fatal failure, and handle it inside
+	tcb table expansion finctions.
+	Second cleanup: tidy up haphazard locations of a few externs.
+
+	* defs.h: Change return type of expand_tcbtab() to void.
+	Declare change_syscall().
+	* process.c: Change all callsites of alloctcb(), alloc_tcb() and
+	fork_tcb(), removing now-redundant error checks.
+	(fork_tcb): Change return type to void - it can't fail now.
+	* strace.c: Move extern declarations out of function bodies.
+	Change all callsites of alloctcb(), alloc_tcb() and
+	fork_tcb(), removing now-redundant error checks.
+	(expand_tcbtab): Change return type to void - it can't fail now.
+	On failure to expand, print a message, clean up, and exit.
+	(alloc_tcb): On failure to expand, print a message, clean up, and exit.
+	* util.c (setbpt): Remove extern declaration from function body.
+
+2009-01-14  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	* linux/bfin/syscallent.h: sys_futex has 6 parameters, not 5.
+
+2009-01-13  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	Fixes for ptrace() argument parsing.
+	* process.c: Add parsing of PTRACE_SETOPTIONS, PTRACE_GETEVENTMSG,
+	PTRACE_GETSIGINFO, PTRACE_SETSIGINFO.
+	* defs.h: Declare several "extern const struct xlat" arrays here.
+	* desc.c: Remove open_mode_flags[] and open_access_modes[]
+	extern declarations.
+	* net.c: Remove open_mode_flags[] extern declaration.
+	* sock.c: Remove addrfams[] extern declaration.
+	* util.c: Remove struct_user_offsets[] extern declaration.
+	* signal.c: Remove open_mode_flags[] extern declaration.
+
+2009-01-06  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	Output format fixes, improving the situation after recent
+	change which added beeter handling of processes suddenly
+	disappearing. Now we often do not finish last line
+	before exiting in those cases.
+	The only change affecting something other than output
+	is change in umovestr where we were calling
+	abort() on ptrace error.
+
+	* strace.c (trace): If trace_syscall() failed with ESRCH,
+	finish current output line with " <unfinished ...>".
+	(mp_ioctl): While we are at it, fix gross style mismatch
+	in this function definition. No code chages.
+	* syscall.c (trace_syscall): If decode fails on syscall exit,
+	finish current output line with "= ? <unavailable>".
+	* util.c (umoven): Do not complain if error is ESRCH.
+	(umovestr): Do not complain and do not abort() if error is ESRCH.
+	* defs.h: Remove unused tcp parameter from printtrailer().
+	* process.c: Adjust printtrailer() calls accordingly.
+	* strace.c: Adjust printtrailer() calls accordingly.
+	* syscall.c: Adjust printtrailer() calls accordingly.
+
+2009-01-06  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	* desc.c (printflock): Fix display of fcntl(F_SETLK) on
+	non-native 32-bit architecture.
+	Fixes RH#471169 "format fcntl64() system calls for
+	32 bit application incorrect".
+	* desc.c: const'ify two static struct xlat vector[]'s,
+	convert all remaining old style C parameter declarations
+	in this file.
+
+2008-11-13  Kirill A. Shutemov  <kirill@shutemov.name>
+
+	* linux/arm/syscallent.h: Update syscalls.
+	Based on patch by Enrico Scholz.
+
+	* linux/arm/syscallent.h: Fix build on ARM EABI which does not
+	provide syscalls socketcall and ipc.
+
+2009-01-01  Andreas Schwab  <schwab@suse.de>
+
+	* net.c (sys_accept): Properly decode third argument as pointer to
+	int.
+
+2008-12-30  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	Experimental support for -D option.
+	Unlike normal case, with -D *grandparent* process exec's,
+	becoming a traced process. Child exits (this prevents traced process
+	from having children it doesn't expect to have), and grandchild
+	attaches to grandparent similarly to strace -p PID.
+	This allows for more transparent interaction in cases
+	when process and its parent are communicating via signals,
+	wait() etc. Without -D, strace process gets lodged in between,
+	disrupting parent<->child link.
+	* strace.c: Add global flag variable daemonized_tracer for -D option.
+	(startup_attach): If -D, fork and block parent in pause().
+	In this case we are already a child, we in fact created a grandchild.
+	After attaching to grandparent, grandchild SIGKILLs parent.
+	(startup_child): If -D, parent blocks in wait(), then
+	execs the program to strace. Normally (w/o -D), it is child
+	who execs the program.
+	(main): Detect -D option, call startup_attach() if it is given.
+
+2008-12-30  Kirill A. Shutemov  <kirill@shutemov.name>
+
+	Fix some warnings on ARM build.
+	* defs.h: include <sys/ptrace.h> on arm too.
+	* syscall.c: EABI arm does not need decode_subcall(),
+	ifdef it out.
+
+2008-12-29  Nick Black  <dankamongmen@acm.org>
+
+	* linux/syscallent.h: Mark sendfile(2) as network syscall.
+	* linux/*/syscallent.h: Same, for all architectures.
+
+2008-12-17  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	Make strace detect when traced process suddenly disappeared
+	(prime example is randomly arriving SIGKILL).
+	* defs.h (do_ptrace, ptrace_restart): Declare new functions
+	* process.c: Use ptrace_restart instead of bare ptrace.
+	This catches and records ESRCH errors.
+	Print "<unavailable>" if syscall decode or result can't be
+	determined because of an earlier error in ptrace()
+	* syscall.c (trace_syscall): Stop indiscriminately bailing out
+	on errors, print "syscall(????" or even "????(????" but continue.
+	* util.c (do_ptrace, ptrace_restart): Define new functions.
+	(upeek): use do_ptrace in order to catch and record ESRCH.
+	Do not print error message in this case.
+	Fixes RH#472053.
+
+2008-12-17  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	* signal.c (sys_sigaction, sys_rt_sigaction): Fix typo
+	in (sa_handler == SIG_IGN) comparison, it was using SIG_DFL
+	instead.
+
+2008-12-16  Denys Vlasenko  <dvlasenk@redhat.com>
+
+	* defs.h: Modify declaration of upeek to take struct tcb *
+	parameter instead of pid_t.
+	* process.c: Change all upeek calls accordingly.
+	* signal.c: Likewise.
+	* strace.c: Likewise.
+	* syscall.c: Likewise.
+	* util.c: Likewise.
+
+2008-11-11  Dmitry V. Levin  <ldv@altlinux.org>
+
+	* sock.c [LINUX] (sock_ioctl): Parse more SIOCS* ioctls.
+
+2008-12-09  Roland McGrath  <roland@redhat.com>
+
+	* strace.1 (DIAGNOSTICS): New section, describe exit behavior.
+
+2008-11-09  Dmitry V. Levin  <ldv@altlinux.org>
+
+	* process.c (prctl_options): Update constants from linux 2.6.27.
+	* system.c (capabilities): Add more capability values.
+
+	* util.c (string_quote): Fix support for NUL-terminated string.
+	Add comments.
+	(printpathn): Fix the case when "..." was appended to the output
+	but no truncation was actually made.  Add comments.
+	(printstr): Fix memory allocation.  Fix two cases when "..." was
+	appended to the output but no truncation was actually made.
+	Add comments.
+	Fixes RH#470529.
+
+2008-10-23  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Implement parsers for new linux syscalls.
+	* desc.c (do_dup2, [LINUX] sys_dup3): New functions.
+	(sys_dup2): Use do_dup2.
+	[LINUX] (sys_epoll_create1): New function.
+	[LINUX] (do_eventfd, sys_eventfd2): New functions.
+	[LINUX] (sys_eventfd): Use do_eventfd.
+	* net.c (do_pipe, [LINUX] sys_pipe2): New functions.
+	(sys_pipe): Use do_pipe.
+	* signal.c [LINUX] (do_signalfd, sys_signalfd4): New functions.
+	[LINUX] (sys_signalfd): Use do_signalfd.
+	* linux/syscall.h: Declare new sys_* functions.
+	* linux/syscallent.h: Hook up signalfd4, eventfd2, epoll_create1,
+	dup3, pipe2, inotify_init1.
+	* linux/x86_64/syscallent.h: Hook up paccept, signalfd4, eventfd2,
+	epoll_create1, dup3, pipe2, inotify_init1.
+
+2008-10-23  Mike Frysinger  <vapier@gentoo.org>
+
+	Port strace to the Blackfin architecture.
+	* configure.ac: Add bfin to supported architectures.
+	* process.c: Skip u_fpvalid/u_fpstate for Blackfin architecture.
+	(change_syscall): Support Blackfin architecture.
+	* syscall.c: Declare r0 for Blackfin architecture.
+	(get_scno): Decode Blackfin syscall number.
+	(syscall_fixup): Extract Blackfin return value.
+	(get_error): Decode Blackfin return value.
+	(force_result): Poke Blackfin return value.
+	(syscall_enter): Extract Blackfin syscall arguments.
+	* defs.h: Define TCB_WAITEXECVE for Blackfin architecture.
+	* linux/syscall.h (sys_sram_alloc): Declare for Blackfin
+	architecture.
+	* system.c (sys_sram_alloc): Decode Blackfin sram_alloc() syscall.
+	* util.c (getpc): Handle PC on Blackfin architecture.
+	(printcall): Likewise.
+	* linux/bfin/ioctlent.h, linux/bfin/syscallent.h: New Blackfin
+	headers.
+	* Makefile.am (EXTRA_DIST): Add linux/bfin/ioctlent.h and
+	linux/bfin/syscallent.h.
+
+2008-09-18  Mike Frysinger  <vapier@gentoo.org>
+
+	* configure.ac: Accept uclinux hosts as linux.
+
+2008-10-22  Dmitry V. Levin <ldv@altlinux.org>
+
+	Handle socket type flags introduced in linux 2.6.27.
+	* net.c (socktypes): Add SOCK_DCCP.
+	(sock_type_flags): New xlat structure.
+	(tprint_sock_type): New function.
+	(sys_socket, sys_socketpair): Use it to parse socket type and
+	socket type flags.
+
+2008-09-29  Dmitry V. Levin <ldv@altlinux.org>
+
+	* strace.c (startup_child): Save child pid for future use.
+	(main): Exit/kill ourself with straced child's exitcode/signal.
+	(trace): If signalled process pid matches the saved child pid,
+	save the signal number.  If terminated process pid matches the
+	saved child pid, save its exit status.
+	Patch from Denys Vlasenko <dvlasenk@redhat.com>
+	Fixes RH#105371.
+
+2008-09-12  Tomas Pospisek  <tpo@sourcepole.ch>
+	    Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* strace.1 (DESCRIPTION): New description of unfinished system calls
+	and system calls restarting.
+
+2008-09-03  Dmitry V. Levin <ldv@altlinux.org>
+
+	* desc.c (sys_fcntl): Do not initialize auxstr for failed syscall.
+	* process.c (sys_fork, sys_rfork) [USE_PROCFS]: Likewise.
+	* signal.c (sys_signal): Likewise.
+	* stream.c (internal_stream_ioctl): Likewise.
+	* time.c (sys_adjtimex): Likewise.
+	* syscall.c (trace_syscall): If RVAL_STR is set, then
+	print auxstr for failed syscall as well.
+
+	* syscall.c (is_restart_error): New function.
+	* defs.h (is_restart_error): Declare it.
+
+	* linux/dummy.h (sys_nanosleep): Uncouple from sys_adjtime().
+	* time.c (sys_nanosleep): New function, based on is_restart_error().
+
+	* process.c (sys_prctl): Decode PR_SET_PDEATHSIG, PR_GET_PDEATHSIG,
+	PR_SET_DUMPABLE, PR_GET_DUMPABLE, PR_SET_KEEPCAPS, PR_GET_KEEPCAPS.
+	Fix PR_GET_UNALIGN decoder.
+	(prctl_options): Add more constants.
+
+	* linux/syscallent.h: Use sys_prctl() decoder for "prctl" syscall.
+	* linux/alpha/syscallent.h: Likewise.
+	* linux/arm/syscallent.h: Likewise.
+	* linux/m68k/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/x86_64/syscallent.h: Likewise.
+
+2008-09-02  Dmitry V. Levin <ldv@altlinux.org>
+
+	* linux/x86_64/syscallent.h: Fix syscall numbers for "tee" and
+	"sync_file_range".
+	From Fernando Luis Vazquez Cao <fernando@oss.ntt.co.jp>
+
+2008-08-28  Roland McGrath  <roland@redhat.com>
+
+	* strace.1 (BUGS): New section, mention SIGTRAP interference.
+
+	* strace.spec (%ifarch %{strace64_arches}): Use cp -p instead of ln
+	for %{rhel} < 6.
+
+	* configure.ac, NEWS: Version 4.5.18.
+	* strace.spec: 4.5.18-1.
+
+2008-08-24  Roland McGrath  <roland@redhat.com>
+
+	* linux/syscall.h (SYS_socket_subcall et al, SYS_ipc_subcall et al):
+	Don't define these if [__ARM_EABI__].
+	Reported by Johannes Stezenbach <js@sig21.net>.
+
+	* syscall.c (trace_syscall): Conditionalize on [SYS_socket_subcall]
+	and [SYS_ipc_subcall] individually.
+
+	* linux/powerpc/syscallent.h: Handle subpage_prot.
+	* mem.c [LINUX && POWERPC] (sys_subpage_prot): New function.
+	* linux/syscall.h [POWERPC]: Declare it.
+	From Simon Murray <simon@transitive.com>.
+
+	* mem.c (mmap_prot): Handle PROT_SAO.
+	From Simon Murray <simon@transitive.com>.
+
+	* mem.c (madvise_flags): Typo fixes.  Rename to madvise_cmds.
+	(sys_madvise): Use printxval, not printflags.
+	Reported by Rajeev V. Pillai <rajeevvp@gmail.com>.
+
+2008-08-19  Roland McGrath  <roland@redhat.com>
+
+	* signal.c (sys_sigaction, sys_rt_sigaction): Don't omit the rest of
+	the struct after sa_handler is a known constant.  Some sa_flags bits
+	have meaning even for SIG_IGN/SIG_DFL.
+
+2008-08-06  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* util.c (CLONE_VM): Define if not defined already.
+	(setbpt): Clear CLONE_VM in the case we already clear CLONE_VFORK for
+	SYS_clone and SYS_clone2.
+	Reported by Michal Nowak.
+	Fixes RH#455078.
+
+2008-08-06  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	Fix compiler warnings.
+	* signal.c (sys_signal): Cast to SIG_* to the matching type LONG.
+	* strace.c (trace): Variables PSR and PC are now signed.
+	* syscall.c (syscall_enter): Variable RBS_END is now signed long.
+	Remove/add the RBS_END casts appropriately.
+	* util.c [IA64] (arg_setup): Variable BSP is now signed long.
+	Remove/add the BSP casts appropriately.
+	<ia32>: Initialize *STATE.
+
+2008-07-31  Roland McGrath  <roland@redhat.com>
+
+	* Makefile.am (EXTRA_DIST): Add new linux/arm/ files.
+
+	* file.c [LINUX] (struct kernel_dirent): Define it locally,
+	do not use <linux/dirent.h>.
+	Fixes RH#457291.
+
+	* configure.ac: Add AC_HEADER_STDBOOL.
+	* defs.h [HAVE_STDBOOL_H]: #include <stdbool.h>.
+	Fixes Debian#492774.
+
+2008-07-24  Dmitry V. Levin <ldv@altlinux.org>
+
+	* strace.c (main): Fix -F option backwards compatibility.
+
+2008-07-22  Roland McGrath  <roland@redhat.com>
+
+	* Makefile.am (EXTRA_DIST): Add new debian/ files.
+
+2008-07-21  Roland McGrath  <roland@redhat.com>
+
+	* configure.ac: Version 4.5.17.
+	* strace.spec: 4.5.17-1.
+
+	* defs.h [LINUXSPARC]: Don't #include <linux/a.out.h>.
+
+2008-07-19  Frederik Schüler <fs@debian.org>
+
+	* debian/control: Add strace64 package.
+	* debian/rules: Use debhelper flag --same-arch instead of --arch in
+	order to build strace64 only on the specified architectures.
+	* debian/strace64.install: New file, list for dh_install.
+	* debian/strace64.manpages: New file, list for dh_install.
+	* debian/changelog: Add prereleases entries.
+	Fixes Debian#491167, Debian#491188.
+
+2008-07-18  Andreas Schwab  <schwab@suse.de>
+
+	* linux/ia64/syscallent.h: Decode mincore syscall.
+
+	* linux/powerpc/syscallent.h: Fix argument count for request_key.
+
+	* term.c (term_ioctl): Decode indirect parameter as int, not long.
+
+2008-07-17  Roland McGrath  <roland@redhat.com>
+
+	* NEWS, strace.spec: Updates in preparation for release.
+
+	* process.c (printwaitn): When current personality's wordsize is
+	smaller than native, sign-extend the PID argument from 32 bits.
+
+	* process.c (futexops): Update table.
+	(sys_futex): Handle FUTEX_WAIT_BITSET correctly.
+	From Ulrich Drepper <drepper@redhat.com>.
+	Fixes RH#448628.
+
+	* linux/syscallent.h: Fix "futex" argument count.
+	* linux/alpha/syscallent.h: Likewise.
+	* linux/arm/syscallent.h: Likewise.
+	* linux/hppa/syscallent.h: Likewise.
+	* linux/ia64/syscallent.h: Likewise.
+	* linux/m68k/syscallent.h: Likewise.
+	* linux/powerpc/syscallent.h: Likewise.
+	* linux/s390/syscallent.h: Likewise.
+	* linux/s390x/syscallent.h: Likewise.
+	* linux/sparc/syscallent.h: Likewise.
+	* linux/x86_64/syscallent.h: Likewise.
+	From Ulrich Drepper <drepper@redhat.com>.
+	Fixes RH#448629.
+
+	* signal.c (sigact_flags): Prefer SA_NODEFER to SA_NOMASK,
+	SA_RESETHAND to SA_ONESHOT.
+	Fixes RH#455821.
+
+2008-07-09  Frederik Schüler <fs@debian.org>
+
+	* debian/rules: Remove the broken udeb creation routines, and redo the
+	complete install procedure using debhelper.
+	* debian/strace.docs: New file, list for dh_installdocs.
+	* debian/strace.examples: New file, list for dh_installexamples.
+	* debian/strace.install: New file, list for dh_install.
+	* debian/strace-udeb.install: New file, list for dh_install.
+	* debian/strace.manpages : New file, list for dh_installmanpages.
+	* debian/copyright: Update.
+	* debian/control: Fix libc6 build dependency for alpha and ia64.
+	(strace-udeb: XC-Package-Type): Add header.
+	* debian/changelog: Cosmetic changes.
+
+2008-07-03  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	Trace vfork under -f on all the platforms.
+	* strace.1 <-f>: Describe Linux catches new children immediately.
+	<-F>: Make the option obsolete.  Move the SunOS VFORK comment to the
+	`-f' option description.
+	* defs.h (followvfork): Declaration removed.
+	* strace.c (followvfork): Variable removed.
+	(main) <-F>: Merge with the `-f' option.
+	(trace): Make !FOLLOWVFORK unconditional.
+	* process.c (internal_fork): Make !FOLLOWVFORK unconditional.
+
+2008-07-01  Frederik Schüler <fs@debian.org>
+
+	* debian/changelog: List all bugs closed since the last release.
+	* debian/control: Remove Wichert Akkerman from uploaders list.
+	* debian/control: Bump standards version to 3.8.0.
+	* debian/control: Add Homepage field.
+	* debian/rules: Fix dpkg-gencontrol call.
+	* debian/compat: New file, set to compatibility level 5.
+	* debian/rules: Call dh_clean on clean target.
+	* debian/rules: Add dh_md5sums call.
+	Fixes Debian#439428.
+
+2008-06-30  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	Fix ia64 `-f' on clone2 formerly crashing the child.
+	* util.c [IA64] (restore_arg0, restore_arg1): Define as empty.
+	Fixes RH#453438.
+
+2008-06-27  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* util.c (CLONE_VFORK): Define if not defined already.
+	(setbpt): Clear CLONE_VFORK for SYS_clone and SYS_clone2.
+	Reported by Vitaly Mayatskikh.
+	Fixes RH#455078.
+
+2008-06-29  Dmitry V. Levin <ldv@altlinux.org>
+
+	* linux/x86_64/syscallent.h: Remove duplicate syscall entries
+	for #283 and #284.
+
+2008-06-27  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* linux/syscallent.h: Remove a duplicite syscall stub #326.
+
+2008-05-27  Roland McGrath  <roland@redhat.com>
+
+	* syscall.c [LINUX] (is_negated_errno): New function.
+	(get_error) [LINUX]: Use it for all such cases.
+	Fixes RH#447587.
+
+2008-05-19  Roland McGrath  <roland@redhat.com>
+
+	* linux/x86_64/syscallent.h: Update entries for timerfd_* and fallocate.
+
+	* file.c (sys_fallocate): New function.
+	* linux/syscall.h: Declare it.
+	* linux/syscallent.h: Update entry.
+	From Kyle McMartin <kyle@mcmartin.ca>.
+
+	* time.c (sys_timerfd_create): New function.
+	(sys_timerfd_settime, sys_timerfd_gettime): New functions.
+	* linux/syscall.h: Declare them.
+	* linux/syscallent.h: Update entries for those syscalls.
+	From Kyle McMartin <kyle@mcmartin.ca>.
+
+	* debian/rules (binary-arch): Fix chmod/chown typo.
+	Fixes Debian#459255.
+
+	* debian/rules (binary-arch): Install strace-graph in examples/
+	directory under package doc.
+	Fixes Debian#469068.
+
+	* signal.c (sys_kill): When current personality's wordsize is smaller
+	than native, sign-extend the PID argument from 32 bits.
+	Fixes RH#430585.
+
+	* configure.ac: Add check for struct sigcontext_struct in <signal.h>.
+	* signal.c [! HAVE_ASM_SIGCONTEXT_H] [I386] (struct sigcontext_struct):
+	Conditionalize definition on !HAVE_STRUCT_SIGCONTEXT_STRUCT.
+	Fixes Debian#456879.
+
+	* util.c [LINUX] (setbpt): Use correct SYS_clone number for current
+	personality.
+	Fixes RH#447475.
+
+2008-05-08  David S. Miller  <davem@davemloft.net>
+
+	* syscall.c (socket_map, sparc_socket_decode): Delete.
+	(trace_syscall): Use common socketcall and ipc subcall
+	support on sparc.
+	* linux/sparc/syscall.h (sys_semtimedop): Declare.
+	(SYS_socket_subcall, SYS_sub_socket, SYS_sub_bind,
+	SYS_sub_connect, SYS_sub_listen, SYS_sub_accept,
+	SYS_sub_getsockname, SYS_sub_getpeername,
+	SYS_sub_socketpair, SYS_sub_send, SYS_sub_recv,
+	SYS_sub_sendto, SYS_sub_recvfrom, SYS_sub_shutdown,
+	SYS_sub_setsockopt, SYS_sub_getsockopt, SYS_sub_sendmsg,
+	SYS_sub_recvmsg, SYS_socket_nsubcalls, SYS_ipc_subcall,
+	SYS_sub_semop, SYS_sub_semget, SYS_sub_semctl,
+	SYS_sub_semtimedop, SYS_sub_msgsnd, SYS_sub_msgrcv,
+	SYS_sub_msgget, SYS_sub_msgctl, SYS_sub_shmat,
+	SYS_sub_shmdt, SYS_sub_shmget, SYS_sub_shmctl,
+	SYS_ipc_nsubcalls): Define
+	* linux/sparc/syscallent.h: Add socketcall and ipc entries.
+
+2008-01-25  Bruna Moreira  <bruna.moreira@indt.org>
+
+	* defs.h [ARM]: Define SUPPORTED_PERSONALITIES to 2.
+	* syscall.c (get_scno) [ARM]: Add support for architecture specific
+	syscalls.
+	* linux/arm/syscallent.h: Update network syscalls list.
+	* linux/arm/syscallent1.h: New file. Add new architecture specific
+	syscalls.
+	* linux/arm/errnoent1.h: New file.
+	* linux/arm/ioctlent1.h: New file.
+	* linux/arm/signalent1.h: New file.
+	Fixes Debian#441000.
+
+2008-01-07  Paul Mundt  <lethal@linux-sh.org>
+
+	* linux/sh64/syscallent.h: Update numerous calls, fix others.
+
+2007-08-26  Daniel Jacobowitz  <dan@codesourcery.com>
+
+	* defs.h [MIPS]: Include <sgidefs.h>.
+	(MAX_QUALS): Update for MIPS.
+	(LINUX_MIPSO32, LINUX_MIPSN32, LINUX_MIPSN64, LINUX_MIPS64): Define.
+	(struct tcb): Add ext_arg for MIPS N32.
+	(TCB_WAITEXECVE): Define for MIPS.
+	(ALIGN64): Use LINUX_MIPSO32.
+	* file.c (sys_lseek): Use ext_arg for MIPS N32.
+	(sys_readahead, sys_fadvise64_64): Likewise.
+	* io.c (sys_pread64, sys_pwrite64): Likewise.
+	* mem.c (print_mmap): Take OFFSET argument.
+	(sys_old_mmap): Update call to print_mmap.
+	(sys_mmap): Use ext_arg for MIPS N32.
+	* process.c (struct_user_offsets): Add MIPS registers.
+	* signal.c (sys_sigreturn): Handle MIPS N32 and MIPS N64.  Correct
+	MIPS O32 call to sprintsigmask.
+	* syscall.c (internal_syscall): Handle MIPS N32.  Check for
+	TCB_WAITEXECVE on MIPS.
+	(force_result): Add a comment about MIPS N32.
+	(syscall_enter): Handle MIPS N32 and MIPS N64.
+	* linux/syscall.h (sys_pread64, sys_pwrite64): Declare.
+	* linux/mips/syscallent.h: Include "dummy.h".  Handle alternate
+	MIPS ABIs.
+
+2008-04-19  Dmitry V. Levin <ldv@altlinux.org>
+
+	* file.c [_LFS64_LARGEFILE] (sys_getdents64): Do the same
+	d_reclen check as in sys_getdents: warn if d_reclen is 0 rather
+	than looping forever.
+	[FREEBSD] (sys_getdirentries): Likewise.
+	Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+
+	* file.c [LINUXSPARC] (printstatsol): Fix sprinttime()
+	invocation.  The sprinttime() function takes a time_t argument,
+	but timestruct_t argument was given.
+	Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+
+	* file.c (sprinttime): Check localtime() return value, to avoid
+	potential NULL dereference due to invalid time structures.
+	Signed-off-by: Harald van Dijk <truedfx@gentoo.org>
+	Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+
+	* linux/errnoent.h: Update errno list based on latest
+	linux/errno.h and asm-generic/errno*.h files.
+	Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+
+	* signalent.sh: Fix sort(1) old-style options.
+	* syscallent.sh: Likewise.
+	Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+
+	* count.c (call_summary_pers): Check calloc() return value.
+	Signed-off-by: "Yang Zhiguo" <yzgcsu@cn.fujitsu.com>
+
+2008-03-26  Roland McGrath  <roland@redhat.com>
+
+	* strace.spec (strace64_arches): Add sparc64.
+
+2007-11-20  Roland McGrath  <roland@redhat.com>
+
+	* CREDITS, ChangeLog: Converted contents to UTF8.
+
+2007-11-19  Roland McGrath  <roland@redhat.com>
+
+	* strace.spec: Add BuildRequires on libaio-devel, libacl-devel.
+
+2007-11-19  Andreas Schwab  <schwab@suse.de>
+
+	* process.c (sys_ptrace) [IA64]: For PTRACE_PEEKDATA,
+	PTRACE_PEEKTEXT and PTRACE_PEEKUSER the data is returned directly.
+
+	* linux/syscallent.h: Fix argument count for getdents64.
+	* linux/arm/syscallent.h: Likewise.
+	* linux/m68k/syscallent.h: Likewise.
+	* linux/x86_64/syscallent.h: Likewise.
+
+	* linux/ia64/syscallent.h: Use sys_getdents64.
+	* linux/sh/syscallent.h: Likewise.
+
+2007-11-06  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* strace.c [LINUX] (droptcb): Recurse on TCP->parent if it is a
+	TCB_EXITING zombie group leader.
+	* test/childthread.c: New file.
+	* test/.cvsignore, test/Makefile: Add it.
+	Code advisory: Roland McGrath
+	Fixes RH#354261.
+
+2007-11-03  Roland McGrath  <roland@redhat.com>
+
+	* process.c (prctl_options): Add numerous constants.
+	From Sami Farin <safari@u.safari.iki.fi>.
+	Fixes RH#364401.
+
+2007-11-03  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* strace.c (main): Move the STARTUP_CHILD call before setting up the
+	signal handlers.  New comment about the valid internal states.
+
+2007-11-02  Thiemo Seufer  <ths@networkno.de>
+
+	* signal.c (m_siginfo_t): Add for MIPS.
+	(sys_sigreturn): struct sigcontext on MIPS has no sigset_t member,
+	acquire the signal mask with the same trick as on Sparc.
+	Fixes Debian#448802.
+
+2007-11-01  Roland McGrath  <roland@redhat.com>
+
+	* util.c (string_quote): Return nonzero if the string was unterminated.
+	(printstr): Use that value instead of just our own test.
+	(printpathn): Likewise.
+	Fixes RH#358241.
+
+	* linux/mips/syscallent.h: Fix argument count for fadvise64_64.
+	From Paul Mundt <lethal@linux-sh.org>.
+
+	* linux/mips/syscallent.h: Fix argument count for lookup_dcookie.
+	From Paul Mundt <lethal@linux-sh.org>.
+
+	* linux/sh64/syscallent.h: Fix SYS_socket_subcall check.
+	From Paul Mundt <lethal@linux-sh.org>.
+
+	* linux/sh/syscallent.h: Update numerous calls.
+	From Paul Mundt <lethal@linux-sh.org>.
+
+2007-09-22  Dmitry V. Levin <ldv@altlinux.org>
+
+	* desc.c (sys_pselect6): Decode signal mask when entering syscall.
+	Relax signal mask size check.
+
+	* time.c (print_timespec, sprint_timespec): New functions.
+	* defs.h (print_timespec, sprint_timespec): Declare them.
+	* desc.c (sys_io_getevents): Use print_timespec.
+	* stream.c (sys_ppoll): Likewise.
+	(decode_poll): Use sprint_timespec.
+
+2007-09-22  Alan Curry <pacman@world.std.com>
+	    Dmitry V. Levin <ldv@altlinux.org>
+
+	* stream.c (decode_poll): Rearrange so that arguments are decoded
+	and printed on syscall entry, except for revents and the output
+	timespec which are now printed in the auxstr.
+	(sys_poll): Print the input timeout argument on syscall entry.
+	[LINUX] (sys_ppoll): Likewise.
+	Fixes Debian#369651.
+
+2007-09-22  Dmitry V. Levin <ldv@altlinux.org>
+
+	* desc.c (sprintflags): Remove static qualifier, add "prefix"
+	argument, move function to ...
+	* util.c (sprintflags): ... here.
+	* defs.h (sprintflags): Declare it.
+
+2007-11-01  Roland McGrath  <roland@redhat.com>
+
+	* syscall.c (get_scno) [ARM]: Check TCB_WAITEXECVE.
+	Reported by Bernhard Fischer <rep.dot.nop@gmail.com>.
+
+	* net.c (sockpacketoptions): Make PACKET_ADD_MEMBERSHIP and
+	PACKET_DROP_MEMBERSHIP conditional.
+	From Bernhard Fischer <rep.dot.nop@gmail.com>.
+
+	* configure.ac: Match sh64* for SH64, sh* for SH.
+	Reported by Bernhard Fischer <rep.dot.nop@gmail.com>.
+
+2007-10-01  Dmitry V. Levin <ldv@altlinux.org>
+
+	* net.c (printsock): Output AF_UNIX socket address using
+	printpathn() to avoid unprintable characters in output.
+	Suggested by Neil Campbell.
+
+2007-10-01  Dmitry V. Levin <ldv@altlinux.org>
+
+	* util.c (string_quote): Move quoting code from ...
+	(printstr) ... here.  Use string_quote.
+	(printpathn): Update for new string_quote interface.
+	(printpath): Use printpathn.
+
+2007-09-25  Dmitry V. Levin <ldv@altlinux.org>
+
+	* strace.c (main): Use calloc for tcbtab allocation.
+	Check calloc return value.
+	Reported by Bai Weidong.
+
+2007-09-11  Roland McGrath  <roland@redhat.com>
+
+	* linux/sparc/syscall.h: Add missing decls.
+	* linux/sparc/syscallent.h: Correct entries for setgroups32,
+	getgroups32, sys_getdents64.
+	From Jakub Bogusz <qboosh@pld-linux.org>.
+
+	* linux/alpha/syscallent.h: Correct entries for madvise, setresgid,
+	getresgid, pivot_root, mincore, pciconfig_iobase, getdents64.
+	From Jakub Bogusz <qboosh@pld-linux.org>.
+
+	* linux/syscallent.h: Fix getegid32 entry.
+	From Jakub Bogusz <qboosh@pld-linux.org>.
+
+	* defs.h [LINUXSPARC]: Use asm/psrcompat.h for [SPARC64], not asm/psr.h.
+	From Jakub Bogusz <qboosh@pld-linux.org>.
+
+	* mem.c (sys_getpagesize): Define for [SPARC || SPARC64] too.
+	From Jakub Bogusz <qboosh@pld-linux.org>.
+
+2007-08-20  Dmitry V. Levin <ldv@altlinux.org>
+
+	* syscall.c (qual_syscall, qualify): Fix nsyscalls and MAX_QUALS misuse.
+	Reported by Xiaoning Ding.
+
+2007-08-06  Jan Kratochvil  <jan.kratochvil@redhat.com>
+	    Roland McGrath  <roland@redhat.com>
+
+	* file.c [!HAVE_STAT64 && LINUX && X86_64] (struct stat64): Define it.
+	[!HAVE_STAT64 && LINUX && X86_64] (HAVE_STAT64, STAT64_SIZE): Define.
+	[HAVE_STAT64] (printstat64) [STAT64_SIZE]: Add compile-time assertion.
+	Fixes RH#222275.
+
+	* file.c (printstat64): Test [HAVE_LONG_LONG] for st_size printing
+	and cast to widest type available.
+
+2007-08-03  Ulrich Drepper  <drepper@redhat.com>
+
+	* file.c (open_mode_flags): Add O_CLOEXEC.
+	* net.c (msg_flags): Add MSG_CMSG_CLOEXEC.
+	Fixes RH#365781.
+
+2007-08-03  Roland McGrath  <roland@redhat.com>
+
+	* configure.ac, NEWS: Version 4.5.16.
+	* debian/changelog, strace.spec: 4.5.16-1.
+
+	* debian/control (Build-Depends): Replace libc6-dev-s390x and
+	libc6-dev-sparc64 with gcc-multilib.
+	* debian/rules: Replace sparc-linux, s390-linux conditionals with
+	general "arch64_map" hair, handle x86_64 and powerpc64 too.
+	From Matthias Klose <doko@cs.tu-berlin.de>.
+	Fixes Debian#435303.
+
+2007-08-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* strace.c (detach): Moved the resume notification code to ...
+	(resume_from_tcp): ... a new function here.
+	(handle_group_exit): No longer detach also the thread group leader.
+	(trace): Fixed panic on exit of the TCB_GROUP_EXITING leader itself.
+	Fixes RH#247907.
+
+	* test/leaderkill.c (start): Renamed to ...
+	(start0): ... here.
+	(start1): New function.
+	(main): Created a new spare thread.
+
+2007-08-01  Roland McGrath  <roland@redhat.com>
+
+	* util.c (umoven): Don't perror for EIO.
+	(umovestr): Likewise.
+
+	* process.c (printargv): Handle boundary cases correctly.
+	Handle biarch fetching correctly.
+
+	* util.c (printstr): Don't print ... if the string matches the length
+	limit exactly.
+
+	* linux/sparc64/syscallent.h: Just #include the sparc file.
+	* linux/sparc64/syscallent1.h: Likewise.
+	* linux/sparc64/syscallent2.h: Likewise.
+
+	* linux/arm/syscallent.h: Add entry for getcpu.
+	* 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/syscallent.h: Likewise.
+
+	* linux/arm/syscallent.h: Add entry for eventfd.
+	* 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/syscallent.h: Likewise.
+
+	* linux/arm/syscallent.h: Add entry for timerfd.
+	* 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/syscallent.h: Likewise.
+
+	* linux/arm/syscallent.h: Add entry for signalfd.
+	* 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/syscallent.h: Likewise.
+
+	* linux/hppa/syscallent.h: Add entry for epoll_pwait.
+	* 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/syscallent.h: Likewise.
+
+2007-07-23  Ulrich Drepper  <drepper@redhat.com>
+
+	* process.c (sys_getcpu): New function.
+	* linux/syscall.h: Declare sys_getcpu.
+	* linux/syscallent.h: Add entry for getcpu.
+
+	* desc.c (sys_eventfd): New function.
+	* linux/syscall.h: Declare sys_eventfd.
+	* linux/syscallent.h: Add entry for eventfd.
+	* linux/x86_64/syscallent.h: Likewise.
+
+	* time.c (printitv_bitness): Add missing braces to enclose
+	conditional code.
+	(TDF_TIMER_ABSTIME): Define if not already.
+	(timerfdflags): New variable.
+	(sys_timerfd): New function.
+	* linux/syscall.h: Declare sys_timerfd.
+	* linux/syscallent.h: Add timerfd entry.
+	* linux/x86_64/syscallent.h: Likewise.
+
+	* linux/syscall.h: Declare sys_signalfd.
+	* linux/syscallent.h: Add entry for signalfd.
+	* linux/x86_64/syscallent.h: Likewise.
+	* signal.c (sys_signalfd): New function.
+
+	* desc.c (sys_epoll_wait): Move body of function to ...
+	(epoll_wait_common): ...here.  New function.
+	(sys_epoll_pwait): New function.
+	* linux/syscall.h: Declare sys_epoll_pwait.
+	* linux/syscallent.h: Add entry for epoll_pwait.
+	* linux/x86_64/syscallent.h: Likewise.
+
+2007-07-23  Roland McGrath  <roland@redhat.com>
+
+	* time.c (printtv_bitness): SPECIAL only counts when tv_sec == 0.
+
+	* linux/arm/syscallent.h: Add move_pages.
+	* linux/hppa/syscallent.h: Likewise.
+	* linux/ia64/syscallent.h: Likewise.
+	* linux/m68k/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/syscallent.h: Likewise.
+
+	* linux/syscallent.h: move_pages takes 6 args, not 5.
+	* linux/x86_64/syscallent.h: Likewise.
+
+2007-07-23  Ulrich Drepper  <drepper@redhat.com>
+
+	* defs.h: Add new parameter to printtv_bitness prototype.
+	(printttv): Pass zero for the new parameter.
+	(printtv_special): New macro.
+	* desc.c (decode_select): Pass zero for the new parameter of
+	printtv_bitness.
+	* file.c (utimensatflags): New macro.
+	(sys_osf_utimes): Pass zero for the new parameter of
+	printtv_bitness.
+	(sys_utimes): Likewise.
+	(sys_futimesat): Likewise.
+	(decode_utimes): Add new parameter.  Pass it to the
+	printtv_bitness calls.  Fix printing of time values.
+	(sys_utimensat): New function.
+	* time.c (UTIME_NOW, UTIME_OMIT): Define if not already
+	happened.
+	(printtv_bitness): Add new parameter.  Print special UTIME_*
+	values as strings if set.
+	(sys_osf_gettimeofday): Pass zero for the new parameter of
+	printtv_bitness.
+	(sys_osf_settimeofday): Likewise.
+	* linux/syscall.h: Declare sys_utimensat.
+	* linux/syscallent.h: Add utimensat entry.
+	* linux/x86_64/syscallent.h: Likewise.
+
+	* mem.c (move_pages_flags): New variable.
+	(sys_move_pages): New function.
+	* linux/syscall.h: Declare sys_move_pages.
+	* linux/syscallent.h: Add entry for sys_move_pages.
+	* linux/x86_64/syscallent.h: Likewise.
+
+	* mem.c (MPOL_MF_MOVE, MPOL_MF_MOVE_ALL): Define.
+	(mbindflags): Add MPOL_MF_MOVE and MPOL_MF_MOVE_ALL entries.
+
+2007-07-23  Roland McGrath  <roland@redhat.com>
+
+	* util.c (tv_add): Fix rounding comparison.
+	Reported by Bai Weidong <baiwd@cn.fujitsu.com>.
+
+2007-07-11  Roland McGrath  <roland@redhat.com>
+
+	* count.c (call_summary_pers): Use tv_float conversion for output of
+	cumulative time, in case it is negative from bogus -O value.
+	From Lai JiangShan <laijs@cn.fujitsu.com>.
+
+	* strace.c (handle_group_exit): Detach TCP before LEADER.
+	Don't use PTRACE_KILL on LEADER.
+
+	* util.c (printstr): Fix size calculation for outstr allocation.
+
+	* configure.ac (struct sigcontext.sc_hi2): Use #ifdef around
+	<asm/sigcontext.h> to match signal.c include conditions.
+
+2007-07-05  Roland McGrath  <roland@redhat.com>
+
+	* debian/rules: Use debian/$(package) instead of debian/tmp as temp dir.
+
+	* configure.ac: Use <stddef.h> before <linux/socket.h>.
+
+	* debian/changelog: Harmonize with debian version.
+	* debian/control (Uploaders): Fix surname spelling.
+	(Build-Depends): Make debhelper requirement (>= 5.0.0).
+	(Standards-Version): Update to 3.7.2.
+
+	* .cvsignore: Add some automake-created files.
+
+	* file.c (sys_utime): Use personality_wordsize to handle biarch.
+	Fixes RH#247185.
+
+	* signal.c (sys_sigreturn) [MIPS]: Pass 3rd arg to sprintsigmask.
+	From Zhang Le <zhilg@users.sourceforge.net>.
+
+	* strace.c (strace_fopen): [_LFS64_LARGEFILE]: Use fopen64.
+	Fixes Debian#385310.
+
+	* strace.c (main): Fix error message for unfound -u user.
+	From Srinivasa Ds <srinivasa@in.ibm.com>.
+	Fixes RH#247170.
+
+	* debian/control (Architecture): Add armel.
+
+	* linux/syscallent.h: Fix sys_delete_module arg count.
+	* linux/alpha/syscallent.h: Likewise.
+	* linux/arm/syscallent.h: Likewise.
+	* linux/hppa/syscallent.h: Likewise.
+	* linux/ia64/syscallent.h: Likewise.
+	* linux/m68k/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/syscallent.h: Likewise.
+	* linux/sparc64/syscallent2.h: Likewise.
+	* linux/x86_64/syscallent.h: Likewise.
+	* linux/dummy.h (sys_delete_module): Use sys_open.
+	From Johannes Stezenbach <js@linuxtv.org>.
+
+	* configure.ac: Check for struct sigcontext.sc_hi2.
+	* signal.c (sys_sigreturn) [MIPS]: Use sc_hi2 vs sc_sigset if found.
+
+	* process.c [LINUX] (futexops): Add many new values.
+	[LINUX] (futexwakeops, futexwakecmps): New tables.
+	[LINUX] (sys_futex): Use them.
+	From Ulrich Drepper <drepper@redhat.com>.
+	Fixes RH#241467.
+
+2007-07-05  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* strace.c (detach): New prototype.  Extended the function comment.
+	[LINUX] (detach): Call droptcb() instead of the wrongly parametrized
+	detach() call.
+	(handle_group_exit): Call droptcb() instead of the wrongly parametrized
+	detach() call.	Always call detach() only once from the group leader.
+	Comment the leader killing known bug tested by `test/leaderkill.c'.
+	Code advisory: Roland McGrath
+	Fixes RH#240961.
+
+	* test/leaderkill.c: New file.
+	* test/.cvsignore, test/Makefile: Add it.
+
+2007-03-21  Andreas Schwab  <schwab@suse.de>
+
+	* file.c (sys_newfstatat): Don't use printstat64 on ppc64.
+
+2007-03-29  Vladimir Nadvornik <nadvornik@suse.cz>
+	    Dmitry V. Levin <ldv@altlinux.org>
+
+	Trace linux SG_IO ioctl arguments and results.
+	* scsi.c: New file.
+	* Makefile.am (strace_SOURCES): Add it.
+	* defs.h (scsi_ioctl): New function.
+	* ioctl.c (ioctl_decode): Use scsi_ioctl().
+
+2007-06-28  Dmitry V. Levin <ldv@altlinux.org>
+
+	* util.c (tv_mul): Multiply tv_usec properly.
+	Patch from Cai Fei <caifei@cn.fujitsu.com>.
+
+2007-06-11  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	Never interrupt when the attached traced process would be left stopped.
+	* strace.c (main): `-p' attaching moved to ...
+	(startup_attach): ... a new function, renamed a variable C to TCBI.
+	Block interrupting signals since the first tracee has been attached.
+	New comment about INTERRUPTED in the nonthreaded case.
+	[LINUX] (startup_attach): Check INTERRUPTED after each attached thread.
+	(main): Command spawning moved to ...
+	(startup_child): ... a new function, replaced RETURN with EXIT.
+	[LINUX] (detach): New variable CATCH_SIGSTOP, do not signal
+	new SIGSTOP for processes still in TCB_STARTUP.
+	(main): Move signals and BLOCKED_SET init before the tracees attaching,
+	[SUNOS4] (trace): Removed fixvfork () call as a dead code, SIGSTOP must
+	have been already caught before clearing TCB_STARTUP.
+	(trace): Removed the `!WIFSTOPPED(status)' dead code.
+	Clear TCB_STARTUP only in the case the received signal was SIGSTOP.
+	New comment when `TCB_BPTSET && TCB_STARTUP' combination can be set.
+	Code advisory: Roland McGrath
+	Fixes RH#240986.
+
+2007-05-24  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* strace.c [LINUX] (my_tgkill): New macro.
+	[LINUX] (detach): Use my_tgkill () instead of kill(2).
+	Fixes RH#240962.
+
+2007-03-30  Dmitry V. Levin <ldv@altlinux.org>
+
+	* mem.c (mmap_flags): Add MAP_32BIT.
+	Reported by Kirill A. Shutemov.
+
+2007-01-12  Dmitry V. Levin <ldv@altlinux.org>
+
+	* sock.c (sock_ioctl): Check umove() return code.
+	[LINUX]: Handle SIOCGIFTXQLEN and SIOCGIFMAP.
+
+2007-03-16  Roland McGrath  <roland@redhat.com>
+
+	* linux/s390/syscallent.h: Use sys_restart_syscall for 7.
+	* linux/s390x/syscallent.h: Likewise.
+
+2007-02-18  Roland McGrath  <roland@redhat.com>
+
+	* strace.spec (Summary): Remove trailing period.
+	(%files): Add %doc files.
+	(%changelog): Double %s in text.
+	(BuildRoot): Change to Fedora canonical.
+	(%install): Don't use %makeinstall macro.
+	(%build): Use %{?_smp_mflags}.
+
+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.
diff --git a/strace-4.5.20/INSTALL b/strace-4.5.20/INSTALL
new file mode 100644
index 0000000..7a11ed0
--- /dev/null
+++ b/strace-4.5.20/INSTALL
@@ -0,0 +1,180 @@
+Basic Installation
+==================
+
+   These are generic installation instructions.
+
+   The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions.  Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, a file
+`config.cache' that saves the results of its tests to speed up
+reconfiguring, and a file `config.log' containing compiler output
+(useful mainly for debugging `configure').
+
+   If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release.  If at some point `config.cache'
+contains results you don't want to keep, you may remove or edit it.
+
+   The file `configure.in' is used to create `configure' by a program
+called `autoconf'.  You only need `configure.in' if you want to change
+it or regenerate `configure' using a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+  1. `cd' to the directory containing the package's source code and type
+     `./configure' to configure the package for your system.  If you're
+     using `csh' on an old version of System V, you might need to type
+     `sh ./configure' instead to prevent `csh' from trying to execute
+     `configure' itself.
+
+     Running `configure' takes awhile.  While running, it prints some
+     messages telling which features it is checking for.
+
+  2. Type `make' to compile the package.
+
+  3. Optionally, type `make check' to run any self-tests that come with
+     the package.
+
+  4. Type `make install' to install the programs and any data files and
+     documentation.
+
+  5. You can remove the program binaries and object files from the
+     source code directory by typing `make clean'.  To also remove the
+     files that `configure' created (so you can compile the package for
+     a different kind of computer), type `make distclean'.  There is
+     also a `make maintainer-clean' target, but that is intended mainly
+     for the package's developers.  If you use it, you may have to get
+     all sorts of other programs in order to regenerate files that came
+     with the distribution.
+
+Compilers and Options
+=====================
+
+   Some systems require unusual options for compilation or linking that
+the `configure' script does not know about.  You can give `configure'
+initial values for variables by setting them in the environment.  Using
+a Bourne-compatible shell, you can do that on the command line like
+this:
+     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+
+Or on systems that have the `env' program, you can do it like this:
+     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
+
+Compiling For Multiple Architectures
+====================================
+
+   You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory.  To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'.  `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script.  `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+   If you have to use a `make' that does not supports the `VPATH'
+variable, you have to compile the package for one architecture at a time
+in the source code directory.  After you have installed the package for
+one architecture, use `make distclean' before reconfiguring for another
+architecture.
+
+Installation Names
+==================
+
+   By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc.  You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+   You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files.  If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+   In addition, if you use an unusual directory layout you can give
+options like `--bindir=PATH' to specify different values for particular
+kinds of files.  Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+   If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+   Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System).  The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+   For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+   There may be some features `configure' can not figure out
+automatically, but needs to determine by the type of host the package
+will run on.  Usually `configure' can figure that out, but if it prints
+a message saying it can not guess the host type, give it the
+`--host=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name with three fields:
+     CPU-COMPANY-SYSTEM
+
+See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the host type.
+
+   If you are building compiler tools for cross-compiling, you can also
+use the `--target=TYPE' option to select the type of system they will
+produce code for and the `--build=TYPE' option to select the type of
+system on which you are compiling the package.
+
+Sharing Defaults
+================
+
+   If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Operation Controls
+==================
+
+   `configure' recognizes the following options to control how it
+operates.
+
+`--cache-file=FILE'
+     Use and save the results of the tests in FILE instead of
+     `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
+     debugging `configure'.
+
+`--help'
+     Print a summary of the options to `configure', and exit.
+
+`--quiet'
+`--silent'
+`-q'
+     Do not print messages saying which checks are being made.
+
+`--srcdir=DIR'
+     Look for the package's source code in directory DIR.  Usually
+     `configure' can determine that directory automatically.
+
+`--version'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`configure' also accepts some other, not widely useful, options.
diff --git a/strace-4.5.20/Makefile.am b/strace-4.5.20/Makefile.am
new file mode 100644
index 0000000..c44762e
--- /dev/null
+++ b/strace-4.5.20/Makefile.am
@@ -0,0 +1,130 @@
+# Automake input for strace.
+
+bin_PROGRAMS = strace
+man_MANS = strace.1
+bin_SCRIPTS = strace-graph
+
+# OS is one of `linux', `sunos4', `svr4', or `freebsd'.
+OS		= @opsys@
+# ARCH is `i386', `m68k', `sparc', etc.
+ARCH		= @arch@
+
+AM_CFLAGS = $(WARNFLAGS)
+INCLUDES = -I$(srcdir)/$(OS)/$(ARCH) -I$(srcdir)/$(OS)
+
+strace_SOURCES = strace.c syscall.c count.c util.c desc.c file.c ipc.c \
+		 io.c ioctl.c mem.c net.c process.c bjm.c quota.c \
+		 resource.c signal.c sock.c system.c term.c time.c \
+		 proc.c scsi.c stream.c
+noinst_HEADERS = defs.h
+
+EXTRA_DIST = $(man_MANS) errnoent.sh signalent.sh syscallent.sh ioctlsort.c \
+	     debian/changelog debian/control debian/copyright debian/rules \
+	     debian/compat debian/strace64.install debian/strace64.manpages \
+	     debian/strace.docs debian/strace.examples debian/strace.install \
+	     debian/strace.manpages debian/strace-udeb.install \
+	     strace.spec \
+	     strace-graph ChangeLog ChangeLog-CVS COPYRIGHT CREDITS PORTING \
+	     README-freebsd README-linux README-sunos4 README-svr4 \
+	     linux/ioctlsort.c linux/ioctlent.sh \
+	     linux/ioctlent.h linux/errnoent.h linux/signalent.h \
+	     linux/syscall.h linux/dummy.h \
+	     linux/i386/syscallent.h \
+	     linux/alpha/errnoent.h linux/alpha/ioctlent.h \
+	     linux/alpha/signalent.h linux/alpha/syscallent.h \
+	     linux/arm/syscallent.h linux/arm/syscallent1.h \
+	     linux/arm/signalent1.h linux/arm/ioctlent1.h \
+	     linux/arm/errnoent1.h \
+	     linux/avr32/syscallent.h \
+	     linux/bfin/ioctlent.h linux/bfin/syscallent.h \
+	     linux/hppa/errnoent.h linux/hppa/ioctlent.h \
+	     linux/hppa/signalent.h linux/hppa/syscallent.h \
+	     linux/ia64/syscallent.h \
+	     linux/ia64/ioctlent.h \
+	     linux/m68k/syscallent.h \
+	     linux/mips/ioctlent.sh linux/mips/errnoent.h \
+	     linux/mips/ioctlent.h linux/mips/signalent.h \
+	     linux/mips/syscallent.h \
+	     linux/powerpc/syscallent.h \
+	     linux/powerpc/ioctlent.h \
+	     linux/s390/ioctlent.h \
+	     linux/s390/syscallent.h \
+	     linux/s390x/ioctlent.h \
+	     linux/s390x/syscallent.h \
+	     linux/sh/syscallent.h \
+	     linux/sh/ioctlent.h \
+	     linux/sh64/syscallent.h \
+	     linux/sparc/dummy2.h \
+	     linux/sparc/errnoent.h linux/sparc/errnoent1.h \
+	     linux/sparc/ioctlent.h linux/sparc/ioctlent1.h \
+	     linux/sparc/signalent.h linux/sparc/signalent1.h \
+	     linux/sparc/syscall.h linux/sparc/syscall1.h \
+	     linux/sparc/syscallent.h linux/sparc/syscallent1.h \
+	     linux/sparc/gen.pl linux/sparc/syscall.h.2 \
+	     linux/sparc64/dummy2.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/signalent1.h linux/sparc64/signalent2.h \
+	     linux/sparc64/syscall.h linux/sparc64/syscall1.h \
+	     linux/sparc64/syscallent.h linux/sparc64/syscallent1.h \
+	     linux/sparc64/syscallent2.h \
+	     linux/tile/syscallent.h \
+	     linux/x86_64/syscallent.h linux/x86_64/gentab.pl \
+	     linux/x86_64/errnoent1.h linux/x86_64/ioctlent1.h \
+	     linux/x86_64/signalent1.h linux/x86_64/syscallent1.h \
+	     freebsd/ioctlent.sh \
+	     freebsd/syscalls.cat freebsd/syscalls.pl freebsd/syscalls.print \
+	     freebsd/i386/errnoent.h freebsd/i386/ioctlent.h \
+	     freebsd/i386/signalent.h \
+	     freebsd/i386/syscall.h freebsd/i386/syscallent.h \
+	     sunos4/dummy.h sunos4/errnoent.h \
+	     sunos4/ioctlent.h sunos4/ioctlent.sh sunos4/signalent.h \
+	     sunos4/syscall.h sunos4/syscallent.h \
+	     svr4/dummy.h svr4/errnoent.h svr4/ioctlent.h svr4/ioctlent.sh \
+	     svr4/signalent.h svr4/syscall.h svr4/syscallent.h \
+	     xlate.el
+
+.PHONY: srpm
+srpm: dist-bzip2
+	rpmbuild --define '%_srcrpmdir .' -ts $(distdir).tar.bz2
+
+if MAINTAINER_MODE
+
+gen_changelog_start_date = 2009-07-08 20:00
+$(srcdir)/ChangeLog: $(top_srcdir)/gitlog-to-changelog $(srcdir)/Makefile.in \
+		     $(top_srcdir)/.git/refs/heads/*
+	@rm -f $@.new
+	(cd $(top_srcdir); \
+	 ./gitlog-to-changelog --since='$(gen_changelog_start_date)'; \
+	 echo; echo; echo 'See ChangeLog-CVS for older changes.' \
+	) > $@.new
+	chmod 444 $@.new
+	mv -f $@.new $@
+
+export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner --mode=go-w,go+rX
+
+if LINUX
+
+IOCTLDIR = /usr/include
+IOCTLASM = asm
+
+if I386
+ioctlent_h = linux/ioctlent.h
+else
+ioctlent_h = linux/$(ARCH)/ioctlent.h
+endif
+
+BUILT_SOURCES = $(ioctlent_h)
+
+$(srcdir)/$(ioctlent_h): ioctlsort
+	$(<D)/$(<F) > $@
+ioctlsort: $(srcdir)/linux/ioctlsort.c ioctls.h ioctldefs.h
+	$(filter-out -I%,$(LINK.c)) -I. -I$(IOCTLDIR) $(filter -I%,$(LINK.c)) \
+	  -o $@ $<
+ioctls.h: $(srcdir)/linux/ioctlent.sh
+	$(SHELL) $< $(IOCTLDIR) $(IOCTLASM)
+ioctldefs.h: ioctls.h ;
+
+endif
+endif
diff --git a/strace-4.5.20/Makefile.in b/strace-4.5.20/Makefile.in
new file mode 100644
index 0000000..d67db60
--- /dev/null
+++ b/strace-4.5.20/Makefile.in
@@ -0,0 +1,891 @@
+# Makefile.in generated by automake 1.11.1a from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010  Free Software
+# Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Automake input for strace.
+
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+bin_PROGRAMS = strace$(EXEEXT)
+subdir = .
+DIST_COMMON = README $(am__configure_deps) $(noinst_HEADERS) \
+	$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+	$(srcdir)/config.h.in $(top_srcdir)/configure AUTHORS INSTALL \
+	NEWS TODO config.guess config.sub depcomp install-sh missing
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" \
+	"$(DESTDIR)$(man1dir)"
+PROGRAMS = $(bin_PROGRAMS)
+am_strace_OBJECTS = strace.$(OBJEXT) syscall.$(OBJEXT) count.$(OBJEXT) \
+	util.$(OBJEXT) desc.$(OBJEXT) file.$(OBJEXT) ipc.$(OBJEXT) \
+	io.$(OBJEXT) ioctl.$(OBJEXT) mem.$(OBJEXT) net.$(OBJEXT) \
+	process.$(OBJEXT) bjm.$(OBJEXT) quota.$(OBJEXT) \
+	resource.$(OBJEXT) signal.$(OBJEXT) sock.$(OBJEXT) \
+	system.$(OBJEXT) term.$(OBJEXT) time.$(OBJEXT) proc.$(OBJEXT) \
+	scsi.$(OBJEXT) stream.$(OBJEXT)
+strace_OBJECTS = $(am_strace_OBJECTS)
+strace_LDADD = $(LDADD)
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+SCRIPTS = $(bin_SCRIPTS)
+DEFAULT_INCLUDES = -I.@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(strace_SOURCES)
+DIST_SOURCES = $(strace_SOURCES)
+man1dir = $(mandir)/man1
+NROFF = nroff
+MANS = $(man_MANS)
+HEADERS = $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+  { test ! -d "$(distdir)" \
+    || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+         && rm -fr "$(distdir)"; }; }
+GZIP_ENV = --best
+DIST_ARCHIVES = $(distdir).tar.bz2
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+WARNFLAGS = @WARNFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+arch = @arch@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+opsys = @opsys@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+man_MANS = strace.1
+bin_SCRIPTS = strace-graph
+
+# OS is one of `linux', `sunos4', `svr4', or `freebsd'.
+OS = @opsys@
+# ARCH is `i386', `m68k', `sparc', etc.
+ARCH = @arch@
+AM_CFLAGS = $(WARNFLAGS)
+INCLUDES = -I$(srcdir)/$(OS)/$(ARCH) -I$(srcdir)/$(OS)
+strace_SOURCES = strace.c syscall.c count.c util.c desc.c file.c ipc.c \
+		 io.c ioctl.c mem.c net.c process.c bjm.c quota.c \
+		 resource.c signal.c sock.c system.c term.c time.c \
+		 proc.c scsi.c stream.c
+
+noinst_HEADERS = defs.h
+EXTRA_DIST = $(man_MANS) errnoent.sh signalent.sh syscallent.sh ioctlsort.c \
+	     debian/changelog debian/control debian/copyright debian/rules \
+	     debian/compat debian/strace64.install debian/strace64.manpages \
+	     debian/strace.docs debian/strace.examples debian/strace.install \
+	     debian/strace.manpages debian/strace-udeb.install \
+	     strace.spec \
+	     strace-graph ChangeLog ChangeLog-CVS COPYRIGHT CREDITS PORTING \
+	     README-freebsd README-linux README-sunos4 README-svr4 \
+	     linux/ioctlsort.c linux/ioctlent.sh \
+	     linux/ioctlent.h linux/errnoent.h linux/signalent.h \
+	     linux/syscall.h linux/dummy.h \
+	     linux/i386/syscallent.h \
+	     linux/alpha/errnoent.h linux/alpha/ioctlent.h \
+	     linux/alpha/signalent.h linux/alpha/syscallent.h \
+	     linux/arm/syscallent.h linux/arm/syscallent1.h \
+	     linux/arm/signalent1.h linux/arm/ioctlent1.h \
+	     linux/arm/errnoent1.h \
+	     linux/avr32/syscallent.h \
+	     linux/bfin/ioctlent.h linux/bfin/syscallent.h \
+	     linux/hppa/errnoent.h linux/hppa/ioctlent.h \
+	     linux/hppa/signalent.h linux/hppa/syscallent.h \
+	     linux/ia64/syscallent.h \
+	     linux/ia64/ioctlent.h \
+	     linux/m68k/syscallent.h \
+	     linux/mips/ioctlent.sh linux/mips/errnoent.h \
+	     linux/mips/ioctlent.h linux/mips/signalent.h \
+	     linux/mips/syscallent.h \
+	     linux/powerpc/syscallent.h \
+	     linux/powerpc/ioctlent.h \
+	     linux/s390/ioctlent.h \
+	     linux/s390/syscallent.h \
+	     linux/s390x/ioctlent.h \
+	     linux/s390x/syscallent.h \
+	     linux/sh/syscallent.h \
+	     linux/sh/ioctlent.h \
+	     linux/sh64/syscallent.h \
+	     linux/sparc/dummy2.h \
+	     linux/sparc/errnoent.h linux/sparc/errnoent1.h \
+	     linux/sparc/ioctlent.h linux/sparc/ioctlent1.h \
+	     linux/sparc/signalent.h linux/sparc/signalent1.h \
+	     linux/sparc/syscall.h linux/sparc/syscall1.h \
+	     linux/sparc/syscallent.h linux/sparc/syscallent1.h \
+	     linux/sparc/gen.pl linux/sparc/syscall.h.2 \
+	     linux/sparc64/dummy2.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/signalent1.h linux/sparc64/signalent2.h \
+	     linux/sparc64/syscall.h linux/sparc64/syscall1.h \
+	     linux/sparc64/syscallent.h linux/sparc64/syscallent1.h \
+	     linux/sparc64/syscallent2.h \
+	     linux/tile/syscallent.h \
+	     linux/x86_64/syscallent.h linux/x86_64/gentab.pl \
+	     linux/x86_64/errnoent1.h linux/x86_64/ioctlent1.h \
+	     linux/x86_64/signalent1.h linux/x86_64/syscallent1.h \
+	     freebsd/ioctlent.sh \
+	     freebsd/syscalls.cat freebsd/syscalls.pl freebsd/syscalls.print \
+	     freebsd/i386/errnoent.h freebsd/i386/ioctlent.h \
+	     freebsd/i386/signalent.h \
+	     freebsd/i386/syscall.h freebsd/i386/syscallent.h \
+	     sunos4/dummy.h sunos4/errnoent.h \
+	     sunos4/ioctlent.h sunos4/ioctlent.sh sunos4/signalent.h \
+	     sunos4/syscall.h sunos4/syscallent.h \
+	     svr4/dummy.h svr4/errnoent.h svr4/ioctlent.h svr4/ioctlent.sh \
+	     svr4/signalent.h svr4/syscall.h svr4/syscallent.h \
+	     xlate.el
+
+@MAINTAINER_MODE_TRUE@gen_changelog_start_date = 2009-07-08 20:00
+@LINUX_TRUE@@MAINTAINER_MODE_TRUE@IOCTLDIR = /usr/include
+@LINUX_TRUE@@MAINTAINER_MODE_TRUE@IOCTLASM = asm
+@I386_FALSE@@LINUX_TRUE@@MAINTAINER_MODE_TRUE@ioctlent_h = linux/$(ARCH)/ioctlent.h
+@I386_TRUE@@LINUX_TRUE@@MAINTAINER_MODE_TRUE@ioctlent_h = linux/ioctlent.h
+@LINUX_TRUE@@MAINTAINER_MODE_TRUE@BUILT_SOURCES = $(ioctlent_h)
+all: $(BUILT_SOURCES) config.h
+	$(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .o .obj
+am--refresh:
+	@:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
+	      $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    echo ' $(SHELL) ./config.status'; \
+	    $(SHELL) ./config.status;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	$(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	$(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+config.h: stamp-h1
+	@if test ! -f $@; then \
+	  rm -f stamp-h1; \
+	  $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
+	else :; fi
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+	@rm -f stamp-h1
+	cd $(top_builddir) && $(SHELL) ./config.status config.h
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 
+	($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+	rm -f stamp-h1
+	touch $@
+
+distclean-hdr:
+	-rm -f config.h stamp-h1
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	for p in $$list; do echo "$$p $$p"; done | \
+	sed 's/$(EXEEXT)$$//' | \
+	while read p p1; do if test -f $$p; \
+	  then echo "$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+	sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
+	    else { print "f", $$3 "/" $$4, $$1; } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	    test -z "$$files" || { \
+	      echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+	      $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+	    } \
+	; done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+	      -e 's/$$/$(EXEEXT)/' `; \
+	test -n "$$list" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+strace$(EXEEXT): $(strace_OBJECTS) $(strace_DEPENDENCIES) 
+	@rm -f strace$(EXEEXT)
+	$(LINK) $(strace_OBJECTS) $(strace_LDADD) $(LIBS)
+install-binSCRIPTS: $(bin_SCRIPTS)
+	@$(NORMAL_INSTALL)
+	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+	@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n' \
+	    -e 'h;s|.*|.|' \
+	    -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+	      if (++n[d] == $(am__install_max)) { \
+		print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+	    else { print "f", d "/" $$4, $$1 } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	     if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	     test -z "$$files" || { \
+	       echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+	       $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+	     } \
+	; done
+
+uninstall-binSCRIPTS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	       sed -e 's,.*/,,;$(transform)'`; \
+	test -n "$$list" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bjm.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/count.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/desc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mem.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quota.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resource.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scsi.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sock.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stream.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syscall.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/system.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/term.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/time.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+install-man1: $(man_MANS)
+	@$(NORMAL_INSTALL)
+	test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
+	@list=''; test -n "$(man1dir)" || exit 0; \
+	{ for i in $$list; do echo "$$i"; done; \
+	l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+	  sed -n '/\.1[a-z]*$$/p'; \
+	} | while read p; do \
+	  if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; echo "$$p"; \
+	done | \
+	sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+	sed 'N;N;s,\n, ,g' | { \
+	list=; while read file base inst; do \
+	  if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+	    echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+	    $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+	  fi; \
+	done; \
+	for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+	while read files; do \
+	  test -z "$$files" || { \
+	    echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+	    $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+	done; }
+
+uninstall-man1:
+	@$(NORMAL_UNINSTALL)
+	@list=''; test -n "$(man1dir)" || exit 0; \
+	files=`{ for i in $$list; do echo "$$i"; done; \
+	l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+	  sed -n '/\.1[a-z]*$$/p'; \
+	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+	test -z "$$files" || { \
+	  echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
+	  cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	set x; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@case `sed 15q $(srcdir)/NEWS` in \
+	*"$(VERSION)"*) : ;; \
+	*) \
+	  echo "NEWS not updated; not releasing" 1>&2; \
+	  exit 1;; \
+	esac
+	@list='$(MANS)'; if test -n "$$list"; then \
+	  list=`for p in $$list; do \
+	    if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+	    if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+	  if test -n "$$list" && \
+	    grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+	    echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+	    grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
+	    echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+	    echo "       typically \`make maintainer-clean' will remove them" >&2; \
+	    exit 1; \
+	  else :; fi; \
+	else :; fi
+	$(am__remove_distdir)
+	test -d "$(distdir)" || mkdir "$(distdir)"
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+	-test -n "$(am__skip_mode_fix)" \
+	|| find "$(distdir)" -type d ! -perm -755 \
+		-exec chmod u+rwx,go+rx {} \; -o \
+	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+	|| chmod -R a+r "$(distdir)"
+dist-gzip: distdir
+	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	$(am__remove_distdir)
+dist-bzip2: distdir
+	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+	$(am__remove_distdir)
+
+dist-lzma: distdir
+	tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
+	$(am__remove_distdir)
+
+dist-xz: distdir
+	tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
+	$(am__remove_distdir)
+
+dist-tarZ: distdir
+	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+	$(am__remove_distdir)
+
+dist-shar: distdir
+	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+	$(am__remove_distdir)
+
+dist-zip: distdir
+	-rm -f $(distdir).zip
+	zip -rq $(distdir).zip $(distdir)
+	$(am__remove_distdir)
+
+dist dist-all: distdir
+	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+	$(am__remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+	case '$(DIST_ARCHIVES)' in \
+	*.tar.gz*) \
+	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+	*.tar.bz2*) \
+	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+	*.tar.lzma*) \
+	  lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
+	*.tar.xz*) \
+	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+	*.tar.Z*) \
+	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+	*.shar.gz*) \
+	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+	*.zip*) \
+	  unzip $(distdir).zip ;;\
+	esac
+	chmod -R a-w $(distdir); chmod a+w $(distdir)
+	mkdir $(distdir)/_build
+	mkdir $(distdir)/_inst
+	chmod a-w $(distdir)
+	test -d $(distdir)/_build || exit 0; \
+	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+	  && am__cwd=`pwd` \
+	  && $(am__cd) $(distdir)/_build \
+	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+	    $(DISTCHECK_CONFIGURE_FLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
+	  && $(MAKE) $(AM_MAKEFLAGS) check \
+	  && $(MAKE) $(AM_MAKEFLAGS) install \
+	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+	        distuninstallcheck \
+	  && chmod -R a-w "$$dc_install_base" \
+	  && ({ \
+	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
+	  && rm -rf "$$dc_destdir" \
+	  && $(MAKE) $(AM_MAKEFLAGS) dist \
+	  && rm -rf $(DIST_ARCHIVES) \
+	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+	  && cd "$$am__cwd" \
+	  || exit 1
+	$(am__remove_distdir)
+	@(echo "$(distdir) archives ready for distribution: "; \
+	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+	@$(am__cd) '$(distuninstallcheck_dir)' \
+	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+	   || { echo "ERROR: files left after uninstall:" ; \
+	        if test -n "$(DESTDIR)"; then \
+	          echo "  (check DESTDIR support)"; \
+	        fi ; \
+	        $(distuninstallcheck_listfiles) ; \
+	        exit 1; } >&2
+distcleancheck: distclean
+	@if test '$(srcdir)' = . ; then \
+	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+	  exit 1 ; \
+	fi
+	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+	  || { echo "ERROR: files left in build directory after distclean:" ; \
+	       $(distcleancheck_listfiles) ; \
+	       exit 1; } >&2
+check-am: all-am
+check: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(MANS) $(HEADERS) config.h
+installdirs:
+	for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-hdr distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-man
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS install-binSCRIPTS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man: install-man1
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -rf $(top_srcdir)/autom4te.cache
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS uninstall-man
+
+uninstall-man: uninstall-man1
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
+	clean-binPROGRAMS clean-generic ctags dist dist-all dist-bzip2 \
+	dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
+	distcheck distclean distclean-compile distclean-generic \
+	distclean-hdr distclean-tags distcleancheck distdir \
+	distuninstallcheck dvi dvi-am html html-am info info-am \
+	install install-am install-binPROGRAMS install-binSCRIPTS \
+	install-data install-data-am install-dvi install-dvi-am \
+	install-exec install-exec-am install-html install-html-am \
+	install-info install-info-am install-man install-man1 \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
+	tags uninstall uninstall-am uninstall-binPROGRAMS \
+	uninstall-binSCRIPTS uninstall-man uninstall-man1
+
+
+.PHONY: srpm
+srpm: dist-bzip2
+	rpmbuild --define '%_srcrpmdir .' -ts $(distdir).tar.bz2
+@MAINTAINER_MODE_TRUE@$(srcdir)/ChangeLog: $(top_srcdir)/gitlog-to-changelog $(srcdir)/Makefile.in \
+@MAINTAINER_MODE_TRUE@		     $(top_srcdir)/.git/refs/heads/*
+@MAINTAINER_MODE_TRUE@	@rm -f $@.new
+@MAINTAINER_MODE_TRUE@	(cd $(top_srcdir); \
+@MAINTAINER_MODE_TRUE@	 ./gitlog-to-changelog --since='$(gen_changelog_start_date)'; \
+@MAINTAINER_MODE_TRUE@	 echo; echo; echo 'See ChangeLog-CVS for older changes.' \
+@MAINTAINER_MODE_TRUE@	) > $@.new
+@MAINTAINER_MODE_TRUE@	chmod 444 $@.new
+@MAINTAINER_MODE_TRUE@	mv -f $@.new $@
+
+@MAINTAINER_MODE_TRUE@export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner --mode=go-w,go+rX
+
+@LINUX_TRUE@@MAINTAINER_MODE_TRUE@$(srcdir)/$(ioctlent_h): ioctlsort
+@LINUX_TRUE@@MAINTAINER_MODE_TRUE@	$(<D)/$(<F) > $@
+@LINUX_TRUE@@MAINTAINER_MODE_TRUE@ioctlsort: $(srcdir)/linux/ioctlsort.c ioctls.h ioctldefs.h
+@LINUX_TRUE@@MAINTAINER_MODE_TRUE@	$(filter-out -I%,$(LINK.c)) -I. -I$(IOCTLDIR) $(filter -I%,$(LINK.c)) \
+@LINUX_TRUE@@MAINTAINER_MODE_TRUE@	  -o $@ $<
+@LINUX_TRUE@@MAINTAINER_MODE_TRUE@ioctls.h: $(srcdir)/linux/ioctlent.sh
+@LINUX_TRUE@@MAINTAINER_MODE_TRUE@	$(SHELL) $< $(IOCTLDIR) $(IOCTLASM)
+@LINUX_TRUE@@MAINTAINER_MODE_TRUE@ioctldefs.h: ioctls.h ;
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/strace-4.5.20/NEWS b/strace-4.5.20/NEWS
new file mode 100644
index 0000000..1628b83
--- /dev/null
+++ b/strace-4.5.20/NEWS
@@ -0,0 +1,328 @@
+Noteworthy changes in release 4.5.20
+====================================
+
+* Improvements
+  * Implemented decoding of new linux syscalls: inotify_init1, recvmmsg.
+  * Implemented basic decoding of new linux syscalls: preadv, pwritev,
+    rt_tgsigqueueinfo, perf_event_open.
+  * Enhanced decoding of recently added syscalls on non-x86 architectures
+    by replacing a bare decoder with elaborate parsers enabled earlier
+    for x86/x86-64.
+  * Implemented -C option to combine regular and -c output.
+    (Addresses Debian bug #466196)
+  * Enhanced decoding of mbind and mremap syscalls.
+  * Enhanced SOL_PACKET socket options decoding.
+  * Regenerated list of ioctl names from linux 2.6.33.
+  * Added TILE architecture support.
+
+* Bug fixes
+  * Fixed build with Linux kernel headers 2.6.32-rc5+.
+    (Addresses Debian bug #560516 and Fedora bug #539044)
+  * Fixed build on mips.
+  * Fixed handling of Linux systems without struct statfs64.
+  * Fixed reporting signal mask by sigreturn on powerpc.
+  * Fixed potential stack buffer overflow in select decoder.
+    (Addresses Fedora bug #556678)
+  * Corrected msgsnd indirect ipccall decoding.
+  * Corrected decoding of 64bit syscalls.
+    (Addresses Debian bug #570603)
+  * Corrected getsockopt decoding on architectures where
+    sizeof(long) > sizeof(int).
+    (Addresses Debian bug #494844)
+  * Corrected decoding of epoll_pwait.
+    (Addresses Debian bug #513014)
+  * Corrected handling of killed threads.
+
+Noteworthy changes in release 4.5.19
+====================================
+
+* Changes in behavior
+  * When command exits, strace now exits with the same exit status.
+    If command is terminated by a signal, strace terminates itself
+    with the same signal, so that strace can be used as a wrapper
+    process transparent to the invoking parent process.
+    When using -p option, the exit status of strace is zero unless
+    there was an unexpected error in doing the tracing.
+    (Addresses Fedora bug #105371 and Debian bug #37665)
+
+* Improvements
+  * Implemented decoding of new Linux syscalls: accept4, dup3,
+    epoll_create1, eventfd2, inotify_init1, pipe2, signalfd4.
+  * Implemented decoding of socket type flags introduced in Linux 2.6.27.
+  * Implemented decoding of accept4 socketcall.
+  * Enhanced prctl decoding.
+  * Enhanced nanosleep decoding.
+  * Enhanced ptrace decoding.
+  * Enhanced futex decoding.
+  * Enhanced CAP_* decoding.
+  * Enhanced SIOCS* ioctls decoding.
+  * Enhanced fcntl F_* flags decoding.
+  * Enhanced semop/semtimedop decoding.
+  * Updated ARM architecture support.
+  * Added Blackfin architecture support.
+  * Added AVR32 architecture support.
+  * Added CRIS architecture support.
+  * Made strace detect when traced process suddenly disappeared.
+
+* Bug fixes
+  * Fixed syscall numbers for tee and sync_file_range.
+    (Addresses Debian bug #503124)
+  * Fixed several bugs in strings decoder, including potential heap
+    memory corruption.
+    (Addresses Fedora bugs #470529, #478324 and #511035)
+  * Marked sendfile(2) as a network syscall.
+    (Addresses Debian bug #509499)
+  * Fixed accept(2) decoding.
+    (Addresses Debian bug #507573)
+  * Fixed sigtimedwait(2) decoding.
+  * Fixed build on ARM EABI.
+    (Addresses Debian bugs #520084 and #535564, and Fedora bug #507576)
+  * Fixed display of 32-bit fcntl(F_SETLK) on 64-bit architectures.
+    (Addresses Red Hat bug #471169)
+  * Fixed display of 32-bit argv array on 64-bit architectures.
+    (Addresses Fedora bug #519480)
+  * Fixed display of 32-bit struct sigaction on 64-bit architectures.
+  * Fixed HPPA architecture support.
+    (Addresses Debian bugs #437928 and #546619)
+
+Changes in 4.5.18
+==============
+* Bug fixes.
+* Support new Linux/PPC system call subpage_prot and PROT_SAO flag.
+* In sigaction system call, display sa_flags value along with SIG_DFL/SIG_IGN.
+
+Changes in 4.5.17
+==============
+* Many bug fixes.
+* -F is now deprecated, -f has traced vfork too on Linux for a long time now.
+* Print O_CLOEXEC, MSG_CMSG_CLOEXEC flag bits.
+* Improved output for prctl system call on Linux.
+* Improved support for Linux/ARM.
+* SA_NOMASK is now spelled SA_NODEFER, and SA_ONESHOT is spelled SA_RESETHAND.
+
+Changes in 4.5.16
+==============
+* Bug fixes.
+* Improved output for delete_module, futex, and mbind system calls on Linux.
+* Improved output for SG_IO ioctls on Linux.
+* Support new Linux system calls move_pages, utimensat, signalfd, timerfd,
+  eventfd, getcpu, epoll_pwait.
+
+Changes in 4.5.15
+==============
+* Bug fixes.
+* Several biarch improvements.
+* Improved output for adjtimex, sysctl, quotactl, mount, umount.
+* Support new Linux system calls *at, inotify*, pselect6, ppoll and unshare.
+
+Changes in 4.5.14
+==============
+* Bug fixes.
+* Accept numeric system calls in -e.
+
+Changes in 4.5.13
+==============
+* Bug fixes.
+* Introduce "-e trace=desc".
+
+Changes in 4.5.12
+==============
+* Bug fixes.
+* Better x86-64 support for IA32 processes.
+* Update PowerPC system calls.
+* Better printing for Linux aio system calls.
+
+Changes in 4.5.11
+==============
+* Quick fix release for build issues.
+* One fix for Linux/ARM system call table.
+
+Changes in 4.5.10
+==============
+* Bug fixes.
+* Print fault address for SIGSEGV/SIGBUS signals when available.
+
+Changes in 4.5.9
+==============
+* Bug fixes.
+* Improve socket ioctl printing.
+* Update Linux/IA64 syscall list.
+* Fix Linux/x86-64 syscall argument extraction for 32-bit processes.
+* Improve mount flags printing.
+* Support symbolic printing of x86_64 arch_prctl parameters.
+
+Changes in 4.5.8
+==============
+* Bug fixes.
+* Update syscall tables for Alpha, ARM, HPPA.
+* Support new Linux syscalls mbind, set_mempolicy, get_mempolicy, waitid.
+* Support Linux syscalls fadvise64, fadvise64_64, and epoll_*.
+* Improve ioctl command name matching.
+* Print RTC_* ioctl structure contents.
+* Support newer RLIMIT_* values.
+* Print struct cmsghdr details in sendmsg.
+
+Changes in 4.5.7
+==============
+* Bug fixes.
+* Print attribute values in *xattr system calls on Linux.
+* Include pread and pwrite calls in -e read and -e write tracing.
+* Update SO_* and IP_* value lists and add IPV6_* values for socket options.
+* Print clock_t values symbolically in Linux clock_* system calls.
+
+Changes in 4.5.6
+==============
+* Bug fixes, Linux ioctl updates.
+* David Miller contributed support for Linux/SPARC64.
+
+Changes in 4.5.5
+==============
+* Just bug fixes.
+
+Changes in 4.5.4
+==============
+* Update Linux ioctl lists.
+* Update PF_* and AF_* value lists.
+* The 4.5.3 -p behavior for NPTL threads applies only under -f, and got fixed.
+
+Changes in 4.5.3
+==============
+* Bug fixes.
+* On Linux using NPTL threads, -p will now attach to all threads in a process.
+* Handle new mq_* system calls in Linux 2.6.6 and later.
+
+Changes in 4.5.2
+==============
+* Bug fixes.
+* Report some new VM_* bit values on Linux.
+* Better output for Linux sched_* system calls.
+
+Changes in 4.5.1
+==============
+* Bug fixes.
+* Display multiple ioctl name matches on Linux.
+
+Changes in 4.5
+==============
+* New port to AMD's x86-64 architecture. One strace binary can
+  handle both new x86-64 and old i386 processes.
+* Fixed support for LFS64 calls.
+* New switch -E to add/remove environment variables for the command.
+* Merged s390/s390x port.
+* Trace an unbounded number of processes.
+* Handle numerous new system calls in Linux 2.5, and new threads semantics.
+* Fixed bugs with attach/detach leaving things stopped.
+* Fixed traced process seeing ECHILD despite live, traced children
+  in waitpid calls with WNOHANG.
+* Stuart Menefy contributed a port to Linux/SH.
+* Stephen Thomas contributed a port to Linux/SH64.
+* Many other bug fixes.
+
+Changes in 4.4
+==============
+* Fix Linux/ia64 support, looks like someone renamed a few things on us
+* Fix the ioctl setup for Linux, turned out it did not really work.
+  Improve the ioctl extracter as well so we decode some more ones.
+
+Changes in 4.3.1
+================
+* compile fixes for Linux/mips
+
+Changes in 4.3
+==============
+* Linux ia64 and hppa ports added
+* The usual Linux syscall updates (includes 32bit uid/gid support),
+* Linux ioctl list updated
+* Support IPv6 scope ids
+* FreeBSD/i386 port added
+* UnixWare and Solaris updates
+* Better support for tracing multithreaded processes in Linux
+
+Changes in 4.2
+==============
+* Compiles on glibc2.0 systems again
+* Linux/S390 port added
+* The usual Linux syscall updates
+* we can follow fork on arm now
+
+Changes in 4.1
+================
+* Linux/MIPS port added
+* Lots of Linux updates again
+* Improved IPv6 support
+* Add strace-graph
+
+Changes in 4.0.1
+================
+* Minor bugfixes
+* Compiles on glibc2.0 systems again
+
+Changes in 4.0
+==============
+* Get stat structure properly on Linux 64bit archs
+* Personalities work again
+* Compile correctly on SunOS again
+* IRIX64 updates
+* Solaris updates
+
+Changes in 3.99.1
+=================
+* Linux (ultra)sparc fixes
+* Linux alpha fixes
+* Minor cleanups
+
+Changes in 3.99
+===============
+* New maintainer
+* add support for more Linux architectures (powerpc, sparc, arm)
+* support lots more Linux syscalls
+* fix signal handling
+* add IPX and IPIP support
+* check stray syscall after execv
+* fix hanging children
+
+Changes in version 3.1
+======================
+
+* Irix5 is supported
+* Linux 68k is supported
+* Linux alpha is supported
+* configure is upgraded to autoconf 2.x
+* using -f in combination with -e now works correctly
+* output can be piped to a program
+* tracing setuid programs works better
+* it is now reasonable to install strace setuid to root in some circumstances
+* new useful tracing names like file and process to trace whole
+  classes of system calls, e.g. -efile traces all system calls that
+  take a file name as an argument
+* IPC calls on SunOS 4.1.x are decoded
+* Linux program memory is reliably dereferenced
+* Linux decodes at least the name of all syscalls as of pre2.0.4
+* various cosmetic changes and bug fixes
+
+Changes from versions 2.x to version 3.0
+========================================
+
+* filename arguments are neither abbreviated nor stringified
+* string arguments are now true C strings using octal instead of hex by default
+* preprocessor constants are never shortened (e.g. was RDONLY => now O_RDONLY)
+* by default the output for multiple processes now goes into one file
+* all structures, vectors, bitsets, etc. use consistent output formats
+* the -c option now means count calls, -i does what the old -c used to do
+
+New Features in version 3.0
+===========================
+
+* non-ascii strings can be optionally printed entirely in hex
+* the output format is readable when mutiple processes are generating output
+* exit values are printed in an alignment column
+* is is possible to suppress messages about attaching and detaching
+* various tracing features can be enabled on a per syscall/signal/desc basis
+* selective tracing of syscalls
+* selective printing of syscall structures
+* selective abbreviation of long structures on a per syscall basis
+* selective printing of raw syscall arguments and results
+* selective tracing of signals
+* selective dumping of all I/O read from file descriptors
+* selective dumping of all I/O written to file descriptors
+* optional counting of time, calls, and errors for each syscall
diff --git a/strace-4.5.20/PORTING b/strace-4.5.20/PORTING
new file mode 100644
index 0000000..aef4ce4
--- /dev/null
+++ b/strace-4.5.20/PORTING
@@ -0,0 +1,70 @@
+I am frequently asked to port strace to a given platform.  Less
+frequently I am asked how one would go about porting strace to a given
+platform. :-) Since I have ported strace to a few platforms already I
+have some advice to the would-be strace porter.
+
+The number one question is ``Does the native operating support a
+concept which enables even the mere possibility of tracing?''.  So far
+I have seen two mechanisms which support system call tracing.  They
+are the SunOS originated feature of the PTRACE_SYSCALL argument to the
+ptrace system call and the PIOCSENTRY/PIOCSEXIT ioctl for the /proc
+filesystem under System V release 4 style Unix derived systems.  There
+may be others (surely a better one could be devised :-) but innovation
+is a rare commodity so unless one of these is supported you may be
+SOL.
+
+Therefore the first step is to try `man 2 ptrace' and `man 4 proc' to
+see if there is even a glimmer of hope.  Without assistance from the
+operating system, system call tracing is a lost cause.  If there is a
+native system call tracing program (however pathetic it might be :-),
+you may be able to use it to trace itself to determine what mechanism
+it is using for tracing the system calls of another process.  If the
+interface is documented you should be a happy camper.  Otherwise,
+unless you can tolerate the thought of many thankless hours
+single-stepping in a debugger with little or nothing to show for it,
+you should consider other tasks to distract you from your friends,
+family, education, job, spouse and/or significant other.
+
+If you have arrived here, your OS should have ptrace or proc or you
+should have a high tolerance for pain.  Then again, curious but
+detached readers are invited to continue with little to risk but
+boredom.  If the mechanism is neither ptrace nor proc then examine how
+it is intended to work and see how well it fits with what strace
+already does.  If it fits, fine, add a few more ifdefs.  If there is a
+gross mismatch, write a whole new event loop.
+
+At this point you are responsible for determining three things: how is
+the specific system call communicated, how are system call arguments
+handled, and how is errno handled.  These things can usually be
+resolved in a day or two using a decent assembly level debugger and
+some educated guesswork.  For example, set a breakpoint on `read'.
+Then disassemble the code and see where the arguments go.  Do they go
+on the stack?  Do they go into registers?  Some combination of the
+two?  Find the point where the transition from user mode to kernel
+mode is made.  Can you identify the arguments at this point?  When the
+call returns where does errno go?  Into a specific register?  Into a
+global variable?
+
+Next you need to determine how to decode numeric system call numbers
+into system call names (syscallent.h), errno values into errno names
+(errnoent.h) and ioctl values into ioctl names (ioctlent.h).  Often
+this fragile step can be accomplished by massaging system header files
+with ad hoc shell scripts.  Expect your scripts to break with every
+dot rev of each OS release.
+
+Finally, once you have the basic framework in which system calls and
+their arguments can be decoded, you must do the dirty work of decoding
+every useful call.  Some may be similar or identical to like-named
+calls in other operating systems.  Go ahead and tweak what is there
+to achieve what you want.  If there is more difference than similarity,
+then just write your own version of it using one of the existing
+implementations for ideas.
+
+The first order of decoding is the generation of suitable system call,
+errno, ioctl and signal tables.  Sample scripts are included to assist
+with the generation of a first pass at these tables.
+
+Good luck and feel free to contact me before and/or during any major
+project.
+
+Rick Sladkey <jrs@world.std.com>
diff --git a/strace-4.5.20/README b/strace-4.5.20/README
new file mode 100644
index 0000000..51490cb
--- /dev/null
+++ b/strace-4.5.20/README
@@ -0,0 +1,31 @@
+This is strace 4.0, a system call tracer for SunOS 4.x, Linux, System
+V release 4, Solaris 2.x and Irix 5.x.  strace is released under a
+Berkeley-style license at the request of Paul Kranenburg; see the file
+COPYRIGHT for details.
+
+Read the INSTALL file for generic instructions on how to install
+strace.  If configure cannot guess your system configuration, you can
+specify it on the command line after the other options like this:
+
+	./configure --prefix=/usr i486-linux
+
+A single sunos4.1 binary should work on all the sun4, sun4c and sun4m
+kernel architectures.  Let me know if sun4d doesn't work.  Other
+i486-*-sysv4 systems may work with little or no tweaking.
+
+See the file NEWS for information on what has changed in recent
+versions.
+
+See the file PORTING if you like strace but it doesn't work on an
+operating system you use frequently.
+
+See the file CREDITS to see who has contributed to strace.
+
+See the file TODO if you feel like helping out.
+
+You can get the latest version of strace from its homepage at
+http://sourceforge.net/projects/strace/ .
+
+Please send bug reports and enhancements to the strace
+mailinglist at strace-devel@lists.sourceforge.net, or directly to
+Wichert Akkerman <wakkerma@debian.org>
diff --git a/strace-4.5.20/README-freebsd b/strace-4.5.20/README-freebsd
new file mode 100644
index 0000000..ef9bd3b
--- /dev/null
+++ b/strace-4.5.20/README-freebsd
@@ -0,0 +1,26 @@
+Here's a preliminary port of strace to FreeBSD.
+
+Here are some notes about it :
+
+- This couldn't have been done without the sources of the truss
+  utility by Sean Eric Fagan, which were of great help.
+
+- The tracing mecanism used by FreeBD is a lot like the SVR4 one, so
+  this port shares a lot of code with the SVR4 port, including the
+  akward event loop when tracing multiple processes.
+
+- This works for i386 binaries, although support for alpha processor
+  should be quite straight forward, but I do not have an alpha to
+  test it on.
+
+- Tracing linux binaries is not supported yet, but should be possible
+  with some work.
+
+- There are some issues with following forks, and only a few FreeBSD
+  specific syscalls are decoded right now.
+
+- This was tested on FreeBSD 4.0. I believe the tracing interface is
+  present since at least FreeBSD 3.0, so it "should" work on all
+  latest releases. I have no idea for other BSDs, though.
+
+Gaël Roualland <gael.roualland@iname.com>
diff --git a/strace-4.5.20/README-linux b/strace-4.5.20/README-linux
new file mode 100644
index 0000000..62df258
--- /dev/null
+++ b/strace-4.5.20/README-linux
@@ -0,0 +1,31 @@
+
+Strace has been ported by Branko Lankester <branko@hacktic.nl>
+to run on Linux systems.  Since then it has been greatly modified
+by various other people.
+
+If you want to compile strace on a Linux system please make sure that
+you use recent kernel headers. Strace needs those to get the proper data
+structures and constatns used by the kernel, since these can be
+different from the structures that the C library uses. Currently you
+will need at least a 2.2.7 or newer kernel.
+
+To complicate things a bit further strace might not compile if you are
+using development kernels. These tend to have headers that conflict with
+the headers from libc which makes it impossible to use them.
+
+There are three ways to compile strace with other kernel headers:
+* Specify the location in CFLAGS when running configure
+
+     CFLAGS=-I/usr/src/linux/include ./configure
+
+* you can tell make where your kernel sources are. For example if you
+  have your kernelsource in /usr/src/linux, you can invoke make like
+  this:
+
+     make CFLAGS="\$CFLAGS -I/usr/src/linux/include"
+
+  (the extra \$CFLAGS is there to make sure we don't override any CFLAGS
+  settings that configure has found).
+
+* you can link /usr/include/linux and /usr/include/asm to the
+  corresponding directories in your kernel source-tree.
diff --git a/strace-4.5.20/README-sunos4 b/strace-4.5.20/README-sunos4
new file mode 100644
index 0000000..1fa8ae2
--- /dev/null
+++ b/strace-4.5.20/README-sunos4
@@ -0,0 +1,85 @@
+========================================================================
+This is the unmodified README from Paul Kranenburg's release of strace
+for SunOS 4.1.x.  Some of the notes and instructions are no longer valid
+however the file has been retained for its historical value. -- jrs
+========================================================================
+
+/*
+ * @(#)README	2.4 92/01/21
+ *
+ * Copyright (C) 1991 Paul Kranenburg.
+ *
+ * Please send comments, enhancements or any other useful ideas to
+ * the address at the end of this file.
+ *
+ */
+
+strace(1) is a system call tracer for Sun(tm) systems much like the
+Sun supplied program trace(1). strace(1) is a useful utility to sort
+of debug programs for which no source is available which unfortunately
+includes almost all of the Sun supplied system software.
+
+Like trace(1), strace displays each system call and its arguments as it
+is invoked by the traced process, but tries to do a better job of
+decoding the arguments, displaying them in symbolic format whenever
+possible. Passed structures/character arrays are read from the process'
+address space and displayed in an appropriate format.
+
+It is also possible to instruct strace to trace child processes as
+they are created by the fork(2) system call. However, this is slightly
+involved for two reasons: 1) the trace flag is cleared in the child
+process by the fork system call, so we must make a special effort to
+gain control of the child (see NOTES below), 2) our tracing manipulations
+of the child may interfere with a possible wait(2) system call executed
+by the (also traced) parent process. In this case we don't allow the parent
+to continue until one of its children enters a state that may cause the
+parent's wait(2) call to return.
+
+
+NOTES.
+
+o	Not all system calls have been implemented yet as described
+	above (see dummy.h for a list), these calls only have their args
+	displayed as hex numbers.
+
+o	The program draws heavily on Sun's extensions to the ptrace(2)
+	system call.
+
+o	This release is based upon SunOS 4.1.1. The syscall list (syscall.h)
+	and ioctl's (ioctlent.m4) are probably most critically dependant
+	on the OS version (see also /sys/os/init_sysent.c).
+	You may have to edit `ioctlsort.c' and/or `ioctlent.m4' to get
+	`ioctlsort.c' to compile with your suite of system header files.
+
+o	The way in which child processes are caught and attached to after
+	the fork() call is Sparc-specific (in fact it has the looks of a
+	terrible hack). Also, this trick won't work with vfork(2).
+	Enhancements are sollicited for.
+
+o	Dynamically linked executables can be convinced to use the fork(2)
+	system call in stead of vfork(2) by modifying their (internal)
+	symbol table immediately after such a program is exec'ed. Be
+	warned that programs which depend on vfork's peculiar semantics
+	may not run as expected. Enable by the `-F' switch.
+
+
+INSTALLATION.
+
+	Edit the paths in the Makefile to suit your local system.
+	Enter the usual make commands (`make debug' to enable the
+	compiler `-g' flag).
+
+	Not all sites have a complete set of include files, depending
+	on the selected software categories at OS install time. The
+	makefile tries to detect the presence of the Sunview category,
+	if other files are missing you may have to edit `ioctlent.h'.
+
+
+COMMENTS TO:
+
+	P. Kranenburg
+	Department of Computer Science
+	Erasmus University Rotterdam
+	P.O. Box 1738
+	NL-3000 DR Rotterdam
+	e-mail: pk@cs.few.eur.nl
diff --git a/strace-4.5.20/README-svr4 b/strace-4.5.20/README-svr4
new file mode 100644
index 0000000..387d24d
--- /dev/null
+++ b/strace-4.5.20/README-svr4
@@ -0,0 +1,21 @@
+Even though SVR4 has truss, you may prefer using strace for a number
+of reasons.  Not the least of which are portability and source code.
+
+The main event loop is awkward on systems for which procfs isn't
+pollable.  I think a pollable procfs is a Solaris invention so most SVR4
+systems have this weakness.  On Solaris, strace runs as a single
+controlling process.  This is a big improvement if you are debugging a
+lot of processes at once.
+
+There is no thread support but it wouldn't be very difficult to add it.
+
+On UnixWare using the -f option to follow forked children sometimes shows
+many "unfinished" system calls as strace bounces between each runnable child.
+A crude workaround for this is available by adding
+
+    #define POLL_HACK 1
+
+to the config.h file.  This forces strace to check whether the last process
+has finished a system call before polling other processes for events.
+
+Wichert Akkerman <wakkerma@debian.org>
diff --git a/strace-4.5.20/TODO b/strace-4.5.20/TODO
new file mode 100644
index 0000000..1d6a8e8
--- /dev/null
+++ b/strace-4.5.20/TODO
@@ -0,0 +1,32 @@
+-- new entries from wta
+* clone doesn't work; cloned processes can hang
+* partially done: finish up change_syscall using new setargs
+* do setargs for non-ia64
+* generate syscallent.h from the kernel sources (asm/unistd.h)
+* update linux/sparc syscall entries; Linux messed things up by overriding
+  all kinds of SunOS entries
+* synchronize linux/**/syscallent.h, number of arguments for a syscal isn't
+  consistent across different architectures
+
+-- old entries from jrs
+attempt reopen of /proc file if we get EAGAIN from any /proc ioctl
+kill procs we error out of on svr4
+enclose "total x dents" in a comment
+declare gettimeofday and pread for solaris2
+update automatic remaking of autoconf targets
+I don't like run on last close, change it?
+parse long options?
+count signals too with -c
+treat attach, detach messages like signals
+add pread, pwrite to I/O dumping
+add system assist for qualifiers on svr4
+change printcall to getcaller and fix for linux and svr4
+fix fork hang for svr4 without pollable procfs
+print events on entry to and revents on exit from poll
+monitor procfs open and release the other child if the process wants to own it
+fix incorrect syscall number if exit without entry on svr4 without pr_syscall
+fix clean targets so config.h and config.status can be removed
+ignore faults which occur before exec
+look for more ioctls on solaris, used in nslookup for example
+consider adding backtrace support
+consider adding general purpose interpreter
diff --git a/strace-4.5.20/acinclude.m4 b/strace-4.5.20/acinclude.m4
new file mode 100644
index 0000000..da66c64
--- /dev/null
+++ b/strace-4.5.20/acinclude.m4
@@ -0,0 +1,299 @@
+dnl
+dnl This file contains macros used in configure.ac.
+dnl automake uses this file to generate aclocal.m4, which is used by autoconf.
+dnl
+
+dnl ### A macro to find the include directory, useful for cross-compiling.
+AC_DEFUN([AC_INCLUDEDIR],
+[AC_REQUIRE([AC_PROG_AWK])dnl
+AC_SUBST(includedir)
+AC_MSG_CHECKING(for primary include directory)
+includedir=/usr/include
+if test -n "$GCC"
+then
+	>conftest.c
+	new_includedir=`
+		$CC -v -E conftest.c 2>&1 | $AWK '
+			/^End of search list/ { print last; exit }
+			{ last = [$]1 }
+		'
+	`
+	rm -f conftest.c
+	if test -n "$new_includedir" && test -d "$new_includedir"
+	then
+		includedir=$new_includedir
+	fi
+fi
+AC_MSG_RESULT($includedir)
+])
+
+dnl ### A macro to set gcc warning flags.
+define(AC_WARNFLAGS,
+[AC_SUBST(WARNFLAGS)
+if test -z "$WARNFLAGS"
+then
+	if test -n "$GCC"
+	then
+		# If we're using gcc we want warning flags.
+		WARNFLAGS=-Wall
+	fi
+fi
+])
+
+dnl ### A macro to determine if we have a "MP" type procfs
+AC_DEFUN([AC_MP_PROCFS],
+[AC_MSG_CHECKING(for MP procfs)
+AC_CACHE_VAL(ac_cv_mp_procfs,
+[AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <signal.h>
+#include <sys/procfs.h>
+
+main()
+{
+	int pid;
+	char proc[32];
+	FILE *ctl;
+	FILE *status;
+	int cmd;
+	struct pstatus pstatus;
+
+	if ((pid = fork()) == 0) {
+		pause();
+		exit(0);
+	}
+	sprintf(proc, "/proc/%d/ctl", pid);
+	if ((ctl = fopen(proc, "w")) == NULL)
+		goto fail;
+	sprintf(proc, "/proc/%d/status", pid);
+	if ((status = fopen (proc, "r")) == NULL)
+		goto fail;
+	cmd = PCSTOP;
+	if (write (fileno (ctl), &cmd, sizeof cmd) < 0)
+		goto fail;
+	if (read (fileno (status), &pstatus, sizeof pstatus) < 0)
+		goto fail;
+	kill(pid, SIGKILL);
+	exit(0);
+fail:
+	kill(pid, SIGKILL);
+	exit(1);
+}
+]])],[ac_cv_mp_procfs=yes],[ac_cv_mp_procfs=no],[
+# Guess or punt.
+case "$host_os" in
+svr4.2*|svr5*)
+	ac_cv_mp_procfs=yes
+	;;
+*)
+	ac_cv_mp_procfs=no
+	;;
+esac
+])])
+AC_MSG_RESULT($ac_cv_mp_procfs)
+if test "$ac_cv_mp_procfs" = yes
+then
+	AC_DEFINE([HAVE_MP_PROCFS], 1,
+[Define if you have a SVR4 MP type procfs.
+I.E. /dev/xxx/ctl, /dev/xxx/status.
+Also implies that you have the pr_lwp member in prstatus.])
+fi
+])
+
+dnl ### A macro to determine if procfs is pollable.
+AC_DEFUN([AC_POLLABLE_PROCFS],
+[AC_MSG_CHECKING(for pollable procfs)
+AC_CACHE_VAL(ac_cv_pollable_procfs,
+[AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <signal.h>
+#include <sys/procfs.h>
+#include <sys/stropts.h>
+#include <poll.h>
+
+#ifdef HAVE_MP_PROCFS
+#define PIOCSTOP	PCSTOP
+#define POLLWANT	POLLWRNORM
+#define PROC		"/proc/%d/ctl"
+#define PROC_MODE	"w"
+int IOCTL (int fd, int cmd, int arg) {
+	return write (fd, &cmd, sizeof cmd);
+}
+#else
+#define POLLWANT	POLLPRI
+#define	PROC		"/proc/%d"
+#define PROC_MODE	"r+"
+#define IOCTL		ioctl
+#endif
+
+main()
+{
+	int pid;
+	char proc[32];
+	FILE *pfp;
+	struct pollfd pfd;
+
+	if ((pid = fork()) == 0) {
+		pause();
+		exit(0);
+	}
+	sprintf(proc, PROC, pid);
+	if ((pfp = fopen(proc, PROC_MODE)) == NULL)
+		goto fail;
+	if (IOCTL(fileno(pfp), PIOCSTOP, NULL) < 0)
+		goto fail;
+	pfd.fd = fileno(pfp);
+	pfd.events = POLLWANT;
+	if (poll(&pfd, 1, 0) < 0)
+		goto fail;
+	if (!(pfd.revents & POLLWANT))
+		goto fail;
+	kill(pid, SIGKILL);
+	exit(0);
+fail:
+	kill(pid, SIGKILL);
+	exit(1);
+}
+]])],[ac_cv_pollable_procfs=yes],[ac_cv_pollable_procfs=no],[
+# Guess or punt.
+case "$host_os" in
+solaris2*|irix5*|svr4.2uw*|svr5*)
+	ac_cv_pollable_procfs=yes
+	;;
+*)
+	ac_cv_pollable_procfs=no
+	;;
+esac
+])])
+AC_MSG_RESULT($ac_cv_pollable_procfs)
+if test "$ac_cv_pollable_procfs" = yes
+then
+	AC_DEFINE([HAVE_POLLABLE_PROCFS], 1,
+[Define if you have SVR4 and the poll system call works on /proc files.])
+fi
+])
+
+dnl ### A macro to determine if the prstatus structure has a pr_syscall member.
+AC_DEFUN([AC_STRUCT_PR_SYSCALL],
+[AC_MSG_CHECKING(for pr_syscall in struct prstatus)
+AC_CACHE_VAL(ac_cv_struct_pr_syscall,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/procfs.h>]], [[#ifdef HAVE_MP_PROCFS
+pstatus_t s;
+s.pr_lwp.pr_syscall
+#else
+prstatus_t s;
+s.pr_syscall
+#endif]])],[ac_cv_struct_pr_syscall=yes],[ac_cv_struct_pr_syscall=no])])
+AC_MSG_RESULT($ac_cv_struct_pr_syscall)
+if test "$ac_cv_struct_pr_syscall" = yes
+then
+	AC_DEFINE([HAVE_PR_SYSCALL], 1,
+[Define if the prstatus structure in sys/procfs.h has a pr_syscall member.])
+fi
+])
+
+dnl ### A macro to determine whether stat64 is defined.
+AC_DEFUN([AC_STAT64],
+[AC_MSG_CHECKING(for stat64 in (asm|sys)/stat.h)
+AC_CACHE_VAL(ac_cv_type_stat64,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
+#ifdef LINUX
+#include <linux/types.h>
+#include <asm/stat.h>
+#else
+#include <sys/stat.h>
+#endif]], [[struct stat64 st;]])],[ac_cv_type_stat64=yes],[ac_cv_type_stat64=no])])
+AC_MSG_RESULT($ac_cv_type_stat64)
+if test "$ac_cv_type_stat64" = yes
+then
+	AC_DEFINE([HAVE_STAT64], 1,
+[Define if stat64 is available in asm/stat.h.])
+fi
+])
+
+dnl ### A macro to determine whether statfs64 is defined.
+AC_DEFUN([AC_STATFS64],
+[AC_MSG_CHECKING(for statfs64 in sys/vfs.h)
+AC_CACHE_VAL(ac_cv_type_statfs64,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef LINUX
+#include <linux/types.h>
+#include <sys/vfs.h>
+#endif]], [[struct statfs64 st;]])],[ac_cv_type_statfs64=yes],[ac_cv_type_statfs64=no])])
+AC_MSG_RESULT($ac_cv_type_statfs64)
+if test "$ac_cv_type_statfs64" = yes
+then
+	AC_DEFINE([HAVE_STATFS64], 1,
+[Define if statfs64 is available in sys/vfs.h.])
+fi
+])
+
+
+dnl ### A macro to determine if off_t is a long long
+AC_DEFUN([AC_OFF_T_IS_LONG_LONG],
+[AC_MSG_CHECKING(for long long off_t)
+AC_CACHE_VAL(ac_cv_have_long_long_off_t,
+[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <sys/types.h>
+main () {
+	if (sizeof (off_t) == sizeof (long long) &&
+	    sizeof (off_t) > sizeof (long))
+	    return 0;
+	return 1;
+}
+]])],[ac_cv_have_long_long_off_t=yes],[ac_cv_have_long_long_off_t=no],[# Should try to guess here
+ac_cv_have_long_long_off_t=no
+])])
+AC_MSG_RESULT($ac_cv_have_long_long_off_t)
+if test "$ac_cv_have_long_long_off_t" = yes
+then
+	AC_DEFINE([HAVE_LONG_LONG_OFF_T], 1, [Define if off_t is a long long.])
+fi
+])
+
+dnl ### A macro to determine if rlim_t is a long long
+AC_DEFUN([AC_RLIM_T_IS_LONG_LONG],
+[AC_MSG_CHECKING(for long long rlim_t)
+AC_CACHE_VAL(ac_cv_have_long_long_rlim_t,
+[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/resource.h>
+main () {
+	if (sizeof (rlim_t) == sizeof (long long) &&
+	    sizeof (rlim_t) > sizeof (long))
+	    return 0;
+	return 1;
+}
+]])],[ac_cv_have_long_long_rlim_t=yes],[ac_cv_have_long_long_rlim_t=no],[# Should try to guess here
+ac_cv_have_long_long_rlim_t=no
+])])
+AC_MSG_RESULT($ac_cv_have_long_long_rlim_t)
+if test "$ac_cv_have_long_long_rlim_t" = yes
+then
+	AC_DEFINE([HAVE_LONG_LONG_RLIM_T], 1, [Define if rlim_t is a long long.])
+fi
+])
+
+dnl ### A macro to determine endianness of long long
+AC_DEFUN([AC_LITTLE_ENDIAN_LONG_LONG],
+[AC_MSG_CHECKING(for little endian long long)
+AC_CACHE_VAL(ac_cv_have_little_endian_long_long,
+[AC_RUN_IFELSE([AC_LANG_SOURCE([[
+int main () {
+	union {
+		long long ll;
+		long l [2];
+	} u;
+	u.ll = 0x12345678;
+	if (u.l[0] == 0x12345678)
+		return 0;
+	return 1;
+}
+]])],[ac_cv_have_little_endian_long_long=yes],[ac_cv_have_little_endian_long_long=no],[# Should try to guess here
+ac_cv_have_little_endian_long_long=no
+])])
+AC_MSG_RESULT($ac_cv_have_little_endian_long_long)
+if test "$ac_cv_have_little_endian_long_long" = yes
+then
+	AC_DEFINE([HAVE_LITTLE_ENDIAN_LONG_LONG], 1,
+[Define if long long is little-endian.])
+fi
+])
diff --git a/strace-4.5.20/aclocal.m4 b/strace-4.5.20/aclocal.m4
new file mode 100644
index 0000000..68578ce
--- /dev/null
+++ b/strace-4.5.20/aclocal.m4
@@ -0,0 +1,1007 @@
+# generated automatically by aclocal 1.11.1a -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],,
+[m4_warning([this file was generated for autoconf 2.65.
+You have another version of autoconf.  It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically `autoreconf'.])])
+
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.11'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version.  Point them to the right macro.
+m4_if([$1], [1.11.1a], [],
+      [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too.  Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.11.1a])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
+
+# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory.  The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run.  This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+#    fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+#    fails if $ac_aux_dir is absolute,
+#    fails when called from a subdirectory in a VPATH build with
+#          a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir.  In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
+#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+#   MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH.  The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL                                            -*- Autoconf -*-
+
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 9
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+	[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+  AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
+# 2010  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 11
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery.  Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
+       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
+       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+       [$1], UPC,  [depcc="$UPC"  am_compiler_list=],
+       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                   [depcc="$$1"   am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+               [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_$1_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+  fi
+  am__universal=false
+  m4_case([$1], [CC],
+    [case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac],
+    [CXX],
+    [case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac])
+
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+      # Solaris 8's {/usr,}/bin/sh.
+      touch sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    msvisualcpp | msvcmsys)
+      # This compiler won't grok `-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_$1_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[  --disable-dependency-tracking  speeds up one-time build
+  --enable-dependency-tracking   do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+  am__nodep='_no'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
+])
+
+# Generate code to set up dependency tracking.              -*- Autoconf -*-
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+#serial 5
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[{
+  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # are listed without --file.  Let's play safe and only enable the eval
+  # if we detect the quoting.
+  case $CONFIG_FILES in
+  *\'*) eval set x "$CONFIG_FILES" ;;
+  *)   set x $CONFIG_FILES ;;
+  esac
+  shift
+  for mf
+  do
+    # Strip MF so we end up with the name of the file.
+    mf=`echo "$mf" | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile or not.
+    # We used to match only the files named `Makefile.in', but
+    # some people rename them; so instead we look at the file content.
+    # Grep'ing the first line is not enough: some people post-process
+    # each Makefile.in and add a new line on top of each file to say so.
+    # Grep'ing the whole file is not good either: AIX grep has a line
+    # limit of 2048, but all sed's we know have understand at least 4000.
+    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+      dirpart=`AS_DIRNAME("$mf")`
+    else
+      continue
+    fi
+    # Extract the definition of DEPDIR, am__include, and am__quote
+    # from the Makefile without running `make'.
+    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+    test -z "$DEPDIR" && continue
+    am__include=`sed -n 's/^am__include = //p' < "$mf"`
+    test -z "am__include" && continue
+    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+    # When using ansi2knr, U may be empty or an underscore; expand it
+    U=`sed -n 's/^U = //p' < "$mf"`
+    # Find all dependency output files, they are included files with
+    # $(DEPDIR) in their names.  We invoke sed twice because it is the
+    # simplest approach to changing $(DEPDIR) to its actual value in the
+    # expansion.
+    for file in `sed -n "
+      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+      # Make sure the directory exists.
+      test -f "$dirpart/$file" && continue
+      fdir=`AS_DIRNAME(["$file"])`
+      AS_MKDIR_P([$dirpart/$fdir])
+      # echo "creating $dirpart/$file"
+      echo '# dummy' > "$dirpart/$file"
+    done
+  done
+}
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled.  FIXME.  This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+     [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+     [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 8
+
+# AM_CONFIG_HEADER is obsolete.  It has been replaced by AC_CONFIG_HEADERS.
+AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
+
+# Do all the work for Automake.                             -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 16
+
+# This macro actually does too much.  Some checks are only needed if
+# your package does certain things.  But this isn't really a big deal.
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out.  PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition.  After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.62])dnl
+dnl Autoconf wants to disallow AM_ names.  We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+  # is not polluted with repeated "-I."
+  AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+  # test to see if srcdir already configured
+  if test -f $srcdir/config.status; then
+    AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+  fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+  [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+	      [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+			     [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+		  [_AM_DEPENDENCIES(CC)],
+		  [define([AC_PROG_CC],
+			  defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+		  [_AM_DEPENDENCIES(CXX)],
+		  [define([AC_PROG_CXX],
+			  defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+		  [_AM_DEPENDENCIES(OBJC)],
+		  [define([AC_PROG_OBJC],
+			  defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+])
+_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
+dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
+dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro
+dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+  [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+])
+
+dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated.  The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+    $_am_arg | $_am_arg:* )
+      break ;;
+    * )
+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001, 2003, 2005, 2008  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+  *)
+    install_sh="\${SHELL} $am_aux_dir/install-sh"
+  esac
+fi
+AC_SUBST(install_sh)])
+
+# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot.  For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 5
+
+# AM_MAINTAINER_MODE([DEFAULT-MODE])
+# ----------------------------------
+# Control maintainer-specific portions of Makefiles.
+# Default is to disable them, unless `enable' is passed literally.
+# For symmetry, `disable' may be passed as well.  Anyway, the user
+# can override the default with the --enable/--disable switch.
+AC_DEFUN([AM_MAINTAINER_MODE],
+[m4_case(m4_default([$1], [disable]),
+       [enable], [m4_define([am_maintainer_other], [disable])],
+       [disable], [m4_define([am_maintainer_other], [enable])],
+       [m4_define([am_maintainer_other], [enable])
+        m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
+  dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+  AC_ARG_ENABLE([maintainer-mode],
+[  --][am_maintainer_other][-maintainer-mode  am_maintainer_other make rules and dependencies not useful
+			  (and sometimes confusing) to the casual installer],
+      [USE_MAINTAINER_MODE=$enableval],
+      [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+  AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+  AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+  MAINT=$MAINTAINER_MODE_TRUE
+  AC_SUBST([MAINT])dnl
+]
+)
+
+AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
+
+# Check to see how 'make' treats includes.	            -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005, 2009  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+	@echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+  am__include=include
+  am__quote=
+  _am_result=GNU
+  ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   case `$am_make -s -f confmf 2> /dev/null` in #(
+   *the\ am__doit\ target*)
+     am__include=.include
+     am__quote="\""
+     _am_result=BSD
+     ;;
+   esac
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
+
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 6
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+  *)
+    MISSING="\${SHELL} $am_aux_dir/missing" ;;
+  esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+  am_missing_run="$MISSING --run "
+else
+  am_missing_run=
+  AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+
+# Copyright (C) 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_MKDIR_P
+# ---------------
+# Check for `mkdir -p'.
+AC_DEFUN([AM_PROG_MKDIR_P],
+[AC_PREREQ([2.60])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl Automake 1.8 to 1.9.6 used to define mkdir_p.  We now use MKDIR_P,
+dnl while keeping a definition of mkdir_p for backward compatibility.
+dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
+dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
+dnl Makefile.ins that do not define MKDIR_P, so we do our own
+dnl adjustment using top_builddir (which is defined more often than
+dnl MKDIR_P).
+AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
+case $mkdir_p in
+  [[\\/$]]* | ?:[[\\/]]*) ;;
+  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+])
+
+# Helper functions for option handling.                     -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005, 2008  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# ------------------------------
+# Set option NAME.  Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Check to make sure that the build environment is sane.    -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 5
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name.  Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+  *[[\\\"\#\$\&\'\`$am_lf]]*)
+    AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+  *[[\\\"\#\$\&\'\`$am_lf\ \	]]*)
+    AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+esac
+
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+   if test "$[*]" = "X"; then
+      # -L didn't work.
+      set X `ls -t "$srcdir/configure" conftest.file`
+   fi
+   rm -f conftest.file
+   if test "$[*]" != "X $srcdir/configure conftest.file" \
+      && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+      # If neither matched, then we have a broken ls.  This can happen
+      # if, for instance, CONFIG_SHELL is bash and it inherits a
+      # broken ls alias from the environment.  This has actually
+      # happened.  Such a system could not be considered "sane".
+      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+alias in your environment])
+   fi
+
+   test "$[2]" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+
+# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries.  This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'.  However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+  AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006, 2008  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
+# Check how to create a tarball.                            -*- Autoconf -*-
+
+# Copyright (C) 2004, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+#     tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+#     $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+     [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+     [m4_case([$1], [ustar],, [pax],,
+              [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+  case $_am_tool in
+  gnutar)
+    for _am_tar in tar gnutar gtar;
+    do
+      AM_RUN_LOG([$_am_tar --version]) && break
+    done
+    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+    am__untar="$_am_tar -xf -"
+    ;;
+  plaintar)
+    # Must skip GNU tar: if it does not support --format= it doesn't create
+    # ustar tarball either.
+    (tar --version) >/dev/null 2>&1 && continue
+    am__tar='tar chf - "$$tardir"'
+    am__tar_='tar chf - "$tardir"'
+    am__untar='tar xf -'
+    ;;
+  pax)
+    am__tar='pax -L -x $1 -w "$$tardir"'
+    am__tar_='pax -L -x $1 -w "$tardir"'
+    am__untar='pax -r'
+    ;;
+  cpio)
+    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+    am__untar='cpio -i -H $1 -d'
+    ;;
+  none)
+    am__tar=false
+    am__tar_=false
+    am__untar=false
+    ;;
+  esac
+
+  # If the value was cached, stop now.  We just wanted to have am__tar
+  # and am__untar set.
+  test -n "${am_cv_prog_tar_$1}" && break
+
+  # tar/untar a dummy directory, and stop if the command works
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  echo GrepMe > conftest.dir/file
+  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+  rm -rf conftest.dir
+  if test -s conftest.tar; then
+    AM_RUN_LOG([$am__untar <conftest.tar])
+    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+  fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([acinclude.m4])
diff --git a/strace-4.5.20/bjm.c b/strace-4.5.20/bjm.c
new file mode 100644
index 0000000..6c948d5
--- /dev/null
+++ b/strace-4.5.20/bjm.c
@@ -0,0 +1,213 @@
+/*
+ * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
+ * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
+ * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *	$Id$
+ */
+#include "defs.h"
+
+#if defined(LINUX)
+
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <sys/wait.h>
+#include <sys/resource.h>
+#include <sys/utsname.h>
+#include <sys/user.h>
+#include <sys/syscall.h>
+#include <signal.h>
+
+/* Bits of module.flags.  */
+
+#define MOD_UNINITIALIZED	0
+#define MOD_RUNNING		1
+#define MOD_DELETED		2
+#define MOD_AUTOCLEAN		4
+#define MOD_VISITED  		8
+#define MOD_USED_ONCE		16
+#define MOD_JUST_FREED		32
+#define MOD_INITIALIZING	64
+
+/* Values for query_module's which.  */
+
+#define QM_MODULES	1
+#define QM_DEPS		2
+#define QM_REFS		3
+#define QM_SYMBOLS	4
+#define QM_INFO		5
+
+struct module_symbol
+{
+	unsigned long value;
+	const char *name;
+};
+
+struct module_info
+{
+	unsigned long addr;
+	unsigned long size;
+	unsigned long flags;
+	long usecount;
+};
+
+static const struct xlat which[] = {
+	{ 0,		"0"		},
+	{ QM_MODULES,	"QM_MODULES"	},
+	{ QM_DEPS,	"QM_DEPS"	},
+	{ QM_REFS,	"QM_REFS"	},
+	{ QM_SYMBOLS,	"QM_SYMBOLS"	},
+	{ QM_INFO,	"QM_INFO"	},
+	{ 0,		NULL		},
+};
+
+static const struct xlat modflags[] = {
+	{ MOD_UNINITIALIZED,	"MOD_UNINITIALIZED"	},
+	{ MOD_RUNNING,		"MOD_RUNNING"		},
+	{ MOD_DELETED,		"MOD_DELETED"		},
+	{ MOD_AUTOCLEAN,	"MOD_AUTOCLEAN"		},
+	{ MOD_VISITED,		"MOD_VISITED"		},
+	{ MOD_USED_ONCE,	"MOD_USED_ONCE"		},
+	{ MOD_JUST_FREED,	"MOD_JUST_FREED"	},
+	{ 0,			NULL			},
+};
+
+int
+sys_query_module(struct tcb *tcp)
+{
+	if (entering(tcp)) {
+		printstr(tcp, tcp->u_arg[0], -1);
+		tprintf(", ");
+		printxval(which, tcp->u_arg[1], "QM_???");
+		tprintf(", ");
+	} else {
+		size_t ret;
+
+		if (!verbose(tcp) || syserror(tcp) ||
+		    umove(tcp, tcp->u_arg[4], &ret) < 0) {
+			tprintf("%#lx, %lu, %#lx", tcp->u_arg[2],
+				tcp->u_arg[3], tcp->u_arg[4]);
+		} else if (tcp->u_arg[1]==QM_INFO) {
+			struct module_info	mi;
+			if (umove(tcp, tcp->u_arg[2], &mi) < 0) {
+				tprintf("%#lx, ", tcp->u_arg[2]);
+			} else {
+				tprintf("{address=%#lx, size=%lu, flags=",
+					mi.addr, mi.size);
+				printflags(modflags, mi.flags, "MOD_???");
+				tprintf(", usecount=%lu}, ", mi.usecount);
+			}
+			tprintf("%Zu", ret);
+		} else if ((tcp->u_arg[1]==QM_MODULES) ||
+			   (tcp->u_arg[1]==QM_DEPS) ||
+			   (tcp->u_arg[1]==QM_REFS)) {
+			tprintf("{");
+			if (!abbrev(tcp)) {
+				char*	data	= malloc(tcp->u_arg[3]);
+				char*	mod	= data;
+				size_t	idx;
+
+				if (!data) {
+					fprintf(stderr, "out of memory\n");
+					tprintf(" /* %Zu entries */ ", ret);
+				} else {
+					if (umoven(tcp, tcp->u_arg[2],
+						tcp->u_arg[3], data) < 0) {
+						tprintf(" /* %Zu entries */ ", ret);
+					} else {
+						for (idx=0; idx<ret; idx++) {
+							tprintf("%s%s",
+								(idx ? ", " : ""),
+								mod);
+							mod += strlen(mod)+1;
+						}
+					}
+					free(data);
+				}
+			} else
+				tprintf(" /* %Zu entries */ ", ret);
+			tprintf("}, %Zu", ret);
+		} else if (tcp->u_arg[1]==QM_SYMBOLS) {
+			tprintf("{");
+			if (!abbrev(tcp)) {
+				char*			data	= malloc(tcp->u_arg[3]);
+				struct module_symbol*	sym	= (struct module_symbol*)data;
+				size_t			idx;
+
+				if (!data) {
+					fprintf(stderr, "out of memory\n");
+					tprintf(" /* %Zu entries */ ", ret);
+				} else {
+					if (umoven(tcp, tcp->u_arg[2],
+						tcp->u_arg[3], data) < 0) {
+						tprintf(" /* %Zu entries */ ", ret);
+					} else {
+						for (idx=0; idx<ret; idx++) {
+							tprintf("%s{name=%s, value=%lu}",
+								(idx ? " " : ""),
+								data+(long)sym->name,
+								sym->value);
+							sym++;
+						}
+					}
+					free(data);
+				}
+			} else
+				tprintf(" /* %Zu entries */ ", ret);
+			tprintf("}, %Zd", ret);
+		} else {
+			printstr(tcp, tcp->u_arg[2], tcp->u_arg[3]);
+			tprintf(", %#lx", tcp->u_arg[4]);
+		}
+	}
+	return 0;
+}
+
+int
+sys_create_module(tcp)
+struct tcb *tcp;
+{
+	if (entering(tcp)) {
+		printpath(tcp, tcp->u_arg[0]);
+		tprintf(", %lu", tcp->u_arg[1]);
+	}
+	return RVAL_HEX;
+}
+
+int
+sys_init_module(tcp)
+struct tcb *tcp;
+{
+	if (entering(tcp)) {
+		tprintf("%#lx, ", tcp->u_arg[0]);
+		tprintf("%lu, ", tcp->u_arg[1]);
+		printstr(tcp, tcp->u_arg[2], -1);
+	}
+	return 0;
+}
+#endif /* LINUX */
diff --git a/strace-4.5.20/config.guess b/strace-4.5.20/config.guess
new file mode 100755
index 0000000..c2246a4
--- /dev/null
+++ b/strace-4.5.20/config.guess
@@ -0,0 +1,1502 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+#   Free Software Foundation, Inc.
+
+timestamp='2009-12-30'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Originally written by Per Bothner.  Please send patches (context
+# diff format) to <config-patches@gnu.org> and include a ChangeLog
+# entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub.  If it succeeds, it prints the system name on stdout, and
+# exits with 0.  Otherwise, it exits with 1.
+#
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
+Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help" >&2
+       exit 1 ;;
+    * )
+       break ;;
+  esac
+done
+
+if test $# != 0; then
+  echo "$me: too many arguments$help" >&2
+  exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int x;" > $dummy.c ;
+	for c in cc gcc c89 c99 ; do
+	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+	     CC_FOR_BUILD="$c"; break ;
+	  fi ;
+	done ;
+	if test x"$CC_FOR_BUILD" = x ; then
+	  CC_FOR_BUILD=no_compiler_found ;
+	fi
+	;;
+ ,,*)   CC_FOR_BUILD=$CC ;;
+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+	PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+    *:NetBSD:*:*)
+	# NetBSD (nbsd) targets should (where applicable) match one or
+	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+	# switched to ELF, *-*-netbsd* would select the old
+	# object file format.  This provides both forward
+	# compatibility and a consistent mechanism for selecting the
+	# object file format.
+	#
+	# Note: NetBSD doesn't particularly care about the vendor
+	# portion of the name.  We always set it to "unknown".
+	sysctl="sysctl -n hw.machine_arch"
+	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+	case "${UNAME_MACHINE_ARCH}" in
+	    armeb) machine=armeb-unknown ;;
+	    arm*) machine=arm-unknown ;;
+	    sh3el) machine=shl-unknown ;;
+	    sh3eb) machine=sh-unknown ;;
+	    sh5el) machine=sh5le-unknown ;;
+	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+	esac
+	# The Operating System including object format, if it has switched
+	# to ELF recently, or will in the future.
+	case "${UNAME_MACHINE_ARCH}" in
+	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+		eval $set_cc_for_build
+		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+			| grep -q __ELF__
+		then
+		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+		    # Return netbsd for either.  FIX?
+		    os=netbsd
+		else
+		    os=netbsdelf
+		fi
+		;;
+	    *)
+	        os=netbsd
+		;;
+	esac
+	# The OS release
+	# Debian GNU/NetBSD machines have a different userland, and
+	# thus, need a distinct triplet. However, they do not need
+	# kernel version information, so it can be replaced with a
+	# suitable tag, in the style of linux-gnu.
+	case "${UNAME_VERSION}" in
+	    Debian*)
+		release='-gnu'
+		;;
+	    *)
+		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+		;;
+	esac
+	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+	# contains redundant information, the shorter form:
+	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+	echo "${machine}-${os}${release}"
+	exit ;;
+    *:OpenBSD:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+	exit ;;
+    *:ekkoBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+	exit ;;
+    *:SolidBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+	exit ;;
+    macppc:MirBSD:*:*)
+	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    *:MirBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    alpha:OSF1:*:*)
+	case $UNAME_RELEASE in
+	*4.0)
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+		;;
+	*5.*)
+	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+		;;
+	esac
+	# According to Compaq, /usr/sbin/psrinfo has been available on
+	# OSF/1 and Tru64 systems produced since 1995.  I hope that
+	# covers most systems running today.  This code pipes the CPU
+	# types through head -n 1, so we only detect the type of CPU 0.
+	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+	case "$ALPHA_CPU_TYPE" in
+	    "EV4 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV4.5 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "LCA4 (21066/21068)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV5 (21164)")
+		UNAME_MACHINE="alphaev5" ;;
+	    "EV5.6 (21164A)")
+		UNAME_MACHINE="alphaev56" ;;
+	    "EV5.6 (21164PC)")
+		UNAME_MACHINE="alphapca56" ;;
+	    "EV5.7 (21164PC)")
+		UNAME_MACHINE="alphapca57" ;;
+	    "EV6 (21264)")
+		UNAME_MACHINE="alphaev6" ;;
+	    "EV6.7 (21264A)")
+		UNAME_MACHINE="alphaev67" ;;
+	    "EV6.8CB (21264C)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8AL (21264B)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8CX (21264D)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.9A (21264/EV69A)")
+		UNAME_MACHINE="alphaev69" ;;
+	    "EV7 (21364)")
+		UNAME_MACHINE="alphaev7" ;;
+	    "EV7.9 (21364A)")
+		UNAME_MACHINE="alphaev79" ;;
+	esac
+	# A Pn.n version is a patched version.
+	# A Vn.n version is a released version.
+	# A Tn.n version is a released field test version.
+	# A Xn.n version is an unreleased experimental baselevel.
+	# 1.2 uses "1.2" for uname -r.
+	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+	exit ;;
+    Alpha\ *:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# Should we change UNAME_MACHINE based on the output of uname instead
+	# of the specific Alpha model?
+	echo alpha-pc-interix
+	exit ;;
+    21064:Windows_NT:50:3)
+	echo alpha-dec-winnt3.5
+	exit ;;
+    Amiga*:UNIX_System_V:4.0:*)
+	echo m68k-unknown-sysv4
+	exit ;;
+    *:[Aa]miga[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-amigaos
+	exit ;;
+    *:[Mm]orph[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-morphos
+	exit ;;
+    *:OS/390:*:*)
+	echo i370-ibm-openedition
+	exit ;;
+    *:z/VM:*:*)
+	echo s390-ibm-zvmoe
+	exit ;;
+    *:OS400:*:*)
+        echo powerpc-ibm-os400
+	exit ;;
+    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+	echo arm-acorn-riscix${UNAME_RELEASE}
+	exit ;;
+    arm:riscos:*:*|arm:RISCOS:*:*)
+	echo arm-unknown-riscos
+	exit ;;
+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+	echo hppa1.1-hitachi-hiuxmpp
+	exit ;;
+    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+	if test "`(/bin/universe) 2>/dev/null`" = att ; then
+		echo pyramid-pyramid-sysv3
+	else
+		echo pyramid-pyramid-bsd
+	fi
+	exit ;;
+    NILE*:*:*:dcosx)
+	echo pyramid-pyramid-svr4
+	exit ;;
+    DRS?6000:unix:4.0:6*)
+	echo sparc-icl-nx6
+	exit ;;
+    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+	case `/usr/bin/uname -p` in
+	    sparc) echo sparc-icl-nx7; exit ;;
+	esac ;;
+    s390x:SunOS:*:*)
+	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4H:SunOS:5.*:*)
+	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+	echo i386-pc-auroraux${UNAME_RELEASE}
+	exit ;;
+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+	eval $set_cc_for_build
+	SUN_ARCH="i386"
+	# If there is a compiler, see if it is configured for 64-bit objects.
+	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+	# This test works for both compilers.
+	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		grep IS_64BIT_ARCH >/dev/null
+	    then
+		SUN_ARCH="x86_64"
+	    fi
+	fi
+	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:6*:*)
+	# According to config.sub, this is the proper way to canonicalize
+	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
+	# it's likely to be more like Solaris than SunOS4.
+	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:*:*)
+	case "`/usr/bin/arch -k`" in
+	    Series*|S4*)
+		UNAME_RELEASE=`uname -v`
+		;;
+	esac
+	# Japanese Language versions have a version number like `4.1.3-JL'.
+	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+	exit ;;
+    sun3*:SunOS:*:*)
+	echo m68k-sun-sunos${UNAME_RELEASE}
+	exit ;;
+    sun*:*:4.2BSD:*)
+	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+	case "`/bin/arch`" in
+	    sun3)
+		echo m68k-sun-sunos${UNAME_RELEASE}
+		;;
+	    sun4)
+		echo sparc-sun-sunos${UNAME_RELEASE}
+		;;
+	esac
+	exit ;;
+    aushp:SunOS:*:*)
+	echo sparc-auspex-sunos${UNAME_RELEASE}
+	exit ;;
+    # The situation for MiNT is a little confusing.  The machine name
+    # can be virtually everything (everything which is not
+    # "atarist" or "atariste" at least should have a processor
+    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+    # to the lowercase version "mint" (or "freemint").  Finally
+    # the system name "TOS" denotes a system which is actually not
+    # MiNT.  But MiNT is downward compatible to TOS, so this should
+    # be no problem.
+    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+	echo m68k-atari-mint${UNAME_RELEASE}
+        exit ;;
+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+        echo m68k-milan-mint${UNAME_RELEASE}
+        exit ;;
+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+        echo m68k-hades-mint${UNAME_RELEASE}
+        exit ;;
+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+        echo m68k-unknown-mint${UNAME_RELEASE}
+        exit ;;
+    m68k:machten:*:*)
+	echo m68k-apple-machten${UNAME_RELEASE}
+	exit ;;
+    powerpc:machten:*:*)
+	echo powerpc-apple-machten${UNAME_RELEASE}
+	exit ;;
+    RISC*:Mach:*:*)
+	echo mips-dec-mach_bsd4.3
+	exit ;;
+    RISC*:ULTRIX:*:*)
+	echo mips-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    VAX*:ULTRIX*:*:*)
+	echo vax-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    2020:CLIX:*:* | 2430:CLIX:*:*)
+	echo clipper-intergraph-clix${UNAME_RELEASE}
+	exit ;;
+    mips:*:*:UMIPS | mips:*:*:RISCos)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h>  /* for printf() prototype */
+	int main (int argc, char *argv[]) {
+#else
+	int main (argc, argv) int argc; char *argv[]; {
+#endif
+	#if defined (host_mips) && defined (MIPSEB)
+	#if defined (SYSTYPE_SYSV)
+	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_SVR4)
+	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+	#endif
+	#endif
+	  exit (-1);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c &&
+	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+	  SYSTEM_NAME=`$dummy $dummyarg` &&
+	    { echo "$SYSTEM_NAME"; exit; }
+	echo mips-mips-riscos${UNAME_RELEASE}
+	exit ;;
+    Motorola:PowerMAX_OS:*:*)
+	echo powerpc-motorola-powermax
+	exit ;;
+    Motorola:*:4.3:PL8-*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:Power_UNIX:*:*)
+	echo powerpc-harris-powerunix
+	exit ;;
+    m88k:CX/UX:7*:*)
+	echo m88k-harris-cxux7
+	exit ;;
+    m88k:*:4*:R4*)
+	echo m88k-motorola-sysv4
+	exit ;;
+    m88k:*:3*:R3*)
+	echo m88k-motorola-sysv3
+	exit ;;
+    AViiON:dgux:*:*)
+        # DG/UX returns AViiON for all architectures
+        UNAME_PROCESSOR=`/usr/bin/uname -p`
+	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+	then
+	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+	       [ ${TARGET_BINARY_INTERFACE}x = x ]
+	    then
+		echo m88k-dg-dgux${UNAME_RELEASE}
+	    else
+		echo m88k-dg-dguxbcs${UNAME_RELEASE}
+	    fi
+	else
+	    echo i586-dg-dgux${UNAME_RELEASE}
+	fi
+ 	exit ;;
+    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
+	echo m88k-dolphin-sysv3
+	exit ;;
+    M88*:*:R3*:*)
+	# Delta 88k system running SVR3
+	echo m88k-motorola-sysv3
+	exit ;;
+    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+	echo m88k-tektronix-sysv3
+	exit ;;
+    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+	echo m68k-tektronix-bsd
+	exit ;;
+    *:IRIX*:*:*)
+	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+	exit ;;
+    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
+	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
+    i*86:AIX:*:*)
+	echo i386-ibm-aix
+	exit ;;
+    ia64:AIX:*:*)
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:2:3)
+	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+		eval $set_cc_for_build
+		sed 's/^		//' << EOF >$dummy.c
+		#include <sys/systemcfg.h>
+
+		main()
+			{
+			if (!__power_pc())
+				exit(1);
+			puts("powerpc-ibm-aix3.2.5");
+			exit(0);
+			}
+EOF
+		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+		then
+			echo "$SYSTEM_NAME"
+		else
+			echo rs6000-ibm-aix3.2.5
+		fi
+	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+		echo rs6000-ibm-aix3.2.4
+	else
+		echo rs6000-ibm-aix3.2
+	fi
+	exit ;;
+    *:AIX:*:[456])
+	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+		IBM_ARCH=rs6000
+	else
+		IBM_ARCH=powerpc
+	fi
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:*:*)
+	echo rs6000-ibm-aix
+	exit ;;
+    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+	echo romp-ibm-bsd4.4
+	exit ;;
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
+	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+	exit ;;                             # report: romp-ibm BSD 4.3
+    *:BOSX:*:*)
+	echo rs6000-bull-bosx
+	exit ;;
+    DPX/2?00:B.O.S.:*:*)
+	echo m68k-bull-sysv3
+	exit ;;
+    9000/[34]??:4.3bsd:1.*:*)
+	echo m68k-hp-bsd
+	exit ;;
+    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+	echo m68k-hp-bsd4.4
+	exit ;;
+    9000/[34678]??:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	case "${UNAME_MACHINE}" in
+	    9000/31? )            HP_ARCH=m68000 ;;
+	    9000/[34]?? )         HP_ARCH=m68k ;;
+	    9000/[678][0-9][0-9])
+		if [ -x /usr/bin/getconf ]; then
+		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                    case "${sc_cpu_version}" in
+                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                      532)                      # CPU_PA_RISC2_0
+                        case "${sc_kernel_bits}" in
+                          32) HP_ARCH="hppa2.0n" ;;
+                          64) HP_ARCH="hppa2.0w" ;;
+			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+                        esac ;;
+                    esac
+		fi
+		if [ "${HP_ARCH}" = "" ]; then
+		    eval $set_cc_for_build
+		    sed 's/^              //' << EOF >$dummy.c
+
+              #define _HPUX_SOURCE
+              #include <stdlib.h>
+              #include <unistd.h>
+
+              int main ()
+              {
+              #if defined(_SC_KERNEL_BITS)
+                  long bits = sysconf(_SC_KERNEL_BITS);
+              #endif
+                  long cpu  = sysconf (_SC_CPU_VERSION);
+
+                  switch (cpu)
+              	{
+              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+              	case CPU_PA_RISC2_0:
+              #if defined(_SC_KERNEL_BITS)
+              	    switch (bits)
+              		{
+              		case 64: puts ("hppa2.0w"); break;
+              		case 32: puts ("hppa2.0n"); break;
+              		default: puts ("hppa2.0"); break;
+              		} break;
+              #else  /* !defined(_SC_KERNEL_BITS) */
+              	    puts ("hppa2.0"); break;
+              #endif
+              	default: puts ("hppa1.0"); break;
+              	}
+                  exit (0);
+              }
+EOF
+		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+		    test -z "$HP_ARCH" && HP_ARCH=hppa
+		fi ;;
+	esac
+	if [ ${HP_ARCH} = "hppa2.0w" ]
+	then
+	    eval $set_cc_for_build
+
+	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
+	    # generating 64-bit code.  GNU and HP use different nomenclature:
+	    #
+	    # $ CC_FOR_BUILD=cc ./config.guess
+	    # => hppa2.0w-hp-hpux11.23
+	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+	    # => hppa64-hp-hpux11.23
+
+	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+		grep -q __LP64__
+	    then
+		HP_ARCH="hppa2.0w"
+	    else
+		HP_ARCH="hppa64"
+	    fi
+	fi
+	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+	exit ;;
+    ia64:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	echo ia64-hp-hpux${HPUX_REV}
+	exit ;;
+    3050*:HI-UX:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <unistd.h>
+	int
+	main ()
+	{
+	  long cpu = sysconf (_SC_CPU_VERSION);
+	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
+	     results, however.  */
+	  if (CPU_IS_PA_RISC (cpu))
+	    {
+	      switch (cpu)
+		{
+		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+		  default: puts ("hppa-hitachi-hiuxwe2"); break;
+		}
+	    }
+	  else if (CPU_IS_HP_MC68K (cpu))
+	    puts ("m68k-hitachi-hiuxwe2");
+	  else puts ("unknown-hitachi-hiuxwe2");
+	  exit (0);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+		{ echo "$SYSTEM_NAME"; exit; }
+	echo unknown-hitachi-hiuxwe2
+	exit ;;
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+	echo hppa1.1-hp-bsd
+	exit ;;
+    9000/8??:4.3bsd:*:*)
+	echo hppa1.0-hp-bsd
+	exit ;;
+    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+	echo hppa1.0-hp-mpeix
+	exit ;;
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+	echo hppa1.1-hp-osf
+	exit ;;
+    hp8??:OSF1:*:*)
+	echo hppa1.0-hp-osf
+	exit ;;
+    i*86:OSF1:*:*)
+	if [ -x /usr/sbin/sysversion ] ; then
+	    echo ${UNAME_MACHINE}-unknown-osf1mk
+	else
+	    echo ${UNAME_MACHINE}-unknown-osf1
+	fi
+	exit ;;
+    parisc*:Lites*:*:*)
+	echo hppa1.1-hp-lites
+	exit ;;
+    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+	echo c1-convex-bsd
+        exit ;;
+    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+        exit ;;
+    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+	echo c34-convex-bsd
+        exit ;;
+    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+	echo c38-convex-bsd
+        exit ;;
+    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+	echo c4-convex-bsd
+        exit ;;
+    CRAY*Y-MP:*:*:*)
+	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*[A-Z]90:*:*:*)
+	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+	      -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*TS:*:*:*)
+	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*T3E:*:*:*)
+	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*SV1:*:*:*)
+	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    *:UNICOS/mp:*:*)
+	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        exit ;;
+    5000:UNIX_System_V:4.*:*)
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+	exit ;;
+    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+	exit ;;
+    sparc*:BSD/OS:*:*)
+	echo sparc-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:BSD/OS:*:*)
+	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:FreeBSD:*:*)
+	case ${UNAME_MACHINE} in
+	    pc98)
+		echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    amd64)
+		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    *)
+		echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	esac
+	exit ;;
+    i*:CYGWIN*:*)
+	echo ${UNAME_MACHINE}-pc-cygwin
+	exit ;;
+    *:MINGW*:*)
+	echo ${UNAME_MACHINE}-pc-mingw32
+	exit ;;
+    i*:windows32*:*)
+    	# uname -m includes "-pc" on this system.
+    	echo ${UNAME_MACHINE}-mingw32
+	exit ;;
+    i*:PW*:*)
+	echo ${UNAME_MACHINE}-pc-pw32
+	exit ;;
+    *:Interix*:*)
+    	case ${UNAME_MACHINE} in
+	    x86)
+		echo i586-pc-interix${UNAME_RELEASE}
+		exit ;;
+	    authenticamd | genuineintel | EM64T)
+		echo x86_64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	    IA64)
+		echo ia64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	esac ;;
+    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+	echo i${UNAME_MACHINE}-pc-mks
+	exit ;;
+    8664:Windows_NT:*)
+	echo x86_64-pc-mks
+	exit ;;
+    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+	# UNAME_MACHINE based on the output of uname instead of i386?
+	echo i586-pc-interix
+	exit ;;
+    i*:UWIN*:*)
+	echo ${UNAME_MACHINE}-pc-uwin
+	exit ;;
+    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+	echo x86_64-unknown-cygwin
+	exit ;;
+    p*:CYGWIN*:*)
+	echo powerpcle-unknown-cygwin
+	exit ;;
+    prep*:SunOS:5.*:*)
+	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    *:GNU:*:*)
+	# the GNU system
+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	exit ;;
+    *:GNU/*:*:*)
+	# other systems with GNU libc and userland
+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+	exit ;;
+    i*86:Minix:*:*)
+	echo ${UNAME_MACHINE}-pc-minix
+	exit ;;
+    alpha:Linux:*:*)
+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+	  EV5)   UNAME_MACHINE=alphaev5 ;;
+	  EV56)  UNAME_MACHINE=alphaev56 ;;
+	  PCA56) UNAME_MACHINE=alphapca56 ;;
+	  PCA57) UNAME_MACHINE=alphapca56 ;;
+	  EV6)   UNAME_MACHINE=alphaev6 ;;
+	  EV67)  UNAME_MACHINE=alphaev67 ;;
+	  EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+	objdump --private-headers /bin/sh | grep -q ld.so.1
+	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	exit ;;
+    arm*:Linux:*:*)
+	eval $set_cc_for_build
+	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+	    | grep -q __ARM_EABI__
+	then
+	    echo ${UNAME_MACHINE}-unknown-linux-gnu
+	else
+	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+	fi
+	exit ;;
+    avr32*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    cris:Linux:*:*)
+	echo cris-axis-linux-gnu
+	exit ;;
+    crisv32:Linux:*:*)
+	echo crisv32-axis-linux-gnu
+	exit ;;
+    frv:Linux:*:*)
+    	echo frv-unknown-linux-gnu
+	exit ;;
+    i*86:Linux:*:*)
+	LIBC=gnu
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#ifdef __dietlibc__
+	LIBC=dietlibc
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+	exit ;;
+    ia64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    m32r*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    m68*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    mips:Linux:*:* | mips64:Linux:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#undef CPU
+	#undef ${UNAME_MACHINE}
+	#undef ${UNAME_MACHINE}el
+	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+	CPU=${UNAME_MACHINE}el
+	#else
+	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+	CPU=${UNAME_MACHINE}
+	#else
+	CPU=
+	#endif
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	;;
+    or32:Linux:*:*)
+	echo or32-unknown-linux-gnu
+	exit ;;
+    padre:Linux:*:*)
+	echo sparc-unknown-linux-gnu
+	exit ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+	echo hppa64-unknown-linux-gnu
+	exit ;;
+    parisc:Linux:*:* | hppa:Linux:*:*)
+	# Look for CPU level
+	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
+	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
+	  *)    echo hppa-unknown-linux-gnu ;;
+	esac
+	exit ;;
+    ppc64:Linux:*:*)
+	echo powerpc64-unknown-linux-gnu
+	exit ;;
+    ppc:Linux:*:*)
+	echo powerpc-unknown-linux-gnu
+	exit ;;
+    s390:Linux:*:* | s390x:Linux:*:*)
+	echo ${UNAME_MACHINE}-ibm-linux
+	exit ;;
+    sh64*:Linux:*:*)
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    sh*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    sparc:Linux:*:* | sparc64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    vax:Linux:*:*)
+	echo ${UNAME_MACHINE}-dec-linux-gnu
+	exit ;;
+    x86_64:Linux:*:*)
+	echo x86_64-unknown-linux-gnu
+	exit ;;
+    xtensa*:Linux:*:*)
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    i*86:DYNIX/ptx:4*:*)
+	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+	# earlier versions are messed up and put the nodename in both
+	# sysname and nodename.
+	echo i386-sequent-sysv4
+	exit ;;
+    i*86:UNIX_SV:4.2MP:2.*)
+        # Unixware is an offshoot of SVR4, but it has its own version
+        # number series starting with 2...
+        # I am not positive that other SVR4 systems won't match this,
+	# I just have to hope.  -- rms.
+        # Use sysv4.2uw... so that sysv4* matches it.
+	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+	exit ;;
+    i*86:OS/2:*:*)
+	# If we were able to find `uname', then EMX Unix compatibility
+	# is probably installed.
+	echo ${UNAME_MACHINE}-pc-os2-emx
+	exit ;;
+    i*86:XTS-300:*:STOP)
+	echo ${UNAME_MACHINE}-unknown-stop
+	exit ;;
+    i*86:atheos:*:*)
+	echo ${UNAME_MACHINE}-unknown-atheos
+	exit ;;
+    i*86:syllable:*:*)
+	echo ${UNAME_MACHINE}-pc-syllable
+	exit ;;
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+	echo i386-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    i*86:*DOS:*:*)
+	echo ${UNAME_MACHINE}-pc-msdosdjgpp
+	exit ;;
+    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+	else
+		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+	fi
+	exit ;;
+    i*86:*:5:[678]*)
+    	# UnixWare 7.x, OpenUNIX and OpenServer 6.
+	case `/bin/uname -X | grep "^Machine"` in
+	    *486*)	     UNAME_MACHINE=i486 ;;
+	    *Pentium)	     UNAME_MACHINE=i586 ;;
+	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+	esac
+	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+	exit ;;
+    i*86:*:3.2:*)
+	if test -f /usr/options/cb.name; then
+		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+	elif /bin/uname -X 2>/dev/null >/dev/null ; then
+		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+			&& UNAME_MACHINE=i586
+		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+	else
+		echo ${UNAME_MACHINE}-pc-sysv32
+	fi
+	exit ;;
+    pc:*:*:*)
+	# Left here for compatibility:
+        # uname -m prints for DJGPP always 'pc', but it prints nothing about
+        # the processor, so we play safe by assuming i586.
+	# Note: whatever this is, it MUST be the same as what config.sub
+	# prints for the "djgpp" host, or else GDB configury will decide that
+	# this is a cross-build.
+	echo i586-pc-msdosdjgpp
+        exit ;;
+    Intel:Mach:3*:*)
+	echo i386-pc-mach3
+	exit ;;
+    paragon:*:*:*)
+	echo i860-intel-osf1
+	exit ;;
+    i860:*:4.*:*) # i860-SVR4
+	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+	else # Add other i860-SVR4 vendors below as they are discovered.
+	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+	fi
+	exit ;;
+    mini*:CTIX:SYS*5:*)
+	# "miniframe"
+	echo m68010-convergent-sysv
+	exit ;;
+    mc68k:UNIX:SYSTEM5:3.51m)
+	echo m68k-convergent-sysv
+	exit ;;
+    M680?0:D-NIX:5.3:*)
+	echo m68k-diab-dnix
+	exit ;;
+    M68*:*:R3V[5678]*:*)
+	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+	OS_REL=''
+	test -r /etc/.relid \
+	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+          && { echo i486-ncr-sysv4; exit; } ;;
+    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+	OS_REL='.3'
+	test -r /etc/.relid \
+	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+	echo m68k-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    mc68030:UNIX_System_V:4.*:*)
+	echo m68k-atari-sysv4
+	exit ;;
+    TSUNAMI:LynxOS:2.*:*)
+	echo sparc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    rs6000:LynxOS:2.*:*)
+	echo rs6000-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+	echo powerpc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    SM[BE]S:UNIX_SV:*:*)
+	echo mips-dde-sysv${UNAME_RELEASE}
+	exit ;;
+    RM*:ReliantUNIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    RM*:SINIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    *:SINIX-*:*:*)
+	if uname -p 2>/dev/null >/dev/null ; then
+		UNAME_MACHINE=`(uname -p) 2>/dev/null`
+		echo ${UNAME_MACHINE}-sni-sysv4
+	else
+		echo ns32k-sni-sysv
+	fi
+	exit ;;
+    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                      # says <Richard.M.Bartel@ccMail.Census.GOV>
+        echo i586-unisys-sysv4
+        exit ;;
+    *:UNIX_System_V:4*:FTX*)
+	# From Gerald Hewes <hewes@openmarket.com>.
+	# How about differentiating between stratus architectures? -djm
+	echo hppa1.1-stratus-sysv4
+	exit ;;
+    *:*:*:FTX*)
+	# From seanf@swdc.stratus.com.
+	echo i860-stratus-sysv4
+	exit ;;
+    i*86:VOS:*:*)
+	# From Paul.Green@stratus.com.
+	echo ${UNAME_MACHINE}-stratus-vos
+	exit ;;
+    *:VOS:*:*)
+	# From Paul.Green@stratus.com.
+	echo hppa1.1-stratus-vos
+	exit ;;
+    mc68*:A/UX:*:*)
+	echo m68k-apple-aux${UNAME_RELEASE}
+	exit ;;
+    news*:NEWS-OS:6*:*)
+	echo mips-sony-newsos6
+	exit ;;
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+	if [ -d /usr/nec ]; then
+	        echo mips-nec-sysv${UNAME_RELEASE}
+	else
+	        echo mips-unknown-sysv${UNAME_RELEASE}
+	fi
+        exit ;;
+    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
+	echo powerpc-be-beos
+	exit ;;
+    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
+	echo powerpc-apple-beos
+	exit ;;
+    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
+	echo i586-pc-beos
+	exit ;;
+    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
+	echo i586-pc-haiku
+	exit ;;
+    SX-4:SUPER-UX:*:*)
+	echo sx4-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-5:SUPER-UX:*:*)
+	echo sx5-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-6:SUPER-UX:*:*)
+	echo sx6-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-7:SUPER-UX:*:*)
+	echo sx7-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8:SUPER-UX:*:*)
+	echo sx8-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8R:SUPER-UX:*:*)
+	echo sx8r-nec-superux${UNAME_RELEASE}
+	exit ;;
+    Power*:Rhapsody:*:*)
+	echo powerpc-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Rhapsody:*:*)
+	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Darwin:*:*)
+	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+	case $UNAME_PROCESSOR in
+	    i386)
+		eval $set_cc_for_build
+		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		      grep IS_64BIT_ARCH >/dev/null
+		  then
+		      UNAME_PROCESSOR="x86_64"
+		  fi
+		fi ;;
+	    unknown) UNAME_PROCESSOR=powerpc ;;
+	esac
+	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+	exit ;;
+    *:procnto*:*:* | *:QNX:[0123456789]*:*)
+	UNAME_PROCESSOR=`uname -p`
+	if test "$UNAME_PROCESSOR" = "x86"; then
+		UNAME_PROCESSOR=i386
+		UNAME_MACHINE=pc
+	fi
+	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+	exit ;;
+    *:QNX:*:4*)
+	echo i386-pc-qnx
+	exit ;;
+    NSE-?:NONSTOP_KERNEL:*:*)
+	echo nse-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    NSR-?:NONSTOP_KERNEL:*:*)
+	echo nsr-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    *:NonStop-UX:*:*)
+	echo mips-compaq-nonstopux
+	exit ;;
+    BS2000:POSIX*:*:*)
+	echo bs2000-siemens-sysv
+	exit ;;
+    DS/*:UNIX_System_V:*:*)
+	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+	exit ;;
+    *:Plan9:*:*)
+	# "uname -m" is not consistent, so use $cputype instead. 386
+	# is converted to i386 for consistency with other x86
+	# operating systems.
+	if test "$cputype" = "386"; then
+	    UNAME_MACHINE=i386
+	else
+	    UNAME_MACHINE="$cputype"
+	fi
+	echo ${UNAME_MACHINE}-unknown-plan9
+	exit ;;
+    *:TOPS-10:*:*)
+	echo pdp10-unknown-tops10
+	exit ;;
+    *:TENEX:*:*)
+	echo pdp10-unknown-tenex
+	exit ;;
+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+	echo pdp10-dec-tops20
+	exit ;;
+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+	echo pdp10-xkl-tops20
+	exit ;;
+    *:TOPS-20:*:*)
+	echo pdp10-unknown-tops20
+	exit ;;
+    *:ITS:*:*)
+	echo pdp10-unknown-its
+	exit ;;
+    SEI:*:*:SEIUX)
+        echo mips-sei-seiux${UNAME_RELEASE}
+	exit ;;
+    *:DragonFly:*:*)
+	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+	exit ;;
+    *:*VMS:*:*)
+    	UNAME_MACHINE=`(uname -p) 2>/dev/null`
+	case "${UNAME_MACHINE}" in
+	    A*) echo alpha-dec-vms ; exit ;;
+	    I*) echo ia64-dec-vms ; exit ;;
+	    V*) echo vax-dec-vms ; exit ;;
+	esac ;;
+    *:XENIX:*:SysV)
+	echo i386-pc-xenix
+	exit ;;
+    i*86:skyos:*:*)
+	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+	exit ;;
+    i*86:rdos:*:*)
+	echo ${UNAME_MACHINE}-pc-rdos
+	exit ;;
+    i*86:AROS:*:*)
+	echo ${UNAME_MACHINE}-pc-aros
+	exit ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+     I don't know....  */
+  printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+  printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+          "4"
+#else
+	  ""
+#endif
+         ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+  printf ("arm-acorn-riscix\n"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+  printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+  int version;
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+  exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+  printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+  printf ("ns32k-encore-mach\n"); exit (0);
+#else
+  printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+  printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+  printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+  printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+    struct utsname un;
+
+    uname(&un);
+
+    if (strncmp(un.version, "V2", 2) == 0) {
+	printf ("i386-sequent-ptx2\n"); exit (0);
+    }
+    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+	printf ("i386-sequent-ptx1\n"); exit (0);
+    }
+    printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+#  include <sys/param.h>
+#  if defined (BSD)
+#   if BSD == 43
+      printf ("vax-dec-bsd4.3\n"); exit (0);
+#   else
+#    if BSD == 199006
+      printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#    else
+      printf ("vax-dec-bsd\n"); exit (0);
+#    endif
+#   endif
+#  else
+    printf ("vax-dec-bsd\n"); exit (0);
+#  endif
+# else
+    printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+  printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+  exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+	{ echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+    case `getsysinfo -f cpu_type` in
+    c1*)
+	echo c1-convex-bsd
+	exit ;;
+    c2*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+	exit ;;
+    c34*)
+	echo c34-convex-bsd
+	exit ;;
+    c38*)
+	echo c38-convex-bsd
+	exit ;;
+    c4*)
+	echo c4-convex-bsd
+	exit ;;
+    esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+and
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo               = `(hostinfo) 2>/dev/null`
+/bin/universe          = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch              = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM  = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/strace-4.5.20/config.h.in b/strace-4.5.20/config.h.in
new file mode 100644
index 0000000..0ac3d8a
--- /dev/null
+++ b/strace-4.5.20/config.h.in
@@ -0,0 +1,484 @@
+/* config.h.in.  Generated from configure.ac by autoheader.  */
+
+/* Define for the Alpha architecture. */
+#undef ALPHA
+
+/* Define for the ARM architecture. */
+#undef ARM
+
+/* Define for the AVR32 architecture. */
+#undef AVR32
+
+/* Define for the Blackfin architecture. */
+#undef BFIN
+
+/* Define for the CRISv10 architecture. */
+#undef CRISV10
+
+/* Define for the CRISv32 architecture. */
+#undef CRISV32
+
+/* Define for the FreeBSD operating system. */
+#undef FREEBSD
+
+/* Define to the type of elements in the array set by `getgroups'. Usually
+   this is either `int' or `gid_t'. */
+#undef GETGROUPS_T
+
+/* Define to 1 if you have the <asm/cachectl.h> header file. */
+#undef HAVE_ASM_CACHECTL_H
+
+/* Define to 1 if you have the <asm/sigcontext.h> header file. */
+#undef HAVE_ASM_SIGCONTEXT_H
+
+/* Define to 1 if you have the <asm/sysmips.h> header file. */
+#undef HAVE_ASM_SYSMIPS_H
+
+/* Define to 1 if you have the declaration of `sys_errlist', and to 0 if you
+   don't. */
+#undef HAVE_DECL_SYS_ERRLIST
+
+/* Define to 1 if you have the declaration of `sys_siglist', and to 0 if you
+   don't. */
+#undef HAVE_DECL_SYS_SIGLIST
+
+/* Define to 1 if you have the declaration of `_sys_siglist', and to 0 if you
+   don't. */
+#undef HAVE_DECL__SYS_SIGLIST
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
+   */
+#undef HAVE_DIRENT_H
+
+/* Define to 1 if you have the `fork' function. */
+#undef HAVE_FORK
+
+/* Define to 1 if you have the `getdents' function. */
+#undef HAVE_GETDENTS
+
+/* Define to 1 if you have the `if_indextoname' function. */
+#undef HAVE_IF_INDEXTONAME
+
+/* Define to 1 if you have the `inet_ntop' function. */
+#undef HAVE_INET_NTOP
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <ioctls.h> header file. */
+#undef HAVE_IOCTLS_H
+
+/* Define to 1 if you have the <libaio.h> header file. */
+#undef HAVE_LIBAIO_H
+
+/* Define to 1 if you have the `nsl' library (-lnsl). */
+#undef HAVE_LIBNSL
+
+/* Define to 1 if you have the <linux/capability.h> header file. */
+#undef HAVE_LINUX_CAPABILITY_H
+
+/* Define to 1 if you have the <linux/icmp.h> header file. */
+#undef HAVE_LINUX_ICMP_H
+
+/* Define to 1 if you have the <linux/if_packet.h> header file. */
+#undef HAVE_LINUX_IF_PACKET_H
+
+/* Define to 1 if you have the <linux/in6.h> header file. */
+#undef HAVE_LINUX_IN6_H
+
+/* Define to 1 if you have the <linux/netlink.h> header file. */
+#undef HAVE_LINUX_NETLINK_H
+
+/* Define to 1 if you have the <linux/ptrace.h> header file. */
+#undef HAVE_LINUX_PTRACE_H
+
+/* Define to 1 if you have the <linux/utsname.h> header file. */
+#undef HAVE_LINUX_UTSNAME_H
+
+/* Define if long long is little-endian. */
+#undef HAVE_LITTLE_ENDIAN_LONG_LONG
+
+/* Define to 1 if the system has the type `long long'. */
+#undef HAVE_LONG_LONG
+
+/* Define if off_t is a long long. */
+#undef HAVE_LONG_LONG_OFF_T
+
+/* Define if rlim_t is a long long. */
+#undef HAVE_LONG_LONG_RLIM_T
+
+/* Define to 1 if you have the `mctl' function. */
+#undef HAVE_MCTL
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define if you have a SVR4 MP type procfs. I.E. /dev/xxx/ctl,
+   /dev/xxx/status. Also implies that you have the pr_lwp member in prstatus.
+   */
+#undef HAVE_MP_PROCFS
+
+/* Define to 1 if you have the <mqueue.h> header file. */
+#undef HAVE_MQUEUE_H
+
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+#undef HAVE_NDIR_H
+
+/* Define to 1 if you have the <netinet/tcp.h> header file. */
+#undef HAVE_NETINET_TCP_H
+
+/* Define to 1 if you have the <netinet/udp.h> header file. */
+#undef HAVE_NETINET_UDP_H
+
+/* Define if you have SVR4 and the poll system call works on /proc files. */
+#undef HAVE_POLLABLE_PROCFS
+
+/* Define to 1 if you have the <poll.h> header file. */
+#undef HAVE_POLL_H
+
+/* Define to 1 if you have the `prctl' function. */
+#undef HAVE_PRCTL
+
+/* Define to 1 if you have the `pread' function. */
+#undef HAVE_PREAD
+
+/* Define if the prstatus structure in sys/procfs.h has a pr_syscall member.
+   */
+#undef HAVE_PR_SYSCALL
+
+/* Define to 1 if you have the `sendmsg' function. */
+#undef HAVE_SENDMSG
+
+/* Define to 1 if you have the `sigaction' function. */
+#undef HAVE_SIGACTION
+
+/* Define to 1 if the system has the type `siginfo_t'. */
+#undef HAVE_SIGINFO_T
+
+/* Define to 1 if the system has the type `sig_atomic_t'. */
+#undef HAVE_SIG_ATOMIC_T
+
+/* Define if stat64 is available in asm/stat.h. */
+#undef HAVE_STAT64
+
+/* Define if statfs64 is available in sys/vfs.h. */
+#undef HAVE_STATFS64
+
+/* Define to 1 if stdbool.h conforms to C99. */
+#undef HAVE_STDBOOL_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the `strerror' function. */
+#undef HAVE_STRERROR
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <stropts.h> header file. */
+#undef HAVE_STROPTS_H
+
+/* Define to 1 if you have the `strsignal' function. */
+#undef HAVE_STRSIGNAL
+
+/* Define to 1 if `dqb_curblocks' is a member of `struct dqblk'. */
+#undef HAVE_STRUCT_DQBLK_DQB_CURBLOCKS
+
+/* Define to 1 if the system has the type `struct ia64_fpreg'. */
+#undef HAVE_STRUCT_IA64_FPREG
+
+/* Define to 1 if `msg_control' is a member of `struct msghdr'. */
+#undef HAVE_STRUCT_MSGHDR_MSG_CONTROL
+
+/* Define to 1 if the system has the type `struct opthdr'. */
+#undef HAVE_STRUCT_OPTHDR
+
+/* Define to 1 if the system has the type `struct pt_all_user_regs'. */
+#undef HAVE_STRUCT_PT_ALL_USER_REGS
+
+/* Define to 1 if the system has the type `struct sigcontext'. */
+#undef HAVE_STRUCT_SIGCONTEXT
+
+/* Define to 1 if `sc_hi2' is a member of `struct sigcontext'. */
+#undef HAVE_STRUCT_SIGCONTEXT_SC_HI2
+
+/* Define to 1 if the system has the type `struct sigcontext_struct'. */
+#undef HAVE_STRUCT_SIGCONTEXT_STRUCT
+
+/* Define to 1 if `sin6_scope_id' is a member of `struct sockaddr_in6'. */
+#undef HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID
+
+/* Define to 1 if `st_aclcnt' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_ACLCNT
+
+/* Define to 1 if `st_blksize' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_BLKSIZE
+
+/* Define to 1 if `st_blocks' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_BLOCKS
+
+/* Define to 1 if `st_flags' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_FLAGS
+
+/* Define to 1 if `st_fstype' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_FSTYPE
+
+/* Define to 1 if `st_gen' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_GEN
+
+/* Define to 1 if `st_level' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_LEVEL
+
+/* Define to 1 if `st_rdev' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_RDEV
+
+/* Define to 1 if `ACCEPTOR_id' is a member of `struct T_conn_res'. */
+#undef HAVE_STRUCT_T_CONN_RES_ACCEPTOR_ID
+
+/* Define to 1 if `QUEUE_ptr' is a member of `struct T_conn_res'. */
+#undef HAVE_STRUCT_T_CONN_RES_QUEUE_PTR
+
+/* Define to 1 if the system has the type `struct t_opthdr'. */
+#undef HAVE_STRUCT_T_OPTHDR
+
+/* Define to 1 if the system has the type `struct user_desc'. */
+#undef HAVE_STRUCT_USER_DESC
+
+/* Define to 1 if the system has the type `struct __old_kernel_stat'. */
+#undef HAVE_STRUCT___OLD_KERNEL_STAT
+
+/* Define to 1 if you have the <sys/acl.h> header file. */
+#undef HAVE_SYS_ACL_H
+
+/* Define to 1 if you have the <sys/aio.h> header file. */
+#undef HAVE_SYS_AIO_H
+
+/* Define to 1 if you have the <sys/asynch.h> header file. */
+#undef HAVE_SYS_ASYNCH_H
+
+/* Define to 1 if you have the <sys/conf.h> header file. */
+#undef HAVE_SYS_CONF_H
+
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+   */
+#undef HAVE_SYS_DIR_H
+
+/* Define to 1 if you have the <sys/door.h> header file. */
+#undef HAVE_SYS_DOOR_H
+
+/* Define to 1 if you have the <sys/epoll.h> header file. */
+#undef HAVE_SYS_EPOLL_H
+
+/* Define to 1 if you have the <sys/filio.h> header file. */
+#undef HAVE_SYS_FILIO_H
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#undef HAVE_SYS_IOCTL_H
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+   */
+#undef HAVE_SYS_NDIR_H
+
+/* Define to 1 if you have the <sys/nscsys.h> header file. */
+#undef HAVE_SYS_NSCSYS_H
+
+/* Define to 1 if you have the <sys/poll.h> header file. */
+#undef HAVE_SYS_POLL_H
+
+/* Define to 1 if you have the <sys/ptrace.h> header file. */
+#undef HAVE_SYS_PTRACE_H
+
+/* Define to 1 if you have the <sys/reg.h> header file. */
+#undef HAVE_SYS_REG_H
+
+/* Define to 1 if you have the `sys_siglist' function. */
+#undef HAVE_SYS_SIGLIST
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/stream.h> header file. */
+#undef HAVE_SYS_STREAM_H
+
+/* Define to 1 if you have the <sys/sysconfig.h> header file. */
+#undef HAVE_SYS_SYSCONFIG_H
+
+/* Define to 1 if you have the <sys/tihdr.h> header file. */
+#undef HAVE_SYS_TIHDR_H
+
+/* Define to 1 if you have the <sys/tiuser.h> header file. */
+#undef HAVE_SYS_TIUSER_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <sys/uio.h> header file. */
+#undef HAVE_SYS_UIO_H
+
+/* Define to 1 if you have the <sys/vfs.h> header file. */
+#undef HAVE_SYS_VFS_H
+
+/* Define to 1 if you have the <termio.h> header file. */
+#undef HAVE_TERMIO_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if the system has the type `_Bool'. */
+#undef HAVE__BOOL
+
+/* Define to 1 if you have the `_sys_siglist' function. */
+#undef HAVE__SYS_SIGLIST
+
+/* Define for the HPPA architecture. */
+#undef HPPA
+
+/* Define for the i386 architecture. */
+#undef I386
+
+/* Define for the IA64 architecture. */
+#undef IA64
+
+/* Define for the Linux operating system. */
+#undef LINUX
+
+/* Define for the m68k architecture. */
+#undef M68K
+
+/* Define to 1 if `major', `minor', and `makedev' are declared in <mkdev.h>.
+   */
+#undef MAJOR_IN_MKDEV
+
+/* Define to 1 if `major', `minor', and `makedev' are declared in
+   <sysmacros.h>. */
+#undef MAJOR_IN_SYSMACROS
+
+/* Define for the MIPS architecture. */
+#undef MIPS
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Define for the PowerPC architecture. */
+#undef POWERPC
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+#undef RETSIGTYPE
+
+/* Define for the S390 architecture. */
+#undef S390
+
+/* Define for the S390x architecture. */
+#undef S390X
+
+/* Define for the SH architecture. */
+#undef SH
+
+/* Define for the SH64 architecture. */
+#undef SH64
+
+/* Define for the SPARC architecture. */
+#undef SPARC
+
+/* Define for the SPARC64 architecture. */
+#undef SPARC64
+
+/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
+#undef STAT_MACROS_BROKEN
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Define for the SunOS 4.x operating system. */
+#undef SUNOS4
+
+/* Define if you are have a SPARC with SUNOS4 and your want a version of
+   strace that will work on sun4, sun4c and sun4m kernel architectures. Only
+   useful if you have a symbolic link from machine to /usr/include/sun4 in the
+   compilation directory. */
+#undef SUNOS4_KERNEL_ARCH_KLUDGE
+
+/* Define for the System V release 4 operating system or a derivative like
+   Solaris 2.x or Irix 5.x. */
+#undef SVR4
+
+/* Define for the Tile architecture */
+#undef TILE
+
+/* Define for UnixWare systems. */
+#undef UNIXWARE
+
+/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+/* Enable threading extensions on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+
+
+/* Version number of package */
+#undef VERSION
+
+/* Define for the AMD x86-64 architecture. */
+#undef X86_64
+
+/* Define to 1 if on MINIX. */
+#undef _MINIX
+
+/* Define to 2 if the system does not provide POSIX.1 features except with
+   this defined. */
+#undef _POSIX_1_SOURCE
+
+/* Define to 1 if you need to in order for `stat' and other things to work. */
+#undef _POSIX_SOURCE
+
+/* Define to empty if `const' does not conform to ANSI C. */
+#undef const
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#undef gid_t
+
+/* Define to `int' if <sys/types.h> does not define. */
+#undef mode_t
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#undef uid_t
diff --git a/strace-4.5.20/config.sub b/strace-4.5.20/config.sub
new file mode 100755
index 0000000..8518609
--- /dev/null
+++ b/strace-4.5.20/config.sub
@@ -0,0 +1,1708 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+#   Free Software Foundation, Inc.
+
+timestamp='2009-12-31'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine.  It does not imply ALL GNU software can.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted GNU ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+       $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
+Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help"
+       exit 1 ;;
+
+    *local*)
+       # First pass through any local machine types.
+       echo $1
+       exit ;;
+
+    * )
+       break ;;
+  esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+    exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+    exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+  kopensolaris*-gnu* | \
+  storm-chaos* | os2-emx* | rtmk-nova*)
+    os=-$maybe_os
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  *)
+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+    if [ $basic_machine != $1 ]
+    then os=`echo $1 | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+	-sun*os*)
+		# Prevent following clause from handling this invalid input.
+		;;
+	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+	-apple | -axis | -knuth | -cray | -microblaze)
+		os=
+		basic_machine=$1
+		;;
+        -bluegene*)
+	        os=-cnk
+		;;
+	-sim | -cisco | -oki | -wec | -winbond)
+		os=
+		basic_machine=$1
+		;;
+	-scout)
+		;;
+	-wrs)
+		os=-vxworks
+		basic_machine=$1
+		;;
+	-chorusos*)
+		os=-chorusos
+		basic_machine=$1
+		;;
+ 	-chorusrdb)
+ 		os=-chorusrdb
+		basic_machine=$1
+ 		;;
+	-hiux*)
+		os=-hiuxwe2
+		;;
+	-sco6)
+		os=-sco5v6
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco5)
+		os=-sco3.2v5
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco4)
+		os=-sco3.2v4
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2.[4-9]*)
+		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2v[4-9]*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco5v6*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco*)
+		os=-sco3.2v2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-udk*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-isc)
+		os=-isc2.2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-clix*)
+		basic_machine=clipper-intergraph
+		;;
+	-isc*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-lynx*)
+		os=-lynxos
+		;;
+	-ptx*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+		;;
+	-windowsnt*)
+		os=`echo $os | sed -e 's/windowsnt/winnt/'`
+		;;
+	-psos*)
+		os=-psos
+		;;
+	-mint | -mint[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+	# Recognize the basic CPU types without company name.
+	# Some are omitted here because they have special meanings below.
+	1750a | 580 \
+	| a29k \
+	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+	| am33_2.0 \
+	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+	| bfin \
+	| c4x | clipper \
+	| d10v | d30v | dlx | dsp16xx \
+	| fido | fr30 | frv \
+	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+	| i370 | i860 | i960 | ia64 \
+	| ip2k | iq2000 \
+	| lm32 \
+	| m32c | m32r | m32rle | m68000 | m68k | m88k \
+	| maxq | mb | microblaze | mcore | mep | metag \
+	| mips | mipsbe | mipseb | mipsel | mipsle \
+	| mips16 \
+	| mips64 | mips64el \
+	| mips64octeon | mips64octeonel \
+	| mips64orion | mips64orionel \
+	| mips64r5900 | mips64r5900el \
+	| mips64vr | mips64vrel \
+	| mips64vr4100 | mips64vr4100el \
+	| mips64vr4300 | mips64vr4300el \
+	| mips64vr5000 | mips64vr5000el \
+	| mips64vr5900 | mips64vr5900el \
+	| mipsisa32 | mipsisa32el \
+	| mipsisa32r2 | mipsisa32r2el \
+	| mipsisa64 | mipsisa64el \
+	| mipsisa64r2 | mipsisa64r2el \
+	| mipsisa64sb1 | mipsisa64sb1el \
+	| mipsisa64sr71k | mipsisa64sr71kel \
+	| mipstx39 | mipstx39el \
+	| mn10200 | mn10300 \
+	| moxie \
+	| mt \
+	| msp430 \
+	| nios | nios2 \
+	| ns16k | ns32k \
+	| or32 \
+	| pdp10 | pdp11 | pj | pjl \
+	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+	| pyramid \
+	| rx \
+	| score \
+	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+	| sh64 | sh64le \
+	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+	| spu | strongarm \
+	| tahoe | thumb | tic4x | tic80 | tron \
+	| ubicom32 \
+	| v850 | v850e \
+	| we32k \
+	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+	| z8k | z80)
+		basic_machine=$basic_machine-unknown
+		;;
+	m6811 | m68hc11 | m6812 | m68hc12 | picochip)
+		# Motorola 68HC11/12.
+		basic_machine=$basic_machine-unknown
+		os=-none
+		;;
+	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+		;;
+	ms1)
+		basic_machine=mt-unknown
+		;;
+
+	# We use `pc' rather than `unknown'
+	# because (1) that's what they normally are, and
+	# (2) the word "unknown" tends to confuse beginning users.
+	i*86 | x86_64)
+	  basic_machine=$basic_machine-pc
+	  ;;
+	# Object if more than one company name word.
+	*-*-*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+	# Recognize the basic CPU types with company name.
+	580-* \
+	| a29k-* \
+	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+	| avr-* | avr32-* \
+	| bfin-* | bs2000-* \
+	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+	| clipper-* | craynv-* | cydra-* \
+	| d10v-* | d30v-* | dlx-* \
+	| elxsi-* \
+	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+	| h8300-* | h8500-* \
+	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+	| i*86-* | i860-* | i960-* | ia64-* \
+	| ip2k-* | iq2000-* \
+	| lm32-* \
+	| m32c-* | m32r-* | m32rle-* \
+	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+	| mips16-* \
+	| mips64-* | mips64el-* \
+	| mips64octeon-* | mips64octeonel-* \
+	| mips64orion-* | mips64orionel-* \
+	| mips64r5900-* | mips64r5900el-* \
+	| mips64vr-* | mips64vrel-* \
+	| mips64vr4100-* | mips64vr4100el-* \
+	| mips64vr4300-* | mips64vr4300el-* \
+	| mips64vr5000-* | mips64vr5000el-* \
+	| mips64vr5900-* | mips64vr5900el-* \
+	| mipsisa32-* | mipsisa32el-* \
+	| mipsisa32r2-* | mipsisa32r2el-* \
+	| mipsisa64-* | mipsisa64el-* \
+	| mipsisa64r2-* | mipsisa64r2el-* \
+	| mipsisa64sb1-* | mipsisa64sb1el-* \
+	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+	| mipstx39-* | mipstx39el-* \
+	| mmix-* \
+	| mt-* \
+	| msp430-* \
+	| nios-* | nios2-* \
+	| none-* | np1-* | ns16k-* | ns32k-* \
+	| orion-* \
+	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+	| pyramid-* \
+	| romp-* | rs6000-* | rx-* \
+	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+	| sparclite-* \
+	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
+	| tahoe-* | thumb-* \
+	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
+	| tron-* \
+	| ubicom32-* \
+	| v850-* | v850e-* | vax-* \
+	| we32k-* \
+	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+	| xstormy16-* | xtensa*-* \
+	| ymp-* \
+	| z8k-* | z80-*)
+		;;
+	# Recognize the basic CPU types without company name, with glob match.
+	xtensa*)
+		basic_machine=$basic_machine-unknown
+		;;
+	# Recognize the various machine names and aliases which stand
+	# for a CPU type and a company and sometimes even an OS.
+	386bsd)
+		basic_machine=i386-unknown
+		os=-bsd
+		;;
+	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+		basic_machine=m68000-att
+		;;
+	3b*)
+		basic_machine=we32k-att
+		;;
+	a29khif)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+    	abacus)
+		basic_machine=abacus-unknown
+		;;
+	adobe68k)
+		basic_machine=m68010-adobe
+		os=-scout
+		;;
+	alliant | fx80)
+		basic_machine=fx80-alliant
+		;;
+	altos | altos3068)
+		basic_machine=m68k-altos
+		;;
+	am29k)
+		basic_machine=a29k-none
+		os=-bsd
+		;;
+	amd64)
+		basic_machine=x86_64-pc
+		;;
+	amd64-*)
+		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	amdahl)
+		basic_machine=580-amdahl
+		os=-sysv
+		;;
+	amiga | amiga-*)
+		basic_machine=m68k-unknown
+		;;
+	amigaos | amigados)
+		basic_machine=m68k-unknown
+		os=-amigaos
+		;;
+	amigaunix | amix)
+		basic_machine=m68k-unknown
+		os=-sysv4
+		;;
+	apollo68)
+		basic_machine=m68k-apollo
+		os=-sysv
+		;;
+	apollo68bsd)
+		basic_machine=m68k-apollo
+		os=-bsd
+		;;
+	aros)
+		basic_machine=i386-pc
+		os=-aros
+		;;
+	aux)
+		basic_machine=m68k-apple
+		os=-aux
+		;;
+	balance)
+		basic_machine=ns32k-sequent
+		os=-dynix
+		;;
+	blackfin)
+		basic_machine=bfin-unknown
+		os=-linux
+		;;
+	blackfin-*)
+		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	bluegene*)
+		basic_machine=powerpc-ibm
+		os=-cnk
+		;;
+	c90)
+		basic_machine=c90-cray
+		os=-unicos
+		;;
+        cegcc)
+		basic_machine=arm-unknown
+		os=-cegcc
+		;;
+	convex-c1)
+		basic_machine=c1-convex
+		os=-bsd
+		;;
+	convex-c2)
+		basic_machine=c2-convex
+		os=-bsd
+		;;
+	convex-c32)
+		basic_machine=c32-convex
+		os=-bsd
+		;;
+	convex-c34)
+		basic_machine=c34-convex
+		os=-bsd
+		;;
+	convex-c38)
+		basic_machine=c38-convex
+		os=-bsd
+		;;
+	cray | j90)
+		basic_machine=j90-cray
+		os=-unicos
+		;;
+	craynv)
+		basic_machine=craynv-cray
+		os=-unicosmp
+		;;
+	cr16)
+		basic_machine=cr16-unknown
+		os=-elf
+		;;
+	crds | unos)
+		basic_machine=m68k-crds
+		;;
+	crisv32 | crisv32-* | etraxfs*)
+		basic_machine=crisv32-axis
+		;;
+	cris | cris-* | etrax*)
+		basic_machine=cris-axis
+		;;
+	crx)
+		basic_machine=crx-unknown
+		os=-elf
+		;;
+	da30 | da30-*)
+		basic_machine=m68k-da30
+		;;
+	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+		basic_machine=mips-dec
+		;;
+	decsystem10* | dec10*)
+		basic_machine=pdp10-dec
+		os=-tops10
+		;;
+	decsystem20* | dec20*)
+		basic_machine=pdp10-dec
+		os=-tops20
+		;;
+	delta | 3300 | motorola-3300 | motorola-delta \
+	      | 3300-motorola | delta-motorola)
+		basic_machine=m68k-motorola
+		;;
+	delta88)
+		basic_machine=m88k-motorola
+		os=-sysv3
+		;;
+	dicos)
+		basic_machine=i686-pc
+		os=-dicos
+		;;
+	djgpp)
+		basic_machine=i586-pc
+		os=-msdosdjgpp
+		;;
+	dpx20 | dpx20-*)
+		basic_machine=rs6000-bull
+		os=-bosx
+		;;
+	dpx2* | dpx2*-bull)
+		basic_machine=m68k-bull
+		os=-sysv3
+		;;
+	ebmon29k)
+		basic_machine=a29k-amd
+		os=-ebmon
+		;;
+	elxsi)
+		basic_machine=elxsi-elxsi
+		os=-bsd
+		;;
+	encore | umax | mmax)
+		basic_machine=ns32k-encore
+		;;
+	es1800 | OSE68k | ose68k | ose | OSE)
+		basic_machine=m68k-ericsson
+		os=-ose
+		;;
+	fx2800)
+		basic_machine=i860-alliant
+		;;
+	genix)
+		basic_machine=ns32k-ns
+		;;
+	gmicro)
+		basic_machine=tron-gmicro
+		os=-sysv
+		;;
+	go32)
+		basic_machine=i386-pc
+		os=-go32
+		;;
+	h3050r* | hiux*)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	h8300hms)
+		basic_machine=h8300-hitachi
+		os=-hms
+		;;
+	h8300xray)
+		basic_machine=h8300-hitachi
+		os=-xray
+		;;
+	h8500hms)
+		basic_machine=h8500-hitachi
+		os=-hms
+		;;
+	harris)
+		basic_machine=m88k-harris
+		os=-sysv3
+		;;
+	hp300-*)
+		basic_machine=m68k-hp
+		;;
+	hp300bsd)
+		basic_machine=m68k-hp
+		os=-bsd
+		;;
+	hp300hpux)
+		basic_machine=m68k-hp
+		os=-hpux
+		;;
+	hp3k9[0-9][0-9] | hp9[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k2[0-9][0-9] | hp9k31[0-9])
+		basic_machine=m68000-hp
+		;;
+	hp9k3[2-9][0-9])
+		basic_machine=m68k-hp
+		;;
+	hp9k6[0-9][0-9] | hp6[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k7[0-79][0-9] | hp7[0-79][0-9])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k78[0-9] | hp78[0-9])
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][13679] | hp8[0-9][13679])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][0-9] | hp8[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hppa-next)
+		os=-nextstep3
+		;;
+	hppaosf)
+		basic_machine=hppa1.1-hp
+		os=-osf
+		;;
+	hppro)
+		basic_machine=hppa1.1-hp
+		os=-proelf
+		;;
+	i370-ibm* | ibm*)
+		basic_machine=i370-ibm
+		;;
+# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+	i*86v32)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv32
+		;;
+	i*86v4*)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv4
+		;;
+	i*86v)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv
+		;;
+	i*86sol2)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-solaris2
+		;;
+	i386mach)
+		basic_machine=i386-mach
+		os=-mach
+		;;
+	i386-vsta | vsta)
+		basic_machine=i386-unknown
+		os=-vsta
+		;;
+	iris | iris4d)
+		basic_machine=mips-sgi
+		case $os in
+		    -irix*)
+			;;
+		    *)
+			os=-irix4
+			;;
+		esac
+		;;
+	isi68 | isi)
+		basic_machine=m68k-isi
+		os=-sysv
+		;;
+	m68knommu)
+		basic_machine=m68k-unknown
+		os=-linux
+		;;
+	m68knommu-*)
+		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	m88k-omron*)
+		basic_machine=m88k-omron
+		;;
+	magnum | m3230)
+		basic_machine=mips-mips
+		os=-sysv
+		;;
+	merlin)
+		basic_machine=ns32k-utek
+		os=-sysv
+		;;
+        microblaze)
+		basic_machine=microblaze-xilinx
+		;;
+	mingw32)
+		basic_machine=i386-pc
+		os=-mingw32
+		;;
+	mingw32ce)
+		basic_machine=arm-unknown
+		os=-mingw32ce
+		;;
+	miniframe)
+		basic_machine=m68000-convergent
+		;;
+	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+	mips3*-*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+		;;
+	mips3*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+		;;
+	monitor)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	morphos)
+		basic_machine=powerpc-unknown
+		os=-morphos
+		;;
+	msdos)
+		basic_machine=i386-pc
+		os=-msdos
+		;;
+	ms1-*)
+		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+		;;
+	mvs)
+		basic_machine=i370-ibm
+		os=-mvs
+		;;
+	ncr3000)
+		basic_machine=i486-ncr
+		os=-sysv4
+		;;
+	netbsd386)
+		basic_machine=i386-unknown
+		os=-netbsd
+		;;
+	netwinder)
+		basic_machine=armv4l-rebel
+		os=-linux
+		;;
+	news | news700 | news800 | news900)
+		basic_machine=m68k-sony
+		os=-newsos
+		;;
+	news1000)
+		basic_machine=m68030-sony
+		os=-newsos
+		;;
+	news-3600 | risc-news)
+		basic_machine=mips-sony
+		os=-newsos
+		;;
+	necv70)
+		basic_machine=v70-nec
+		os=-sysv
+		;;
+	next | m*-next )
+		basic_machine=m68k-next
+		case $os in
+		    -nextstep* )
+			;;
+		    -ns2*)
+		      os=-nextstep2
+			;;
+		    *)
+		      os=-nextstep3
+			;;
+		esac
+		;;
+	nh3000)
+		basic_machine=m68k-harris
+		os=-cxux
+		;;
+	nh[45]000)
+		basic_machine=m88k-harris
+		os=-cxux
+		;;
+	nindy960)
+		basic_machine=i960-intel
+		os=-nindy
+		;;
+	mon960)
+		basic_machine=i960-intel
+		os=-mon960
+		;;
+	nonstopux)
+		basic_machine=mips-compaq
+		os=-nonstopux
+		;;
+	np1)
+		basic_machine=np1-gould
+		;;
+	nsr-tandem)
+		basic_machine=nsr-tandem
+		;;
+	op50n-* | op60c-*)
+		basic_machine=hppa1.1-oki
+		os=-proelf
+		;;
+	openrisc | openrisc-*)
+		basic_machine=or32-unknown
+		;;
+	os400)
+		basic_machine=powerpc-ibm
+		os=-os400
+		;;
+	OSE68000 | ose68000)
+		basic_machine=m68000-ericsson
+		os=-ose
+		;;
+	os68k)
+		basic_machine=m68k-none
+		os=-os68k
+		;;
+	pa-hitachi)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	paragon)
+		basic_machine=i860-intel
+		os=-osf
+		;;
+	parisc)
+		basic_machine=hppa-unknown
+		os=-linux
+		;;
+	parisc-*)
+		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	pbd)
+		basic_machine=sparc-tti
+		;;
+	pbb)
+		basic_machine=m68k-tti
+		;;
+	pc532 | pc532-*)
+		basic_machine=ns32k-pc532
+		;;
+	pc98)
+		basic_machine=i386-pc
+		;;
+	pc98-*)
+		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium | p5 | k5 | k6 | nexgen | viac3)
+		basic_machine=i586-pc
+		;;
+	pentiumpro | p6 | 6x86 | athlon | athlon_*)
+		basic_machine=i686-pc
+		;;
+	pentiumii | pentium2 | pentiumiii | pentium3)
+		basic_machine=i686-pc
+		;;
+	pentium4)
+		basic_machine=i786-pc
+		;;
+	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumpro-* | p6-* | 6x86-* | athlon-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium4-*)
+		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pn)
+		basic_machine=pn-gould
+		;;
+	power)	basic_machine=power-ibm
+		;;
+	ppc)	basic_machine=powerpc-unknown
+		;;
+	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppcle | powerpclittle | ppc-le | powerpc-little)
+		basic_machine=powerpcle-unknown
+		;;
+	ppcle-* | powerpclittle-*)
+		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64)	basic_machine=powerpc64-unknown
+		;;
+	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+		basic_machine=powerpc64le-unknown
+		;;
+	ppc64le-* | powerpc64little-*)
+		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ps2)
+		basic_machine=i386-ibm
+		;;
+	pw32)
+		basic_machine=i586-unknown
+		os=-pw32
+		;;
+	rdos)
+		basic_machine=i386-pc
+		os=-rdos
+		;;
+	rom68k)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	rm[46]00)
+		basic_machine=mips-siemens
+		;;
+	rtpc | rtpc-*)
+		basic_machine=romp-ibm
+		;;
+	s390 | s390-*)
+		basic_machine=s390-ibm
+		;;
+	s390x | s390x-*)
+		basic_machine=s390x-ibm
+		;;
+	sa29200)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	sb1)
+		basic_machine=mipsisa64sb1-unknown
+		;;
+	sb1el)
+		basic_machine=mipsisa64sb1el-unknown
+		;;
+	sde)
+		basic_machine=mipsisa32-sde
+		os=-elf
+		;;
+	sei)
+		basic_machine=mips-sei
+		os=-seiux
+		;;
+	sequent)
+		basic_machine=i386-sequent
+		;;
+	sh)
+		basic_machine=sh-hitachi
+		os=-hms
+		;;
+	sh5el)
+		basic_machine=sh5le-unknown
+		;;
+	sh64)
+		basic_machine=sh64-unknown
+		;;
+	sparclite-wrs | simso-wrs)
+		basic_machine=sparclite-wrs
+		os=-vxworks
+		;;
+	sps7)
+		basic_machine=m68k-bull
+		os=-sysv2
+		;;
+	spur)
+		basic_machine=spur-unknown
+		;;
+	st2000)
+		basic_machine=m68k-tandem
+		;;
+	stratus)
+		basic_machine=i860-stratus
+		os=-sysv4
+		;;
+	sun2)
+		basic_machine=m68000-sun
+		;;
+	sun2os3)
+		basic_machine=m68000-sun
+		os=-sunos3
+		;;
+	sun2os4)
+		basic_machine=m68000-sun
+		os=-sunos4
+		;;
+	sun3os3)
+		basic_machine=m68k-sun
+		os=-sunos3
+		;;
+	sun3os4)
+		basic_machine=m68k-sun
+		os=-sunos4
+		;;
+	sun4os3)
+		basic_machine=sparc-sun
+		os=-sunos3
+		;;
+	sun4os4)
+		basic_machine=sparc-sun
+		os=-sunos4
+		;;
+	sun4sol2)
+		basic_machine=sparc-sun
+		os=-solaris2
+		;;
+	sun3 | sun3-*)
+		basic_machine=m68k-sun
+		;;
+	sun4)
+		basic_machine=sparc-sun
+		;;
+	sun386 | sun386i | roadrunner)
+		basic_machine=i386-sun
+		;;
+	sv1)
+		basic_machine=sv1-cray
+		os=-unicos
+		;;
+	symmetry)
+		basic_machine=i386-sequent
+		os=-dynix
+		;;
+	t3e)
+		basic_machine=alphaev5-cray
+		os=-unicos
+		;;
+	t90)
+		basic_machine=t90-cray
+		os=-unicos
+		;;
+	tic54x | c54x*)
+		basic_machine=tic54x-unknown
+		os=-coff
+		;;
+	tic55x | c55x*)
+		basic_machine=tic55x-unknown
+		os=-coff
+		;;
+	tic6x | c6x*)
+		basic_machine=tic6x-unknown
+		os=-coff
+		;;
+	tile*)
+		basic_machine=tile-unknown
+		os=-linux-gnu
+		;;
+	tx39)
+		basic_machine=mipstx39-unknown
+		;;
+	tx39el)
+		basic_machine=mipstx39el-unknown
+		;;
+	toad1)
+		basic_machine=pdp10-xkl
+		os=-tops20
+		;;
+	tower | tower-32)
+		basic_machine=m68k-ncr
+		;;
+	tpf)
+		basic_machine=s390x-ibm
+		os=-tpf
+		;;
+	udi29k)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	ultra3)
+		basic_machine=a29k-nyu
+		os=-sym1
+		;;
+	v810 | necv810)
+		basic_machine=v810-nec
+		os=-none
+		;;
+	vaxv)
+		basic_machine=vax-dec
+		os=-sysv
+		;;
+	vms)
+		basic_machine=vax-dec
+		os=-vms
+		;;
+	vpp*|vx|vx-*)
+		basic_machine=f301-fujitsu
+		;;
+	vxworks960)
+		basic_machine=i960-wrs
+		os=-vxworks
+		;;
+	vxworks68)
+		basic_machine=m68k-wrs
+		os=-vxworks
+		;;
+	vxworks29k)
+		basic_machine=a29k-wrs
+		os=-vxworks
+		;;
+	w65*)
+		basic_machine=w65-wdc
+		os=-none
+		;;
+	w89k-*)
+		basic_machine=hppa1.1-winbond
+		os=-proelf
+		;;
+	xbox)
+		basic_machine=i686-pc
+		os=-mingw32
+		;;
+	xps | xps100)
+		basic_machine=xps100-honeywell
+		;;
+	ymp)
+		basic_machine=ymp-cray
+		os=-unicos
+		;;
+	z8k-*-coff)
+		basic_machine=z8k-unknown
+		os=-sim
+		;;
+	z80-*-coff)
+		basic_machine=z80-unknown
+		os=-sim
+		;;
+	none)
+		basic_machine=none-none
+		os=-none
+		;;
+
+# Here we handle the default manufacturer of certain CPU types.  It is in
+# some cases the only manufacturer, in others, it is the most popular.
+	w89k)
+		basic_machine=hppa1.1-winbond
+		;;
+	op50n)
+		basic_machine=hppa1.1-oki
+		;;
+	op60c)
+		basic_machine=hppa1.1-oki
+		;;
+	romp)
+		basic_machine=romp-ibm
+		;;
+	mmix)
+		basic_machine=mmix-knuth
+		;;
+	rs6000)
+		basic_machine=rs6000-ibm
+		;;
+	vax)
+		basic_machine=vax-dec
+		;;
+	pdp10)
+		# there are many clones, so DEC is not a safe bet
+		basic_machine=pdp10-unknown
+		;;
+	pdp11)
+		basic_machine=pdp11-dec
+		;;
+	we32k)
+		basic_machine=we32k-att
+		;;
+	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+		basic_machine=sh-unknown
+		;;
+	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+		basic_machine=sparc-sun
+		;;
+	cydra)
+		basic_machine=cydra-cydrome
+		;;
+	orion)
+		basic_machine=orion-highlevel
+		;;
+	orion105)
+		basic_machine=clipper-highlevel
+		;;
+	mac | mpw | mac-mpw)
+		basic_machine=m68k-apple
+		;;
+	pmac | pmac-mpw)
+		basic_machine=powerpc-apple
+		;;
+	*-unknown)
+		# Make sure to match an already-canonicalized machine name.
+		;;
+	*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+	*-digital*)
+		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+		;;
+	*-commodore*)
+		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+		;;
+	*)
+		;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+        # First match some system type aliases
+        # that might get confused with valid system types.
+	# -solaris* is a basic system type, with this one exception.
+        -auroraux)
+	        os=-auroraux
+		;;
+	-solaris1 | -solaris1.*)
+		os=`echo $os | sed -e 's|solaris1|sunos4|'`
+		;;
+	-solaris)
+		os=-solaris2
+		;;
+	-svr4*)
+		os=-sysv4
+		;;
+	-unixware*)
+		os=-sysv4.2uw
+		;;
+	-gnu/linux*)
+		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+		;;
+	# First accept the basic system types.
+	# The portable systems comes first.
+	# Each alternative MUST END IN A *, to match a version number.
+	# -sysv* is not here because it comes later, after sysvr4.
+	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+	      | -sym* | -kopensolaris* \
+	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+	      | -aos* | -aros* \
+	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+	      | -openbsd* | -solidbsd* \
+	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+	      | -chorusos* | -chorusrdb* | -cegcc* \
+	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+	      | -uxpv* | -beos* | -mpeix* | -udk* \
+	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+	# Remember, each alternative MUST END IN *, to match a version number.
+		;;
+	-qnx*)
+		case $basic_machine in
+		    x86-* | i*86-*)
+			;;
+		    *)
+			os=-nto$os
+			;;
+		esac
+		;;
+	-nto-qnx*)
+		;;
+	-nto*)
+		os=`echo $os | sed -e 's|nto|nto-qnx|'`
+		;;
+	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+		;;
+	-mac*)
+		os=`echo $os | sed -e 's|mac|macos|'`
+		;;
+	-linux-dietlibc)
+		os=-linux-dietlibc
+		;;
+	-linux*)
+		os=`echo $os | sed -e 's|linux|linux-gnu|'`
+		;;
+	-sunos5*)
+		os=`echo $os | sed -e 's|sunos5|solaris2|'`
+		;;
+	-sunos6*)
+		os=`echo $os | sed -e 's|sunos6|solaris3|'`
+		;;
+	-opened*)
+		os=-openedition
+		;;
+        -os400*)
+		os=-os400
+		;;
+	-wince*)
+		os=-wince
+		;;
+	-osfrose*)
+		os=-osfrose
+		;;
+	-osf*)
+		os=-osf
+		;;
+	-utek*)
+		os=-bsd
+		;;
+	-dynix*)
+		os=-bsd
+		;;
+	-acis*)
+		os=-aos
+		;;
+	-atheos*)
+		os=-atheos
+		;;
+	-syllable*)
+		os=-syllable
+		;;
+	-386bsd)
+		os=-bsd
+		;;
+	-ctix* | -uts*)
+		os=-sysv
+		;;
+	-nova*)
+		os=-rtmk-nova
+		;;
+	-ns2 )
+		os=-nextstep2
+		;;
+	-nsk*)
+		os=-nsk
+		;;
+	# Preserve the version number of sinix5.
+	-sinix5.*)
+		os=`echo $os | sed -e 's|sinix|sysv|'`
+		;;
+	-sinix*)
+		os=-sysv4
+		;;
+        -tpf*)
+		os=-tpf
+		;;
+	-triton*)
+		os=-sysv3
+		;;
+	-oss*)
+		os=-sysv3
+		;;
+	-svr4)
+		os=-sysv4
+		;;
+	-svr3)
+		os=-sysv3
+		;;
+	-sysvr4)
+		os=-sysv4
+		;;
+	# This must come after -sysvr4.
+	-sysv*)
+		;;
+	-ose*)
+		os=-ose
+		;;
+	-es1800*)
+		os=-ose
+		;;
+	-xenix)
+		os=-xenix
+		;;
+	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+		os=-mint
+		;;
+	-aros*)
+		os=-aros
+		;;
+	-kaos*)
+		os=-kaos
+		;;
+	-zvmoe)
+		os=-zvmoe
+		;;
+	-dicos*)
+		os=-dicos
+		;;
+        -nacl*)
+	        ;;
+	-none)
+		;;
+	*)
+		# Get rid of the `-' at the beginning of $os.
+		os=`echo $os | sed 's/[^-]*-//'`
+		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+		exit 1
+		;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system.  Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+        score-*)
+		os=-elf
+		;;
+        spu-*)
+		os=-elf
+		;;
+	*-acorn)
+		os=-riscix1.2
+		;;
+	arm*-rebel)
+		os=-linux
+		;;
+	arm*-semi)
+		os=-aout
+		;;
+        c4x-* | tic4x-*)
+        	os=-coff
+		;;
+	# This must come before the *-dec entry.
+	pdp10-*)
+		os=-tops20
+		;;
+	pdp11-*)
+		os=-none
+		;;
+	*-dec | vax-*)
+		os=-ultrix4.2
+		;;
+	m68*-apollo)
+		os=-domain
+		;;
+	i386-sun)
+		os=-sunos4.0.2
+		;;
+	m68000-sun)
+		os=-sunos3
+		# This also exists in the configure program, but was not the
+		# default.
+		# os=-sunos4
+		;;
+	m68*-cisco)
+		os=-aout
+		;;
+        mep-*)
+		os=-elf
+		;;
+	mips*-cisco)
+		os=-elf
+		;;
+	mips*-*)
+		os=-elf
+		;;
+	or32-*)
+		os=-coff
+		;;
+	*-tti)	# must be before sparc entry or we get the wrong os.
+		os=-sysv3
+		;;
+	sparc-* | *-sun)
+		os=-sunos4.1.1
+		;;
+	*-be)
+		os=-beos
+		;;
+	*-haiku)
+		os=-haiku
+		;;
+	*-ibm)
+		os=-aix
+		;;
+    	*-knuth)
+		os=-mmixware
+		;;
+	*-wec)
+		os=-proelf
+		;;
+	*-winbond)
+		os=-proelf
+		;;
+	*-oki)
+		os=-proelf
+		;;
+	*-hp)
+		os=-hpux
+		;;
+	*-hitachi)
+		os=-hiux
+		;;
+	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+		os=-sysv
+		;;
+	*-cbm)
+		os=-amigaos
+		;;
+	*-dg)
+		os=-dgux
+		;;
+	*-dolphin)
+		os=-sysv3
+		;;
+	m68k-ccur)
+		os=-rtu
+		;;
+	m88k-omron*)
+		os=-luna
+		;;
+	*-next )
+		os=-nextstep
+		;;
+	*-sequent)
+		os=-ptx
+		;;
+	*-crds)
+		os=-unos
+		;;
+	*-ns)
+		os=-genix
+		;;
+	i370-*)
+		os=-mvs
+		;;
+	*-next)
+		os=-nextstep3
+		;;
+	*-gould)
+		os=-sysv
+		;;
+	*-highlevel)
+		os=-bsd
+		;;
+	*-encore)
+		os=-bsd
+		;;
+	*-sgi)
+		os=-irix
+		;;
+	*-siemens)
+		os=-sysv4
+		;;
+	*-masscomp)
+		os=-rtu
+		;;
+	f30[01]-fujitsu | f700-fujitsu)
+		os=-uxpv
+		;;
+	*-rom68k)
+		os=-coff
+		;;
+	*-*bug)
+		os=-coff
+		;;
+	*-apple)
+		os=-macos
+		;;
+	*-atari*)
+		os=-mint
+		;;
+	*)
+		os=-none
+		;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer.  We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+	*-unknown)
+		case $os in
+			-riscix*)
+				vendor=acorn
+				;;
+			-sunos*)
+				vendor=sun
+				;;
+			-cnk*|-aix*)
+				vendor=ibm
+				;;
+			-beos*)
+				vendor=be
+				;;
+			-hpux*)
+				vendor=hp
+				;;
+			-mpeix*)
+				vendor=hp
+				;;
+			-hiux*)
+				vendor=hitachi
+				;;
+			-unos*)
+				vendor=crds
+				;;
+			-dgux*)
+				vendor=dg
+				;;
+			-luna*)
+				vendor=omron
+				;;
+			-genix*)
+				vendor=ns
+				;;
+			-mvs* | -opened*)
+				vendor=ibm
+				;;
+			-os400*)
+				vendor=ibm
+				;;
+			-ptx*)
+				vendor=sequent
+				;;
+			-tpf*)
+				vendor=ibm
+				;;
+			-vxsim* | -vxworks* | -windiss*)
+				vendor=wrs
+				;;
+			-aux*)
+				vendor=apple
+				;;
+			-hms*)
+				vendor=hitachi
+				;;
+			-mpw* | -macos*)
+				vendor=apple
+				;;
+			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+				vendor=atari
+				;;
+			-vos*)
+				vendor=stratus
+				;;
+		esac
+		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+		;;
+esac
+
+echo $basic_machine$os
+exit
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/strace-4.5.20/configure b/strace-4.5.20/configure
new file mode 100755
index 0000000..8213bb3
--- /dev/null
+++ b/strace-4.5.20/configure
@@ -0,0 +1,7905 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.65 for strace 4.5.20.
+#
+#
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
+# Foundation, Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+"
+  as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+  exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1"
+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+  if (eval "$as_required") 2>/dev/null; then :
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  as_found=:
+  case $as_dir in #(
+	 /*)
+	   for as_base in sh bash ksh sh5; do
+	     # Try only shells that exist, to save several forks.
+	     as_shell=$as_dir/$as_base
+	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  CONFIG_SHELL=$as_shell as_have_required=yes
+		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  break 2
+fi
+fi
+	   done;;
+       esac
+  as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+      if test "x$CONFIG_SHELL" != x; then :
+  # We cannot yet assume a decent shell, so we have to provide a
+	# neutralization value for shells without unset; and this also
+	# works around shells that cannot unset nonexistent variables.
+	BASH_ENV=/dev/null
+	ENV=/dev/null
+	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+	export CONFIG_SHELL
+	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+fi
+
+    if test x$as_have_required = xno; then :
+  $as_echo "$0: This script requires a shell more modern than all"
+  $as_echo "$0: the shells that I found on your system."
+  if test x${ZSH_VERSION+set} = xset ; then
+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+  else
+    $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+  fi
+  exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with status $?, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$?; test $as_status -eq 0 && as_status=1
+  if test "$3"; then
+    as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+  fi
+  $as_echo "$as_me: error: $1" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
+  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -p'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -p'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -p'
+  fi
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
+else
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+	test -d "$1/.";
+      else
+	case $1 in #(
+	-*)set "./$1";;
+	esac;
+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+	???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='strace'
+PACKAGE_TARNAME='strace'
+PACKAGE_VERSION='4.5.20'
+PACKAGE_STRING='strace 4.5.20'
+PACKAGE_BUGREPORT=''
+PACKAGE_URL=''
+
+ac_unique_file="strace.c"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+LIBOBJS
+PERL
+WARNFLAGS
+EGREP
+GREP
+CPP
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+am__nodep
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__quote
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+FREEBSD_FALSE
+FREEBSD_TRUE
+SVR4_FALSE
+SVR4_TRUE
+SUNOS4_FALSE
+SUNOS4_TRUE
+X86_64_FALSE
+X86_64_TRUE
+I386_FALSE
+I386_TRUE
+LINUX_FALSE
+LINUX_TRUE
+arch
+opsys
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_maintainer_mode
+enable_dependency_tracking
+'
+      ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CPP'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval $ac_prev=\$ac_option
+    ac_prev=
+    continue
+  fi
+
+  case $ac_option in
+  *=*)	ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *)	ac_optarg=yes ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_dashdash$ac_option in
+  --)
+    ac_dashdash=yes ;;
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=*)
+    datadir=$ac_optarg ;;
+
+  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+  | --dataroo | --dataro | --datar)
+    ac_prev=datarootdir ;;
+  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+    datarootdir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error "invalid feature name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=no ;;
+
+  -docdir | --docdir | --docdi | --doc | --do)
+    ac_prev=docdir ;;
+  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+    docdir=$ac_optarg ;;
+
+  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+    ac_prev=dvidir ;;
+  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+    dvidir=$ac_optarg ;;
+
+  -enable-* | --enable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error "invalid feature name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=\$ac_optarg ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+    ac_prev=htmldir ;;
+  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+  | --ht=*)
+    htmldir=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localedir | --localedir | --localedi | --localed | --locale)
+    ac_prev=localedir ;;
+  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+    localedir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst | --locals)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+    ac_prev=pdfdir ;;
+  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+    pdfdir=$ac_optarg ;;
+
+  -psdir | --psdir | --psdi | --psd | --ps)
+    ac_prev=psdir ;;
+  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+    psdir=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error "invalid package name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=\$ac_optarg ;;
+
+  -without-* | --without-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error "invalid package name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=no ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) as_fn_error "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information."
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    case $ac_envvar in #(
+      '' | [0-9]* | *[!_$as_cr_alnum]* )
+      as_fn_error "invalid variable name: \`$ac_envvar'" ;;
+    esac
+    eval $ac_envvar=\$ac_optarg
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  as_fn_error "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+  case $enable_option_checking in
+    no) ;;
+    fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
+    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+  esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
+		datadir sysconfdir sharedstatedir localstatedir includedir \
+		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+		libdir localedir mandir
+do
+  eval ac_val=\$$ac_var
+  # Remove trailing slashes.
+  case $ac_val in
+    */ )
+      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+      eval $ac_var=\$ac_val;;
+  esac
+  # Be sure to have absolute directory names.
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* )  continue;;
+    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+  esac
+  as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+    $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+    If a cross compiler is detected then cross compile mode will be used." >&2
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+  as_fn_error "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+  as_fn_error "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then the parent directory.
+  ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_myself" : 'X\(//\)[^/]' \| \
+	 X"$as_myself" : 'X\(//\)$' \| \
+	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r "$srcdir/$ac_unique_file"; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+  as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
+	pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+  srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+  eval ac_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_env_${ac_var}_value=\$${ac_var}
+  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+\`configure' configures strace 4.5.20 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR            user executables [EPREFIX/bin]
+  --sbindir=DIR           system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR        program executables [EPREFIX/libexec]
+  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --libdir=DIR            object code libraries [EPREFIX/lib]
+  --includedir=DIR        C header files [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
+  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
+  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
+  --infodir=DIR           info documentation [DATAROOTDIR/info]
+  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
+  --mandir=DIR            man documentation [DATAROOTDIR/man]
+  --docdir=DIR            documentation root [DATAROOTDIR/doc/strace]
+  --htmldir=DIR           html documentation [DOCDIR]
+  --dvidir=DIR            dvi documentation [DOCDIR]
+  --pdfdir=DIR            pdf documentation [DOCDIR]
+  --psdir=DIR             ps documentation [DOCDIR]
+_ACEOF
+
+  cat <<\_ACEOF
+
+Program names:
+  --program-prefix=PREFIX            prepend PREFIX to installed program names
+  --program-suffix=SUFFIX            append SUFFIX to installed program names
+  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
+
+System types:
+  --build=BUILD     configure for building on BUILD [guessed]
+  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+  case $ac_init_help in
+     short | recursive ) echo "Configuration of strace 4.5.20:";;
+   esac
+  cat <<\_ACEOF
+
+Optional Features:
+  --disable-option-checking  ignore unrecognized --enable/--with options
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-maintainer-mode  enable make rules and dependencies not useful
+			  (and sometimes confusing) to the casual installer
+  --disable-dependency-tracking  speeds up one-time build
+  --enable-dependency-tracking   do not reject slow dependency extractors
+
+Some influential environment variables:
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  LIBS        libraries to pass to the linker, e.g. -l<library>
+  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+              you have headers in a nonstandard directory <include dir>
+  CPP         C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to the package provider.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d "$ac_dir" ||
+      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+      continue
+    ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+    cd "$ac_dir" || { ac_status=$?; continue; }
+    # Check for guested configure.
+    if test -f "$ac_srcdir/configure.gnu"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+    elif test -f "$ac_srcdir/configure"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure" --help=recursive
+    else
+      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi || ac_status=$?
+    cd "$ac_pwd" || { ac_status=$?; break; }
+  done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+  cat <<\_ACEOF
+strace configure 4.5.20
+generated by GNU Autoconf 2.65
+
+Copyright (C) 2010 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+    ac_retval=1
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_header_compiler=yes
+else
+  ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  ac_header_preproc=yes
+else
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+  yes:no: )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_header_mongrel
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+       $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_retval=$ac_status
+fi
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+# -------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=no"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+	 return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+	    return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+  eval "$3=yes"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_type
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
+# ----------------------------------------------------
+# Tries to find if the field MEMBER exists in type AGGR, after including
+# INCLUDES, setting cache variable VAR accordingly.
+ac_fn_c_check_member ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
+$as_echo_n "checking for $2.$3... " >&6; }
+if { as_var=$4; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (ac_aggr.$3)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$4=yes"
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (sizeof ac_aggr.$3)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$4=yes"
+else
+  eval "$4=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$4
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_member
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+  as_lineno=${as_lineno-"$1"} as_linen