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