History log of /external/strace/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a2adbed6e2d3ce85ebb167e16ae370681a8b5188 01-Jul-2014 Elliott Hughes <enh@google.com> Merge changes Icedbb451,I57fac759,I2734a701,Ib0764206,Ic588b205, ...

* changes:
Merge remote-tracking branch 'strace/master' into HEAD
xtensa: sort values in struct_user_offsets
Document -k option as experimental
tests: robustify -k test
tests: enhance -k test
unwind: ignore memory mappings that have no PROT_EXEC bit set
unwind: cleanup build_mmap_cache
unwind: remove unused field from mmap_cache_t
unwind: refactor stacktrace_walk
unwind: constify binary_filename and symbol_name functions arguments
unwind: disable stack trace with multiple personalities
cedbb451692d6631421e9df576b72129151d303c 01-Jul-2014 Elliott Hughes <enh@google.com> Merge remote-tracking branch 'strace/master' into HEAD
57fac759ca0945f5608ed6a2228c697f8fb67cd6 18-Jun-2014 Max Filippov <jcmvbkbc@gmail.com> xtensa: sort values in struct_user_offsets

Otherwise ptrace syscall argument decoding is wrong:
ptrace(PTRACE_PEEKUSER, 296, syscall_nr, [0x4048eb]) = 0
ptrace(PTRACE_PEEKUSER, 296, syscall_nr, [0x3fa6cd30]) = 0
ptrace(PTRACE_PEEKUSER, 296, syscall_nr, [0x8040676d]) = 0
instead of
ptrace(PTRACE_PEEKUSER, 296, pc, [0x4048eb]) = 0
ptrace(PTRACE_PEEKUSER, 296, a1, [0x3fa6cd30]) = 0
ptrace(PTRACE_PEEKUSER, 296, a0, [0x8040676d]) = 0

* process.c (struct_user_offsets) [XTENSA]: Sort values.
rocess.c
2734a7010fb24dbcad3c55565d08c5c9b81f8624 18-Jun-2014 Dmitry V. Levin <ldv@altlinux.org> Document -k option as experimental

strace -k does not produce a reliable output on all supported
configurations yet, even basic strace-k.test is known to fail
on some of them.

* strace.c (usage): Document -k option as experimental.
* strace.1: Likewise.
* NEWS: Likewise.
EWS
trace.1
trace.c
b0764206921fcbbe3adb66606ed98962df414c1a 16-Jun-2014 Dmitry V. Levin <ldv@altlinux.org> tests: robustify -k test

Split stack-fcall.c into several compilation units so that intermediate
function calls would not be optimized out by compiler.

* tests/stack-fcall.c: Move intermediate functions to ...
* tests/stack-fcall-*.c: ... new files.
* tests/Makefile.am (stack_fcall_SOURCES): Add stack-fcall-*.c.
ests/Makefile.am
ests/stack-fcall-0.c
ests/stack-fcall-1.c
ests/stack-fcall-2.c
ests/stack-fcall-3.c
ests/stack-fcall.c
c588b205be19f84f757dec6f2e6ed2a157750f97 13-Jun-2014 Dmitry V. Levin <ldv@altlinux.org> tests: enhance -k test

Add two more function calls to the stack. Suggested by Masatake YAMATO.

* tests/stack-fcall.c (f1): Rename to f3.
(f1, f2): New functions.
* tests/strace-k.test: Update.
ests/stack-fcall.c
ests/strace-k.test
73741d2e2ee0f9d446b0dc2fbc70be3f5b10521b 13-Jun-2014 Dmitry V. Levin <ldv@altlinux.org> unwind: ignore memory mappings that have no PROT_EXEC bit set

* unwind.c (build_mmap_cache): For each memory mapping being scanned,
save its PROT_EXEC bit and skip the mapping if it is not set.
nwind.c
9a349c7779c1c0da89b4eb2821c3b5e6de84adcf 12-Jun-2014 Dmitry V. Levin <ldv@altlinux.org> unwind: cleanup build_mmap_cache

* unwind.c (build_mmap_cache): Move local variables to the code branch
where they are used. Check return code of sscanf and strdup. Do not
treat unusual memory mappings as fatal errors. Do not skip memory
mappings with path names starting with "[".
nwind.c
2222b928c65b1259f27625d6e50627865fb75336 13-Jun-2014 Dmitry V. Levin <ldv@altlinux.org> unwind: remove unused field from mmap_cache_t

* unwind.c (mmap_cache_t): Remove "deleted" field.
(build_mmap_cache): Remove initialization of "deleted" field.
nwind.c
52840ede0c72d90b9dad3dc829ef4b4909d51ab6 06-Jun-2014 Dmitry V. Levin <ldv@altlinux.org> unwind: refactor stacktrace_walk

* unwind.c (stacktrace_walk): Move stack frame printing code
to separate function print_stack_frame.
nwind.c
806539c55c8697f7f0a4bfd95345f216797fe7e0 06-Jun-2014 Dmitry V. Levin <ldv@altlinux.org> unwind: constify binary_filename and symbol_name functions arguments

* unwind.c (call_action_fn, print_call_cb, sprint_call_or_error,
queue_put, queue_put_call): Add const qualifier to binary_filename and
symbol_name arguments.
nwind.c
f1d73110a00122879a0fdb63bbeffc0bd161e857 10-Jun-2014 Luca Clementi <luca.clementi@gmail.com> unwind: disable stack trace with multiple personalities

* unwind.c (unwind_cache_invalidate, unwind_print_stacktrace,
unwind_capture_stacktrace): Disable stack tracing of non-default
personality processes.
nwind.c
d317951a6b15f0ca6e2a697d4796895b876985d1 10-Jun-2014 Elliott Hughes <enh@google.com> Merge "Improve the documentation for syncing upstream strace."
60b6d90b1f9d018f450462e57906b538071eec3c 07-Jun-2014 Elliott Hughes <enh@google.com> Improve the documentation for syncing upstream strace.

Change-Id: I4998eae07df7b11535ab5df0e17188745f30bede
ndroid.mk
64b8857e409fac2b55520bb50120a30b821d766d 07-Jun-2014 Elliott Hughes <enh@google.com> Merge "Fix the external/strace update-ioctls target."
16488d563909b0a6e151da77a14e3f742b68f272 07-Jun-2014 Elliott Hughes <enh@google.com> Fix the external/strace update-ioctls target.

Change-Id: I508307982b06f50ebe64131524dce712e0805cff
ndroid.mk
a73005485ed682f90ae70b81a4e411768fdc9234 07-Jun-2014 Elliott Hughes <enh@google.com> Merge "Add new generated strace files ignored by xlat/.gitignore."
827283714cf6f0ff11f3b46a98203cb3c8fd920b 07-Jun-2014 Elliott Hughes <enh@google.com> Add new generated strace files ignored by xlat/.gitignore.

These shouldn't be checked in to the upstream strace git repository,
but they should be in ours!

Change-Id: If950542c25bdeb18b6a565ecb07a434bb8730d9a
lat/Makemodule.am
lat/access_flags.h
lat/aclcmds.h
lat/aclipc.h
lat/addrfams.h
lat/adjtimex_modes.h
lat/adjtimex_state.h
lat/adjtimex_status.h
lat/advise.h
lat/af_packet_types.h
lat/archvals.h
lat/at_flags.h
lat/atomic_ops.h
lat/baud_options.h
lat/blkpg_ops.h
lat/bootflags1.h
lat/bootflags2.h
lat/bootflags3.h
lat/cacheflush_scope.h
lat/cap_version.h
lat/capabilities.h
lat/clockflags.h
lat/clocknames.h
lat/clone_flags.h
lat/cpuclocknames.h
lat/delete_module_flags.h
lat/direnttypes.h
lat/domains.h
lat/epollctls.h
lat/epollevents.h
lat/epollflags.h
lat/fan_classes.h
lat/fan_event_flags.h
lat/fan_init_flags.h
lat/fan_mark_flags.h
lat/fcntlcmds.h
lat/fdflags.h
lat/fileflags.h
lat/flockcmds.h
lat/fsmagic.h
lat/futexops.h
lat/futexwakecmps.h
lat/futexwakeops.h
lat/icmpfilterflags.h
lat/if_dqblk_valid.h
lat/if_dqinfo_valid.h
lat/iffflags.h
lat/inet_protocols.h
lat/inotify_flags.h
lat/inotify_init_flags.h
lat/ioprio_class.h
lat/ioprio_who.h
lat/ipc_msg_flags.h
lat/itimer_which.h
lat/kexec_arch_values.h
lat/kexec_flags.h
lat/key_perms.h
lat/key_reqkeys.h
lat/key_spec.h
lat/keyctl_commands.h
lat/lockfcmds.h
lat/loop_crypt_type_options.h
lat/loop_flags_options.h
lat/madvise_cmds.h
lat/mbindflags.h
lat/mctl_funcs.h
lat/mctl_lockas.h
lat/mctl_sync.h
lat/mempolicyflags.h
lat/mlockall_flags.h
lat/mmap_flags.h
lat/mmap_prot.h
lat/modem_flags.h
lat/modetypes.h
lat/modflags.h
lat/module_init_flags.h
lat/mount_flags.h
lat/move_pages_flags.h
lat/mremap_flags.h
lat/msg_flags.h
lat/msgctl_flags.h
lat/msgflags.h
lat/mtd_flags_options.h
lat/mtd_mode_options.h
lat/mtd_nandecc_options.h
lat/mtd_otp_options.h
lat/mtd_type_options.h
lat/netlink_protocols.h
lat/notifyflags.h
lat/nt_descriptor_types.h
lat/open_access_modes.h
lat/open_mode_flags.h
lat/openmodessol.h
lat/perf_event_open_flags.h
lat/personality_options.h
lat/pmsgflags.h
lat/policies.h
lat/pollflags.h
lat/prctl_options.h
lat/priorities.h
lat/ptp_flags_options.h
lat/ptrace_cmds.h
lat/ptrace_setoptions_flags.h
lat/qm_which.h
lat/quota_formats.h
lat/quotacmds.h
lat/quotatypes.h
lat/resource_flags.h
lat/resources.h
lat/schedulers.h
lat/scmvals.h
lat/semctl_flags.h
lat/semop_flags.h
lat/sg_io_dxfer_direction.h
lat/shm_flags.h
lat/shm_resource_flags.h
lat/shmctl_flags.h
lat/shutdown_modes.h
lat/sigact_flags.h
lat/sigaltstack_flags.h
lat/sigbus_codes.h
lat/sigchld_codes.h
lat/sigemt_codes.h
lat/sigev_value.h
lat/sigfpe_codes.h
lat/sigill_codes.h
lat/siginfo_codes.h
lat/sigpoll_codes.h
lat/sigprocmaskcmds.h
lat/sigprof_codes.h
lat/sigsegv_codes.h
lat/sigsys_codes.h
lat/sigtrap_codes.h
lat/sock_type_flags.h
lat/socketlayers.h
lat/sockipoptions.h
lat/sockipv6options.h
lat/sockipxoptions.h
lat/sockoptions.h
lat/sockpacketoptions.h
lat/sockrawoptions.h
lat/socksctpoptions.h
lat/socktcpoptions.h
lat/socktypes.h
lat/splice_flags.h
lat/sram_alloc_flags.h
lat/swap_flags.h
lat/sync_file_range_flags.h
lat/sysctl_kern.h
lat/sysctl_net.h
lat/sysctl_net_core.h
lat/sysctl_net_ipv4.h
lat/sysctl_net_ipv4_conf.h
lat/sysctl_net_ipv4_route.h
lat/sysctl_net_ipv6.h
lat/sysctl_net_ipv6_route.h
lat/sysctl_net_unix.h
lat/sysctl_root.h
lat/sysctl_vm.h
lat/syslog_action_type.h
lat/sysmips_operations.h
lat/tcflsh_options.h
lat/tcxonc_options.h
lat/timerfdflags.h
lat/ubi_volume_props.h
lat/ubi_volume_types.h
lat/umount_flags.h
lat/usagewho.h
lat/wait4_options.h
lat/waitid_types.h
lat/whence_codes.h
lat/xattrflags.h
lat/xfs_dqblk_flags.h
lat/xfs_quota_flags.h
cab31a8661f484e08161c660a4bd203b509ae65a 07-Jun-2014 Elliott Hughes <enh@google.com> Merge remote-tracking branch 'strace/master' into HEAD
6555711a6ee9b63a5a9c5e3e530d066306c0760c 05-Jun-2014 Dmitry V. Levin <ldv@altlinux.org> unwind: rename function_off_set to function_offset

* unwind.c (call_action_fn, stacktrace_walk, STACK_ENTRY_SYMBOL_FMT,
print_call_cb, sprint_call_or_error, queue_put, queue_put_call):
Rename function_off_set to function_offset.
nwind.c
c12eb1117c8d91773ea0c138eb220addec1448d0 05-Jun-2014 Dmitry V. Levin <ldv@altlinux.org> unwind: fix a bug in range updating of binary search

* unwind.c (print_stacktrace): Fix another off-by-one error in binary search.
nwind.c
c903c822ee94478bff1732eb80744e201c074d26 05-Jun-2014 Dmitry V. Levin <ldv@altlinux.org> unwind: use fopen64 instead of fopen

* unwind.c (fopen_for_input): Define to fopen64 iff
[_LARGEFILE64_SOURCE && HAVE_FOPEN64], otherwise define it to fopen.
(build_mmap_cache): Use fopen_for_input instead of fopen.
nwind.c
e4113974893293c82f177fe4195cac0a5b70465a 05-Jun-2014 Dmitry V. Levin <ldv@altlinux.org> unwind: fix build on 32-bit architectures

Fix compilation warnings in unwind.c on 32-bit architectures.
On some architectures getuid is actually getuid32, so change the test
to use getpid instead of getuid.

* unwind.c (STACK_ENTRY_SYMBOL_FMT): Explicitly cast function_off_set
to unsigned long.
(queue_put_error): Change the 3rd argument's type to unsigned long.
* tests/stack-fcall.c (f1): Use getpid instead of getuid.
* tests/strace-k.test: Likewise.
ests/stack-fcall.c
ests/strace-k.test
nwind.c
6e7ba0d8fe2fc31ea852a7fb7f380c22c2a9bdd2 05-Jun-2014 Dmitry V. Levin <ldv@altlinux.org> tests: robustify -w option test

* tests/count.test: Allow nanosleep to spend a bit less time than 1 second.
ests/count.test
bc4841c9e9f9fde73789023b5fb68b5c32f87b9e 04-Jun-2014 Elliott Hughes <enh@google.com> Merge "[MIPS64] Enable mips64 build"
2cafa72cabf136b1ba42ef199b56de6dbdd71a10 20-May-2014 Duane Sand <duane.sand@imgtec.com> [MIPS64] Enable mips64 build

Change-Id: I3b4c5eeab980e880ee45b2ae1e153f6e43489349
ndroid.mk
d04bb2bb804fae73d29b234eae081af6f80e8209 04-Jun-2014 Dmitry V. Levin <ldv@altlinux.org> Fix delete_module decoding

* xlat/delete_module_flags.in: New file.
* file.c (sys_delete_module): Move ...
* bjm.c (sys_delete_module): ... to here.
Decode 1st argument using printstr instead of printpath.
* NEWS: Mention it.
EWS
jm.c
ile.c
lat/delete_module_flags.in
64aa1b1e2dd14c5259bd349270f4d1e29d4fb421 04-Jun-2014 Zubin Mithra <zubin.mithra@gmail.com> Decode paths associated with file descriptors returned by syscalls

* defs.h (RVAL_FD): New macro.
(RVAL_MASK, RVAL_STR, RVAL_NONE): Update.
* desc.c (sys_dup, sys_delete_module): New functions.
(do_dup2, decode_open, sys_creat): Change return value to RVAL_FD.
* linux/dummy.h (sys_delete_module, sys_dup): Remove.
* linux/syscall.h (sys_delete_module, sys_dup): New prototypes.
* syscall.c (trace_syscall_exiting): Handle RVAL_FD.

Signed-off-by: Zubin Mithra <zubin.mithra@gmail.com>
efs.h
esc.c
ile.c
inux/dummy.h
inux/syscall.h
yscall.c
327102c7f6a8d70a32f83280f897fc02da0a8810 03-Jun-2014 Dmitry V. Levin <ldv@altlinux.org> NEWS: Prepare for 4.9 release
EWS
2727aae37c56eb2620699388513ef5bbb0af2b7e 03-Jun-2014 Dmitry V. Levin <ldv@altlinux.org> Warn about flags that have no effect with -c

* strace.c (init): Issue a warning if -i, -k, -r, -t, -T, or -y is used
along with -c.
This fixes Debian bug #443895.
trace.c
4182981f6d025d8e753f3da635df5832c0c6d99d 03-Jun-2014 Dmitry V. Levin <ldv@altlinux.org> debian: enable security hardening features

* debian/rules: Follow the advice in https://wiki.debian.org/Hardening
and enable maximum hardening as for programs that handle untrusted data.
Patch by Markus <waldeck@gmx.de>.
ebian/rules
05cd5b2a04aec533e5c46da0ea88e643312565e3 03-Jun-2014 Dmitry V. Levin <ldv@altlinux.org> debian: update control file

* debian/control (strace64): Fix a typo in package description.
Patch by Pascal De Vuyst <pascal.devuyst@gmail.com>.
(strace, strace-udeb): Add x32 to architecture list.
Patch by Guillaume Morin <guillaume@morinfr.org>.
(strace, strace-udeb): Add or1k to architecture list.
Patch by Christian Svensson <debian@cmd.nu>.
(strace, strace-udeb): Add arm64 to architecture list,
and remove defunct arm.
Patch by Wookey <wookey@debian.org>.

This fixes Debian bugs: #697625, #727018, #742235, #749956.
ebian/control
a197832282e3c655149b9c06448fb82bf8a20f5e 03-Jun-2014 Dmitry V. Levin <ldv@altlinux.org> manpage: minor corrections

$ groff -ww -mandoc -z strace.1
strace.1:65: warning: macro `IX' not defined

* strace.1: define IX macro as empty for groff.
Change remaining '-' as minus to '\-'.
Have two word spaces after a full stop as an end of sentence.
Use extra space ('\,' or '\/') between roman and italic characters.
Based on patch by Bjarni Ingi Gislason <bjarniig@rhi.hi.is>.
This fixes Debian bug #725987.
trace.1
9682107053968402da7afca7e82e2c6281d05518 14-May-2014 Masatake YAMATO <yamato@redhat.com> unwind: tests: add a test for -k option

* tests/stack-fcall.c: New test target.
* tests/strace-k.test: New test driver.
* tests/Makefile.am (check_PROGRAMS): Add stack-fcall.
(TESTS): Add strace-k.test.
* tests/.gitignore: Add stack-fcall.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
ests/.gitignore
ests/Makefile.am
ests/stack-fcall.c
ests/strace-k.test
ed69fc2dc3da87d337ddd02f9153a82a46196cdf 16-Apr-2014 Masatake YAMATO <yamato@redhat.com> unwind: move stacktrace capturing and mmap cache invalidating to trace_syscall_entering

Instead of handling stacktrace capturing and mmap cache invalidating in
sys_* functions, handle them uniformly in trace_syscall_entering using
new flags introduced by previous two commits.

The patch is simpler than its older version(v3). The value of
hide_log_until_execve is just ignored. I found the value is nothing
to do with this patch. unwind_cache_invalidate is mentioned only
once in trace_syscall_exiting.
Both are suggested by Dmitry Levin.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
em.c
rocess.c
yscall.c
549e2c4a9858a380b03eb6e2ff4861d2c6687d6a 12-May-2014 Dmitry V. Levin <ldv@altlinux.org> unwind: add SE and SI flags to syscall entries for all architectures

Add SE flag to execve, exit, and exit_group syscall entries.
Add SI flag to brk, execve, mmap, mprotect, mremap, munmap,
remap_file_pages, shmat, and shmdt syscall entries.
inux/aarch64/syscallent1.h
inux/alpha/syscallent.h
inux/arc/syscallent.h
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/metag/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent-compat.h
inux/mips/syscallent-n32.h
inux/mips/syscallent-n64.h
inux/mips/syscallent-o32.h
inux/or1k/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent.h
inux/tile/syscallent1.h
inux/x32/syscallent.h
inux/x86_64/syscallent.h
inux/xtensa/syscallent.h
1d78d22058da04eac7bf726c059d5c3fb193da08 16-Apr-2014 Masatake YAMATO <yamato@redhat.com> unwind: introduce markers specifying the needs of special care in unwinding

Some system calls require capturing the stack trace before they are
processed in kernel. Typical one is execve. Some system calls require
invalidating mmap cache after they are processed in kernel.

In current implementation these requirements are handled directly by
appropriate syscall handlers. However, it is difficult to keep the
source code maintainable using this approach to cover all system calls
which have such requirements.

A more generic way to implement this is to flag all syscalls that
require special processing, and handle these flags right in
trace_syscall_entering instead of changing syscall handlers.

This patch just defines new flags: STACKTRACE_INVALIDATE_CACHE and
STACKTRACE_CAPTURE_ON_ENTER.

The names of macros are suggested by Dmitry Levin.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
efs.h
yscall.c
a0b4ee7b38e600f28e547585e754b7737b388d90 16-Apr-2014 Masatake YAMATO <yamato@redhat.com> unwind: enable dwarf cache of libunwind

Here is the benchmark of the dwarf cache.

Target program:

#include <sched.h>
int main(void)
{
unsigned int max = 0x6fff, i;
for (i = 0; i < max; i++)
sched_yield();
return 0;
}

Command line:

./strace -o /dev/null -k a.out

With the dwarf cache:

real 0m12.081s
user 0m3.858s
sys 0m8.194s

Without the dwarf cache:

real 0m22.326s
user 0m5.218s
sys 0m16.952s

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
nwind.c
b45b7faa1fc0373831fb00a3892de45b4df87232 16-Apr-2014 Masatake YAMATO <yamato@redhat.com> unwind: report expected backtracing error

When a file mmap'ed to the target process is unlink'ed, backtracing the
stack would fail. Current implementation reports it as
"backtracing_error". To avoid confusion, the message is changed to
"expected_backtracing_error".

Here is the reproducer:

$ cat ./p-deleted.c
#include <unistd.h>

int main(int argc, char **argv) {
return unlink(argv[0]) < 0;
}

$ strace -e unlink -k ./p-deleted
unlink("./p-deleted") = 0
> /usr/lib64/libc-2.18.so(unlink+0x7) [0xe7f17]
> /home/yamato/var/strace/t_unwind/p-deleted (deleted)(+0x0) [0x575]
> /usr/lib64/libc-2.18.so(__libc_start_main+0xf5) [0x21d65]
> backtracing_error [0x7ffff1365590]
+++ exited with 0 +++

p-deleted is deleted therefore backtracing_error is reported. This
patch records the deleted marker when making mmap cache and refers the
recorded information in the case "backtracing_error" to switch the
message.

Here is the output of this patch:

$ strace -e unlink -k ./p-deleted
unlink("./p-deleted") = 0
> /usr/lib64/libc-2.18.so(unlink+0x7) [0xe7f17]
> /home/yamato/var/strace/t_unwind/p-deleted (deleted)(+0x0) [0x575]
> /usr/lib64/libc-2.18.so(__libc_start_main+0xf5) [0x21d65]
> expected_backtracing_error [0x7ffff1365590]
+++ exited with 0 +++

This solution is not perfect: if a file is unlink'ed after making the
mmap cache and before unwinding, strace cannot have a chance to record
the deleted marker.

In this version of patch, hardcoded magic number used in comparing "(delete)"
string is replaced with strlen as suggested by Dmitry Levin.

In old version of patch, the deleted entry was thrown away from mmap
cache to avoid to report "backtracing_error". In this patch I keep it,
and just switch the error message.
Inspired by the review comment from Dmitry Levin.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
nwind.c
2b09df9731f97685b4c06e34ce4ff5f1686eb4c1 16-Apr-2014 Masatake YAMATO <yamato@redhat.com> unwind: call unwind_tcb_fin before printing detached message

captured stacktrace is printed in unwind_tcb_fin if tcp->queue is not
empty. This should happen before printing detached message, so
unwind_tcb_fin is moved to the top of droptcb.

This is implicitly suggested by Dmitry Levin in patch review process.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
trace.c
9bc6561588093a788c29f07579f9e4103864a752 16-Apr-2014 Masatake YAMATO <yamato@redhat.com> unwind: implement automatic mmap cache invalidation

A mmap cache belonging to a tcb was updated when a system call which
changed the memory mapping was called. This implementation was assumed
the mapping was changed only by the tcb. However, this assumption is
incorrect if the target application is multi-threaded; more than two
tcbs can shared the same memory mapping and a tcb can modify it without
being noticed by the others.

This change introduces a global integer variable mmap_cache_generation,
and mmap_cache_generation field to struct tcb. The variable
is incremented each time a process enters a syscall that can modify its
memory mapping. Each tcb records the value of this variable at the
moment if building its mmap cache. Every mmap cache associated with
the given tcb can be validated by comparing its mmap_cache_generation
field with the variable mmap_cache_generation.

This implementation is inefficient. If strace attaches two processes
which don't share the memory mapping, rebuilding mmap cache of a tcb
triggered by another tcb's mmap system call is not necessary.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
efs.h
nwind.c
f8e39d7b7a9d581e634be59af73cf82cb566abf9 16-Apr-2014 Masatake YAMATO <yamato@redhat.com> unwind: introduce queue_t for capturing stacktrace

This is the second step for splitting capturing from printing.

New `queue' field is added to tcb. Captured stacktrace is stored here.
The field is initialized/finalized at unwind_tcb_init/unwind_tcb_fin.

New API function unwind_capture_stacktrace is added. This function
captures the currest stack using stracktrace_walker and records it in
tcb. It's printing is delayed to the next call of
unwind_print_stacktrace.

unwind_print_stacktrace is extended. Now it checks queue field of
the given tcb at the start of function. If the function finds a
captured stack trace, the latter is printed using stracktrace_walker.

Currently unwind_capture_stacktrace invocations are added directly to
handlers of mmap, munmap, mprotect, and execve.

Here is the difference of output with/without patch:

(without patch)
execve("./test-fork", ["./test-fork"], [/* 56 vars */]) = 0
> /usr/lib64/ld-2.18.so(check_one_fd.part.0+0x82) [0x11f0]

(with patch)
execve("./test-fork", ["./test-fork"], [/* 54 vars */]) = 0
> /usr/lib64/libc-2.18.so(execve+0x7) [0xbcd27]
> /home/yamato/var/strace/strace(exec_or_die+0x10c) [0x26ac]
> /home/yamato/var/strace/strace(startup_child+0x346) [0x134f6]
> /home/yamato/var/strace/strace(init+0x89f) [0x13dff]
> /home/yamato/var/strace/strace(main+0xa) [0x26ca]
> /usr/lib64/libc-2.18.so(__libc_start_main+0xf5) [0x21d65]
> /home/yamato/var/strace/strace(_start+0x29) [0x2799]

In older version output lines of captured elements were built when
printing. In this version they are built when capturing the stack.
As result, unneeded dynamic memory allocations are avoided.
Suggested by Luca Clementi.

In older version the combination of snprintf and realloc were used.
In this version they are replaced with asprintf.
Suggested by Dmitry Levin.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
efs.h
em.c
rocess.c
nwind.c
4e121e5bb45f79ec61dc2c01c7625ccf215d8457 16-Apr-2014 Masatake YAMATO <yamato@redhat.com> unwind: introduce own debug macro

* unwind.c (DPRINTF): New macro, to be utilized in debugging cache
management code.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
nwind.c
2d534daaa66ddc6a0558717160f0e1b337f7b7c5 16-Apr-2014 Masatake YAMATO <yamato@redhat.com> unwind: introduce stacktrace_walker

In current implementation, the stack trace is captured and printed at
the same time, in trace_syscall_exiting. This approach cannot
provide user expected information when a system call changes the
memory mapping. In such cases, the stack trace should be captured on
entering syscall and printed on exiting.

As the initial step for splitting capturing from printing, this change
introduces stacktrace_walker utility function. It can be used both for
capturing in trace_syscall_entering and printing in
trace_syscall_exiting.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
nwind.c
6141392856a170c9297783e6bfbd9fd970f76fdf 16-Apr-2014 Masatake YAMATO <yamato@redhat.com> unwind: give all exported functions "unwind_" prefix

* unwind.c (init_unwind_addr_space): Rename to unwind_init.
(init_libunwind_ui): Rename to unwind_tcb_init.
(free_libunwind_ui): Rename to unwind_tcb_fin.
(delete_mmap_cache): Rename to unwind_cache_invalidate.
(print_stacktrace): Rename to unwind_print_stacktrace.
* defs.h: Update prototypes.
* mem.c: All callers updated.
* process.c: Likewise.
* strace.c: Likewise.
* syscall.c: Likewise.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
efs.h
em.c
rocess.c
trace.c
yscall.c
nwind.c
7721499fc7ea15cbf2f7d4f89c9502e325b451fc 16-Apr-2014 Masatake YAMATO <yamato@redhat.com> unwind: delete mmap cache in free_libunwind_ui

free_libunwind_ui is expected to release all unwind related resources
attached to tcp.

* strace.c (droptcb): Move delete_mmap_cache call ...
* unwind.c (free_libunwind_ui): ... to here.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
trace.c
nwind.c
b65042fbdb576d13e9bb57c21a890539cab25c43 16-Apr-2014 Masatake YAMATO <yamato@redhat.com> unwind: make alloc_mmap_cache function local

* defs.h (alloc_mmap_cache): Remove.
* unwind.c (alloc_mmap_cache): Add static qualifier.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
efs.h
nwind.c
b4a2de8efff1aaf45e9bc64fc731213a01cbdb53 16-Apr-2014 Masatake YAMATO <yamato@redhat.com> unwind: fix a bug in range updating of binary search

* unwind.c (print_stacktrace): Fix off-by-one error in binary search.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
Signed-off-by: Luca Clementi <luca.clementi@gmail.com>
nwind.c
327064b63722a4400058e0e7e9b39d9e34b14b57 23-Jul-2013 Luca Clementi <luca.clementi@gmail.com> Add -k option to print stack trace after each syscall

Print the stack trace of the traced process after each system call when
-k option is specified. It is implemented using libunwind to unwind the
stack and to obtain the function name pointed by the IP.

Based on the code that was originally taken from strace-plus
of Philip J. Guo.

* configure.ac: Add --with-libunwind option. Check libunwind support.
* Makefile.am: Add libunwind support.
* defs.h (struct tcb) [USE_LIBUNWIND]: Append libunwind specific fields.
[USE_LIBUNWIND] (stack_trace_enabled, alloc_mmap_cache,
delete_mmap_cache, print_stacktrace): New prototypes.
* mem.c (print_mmap, sys_munmap, sys_mprotect): Add libunwind support.
* process.c (sys_execve): Likewise.
* strace.c (usage, alloctcb, droptcb, init): Likewise.
* syscall.c (trace_syscall_exiting): Likewise.
* unwind.c: New file.
* strace.1: Document -k option.
akefile.am
onfigure.ac
efs.h
em.c
rocess.c
trace.1
trace.c
yscall.c
nwind.c
6dbbe0737a76c1bae5b0995025a9b0843781a393 26-Apr-2014 Dmitry V. Levin <ldv@altlinux.org> sysctl: update CTL_*, KERN_*, NET_*, and VM_* constants

* configure.ac (AC_CHECK_DECLS): Add CTL_*, KERN_*, NET_*, and
VM_* constants.
* system.c (CTL_PROC, CTL_CPU): Remove definitions.
* xlat/sysctl_*.in: Update.
onfigure.ac
ystem.c
lat/sysctl_kern.in
lat/sysctl_net.in
lat/sysctl_net_core.in
lat/sysctl_net_ipv4.in
lat/sysctl_net_ipv4_conf.in
lat/sysctl_net_ipv4_route.in
lat/sysctl_net_ipv6.in
lat/sysctl_net_ipv6_route.in
lat/sysctl_net_unix.in
lat/sysctl_root.in
lat/sysctl_vm.in
d8ad1ddc76eba4ad0f70b4f52a9d222e7e6c557b 26-Apr-2014 Dmitry V. Levin <ldv@altlinux.org> Check for constants used by waitid function

* configure.ac (AC_CHECK_DECLS): Add P_* constants.
onfigure.ac
baf60d92f1f5328ee1a277ef35ec3692bc10d2a0 26-Apr-2014 Dmitry V. Levin <ldv@altlinux.org> Check for LO_FLAGS_READ_ONLY constant

* configure.ac (AC_CHECK_DECLS): Add LO_FLAGS_READ_ONLY.
onfigure.ac
d35bdcad13caac3e167735e1f0fc50355b2f9523 26-Apr-2014 Dmitry V. Levin <ldv@altlinux.org> Compress blank lines

Suppress empty lines left after automated xlat conversion.
jm.c
esc.c
anotify.c
ile.c
notify.c
pc.c
exec.c
oop.c
em.c
td.c
et.c
rocess.c
tp.c
uota.c
eboot.c
ignal.c
ystem.c
erm.c
ime.c
63ebcfc55920544a5fd2deaba64540b671cb6d1e 26-Apr-2014 Dmitry V. Levin <ldv@altlinux.org> xlat: cleanup the aftermath of automatic conversion
ile.c
lat/mmap_flags.in
lat/open_mode_flags.in
lat/sigact_flags.in
lat/wait4_options.in
0ed617bd66624cec6138102545d73b2e2346f1f6 26-Apr-2014 Dmitry V. Levin <ldv@altlinux.org> Generate xlat/*.in files

Automatically convert xlat structures from *.c files to xlat/*.in files
using "./generate_xlat_in.sh *.c" command.
jm.c
lock.c
esc.c
anotify.c
ile.c
enerate_xlat_in.sh
notify.c
o.c
oprio.c
pc.c
exec.c
eyctl.c
oop.c
em.c
td.c
et.c
rocess.c
tp.c
uota.c
eboot.c
esource.c
csi.c
ignal.c
ock.c
tream.c
ystem.c
erm.c
ime.c
lat/access_flags.in
lat/aclcmds.in
lat/aclipc.in
lat/addrfams.in
lat/adjtimex_modes.in
lat/adjtimex_state.in
lat/adjtimex_status.in
lat/advise.in
lat/af_packet_types.in
lat/archvals.in
lat/at_flags.in
lat/atomic_ops.in
lat/baud_options.in
lat/blkpg_ops.in
lat/bootflags1.in
lat/bootflags2.in
lat/bootflags3.in
lat/cacheflush_scope.in
lat/cap_version.in
lat/capabilities.in
lat/clockflags.in
lat/clocknames.in
lat/clone_flags.in
lat/cpuclocknames.in
lat/direnttypes.in
lat/domains.in
lat/epollctls.in
lat/epollevents.in
lat/epollflags.in
lat/fan_classes.in
lat/fan_event_flags.in
lat/fan_init_flags.in
lat/fan_mark_flags.in
lat/fcntlcmds.in
lat/fdflags.in
lat/fileflags.in
lat/flockcmds.in
lat/fsmagic.in
lat/futexops.in
lat/futexwakecmps.in
lat/futexwakeops.in
lat/icmpfilterflags.in
lat/if_dqblk_valid.in
lat/if_dqinfo_valid.in
lat/iffflags.in
lat/inet_protocols.in
lat/inotify_flags.in
lat/inotify_init_flags.in
lat/ioprio_class.in
lat/ioprio_who.in
lat/ipc_msg_flags.in
lat/itimer_which.in
lat/kexec_arch_values.in
lat/kexec_flags.in
lat/key_perms.in
lat/key_reqkeys.in
lat/key_spec.in
lat/keyctl_commands.in
lat/lockfcmds.in
lat/loop_crypt_type_options.in
lat/loop_flags_options.in
lat/madvise_cmds.in
lat/mbindflags.in
lat/mctl_funcs.in
lat/mctl_lockas.in
lat/mctl_sync.in
lat/mempolicyflags.in
lat/mlockall_flags.in
lat/mmap_flags.in
lat/mmap_prot.in
lat/modem_flags.in
lat/modetypes.in
lat/modflags.in
lat/module_init_flags.in
lat/mount_flags.in
lat/move_pages_flags.in
lat/mremap_flags.in
lat/msg_flags.in
lat/msgctl_flags.in
lat/msgflags.in
lat/mtd_flags_options.in
lat/mtd_mode_options.in
lat/mtd_nandecc_options.in
lat/mtd_otp_options.in
lat/mtd_type_options.in
lat/netlink_protocols.in
lat/notifyflags.in
lat/nt_descriptor_types.in
lat/open_access_modes.in
lat/open_mode_flags.in
lat/openmodessol.in
lat/perf_event_open_flags.in
lat/personality_options.in
lat/pmsgflags.in
lat/policies.in
lat/pollflags.in
lat/prctl_options.in
lat/priorities.in
lat/ptp_flags_options.in
lat/ptrace_cmds.in
lat/ptrace_setoptions_flags.in
lat/qm_which.in
lat/quota_formats.in
lat/quotacmds.in
lat/quotatypes.in
lat/resource_flags.in
lat/resources.in
lat/schedulers.in
lat/scmvals.in
lat/semctl_flags.in
lat/semop_flags.in
lat/sg_io_dxfer_direction.in
lat/shm_flags.in
lat/shm_resource_flags.in
lat/shmctl_flags.in
lat/shutdown_modes.in
lat/sigact_flags.in
lat/sigaltstack_flags.in
lat/sigbus_codes.in
lat/sigchld_codes.in
lat/sigemt_codes.in
lat/sigev_value.in
lat/sigfpe_codes.in
lat/sigill_codes.in
lat/siginfo_codes.in
lat/sigpoll_codes.in
lat/sigprocmaskcmds.in
lat/sigprof_codes.in
lat/sigsegv_codes.in
lat/sigsys_codes.in
lat/sigtrap_codes.in
lat/sock_type_flags.in
lat/socketlayers.in
lat/sockipoptions.in
lat/sockipv6options.in
lat/sockipxoptions.in
lat/sockoptions.in
lat/sockpacketoptions.in
lat/sockrawoptions.in
lat/socksctpoptions.in
lat/socktcpoptions.in
lat/socktypes.in
lat/splice_flags.in
lat/sram_alloc_flags.in
lat/swap_flags.in
lat/sync_file_range_flags.in
lat/sysctl_kern.in
lat/sysctl_net.in
lat/sysctl_net_core.in
lat/sysctl_net_ipv4.in
lat/sysctl_net_ipv4_conf.in
lat/sysctl_net_ipv4_route.in
lat/sysctl_net_ipv6.in
lat/sysctl_net_ipv6_route.in
lat/sysctl_net_unix.in
lat/sysctl_root.in
lat/sysctl_vm.in
lat/syslog_action_type.in
lat/sysmips_operations.in
lat/tcflsh_options.in
lat/tcxonc_options.in
lat/timerfdflags.in
lat/ubi_volume_props.in
lat/ubi_volume_types.in
lat/umount_flags.in
lat/usagewho.in
lat/wait4_options.in
lat/waitid_types.in
lat/whence_codes.in
lat/xattrflags.in
lat/xfs_dqblk_flags.in
lat/xfs_quota_flags.in
297b59401c998a2154b2fd1af7b234e2fa3a9305 26-Apr-2014 Dmitry V. Levin <ldv@altlinux.org> Rename several xlat structures to avoid collisions

* bjm.c (which): Rename to qm_which.
* ipc.c (msg_flags): Rename to ipc_msg_flags.
* time.c (which): Rename to itimer_which.
jm.c
pc.c
ime.c
5153b5cd681a4091d378883d06291b5bcb963e69 26-Apr-2014 Dmitry V. Levin <ldv@altlinux.org> Enhance xlat generator

* xlat/gen.sh: Define all xlat structs not declared in defs.h as static.
Some symbolic constants are not macros, extend #ifdef check to cover
symbolic constants checked by AC_CHECK_DECLS.
Handle complex symbolic constants in SYMBOL|... form.
Handle symbolic constants in 1<<SYMBOL form.
Handle numeric constants.
Implement #unconditional directive that turns off preprocessor checks.
Implement #unterminated directive that turns off adding XLAT_END.
lat/gen.sh
3e69bdf41a1c272028d9347bc55d7f73e3c4de46 26-Apr-2014 Dmitry V. Levin <ldv@altlinux.org> Use bootstrap script consistently

Now that ./xlat/gen.sh has to be run before autoreconf,
replace all autoreconf calls with ./bootstrap call.

* bootstrap: Forward arguments to autoreconf.
* build_static_example.sh: Replace autoreconf call with bootstrap call.
* make-dist: Likewise.
* qemu_multiarch_testing/README: Likewise.
ootstrap
uild_static_example.sh
ake-dist
emu_multiarch_testing/README
761ed9ba42d00aa9cbd4daceefbbff016e7c9f12 16-Feb-2014 Mike Frysinger <vapier@gentoo.org> Implement xlat generator

* bootstrap: New file.
* xlat/gen.sh: Likewise.
* Makefile.am: Include xlat/Makemodule.am
(EXTRA_DIST): Add $(XLAT_INPUT_FILES), $(XLAT_HEADER_FILES), and
xlat/gen.sh.
akefile.am
ootstrap
lat/gen.sh
e25fb4fd8eb2ec0962cfac614e85762d7f9dbd38 30-May-2014 Dmitry V. Levin <ldv@altlinux.org> tests: fix SCM_RIGHTS test for big-endian systems

* tests/scm_rights.c (main): Send zero integer to avoid issues with
endianness.
* tests/scm_rights-fd.test: Update grep patterns.
ests/scm_rights-fd.test
ests/scm_rights.c
f23b097fc5fdc031dc795c10876d97f31b2826d8 29-May-2014 Dmitry V. Levin <ldv@altlinux.org> Decode file descriptors passed via SCM_RIGHTS control messages

* net.c (printcmsghdr): Print descriptors from SCM_RIGHTS control
messages using printfd.
* tests/scm_rights.c: New file.
* tests/scm_rights-fd.test: New test.
* tests/Makefile.am (check_PROGRAMS): Add scm_rights.
(TESTS): Add scm_rights-fd.test.
* tests/.gitignore: Add scm_rights and uio.
et.c
ests/.gitignore
ests/Makefile.am
ests/scm_rights-fd.test
ests/scm_rights.c
772e32b67b0ebf1791140e9074769cbed0871478 29-May-2014 Dmitry V. Levin <ldv@altlinux.org> tests: add a test for -c and -w options

* tests/count.test: New test.
* tests/Makefile.am (TESTS): Add it.
ests/Makefile.am
ests/count.test
e53bf23f1c33076090b51184b82af4dd98d0c51c 28-May-2014 Mark Hills <Mark.Hills@framestore.com> Optionally produce stats on syscall latency

Time spent in system time is not useful where a syscall depends on some
non-CPU resource, eg. typically open() or stat() to a network drive.

This patch adds a new flag (-w) to produce a summary of the time
difference between beginning and end of the system call (ie. latency)

This functionality has been useful to profile slow processes that
are not CPU-bound.

Signed-off-by: Mark Hills <mark.hills@framestore.com>
EWS
ount.c
efs.h
trace.1
trace.c
ac5133d0cb5c18a39f6fa9b7ca2ebcba9277a904 29-May-2014 Dmitry V. Levin <ldv@altlinux.org> Constify count_syscall function

* count.c (count_syscall): Add const qualifier to timeval argument and
rename it. Store the wall clock time spent while in syscall in separate
timeval variable.
* defs.h (count_syscall): Update prototype.
* syscall.c (trace_syscall_exiting): Update count_syscall invocation.
ount.c
efs.h
yscall.c
447db45365e37ec97c41b26b5a24e38d58e4f3ae 29-May-2014 Dmitry V. Levin <ldv@altlinux.org> Constify tv_* functions

* defs.h (tv_nz, tv_cmp, tv_float, tv_add, tv_sub, tv_mul, tv_div): Add
const qualifier to read only arguments.
* util.c (tv_nz, tv_cmp, tv_float, tv_add, tv_sub, tv_mul, tv_div):
Likewise.
efs.h
til.c
3a3b71c7d8b4d6ca2d6703008bd77b507271c0b9 28-May-2014 Dmitry V. Levin <ldv@altlinux.org> Use printstr for sethostname, setdomainname, and gethostname decoding

The argument passed to sethostname and setdomainname syscalls, as well
as the string returned by gethostname syscall, is not a pathname, so
printpathn is not the right method for its decoding.

* process.c (sys_sethostname, sys_setdomainname): Decode 1st argument
using printstr instead of printpathn.
[ALPHA] (sys_gethostname): Likewise.
rocess.c
3b09ebe724b1ee233ce2314a8b70a4dfdf9d2b07 02-May-2014 James Hogan <james.hogan@imgtec.com> Fix {get,set}rlimit decoding with unreliable SIZEOF_RLIM_T

When strace is built with large file support definitions in CFLAGS (as
may be provided by buildroot) the C library headers may expose a 64-bit
rlim_t even though the struct rlimit fields used by the system call
interface are only 32-bit. The SIZEOF_RLIM_T will then be 8 which
results in bad decoding of the getrlimit and setrlimit syscalls.

This is fixed by replacing unreliable SIZEOF_RLIM_T based checks with
checks for current_wordsize.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
onfigure.ac
efs.h
esource.c
b2ede14797b729659b0397431b28f34e57b5c4e7 13-May-2014 Masatake YAMATO <yamato@redhat.com> Enhance setns syscall decoding

* process.c (sys_setns): New function.
Decode the 2nd syscall argument using clone_flags.
* linux/syscall.h (sys_setns): New prototype.
* linux/dummy.h (sys_setns): Remove.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
inux/dummy.h
inux/syscall.h
rocess.c
985425a30bb5d380e160acde997770067388dc76 29-Apr-2014 Dmitry V. Levin <ldv@altlinux.org> mips: fix syscall entries that should have TP flag set
inux/mips/syscallent-n32.h
inux/mips/syscallent-n64.h
inux/mips/syscallent-o32.h
10b735a6f9b809ba241ca931a9a452119feebf47 29-Apr-2014 Dmitry V. Levin <ldv@altlinux.org> xtensa: fix unshare syscall entry
inux/xtensa/syscallent.h
117d13d0debe5aff4f93651eee33308c2525308a 29-Apr-2014 Dmitry V. Levin <ldv@altlinux.org> alpha, hppa, mips n64: fix waitid syscall entry
inux/alpha/syscallent.h
inux/hppa/syscallent.h
inux/mips/syscallent-n64.h
cd96f77ef8d493de4a04153f6b205b7718b311c9 29-Apr-2014 Dmitry V. Levin <ldv@altlinux.org> Add TM flag to shmat and shmdt syscall entries
inux/aarch64/syscallent1.h
inux/alpha/syscallent.h
inux/arc/syscallent.h
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/metag/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent-n32.h
inux/mips/syscallent-n64.h
inux/or1k/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/sparc/syscallent1.h
inux/tile/syscallent.h
inux/tile/syscallent1.h
inux/x32/syscallent.h
inux/x86_64/syscallent.h
inux/xtensa/syscallent.h
6556315493082df9a24dbce9dadea4d6673e9965 12-May-2014 Dmitry V. Levin <ldv@altlinux.org> Alias sys_vfork to sys_fork

* process.c (sys_vfork): Remove.
* linux/syscall.h (sys_vfork): Likewise.
* linux/dummy.h (sys_vfork): Alias to sys_fork.
* linux/alpha/syscallent.h: Fix vfork entry.
* util.c (setbpt): Do not check for sys_vfork.
* syscall.c (syscall_fixup_for_fork_exec): Likewise.
inux/alpha/syscallent.h
inux/dummy.h
inux/syscall.h
rocess.c
yscall.c
til.c
f6a63a709368d3063d1ce5f4170a909040230ca8 08-May-2014 Elliott Hughes <enh@google.com> Merge "Android.mk changes for strace update."
4e779b4c67380f09ecebc5ec9cd0f4beb9d786e7 07-May-2014 Elliott Hughes <enh@google.com> Android.mk changes for strace update.

strace needs to know what our struct sigevent looks like, and I need
to write down how to do these upstream syncs because I always forget.

Change-Id: I6107486cd05ce6fab915909474e218dc9adcec87
ndroid.mk
d39a4904fb554a37a511559f84dfe3272c5b1650 07-May-2014 Elliott Hughes <enh@google.com> Merge remote-tracking branch 'strace/master' into sync
502224d4cd4c8aaa7f017c97fc466368b88c49d9 24-Apr-2014 Calin Juravle <calin@google.com> Merge "Enable multilib support for strace test."
ee295a46deb10e5dd7055f30202fc538660c52eb 08-Apr-2014 Fengwei Yin <fengwei.yin@intel.com> Enable multilib support for strace test.

Change-Id: I3264388e53fba66277f05d53b0fb955c918c8337
Signed-off-by: Fengwei Yin <fengwei.yin@intel.com>
est/Android.mk
e51ce47b1158e8424eee314ca2f3731881355eec 17-Apr-2014 Dmitry V. Levin <ldv@altlinux.org> epoll_ctl: fix EPOLL_CTL_DEL argument decoding

* desc.c (sys_epoll_ctl): Do not parse the event structure for
EPOLL_CTL_DEL operation.

Reported-by: Марк Коренберг <socketpair@gmail.com>
esc.c
fb7ae846c66a70589ba68943680751f13a38663c 17-Apr-2014 Dmitry V. Levin <ldv@altlinux.org> Update CLOCK_* constants

* time.c (clocknames): Add CLOCK_BOOTTIME, CLOCK_REALTIME_ALARM,
CLOCK_BOOTTIME_ALARM, CLOCK_SGI_CYCLE, and CLOCK_TAI.
Fixes RH#1088455.
ime.c
7845a42b39e59e904d01e75e21f7bc7eb6462560 17-Apr-2014 Dmitry V. Levin <ldv@altlinux.org> Fix preadv/pwritev offset decoding

* util.c (printllval): Add align argument.
* defs.h (printllval): Update prototype.
(printllval_aligned, printllval_unaligned): New macros.
* file.c (sys_readahead, sys_truncate64, sys_ftruncate64, sys_fadvise64,
sys_fadvise64_64, sys_sync_file_range, sys_sync_file_range2,
sys_fallocate): Replace printllval call with printllval_aligned.
* io.c (sys_pread, sys_pwrite): Likewise.
(sys_preadv, sys_pwritev): Replace printllval call with
printllval_unaligned.
* linux/arm/syscallent.h: Set the number of preadv and pwritev
arguments to 5.
* linux/mips/syscallent-o32.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/xtensa/syscallent.h: Likewise.

Reported-by: Dima Kogan <dima@secretsauce.net>
efs.h
ile.c
o.c
inux/arm/syscallent.h
inux/mips/syscallent-o32.h
inux/powerpc/syscallent.h
inux/sh/syscallent.h
inux/xtensa/syscallent.h
til.c
cc3d59199d80588a53ee353da5d69726bd093c51 17-Apr-2014 Dmitry V. Levin <ldv@altlinux.org> tests: add a test for pread/pwrite and preadv/pwritev offset decoding

* tests/uio.c: New file.
* tests/uio.test: New test.
* tests/Makefile.am (check_PROGRAMS): Add uio.
(uio_CFLAGS): Define.
(TESTS): Add uio.test.
ests/Makefile.am
ests/uio.c
ests/uio.test
7f276d26bd17841b8ce3729d4833252da94f43c9 10-Apr-2014 Elliott Hughes <enh@google.com> Merge "Fix strace build by building "ldt.c"."
51505679672392bcbfb4a7d844a0131f8461aec4 10-Apr-2014 Elliott Hughes <enh@google.com> Fix strace build by building "ldt.c".

Change-Id: I70843b3a12467baec0e988c366ce48adfa2567ab
ndroid.mk
81a5bbbeb322b616ea826d7843964ea4e1a29f98 10-Apr-2014 Elliott Hughes <enh@google.com> Merge remote-tracking branch 'strace/master' into merge
99a0544f010cfaade3f42d08656285555bec60db 10-Apr-2014 Dmitry V. Levin <ldv@altlinux.org> Refactor LDT decoding

* configure.ac (AC_CHECK_TYPES): Remove struct user_desc.
* ldt.c: New file.
* Makefile.am (strace_SOURCES): Add ldt.c.
* mem.c: Do not include <asm/ldt.h>.
(print_ldt_entry): Remove.
(sys_modify_ldt, sys_set_thread_area, sys_get_thread_area): Move...
* ldt.c: ... here.
* process.c: Do not include <asm/ldt.h>.
(sys_clone) [I386 || X86_64 || X32]: Use print_user_desc.
akefile.am
onfigure.ac
dt.c
em.c
rocess.c
329fa3919d0da95ec32949c2092dc40dac6a9d5b 10-Apr-2014 Denys Vlasenko <dvlasenk@redhat.com> Make int3 example in comments more cut-n-pastable

I found that I use it quite often. Lets make it so that
after cut-n-pasting it into a file, there is no need
to edit the result (e.g. no need to remove C comment
chars from every line.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
f0ab10f7f1877a8f06549af1f8a41fca7eb57383 10-Apr-2014 Elliott Hughes <enh@google.com> Merge "Fix aarch64 build."
4ce18c8914f3c2b501abeae4c68bfad667a3fcc0 10-Apr-2014 Elliott Hughes <enh@google.com> Fix aarch64 build.

Change-Id: Icc9d04f489a4e3cb9d395502da1d149a23586aa3
ndroid.mk
627a9f9e91c4a1512687777a9d0b0d9da31a5a87 10-Apr-2014 Elliott Hughes <enh@google.com> Merge "Fix dangling else in x86 build."
463302b46258b3c2c205ea6b92336debef24a8fc 10-Apr-2014 Elliott Hughes <enh@google.com> Fix dangling else in x86 build.

Change-Id: Ia8c27a239fd64936dec5f31f88ef40154b128323
Signed-off-by: Elliott Hughes <enh@google.com>
rocess.c
dc55e7726efa24d6c3631a62e84f7cbce995322d 10-Apr-2014 Elliott Hughes <enh@google.com> Merge "Restore "linux/ioctlent.h"."
95a4b78bf5eace423409ac3f432d616575a54683 10-Apr-2014 Elliott Hughes <enh@google.com> Restore "linux/ioctlent.h".

Change-Id: I474a83cbd5e08960638fa09f87ca6214d161389a
inux/ioctlent.h
9d3094670d4e287584e12a83e3c62117b3babc97 10-Apr-2014 Elliott Hughes <enh@google.com> Merge remote-tracking branch 'strace/master' into cp

Conflicts:
configure.ac
file.c
linux/dummy.h
mem.c
net.c
process.c
signal.c
syscall.c

Change-Id: Ib7acdaefedb621e2dd0c292b80781d0d6e1f7e5c
15bc2812698431b17b414fa98b972146102cb8c0 09-Apr-2014 Dmitry V. Levin <ldv@altlinux.org> mips: enable decoding of set_thread_area

* linux/dummy.h [MIPS]: Do not redirect sys_set_thread_area to printargs.
* mem.c [MIPS] (sys_set_thread_area): Define.
inux/dummy.h
em.c
662221cab36826a502588279aaab4f3b9f942a60 09-Apr-2014 Dmitry V. Levin <ldv@altlinux.org> x86_64, x32: enable decoding of modify_ldt, get_thread_area, and set_thread_area

* linux/dummy.h [X86_64 || X32]: Do not redirect sys_modify_ldt,
sys_get_thread_area, and sys_set_thread_area to printargs.
inux/dummy.h
f94e84780e96221a4b3e8eb39bfa2d227d367f69 09-Apr-2014 Dmitry V. Levin <ldv@altlinux.org> x32: decode clone LDT user_desc entries for x86 processes

* mem.c [X32]: Include asm/ldt.h.
[X32] (print_ldt_entry, sys_modify_ldt, sys_set_thread_area,
sys_get_thread_area): Define.
* process.c [X32]: Include asm/ldt.h.
(sys_clone) [X32]: Decode LDT entry if current_personality == 1.
em.c
rocess.c
44655a451e84c518878b4ff19319ad5cfc666a82 05-Apr-2014 Elliott Hughes <enh@google.com> x86-64: decode clone LDT user_desc entries for x86 processes

* mem.c [X86_64]: Include asm/ldt.h.
[X86_64] (print_ldt_entry, sys_modify_ldt, sys_set_thread_area,
sys_get_thread_area): Define.
* process.c [X86_64]: Include asm/ldt.h.
(sys_clone) [X86_64]: Decode LDT entry if current_personality == 1.

Signed-off-by: Elliott Hughes <enh@google.com>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
em.c
rocess.c
2c4fb257663ad108d17a60afafd9ace181e397d4 09-Apr-2014 Dmitry V. Levin <ldv@altlinux.org> x32: fix clone(2) argument order for x86 processes

Apply the same fix that was made for x86_64.

* process.c [X32] (ARG_CTID, ARG_TLS): Take current
personality into account.
rocess.c
b563325f0a5497b6134f24bea03a86b21272960f 05-Apr-2014 Elliott Hughes <enh@google.com> x86-64: fix clone(2) argument order for x86 processes

Without this patch, strace claims that parent_tidptr == tls, which is
clearly wrong. It is expected that parent_tidptr == child_tidptr.

* process.c [X86_64] (ARG_CTID, ARG_TLS): Take current
personality into account.

Signed-off-by: Elliott Hughes <enh@google.com>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
rocess.c
391c0d8cc5d78b20025355025ba43f0c9897126d 04-Apr-2014 Elliott Hughes <enh@google.com> aarch64: Fix decoding of arm struct stat64

We need to handle this situation more like x86-64. 32-bit arm and i386
actually have a common struct stat64, except the arm one must not be
packed. Additionally, on aarch64 the 32-bit personality is personality 0.

Signed-off-by: Elliott Hughes <enh@google.com>
ile.c
c29a38f9c8832029377b1f3055ef64fa054dca1b 04-Apr-2014 Elliott Hughes <enh@google.com> Merge "HAVE_STAT64 should be undefined for x86_64"
3e0d870bf3721620847662f1524a64062db7399c 04-Apr-2014 Elliott Hughes <enh@google.com> Merge "Revert "Fix to allow x86_64 to build.""
77ab48f46ef0ef1a61f8102a2d1ac108e6059f78 04-Apr-2014 Elliott Hughes <enh@google.com> Revert "Fix to allow x86_64 to build."

This reverts commit 2c13c4ba29a97c738062f177a39221100c6b7907.

Change-Id: I1b269a8fdc2d51ffa88a26adb1f5dbb2682b0342
ile.c
0160e161081c08480bb4fd63a292040c7611f6ec 19-Mar-2014 Dmitry V. Levin <ldv@altlinux.org> ARM EABI: disable OABI support by default

OABI is rarely used in ARM EABI systems nowadays, so disable its support
by default. Add --enable-arm-oabi option to enable ARM OABI support.

* configure.ac: New option --enable-arm-oabi.
* syscall.c (get_scno) [ARM]: Check ENABLE_ARM_OABI macro defined by
configure instead of undocumented STRACE_KNOWS_ONLY_EABI macro.
onfigure.ac
yscall.c
fe88e05d26f522930f30e8588c194e6c542db9e2 17-Mar-2014 Christopher Ferris <cferris@google.com> Merge "Fix to allow x86_64 to build."
2c13c4ba29a97c738062f177a39221100c6b7907 17-Mar-2014 Christopher Ferris <cferris@google.com> Fix to allow x86_64 to build.

Change-Id: I9ed3d29763469c36a99e726bb68d38fe166ce9d0
ile.c
faab22caa897aade7f2b7bed7bc55812add15a55 13-Mar-2014 Calin Juravle <calin@google.com> Merge "Added utility target to strace tests to make life easier when testing."
a07cfcc133f4adf5116a32b199c4230e022475da 12-Mar-2014 Elliott Hughes <enh@google.com> Fix stat decoding for LP64 bionic

Patch fb642bb6d63f7ffe2228bf48a6008bc8f56f67ff fixed building with
HAVE_STAT64 for aarch64 with uapi kernel headers but not x86_64.
The workaround needed to be applied to all LP64 architectures, not
just aarch64. This patch fixes that and adds an explanatory comment.

Signed-off-by: Elliott Hughes <enh@google.com>
ile.c
18612f277eb2aec2d0f647c4b936d9f49330a434 12-Mar-2014 Calin Juravle <calin@google.com> Added utility target to strace tests to make life easier when testing.

The new target is expected to be invoked (and verified) manually as the
tests can't be eaily automated. See comments for details.

Bug: 13281743
Change-Id: I9e36dd6165c99e00273fbc41e0b78c21f425ac16
est/Android.mk
ad4b17253bbd1e273629223f89042a2496dc5c81 12-Mar-2014 Fengwei Yin <fengwei.yin@intel.com> HAVE_STAT64 should be undefined for x86_64

Change-Id: Iedbd3851a1f2bf865ef0d1c8c615ccbb31badac0
Signed-off-by: Fengwei Yin <fengwei.yin@intel.com>
ndroid.mk
2394a3d0e5ee5684a42b36218ada2dcf3b4e705f 11-Mar-2014 Masatake YAMATO <yamato@redhat.com> Decode protocol argument for PF_NETLINK sockets

* net.c (protocols): Rename to inet_protocols.
[PF_NETLINK] (netlink_protocols): New xlat structure.
(sys_socket): Rename protocols to inet_protocols.
[PF_NETLINK]: Decode protocol argument using netlink_protocols.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
Acked-by: Mike Frysinger <vapier@gentoo.org>
et.c
033fb910a291a26d714d277c748683e67903f44c 11-Mar-2014 Dmitry V. Levin <ldv@altlinux.org> Cleanup socketpair decoding

The only supported domain for socketpair syscall is AF_UNIX, so
no decoding related to other domains is required for socketpair.

* net.c (sys_socketpair): Remove support for PF_INET and PF_IPX domains,
print the protocol argument as is.
et.c
bc091e3ce1481615568ef6e35636fc45262250ff 11-Mar-2014 Dmitry V. Levin <ldv@altlinux.org> printsiginfo: add SIGSYS decoding

* configure.ac (AC_CHECK_MEMBERS): Check for siginfo_t.si_syscall.
* signal.c (SYS_SECCOMP): Define if not yet defined.
(sigsys_codes): new xlat structure.
(printsiginfo): Decode SIGSYS.
onfigure.ac
ignal.c
80c0d3f61a2e6052fff47b4937543e2c915d06ae 11-Mar-2014 Elliott Hughes <enh@google.com> Merge "Factor out printing of si_pid and si_uid members of siginfo_t"
f16be7a89e1431bd7f655697605e86cd539f9aaa 11-Mar-2014 Dmitry V. Levin <ldv@altlinux.org> Factor out printing of si_pid and si_uid members of siginfo_t

* signal.c (printsigsource): New function.
(printsiginfo): Use it.
ignal.c
b9d4d21a611e852e4ef6c021688e4f45f9a137ed 11-Mar-2014 Dmitry V. Levin <ldv@altlinux.org> Update siginfo codes

* signal.c (siginfo_codes): Add SI_DETHREAD.
ignal.c
4a524dbbdf3ef72259eea1e515f4fd8aee034f93 11-Mar-2014 Dmitry V. Levin <ldv@altlinux.org> Factor out printing of si_pid and si_uid members of siginfo_t

* signal.c (printsigsource): New function.
(printsiginfo): Use it.
ignal.c
7d92c314b098e01b56821514d3a193deff1e703b 10-Mar-2014 Elliott Hughes <enh@google.com> Merge "Improve SI_TIMER decoding"
af0c5944654c0d00ba43354be4cbbc715f616e6d 10-Mar-2014 Elliott Hughes <enh@google.com> Improve SI_TIMER decoding

Decode siginfo_t more clearly for si_code SI_TIMER.
The 'pid' is actually a POSIX timer id, and the 'uid' is actually the
overrun.
Also factor out the si_value dumping so it's the same for every si_code.

Change-Id: I5c9e4cd5922f5048e40330b3762600acd6df5dad
Signed-off-by: Elliott Hughes <enh@google.com>
ignal.c
4dd1e89cb87c9af63da7b18f1251ad446527c9e0 10-Mar-2014 Elliott Hughes <enh@google.com> Improve SI_TIMER decoding

Decode siginfo_t more clearly for si_code SI_TIMER.
The 'pid' is actually a POSIX timer id, and the 'uid' is actually the
overrun.
Also factor out the si_value dumping so it's the same for every si_code.

Signed-off-by: Elliott Hughes <enh@google.com>
ignal.c
040bfbbcaa39a3bd37689627c46d8cfa52e692eb 04-Mar-2014 Elliott Hughes <enh@google.com> Merge "aarch64: fix decoding of arm syscall numbers"
ae05be65a8eb1a3f724763206baa36f61e515bf8 04-Mar-2014 Elliott Hughes <enh@google.com> aarch64: fix decoding of arm syscall numbers

If an aarch64 strace is tracing a process using the arm personality, it
also needs to call the shuffle_scno function for the ARM-specific
syscalls.

* syscall.c (shuffle_scno): Define on AARCH64.
(get_scno) [AARCH64]: Call shuffle_scno when the tracee is in 32-bit mode.

Signed-off-by: Elliott Hughes <enh@google.com>
yscall.c
4c2c97ee17b55536e4cb96de63e8d10ba4ea32e9 04-Mar-2014 Elliott Hughes <enh@google.com> Merge "Define SIZEOF_OFF_T in Android.mk."
556f9aede01e3512b96efe452d3488f88065a3f2 04-Mar-2014 Elliott Hughes <enh@google.com> Define SIZEOF_OFF_T in Android.mk.

Change-Id: Ie991972c939565e28f6ad1c9f86531bc014faf66
ndroid.mk
ffb0f85bd0c13bf8c088a3670c43db25751ac706 04-Mar-2014 Elliott Hughes <enh@google.com> Merge "Fix fcntl decoding"
28cd8be4dad2458e956928c44664e0122192160e 04-Mar-2014 Dmitry V. Levin <ldv@altlinux.org> Fix fcntl decoding

Assume that F_SETLK64, F_SETLKW64, and F_GETLK64 are either defined or
not defined altogether.
Do not assume that sizeof(off_t) < sizeof(long long) when F_SETLK64 is
undefined.

This change fixes build with musl libc on x86.

* configure.ac: Define SIZEOF_OFF_T.
* desc.c (USE_PRINTFLOCK64): New macro.
(struct flock64, printflock64): Do not define on X32.
(printflock): Replace X32 specific workaround with SIZEOF_OFF_T check.
Fix printing off_t members of struct flock.
(sys_fcntl): Use USE_PRINTFLOCK64.
onfigure.ac
esc.c
f9c4841fd28de9a9314958e0de39428d1ec22662 04-Mar-2014 Elliott Hughes <enh@google.com> Merge "sys_fcntl: remove F_FREESP and F_FREESP64 support"
f08b49d1d6325a29be41ad32fb20cccb5bb630be 01-Mar-2014 Dmitry V. Levin <ldv@altlinux.org> sys_fcntl: remove F_FREESP and F_FREESP64 support

F_FREESP and F_FREESP64 fcntl commands are not available in Linux
and therefore the code implementing their decoding is useless.
Besides that, F_FREESP64 decoding is too complicated to support.

* desc.c (fcntlcmds): Remove F_FREESP and F_FREESP64.
Remove F_FREESP64 from the check whether to define struct flock64.
(sys_fcntl): Remove F_FREESP and F_FREESP64 support.

Change-Id: I60d732fca1864e9ffc5990157a5b45852b4efc5c
esc.c
7a28f7f128fcca6ef0010b98cb21adcf8c3b8ae1 04-Mar-2014 Elliott Hughes <enh@google.com> aarch64: fix decoding of arm syscall numbers

If an aarch64 strace is tracing a process using the arm personality, it
also needs to call the shuffle_scno function for the ARM-specific
syscalls.

* syscall.c (shuffle_scno): Define on AARCH64.
(get_scno) [AARCH64]: Call shuffle_scno when the tracee is in 32-bit mode.

Signed-off-by: Elliott Hughes <enh@google.com>
yscall.c
54cabefc753cc72417bb610cb9f7873f4389e9f5 04-Mar-2014 Dmitry V. Levin <ldv@altlinux.org> Fix fcntl decoding

Assume that F_SETLK64, F_SETLKW64, and F_GETLK64 are either defined or
not defined altogether.
Do not assume that sizeof(off_t) < sizeof(long long) when F_SETLK64 is
undefined.

This change fixes build with musl libc on x86.

* configure.ac: Define SIZEOF_OFF_T.
* desc.c (USE_PRINTFLOCK64): New macro.
(struct flock64, printflock64): Do not define on X32.
(printflock): Replace X32 specific workaround with SIZEOF_OFF_T check.
Fix printing off_t members of struct flock.
(sys_fcntl): Use USE_PRINTFLOCK64.
onfigure.ac
esc.c
d8bd388c8f74eda312ae2e36f9a1b6d6627aca8a 03-Mar-2014 Elliott Hughes <enh@google.com> Merge "Actually activate the struct stat64 fix."
a6ae1594c21ea4d6e04d18acb5abf5eee8d30a4a 03-Mar-2014 Elliott Hughes <enh@google.com> Actually activate the struct stat64 fix.

ab1a5702e54be2909c7226c1ada3c750931f07fb made it possible for us to
turn this on, but because that was an upstream cherrypick, it didn't
actually turn it on.

Change-Id: Ie067e25db57e81ac4951cf6a7c29d5d4cbd7233e
ndroid.mk
ec21e07441030009a53786905ccbeaaed5e0ee9c 01-Mar-2014 Dmitry V. Levin <ldv@altlinux.org> sys_fcntl: remove F_FREESP and F_FREESP64 support

F_FREESP and F_FREESP64 fcntl commands are not available in Linux
and therefore the code implementing their decoding is useless.
Besides that, F_FREESP64 decoding is too complicated to support.

* desc.c (fcntlcmds): Remove F_FREESP and F_FREESP64.
Remove F_FREESP64 from the check whether to define struct flock64.
(sys_fcntl): Remove F_FREESP and F_FREESP64 support.
esc.c
0ac91450dc1489a0b0cf66f7ebd4f9f131828438 01-Mar-2014 Elliott Hughes <enh@google.com> Merge "Fix build."
fa8e439c1559c81e9a30e8ea4a81554294333f05 01-Mar-2014 Elliott Hughes <enh@google.com> Fix build.

There's too much weird code in here.

Change-Id: If1850c3cde96b832abfecb17a2ae719f86d12e32
est/Android.mk
67d6926987f5aef993c54da02adea890d0bc98f7 01-Mar-2014 Elliott Hughes <enh@google.com> Merge "Add multi-personality support to struct old_sigaction decoding"
fb2850dd44e0887d220d730e7ba8bc10fce1b478 01-Mar-2014 Elliott Hughes <enh@google.com> Add multi-personality support to struct old_sigaction decoding

struct sigaction is another structure that contains members
whose size differs between 32-bit and 64-bit personalities.

* signal.c [HAVE_SIGACTION] (old_sigaction32): New structure.
[HAVE_SIGACTION] (decode_old_sigaction): Decode 32-bit struct
old_sigaction on a 64-bit host.

Signed-off-by: Elliott Hughes <enh@google.com>
ignal.c
96ba149f23a8daeca0563a9ed1706e84c4cdc874 01-Mar-2014 Elliott Hughes <enh@google.com> Merge "Fix decoding of arm struct stat64 by aarch64 strace."
ab1a5702e54be2909c7226c1ada3c750931f07fb 01-Mar-2014 Elliott Hughes <enh@google.com> Fix decoding of arm struct stat64 by aarch64 strace.

aarch64's uapi header files have a struct stat but no struct stat64.
To correctly decode a 32-bit process' s struct stat64 we need
HAVE_STAT64, but then the build fails because there is no struct stat64.
Luckily, the aarch64 struct stat is structurally equivalent to the arm
struct stat64, so we can just reuse that.

* file.c [AARCH64] (stat64): Define to stat.

Change-Id: I80dce9d5d771f76aca95821908084fba9da95fa6
Signed-off-by: Elliott Hughes <enh@google.com>
ile.c
f07711a217678c77d45c79b0795310b609a284d8 01-Mar-2014 Elliott Hughes <enh@google.com> Merge "Remove obsolete ioctlsort.c"
cfdc692ae1185388540668ba5ca099942b5c36a1 28-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Remove obsolete ioctlsort.c

The generic version of ioctlsort.c became obsolete after commit
v4.6-240-g5afdf12 that removed its last non-Linux users.

* ioctlsort.c: Remove.
* Makefile.am (EXTRA_DIST): Remove ioctlsort.c.

Change-Id: Ia719939e3d85f9ee1617aeabf96465fcadf12fec
Reported-by: Elliott Hughes <enh@google.com>
akefile.am
octlsort.c
2d97f5f2c01b31b55f896231256f9444c9b96265 01-Mar-2014 Elliott Hughes <enh@google.com> Merge "Build the strace tests."
858a5c77bfa0aef527442d66432ab217b2e9beb8 01-Mar-2014 Elliott Hughes <enh@google.com> Build the strace tests.

(Optionally, of course.)

Change-Id: I8f4a98f38aeb1899290a72b9b4fdbd86c65cf44a
ndroid.mk
est/Android.mk
458b3f2fd964d23cf779c235ecb2b8f1c40d994c 01-Mar-2014 Elliott Hughes <enh@google.com> Add multi-personality support to struct old_sigaction decoding

struct sigaction is another structure that contains members
whose size differs between 32-bit and 64-bit personalities.

* signal.c [HAVE_SIGACTION] (old_sigaction32): New structure.
[HAVE_SIGACTION] (decode_old_sigaction): Decode 32-bit struct
old_sigaction on a 64-bit host.

Signed-off-by: Elliott Hughes <enh@google.com>
ignal.c
fb642bb6d63f7ffe2228bf48a6008bc8f56f67ff 01-Mar-2014 Elliott Hughes <enh@google.com> Fix decoding of arm struct stat64 by aarch64 strace.

aarch64's uapi header files have a struct stat but no struct stat64.
To correctly decode a 32-bit process' s struct stat64 we need
HAVE_STAT64, but then the build fails because there is no struct stat64.
Luckily, the aarch64 struct stat is structurally equivalent to the arm
struct stat64, so we can just reuse that.

* file.c [AARCH64] (stat64): Define to stat.

Signed-off-by: Elliott Hughes <enh@google.com>
ile.c
1d912aff16f51b055668cf639d0ee89ab262efe1 28-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Remove obsolete ioctlsort.c

The generic version of ioctlsort.c became obsolete after commit
v4.6-240-g5afdf12 that removed its last non-Linux users.

* ioctlsort.c: Remove.
* Makefile.am (EXTRA_DIST): Remove ioctlsort.c.

Reported-by: Elliott Hughes <enh@google.com>
akefile.am
octlsort.c
1dd8f5f7706403fc986345acc33efea1467a6e03 28-Feb-2014 Elliott Hughes <enh@google.com> Merge "Update strace's list of ioctls."
7c5383286e1ab88ef2b871ca02286fcddc232734 28-Feb-2014 Elliott Hughes <enh@google.com> Update strace's list of ioctls.

This gets us the Android-specific ioctls. We don't decode the arguments,
but at least now instead of seeing something like this:

ioctl(3, 0xc0046209, 0xbeb8ba28) = 0
ioctl(3, 0x40046205, 0xbeb8ba2c) = 0

You see something like this:

ioctl(3, BINDER_VERSION, 0xbe908a28) = 0
ioctl(3, BINDER_SET_MAX_THREADS, 0xbe908a2c) = 0

Change-Id: I3a3bc9786a46b785fb49b9902f9301dd54986649
ndroid.mk
inux/ioctlent.h
f0006c4495398d56bfd83450fcbf4b6c32cd5b96 28-Feb-2014 Elliott Hughes <enh@google.com> Merge "Fix stack_t decoding and sigset_t decoding."
5a1392221308acd0cd74a43f2c985bd316adaa77 28-Feb-2014 Elliott Hughes <enh@google.com> Fix stack_t decoding and sigset_t decoding.

Corresponds to the following upstream patches:

commit d153bfc505dd30dabc2509091e67460c3ca1675b
Author: Dmitry V. Levin <ldv@altlinux.org>
Date: Wed Feb 26 22:29:27 2014 +0000

Add multi-personality support to stack_t decoding

stack_t is one of many structures that contain members
whose size differs between 32-bit and 64-bit personalities.

* signal.c (print_stack_t): Decode 32-bit stack_t on a 64-bit host.

Reported-by: Elliott Hughes <enh@google.com>

commit 38593e942ad4b16b2c3c43ea521167368771cbfb
Author: Dmitry V. Levin <ldv@altlinux.org>
Date: Wed Feb 26 16:51:28 2014 +0000

Rewrite signal mask decoding without sigset_t

The sigset_t provided by libc is not quite convenient.
In glibc, sigset_t is an array with space for 1024 bits, which is much
more than required: all architectures supported by Linux have only 64
signals except MIPS, which has 128.
In bionic libc, LP32 sigset_t is only 4 bytes long, which is less than
necessary.

With this change, signal mask is decoded without use of intermediate
sigset_t structure, which saves us some cpu cycles in case of glibc with
its inflated sigset_t, and enables build with libcs where sigset_t is
broken.

Old implementation used to check each signal number in the given signal
mask twice using sigismember().
New implementation is based on popcount and next_set_bit() so it's
noticeably faster.

* configure.ac: Check for __builtin_popcount.
* signal.c: Ensure that NSIG >= 32.
(sprintsigmask, sprintsigmask_long, printsigmask): Remove.
(popcount32, sprintsigmask_n): New functions.
(tprintsigmask_addr, sprintsigmask_val, tprintsigmask_val): New macros.
(print_sigset_addr_len, sys_sigsetmask, sys_sigreturn, sys_siggetmask,
sys_sigsuspend, sys_sigprocmask, decode_new_sigaction): Update to use
new signal mask decoding interface.
* tests/sigaction.c (main): Add a test with almost filled signal mask.
* tests/sigaction.awk: Update.

Change-Id: I4598a97290b3d8415b4946a3e5121248cd97e7b9
onfigure.ac
ignal.c
ests/sigaction.awk
ests/sigaction.c
d153bfc505dd30dabc2509091e67460c3ca1675b 26-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Add multi-personality support to stack_t decoding

stack_t is one of many structures that contain members
whose size differs between 32-bit and 64-bit personalities.

* signal.c (print_stack_t): Decode 32-bit stack_t on a 64-bit host.

Reported-by: Elliott Hughes <enh@google.com>
ignal.c
4ec6b04695752db37f4a1b0d421a20b962727680 27-Feb-2014 Elliott Hughes <enh@google.com> Merge "Upgrade to upstream tip of tree strace."
5dec78d0c2663930cd1bbcecbbcee47f68bc52f3 27-Feb-2014 Elliott Hughes <enh@google.com> Upgrade to upstream tip of tree strace.

Change-Id: I56ccbfbb64885c61f160145f181e42dab78adefb
ndroid.mk
ndroid.patch
OPYRIGHT
REDITS
REDITS.in
hangeLog
ACKING-scripts
akefile.am
EWS
OTICE
ORTING
EADME-Android
EADME-hacking
ODO
io.c
jm.c
lock.c
uild_static_example.sh
onfigure.ac
ebian/changelog
ebian/compat
ebian/control
ebian/copyright
ebian/rules
ebian/source/format
ebian/strace-udeb.install
ebian/strace.docs
ebian/strace.examples
ebian/strace.install
ebian/strace.manpages
ebian/strace64.install
ebian/strace64.manpages
ebian/watch
efs.h
esc.c
rrnoent.sh
anotify.c
ile.c
it-set-file-times
it-version-gen
itlog-to-changelog
mport-Android.sh
notify.c
o.c
octl.c
oprio.c
pc.c
exec.c
eyctl.c
inux/aarch64/ioctlent.h.in
inux/alpha/errnoent.h
inux/alpha/ioctlent.h.in
inux/alpha/signalent.h
inux/alpha/syscallent.h
inux/arc/ioctlent.h.in
inux/arc/syscallent.h
inux/arm/errnoent1.h
inux/arm/ioctlent.h.in
inux/arm/ioctlent1.h
inux/arm/signalent1.h
inux/arm/syscallent.h
inux/arm/syscallent1.h
inux/avr32/ioctlent.h.in
inux/avr32/syscallent.h
inux/bfin/ioctlent.h.in
inux/bfin/syscallent.h
inux/dummy.h
inux/dummy_check.sh
inux/fanotify.h
inux/hppa/errnoent.h
inux/hppa/ioctlent.h.in
inux/hppa/signalent.h
inux/hppa/syscallent.h
inux/i386/ioctlent.h.in
inux/i386/syscallent.h
inux/ia64/ioctlent.h.in
inux/ia64/signalent.h
inux/ia64/syscallent.h
inux/inotify.h
inux/ioctlent.h.in
inux/kexec.h
inux/keyctl.h
inux/m68k/ioctlent.h.in
inux/m68k/syscallent.h
inux/metag/ioctlent.h.in
inux/metag/syscallent.h
inux/microblaze/ioctlent.h.in
inux/microblaze/syscallent.h
inux/mips/ioctlent.h.in
inux/mips/syscallent-o32.h
inux/or1k/ioctlent.h.in
inux/or1k/syscallent.h
inux/personality.h
inux/powerpc/errnoent1.h
inux/powerpc/ioctlent.h.in
inux/powerpc/ioctlent1.h
inux/powerpc/signalent1.h
inux/powerpc/syscallent.h
inux/powerpc/syscallent1.h
inux/ptp_clock.h
inux/reboot.h
inux/s390/ioctlent.h.in
inux/s390/syscallent.h
inux/s390x/ioctlent.h.in
inux/s390x/syscallent.h
inux/sh/ioctlent.h.in
inux/sh/syscallent.h
inux/sh64/ioctlent.h.in
inux/sh64/syscallent.h
inux/sparc/dummy2.h
inux/sparc/errnoent.h
inux/sparc/errnoent1.h
inux/sparc/gen.pl
inux/sparc/ioctlent.h.in
inux/sparc/ioctlent1.h
inux/sparc/signalent.h
inux/sparc/signalent1.h
inux/sparc/syscall1.h
inux/sparc/syscallent.h
inux/sparc/syscallent1.h
inux/sparc64/dummy2.h
inux/sparc64/errnoent.h
inux/sparc64/errnoent1.h
inux/sparc64/errnoent2.h
inux/sparc64/ioctlent.h.in
inux/sparc64/ioctlent1.h
inux/sparc64/ioctlent2.h
inux/sparc64/signalent.h
inux/sparc64/signalent1.h
inux/sparc64/signalent2.h
inux/sparc64/syscall1.h
inux/sparc64/syscallent.h
inux/sparc64/syscallent1.h
inux/sparc64/syscallent2.h
inux/syscall.h
inux/tile/errnoent1.h
inux/tile/ioctlent.h.in
inux/tile/ioctlent1.h
inux/tile/signalent1.h
inux/tile/syscallent.h
inux/tile/syscallent1.h
inux/x32/ioctlent.h.in
inux/x86_64/ioctlent.h.in
inux/xtensa/ioctlent.h.in
inux/xtensa/syscallent.h
oop.c
4/includedir.m4
4/long_long.m4
4/stat.m4
4/statfs.m4
4/warnings.m4
ake-dist
em.c
td.c
et.c
athtrace.c
roc.c
rocess.c
tp.c
emu_multiarch_testing/README
emu_multiarch_testing/hdc.dir/init
emu_multiarch_testing/hdc.dir/init2
emu_multiarch_testing/make-hdc-img.sh
emu_multiarch_testing/parallel-build-hdc-img.sh
uota.c
eboot.c
esource.c
csi.c
ignal.c
ignalent.sh
ock.c
trace.1
trace.c
tream.c
yscall.c
yscallent.sh
ystem.c
erm.c
est/.gitignore
est/Makefile
est/README
est/childthread.c
est/clone.c
est/fork.c
est/leaderkill.c
est/mmap_offset_decode.c
est/mtd.c
est/procpollable.c
est/select.c
est/sfd.c
est/sig.c
est/sigkill_rain.c
est/sigreturn.c
est/skodic.c
est/threaded_execve.c
est/ubi.c
est/vfork.c
est/wait_must_be_interruptible.c
est/x32_lseek.c
est/x32_mmap.c
ests/.gitignore
ests/Makefile.am
ests/detach-running.test
ests/detach-sleeping.test
ests/detach-stopped.test
ests/init.sh
ests/net-accept-connect.c
ests/net-fd.test
ests/net.test
ests/ptrace_setoptions.test
ests/qual_syscall.test
ests/run.sh
ests/set_ptracer_any.c
ests/sigaction.awk
ests/sigaction.c
ests/sigaction.test
ests/stat.test
ests/strace-f.test
ime.c
til.c
sprintf.c
late.el
38593e942ad4b16b2c3c43ea521167368771cbfb 26-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Rewrite signal mask decoding without sigset_t

The sigset_t provided by libc is not quite convenient.
In glibc, sigset_t is an array with space for 1024 bits, which is much
more than required: all architectures supported by Linux have only 64
signals except MIPS, which has 128.
In bionic libc, LP32 sigset_t is only 4 bytes long, which is less than
necessary.

With this change, signal mask is decoded without use of intermediate
sigset_t structure, which saves us some cpu cycles in case of glibc with
its inflated sigset_t, and enables build with libcs where sigset_t is
broken.

Old implementation used to check each signal number in the given signal
mask twice using sigismember().
New implementation is based on popcount and next_set_bit() so it's
noticeably faster.

* configure.ac: Check for __builtin_popcount.
* signal.c: Ensure that NSIG >= 32.
(sprintsigmask, sprintsigmask_long, printsigmask): Remove.
(popcount32, sprintsigmask_n): New functions.
(tprintsigmask_addr, sprintsigmask_val, tprintsigmask_val): New macros.
(print_sigset_addr_len, sys_sigsetmask, sys_sigreturn, sys_siggetmask,
sys_sigsuspend, sys_sigprocmask, decode_new_sigaction): Update to use
new signal mask decoding interface.
* tests/sigaction.c (main): Add a test with almost filled signal mask.
* tests/sigaction.awk: Update.
onfigure.ac
ignal.c
ests/sigaction.awk
ests/sigaction.c
d354130b3ac060051b55cda46c45ab5f5574548d 26-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Fix build with Bionic libc

Add generic tests for fopen64 and fputs_unlocked functions to fix build
with Bionic libc that does not provide them.

* configure.ac (AC_CHECK_FUNCS): Add fopen64 and fputs_unlocked.
* strace.c [_LARGEFILE64_SOURCE]: Use fopen instead of fopen64
if !HAVE_FOPEN64.
Use fputs instead of fputs_unlocked if !HAVE_FPUTS_UNLOCKED.
* vsprintf.c: Use fputs instead of fputs_unlocked
if !HAVE_FPUTS_UNLOCKED.

Reported-by: Elliott Hughes <enh@google.com>
onfigure.ac
trace.c
sprintf.c
a78d777c869829a3f0320e1793adb44fb57ac950 18-Feb-2014 James Yang <james.yang@freescale.com> powerpc64: fix 64-bit process detection on embedded

* syscall.c (get_scno) [POWERPC64]: Fix 64-bit process detection
on embedded powerpc.

Signed-off-by: James Yang <james.yang@freescale.com>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
yscall.c
fdb896e577d4154b4dbd4350c9828e7df3b7da84 26-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Do not compile scsi ioctl decoding if <scsi/sg.h> is not available

Add a generic test for <scsi/sg.h> availability to fix build with
Bionic libc that does not provide <scsi/sg.h>.

* configure.ac (AC_CHECK_HEADERS): Add scsi/sg.h.
* ioctl.c (ioctl_decode): Do not call scsi_ioctl if !HAVE_SCSI_SG_H.
* scsi.c: Do not compile scsi ioctl decoding if !HAVE_SCSI_SG_H.

Reported-by: Elliott Hughes <enh@google.com>
onfigure.ac
octl.c
csi.c
12bd9d8762821599f72272f231a3bf5862b7a197 19-Feb-2014 Elliott Hughes <enh@google.com> Merge "Fix build."
3616ed519e6694680cac89bd4b5815b2f61b886a 19-Feb-2014 Elliott Hughes <enh@google.com> Fix build.

I submitted the wrong patch set on the previous change.

Change-Id: I19d742e9c2c94335d134fdff4ae1e4572053789f
ndroid.mk
f64d6a982d8875eec6086c7f1caca7e03ce6dde2 19-Feb-2014 Elliott Hughes <enh@google.com> Merge "Remove LFS64 hacks."
a7c6e5143cef6d0b62e8812b8dee13f22e31d5db 14-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Revert "Add support for Altera's Nios-II softcore architecture"

The patch originally submitted by Ezequiel García was OK, but I somehow
managed to mangle it so that most of the patch was not applied.

According to Ezequiel García, an architecture port based on the generic
syscall ABI is in progress.

This reverts commit 61e426e87ac81be4b4ff9de581635b4ea585624f.
inux/nios2/ioctlent.h.in
inux/nios2/syscallent.h
b0c2a9dd5db760d2f5125604affcecd9ede24f9d 08-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> tests: tighten sigaction check

* tests/sigaction.awk: Check that input conatins all expected lines.
ests/sigaction.awk
5c7f627f050372dcc57513391e39c93fe360ccb9 08-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Fix sigaction reporting on non-x86 architectures

If SA_RESTORER is not defined by libc headers but defined by kernel
headers, use the definition provided by kernel headers for proper
sigaction decoding.

* signal.c [!SA_RESTORER]: Define to ASM_SA_RESTORER if the latter is
defined, regardless of architecure.
ignal.c
ab3953b0476a9502c9cd1c59317fa2e98ae301fc 08-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Check for SA_RESTORER definition in <asm/signal.h>

Kernel header <asm/signal.h> cannot be included from regular code
because it conflicts with libc headers, but SA_RESTORER is needed in
signal.c, so SA_RESTORER value is forwarded from <asm/signal.h> to
config.h using a configure check.

* configure.ac (ASM_SA_RESTORER): Define if SA_RESTORER is defined
in <asm/signal.h>.
onfigure.ac
ad138ccb80377bca8fc0a097baaeb3507e817ad9 07-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> arm: fix compilation warning

Fix "dereferencing type-punned pointer will break strict-aliasing rules"
warning introduced by commit v4.8-54-g670b21b.

* signal.c (sys_sigreturn) [ARM]: Avoid dereferencing type-punned pointers.
ignal.c
900ec1b0428b1ba2676d00b8c7cc4b0f9a89c543 06-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> kexec: fix typo

* kexec.c (print_kexec_segments) [SUPPORTED_PERSONALITIES == 1]: Fix typo.
exec.c
61e426e87ac81be4b4ff9de581635b4ea585624f 06-Feb-2014 Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> Add support for Altera's Nios-II softcore architecture

This commit adds strace support for Altera's Nios-II official
kernel port as found in git://git.rocketboards.org/linux-socfpga.git

Notice that this an out-of-tree kernel architectural port, and uses the
legacy (non-generic) system call ABI. In particular, the port doesn't
support PTRACE_GETREGSET, so the implementation is based on PTRACE_GETREGS.

Given it's mandatory for new architectures to support the generic
syscall ABI and PTRACE_GETREGSET, if the nios2 architecure is ever
mainlined, the strace support will have to be re-factored accordingly.

* linux/nios2/ioctlent.h.in: New file.
* linux/nios2/syscallent.h: Likewise.
* Makefile.am (EXTRA_DIST): Add linux/nios2/ioctlent.h.in and
linux/nios2/syscallent.h.
* configure.ac: Add NIOS2 to the list of supported architectures.
* defs.h [NIOS2]: Use register reading system.
* process.c (struct_user_offsets): Add NIOS2 support.
* syscall.c (get_regs, get_scno, get_syscall_args,
get_syscall_result, get_error): Likewise.
* util.c (change_syscall): Likewise.
* mem.c (sys_getpagesize): Define on NIOS2.
* system.c [NIOS2] (sys_cacheflush, sys_nios2cmpxchg): New functions.

Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
Acked-by: Mike Frysinger <vapier@gentoo.org>
inux/nios2/ioctlent.h.in
inux/nios2/syscallent.h
3acf4035ea020f54a5fcfd203952e04c4dad48c3 05-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Implement add_key, keyctl, and request_key decoding

* keyctl.c: New file.
* linux/keyctl.h: Likewise.
* Makefile.am (strace_SOURCES): Add keyctl.c.
(EXTRA_DIST): Add linux/keyctl.h.
* linux/dummy.h (sys_add_key, sys_keyctl, sys_request_key): Remove.
* linux/syscall.h (sys_add_key, sys_keyctl, sys_request_key): New
prototypes.
akefile.am
eyctl.c
inux/dummy.h
inux/keyctl.h
inux/syscall.h
fc4727de60fa79b0f638a2c78a3edf865dc75943 05-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Implement ioprio_get and ioprio_set decoding

* ioprio.c: New file.
* Makefile.am (strace_SOURCES): Add ioprio.c.
* linux/dummy.h (sys_ioprio_get, sys_ioprio_set): Remove.
* linux/syscall.h (sys_ioprio_get, sys_ioprio_set): New prototypes.
akefile.am
oprio.c
inux/dummy.h
inux/syscall.h
f67502e4045393fb46d73e876128dfd539a63b04 05-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Implement finit_module decoding

* bjm.c (module_init_flags): New xlat structure.
(sys_finit_module): New function.
* linux/dummy.h (sys_finit_module): Remove.
* linux/syscall.h (sys_finit_module): New prototype.
jm.c
inux/dummy.h
inux/syscall.h
2f332e937a549f7073a74ebeb66d0a4fe70040c9 05-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Cleanup inotify syscalls decoding

* linux/inotify.h: New file.
* file.c (inotify_modes, inotify_init_flags, sys_inotify_add_watch,
sys_inotify_rm_watch, sys_inotify_init1): Move...
* inotify.c: ... here.
(inotify_modes): Rename to inotify_flags, convert to XLAT form.
(inotify_init_flags): Convert to XLAT form.
* Makefile.am (strace_SOURCES): Add inotify.c.
(EXTRA_DIST): Add linux/inotify.h.
akefile.am
ile.c
notify.c
inux/inotify.h
9aaf88c0004f0d9856947aad7d618fb84d5dba40 05-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Enhance reboot decoding

* linux/reboot.h: New file.
* system.c (bootflags1, bootflags2, bootflags3, sys_reboot): Move...
* reboot.c: ... here.
(bootflags2, bootflags3): Update constants.
* Makefile.am (strace_SOURCES): Add reboot.c.
(EXTRA_DIST): Add linux/reboot.h.
akefile.am
inux/reboot.h
eboot.c
ystem.c
90aa9f4d72e26581ea0a39c02db625d7bd4e2962 05-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Implement kexec_load decoding

* kexec.c: New file.
* linux/kexec.h: Likewise.
* Makefile.am (strace_SOURCES): Add kexec.c.
(EXTRA_DIST): Add linux/kexec.h.
* linux/dummy.h (sys_kexec_load): Remove.
* linux/syscall.h (sys_kexec_load): New prototype.
akefile.am
exec.c
inux/dummy.h
inux/kexec.h
inux/syscall.h
d21f186a94086fae25788e14c584fcce52bd67b6 05-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Use prepared editions of recently imported linux headers

* linux/fanotify.h: Replace with edition prepared with headers_install.sh.
* linux/personality.h: Likewise.
inux/fanotify.h
inux/personality.h
99db95dd039d8fd700e7759bf4969abb55b979b9 05-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Implement fanotify_init and fanotify_mark decoding

* fanotify.c: New file.
* linux/fanotify.h: Likewise.
* Makefile.am (strace_SOURCES): Add fanotify.c.
(EXTRA_DIST): Add linux/fanotify.h.
* defs.h (print_dirfd): New prototype.
* file.c (print_dirfd): Export.
* linux/dummy.h (sys_fanotify_init, sys_fanotify_mark): Remove.
* linux/syscall.h (sys_fanotify_init, sys_fanotify_mark): New
prototypes.
* pathtrace.c (pathtrace_match): Handle sys_fanotify_init and
sys_fanotify_mark.
akefile.am
efs.h
anotify.c
ile.c
inux/dummy.h
inux/fanotify.h
inux/syscall.h
athtrace.c
594527353359d9a6aad516992e09c393e11f3bd2 05-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Use XLAT_END macro

Automatically update all xlat structures using the following sed regexp:
s/^[[:space:]]*{[[:space:]]*0[[:space:]]*,[[:space:]]*NULL[[:space:]]*,\?[[:space:]]*}[[:space:]]*,\?[[:space:]]*/\tXLAT_END/
jm.c
lock.c
esc.c
ile.c
o.c
pc.c
oop.c
em.c
td.c
et.c
rocess.c
tp.c
uota.c
esource.c
csi.c
ignal.c
ock.c
tream.c
ystem.c
erm.c
ime.c
82b1ea7c3fc854d5ea805f490d351d443701d60b 05-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Itroduce XLAT_END macro to make xlat structures more compact

* defs.h (XLAT_END): New macro.
efs.h
2a32eaa157b2da63f181c37c37ecead405740d68 05-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Convert personality_options to XLAT form

* linux/personality.h: New file.
* Makefile.am (EXTRA_DIST): Add it.
* system.c: Include <linux/personality.h>.
(personality_options): Update PER_* constants, convert to XLAT form.
akefile.am
inux/personality.h
ystem.c
9f56d87cc42eec3226477bdf26bfb094bc66f66a 05-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Convert futexops to XLAT form

* process.c: Define FUTEX_*_PRIVATE macros.
(futexops): Convert to XLAT form.
rocess.c
bae549e91b1bf0d2261d1137c7f2bf08180ad9e6 05-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Convert sigev_value to XLAT form

* time.c (sigev_value): Convert to XLAT form.
(printsigevent32, printsigevent): Update use of sigev_value.
ime.c
bce0cc6a2d103e1da4c15a4c5396fdc5676294f7 05-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Use XLAT macro

Automatically convert all xlat structures to XLAT form
using the following sed regexp:
s/^[[:space:]]*{[[:space:]]*\([^",}[:space:]]\+\)[[:space:]]*,[[:space:]]*"\1",\?[[:space:]]*}[[:space:]]*/\tXLAT(\1)/
jm.c
lock.c
esc.c
ile.c
o.c
pc.c
oop.c
em.c
td.c
et.c
rocess.c
tp.c
uota.c
esource.c
csi.c
ignal.c
ock.c
tream.c
ystem.c
erm.c
ime.c
a69ddcb672f326418aaa74f399f600f69d074758 05-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> Introduce XLAT macro to ease maintenance of xlat structures

* defs.h (XLAT): New macro.

Suggested-by: Mike Frysinger <vapier@gentoo.org>
efs.h
b88a6f877eb08e6d45130374fc1a1867371db703 31-Jan-2014 Stefan Sørensen <stefan.sorensen@spectralink.com> Decode ptp ioctls

* defs.h (ptp_ioctl): New prototype.
* ioctl.c (ioctl_decode): Call ptp_ioctl when code is '='.
* Makefile.am (strace_SOURCES): Add ptp.c.
(EXTRA_DIST): Add linux/ptp_clock.h.
* ptp.c: New file.
* linux/ptp_clock.h: New file.

Signed-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
akefile.am
efs.h
octl.c
inux/ptp_clock.h
tp.c
a5fea9060f382fb57f3c4c6492184cd2a7f92b40 03-Feb-2014 Stefan Sørensen <stefan.sorensen@spectralink.com> Decode dynamic posix clocks

* time.c (cpuclocknames): New xlat structure.
(printclockname): New function that decodes posix clock names,
including dynamic fd encoded clocks.
(sys_clock_settime, sys_clock_gettime, sys_clock_nanosleep,
sys_clock_adjtime, sys_timer_create, sys_timerfd, sys_timerfd_create):
Use it.

Signed-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com>
ime.c
cdf022afa471ce2fd4c50e2b6b4500f4cfb0d56d 31-Jan-2014 Stefan Sørensen <stefan.sorensen@spectralink.com> Update ADJ_* constants

* time.c (adjtimex_modes): Add ADJ_TAI, ADJ_SETOFFSET, ADJ_MICRO,
ADJ_NANO, ADJ_OFFSET_SS_READ.

Signed-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com>
ime.c
894c7e3858ede412e37a1752c716bed7f30a9605 01-Feb-2014 Philippe Ombredanne <pombredanne@nexb.com> Add decoding of sockets descriptor 'paths' for network calls

* net.c (sys_bind, sys_listen, do_accept, sys_send, sys_sendto,
sys_sendmsg, sys_sendmmsg, sys_recv, sys_recvfrom, sys_recvmsg,
sys_recvmmsg, sys_shutdown, sys_getsockopt, sys_setsockopt): Decode
socket descriptor arguments using printfd.
* pathtrace.c (pathtrace_match): Also check TRACE_NETWORK syscalls
that take socket descriptor arguments.
* tests/net-fd.test: New test for socket descriptor arguments decoding.
* tests/Makefile.am (TESTS): Add net-fd.test.
(net-fd.log): New dependency on net.log.

Signed-off-by: Philippe Ombredanne <pombredanne@nexb.com>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
et.c
athtrace.c
ests/Makefile.am
ests/net-fd.test
123d401508a17403c9cafaa79a4bd771bce37c7e 02-Feb-2014 Dmitry V. Levin <ldv@altlinux.org> tests: rename all tests so that their names end in .test suffix

Due to automake limitations, some features work only for tests
that end in one of the suffixes listed in TEST_EXTENSIONS.

* tests/detach-running: Rename to detach-running.test.
* tests/detach-sleeping: Rename to detach-sleeping.test.
* tests/detach-stopped: Rename to detach-stopped.test.
* tests/net: Rename to net.test.
* tests/ptrace_setoptions: Rename to ptrace_setoptions.test.
* tests/qual_syscall: Rename to qual_syscall.test.
* tests/sigaction.sh: Rename to sigaction.test.
* tests/stat: Rename to stat.test.
* tests/strace-f: Rename to strace-f.test.
* tests/Makefile.am (TESTS): Update.
(LOG_COMPILER): Rename to TEST_LOG_COMPILER.
ests/Makefile.am
ests/detach-running
ests/detach-running.test
ests/detach-sleeping
ests/detach-sleeping.test
ests/detach-stopped
ests/detach-stopped.test
ests/net
ests/net.test
ests/ptrace_setoptions
ests/ptrace_setoptions.test
ests/qual_syscall
ests/qual_syscall.test
ests/sigaction.sh
ests/sigaction.test
ests/stat
ests/stat.test
ests/strace-f
ests/strace-f.test
aa4633c76e6fe34463cbe4acda113b7e7ab42642 31-Jan-2014 Mike Frysinger <vapier@gentoo.org> net: add more sockopt options

This syncs with the defines as available in linux-3.13.

* net.c (sockipoptions): Add IP_IPSEC_POLICY, IP_XFRM_POLICY,
IP_PASSSEC, IP_TRANSPARENT, IP_ORIGDSTADDR, IP_RECVORIGDSTADDR,
IP_MINTTL, IP_NODEFRAG, IP_UNBLOCK_SOURCE, IP_BLOCK_SOURCE,
IP_ADD_SOURCE_MEMBERSHIP, IP_DROP_SOURCE_MEMBERSHIP, MCAST_JOIN_GROUP,
MCAST_BLOCK_SOURCE, MCAST_UNBLOCK_SOURCE, MCAST_LEAVE_GROUP,
MCAST_JOIN_SOURCE_GROUP, MCAST_LEAVE_SOURCE_GROUP, IP_MULTICAST_ALL,
IP_UNICAST_IF.
et.c
5c23a17c3cf290deb87bc43d6c84613a228d8ae1 30-Jan-2014 Colin Cross <ccross@android.com> Merge "external/strace: rewrite make rules for multilib"
d6b039cc23d8da969290924a9379cbe10633c292 30-Jan-2014 Colin Cross <ccross@android.com> external/strace: rewrite make rules for multilib

Rewrite the make rules to use variables like LOCAL_*_arch and
LOCAL_*_32 to support a multilib build.

Change-Id: I75cea40f0118bd9bcb2b12a11829779a7060068b
ndroid.mk
0309c906303a5e195f1c460f99a49210d0998673 24-Jan-2014 Ben Cheng <bccheng@google.com> Merge "Add missing 'ifeq' for arm64."
d92d713ab24328197d96c9bb984c2e426de7ce62 24-Jan-2014 Ben Cheng <bccheng@google.com> Add missing 'ifeq' for arm64.

Change-Id: I7a311f0156b6dbe874d70bff11255fee765391cd
ndroid.mk
5151c547dd5ed39147a29fd70fcbed7f269acaf7 24-Jan-2014 Colin Cross <ccross@android.com> Merge "strace: fix x86 build"
f204f4995a5e14852e323ae5a58c77e9c036e443 24-Jan-2014 Colin Cross <ccross@android.com> strace: fix x86 build

Typo when moving arm64 clause caused build to work only for arm or
arm64.

Change-Id: I767b3555a0fd8cfbb194e4b007ec65dd76d4d1b0
ndroid.mk
e543b812290ecf5acdd9c366fd43ef69b04b5950 24-Jan-2014 Colin Cross <ccross@android.com> Merge "strace: rename aarch64 target to arm64"
579dfe8b639182f6314f8d4941873d25845ab875 23-Jan-2014 Colin Cross <ccross@android.com> strace: rename aarch64 target to arm64

Rename aarch64 build targets to arm64. The gcc toolchain is still
aarch64.

Change-Id: Ia92d8a50824e5329cf00fd6f4f92eae112b7f3a3
ndroid.mk
bf49054db9ae20a833e9cf87ba40b9439d765aeb 24-Jan-2014 Colin Cross <ccross@android.com> Merge "strace: don't add $(KERNEL_HEADERS) to the include path"
00a76e04c83700beaa8d9eea35d1030b50d287b3 23-Jan-2014 Colin Cross <ccross@android.com> strace: don't add $(KERNEL_HEADERS) to the include path

Kernel headers are already in the include path, and manually
adding them again can cause a multiarch build to fail.

Change-Id: I9f5d6f2db82fab2c17b45e890f671696cf7eecb4
ndroid.mk
f27b151b28a5bc1e3aa054dd32b15bbafb904830 18-Jan-2014 Elliott Hughes <enh@google.com> Remove LFS64 hacks.

Bug: 11865851
Change-Id: Id5940323813d24ca201401d2fc6564dc95e6d8b1
ndroid.mk
f1cc1ca12cd643aa388c5cd5577430a8f66ffbd6 11-Jan-2014 Elliott Hughes <enh@google.com> Merge "Remove some more bionic hacks that are no longer needed."
02f3b9b55219c3db7b4762a9dcf094972d8dae8e 11-Jan-2014 Elliott Hughes <enh@google.com> Remove some more bionic hacks that are no longer needed.

Change-Id: Ifda79aed5a9246d5c1ce4575386248b2893b4c0a
ndroid.patch
pc.c
ime.c
4ee743a040fc20663de1490e46dba003e25aee32 11-Jan-2014 Elliott Hughes <enh@google.com> Merge "Build strace for aarch64 too."
a7f55554b4b89cbab21a693c223c1a39641932ec 10-Jan-2014 Elliott Hughes <enh@google.com> Build strace for aarch64 too.

Change-Id: Ie0f775ec37805b64bd7a96c312cac12f620dfb0b
ndroid.mk
4934863445c61edc46761ed20f40c1fe7256a3df 09-Jan-2014 Elliott Hughes <enh@google.com> Merge "Upgrade to strace 4.8."
15fc6a2add5cc636435b120075d2c27637528b11 09-Jan-2014 Elliott Hughes <enh@google.com> Upgrade to strace 4.8.

* Changes in behavior
* In case of normal strace termination, when the trace output is
redirected to a pipe, strace now closes it and waits for the pipe
process termination before exit.

* Improvements
* Implemented tracing using PTRACE_SEIZE API (when available).
* Implemented more reliable PTRACE_GETREGSET-based process personality
detection on x86-64 and x32 (when available).
* Added -e trace=memory option for tracing memory mapping related syscalls.
* Documented -b option.
* Allowed exit status messages to be suppressed by giving -q option twice.
* Added AArch64 architecture support
(addresses Debian bug #693074 and Fedora bug #969858).
* Added support for OpenRISC 1000, Meta, and Xtensa architectures.
* Added tilegx personality support for Tile.
* Enhanced support of NOMMU architectures.
* Enhanced decoding of getdents, mmap, perf_event_open, ptrace, and
quotactl syscalls.
* Added new syscall entries to match Linux 3.9.
* Regenerated the list of common ioctl names from Linux 3.9.
* Updated the list of errno constants.
* Updated lists of AF_*, MADV_*, MAP_*, MSG_*, MS_*, PF_*, PR_*,
PTRACE_O_*, and TCP_* constants.
* Implemented decoding of UBI ioctls.
* Removed redundant "*32" ioctl names.

* Bug fixes
* Fixed ERESTARTNOINTR leaking to userspace on ancient kernels
(addresses Fedora bug #659382).
* Fixed kernel release string parsing
(addresses Debian bug #702309).
* Fixed decoding of *xattr syscalls
(addresses Fedora bug #885233).
* Fixed handling of files with 64-bit inode numbers by 32-bit strace
(addresses Fedora bug #912790).
* Fixed tracing forks on SPARC.
* Fixed decoding of fadvise64, fallocate, ftruncate64, io_submit, pread,
preadv, pwrite, pwritev, readahead, sigaltstack, sync_file_range, sysctl,
and truncate64 syscalls.
* Fixed categories of multiple syscalls on most of supported architectures.
* Fixed decoding of non-native 32-bit personality recv[m]msg syscalls.
* Fixed decoding of multiple 32-bit personality syscalls on x32.
* Fixed decoding of long long syscall arguments on ARM, MIPS/o32, PowerPC,
S390x, and Tile architectures.
* Fixed semtimedop decoding on S390x.
* Fixed sram_alloc decoding on Blackfin.
* Fixed build when process_vm_readv is a stab.
* Fixed build with older versions of libaio.h.

Change-Id: I48abffaccddd616663000dcd0cc14964cae0dcd1
ndroid.mk
ndroid.patch
OPYING
REDITS
hangeLog
EWS
EADME
jm.c
lock.c
ount.c
efs.h
esc.c
ile.c
mport-Android.sh
o.c
octl.c
pc.c
inux/aarch64/errnoent1.h
inux/aarch64/ioctlent1.h
inux/aarch64/signalent1.h
inux/aarch64/syscallent.h
inux/aarch64/syscallent1.h
inux/arm/syscallent.h
inux/dummy.h
inux/errnoent.h
inux/i386/syscallent.h
inux/ioctlent-filter.awk
inux/ioctlent.sh
inux/mips/syscallent-compat.h
inux/mips/syscallent-n32.h
inux/mips/syscallent-n64.h
inux/mips/syscallent-o32.h
inux/mips/syscallent.h
inux/mtd-abi.h
inux/subcall.h
inux/syscall.h
inux/ubi-user.h
inux/x32/errnoent1.h
inux/x32/ioctlent.h.in
inux/x32/ioctlent1.h
inux/x32/signalent1.h
inux/x32/syscallent.h
inux/x32/syscallent1.h
inux/x86_64/errnoent1.h
inux/x86_64/errnoent2.h
inux/x86_64/ioctlent1.h
inux/x86_64/ioctlent2.h
inux/x86_64/signalent1.h
inux/x86_64/signalent2.h
inux/x86_64/syscallent.h
inux/x86_64/syscallent1.h
inux/x86_64/syscallent2.h
oop.c
em.c
td.c
et.c
athtrace.c
rocess.c
uota.c
esource.c
ignal.c
trace.1
trace.c
trace.spec
tream.c
yscall.c
ystem.c
til.c
sprintf.c
35861683b0d702e03314ec9b381a88ca5a615b25 09-Jan-2014 Elliott Hughes <enh@google.com> Merge "Make it possible to build strace for x86-64."
10bd42d0e743697d1b541eac35d7889f17d70ca6 09-Jan-2014 Elliott Hughes <enh@google.com> Make it possible to build strace for x86-64.

Change-Id: I0221cd4a9c38e99ab5939d308b24216100e50dab
ndroid.mk
ndroid.patch
efs.h
ile.c
mport-Android.sh
inux/x32/errnoent.h
inux/x32/errnoent1.h
inux/x32/ioctlent.h.in
inux/x32/ioctlent1.h
inux/x32/signalent.h
inux/x32/signalent1.h
inux/x32/syscallent.h
inux/x32/syscallent1.h
til.c
596133416968af4ddbb3c19af5caf288174e8241 08-Jan-2014 Elliott Hughes <enh@google.com> Merge "Upgrade to strace 4.7."
2b4bb1c445ee16339efd76ec04834606bcb9bc46 10-Dec-2013 Chris Dearman <chris.dearman@imgtec.com> mips: fix sigaction reporting

MIPS userland uses the same sigaction structure with a full signal
mask for old_sigaction and new_sigaction and does does not have
an sa_restorer field.

These changes have been tested on MIPS O32 big/little endian, MIPS N64
big endian and x86-64.

* signal.c (old_sigaction) [MIPS]: Add definition for MIPS.
(decode_old_sigaction) [MIPS]: Print sa_mask according to its definition.
(new_sigaction) [MIPS]: Add definition for MIPS.

Signed-off-by: Chris Dearman <chris.dearman@imgtec.com>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
ignal.c
ac655a878e15007a5517e449920707598d7c5024 07-Jan-2014 Dmitry V. Levin <ldv@altlinux.org> Factor out struct sigaction printing code

* signal.c [HAVE_SIGACTION] (decode_old_sigaction): New function.
[HAVE_SIGACTION] (sys_sigaction): Use it.
(decode_new_sigaction): New function.
(sys_rt_sigaction): Use it.
ignal.c
66a15a5bb832032591e57a4fc2c6ec70bce0732a 07-Jan-2014 Dmitry V. Levin <ldv@altlinux.org> tests: add a test for rt_sigaction output

Since "struct sigaction" varies between architectures, rt_sigaction
decoding sometimes produces incorrect output. This test is expected
to catch basic rt_sigaction decoding bugs.

Based on a patch proposed by Chris Dearman.

* tests/sigaction.c: New file.
* tests/sigaction.awk: Likewise.
* tests/sigaction.sh: New test.
* tests/Makefile.am (check_PROGRAMS): Add sigaction.
(TESTS): Add sigaction.sh.
(EXTRA_DIST): Add sigaction.awk.
* tests/.gitignore: Add sigaction.
ests/.gitignore
ests/Makefile.am
ests/sigaction.awk
ests/sigaction.c
ests/sigaction.sh
bb0c2d52fc596f5e21652486c0b6a0b3e3b7e4cb 08-Jan-2014 Elliott Hughes <enh@google.com> Upgrade to strace 4.7.

* Changes in behavior
* strace no longer suspends waitpid until there is a child
for waitpid'ing process to collect status from.
* strace no longer detaches from a tracee which is supposed
to be going to die.
* strace now issues a new message: "+++ exited with EXITCODE +++"
which shows exact moment strace got exit notification,
analogous to existing "+++ killed by SIG +++" message.

* Improvements
* Added x32 personality support (x86_64 architecture).
* Added -y and -P options to print file descriptor paths and
filter by those paths.
* Added -I option to control strace interactivity.
* Allowed -p option to take comma or whitespace-separated list of PIDs.
* Added strace_log_merge script helper to merge timestamped "strace -ff"
log files.
* Implemented decoding of clock_adjtime, get_robust_list, migrate_pages,
preadv, prlimit64, process_vm_readv, process_vm_writev, pwritev,
recvmmsg, recvmsg, rt_tgsigqueueinfo, sendmmsg, setns, set_robust_list,
sched_rr_get_interval, splice, syslog, tee and vmsplice syscalls.
* Enhanced decoding of capget, capset, getrlimit, flistxattr, io_submit,
listxattr, setrlimit and swapon syscalls.
* Implemented decoding of loop and mtd ioctls.
* Added syscall entries for new linux syscalls.
* Added syscall entries for direct socket system calls on powerpc.
* Updated the list of errno constants.
* Updated lists of MSG_*, STA_*, and TCP_* constants.
* Regenerated the list of ioctl names from Linux 3.3.
* Enhanced switching between processes with different personalities.
* Enhanced signals reporting by using short signal names.
* Made ERESTART* messages more descriptive.
* Made parsing of numbers from strings more robust.
* Added support for compat_statfs64 and statfs64.f_flags.
* Changed read of data blocks to use single process_vm_readv syscall
(when available) instead of several PTRACE_PEEKDATA operations.
* Changed read of registers on x86 and x86-64 to use single PTRACE_GETREGS
operation instead of several PTRACE_PEEKUSER operations.
* Applied various optimizations to make strace work faster.

* Bug fixes
* Implemented proper handling of real SIGTRAPs on kernels supporting
PTRACE_O_TRACESYSGOOD.
(Addresses Fedora bug #162774).
* Fixed sockaddr_un.sun_path name in decoded output.
(Addresses Debian bug #554946).
* Fixed to avoid potential core file clobbering on exit.
(Addresses Debian bug #656398).
* Fixed a typo in documentation.
(Addresses Debian bug #653309).
* Fixed decoding of timer id returned by timer_create.
* Fixed epoll_create1, epoll_wait and epoll_pwait decoding.
* Fixed *at syscalls flags decoding.
* Fixed ARM EABI 64-bit syscall's arguments decoding.
* Fixed semtimedop decoding on s390.
* Fixed osf_sigprocmask decoding on alpha.
* Fixed ipc and socket subcall decoding on several architectures.
* Corrected syscall entries for epoll_pwait, epoll_create, epoll_ctl,
epoll_wait, mincore, mlockall, prctl, reboot, sendfile, sendfile64,
sendmsg, sgetmask, ssetmask, swapon, tgkill and tkill syscalls.
* Corrected io_* syscall entries on ARM.
* Fixed PID prefix printing in "strace -oLOG -ff -p1 -p2 -p3" case.
* Fixed logging of unfinished lines in "strace -oLOG -ff" case.
* Fixed build when libaio-devel is not available.
* Fixed configure checks for PTRACE_* constants.
* Fixed compilation warnings remained on several architectures.

* Portability
* Removed all non-Linux code. After years of neglect, that dead code
just hampered further strace development.
* Linux kernel >= 2.6.18 is recommended. Older versions might still
work but they haven't been thoroughly tested with this release.

Change-Id: Ic2287760ba9f604ede83894670b8b382febf6099
ndroid.mk
ndroid.patch
OPYRIGHT
REDITS
hangeLog
NSTALL
EWS
EADME
EADME-linux-ptrace
jm.c
lock.c
ount.c
efs.h
esc.c
ile.c
mport-Android.sh
o.c
octl.c
octlsort.c
pc.c
inux/arm/syscallent.h
inux/arm/syscallent1.h
inux/dummy.h
inux/errnoent.h
inux/i386/syscallent.h
inux/ioctlent.sh
inux/ioctlsort.c
inux/mips/ioctlent.sh
inux/mips/syscallent.h
inux/mtd-abi.h
inux/sh/syscallent.h
inux/syscall.h
inux/x86_64/errnoent1.h
inux/x86_64/errnoent2.h
inux/x86_64/gentab.pl
inux/x86_64/ioctlent1.h
inux/x86_64/ioctlent2.h
inux/x86_64/signalent1.h
inux/x86_64/signalent2.h
inux/x86_64/syscallent.h
inux/x86_64/syscallent1.h
inux/x86_64/syscallent2.h
oop.c
em.c
td.c
et.c
athtrace.c
rocess.c
uota.c
esource.c
csi.c
ignal.c
ock.c
trace-graph
trace-log-merge
trace.1
trace.c
trace.spec
tream.c
yscall.c
ystem.c
erm.c
ime.c
til.c
sprintf.c
69142ea5f7fff4d7460cc34c2545fc7c6d77a2a1 08-Jan-2014 Elliott Hughes <enh@google.com> Merge "Remove an unnecessary C library workaround and regenerate the patch."
31c5a2858ef827ed711db5addc24aec11588e7f9 07-Jan-2014 Elliott Hughes <enh@google.com> Remove an unnecessary C library workaround and regenerate the patch.

Change-Id: I800b8ef26b169eaef902f85eaf8b3864482e35ec
ndroid.patch
jm.c
ignal.c
yscall.c
til.c
b5530a1f8983e5692c37f73b9fa664ee0605d8fb 02-Jan-2014 Kirill A. Shutemov <kirill.shutemov@linux.intel.com> mem: add missed MAP_HUGETLB mmap flag

* mem.c (mmap_flags): Add MAP_HUGETLB mmap flag.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Acked-by: Mike Frysinger <vapier@gentoo.org>
em.c
94e246ac57b52346144fece3549820ed04b13058 31-Dec-2013 Mike Frysinger <vapier@gentoo.org> Delete old PTRACE_{PEEK,POKE}USR logic

The code base has settled on PTRACE_{PEEK,POKE}USER (with an E) and has
logic in defs.h to make sure it's set sanely. Delete this old logic as
the defs.h takes care of it now.

* process.c: Delete PTRACE_PEEKUSR/PTRACE_POKEUSR defines.
* signal.c: Likewise.
* syscall.c: Delete PTRACE_PEEKUSR define.
* util.c: Likewise.
rocess.c
ignal.c
yscall.c
til.c
5e7470386ed8fc11c90fef345a5476ec8703c901 31-Dec-2013 Mike Frysinger <vapier@gentoo.org> Decode the O_PATH flag

* file.c (open_mode_flags): Add O_PATH.
ile.c
f9d9299aa4a29b67f86395504c1e4443ddf32061 12-Dec-2013 Elliott Hughes <enh@google.com> Merge "Clean up strace sigaction output"
2f063cfda5a6f48f4a1eef6c394c0361243b2ee8 05-Oct-2013 Chris Dearman <chris.dearman@imgtec.com> Clean up strace sigaction output

Search include/{arch} before include to find arch specific include files
The MIPS struct sigaction is common between bionic and the kernel
MIPS has no sa_restorer field
Fix formatting of struct sigaction output

Signed-off-by: Chris Dearman <chris.dearman@imgtec.com>
Change-Id: Iac88382ce4640193a578bf5b608d7f9d02f0af37
ndroid.mk
ignal.c
12fa8bf10aedcc6a5937c135e13e28ab54576bac 20-Nov-2013 Elliott Hughes <enh@google.com> Merge "Remove an Android hack and support building with uapi headers too."
f9ddf987e3bd182307d7ca968d2ec0e0980b448d 20-Nov-2013 Elliott Hughes <enh@google.com> Remove an Android hack and support building with uapi headers too.

Change-Id: Id7a809a3f46c2795e3752a913c0acebc59df49aa
efs.h
rocess.c
5b35147cad3a34688ec5c649145453eae96dc6b2 13-Nov-2013 Dmitry V. Levin <ldv@altlinux.org> Remove unused configure checks

* configure.ac (AC_CHECK_FUNCS): Remove _sys_siglist and sys_siglist.
(AC_CHECK_DECLS): Likewise.
onfigure.ac
03ef0b2665363adf6100bc4af479a14b5f17bc27 13-Nov-2013 Dmitry V. Levin <ldv@altlinux.org> Assume that <sys/ptrace.h> provides a valid ptrace prototype

We used to explicitly list architectures where <sys/ptrace.h> from glibc
is known to provide a valid prototype for ptrace, and use a homegrown
replacement for all the rest. Situation seems to be better nowadays,
glibc is not the only libc available, so let's use ptrace prototype from
<sys/ptrace.h> by default, leaving the replacement for rare broken cases
if any.

* defs.h: Use ptrace prototype workaround iff
NEED_PTRACE_PROTOTYPE_WORKAROUND is defined.
efs.h
0506f0f430c15677c7724f9c4500093e0e7e15d3 12-Nov-2013 Dmitry V. Levin <ldv@altlinux.org> Stop using _LFS64_LARGEFILE

There is only one place left in the code where strace guesses whether
libc provides LFS64 functions and structures. The most natural thing to
do there is to check for _LARGEFILE64_SOURCE - the macro provided by
glibc. Other libc implementations that provide nondegenerate LFS64
interfaces are expected to define this macro as well.

* defs.h (_LFS64_LARGEFILE): Remove.
* strace.c: Use _LARGEFILE64_SOURCE instead of _LFS64_LARGEFILE.
efs.h
trace.c
157f98aac598261de1703e212683ad5a1f067acb 12-Nov-2013 Dmitry V. Levin <ldv@altlinux.org> Define truncate64, ftruncate64, and getdents64 decoders unconditionally

These decoders are referenced by most architectures, there were no
undefined references so far because _LFS64_LARGEFILE appears to be
always defined by glibc when _GNU_SOURCE is defined.

* file.c (sys_truncate64, sys_ftruncate64, sys_getdents64): Define
unconditionally.
ile.c
594eb8f8f882e61fe89f08c9a524f73af43790f9 12-Nov-2013 Dmitry V. Levin <ldv@altlinux.org> Define printflock64 only if it is referenced by other code

* configure.ac (AC_CHECK_TYPES): Add struct flock64.
* desc.c (HAVE_F_SETLK64, HAVE_F_SETLKW64, HAVE_F_GETLK64): New macros.
[!HAVE_STRUCT_FLOCK64] (struct flock64): Define.
(printflock64): Define only if referenced by other code.
(sys_fcntl): Handle F_FREESP64, F_SETLK64, F_SETLKW64, and F_GETLK64 iff
these constants are defined and differ from their non-64bit versions.
onfigure.ac
esc.c
6974bd4f5fae1e78791cf64a6aebc1da2ded25fe 12-Nov-2013 Dmitry V. Levin <ldv@altlinux.org> Make PTRACE_PEEKUSER/PTRACE_POKEUSER checks less glibc specific

* configure.ac (AC_CHECK_DECLS): Add PTRACE_PEEKUSER and
PTRACE_POKEUSER.
* defs.h: Define PTRACE_PEEKUSER and PTRACE_POKEUSER only if
they are not provided by <sys/ptrace.h>.

Reported by John Spencer.
onfigure.ac
efs.h
840a253bacdd107f90628dd3d5371d03fdca48ab 12-Nov-2013 Dmitry V. Levin <ldv@altlinux.org> Remove unneeded redefinitions of IPPROTO_* macros

IPPROTO_* macros are defined by <netinet/in.h>, no need to redefine
them.

* net.c (IPPROTO_EGP, IPPROTO_PUP, IPPROTO_IDP, IPPROTO_IGMP,
IPPROTO_RAW, IPPROTO_MAX): Remove.

Reported by John Spencer.
et.c
437ae19fc86ae9977e6de25518782f4f8291b20f 12-Nov-2013 Dmitry V. Levin <ldv@altlinux.org> Remove unused AC_OFF_T_IS_LONG_LONG configure check

* configure.ac: Remove AC_OFF_T_IS_LONG_LONG.
* m4/long_long.m4: Likewise.
onfigure.ac
4/long_long.m4
70e84c4e251829d3ccb954637209a9dd47dd37a0 12-Nov-2013 Dmitry V. Levin <ldv@altlinux.org> Remove unused code

* configure.ac (AC_CHECK_TYPES): Remove struct opthdr and
struct t_opthdr.
* net.c (print_sock_optmgmt): Remove.
onfigure.ac
et.c
e2de3bdd121f8decb8c33c0e1ecc0520f7827bd3 12-Nov-2013 Dmitry V. Levin <ldv@altlinux.org> Use struct sigcontext instead of struct sigcontext_struct

* configure.ac (AC_CHECK_TYPES): Remove struct sigcontext_struct.
* signal.c (sys_sigreturn) [S390 || S390X || POWERPC || ALPHA): Replace
struct sigcontext_struct with struct sigcontext.

Reported by John Spencer.
onfigure.ac
ignal.c
e19a712aae9a851a81a6bc31c411ad31f1a20a93 12-Nov-2013 Dmitry V. Levin <ldv@altlinux.org> Use standard names of sched_param structure members

* process.c (sys_sched_setscheduler, sys_sched_getparam,
sys_sched_setparam): Use portable struct sched_param member name
sched_priority instead of glibc specific __sched_priority.

Reported by John Spencer.
rocess.c
ae5aa47370455123bf84e52dd8354d26c29efea8 12-Nov-2013 Dmitry V. Levin <ldv@altlinux.org> Make SIGEV_THREAD_ID decoding less glibc specific

SIGEV_THREAD_ID decoding requires access to an internal member of
struct sigevent. There seems to be no portable way to do it besides
adding a configure check.

* configure.ac (AC_CHECK_MEMBERS): Check for
struct sigevent._sigev_un._pad and struct sigevent.__pad.
* time.c (printsigevent): Use an appropriate struct sigevent member
to print thread id.

Reported by John Spencer.
onfigure.ac
ime.c
a0e02f5d52e4e10d6e46522c7233dc4914d4010b 11-Nov-2013 Dmitry V. Levin <ldv@altlinux.org> Remove unused configure checks

* configure.ac (AC_CHECK_MEMBERS): Remove T_conn_res.QUEUE_ptr,
T_conn_res.ACCEPTOR_id, dqblk.dqb_curblocks, sigcontext.sc_hi2.
onfigure.ac
18bce8c23a284fb684bb48c92ccce7dcfd5edb0d 11-Nov-2013 Dmitry V. Levin <ldv@altlinux.org> Assume "long long" availability

Most of the code already uses long long types unconditionally.

* configure.ac: Remove the check for long long.
* file.c (printstat64): Remove HAVE_LONG_LONG checks, use %llu format
string unconditionally.
onfigure.ac
ile.c
d64a7e4755abe2d073676741f38328aa0b83db9f 06-Nov-2013 Dmitry V. Levin <ldv@altlinux.org> Include <sys/poll.h> only if there is no <poll.h>

* pathtrace.c: Do not include <sys/poll.h> if <poll.h> is available.
* stream.c: Likewise.
athtrace.c
tream.c
2b640347869c4d6a0aa9b51c5812a80f84fc486a 11-Nov-2013 Dmitry V. Levin <ldv@altlinux.org> Move io_* syscalls decoding to a separate file

* desc.c (sys_io_setup, sys_io_destroy, sys_io_submit, sys_io_cancel,
sys_io_getevents, declarations from libaio.h): Move to ...
* aio.c: new file.
* Makefile.am (strace_SOURCES): Add aio.c.
akefile.am
io.c
esc.c
2df03c494eb3c36c4178eba35c374831031d1a58 11-Nov-2013 Denys Vlasenko <dvlasenk@redhat.com> Stop using external libaio.h.

This change incorporates a partial copy instead
of using external libaio.h.
Why?
Because we want to properly decode 32-bit aio calls
by 64-bit strace. For that, we need more definitions than
libaio.h provides.
(These defs are not done yet, but will eventually be done).
Keeping our local 32-bit compat defs in sync with libaio.h
_without seeing libaio structs_ is hard/more bug prone.
A smaller benefit is that we don't need libaio installed.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
onfigure.ac
esc.c
abd2fda38003f61f50e5b4ed4f77f7997d7172ac 11-Nov-2013 Denys Vlasenko <dvlasenk@redhat.com> sys_io_submit: simplify iocb_cmd_lookup() helper.

This helper returns two values (a string and an enum).
The caller prints the string. It's simpler to just print
the string in the caller itself. This eliminates
"return by reference" and more importantly, an intermediate
static string buffer for the string result.

Since function of the helper is different now,
it is renamed to tprint_lio_opcode().

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
esc.c
ab24d5182847b52095efb129bbd47dfdc1f21662 11-Nov-2013 Denys Vlasenko <dvlasenk@redhat.com> sys_io_submit: stop traversing iocb vector after first failure.

The program may use a very large nr but supply either outright
invalid iocbpp[], or one with far fewer elements than nr.
We used to try reading iocbpp[i] until i == nr.
With this change, we stop on the first failure.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
esc.c
64778cbfa62d9584c59d3a48b69ba1ebf8bd24e9 09-Nov-2013 Denys Vlasenko <dvlasenk@redhat.com> Fix pathtrace_match() to match recent fixes to select decoding.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
athtrace.c
b338f2d65ea9d911a0fead3229ba336bc30e6214 09-Nov-2013 Denys Vlasenko <dvlasenk@redhat.com> Fix select decoding on e.g. 32-bit ppc process by 64-bit strace.

Added next_set_bit() function which finds the next set bit,
properly taking into account word size of the traced process.
Use it in decode_select() instead of fd_isset().
Also, properly round fdsize up to word size of traced process,
not to strace's word size.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
esc.c
til.c
1297a513dad3ce3bc6f8472ed592a865aea18fac 06-Nov-2013 Denys Vlasenko <dvlasenk@redhat.com> Speed up and explain fd_isset()

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
esc.c
85db86e6d9f61566a0de522d4e0dfbfe6787ba61 06-Nov-2013 Dr. David Alan Gilbert <dave@treblig.org> Add a test for the latest select decoding fix

* test/select.c (main): Add a test for nfds larger than FD_SETSIZE.
est/select.c
c2982b5b72335205849265182b23866ffbe7a16c 06-Nov-2013 Dmitry V. Levin <ldv@altlinux.org> Fix select decoding for glibc in _FORTIFY_SOURCE mode

glibc in _FORTIFY_SOURCE mode raises SIGABRT when descriptor greater
or equal to FD_SETSIZE is passed to FD_ISSET. Select family syscalls,
however, can legitimately accept such descriptors. To overcome this
limitation, we have to replace FD_ISSET with an equivalent that imposes
no such restrictions.

* desc.c (fd_isset): New function.
(decode_select): Use it instead of FD_ISSET.
esc.c
f3696b3c8bdd32b5621f0fa126c269f13c11bfc4 05-Nov-2013 Dmitry V. Levin <ldv@altlinux.org> More select decoding fixes

* desc.c (decode_select): Actually print arg[0] as int on entering
syscall. When arg[0] is negative, do not attempt to fetch and decode
descriptor sets on entering syscall, kernel will reject it anyway.
On exiting syscall, stop checking descriptor sets as soon as all
returned descriptors are found.
esc.c
1f65c3cd2ac24c6fcc6a8eb3eb88cd6161c25c88 05-Nov-2013 Denys Vlasenko <dvlasenk@redhat.com> Truncate arg[0] to int in select decoding.

This matches kernel's behavior.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
esc.c
c4b9214a0fe23f1b1196bdfb5addcba013855cb3 05-Nov-2013 Denys Vlasenko <dvlasenk@redhat.com> test/select.c: make comment more understandable.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
est/select.c
025f1082b6c9573772472cc9039c2e10225c2c42 05-Nov-2013 Dr. David Alan Gilbert <dave@treblig.org> Fix select decoding with bogus (huge or negative) nfds.

We used to allocate and fetch bit arrays using a sanitized
length, but then iterate over them with "j < arg[0]" condition,
where arg[0] is not sanitized. This segfaults if arg[0] is huge
or negative. This change fixes this.

Add test/select.c to capture the case.

Signed-off-by: Dr. David Alan Gilbert <dave@treblig.org>
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
esc.c
est/.gitignore
est/Makefile
est/select.c
4219c32097ea68bdbca962e053ad34ca308288aa 01-Oct-2013 Elliott Hughes <enh@google.com> Merge "Remove the statfs64 hacks."
23ea101e3ff6ac987e967005f5c018fd65b67a83 01-Oct-2013 Elliott Hughes <enh@google.com> Remove the statfs64 hacks.

bionic should now be source compatible with glibc.

Change-Id: I24320c920eca2ce40579cb8516d1fc5384dde118
ile.c
5c279044130887d7bc3aa7e602f5a45121194212 01-Oct-2013 Elliott Hughes <enh@google.com> Merge "MIPS and x86 now both use 'val' rather than '__val' in fsid_t."
592c3cab3807e833eceb90ebf090a4922e111158 01-Oct-2013 Elliott Hughes <enh@google.com> MIPS and x86 now both use 'val' rather than '__val' in fsid_t.

This replaces the MIPS hack with a smaller hack that works for MIPS and x86.
I should fix bionic so we can stop messing around in strace like this, but
this fixes the build while I go away and come up with a better solution.

Change-Id: I390095e20993e287ad151f10c3a05bd278a1661a
ile.c
0b4060f61f1bb101b5d8d084714b7d2feacdb199 24-Sep-2013 Ali Polatel <alip@exherbo.org> Work around conflict between <sys/ptrace.h> and <linux/ptrace.h>

Since glibc-2.18~39 <sys/ptrace.h> defines ptrace_peeksiginfo_args
which collides with <linux/ptrace.h>.

* configure.ac: Check for `struct ptrace_peeksiginfo_args' in
<sys/ptrace.h>.
* process.c: Work around potential conflict between <sys/ptrace.h>
and <linux/ptrace.h> by redefining ptrace_peeksiginfo_args.
* signal.c: Likewise.
* syscall.c: Likewise.
* util.c: Likewise.

Signed-off-by: Ali Polatel <alip@exherbo.org>
onfigure.ac
rocess.c
ignal.c
yscall.c
til.c
7daacbbbe7349677476a3d2fbf174dcf86f171be 15-Aug-2013 Vineet Gupta <Vineet.Gupta1@synopsys.com> Add support for ARC Cores from Synopsys

Take #2 on mainlining strace support for ARC (last one was 4.6 based back
in March 2011), see
http://sourceforge.net/p/strace/mailman/message/27210168/

The syscall ABI is asm-generic/unistd.h based (so no legacy syscalls),
hence very similar to metag port.

test/* all seem to work well.

* linux/arc/ioctlent.h.in: New file.
* linux/arc/syscallent.h: Likewise.
* Makefile.am (EXTRA_DIST): Add linux/arc/ioctlent.h.in and
linux/arc/syscallent.h.
* configure.ac: Add ARC to the list of supported architectures.
* defs.h: Add ARC support.
* process.c (struct_user_offsets): Likewise.
* signal.c (sys_sigreturn): Likewise.
* syscall.c (print_pc, get_regset, get_regs, get_scno, get_syscall_args,
get_syscall_result, get_error): Likewise.
* util.c (change_syscall): Likewise.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Acked-by: Mike Frysinger <vapier@gentoo.org>
akefile.am
onfigure.ac
efs.h
inux/arc/ioctlent.h.in
inux/arc/syscallent.h
rocess.c
ignal.c
yscall.c
til.c
16b9dcf8b870f47305aa2db174f5abccefb7cd94 09-Aug-2013 William Manley <william.manley@youview.com> Add support for decoding sync_file_range

* file.c (sync_file_range_flags): New xlat structure.
(sys_sync_file_range, sys_sync_file_range2): New functions.
* linux/syscall.h (sys_sync_file_range, sys_sync_file_range2): New
prototypes.
* linux/dummy.h (sys_sync_file_range, sys_sync_file_range2): Remove.
* linux/mips/syscallent-o32.h: Set the number of sync_file_range
arguments to 7.
ile.c
inux/dummy.h
inux/mips/syscallent-o32.h
inux/syscall.h
9e937d9c471a7e365d621d11d4fa06c8f4b02454 19-Aug-2013 Mike Frysinger <vapier@gentoo.org> fanotify_mark: fix number of args for 32bit arches

The fanotify_mark func takes a 64bit mask, so 32bit arches have to split
it up into two fields. When the syscall was added, it was listed as only
having 5 fields total (since that's correct for 64bit systems).

* linux/arm/syscallent.h: Set the number of fanotify_mark arguments to 6.
* linux/bfin/syscallent.h: Likewise.
* linux/hppa/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/metag/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
* linux/mips/syscallent-o32.h: Likewise.
* linux/or1k/syscallent.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.
* linux/s390/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/sparc/syscallent.h: Likewise.
* linux/tile/syscallent1.h: Likewise.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Acked-by: Chris Metcalf <cmetcalf@tilera.com> [for tile]
inux/arm/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/m68k/syscallent.h
inux/metag/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent-o32.h
inux/or1k/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/sh/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent1.h
aca4ff79d1adc70ec033ffc5377ba7494daf350d 11-Sep-2013 Dmitry V. Levin <ldv@altlinux.org> x86, x86_64: fix compilation warnings

Fix "dereferencing type-punned pointer will break strict-aliasing rules"
warnings introduced by commit v4.8-52-gb51f364.

* signal.c (sys_sigreturn): Avoid dereferencing type-punned pointers.
ignal.c
a877379bcbb0ca6270031c31f5eb8213b460c7cb 18-Jul-2013 Denys Vlasenko <dvlasenk@redhat.com> Remove rt parameter from [s]printsigmask()

In almost all cases, the parameter was 1 ("decode RT sigs too").
This change hardwires it to be 1.

The cases where it was 0 are, and why the change to "decode RT sigs too"
is fine:

IA64: 64-bit arch, all 64 signals fit in one word in any case.
S390[x]: sc.oldmask is a sigset_t on kernel side,
(sigset_t *)&sc.oldmask[0] does contain all 64 signals.
TILE: uc.uc_sigmask is a sigset_t on kernel side,
memcpy(&sigm, &uc.uc_sigmask, NSIG / 8) copies all 64 signals.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
ignal.c
75f4e1fb7d802ec890a1a0d95ca80eb8aa3732e7 18-Jul-2013 Denys Vlasenko <dvlasenk@redhat.com> Convert some uses of long_to_sigmask+printsigmask to sprintsigmask_long

This allows to drop long_to_sigmask function,
and a whole bunch of sigset_t variables.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
ignal.c
46c8acd16b6ac32b85de7051a907112a57988663 18-Jul-2013 Denys Vlasenko <dvlasenk@redhat.com> Simplify some sigmask manipulations

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
ignal.c
8a1ebbbee95a3412a3c7bfee21f6d33c11293d30 18-Jul-2013 Denys Vlasenko <dvlasenk@redhat.com> Add compat support for sys_pselect6

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
esc.c
e600ac67ee7b11600773e73ab9772392dd6e6d04 18-Jul-2013 Denys Vlasenko <dvlasenk@redhat.com> I386: fix signedness mismatch warning

&i386_regs.esp is a pointer to long, not unsigned long.
It needs a cast.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
5e133aa68498626afdbdcf29e22300257a21bf57 18-Jul-2013 Denys Vlasenko <dvlasenk@redhat.com> Fix sigset printing via print_sigset().

Replace print_sigset() with print_sigset_addr_len(),
which takes not only addr, but also len parameter.
This allows us to drop "do we need to print RT signals?" parameter,
and this fixes RT signals printing in many syscalls.

sys_epoll_pwait: print RT signals too, print sigmask size argument.

sys_sigprocmask: print_sigset -> print_sigset_addr_len(current_wordsize),
no change in functionality.

sys_sigpending: use print_sigset_addr_len(current_wordsize)
instead of open-coding it.

sys_rt_sigprocmask: use print_sigset_addr_len instead of open-coding it.
sys_rt_sigpending: ditto.
sys_rt_sigsuspend: ditto.
sys_rt_sigtimedwait: ditto.

do_signalfd: print_sigset -> print_sigset_addr_len. This fixes
RT signals printing (wasn't showing them before).

sys_ppoll: ditto.

copy_sigset_len() is folded into its only user, print_sigset_addr_len(),
and copy_sigset() is gone.

While at it, checked kernel sources and noted where kernel enforces
sigset_size == NSIG / 8 (== sizeof(kernel_sigset_t)),
and where it allows word-sized sigset_size ([rt_]sigpending).

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
esc.c
ignal.c
tream.c
80b73a24a9c94e2a76dc8e6b49160e6792cfc3d3 18-Jul-2013 Denys Vlasenko <dvlasenk@redhat.com> sys_rt_sigaction: fix sigset copying

In practice, we always copy as many bytes as syscall param says
(8, or 16 on mips). However, malicious program can call sigaction
with wrong sigset size. Such syscall will result in EINVAL,
but we (strace) end up copying 128 bytes (sizeof(sigset_t)),
which copyes some garbage from stack after struct sigaction.

Now we always copy NSIG / 8 bytes (which is 8 bytes, or 16 on mips).

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
ignal.c
94e10354d888d1f09bc803616869802a13a576bf 18-Jul-2013 Denys Vlasenko <dvlasenk@redhat.com> ARM: remove wrong NSIG = 32 define

ARM in fact has 64 signals (1..64), and NSIG should be 65
(as usual, rememebr that NSIG_libc == NSIG_kernel+1).

I carefully reviewed all usages of NSIG. In syscall.c,
the only usage is:
for (i = 0; i <= NSIG; i++)
if (strcasecmp(s, signame(i) + 3) == 0)...
which is safe even if NSIG is way too big - signame(i)
returns a well-formed string for any i.

In signal.c, memcpy(&sigset, &sc.sc_mask, NSIG / 8) is used by
IA64 and TILE code, so ARM change can't affect it. And final
usage is:
struct new_sigaction::unsigned long sa_mask[NSIG / sizeof(long)];
It will grow on ARM (and become correct in the process).
Its only use is
memcpy(&sigset, &sa.sa_mask, NSIG / 8);
printsigmask(&sigset, 1);
which used to copy garbage in high bits, now it will copy actual data.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
ignal.c
yscall.c
670b21b710120f4e6f3cae73727060c6fd52994c 17-Jul-2013 Denys Vlasenko <dvlasenk@redhat.com> ARM: fix sigreturn decoding

Decoding of test/sigreturn testcase:
Was:
sigreturn() (mask [QUIT TRAP ABRT BUS SEGV USR2 PIPE STKFLT STOP XCPU VTALRM PROF WINCH IO PWR RTMIN]) = 0
Now:
sigreturn() (mask [CHLD RT_1 RT_3 RT_31 RT_32]) = 0

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
ignal.c
76da831a4159a58cd321328498496e772e3b4afc 16-Jul-2013 Denys Vlasenko <dvlasenk@redhat.com> Group USE_CUSTOM_PRINTF define with other tweakables

No code changes.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
sprintf.c
b51f364c4241aa247a7a22f92c06f1f1a4ab99b4 16-Jul-2013 Denys Vlasenko <dvlasenk@redhat.com> Improve sigreturn decoding on x86 to show RT signal bits too.

This includes decoding of 32-bit sigreturn by 64-bit strace,
which previously wasn't done.

Added a test for it.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
ignal.c
yscall.c
est/.gitignore
est/Makefile
est/sigreturn.c
9afc2ee682d2f9fd3ad938756c841d7f0eed5f21 10-Jul-2013 Anton Blanchard <anton@samba.org> powerpc: enhance 32/64bit detection

We were using uname to determine if userspace was 32 or 64bit.
This fails when we have a 64bit kernel and a 32bit userspace.

* configure.ac (powerpc*): Similar to x86, use a runtime test
to determine if we are 32 or 64bit.

Signed-off-by: Anton Blanchard <anton@samba.org>
onfigure.ac
9459dfb891af6ef376a2a78d4a272b9a396ea484 12-Jul-2013 Anton Blanchard <anton@samba.org> powerpc: fix some compiler warnings

Fix a number of differing signedness warnings when building on
powerpc.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
a34deadbb3419909d691de514a298f6b748f2d95 12-Jul-2013 Anton Blanchard <anton@samba.org> powerpc: fix iflag build issue (static -> extern)

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
trace.c
c169d94718e0c3a980dbf352010e615daf2f4332 10-Jul-2013 Denys Vlasenko <dvlasenk@redhat.com> PTRACE_SEIZE can set ptrace options immediately, use this feature

This eliminates some rare bugs, such as post-execve SIGTRAP
generation when we attach to a process, and it manages to finish
execve'ing before we set TRACEEXEC option to suppress that.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
7c41ce287804f5409400c2b87bf11ebc6f6e1091 08-Jul-2013 Denys Vlasenko <dvlasenk@redhat.com> If -o|logger is in use, exit trace loop if nprocs == 0.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
d2e1f42d8a28486484f00739e561a58be4808b03 08-Jul-2013 Denys Vlasenko <dvlasenk@redhat.com> Exit trace loop if got ECHILD, not if nprocs == 0.

Comment gives a testcase which wasn't handled correctly
by the old code.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
f5730e9614b73053a1b3fcd63a776d9cd6baa83a 07-Jul-2013 Denys Vlasenko <dvlasenk@redhat.com> s390[x]: get rid of syscall_mode, delete code which never triggers

Before this change, the logic was as follows:
syscall entry:
get_scno:
syscall_mode = GPR2
scno = syscall_mode unless syscall_mode == -ENOSYS
(if -ENOSYS, scn is retrieved by decoding current insn)
fixup:
gpr2 = GPR2
syscall_mode = scno unless syscall_mode == -ENOSYS
if (gpr2 != syscall_mode) stray_entry
syscall exit:
get_res:
gpr2 = GRP2
fixup:
syscall_mode = scno unless syscall_mode == -ENOSYS
if (WAITEXECVE && gpr2 in (-ENOSYS, scno)) gpr2 = 0;
get_error:
gpr2 is retval

Entry fixup's if() can never trigger:
regardless whether GPR2 is -ENOSYS or not, syscall_mode is always
equal to GRP2 value there. So it can be removed.

On sysexit path, syscall mode is never used.

Therefore, syscall_mode variable is deleted. grp2 is read from
GPR2 register in get_scno, redundant read in entry fixup is removed.
As a result, entry fixup's s390 code block vanishes completely.

gpr2 variable is renamed s390_gpr2 to match the convention used
by other arches.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
8b7aa2b35d40836d376990f0e5eaf473b70bc26d 04-Jul-2013 Denys Vlasenko <dvlasenk@redhat.com> ARM: add STRACE_KNOWS_ONLY_EABI define which can be used to omit OABI support

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
6162a3f34fc8d15095a3b71dc6e4cbdfe1b14ac1 04-Jul-2013 Denys Vlasenko <dvlasenk@redhat.com> Add paranoia check before passing a long to pid2tcb(int pid)

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
38eab5d6ea5627233b781f1bc68c2b264e8ee774 02-Jul-2013 Denys Vlasenko <dvlasenk@redhat.com> In debug output, show waitpid status with 6 hex digits, not 4

This shows event byte values better (without variable offset):

[wait(0x01057f) = 29491] WIFSTOPPED,sig=SIGTRAP,EVENT_FORK (1)
[wait(0x80057f) = 29492] WIFSTOPPED,sig=SIGTRAP,EVENT_STOP (128)
^^

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
519af5ad34fa19fb48e2bc6539135fe0852210c3 02-Jul-2013 Denys Vlasenko <dvlasenk@redhat.com> Replace suspicious popen_pid assignment with an obviously correct one

popen_pid = vfork() does work correctly, but for a subtle reason
that wrong assignment of 0 happens in the child _first_,
and _then_ correct value overwrites it in the parent.

(And in a hyphothetical system where vfork = fork,
popen_pid wouldn't be shared, so it will also be ok.)

However, it's not necessary to be difficult.
This change makes it so that assignment is done only in parent.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
d0ffdf494ac722f3d121c6e807f105000409e6a6 01-Jul-2013 Denys Vlasenko <dvlasenk@redhat.com> Convert trace() from returning int to returning void

The cleanup sequence in error cases, and on normal code path
was nearly the same, no point in duplicating it.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
5a2483ba25fd80cb189abcdc14624be72b0c4c0b 01-Jul-2013 Denys Vlasenko <dvlasenk@redhat.com> Remove ia64-specific printing of current address on signal delivery

The address is printed anyway by printleader() if -i is active.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
trace.c
yscall.c
c09646aa9e8768d308267bb92747b2d1ff58b1c3 01-Jul-2013 Denys Vlasenko <dvlasenk@redhat.com> Rename ia32 to ia64_ia32mode, and make it bool, not long

Grepping for just ia32 was turning up many false positives.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
yscall.c
til.c
4793221a53fb69aa519bc91ab19a79524c0df097 30-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> Fold is_restart_error() into its sole user

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
yscall.c
ime.c
254b5a7a97e421a8d1cc6a70e3fbf8a33acccdbc 29-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> Update qemu_multiarch_testing/README

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
emu_multiarch_testing/README
d083016e03e8511c808e8f65305726a523c03e9a 28-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> sys_clone: add a comment about CLONE_PTRACE and CLONE_UNTRACED

No code changes.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
rocess.c
44a6d04e5ef32b42faa1e7e4fd93dbdf4237a6af 28-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> POWERPC: get rid of "static long ppc_result"

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
6b3016e43512e055eb42cf03194eb4c6eee17841 28-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> POWERPC: read ppc_regs.nip if -i

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
7eb893236ca547779b597325a4a0e4b349e4c566 28-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> POWERPC: if GETREGS fails with EIO, don't try it again

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
7f5a132c817ee70343913619371adc29691832bc 28-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> Get rid of powerpc_getreg(), it's a copy of upeek()

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
752e5a02e67f66f555aa39faf522f07126924e62 28-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> Change upeek() to take pid, not full tcp.

This will be used by next change.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
ignal.c
trace.c
yscall.c
til.c
14d51a6423aa47378518a71e8345a3d1944d97e7 26-Jun-2013 Anton Blanchard <anton@samba.org> powerpc: Provide a fallback for old kernels without PTRACE_GETREGS

PTRACE_GETREGS was added to the ppc kernel in 2.6.23. In order to
provide backward compatibility for very old kernels, add a manual
fallback.

* syscall.c (powerpc_getreg, powerpc_getregs_old): New functions.
(get_regs): Call powerpc_getregs_old if PTRACE_GETREGS is not supported.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
ce6e33be1dbfc16620ea7991a414e879ef84fe22 26-Jun-2013 Anton Blanchard <anton@samba.org> powerpc: Use PTRACE_GETREGS to fetch all registers

* defs.h: declare ppc_regs and get_regs_error.
* signal.c (sys_sigreturn): Use ppc_regs instead of upeek.
* syscall.c: define ppc_regs.
(printcall): Use ppc_regs instead of upeek.
(get_scno): Replace multiple upeek calls with one PTRACE_GETREGS call.
(get_syscall_result): Likewise.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
ignal.c
yscall.c
711b17c44b50b6de7cfb9a3f2bd9d70dfdcacc8c 26-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> Another manpage tweak

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.1
b5370530d52520a52e025c5675a987b3ea9cad57 26-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> Manpage update

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.1
aeb6e304931ee789e741a3b47247c541f3cf55f6 26-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> Update build_static_example.sh

Now it also contains a tested example of i686 build on 64-bit host.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
uild_static_example.sh
c8511f07aba78178f8528e22a8daa438347eb4fa 26-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> In -f mode, do not assume that new pid is stopped - handle exits too

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
e8681c926c02dad48aca66f3aba1e33122002c36 26-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> Set strace_child only in the right branch

"strace_child = pid" assignment was racing in NOMMU case
because of vfork (no way to know which process would win).

After this change, strace_child is set to nonzero only
in one process after [v]fork.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
fadbf6679cb52d4265a771cbb8635a2ff472e869 26-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> Get rid of TCB_INUSE and TCB_STRACE_CHILD

We can use tcb::pid == 0 as an indicator of free tcb,
and we already have strace_child variable which holds
pid of our child, if any.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
trace.c
1b2bfbc8257231c18dcdd30b8a84eadffbe9417a 21-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> Fix debug output of wait4 result (was reusing buf[] on unknown events)

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
4e020c0f4b054a030ce8922906cdc217c4b2faf4 21-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> Show PTRACE_EVENT_STOP correctly in debug output

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
71d3d29a9d51add731c07e328a7394db0b3dd212 21-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> Panic a bit less when we see an unknown pid

I stumbeld over this case when I used "exec stace ...".

* strace.c (trace): Do not exit if we see an unknown pid in wait4.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
e2567d54dd57438d8ebe0167748cde7b661103e8 21-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> detach(): Reorganize code. Logic is the same.

* strace.c (detach): Use goto's instead of excessive nesting.
Drop sigstop_expected and interrupt_done variables.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
a2de9dacec47b7902b19f37edcc564faff346816 21-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> Eat pending SIGSTOP _before_ PTRACE_DETACH in detach()

* strace.c (detach): If TCB_IGNORE_ONE_SIGSTOP is set,
di not PTRACE_DETACH - wait for SIGSTOP first.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
fdfa47af7e05b320cc1c62fc5854ded781679917 20-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> detach(): warn if we see ECHILD from waitpid

* strace.c (detach): Warn if we see ECHILD from waitpid.
Explain in comments that we don't normally expect !WIFSTOPPED
either, and also that PTRACE_CONT failure isn't expected
(the "break" there is a "I'm confused, bailing out" code style)..

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
4a9ba989e65c12c50286a8423196236e6bac529d 20-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> Improve error messages in detach()

* strace.c (detach): Change return type from int to void.
Improve error meesages: show PID, tell exactly which operation fails.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
725dd425a60af0cd0fa7bb764ae3a122269a70fc 20-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> Remove workarounds for ancient kernels lacking __WALL

__WALL is available and working at least since 2.4 kernels: 10 years ago.

* strace (detach): Remove workarounds for ancient kernels lacking __WALL.
Add missing EINTR check.
(trace): Remove workarounds for ancient kernels lacking __WALL.
Remove redundant double error printout.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
69e27ef24402059d1d103c83e511b62bc60310d2 19-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> USE_SEIZE: fix detaching from stopped processes

V3: split SEIZE/!SEIZE code paths to reduce confusion.
Extensively comment every possible case.
Verified that all tests/detach* tests work in both SEIZE and !SEIZE
cases.

* strace.c (detach): If PTRACE_SEIZE API is in use, stop the tracee
using PTRACE_INTERRUPT instead of sending it a SIGSTOP.
In a subsequent waitpid loop, correctly wait and suppress SIGSTOP
on detach if PTRACE_INTERRUPT wasn't used, or wait for any ptrace
stop and detach without suppressing signals.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
0d7c3653c58036e0c27d2c321f482e11e6460262 19-Jun-2013 Dmitry V. Levin <ldv@altlinux.org> tests: disable /proc based checks when /proc is not mounted

* tests/detach-running: Disable /proc based checks when
/proc/self/status is not available.
* tests/detach-sleeping: Likewise.
* tests/detach-stopped: Likewise.
ests/detach-running
ests/detach-sleeping
ests/detach-stopped
a815185d558d5f38393a9994443b2a191c5b9485 19-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> tests/detach-{running,sleeping,stopped}: check post-detach state

Check that traced process still exists and is in a right state
after strace detached from it.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
ests/detach-running
ests/detach-sleeping
ests/detach-stopped
78460f8bb2cbf5f2b9071961232abe574247ac96 19-Jun-2013 Dmitry V. Levin <ldv@altlinux.org> tests: ensure that strace can detach from running processes

* tests/detach-running: New test.
* tests/Makefile.am (TESTS): Add it.
ests/Makefile.am
ests/detach-running
223e9a6f856d776ca15b099094c1218e6aaa65b1 19-Jun-2013 Dmitry V. Levin <ldv@altlinux.org> tests: ensure that strace does not leave sleeping processes stopped

* tests/detach-sleeping: Do not send SIGCONT to the sleeping process.
ests/detach-sleeping
3cb7a0cd0017199ad980526187eb763058ae54db 19-Jun-2013 Dmitry V. Levin <ldv@altlinux.org> tests: fix parallel-tests support in detach-* tests

* tests/detach-sleeping: Use $LOG file for set_ptracer_any output.
* tests/detach-stopped: Likewise.
ests/detach-sleeping
ests/detach-stopped
1e0a28063f113bc5502feb0594b6764d394d3af5 18-Jun-2013 Dmitry V. Levin <ldv@altlinux.org> tests: parametrize "sleep 1"

* tests/init.sh (SLEEP_A_BIT): New variable.
* tests/detach-sleeping: Use it.
* tests/detach-stopped: Likewise.
ests/detach-sleeping
ests/detach-stopped
ests/init.sh
97c85088a286831aec3ecb41942946d52dc006d4 18-Jun-2013 Dmitry V. Levin <ldv@altlinux.org> tests: ensure that strace can detach from sleeping and stopped processes

* tests/set_ptracer_any.c: New file.
* tests/detach-sleeping: New test.
* tests/detach-stopped: Likewise.
* tests/Makefile.am (check_PROGRAMS): Add set_ptracer_any.
(TESTS): Add detach-sleeping and detach-stopped.
* tests/.gitignore: Add set_ptracer_any.
ests/.gitignore
ests/Makefile.am
ests/detach-sleeping
ests/detach-stopped
ests/set_ptracer_any.c
f60347d857c46551624b4e803d8b3961041549a0 18-Jun-2013 Dmitry V. Levin <ldv@altlinux.org> tests: enhance timeout checks

Run each test using a wrapper that does all necessary timeout checks.

* tests/run.sh: New file.
* tests/Makefile.am (EXTRA_DIST, LOG_COMPILER): Add it.
* tests/init.sh (check_strace, check_timeout): Remove.
* tests/detach-stopped: Update callers.
* tests/net: Likewise.
* tests/ptrace_setoptions: Likewise.
* tests/qual_syscall: Likewise.
* tests/stat: Likewise.
* tests/strace-f: Likewise.
ests/Makefile.am
ests/init.sh
ests/net
ests/ptrace_setoptions
ests/qual_syscall
ests/run.sh
ests/stat
ests/strace-f
3cf90b64ae9d4397c333ebacab058c168fb6797a 18-Jun-2013 Dmitry V. Levin <ldv@altlinux.org> tests: enable parallel-tests support

* configure.ac (AM_INIT_AUTOMAKE): Add parallel-tests.
onfigure.ac
107ceb935f43ee3d0e117621d74cf3db09a96838 18-Jun-2013 Dmitry V. Levin <ldv@altlinux.org> tests: prepare for parallel-tests support

* tests/Makefile.am (CLEANFILES): Calculate dynamically from TESTS.
* tests/init.sh (LOG): New variable.
* tests/detach-stopped: Use it.
* tests/net: Likewise.
* tests/qual_syscall: Likewise.
* tests/stat: Likewise.
* tests/strace-f: Likewise.
ests/Makefile.am
ests/init.sh
ests/net
ests/qual_syscall
ests/stat
ests/strace-f
f1669e7975cb8d67448d52d9ae7dde3301d27273 18-Jun-2013 Denys Vlasenko <dvlasenk@redhat.com> Cleanups. No logic changes.

* defs.h: Define new ptrace constants unconditionally.
* strace.c (detach): Fix comment.
(trace): Remove now unnecessary "if USE_SEIZE".

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
trace.c
02d2c708ded6727f847f22e2ca09c762c8f16949 05-Jun-2013 Dmitry V. Levin <ldv@altlinux.org> maint: post-release administrivia

* NEWS: Add header line for next release.
EWS
1cd3f5f844d58b1ced8d3f6dc431688ed94d008e 03-Jun-2013 Dmitry V. Levin <ldv@altlinux.org> ioctlent: add UAPI support

* Makefile.am (IOCTLSORT_INCLUDEDIR): Define.
(ioctlsort): Use it.
* linux/ioctlent.sh (lookup_ioctls): Look into uapi directory tree.
Strip "uapi/" prefix from output path names.
* linux/ioctlent.h.in: Regenerate from v3.9 headers.
* NEWS: Mention it.
akefile.am
EWS
inux/ioctlent.h.in
inux/ioctlent.sh
d845411e8c0b315c754d5d45df3103a12f5e876e 03-Jun-2013 Dmitry V. Levin <ldv@altlinux.org> Prepare for 4.8 release

* NEWS: Update for 4.8 release.
* debian/changelog: 4.8-1.
* strace.spec: 4.8-1.
EWS
ebian/changelog
trace.spec
0db34e7dfa04280b25ece92d91bfddb1b9367222 02-Jun-2013 Dmitry V. Levin <ldv@altlinux.org> Fix "make dist" on recently added architectures

* Makefile.am (EXTRA_DIST): Add linux/aarch64/errnoent1.h,
linux/aarch64/ioctlent.h.in, linux/aarch64/ioctlent1.h,
linux/aarch64/signalent1.h, linux/aarch64/syscallent.h,
linux/aarch64/syscallent1.h, linux/metag/ioctlent.h.in,
linux/metag/syscallent.h, linux/or1k/ioctlent.h.in,
linux/or1k/syscallent.h, linux/tile/errnoent1.h, linux/tile/ioctlent1.h,
linux/tile/signalent1.h, linux/tile/syscallent1.h, linux/ubi-user.h,
linux/xtensa/ioctlent.h.in, and linux/xtensa/syscallent.h.
akefile.am
8e0b8bef34aa31acee1af9499bb41b67815c5a52 02-Jun-2013 Dmitry V. Levin <ldv@altlinux.org> Fix "make dist" regression introduced by commit v4.7-184-gd648f29

* Makefile.am (EXTRA_DIST): Add linux/ubi-user.h.
akefile.am
e8ff4c6f863c16180dacff74988f0e617f8136d9 28-May-2013 Dmitry V. Levin <ldv@altlinux.org> Do not suppress signal delivery messages with -qq

Current implementation of -qq does not allow suppressing exit status
messages without suppressing signal delivery messages, which is not
good. There is a traditional "-e signal=none" syntax that can be used
to suppress all signal delivery messages.
This partially reverts commit v4.7-222-g01997cf.

* strace.c (trace): Do not suppress signal delivery messages with -qq.
* strace.1: Update documentation about -qq option.
trace.1
trace.c
5c0796f3462b1cf6ef9ed114e255763791d66b78 22-May-2013 Chris Metcalf <cmetcalf@tilera.com> tile: use siginfo_t, not struct siginfo

As of glibc 2.16, "struct siginfo" is no longer supported,
and "siginfo_t" must be used instead.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
ignal.c
d90a2d26c10ad04da5298c112c34db10545ebed9 21-May-2013 Chris Metcalf <cmetcalf@tilera.com> tile: remove MAP_CACHE_xxx support in mem.c

These flags support functionality in mmap() that has not been
pushed back to the community, and which may or may not eventually
end up being the final community model. In the interim, having
these flags unconditionally present for "#ifdef TILE" just means
that the TILE build breaks if using the community versions of
the kernel and glibc, so just revert the code until such time
as it may end up in the community.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
em.c
6c19136aca1cd750bedb207cc58b8923c65e975f 15-May-2013 Mike Frysinger <vapier@gentoo.org> Rename COPYRIGHT to COPYING

The standard name people have adopted is "COPYING" rather than
"COPYRIGHT". Use that as a lot of license scanning tools look for it.

* COPYRIGHT: Rename to ...
* COPYING: ... this.
* Makefile.am (EXTRA_DIST): Rename COPYRIGHT to COPYING.
* README: Likewise.
* strace.spec (%files): Likewise.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
OPYING
OPYRIGHT
akefile.am
EADME
trace.spec
0eb7165588b6bb61879a436b43b0b73bd420d79b 18-May-2013 Dmitry V. Levin <ldv@altlinux.org> Sync strace.spec and debian/ with packages

* debian/changelog: Sync with 4.7-1.
* debian/strace.docs: Likewise.
* strace.spec: Sync with 4.7-3.
ebian/changelog
ebian/strace.docs
trace.spec
f782201adf96878141d6e9abe064a896ec11463b 18-May-2013 Dmitry V. Levin <ldv@altlinux.org> Update PTRACE_O_* constants

* process.c (ptrace_setoptions_flags): Sync with Linux 3.9.
rocess.c
ea0d2a60b1c00b41696ef223df2377809b9e1fa9 17-May-2013 Dmitry V. Levin <ldv@altlinux.org> Update AF_*, PF_*, MSG_*, and TCP_* constants

* net.c (domains, addrfams, protocols, socktcpoptions): Sync with
Linux 3.9.
et.c
1d2435b20bc81fb52c3edb19a3b6247ce2d43ca6 15-May-2013 Dmitry V. Levin <ldv@altlinux.org> NOMMU: do not hide startup syscalls unless in -D mode

On NOMMU systems in "strace PROG" case, we have no way to attach to
the tracee before it calls execve unless in -D mode. That is, the
first execve call is very likely to be missed, and setting
hide_log_until_execve just results to empty log.

* strace.c (init) [NOMMU_SYSTEM]: Do not set hide_log_until_execve
unless in -D mode.
trace.c
882478a0724c04287ac232c212312c8e094cce43 13-May-2013 Dmitry V. Levin <ldv@altlinux.org> Make -D mode work when the Yama LSM is enabled

* strace.c [HAVE_PRCTL]: Include sys/prctl.h.
(startup_child) [HAVE_PRCTL && PR_SET_PTRACER && PR_SET_PTRACER_ANY]:
In -D mode, allow tracing the process that is going to become the
tracee.
trace.c
7a0fb3838629aa53fa4c6b21a1cc11f67a1090df 13-May-2013 Dmitry V. Levin <ldv@altlinux.org> Update PR_* constants

* process.c (prctl_options): Add PR_SET_PTRACER.
rocess.c
2a3d27552f17a5b378344620bec7d255bac65a8d 14-May-2013 Denys Vlasenko <dvlasenk@redhat.com> Hide startup syscalls.

Tested with "./strace [-D] [-q] [-bexecve] env true",
all cases seem to work.

* defs.h: Declare new variable: bool hide_log_until_execve.
* strace.c: Define hide_log_until_execve.
Rename skip_startup_execve to skip_one_b_execve.
(startup_child): Do not set skip_one_b_execve = 1 here.
(init): If "strace PROG" case (as opposed to "strace -pPID"),
set skip_one_b_execve and hide_log_until_execve to 1.
(trace): Don't print signal messages if hide_log_until_execve == 1.
* syscall.c (trace_syscall_entering):
Skip syscall printing if hide_log_until_execve == 1.
Reset hide_log_until_execve if we enter execve syscall.
(trace_syscall_exiting): Skip syscall printing if hide_log_until_execve == 1.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
trace.c
yscall.c
01997cf32d4492b9898283ced45e8a4a6fd161b8 13-May-2013 Daniel P. Berrange <berrange@redhat.com> Allow -q to be repeated for very quiet output

Even with the -q flag specified, tracing output is still mixed
with messages about signals and process exit status, which is
often irrelevant. Allow the -q option to be repeated to force
the suppression of signals / exit status info too.

* defs.h: Change 'qflag' from 'bool' to 'unsigned int'.
* strace.1: Document ability to repeat '-q' option.
* strace.c: Allow '-q' to be repeated to quieten process
exit status and signal messages.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
efs.h
trace.1
trace.c
8190912d2e97c9d18de65dc8a6fbd93750642bd3 11-May-2013 Dmitry V. Levin <ldv@altlinux.org> mips o32: fix syscall table

* linux/mips/syscallent-o32.h: Add entries for getpmsg, putpmsg,
get_mempolicy, set_mempolicy and vserver. Fix names for umount,
umount2, mmap, mmap2, pread64, pwrite64, sigaltstack and fstatat64
syscalls.
inux/mips/syscallent-o32.h
b1e7cb1777fb661784aead821af4357b2420d7e1 11-May-2013 Dmitry V. Levin <ldv@altlinux.org> mips n64: fix syscall table

* linux/mips/syscallent-n64.h: Add entries for get_mempolicy,
set_mempolicy and timerfd syscalls. Fix entry for socket syscall.
Fix names for pread64, pwrite64, shmat, rt_sigsuspend, sigaltstack
and umount2 syscalls.
inux/mips/syscallent-n64.h
26ff3f2af4044d8b515e8c89a8db2c6fda824ab2 11-May-2013 Dmitry V. Levin <ldv@altlinux.org> mips n32: fix syscall table

* linux/mips/syscallent-n32.h: Add entries for mbind, get_mempolicy,
set_mempolicy and timerfd syscalls. Fix entry for socket syscall.
Fix handlers for truncate, ftruncate and getdents64 syscalls.
Fix names for pread64, pwrite64, shmat, rt_sigsuspend, sigaltstack,
umount2, and getdents64 syscalls.
inux/mips/syscallent-n32.h
f9236e6d76f617819b45c10e3485f07c3d9083f8 08-May-2013 Dmitry V. Levin <ldv@altlinux.org> sync_file_range: fix number of syscall arguments

* linux/avr32/syscallent.h: Set the number of sync_file_range arguments
to 6.
* linux/bfin/syscallent.h: Likewise.
* linux/hppa/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
* linux/mips/syscallent-o32.h: Likewise.
* linux/or1k/syscallent.h: Likewise.
* linux/s390/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/powerpc/syscallent.h: Change sync_file_range to
sync_file_range2, set the number of sync_file_range2 arguments to 6.
* linux/tile/syscallent.h: Change sync_file_range to sync_file_range2,
set the number of sync_file_range2 arguments to 4.
* linux/tile/syscallent1.h: Change sync_file_range to sync_file_range2.
update handler.
* linux/xtensa/syscallent.h: Likewise.
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent-o32.h
inux/or1k/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/sh/syscallent.h
inux/tile/syscallent.h
inux/tile/syscallent1.h
inux/xtensa/syscallent.h
cbd4e922ac1be0d4cb3af912f88893e6ed53f27d 08-May-2013 Dmitry V. Levin <ldv@altlinux.org> Add syscall entries for new linux syscalls

* linux/dummy.h: Add printargs aliases for sys_finit_module, sys_kcmp
and sys_sync_file_range2.
* linux/alpha/syscallent.h: Add entries for process_vm_readv
and process_vm_writev.
* linux/bfin/syscallent.h: Likewise.
* linux/arm/syscallent.h: Add entries for sync_file_range2, kcmp
and finit_module.
* linux/hppa/syscallent.h: Add entries for process_vm_readv,
process_vm_writev, kcmp and finit_module.
* linux/tile/syscallent.h: Likewise.
* linux/tile/syscallent1.h: Likewise.
* linux/ia64/syscallent.h: Add entry for finit_module.
* linux/i386/syscallent.h: Add entries for kcmp and finit_module.
* linux/m68k/syscallent.h: Likewise.
* linux/metag/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
* linux/mips/syscallent-n32.h: Likewise.
* linux/mips/syscallent-n64.h: Likewise.
* linux/mips/syscallent-o32.h: Likewise.
* linux/or1k/syscallent.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/x32/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
* linux/xtensa/syscallent.h: Likewise.
* linux/s390/syscallent.h: Add entries for s390_runtime_instr, kcmp
and finit_module.
* linux/s390x/syscallent.h: Likewise.
* linux/sparc/syscallent.h: Add entries for kern_features, kcmp
and finit_module.
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/bfin/syscallent.h
inux/dummy.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/metag/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent-n32.h
inux/mips/syscallent-n64.h
inux/mips/syscallent-o32.h
inux/or1k/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent.h
inux/tile/syscallent1.h
inux/x32/syscallent.h
inux/x86_64/syscallent.h
inux/xtensa/syscallent.h
56ef5ef90f23e1875247b1ee2b74549845c3eb63 08-May-2013 Dmitry V. Levin <ldv@altlinux.org> tests/net: fix portability issues

* tests/net-accept-connect.c: Fix address length passed to bind()
and connect().
* tests/net: Update regexps.
ests/net
ests/net-accept-connect.c
47b0dcca2b5ccb7e64a9de42d5d9d562e650bf17 08-May-2013 Dmitry V. Levin <ldv@altlinux.org> tests: add a test for basic network syscalls

* tests/.gitignore: Add net-accept-connect, *.o and *.log.*.
* tests/Makefile.am (AM_CFLAGS): New variable.
(check_PROGRAMS): Add net-accept-connect.
(TESTS): Add net.
* tests/net-accept-connect.c: New file.
* tests/net: New file.
ests/.gitignore
ests/Makefile.am
ests/net
ests/net-accept-connect.c
56fb81c696601f6b66ce77fa8732ae9f2fec4e99 08-May-2013 Dmitry V. Levin <ldv@altlinux.org> tests: do not skip tests when timeout utility is not available

* tests/init.sh (check_timeout): New function.
* tests/ptrace_setoptions: Use it.
* tests/qual_syscall: Likewise.
* tests/stat: Likewise.
* tests/strace-f: Likewise.
ests/init.sh
ests/ptrace_setoptions
ests/qual_syscall
ests/stat
ests/strace-f
de462cf99b2826a564f026cf79b631a1e10dad85 07-May-2013 Dmitry V. Levin <ldv@altlinux.org> Move subcall decoding configuration out of the common code

* Makefile.am (EXTRA_DIST): Add linux/subcall.h.
* linux/syscall.h (SYS_socket_subcall): Remove.
(SYS_socket_nsubcalls, SYS_ipc_subcall, SYS_ipc_nsubcalls): Move to ...
* linux/subcall.h: ... new file.
* linux/arm/syscallent.h: Define SYS_socket_subcall, include subcall.h.
* 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.

Suggested by Mike Frysinger and Chris Metcalf.
akefile.am
inux/arm/syscallent.h
inux/i386/syscallent.h
inux/m68k/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/subcall.h
inux/syscall.h
ebe3d3a64027b3467dc617f4dc08b7c36a64b8de 07-May-2013 Dmitry V. Levin <ldv@altlinux.org> sparc: remove some unused declarations and macros

* linux/syscall.h [SPARC || SPARC64] (sys_msgsys, sys_semsys,
sys_shmsys): Remove declarations.
[SPARC || SPARC64] (SYS_semsys_subcall, SYS_semsys_nsubcalls,
SYS_msgsys_subcall, SYS_msgsys_nsubcalls, SYS_shmsys_subcall,
SYS_shmsys_nsubcalls): Remove macros.
inux/syscall.h
3883ab84388efe01962e4164911508af24d3f2f5 07-May-2013 Mike Frysinger <vapier@gentoo.org> mips: fix build regression

The recent commit (2690fadc8b35190dddd29274a7405bac13adc469) shuffled
the mips headers around causing it to check the ABI defines before it
included the header which set those up. Now all mips builds fail with:
In file included from count.c:36:0:
defs.h:48:4: error: #error Unsupported _MIPS_SIM

* defs.h [MIPS]: Move sgidefs.h above _MIPS_SIM check.
efs.h
f6c246f224d65f9b14f536f28d5024cc9e3fee02 07-May-2013 James Hogan <james.hogan@imgtec.com> metag: rename llseek syscall to _llseek

The raw llseek syscall is called _llseek from userland, so fix the
naming of it for metag to allow the stat test to pass.

* linux/metag/syscallent.h: Rename llseek syscall to _llseek.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
inux/metag/syscallent.h
28927cd868a0321681154ff657f7db7a9b4aef20 07-May-2013 James Hogan <james.hogan@imgtec.com> metag: disable socket and ipc subcall support

The metag architecture also uses dedicated syscalls and doesn't need to
multiplex ipc and socket subcalls.

* linux/syscall.h [METAG]: Do not define SYS_socket_subcall and
SYS_ipc_subcall.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
inux/syscall.h
5273cb7d607e89043a80da36cf13580567c0dcd0 07-May-2013 Dmitry V. Levin <ldv@altlinux.org> pread, pwrite: fix number of syscall arguments

The number of pread and pwrite arguments depends on architecture and
personality. For 64bit and ilp32 it equals to 4, for unaligned
32bit it equals to 5, and for aligned 32bit it equals to 6.

* linux/aarch64/syscallent1.h: Change the number of pread and pwrite
arguments to 4.
* linux/alpha/syscallent.h: Likewise.
* linux/mips/syscallent-n32.h: Likewise.
* linux/mips/syscallent-n64.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/tile/syscallent.h: Likewise.
* linux/x32/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
* linux/or1k/syscallent.h: Change the number of pread and pwrite
arguments to 5.
inux/aarch64/syscallent1.h
inux/alpha/syscallent.h
inux/mips/syscallent-n32.h
inux/mips/syscallent-n64.h
inux/or1k/syscallent.h
inux/s390x/syscallent.h
inux/sh64/syscallent.h
inux/tile/syscallent.h
inux/x32/syscallent.h
inux/x86_64/syscallent.h
ea5a07968439a79a770fb35071ba555c2c3c54b5 07-May-2013 Dmitry V. Levin <ldv@altlinux.org> preadv, pwritev: fix number of syscall arguments

The number of preadv and pwritev arguments depends on architecture and
personality. For 64bit and ilp32 it equals to 4, for unaligned 32bit
it equals to 5, and for aligned 32bit it equals to 6.

* linux/aarch64/syscallent1.h: Change the number of preadv and pwritev
arguments to 4.
* linux/alpha/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Likewise.
* linux/mips/syscallent-n32.h: Likewise.
* linux/mips/syscallent-n64.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/tile/syscallent.h: Likewise.
* linux/x32/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
* linux/powerpc/syscallent.h: Change the number of preadv and pwritev
arguments to 6.
* linux/sh/syscallent.h: Likewise.
* linux/xtensa/syscallent.h: Likewise.
inux/aarch64/syscallent1.h
inux/alpha/syscallent.h
inux/ia64/syscallent.h
inux/mips/syscallent-n32.h
inux/mips/syscallent-n64.h
inux/powerpc/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/tile/syscallent.h
inux/x32/syscallent.h
inux/x86_64/syscallent.h
inux/xtensa/syscallent.h
54aee7a38c0c70e468254e1d6c4ef61f36a128f8 07-May-2013 Dmitry V. Levin <ldv@altlinux.org> ftruncate64, truncate64: fix number of syscall arguments

The number of ftruncate64/truncate64 arguments depends on architecture
and personality. For 64bit and ilp32 it equals to 2, for unaligned
32bit it equals to 3, and for aligned 32bit it equals to 4.

* linux/or1k/syscallent.h: Change the number of ftruncate64 and
truncate64 arguments to 3.
* linux/sh/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Change ftruncate64 and truncate64 handlers.
* linux/sparc/syscallent.h: Change ftruncate64 handler, change the
number of its arguments to 3.
* linux/xtensa/syscallent.h: Change the number of ftruncate64 and
truncate64 arguments to 4.
inux/or1k/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/xtensa/syscallent.h
eb1cc1568ccaac829436c70d1627a6b090df37eb 07-May-2013 Dmitry V. Levin <ldv@altlinux.org> fallocate: fix number of syscall arguments

The number of fallocate arguments depends on architecture and
personality. For 64bit and ilp32 it equals to 4,
for 32bit it equals to 6.

* linux/aarch64/syscallent1.h: Change the number of fallocate arguments
to 4.
* linux/alpha/syscallent.h: Likewise.
* linux/mips/syscallent-n32.h: Likewise.
* linux/mips/syscallent-n64.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/tile/syscallent.h: Likewise.
* linux/x32/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Set fallocate handler and flags.
inux/aarch64/syscallent1.h
inux/alpha/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent-n32.h
inux/mips/syscallent-n64.h
inux/s390x/syscallent.h
inux/sh64/syscallent.h
inux/tile/syscallent.h
inux/x32/syscallent.h
inux/x86_64/syscallent.h
3f4a41a55de2f29bb1a38947ce83bf21073647cb 07-May-2013 Dmitry V. Levin <ldv@altlinux.org> fadvise64, fadvise64_64: fix handlers and number of syscall arguments

The number of fadvise64 arguments depends on architecture and
personality. For 64bit and ilp32 it equals to 4, for unaligned
32bit it equals to 5, and for aligned 32bit it equals to 6.

The number of fadvise64_64 arguments is 4 for 64bit and ilp32, for
unaligned 32bit and most of aligned 32bit it equals to 6, and for
mips o32 it equals to 7.

* linux/alpha/syscallent.h: Set fadvise64 handler.
* linux/s390/syscallent.h: Likewise.
* linux/hppa/syscallent.h: Set fadvise64_64 handler, change the number
of syscall arguments to 6.
* linux/ia64/syscallent.h: Change the number of fadvise64 arguments
to 4.
* linux/mips/syscallent-n32.h: Likewise.
* linux/tile/syscallent1.h: Change the number of fadvise64 arguments
to 5.
* linux/mips/syscallent-o32.h: Change the number of fadvise64_64
arguments to 7.
* linux/s390x/syscallent.h: Change fadvise64_64 handler. Set fadvise64
handler. Change numbers of fadvise64 and fadvise64_64 arguments to 4.
* linux/sh64/syscallent.h: Change fadvise64_64 handler.
Change numbers of fadvise64 and fadvise64_64 arguments to 4.
* linux/sparc/syscallent.h: Set fadvise64 and fadvise64_64 handlers,
change numbers of their arguments to 5 and 6.
* linux/x86_64/syscallent.h: Change fadvise64 handler.
inux/alpha/syscallent.h
inux/hppa/syscallent.h
inux/ia64/syscallent.h
inux/mips/syscallent-n32.h
inux/mips/syscallent-o32.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent1.h
inux/x86_64/syscallent.h
2690fadc8b35190dddd29274a7405bac13adc469 07-May-2013 Dmitry V. Levin <ldv@altlinux.org> mips o32: raise the max number of syscall arguments to 7

On mips o32, fadvise64_64 takes 7 arguments.

* defs.h [LINUX_MIPSO32]: Raise MAX_ARGS to 7.
efs.h
34c445b5c64ca70096f190f1abea9b4788ee6414 07-May-2013 Dmitry V. Levin <ldv@altlinux.org> mips: split syscallent.h

linux/mips/syscallent.h consisted of several parts that had little in
common. Split them into separate files to ease maintenance.

* linux/mips/syscallent-compat.h: New file.
* linux/mips/syscallent-n32.h: Likewise.
* linux/mips/syscallent-n64.h: Likewise.
* linux/mips/syscallent-o32.h: Likewise.
* linux/mips/syscallent.h: Include them.
* Makefile.am (EXTRA_DIST): Add them.
akefile.am
inux/mips/syscallent-compat.h
inux/mips/syscallent-n32.h
inux/mips/syscallent-n64.h
inux/mips/syscallent-o32.h
inux/mips/syscallent.h
4996b3a352a5853114e2d0426f3e0fade4e90b3d 07-May-2013 Dmitry V. Levin <ldv@altlinux.org> readahead: fix number of syscall arguments

The number of readahead arguments depends on architecture and
personality. For 64bit and ilp32 it equals to 3, for unaligned 32bit it
equals to 4, and for aligned 32bit it equals to 5.

* linux/aarch64/syscallent1.h: Set number of readahead arguments to 3.
* linux/alpha/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/x32/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
* linux/or1k/syscallent.h: Set number of readahead arguments to 4.
* linux/sh/syscallent.h: Likewise.
* linux/tile/syscallent.h: Likewise.
* linux/xtensa/syscallent.h: Set number of readahead arguments to 5.
inux/aarch64/syscallent1.h
inux/alpha/syscallent.h
inux/ia64/syscallent.h
inux/or1k/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/tile/syscallent.h
inux/x32/syscallent.h
inux/x86_64/syscallent.h
inux/xtensa/syscallent.h
828bbd846ef26894b5b9f9e25d7cf302e895d2a2 07-May-2013 Dmitry V. Levin <ldv@altlinux.org> linux/syscall.h: make subcall decoding configuration more readable

* linux/syscall.h: Inverse and sort the subcall ifdef,
add a comment why subcall decoding support is not enabled
on some architectures.
inux/syscall.h
2f6519a9c1953dc33ba42e1c9b2178dc47efea42 07-May-2013 Chris Zankel <chris@zankel.net> xtensa: disable socket and ipc subcall support

The Xtensa architecture also uses dedicated syscalls and doesn't
need to multiplex ipc and socket subcalls.

* linux/syscall.h [XTENSA]: Do not define SYS_socket_subcall and
SYS_ipc_subcall.

Signed-off-by: Chris Zankel <chris@zankel.net>
inux/syscall.h
6b03c9b5ced3d4f0d641443a73bd34ba481dbd1a 06-May-2013 Dmitry V. Levin <ldv@altlinux.org> Fix syscall flags

* linux/aarch64/syscallent1.h: Fix syscall flags for send.
* linux/alpha/syscallent.h: Fix syscall flags for fchdir, getcwd,
oldumount, sigaltstack, umount, uselib, and utimes.
* linux/arm/syscallent.h: Fix syscall flags for close, creat, dup, dup2,
fchdir, fchmod, fchown, fchown32, fcntl, fcntl64, fdatasync, flock,
fsetxattr, fsync, getdents, getdents64, ioctl, oldfstat, oldselect,
open, pipe, poll, pread, pwrite, read, readahead, readdir, readv,
select, socketcall, write, and writev.
* linux/avr32/syscallent.h: Fix syscall flags for inotify_init and
unshare.
* linux/bfin/syscallent.h: Fix syscall flags for pread64 and pwrite64.
* linux/hppa/syscallent.h: Fix syscall flags for fchdir, flistxattr,
getcwd, pause, signal, umount2, uselib, utime, and vfork.
* linux/ia64/syscallent.h: Fix syscall flags for creat, fchdir,
lstat, umount, uselib, and utimes. Fix syscall handlers for
fgetxattr, flistxattr, fremovexattr, and fsetxattr.
* linux/m68k/syscallent.h: Fix syscall flags for close, creat, dup,
dup2, fchdir, fchmod, fchown, fchown32, fcntl, fcntl64, fdatasync,
flock, fsetxattr, getdents, ioctl, oldfstat, oldselect, open, pipe,
poll, pread64, pwrite64, read, readahead, readdir, readv, select,
socketcall, write, and writev.
* linux/metag/syscallent.h: Fix syscall flags for fanotify_init,
prlimit64, process_vm_readv, process_vm_writev, and quotactl.
* linux/microblaze/syscallent.h: Fix syscall flags for close, creat,
dup, dup2, fchdir, fchmod, fchown, fchown32, fcntl, fcntl64,
fdatasync, flock, fsetxattr, getdents, ioctl, oldfstat, oldselect,
open, perf_event_open, pipe, poll, pread64, pwrite64, read, readahead,
readdir, readv, select, socketcall, write, and writev.
* linux/mips/syscallent.h: Fix syscall flags for close, creat, dup,
dup2, fchdir, fchmod, fchown, fcntl, fcntl64, fdatasync, flock,
fsetxattr, getdents, getdents64, getxattr, ioctl, lgetxattr,
listxattr, llistxattr, lremovexattr, lsetxattr, oldfstat, open, pipe,
pivot_root, poll, pread, pwrite, read, readahead, readv, removexattr,
select, setxattr, socketcall, statfs, write, and writev.
* linux/or1k/syscallent.h: Fix syscall flags for fchdir and quotactl.
* linux/powerpc/syscallent.h: Fix syscall flags for fchdir.
* linux/sh/syscallent.h: Fix syscall flags for getcwd.
* linux/sparc/syscallent.h: Fix syscall flags for getresgid, getresuid,
setresgid, setresgid32, and setresuid.
* linux/xtensa/syscallent.h: Fix syscall flags for close, creat, dup,
dup2, fallocate, fchdir, fchmod, fchown, fcntl, fcntl64, fdatasync,
flock, fsetxattr, fstatfs, fstatfs64, fsync, getdents, getdents64,
ioctl, open, pipe, pivot_root, poll, pread64, pwrite64, read,
readahead, readv, rt_sigreturn, select, setfsgid, setfsuid, setuid,
swapoff, times, utime, write, and writev.
inux/aarch64/syscallent1.h
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/metag/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/or1k/syscallent.h
inux/powerpc/syscallent.h
inux/sh/syscallent.h
inux/sparc/syscallent.h
inux/xtensa/syscallent.h
53f6795d750794ca47d6ccdd1bc0bd1dbb7c6bfc 06-May-2013 Dmitry V. Levin <ldv@altlinux.org> tests/stat: enhance regexps

* tests/stat: Enhance regexps that check tracing of stat/stat64 and
fstatat/fstatat64 syscalls.
ests/stat
6f11acd360f7e49149f7830d289399e4b7cf6a77 06-May-2013 Chris Metcalf <cmetcalf@tilera.com> tests/stat: support fstatat syscall for stat()

Newer Linux architectures don't support the stat/stat64 syscalls.
Instead they use fstatat() with AT_FDCWD and an extra flags argument.
Support seeing this output in the 'strace -efile' test.

As part of this change, use "grep -E -x" syntax consistently for
all stat tests, since the number of \(foo\)\? expressions was becoming
pretty unwieldy.

* tests/stat: Update stat/stat64 check regexp to handle architectures
that use fstatat instead. Use "grep -E -x" syntax consistently.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
ests/stat
8e096c4ec507d9de1dd2f0d86ae925eb34b57053 06-May-2013 Dmitry V. Levin <ldv@altlinux.org> ARM OABI: fix 64-bit arguments decoding

ARM OABI and ARM EABI have different function parameters passing rules,
see commit v4.6-11-g7a5b08f for details.

* util.c (printllval): Do not align argument number in case of ARM OABI.
* file.c (sys_fadvise64_64): Likewise.
ile.c
til.c
a32b6837044c54957b9b90954e246a56c9bef403 06-May-2013 Mike Frysinger <vapier@gentoo.org> printllval: fix 64bit unpacking on mips/o32 and xtensa

The mips/o32 ABI and xtensa arch also do 64bit aligning, so add it to the
printllval list for this.

Normally for sys_fadvise64_64 we'd handle the same list of arches, but
mips/o32 ABI is funky and doesn't shift -- it has 7 args. So just add
xtensa to it.

* file.c (sys_fadvise64_64): Add XTENSA to the shifted list.
* util.c (printllval): Add LINUX_MIPSO32 and XTENSA to the shifted list.
ile.c
til.c
c7b2f0c74e4a60a57027eefe8fee6a723b9b278f 06-May-2013 Chris Metcalf <cmetcalf@tilera.com> tile: disable socket and ipc subcall support

The tile arch just has the dedicated syscalls, so disable
the logic for parsing subcalls.

* linux/syscall.h [TILE]: Do not define SYS_socket_subcall and
SYS_ipc_subcall.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
inux/syscall.h
6b572cfd2b2a65818f4164b896a59ae59a762c82 06-May-2013 Mike Frysinger <vapier@gentoo.org> Blackfin: disable socketcall and ipc subcall support

The Blackfin arch does not have a socketcall or ipc subcall
(it has dedicated syscalls broken out), so disable the logic for it.

* linux/syscall.h [BFIN]: Do not define SYS_socket_subcall and
SYS_ipc_subcall.
inux/syscall.h
554c8beaab866e84ab65efee7de73708006495b8 05-May-2013 Mike Frysinger <vapier@gentoo.org> s390: fix # of args truncate64/ftruncate64 takes

* linux/s390/syscallent.h: Change nargs to 3 for truncate64/ftruncate64.
inux/s390/syscallent.h
2f99788e8f41fbcf5202395707c969aecff64149 05-May-2013 Mike Frysinger <vapier@gentoo.org> mtd: clamp ubi name strings

Since the length fields with the ubi volnames are signed 16bit values,
make sure we clamp that number to the size of the buffer we've allocated
on the stack to prevent buffer overflows.

* mtd.c (ubi_ioctl): Clamp length to string_quote to 0/UBI_MAX_VOLUME_NAME.
Check the return of string_quote and tweak the output accordingly.
td.c
7a498be266b80b7fef70fe74deed269ae3881525 04-May-2013 Dmitry V. Levin <ldv@altlinux.org> printxval: support more architectures

* configure.ac: Define SIZEOF_LONG_LONG.
* util.c (printllval): Handle all architectures with sizeof(long) > 4
and sizeof(long) == sizeof(long long).
onfigure.ac
til.c
80acf62207377f67f3245408e24562ed014358e0 04-May-2013 Mike Frysinger <vapier@gentoo.org> Fix building for sparc64 targets

* util.c (printllval): Handle SPARC64 define.
til.c
921744d5e72022e68158efa7052f1d7ebe193cc1 04-May-2013 Mike Frysinger <vapier@gentoo.org> Fix building for mips n64 targets

* util.c (printllval): Handle LINUX_MIPSN64 define.
til.c
8d5f11585cd33e97fe06852e55d63d0a1929d21d 04-May-2013 Dmitry V. Levin <ldv@altlinux.org> hppa: fix stat64 and fstat64 decoding

* file.c [HPPA]: Do not redefine stat64 to hpux_stat64.
ile.c
a55b6b193c0bc7e84fd3b56be20ce546c51eb068 04-May-2013 Dmitry V. Levin <ldv@altlinux.org> arm, aarch64, ppc: fix printllval-based decoders

* util.c (printllval) [ARM || POWERPC]: Align argument number.
[AARCH64]: Align argument number in 32bit mode.
* file.c (sys_fadvise64_64) [ARM || POWERPC]: Remove no longer needed
printllval workaround.
[AARCH64]: Fix printing POSIX_FADV_* constants in 32bit mode.
ile.c
til.c
d648f29cc3aeabf0a0430f8ab12ce35fa6c4e48e 02-May-2013 Mike Frysinger <vapier@gentoo.org> Decode mtd/ubi ioctls

Been playing with UBI of late and it'd help if I could see what it was
doing. Not entirely sure about the decoding of UBI_IOCVOLUP -- it takes
a pointer to a 64bit value, not a strict.

* util.c (MAX, MIN): Move to ...
* defs.h (MAX, MIN): ... here.
(CLAMP): Define.
(ubi_ioctl): New prototype.
* ioctl.c (ioctl_decode): Call ubi_ioctl when code is 'o' or 'O'.
* mtd.c: Include ubi user API header.
(ubi_volume_types): New enum decode.
(ubi_volume_props): Likewise.
(ubi_ioctl): Define.
* linux/ubi-user.h: Import from linux 3.8.
efs.h
octl.c
inux/ubi-user.h
td.c
til.c
48d3159d67e5786c94c3e51ce9d2a45cb4470e1a 02-May-2013 Mike Frysinger <vapier@gentoo.org> test: add mtd/ubi test helpers

I used these to develop the mtd/ubi ioctl decoders.

* test/.gitignore: Add mtd/ubi.
* test/Makefile: Declare all tests in a PROGS var.
Declare build targets .PHONY.
(all): Depend on $(PROGS) instead of hardcoded list.
(clean): Remove $(PROGS) instead of hardcoded list.
* test/mtd.c: New file.
* test/ubi.c: Likewise.
est/.gitignore
est/Makefile
est/mtd.c
est/ubi.c
b51ce624548b13aeead20cf519567a1ee9349749 02-May-2013 Mike Frysinger <vapier@gentoo.org> test: include headers for used funcs

These funcs use things like wait/write/read/strcmp but sometimes
don't include the right header for them.

* test/Makefile: Add -Wall to CFLAGS.
* test/clone.c: Include unistd.h.
* test/fork.c: Include sys/wait.h.
* test/sig.c: Include unistd.h.
* test/sigkill_rain.c: Include sys/wait.h.
* test/vfork.c: Include sys/wait.h.
* test/wait_must_be_interruptible.c: Include string.h
est/Makefile
est/clone.c
est/fork.c
est/sig.c
est/sigkill_rain.c
est/vfork.c
est/wait_must_be_interruptible.c
8582f881eecc08f7c633af4d49bc14bd96539454 03-May-2013 Dmitry V. Levin <ldv@altlinux.org> ia64: fix compilation warnings introduced by commit v4.7-174-g44f0ed1

* linux/ia64/syscallent.h: Undefine sys_oldlstat, sys_lstat and
sys_lstat64 before redefining them to printargs.

Reported-by: Mike Frysinger <vapier@gentoo.org>
inux/ia64/syscallent.h
1970da0aa85bfe1bd9c16de97d1a4792a8874047 02-May-2013 Mike Frysinger <vapier@gentoo.org> tests: stat: fix clean up of sample file

* tests/stat: Also rm the sample file at the end of the test.
ests/stat
d26d011078590701eaeb32c86b2aa01b171cf386 02-May-2013 Mike Frysinger <vapier@gentoo.org> Ignore more files

* .gitignore: Add gdb related files.
* tests/.gitignore: Ignore test logs.
gitignore
ests/.gitignore
7ae4a88285b21151b172310ce41061eb68f5b591 02-May-2013 Dmitry V. Levin <ldv@altlinux.org> x32: fix decoding of i386 truncate and ftruncate syscalls

* linux/x32/syscallent1.h: Remove sys_*truncate64 redirections.
inux/x32/syscallent1.h
0b468833390a78395be48f70d582a6679ab28a76 02-May-2013 Dmitry V. Levin <ldv@altlinux.org> x32: fix printllval-based decoders of i386 syscalls

* util.c (printllval) [X32]: Handle i386 personality.
til.c
318b0dde768e0b2360082c50b286e003f914a49f 02-May-2013 Dmitry V. Levin <ldv@altlinux.org> tests: add basic test for ftruncate, lseek and stat family syscalls

* tests/stat: New test.
* tests/Makefile.am (TESTS): Add stat.
ests/Makefile.am
ests/stat
0eeda2cdaac422a1510be642571771d22c5349d6 01-May-2013 Dmitry V. Levin <ldv@altlinux.org> x32: fix build regressions introduced by commit v4.7-96-g8435d67

* desc.c (printflock) [X32]: Add special handling required for
this architecture with sizeof(long) < sizeof(off_t).
* file.c [X32] (struct stat64): Add __attribute__((packed)).
[X32] (HAVE_STAT64): Define.
(printstat) [X32]: Redirect to printstat64.
(printstat64) [X32]: Use "struct stat" instead of "struct stat64".
[X32] (realprintstat64): Rename to printstat64_x32.
(sys_stat64, sys_fstat64) [X32]: Remove second definitions of these
functions. Call printstat64_x32 instead of printstat64
* linux/x32/syscallent.h: Fix handlers for truncate and ftruncate.
esc.c
ile.c
inux/x32/syscallent.h
44f0ed1ca560cad60194ae0542b9e223bdeff92b 01-May-2013 Dmitry V. Levin <ldv@altlinux.org> Alias sys_*lstat* syscall printing functions

* file.c (sys_lstat, sys_lstat64, sys_oldlstat): Remove.
* linux/dummy.h: Move !HAVE_STRUCT___OLD_KERNEL_STAT aliases forward.
(sys_lstat): Alias to sys_stat.
(sys_lstat64): Alias to sys_stat64.
(sys_oldlstat): Alias to sys_oldstat.
* linux/syscall.h (sys_lstat, sys_lstat64, sys_oldlstat): Remove.
* linux/x32/syscallent1.h (sys_lstat64): Remove.
ile.c
inux/dummy.h
inux/syscall.h
inux/x32/syscallent1.h
e67e9f89ca8109ae31be07fbc1dd4d425c1f13da 01-May-2013 Dmitry V. Levin <ldv@altlinux.org> x86_64: decode __old_kernel_stat based syscalls

* linux/x86_64/syscallent1.h: Remove sys_old*stat redirections.
inux/x86_64/syscallent1.h
bd2e28ac51d36d348c8ab7d7f8523a7075edaff4 01-May-2013 Dmitry V. Levin <ldv@altlinux.org> x32: fix decoding of __old_kernel_stat based syscalls

* file.c [X32] (struct __old_kernel_stat): Define.
* linux/x32/syscallent1.h: Remove sys_old*stat redirections.
ile.c
inux/x32/syscallent1.h
554e6f3240bcd6110214685371745278b43a8ab7 01-May-2013 James Hogan <james.hogan@imgtec.com> test/threaded_execve: fix on metag

The metag ABI has stacks growing upwards so clone expects the stack
argument to point at the bottom of the stack instead of the top.

* test/threaded_execve.c [__metag__]: Define clone2 differently
to avoid a segfault at runtime.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
est/threaded_execve.c
5cf23c53b8a96269ef72b6d675c811c8132ae5ec 01-May-2013 James Hogan <james.hogan@imgtec.com> test/skodic: make a bit more portable

* test/skodic.c (main): Don't use MAP_FIXED since valid virtual addresses
vary between architectures (as far as I can tell the use of MAP_FIXED is
not relevant to the test). Also don't assume the file desriptor returned
by open call is 3 when passing it to mmap.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
est/skodic.c
6303f357793be8be7860cf257fed0efd427c0f98 01-May-2013 Mike Frysinger <vapier@gentoo.org> printllval: handle s390x

This is a 64bit arch w/no personalities, so fix printing.
It can now trace a simple call like readahead:
$ cat test.c
main(){readahead(-1, (unsigned long long)1 << 50, 0);}
$ gcc test.c
$ ./strace -ereadahead ./a.out
readahead(-1, 1125899906842624, 0) = -1 EBADF (Bad file descriptor)

* util.c (printllval): Handle S390X define.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
til.c
bb3a0f7ad3353bd0e44ee004d44aeab6706705cc 01-May-2013 Mike Frysinger <vapier@gentoo.org> Stop using old AM_CONFIG_HEADER macro

Building with automake-1.13 throws an error:
configure.ac:6: error: 'AM_CONFIG_HEADER': this macro is obsolete.
You should use the 'AC_CONFIG_HEADERS' macro instead.

* configure.ac (AM_CONFIG_HEADER): Rename to AC_CONFIG_HEADERS.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
onfigure.ac
dce7593cabc1702969ce5b78b0be7bc393374584 01-May-2013 Dmitry V. Levin <ldv@altlinux.org> build: introduce git-version-gen

* .gitignore: Add .version.
* Makefile.am (EXTRA_DIST, BUILT_SOURCES): Add $(srcdir)/.version.
Add rules to check NEWS, generate $(srcdir)/.version and
$(distdir)/.tarball-version files.
Change ChangeLog and CREDITS generation rules to depend on
$(srcdir)/.version instead of $(srcdir)/.git/refs/heads/*.
* NEWS: Add dates to recent releases.
* configure.ac (AC_INIT): Use git-version-gen.
(AM_INIT_AUTOMAKE): Remove check-news.
* git-version-gen: Import from gnulib.
* make-dist: Check NEWS.
gitignore
akefile.am
EWS
onfigure.ac
it-version-gen
ake-dist
7ae73a91e910f8f68a401d88bcc1d10ec28526c3 01-May-2013 Dmitry V. Levin <ldv@altlinux.org> Makefile.am: sort long lists to ease maintenance

* Makefile.am (strace_SOURCES, EXTRA_DIST): Sort, place one list element
per line.
akefile.am
07f022903e077a04fefd0c6132a706b7a50a7067 01-May-2013 Dmitry V. Levin <ldv@altlinux.org> build: fix "make dist" regression introduced by commit v4.7-105-g7270de5

* Makefile.am (EXTRA_DIST): Remove linux/arm/syscallent1.h,
linux/arm/signalent1.h, linux/arm/ioctlent1.h and linux/arm/errnoent1.h.
akefile.am
3e3285c6f1e4bafb076edb9c0d02fe2ba44fc0ea 01-May-2013 Dmitry V. Levin <ldv@altlinux.org> build: fix "make dist" regression introduced by commit v4.7-29-g17e3860

* Makefile.am (EXTRA_DIST): Add linux/ioctlent-filter.awk.
akefile.am
149d7de7e7ab53dd8c5bd63147c704988e65ce35 03-Apr-2013 Mike Frysinger <vapier@gentoo.org> Blackfin: tweak sram_alloc syscall decode

* system.c (sys_sram_alloc): The 2nd argument of sram_alloc syscall
is a bit field, not a specific value, so decode it as such.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
ystem.c
72cdefbb72d3bd376fbcaa97c41666388cc31e92 31-Mar-2013 Zev Weiss <zev@bewilderbeest.net> Print io_submit() offsets in decimal

This makes output formatting more consistent with pread()/pwrite(),
which print their offset parameters in decimal.

* desc.c (sys_io_submit): Change offset output format from %llx to %lld.

Signed-off-by: Zev Weiss <zev@bewilderbeest.net>
esc.c
d2ab7fd3a0837ecae8e0394ba700a06c0550ddd7 30-Mar-2013 Andreas Schwab <schwab@suse.de> Fix building outside source directory

The file linux/ioctlent.h is generated in the build directory, so
"../ioctlent.h" won't find it.

* linux/aarch64/ioctlent1.h: Remove "../" from include file name.
* linux/powerpc/ioctlent1.h: Likewise.
* linux/tile/ioctlent1.h: Likewise.
* linux/x32/ioctlent1.h: Likewise.
* linux/x86_64/ioctlent1.h: Likewise.
* linux/x86_64/ioctlent2.h: Likewise.

Signed-off-by: Andreas Schwab <schwab@suse.de>
inux/aarch64/ioctlent1.h
inux/powerpc/ioctlent1.h
inux/tile/ioctlent1.h
inux/x32/ioctlent1.h
inux/x86_64/ioctlent1.h
inux/x86_64/ioctlent2.h
341d09a8fe29da9e8292a5b35c990bd55506c59e 30-Mar-2013 Andreas Schwab <schwab@suse.de> AArch64: Fix printing of long long value

* util.c (printllval): Fix printing of long long values on
AArch64.

Signed-off-by: Andreas Schwab <schwab@suse.de>
til.c
b6593deac457290e1c20954e07ad02987ec78764 27-Mar-2013 Dmitry V. Levin <ldv@altlinux.org> Update PR_* constants

* process.c (prctl_options): Add more PR_* constants from linux/prctl.h.
rocess.c
8f636ed12870cdc8e4b38194eb4b701f42ad222b 25-Mar-2013 Chris Zankel <chris@zankel.net> Add support for the XTENSA architecture

* configure.ac: Add XTENSA to the list of supported architectures.
* defs.h: Add XTENSA support.
* linux/xtensa/syscallent.h: New file.
* linux/xtensa/ioctlent.h.in: Likewise.
* process.c (struct_user_offsets): Add XTENSA support.
* signal.c (sys_sigreturn): Likewise.
* syscall.c (printcall, get_scno, get_syscall_args,
get_syscall_result, get_error): Likewise.
* util.c (change_syscall): Likewise.

Signed-off-by: Chris Zankel <chris@zankel.net>
onfigure.ac
efs.h
inux/xtensa/ioctlent.h.in
inux/xtensa/syscallent.h
rocess.c
ignal.c
yscall.c
til.c
6e5f5b3adbb22301942804a2a08af5048e7a9bca 22-Mar-2013 Denys Vlasenko <vda.linux@googlemail.com> Add example script which builds static (possibly cross-compiled) strace

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
uild_static_example.sh
1a4e05d53dec658a061acb9869cb1eb1342cd09d 22-Mar-2013 Elliott Hughes <enh@google.com> Merge "Remove another external/strace build hack."
e10a1e2805e24dd2c59c29dad3316fe58f42b526 22-Mar-2013 Elliott Hughes <enh@google.com> Remove another external/strace build hack.

Change-Id: Iea273b5f22920607d01ed191ced00ace30fc11ea
ndroid.patch
EADME-Android
yscall-android.h
yscall.c
til.c
0c1aba9646e4eb137646ad777e558b38d8243840 22-Mar-2013 Elliott Hughes <enh@google.com> Merge "Remove our wait4 hack."
3b98d134e310bb1cf5d549a1eb8a34d66831b9a5 21-Mar-2013 Elliott Hughes <enh@google.com> Remove our wait4 hack.

Change-Id: I700dbe6e177eecd1457363330b9b9804e2e9a668
ndroid.patch
trace.c
c8938e08ad06ae7bf0f50872ddbb0efbe7bf7560 20-Mar-2013 Dmitry V. Levin <ldv@altlinux.org> Use 64-bit versions of stat, readdir and setrlimit functions when available

strace already has a mechanism to use fopen64 for output when the 64-bit
version of fopen is available on 32-bit architectures. Apply this
mechanism for other three functions to make strace fully adopted for
64-bit types.

* strace.c (struct_stat, stat_file, struct_dirent, read_dir,
struct_rlimit, set_rlimit): New macros.
(startup_attach): Use read_dir.
(startup_child): Use struct_stat and stat_file.
(main): Use struct_rlimit and set_rlimit.
trace.c
68f80e6d1af85336cf6cf89f48f700030bd94d86 20-Mar-2013 Dmitry V. Levin <ldv@altlinux.org> Do not use struct dirent in readdir decoding

struct dirent from libc should not be used for umove'ing into because it
contains fixed size d_name.

* file.c (printdir): Rename to print_old_dirent.
[SH64]: Decode using struct kernel_dirent.
[!SH64]: Decode using an open-coded struct with 32-bit d_ino and d_off.
(sys_readdir): Update.
ile.c
2c42f32518e43b1e5ccb00c19010a799be6858d4 20-Mar-2013 Dmitry V. Levin <ldv@altlinux.org> Do not use off_t in sendfile decoding

sendfile parser used to decode off_t* parameter as a pointer to host
off_t type. With this change, it is decoded as a pointer to target long
type.

* io.c (print_off_t): New function.
(sys_sendfile): Use it.
* linux/aarch64/syscallent1.h: Use sys_sendfile64 for sendfile decoding.
* linux/tile/syscallent.h: Likewise.
* linux/x32/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
* linux/hppa/syscallent.h: Use sys_sendfile64 for sendfile64 decoding.
* linux/metag/syscallent.h: Correct sendfile syscall name.
* linux/or1k/syscallent.h: Likewise.
o.c
inux/aarch64/syscallent1.h
inux/hppa/syscallent.h
inux/metag/syscallent.h
inux/or1k/syscallent.h
inux/tile/syscallent.h
inux/x32/syscallent.h
inux/x86_64/syscallent.h
3b211d8df0c28490b883fb521329faab384d4520 19-Mar-2013 Dmitry V. Levin <ldv@altlinux.org> Fix build with older versions of libaio.h

* configure.ac: When libaio.h is available, check for
struct iocb.u.c.flags, IO_CMD_PWRITE and IO_CMD_PWRITEV.
* desc.c (print_common_flags): Check for HAVE_STRUCT_IOCB_U_C_FLAGS.
(sys_io_submit): Check for HAVE_DECL_IO_CMD_PWRITE and
HAVE_DECL_IO_CMD_PWRITEV.
onfigure.ac
esc.c
c108ba2dbbe631dc3fdbf9f69bd0ac10a72c68cb 18-Mar-2013 Dmitry V. Levin <ldv@altlinux.org> Fix io_submit decoding

* desc.c (print_common_flags, sys_io_submit): Add missing ", " to
SUB_COMMON output, remove extra ", " from SUB_VECTOR output.
esc.c
066a733bc079cdf17b07aa13f8ad0ac521aba30f 18-Mar-2013 Maxin B. John <maxin.john@enea.com> tests: relax check_prog to allow timeout command provided by busybox

Busybox version of timeout doesn't have --version option.
Relax check_prog to handle those cases.

* tests/init.sh (check_prog): Use type builtin to check program
availability.

Signed-off-by: Maxin B. John <maxin.john@enea.com>
ests/init.sh
b787b10e167bd14c77d005f26af31e1d23e81c2b 18-Mar-2013 Dmitry V. Levin <ldv@altlinux.org> Reorganize get_regs code, hopefully without functional changes

* syscall.c [I386 || ARM || OR1K || METAG] (ARCH_REGS_FOR_GETREGSET):
New macro.
(get_regset): Implement for AARCH64, METAG, OR1K and X32.
(get_regs) [AARCH64 || METAG || OR1K || X32]: Use it.
yscall.c
faa177e3d9da5f2d93dff20af19622196dced559 18-Mar-2013 Dmitry V. Levin <ldv@altlinux.org> arm, i386: use PTRACE_GETREGSET if available

* syscall.c [ARM || I386 || X86_64] (get_regset): New function.
(get_regs) [ARM || I386 || X86_64]: Use it.
yscall.c
32c049a9d8f6f50fa475929a9638e4cf6619e96e 18-Mar-2013 Dmitry V. Levin <ldv@altlinux.org> Include <sys/uio.h> and <elf.h> on all architectures

* syscall.c: Include <sys/uio.h> and <elf.h> on all architectures.
yscall.c
27e3ae973af5c70b469a1febe88f1c383fdd323e 18-Mar-2013 Dmitry V. Levin <ldv@altlinux.org> x86-64: enhance PTRACE_GETREGSET test

* syscall.c (get_regs) [X86_64]: Check whether PTRACE_GETREGSET
works regardless of the kernel version.
yscall.c
ee348c60735e35730c3e95b89a4dd89bbcb4e7b5 18-Mar-2013 Dmitry V. Levin <ldv@altlinux.org> x32: use PTRACE_GETREGSET unconditionally

* syscall.c (get_regs) [X32]: Assume that PTRACE_GETREGSET always works
regardless of the kernel version.
yscall.c
0482c5a21da75686960bfa3331c86051efdc99f5 18-Mar-2013 Dmitry V. Levin <ldv@altlinux.org> x86-64, x32: do not include linux/ptrace.h unnecessarily

* syscall.c [X86_64 || X32]: Stop including linux/ptrace.h.
yscall.c
7d5696f11d3c02045001b4ab91a11700f7e05f75 18-Mar-2013 Dmitry V. Levin <ldv@altlinux.org> i386, tile, x32: do not redefine ptrace prototype

* defs.h [I386 || TILE || X32]: Use ptrace prototype from sys/ptrace.h.
efs.h
c41808bcd6c311391ab6b40880aa428d4730f0a4 18-Mar-2013 Dmitry V. Levin <ldv@altlinux.org> ptrace: decode note segment descriptor types

* configure.ac (AC_CHECK_HEADERS): Add elf.h.
* process.c: Include elf.h.
(nt_descriptor_types): New xlat structure.
(sys_ptrace): Use it.
onfigure.ac
rocess.c
3ec134b07ad6154edf85e6452b894ae9c1ce1ebb 14-Mar-2013 Dmitry V. Levin <ldv@altlinux.org> Update MADV_* constants

* mem.c (madvise_cmds): Add more MADV_* constants from
asm-generic/mman-common.h

Reported-by: Robin Hack <hack.robin@gmail.com>
em.c
8050cdc43c7d804cebe7657d6b5fe8bc37700f2c 07-Mar-2013 Denys Vlasenko <vda.linux@googlemail.com> Tweaks for -c: fixed setitimer/getitimer hack; optimized call_summary_pers()

count_syscall() was calling setitimer/getitimer once in order to find
smallest "tick" OS uses in time accounting, in order to use it
for syscalls which apparently spent less than that time in syscall.
The code assumed that this "tick" is not zero... but it is zero
on linux-3.6.11. Which means that this hack doesn't work...

At least this change prevents this measurement from being done
_repeatedly_, by initializing one_tick to -1, not 0.

While at it, added comments in count_syscall() explaining what we are doing.

Optimized call_summary_pers() a bit, by eliminating redundant tv -> float
conversions, and prevented 0.0/0.0 which was resulting in "% time"
being shown as "-nan" if total CPU time spent was 0.000000
(try "strace -c /bin/true").

The code seems to seriously underestimate CPU usage:
"strace -c ls -lR /usr/share >/dev/null" shows total time spent
in syscalls to be only ~10..20% of what "time ls -lR /usr/share >/dev/null"
shows.

It might be useful to have a mode where we show wall clock time
spent in syscalls, not CPU time. It might also be more accurate.

text data bss dec hex filename
245019 676 5708 251403 3d60b strace_old
244923 684 5676 251283 3d593 strace

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ount.c
5198ed4bb36e3105a1f12bb3250bee78b6e0dd72 06-Mar-2013 Denys Vlasenko <vda.linux@googlemail.com> Open-code isprint(c) and isspace(c)

We don't call setlocale, thus we always use C locale.
But libc supports various other locales, and therefore
its ctype interface is general and at times inefficient.
For example, in glibc these macros result in function call,
whereas for e.g. isprint(c) just c >= ' ' && c <= 0x7e
suffices.

By open-coding ctype checks (we have only 4 of them)
we avoid function calls, we get smaller code:

text data bss dec hex filename
245127 680 5708 251515 3d67b strace_old
245019 676 5708 251403 3d60b strace

and we don't link in ctype tables (beneficial for static builds).

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
ile.c
til.c
76f61bec5e3dea55b2b50f2e8009642977b414e5 06-Mar-2013 Denys Vlasenko <vda.linux@googlemail.com> Makefile: add commented-out tweak to generate link map

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
akefile.am
61ad0a401c6d1b7b4c1a209f9d61c3790e1e7d15 06-Mar-2013 Denys Vlasenko <vda.linux@googlemail.com> Stop using a large static buffer in getfdpath

text data bss dec hex filename
245075 680 9836 255591 3e667 strace_old
245143 680 5708 251531 3d68b strace

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
athtrace.c
til.c
7672946e74caa5b7cbc406a6dee4a94638fcf586 05-Mar-2013 Denys Vlasenko <vda.linux@googlemail.com> Fix wrongly indented closing curly brace. No code changes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
lock.c
dafba9bb99ecee458fc7f6cd37151ae1c91ae522 05-Mar-2013 Denys Vlasenko <vda.linux@googlemail.com> strace_vfprintf: if malloc fails, exit gracefully

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
sprintf.c
c76a363af8bfc7b83558253fae38ae3d255e0aa9 05-Mar-2013 Dmitry V. Levin <ldv@altlinux.org> Use sysconf(_SC_PAGESIZE) instead of hardcoded PAGE_SHIFT

PAGE_SHIFT couldn't be reliably obtained at compile time,
thanks to Chris Metcalf for the hint.

* mem.c: Do not include <sys/user.h>.
[SH64] Do not include <asm/page.h>.
(get_pagesize): New function.
(sys_mmap_pgoff, sys_old_mmap_pgoff): Use it.
em.c
aba62927974603bb1ac0b659f6a4f8afb9899c83 05-Mar-2013 Denys Vlasenko <vda.linux@googlemail.com> Emit better message for ERESTARTNOHAND return

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
cc90291f4b4e6b042e977e2e58fb002a61189abe 05-Mar-2013 Denys Vlasenko <vda.linux@googlemail.com> Disable STREAMS syscalls for non-SPARC

text data bss dec hex filename
3002 0 1024 4026 fba stream.o.old
1729 0 1024 2753 ac1 stream.o

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
inux/dummy.h
tream.c
e7db46503d07b306056ec70a4290b022e473734b 05-Mar-2013 Denys Vlasenko <vda.linux@googlemail.com> Fix printstrbufarg's address argument to be long, not int

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
inux/syscall.h
tream.c
38cfe7c92328e940c71074c9b579b5bf9f2cb2f6 05-Mar-2013 Denys Vlasenko <vda.linux@googlemail.com> Remove variable tracing_paths and check in pathtrace_match

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
athtrace.c
trace.c
7239dbcf2dff792f408c60fe3e278f707fdf497b 05-Mar-2013 Denys Vlasenko <vda.linux@googlemail.com> Use dynamically-sized selected[] array for -P PATH

While at it, added a small optimization of not remembering
the path twice if it happens to be the same.

text data bss dec hex filename
245111 680 10860 256651 3ea8b strace_old
245075 680 9804 255559 3e647 strace

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
athtrace.c
trace.1
trace.c
f877982aa2daa571b0e9bc67a3b582c45259d2cd 05-Mar-2013 Denys Vlasenko <vda.linux@googlemail.com> metag,or1k: whitesace style fix. no code changes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
inux/metag/syscallent.h
inux/or1k/syscallent.h
99d3e01eefa315999574e205b9c9d65ab01d1b68 05-Mar-2013 Denys Vlasenko <vda.linux@googlemail.com> Assorted fixes to syscallent.h

or1k was missing TM on many memory-related syscalls
sys_lookup_dcookie is 3-arg on 64-bit arches, and isn't TF
sys_recvmsg is 3-arg on all arches
sys_nfsservctl is 3-arg on all arches
sys_timerfd_create is 2-arg on all arches
sys_[f]truncate64 is 4-arg or 3-arg, never 5-arg
truncate64 is TF
sys_[l]lseek is TD
fstat[64] is TD

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
inux/aarch64/syscallent1.h
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/metag/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/or1k/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent.h
inux/tile/syscallent1.h
inux/x32/syscallent.h
inux/x86_64/syscallent.h
5f999a869b681ff69cbb801225677fc125b6aefd 22-Feb-2013 James Hogan <james.hogan@imgtec.com> Add support for Imagination Technologies Meta

Add support for Imagination Technologies Meta architecture (the
architecture/ABI is usually referred to as metag in code). The Meta
Linux kernel port is in the process of being upstreamed for v3.9 so it
uses generic system call numbers.

sys_lookup_dcookie writes a filename to buffer argument, so I've set
TF flag.
nfsservctl appears to be set to sys_ni_syscall in asm-generic/unistd.h
so I've left it blank.
truncate64/ftruncate64/pread64/pwrite64/readahead have unaligned 64bit
args which are packed tightly on metag, so less arguments on metag.
fchdir/llseek takes a file descriptor so s/TF/TD/
sync_file_range has 2 64bit args so uses 6 args, so s/4/6/
timerfd_create/msgget/msgctl/msgrcv/semget/segtimedop/semop/shmget/
shmctl/shmat/shmdt/recvmsg/migrate_pages have different number of args.
oldgetrlimit is just getrlimit for metag.
add TM flag to various memory syscalls.
metag doesn't directly use sys_mmap_pgoff for mmap2.
prlimit64/process_vm_readv/process_vm_writev take a pid so add TP flag.
fanotify_init doesn't appear to take a file descriptor so remove TD.
Add kcmp syscall.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Christian Svensson <blue@cmd.nu>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
onfigure.ac
efs.h
inux/metag/ioctlent.h.in
inux/metag/syscallent.h
rocess.c
yscall.c
til.c
1694092d7d92953dbee0639ead0ae379f145c4dd 01-Mar-2013 Denys Vlasenko <vda.linux@googlemail.com> umovestr: speed up check for NUL byte in the fetched word

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
til.c
7b9e45e89151c80c5569ad32b4174893258adcec 01-Mar-2013 Dmitry V. Levin <ldv@altlinux.org> Fix trace=set regression introduced by commit v4.7-111-g9cbc15b

* syscall.c (qual_syscall, qualify): Pass personality down to
qualify_one.
* tests/qual_syscall: New test.
* tests/Makefile.am (TESTS): Add qual_syscall.
yscall.c
ests/Makefile.am
ests/qual_syscall
879ddddebab29211e495d99811cbd30a9eaf3055 01-Mar-2013 Chris Metcalf <cmetcalf@tilera.com> tile: handle printllval like x86_64 or powerpc64

Without this fix the tilegx build fails when it hits the new #error
about SIZEOF_LONG > 4.

* util.c (printllval): Fix printing of long long values on TILE.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
til.c
22efaf0028ddec8f9ed2a2a11e9baaa201594a33 27-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Make -b take SYSCALL param, document it in --help and in manpage.

To not waste an option letter for just one trick,
extend -b to take a parameter:
"on which syscalls do you want to detach?".
Currently supports only execve.

While at it, fixed (by removing non-Linux and stale info)
and extended manpage text about -f.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.1
trace.c
9700592e49bd7407c58693f1d397055fa485fc18 26-Feb-2013 Dmitry V. Levin <ldv@altlinux.org> Cleanup umoven and umovestr

Cleanup sloppy error handling.

First, EFAULT kind of errors from process_vm_readv by itself is not
something unusual, so a warning message will not be issued unless a
short read is detected.

Second, clients of umoven and umovestr are not prepared to detect and
handle short reads that can happen in these functions. The most safe
way to handle them is to return an error code.

* util.c (umoven, umovestr): Cleanup handling of errors coming from
process_vm_readv and PTRACE_PEEKDATA.
til.c
1a880cf3bd8c12af6d831c2dfa5b259be074d77a 26-Feb-2013 Dmitry V. Levin <ldv@altlinux.org> pathtrace: fix umovestr return code check

* pathtrace.c (upathmatch): Only NUL-terminated strings can be
path-matched, so fix the umovestr return code check to filter out
unsuitable strings.
athtrace.c
e6f55240a1d599adb160ced4bdad36d8f1fd7b92 26-Feb-2013 Dmitry V. Levin <ldv@altlinux.org> Fix compilation errors uncovered by -Werror=enum-compare

This fixes regression introduced by commit v4.7-111-g9cbc15b.

* syscall.c: Merge all nsyscalls* enums into single enum.
Likewise merge nerrnos*, nsignals*, and nioctlents* into single enums.
yscall.c
905e8e0e2f0a1f51ab92424dcb005885ea8b2459 26-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Mass replace error_msg("%s", "literal") -> error_msg("literal")

There is no need to print literal strings through "%s".
Only untrusted strings such as filenames need that.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ignal.c
trace.c
yscall.c
til.c
1d58fe9b3b925735bde72cac96a042b3cef03037 26-Feb-2013 Ben Noordhuis <info@bnoordhuis.nl> Make umoven report success as 0, not >=0, stop returning success on partial reads

umoven() uses process_vm_readv() when available but it returns the
return value of that syscall, which is the number of bytes copied,
while its callers expect it to simply return zero on success.

It was causing syscalls that take a user-space argument to print
the abbreviated version, e.g.:

epoll_ctl(5, EPOLL_CTL_ADD, 10, {...})

Instead of:

epoll_ctl(5, EPOLL_CTL_ADD, 10, {EPOLLIN, {u32=10, u64=10}})

* util.c (umoven): Make umove[n] report success as 0, not >=0,
stop returning "success" on partial reads.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
til.c
05f325199a6cf36c92560d5a08b56652502705c2 26-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Assorted NOMMU fixes

With -D, strdup'ing of pathname is necessary only on NOMMU.

Don't set skip_startup_execve to 1 if NOMMU and not in daemonized mode
(try "strace [-D] -b env echo HI" to see whether we detach on correct execve).

Fix test_ptrace_FOO shortcuts on NOMMU to always assume success
and _properly_ set all variables.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
trace.c
38e79bbb25bca8b79ae2866b93c4ddf26dea2b13 26-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Shorten help text - no need to show deprecated option -F

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
859ea8b8ccfbfe234b84d5c4f42798f1b8e660a6 23-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Merge adjacent tprint's

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
jm.c
pc.c
b43dacd6d15e8d929cf5a20a50c9c09dc51eacf7 23-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Correct i > MAX_NSYSCALLS commparison: should be i >= MAX_NSYSCALLS

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
f90979b7014b6b158eed6105b1bdf6014cea70f6 22-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Fix wrong offset display in dumpstr

BTW, the new code from prev commit is 5 times faster
than old one :)

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
til.c
763258071ccafd3499979348a5461670bbe20bd8 22-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Fix a bug in dumpstr (no null termination). Essentially rewrote dumpstr

This is a 14 year old bug (!).

It wasn't biting us merely because outstr[80] was static, thus ended up
in bss and whatever was after it "accidentally" provided the NUL byte.
When dumpstr was changed to use on-stack buffer, the bug reared its ugly head.

This is a rewrite which is smaller and should be significantly faster
for _long_ strings.

text data bss dec hex filename
244627 680 10860 256167 3e8a7 strace.t9/strace
244563 680 10860 256103 3e867 strace.ta/strace

* util.c (dumpstr): Rewrite to be faster and smaller.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
til.c
9cbc15b7e72b2f108b886f89778ae606c7b6a526 22-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Eliminate MAX_QUALS, make qualifier array dynamic

MAX_QUALS was 2048, even though most arches used less than 500 entries
in it. MAX_QUALS had to be maintained by hand to be higher than syscall
count. It also limited the highest possible fd to track.

This change makes qual_flagsN[] arrays start sized to the required minimum
(number of syscalls) and grow dynamically if user requested
-e read=BIGNUM. As a precaution, BIGNUM should be < 2^15, but this limit
can be raised with no cost for normal strace invocations.

qual_flags is now a define to qual_vec[current_personality].

As a bonus, this patch aliases sysent, errnoent, signalent, ioctlent
names in one-personality arches to their corresponding <foo>0 arrays,
removing one indirection level.

text data bss dec hex filename
244471 700 12928 258099 3f033 strace.t7/strace
244627 680 10860 256167 3e8a7 strace.t8/strace

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
yscall.c
a9fe13c9437707fa132fde4e51a20d88381e7430 22-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Create and use struct_sysent and struct_ioctlent typedefs.

This is a preparatory mass replace patch with no code changes.

The future change will need to typedef sysent to sysent0,
which results in compile failures when "struct sysent" string
gets mangled into "struct sysent0".

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
o.c
octl.c
athtrace.c
trace.c
yscall.c
40d63b9a92e049986fce1fb91cca10fdd3d3a64a 22-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Use tcp->qual_flg instead of qual_flags[] in verbose() and abbrev()

We have hundreds of uses of these macros.
Result is more efficient and 1.1 kbyte shorter code:

text data bss dec hex filename
245579 700 12928 259207 3f487 strace.t5/strace
244471 700 12928 258099 3f033 strace.t6/strace

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
c1540fe19d0980be3f6a218c91a03983f8a86009 21-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Remove unused QUAL_FAULT code (was used by non-Linux code only).

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
yscall.c
a585c9d6416d5ca7e3af3ffd4887205f06f8286d 21-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Use uint8_t for qual_flags[] instead of ints.

Resulting bss reduction is ~6kbytes:

text data bss dec hex filename
245703 700 19072 265475 40d03 strace.t4/strace
245687 700 12928 259315 3f4f3 strace.t5/strace

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
yscall.c
74ec14f968a418691b851cbbfeb0269174c64b08 21-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Eliminate many SCNO_IS_VALID checks

By adding tcp->s_ent pointer tot syscall table entry,
we can replace sysent[tcp->scno] references by tcp->s_ent.
More importantly, we may ensure that tcp->s_ent is always valid,
regardless of tcp->scno value. This allows us to drop
SCNO_IS_VALID(tcp->scno) checks before we access syscall
table entry.

We can optimize (qual_flags[tcp->scno] & QUAL_foo) checks
with a similar technique.

Resulting code shrink:
text data bss dec hex filename
245975 700 19072 265747 40e13 strace.t3/strace
245703 700 19072 265475 40d03 strace.t4/strace

* count.c (count_syscall): Use cheaper SCNO_IN_RANGE() check.
* defs.h: Add "int qual_flg" and "const struct sysent *s_ent"
to struct tcb. Remove "int u_nargs" from it.
Add UNDEFINED_SCNO constant which will mark undefined scnos
in tcp->qual_flg.
* pathtrace.c (pathtrace_match): Drop SCNO_IS_VALID check.
Use tcp->s_ent instead of sysent[tcp->scno].
* process.c (sys_prctl): Use tcp->s_ent->nargs instead of tcp->u_nargs.
(sys_waitid): Likewise.
* strace.c (init): Add compile-time check that DEFAULT_QUAL_FLAGS
constant is consistent with init code.
* syscall.c (decode_socket_subcall): Use tcp->s_ent->nargs
instead of tcp->u_nargs. Set tcp->qual_flg and tcp->s_ent.
(decode_ipc_subcall): Likewise.
(printargs): Use tcp->s_ent->nargs instead of tcp->u_nargs.
(printargs_lu): Likewise.
(printargs_ld): Likewise.
(get_scno): [MIPS,ALPHA] Use cheaper SCNO_IN_RANGE() check.
If !SCNO_IS_VALID, set tcp->s_ent and tcp->qual_flg to default values.
(internal_fork): Use tcp->s_ent instead of sysent[tcp->scno].
(syscall_fixup_for_fork_exec): Remove SCNO_IS_VALID check.
Use tcp->s_ent instead of sysent[tcp->scno].
(get_syscall_args): Likewise.
(get_error): Drop SCNO_IS_VALID check where it is redundant.
(dumpio): Drop SCNO_IS_VALID check where it is redundant.
Use tcp->s_ent instead of sysent[tcp->scno].
(trace_syscall_entering): Use (tcp->qual_flg & UNDEFINED_SCNO) instead
of SCNO_IS_VALID check. Use tcp->s_ent instead of sysent[tcp->scno].
Drop SCNO_IS_VALID check where it is redundant.
Print undefined syscall name with undefined_scno_name(tcp).
(trace_syscall_exiting): Likewise.
* util.c (setbpt): Use tcp->s_ent instead of sysent[tcp->scno].

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ount.c
efs.h
athtrace.c
rocess.c
trace.c
yscall.c
til.c
7270de551ca6b3ea097c114005b6b028990ce3dc 21-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> ARM: make it one-personality arch

ARM in fact _is_ one personality.

We had two personalities for it because it has a handful of
syscalls with huge scnos (0x000f00xx).

Extending syscall table to have [0x000f0005] index is of course
not a good idea.

Someone decided to handle that by having a separate personality
just for these syscalls.

But multi-personality arch does a bit more work in other parts.

This patch is another alternative: "move" 0x000f00nn syscalls
down to the entries just above last ordinary syscall,
by manipulating scno if it falls into the 0x000f00xx range.

In order to not worsen genuine undefined scnos' printing,
the code remaps scno back to actual value before printing
"syscall_NNN" string.

* defs.h: Remove multi-reprsonality defines from ARM.
* syscall.c (shuffle_scno): New function.
(undefined_scno_name): New function.
(get_scno): [ARM] Replace personality setting with scno shuffling.
(trace_syscall_entering): Print unknown syscall name using
undefined_scno_name().
(trace_syscall_exiting): Likewise.
* linux/arm/syscallent.h: Add ARM specific syscalls at the end.
* linux/arm/errnoent1.h: Deleted.
* linux/arm/ioctlent1.h: Deleted.
* linux/arm/signalent1.h: Deleted.
* linux/arm/syscallent1.h: Deleted.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
inux/arm/errnoent1.h
inux/arm/ioctlent1.h
inux/arm/signalent1.h
inux/arm/syscallent.h
inux/arm/syscallent1.h
yscall.c
e7030e5a7ef541f0ffda46a2850ef720245f01a5 20-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> arm: shorten syscall table for EABI - no point in storing NULL entries

Also, reformatted ARM code in get_scno(), mostly improved comments,
without code changes.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
inux/arm/signalent1.h
inux/arm/syscallent.h
yscall.c
4bfb198db17d9a6b83f104d4f1e184664db78391 20-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Use the same style of includes in linux/*/* files

While at it, fix some comments which say
"we use i386 syscalls/ioctls/errnos" but in reality
common ones are used.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
inux/arm/errnoent1.h
inux/arm/ioctlent1.h
inux/arm/signalent1.h
inux/arm/syscallent1.h
inux/ia64/syscallent.h
inux/powerpc/ioctlent1.h
inux/tile/errnoent1.h
inux/tile/ioctlent1.h
inux/tile/signalent1.h
inux/x32/errnoent1.h
inux/x32/ioctlent1.h
inux/x32/signalent1.h
inux/x32/syscallent1.h
inux/x86_64/errnoent1.h
inux/x86_64/errnoent2.h
inux/x86_64/ioctlent1.h
inux/x86_64/ioctlent2.h
inux/x86_64/signalent1.h
inux/x86_64/signalent2.h
inux/x86_64/syscallent1.h
inux/x86_64/syscallent2.h
2544f988c96a48e48369a767d8886c4282859ed3 19-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Fix compiler warnings

With constant current_wordsize == 4 and 32-bit longs,
gcc was spooked by "1ul << (8 * current_wordsize)" = "1ul << 32".

Make such places conditional on SIZEOF_LONG > 4.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
til.c
30c03230a8a5ba41d183279dcd6d0668940267db 19-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Improve comment text. No code changes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
f909c8d0d759d0511ad2c741854602b0494e0390 19-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Fix NOMMU + daemonized tracer SEGV

pathname[] was getting destroyed, execve of garbage pathname
failing, and to top it off, the tracer's stack was also
smashed and trecer segfaulted.

* strace.c (exec_or_die): New function.
(startup_child): Don't use pathname[] contents after vfork,
make a malloced copy instead. Explain "NOMMU + -D bug"
and how we work around it.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
5c9d8f4fc5318fc740ec2a16bac5b8a29e7eb52d 19-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Make it possible to to do test builds for NOMMU architectures

And while using it, I discovered that -D doesn't work too well
on NOMMU. Added a comment about it.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
trace.c
1ba85436def7da80971aeb902fbc6e52997a46fa 19-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Clean up mmap decoding

Previous code merges too many similar, but different ways
of decoding mmap. For example, sys_old_mmap is "params in memory"
API... except SH[64], where it is "params in regs",
i.e. what sys_mmap ("new mmap") function does on other arches!

It's much simpler when every mmap handler has same API regardless
of arch. Where API means whether params are in regs or in memory,
and whether offset is in bytes, pages, or 4k blocks.

Then we just insert correct function pointers into
arch syscall tables.

It turns out there are four common mmap APIs over
all architectures which exist in Linux kernel,
and one outlier for S390.

A number of mmap decoders were plain wrong in arch tables.
For example, BFIN has no old_mmap. It returns ENOSYS.
I checked kernel sources for all arches nad fixed the tables.

There was dead code for x86_64 for old_mmap:
x86_64 has no old_mmap.

* mem.c: Refactor mmap functions so that we have five mmap syscall
handlers, each with the fixed API (not varying by arch).
* pathtrace.c (pathtrace_match): Adjust sys_func == mmap_func checks.
* linux/syscall.h: Declare new mmap syscall handler functions.
* linux/arm/syscallent.h: mmap2 is sys_mmap_pgoff.
* linux/avr32/syscallent.h: mmap is sys_mmap_pgoff.
* linux/bfin/syscallent.h: old_mmap is ENOSYS, mmap2 is sys_mmap_pgoff.
* linux/hppa/syscallent.h: mmap2 is sys_mmap_4koff.
* linux/i386/syscallent.h: mmap2 is sys_mmap_pgoff.
* linux/ia64/syscallent.h: mmap2 is sys_mmap_pgoff.
* linux/m68k/syscallent.h: mmap2 is sys_mmap_pgoff.
* linux/microblaze/syscallent.h: old_mmap is sys_mmap, mmap2 is sys_mmap_pgoff.
* linux/mips/syscallent.h: mmap is sys_mmap_4kgoff.
* linux/or1k/syscallent.h: mmap2 is sys_mmap_pgoff.
* linux/powerpc/syscallent.h: mmap2 is sys_mmap_4kgoff.
* linux/s390/syscallent.h: mmap2 is sys_old_mmap_pgoff.
* linux/s390x/syscallent.h: mmap is sys_old_mmap and thus has 1 arg.
* linux/sh/syscallent.h: old_mmap2 is sys_mmap, mmap2 is sys_mmap_4koff.
* linux/sh64/syscallent.h: Likewise.
* linux/sparc/syscallent1.h: mmap is TD|TM.
* linux/tile/syscallent1.h: mmap2 is sys_mmap_4koff.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/or1k/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent1.h
inux/syscall.h
inux/tile/syscallent1.h
em.c
athtrace.c
est/mmap_offset_decode.c
afd0072c376bfb438b02327e65b7996e2909f6ff 18-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Remove unused function sys_mmap64

No wonder that it is unused.
It's code looked quite questionable.

* mem.c (sys_mmap64): Remove this function.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
em.c
8435d672ebbc318648a54beef1d491f1ce0531a3 18-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Remove code which supports systems with long long off_t.

While looking at mmap mess, did experimenting in order
to figure out what gets used when.

Tried building armv4tl, armv5l, armv6l, mips, mipsel, i686,
x86_64 and none of they have long long off_t,
which isn't suprprising: we aren't using glibc defines
which enable that.

Moreover, we SHOULD NOT use off_t in syscall decode!
Its size depends on libc, not on arch! I.e. it is essentially
unpredictable and can even in theory vary on the same arch
with different libc.

We should use longs or long longs, in a way which matches
architectural ABI for the given syscall. There are usually
*at most* two permutations, no need to add yet another variable
(sizeof(off_t)) to the mix.

This change removes almost all HAVE_LONG_LONG_OFF_T conditionals,
which will reveal further possible simplifications.

* mem.c: Remove code conditional on HAVE_LONG_LONG_OFF_T.
As a result, never remap sys_mmap64 to sys_mmap.
(print_mmap): Compile unconditionally.
(sys_old_mmap): Compile unconditionally.
(sys_mmap): Compile unconditionally.
* io.c (sys_sendfile): Add a FIXME comment.
* file.c: Remove code conditional on HAVE_LONG_LONG_OFF_T.
As a result, never remap sys_*stat64 to sys_*stat etc.
(sys_truncate): Compile unconditionally.
(realprintstat): Likewise.
(sys_stat): Likewise.
(sys_fstat): Likewise.
(sys_lstat): Likewise.
* desc.c (printflock): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
esc.c
ile.c
o.c
em.c
8dedb0dc9636f64d6d1865a55d06a6fb6c4a04a9 18-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Fixes in "new" mmap

* mem.c (sys_mmap): Ensure unsigned expansion of tcp->u_arg[5].
Add page shift of offset for I386.
Use tcp->ext_arg[5] as offset for X32.
(sys_old_mmap): [X32] Remove this function, X32 doesn't use is.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
em.c
est/x32_mmap.c
923255cbe89bd75cedddd4d80a3b446eae4b6700 18-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Preliminary simplifications in mmap functions

* mem.c: Move "define sys_mmap64 sys_mmap" from the top
to the only place it affects.
(print_mmap): Make offset argument unsigned, for safer implicit conversions.
(sys_old_mmap): [IA64] use unsigned narrow_arg[].
Cast u_arg[5] (offset param) to unsigned long, to prevent erroneous signed
expansion.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
em.c
c9d0fc0a63d5b425d6a4e9fedb4cb7a8e3129d6c 17-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Remove broken HAVE_LONG_LONG conditionals

We use printllval without HAVE_LONG_LONG guards in many places,
but define it only if HAVE_LONG_LONG. This means that
on !HAVE_LONG_LONG systems we won't build for some time now.

* defs.h: Remove HAVE_LONG_LONG guard around LONG_LONG() macro
and printllval() function declaration.
* util.c: Remove HAVE_LONG_LONG guard around printllval()
function definition.
(printllval): Add compile-time error check for using wrong
if branch. Explain places where we deliberately use mismatched
types for printf formats.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
til.c
061217669b843f765992c57ea1de07293efa0f86 17-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Use explicit long type instead of off_t

* file.c (sys_lseek): Use long instead of off_t.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ile.c
86738a232d74ddea29d2b9c90e8d036f63c438fd 17-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Merge two identical tables

* defs.h: Declare whence_codes[].
* desc.c: Delete static whence[].
(printflock[64]): Use whence_codes.
* file.c: Make whence_codes[] non-static.
Add SEEK_DATA and SEEK_HOLE to them.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
esc.c
ile.c
09a87ae9712acb3725fb76d3f71215e168215611 17-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Remove wrong x32-specific lseek

Testing confirmed what I suspected: x32 lseek uses kernel-sized
(i.e. wide) long for offset parameter.

* file.c: Delete sys_lseek32.
* linux/syscall.h: Likewise.
* linux/x32/syscallent1.h: Likewise.
* test/x32_lseek.c: New file.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ile.c
inux/syscall.h
inux/x32/syscallent1.h
est/x32_lseek.c
782d90f9187e290f4523efe04a6e0eacdeb68613 17-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Fix SEGV in lseek

I found hard way why the code was using "_whence" name.

* file.c: Rename whence[] to whence_codes[].
(sys_lseek): Fix printxval() to use whence_codes[].
(sys_lseek32): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ile.c
386b871b0ae22d19cce2d4ab9a998c37a802771a 17-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Comment inner workings of sys_[l]lseek

The code doesn't look fully correct to me, but I need to experiment
on actual x32 machine before I start "fixing" things.
For now, add comments, and optimize out one tprints() call...

* file.c (sys_lseek): Rename '_whence' as 'whence'.
Merge printing of ", " into subsequent tprintf.
(sys_lseek32): Likewise.
(sys_llseek): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ile.c
a32086f2aae8cb517c491c6fc32f7281882b0761 17-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Cosmetic fixes to syscall tables, no code changes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
inux/alpha/syscallent.h
inux/arm/syscallent1.h
inux/i386/syscallent.h
inux/syscall.h
bf8ed1794e7227e759caa8cb38d3d865b03ee10d 16-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Make linux/mips/syscallent.h smaller

* linux/mips/syscallent.h: Remove trailing empty elements.
Compactify huge stretches of NULL elements in the middle.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
inux/mips/syscallent.h
c956ef085f5685b47bd7a66d0bff5abcb0a50484 16-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Simple optimization in get_error

* defs.h: Define SCNO_IN_RANGE(scno) macro.
* syscall.c (get_error): Change return type to void.
Use SCNO_IN_RANGE instead of SCNO_IS_VALID.
(trace_syscall_exiting): Stop checking get_error() return value.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
yscall.c
5721cdbcdba76eef854a30e7e56e328eae976e44 16-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Mass rename of SCNO_IN_RANGE define to SCNO_IS_VALID

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ount.c
efs.h
athtrace.c
yscall.c
48e4c1bf4dcfa9730c4ac4fc9b8d115569ef389b 16-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Finish prefixing regs struct names with arch_

* defs: Rename regs -> sparc_regs.
* signal.c (sys_sigreturn): Use new variable name.
* syscall.c: Rename regs -> sparc_regs, regs -> avr32_regs.
(getrval2): Use new variable names.
(printcall): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
ignal.c
yscall.c
2550d4890eae4d2d32ec6be0185eef6d30ce0124 15-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Use the same type for i386_regs on 32-bit and 64-bit x86.

* defs.h: Stop including <asm/ptrace.h> for x86.
Change i386_regs from "struct pt_regs" to "struct user_regs_struct".
* syscall.c: Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
yscall.c
ddd2da2562938ef53d9721f912d3c6137476a0b4 15-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Fix build error on Tile

* syscall.c (get_scno): [TILE] Remove TCB_WAITEXECVE check,
it is never true on Tile, and stopped compiling when
TCB_WAITEXECVE define was removed for Tile.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
6cf36057b3abedf527809fee34df202c71891bce 15-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> x86: zero-extend 32-bit args in syscall entry instead of sign-extension

Zero-extension is slightly more common that sign-extension:
all pointers are zero-extended, and some other params are unsigned.

Whereas signed ones (fds, pids, etc) are often treated as
_32-bit ints_ even by kernel, so just unconditionally casting
such tcp->u_arg[N] to int works.

* syscall.c (get_syscall_args): [X86] Zero-extend 32-bit args
instead of sign-extension.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
e015d2d331c75b912e3dd96532e2c31ae0e06554 15-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Macroize conditional signed widening operation

* defs.h: Define widen_to_long() macro.
* signal.c (sys_kill): Use it instead of open-coding it.
(sys_tgkill): Use widen_to_long() on pids.
* resource.c (decode_rlimit): Formatting fix.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
esource.c
ignal.c
ae8643e671db5c574ecba6aa7fe9012f286dc257 15-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> A better handling of current_wordsize

On x86_64:
text data bss dec hex filename
435661 26628 47424 509713 7c711 strace_old
435501 26612 47440 509553 7c671 strace_new_clever_wordsize

On x32 and arm it should be even better, current_wordsize becomes
a constant there.

* defs.h: Declare current_wordsize as a variable if needed,
else declare as a constant define.
Remove declatation of personality_wordsize[].
* syscall.c: Make personality_wordsize[] static.
Declare current_wordsize as a variable if needed.
(set_personality): Set current_wordsize only if non-constant.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
yscall.c
cb26b754935ffac5476f7f6e581346374eddf713 15-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Remove unnecessary "return 0" statements

* util.c (change_syscall): Remove dummy "return 0"s.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
til.c
e3b248dd838da5d49c12cd6ca9b2e0644580c9ca 15-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> x86: fix required kernel version for GETREGSET

* syscall.c (get_regs): [X86] Use GETREGSET only if kernel >= 2.6.35

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
f5fa778d2fd2f5648f4b0d56712db64580706bc8 14-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Whitespace fix, no code changes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
inux/mtd-abi.h
inux/or1k/syscallent.h
492f81f14cc86c13b0f67ac66a3d5ea9f6ccb673 14-Feb-2013 Christian Svensson <blue@cmd.nu> Add support for the OpenRISC 1000 platform

* configure.ac: Added or1k architecture..
* defs.h: Added or1k to use register reading system.
* linux/or1k/ioctlent.h.in: Use i386 ioctls.
* linux/or1k/syscallent.h: New file.
* process.c: Added or1k register defs to struct_user_offsets[].
* syscall.c: Added or1k_io iovec for or1k GETREGSET,
  regset structure for or1k.
  (printcall): Added handling for or1k.
  (get_regs): Likewise.
  (get_scno): Likewise.
  (get_syscall_args): Likewise.
  (get_syscall_result): Likewise.
(get_error): Likewise.
* util.c (change_syscall): Added dummy handling for or1k.
* system.c (sys_or1k_atomic): New function (or1k specific syscall).

Signed-off-by: Christian Svensson <blue@cmd.nu>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
onfigure.ac
efs.h
inux/or1k/ioctlent.h.in
inux/or1k/syscallent.h
inux/syscall.h
rocess.c
yscall.c
ystem.c
til.c
eec8d5d6b028665a73169fda96e4e873cb8351f0 14-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> [X86] Use ptrace(PTRACE_GETREGSET, NT_PRSTATUS) to get registers.

Unlike PTRACE_GETREGS, this new method detects 32-bit processes
reliably, without checking segment register values which
are undocumented and aren't part of any sort of API.
While at it, also fixed x32 detection to use __X32_SYSCALL_BIT,
as it should have been from the beginning.

* defs.h: Declare os_release and KERNEL_VERSION.
* strace.c: Make os_release non-static, remove KERNEL_VERSION define.
* syscall.c: New struct i386_user_regs_struct,
static union x86_regs_union and struct iovec x86_io.
(printcall): Use i386_regs or x86_64_regs depending on x86_io.iov_len.
(get_regs): On x86 and kernels 2.6.30+, use PTRACE_GETREGSET,
on earlier kernels fall back to old method.
(get_scno): [X86] Determine personality based on regset size
on scno & __X32_SYSCALL_BIT.
(syscall_fixup_on_sysenter): Use i386_regs or x86_64_regs depending
on x86_io.iov_len.
(get_syscall_args): Likewise.
(get_error): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
trace.c
yscall.c
d22213a3eecdeb3d13cf428bd090fdfb0f2a8d7d 13-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Rename some register statics by prefixing their names with arch.

This makes it easier to grep for them.

* syscall.c: Rename variables:
r0 -> bfin_r0,alpha_r0,sh_r0.
a3 -> mips_a3.
r2 -> mips_r2.
(get_scno): Use new variable names.
(get_syscall_result): Likewise.
(get_error): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
d4d3edefe74787a194a2472d99a673f6d4a2721a 13-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Factor out code to check addr, fetch and print siginfo

* defs.h: Declare new function printsiginfo_at(tcp, addr).
* process.c (sys_waitid): Use printsiginfo_at().
(sys_ptrace): Likewise.
* signal.c: (printsiginfo_at): Implement this new function.
(sys_rt_sigsuspend): Use printsiginfo_at().
(sys_rt_sigtimedwait): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
rocess.c
ignal.c
be99497d39a0ccc59cde4d21bbd307767ab3860c 13-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Decode struct iov in PTRACE_GET/SETREGSET

* process.c (sys_ptrace): Decode struct iov in PTRACE_GET/SETREGSET.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
rocess.c
873e5a5a5c93a6e7b9b34311818f6f04031a1dd2 12-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Unify representations of struct user fields for subarchitectures

* process.c: Unify MIPS and LINUX_MIPSN32, and SH and SH64 parts of
struct_user_offsets[].

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
rocess.c
74307a695337e3c5b7b87e790246d83a033a2992 12-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Add start_code and start_data members of struct user

* process.c: Add start_code and start_data members of struct user
in struct_user_offsets[], where appropriate.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
rocess.c
a86696ba6417eeebc92d8ee232d626d97bc8a048 12-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Remove hacks for old kernels for architectures which require new kernels

* util.c (change_syscall): For MICROBLAZE, replace code
with dummy "return 0" and a comment explaining why that is ok
for this architecture.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
til.c
ab2f40224279861110114cad81fedadd7abe9b98 12-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Remove stray syscall result reading code on syscall entry for s390

This is a leftover from sysenter/sysexit split.
I can't run-test it, but from code inspection it seems to be correct.

* syscall.c (get_scno): Remove stray syscall result reading for s390[x].

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
729e18dffd4d5bebeb3670d58574dbb442d0a973 12-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Deobfuscate definitions of struct user offsets

The maze of ifdefs/ifndefs was scaring new contributors.
Format it so that every arch has its own ifdef block.

* process.c: Deobfuscate definitions of struct user offsets.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
rocess.c
bf357fcb76baeb64a45fc2b6b355c913c63e6015 12-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Remove hacks for old kernels for architectures which require new kernels

* defs.h: Do not define TCB_WAITEXECVE for AARCH64.
* util.c (change_syscall): For AARCH64 and X32, replace code
with dummy "return 0" and a comment explaining why that is ok
for these architectures.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
til.c
d27809c978f3c8c3271f7d726dc92dd0eefa8a0f 12-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Remove old kernel hacks for architectures which require new kernels

* defs.h: Do not define TCB_WAITEXECVE for AVR32, BFIN and TILE.
* util.c (change_syscall): For AVR32, BFIN and TILE, replace code
with dummy "return 0" and a comment explaining why that is ok
for these architectures.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
til.c
3e759d4293076b9358a25bb61d50d3e6fff5b0e2 12-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Handle recv[m]msg for non-native 32-bit personality syscalls

* net.c (printmsghdr): If current_wordsize is 4 and long is wider than it,
read 32-bit struct msghdr and expand it into a native one before using it.
(printmmsghdr): Likewise for struct mmsghdr.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
et.c
afea7dd4a597e15e74ec3de5a78288056296311b 12-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Fix is_negated_errno() check for X32

X32's return value is 64-bit. We were truncating it to 32-bit long
before checking for -errno.

* syscall.c (is_negated_errno_x32): New function.
(get_error): Use is_negated_errno_x32 for X32 architecture.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
9472a27b79a6820b5bdf37647c04a7e1d8790737 12-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Remove unused / ambiguously used defines

We sometimes use LINUXSPARC and sometimes (more often)
use "defined(SPARC) || defined(SPARC64)". Better to use
one construct consistently.
LINUX_MIPS64 is altogether unused.

* defs.h: Remove LINUXSPARC and LINUX_MIPS64 defines.
Move PTRACE_xxx compat defines up, before arch-specific
machinery. Use defined(SPARC) || defined(SPARC64)
instead of LINUXSPARC.
* file.c: Use defined(SPARC) || defined(SPARC64) instead of LINUXSPARC.
* signal.c: Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
ile.c
ignal.c
59aea0a7d50f19741b95ccba64b45edd7c8d0eab 11-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Preparatory patch for "new" x86 personality detection

* syscall.c: Move PT_FLAGS_COMPAT define to its only user, get_scno().
Rename arm_regs_union's fields to names less likely to collide with
system defines.
(get_regs): Use sizeof(arm_regs_union) instead of sizeof(aarch64_regs).
This should be the same, but htis way it's cleaner.
Remove __X32_SYSCALL_MASK and use __X32_SYSCALL_BIT instead.
Explain 64-bit check in X32 build better.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
338c069e69d24424a11ef8ec15b5ac6a8d08c03d 09-Feb-2013 Dmitry V. Levin <ldv@altlinux.org> Fix sigaltstack decoder

strace used to hang when decoding sigaltstack called with invalid
stack_t pointers because of mishandling umove() return code.

* signal.c (print_stack_t): Handle unfetchable stack_t properly.
Change return type to void.
(sys_sigaltstack): Update print_stack_t() usage.

Reported-by: kawillia@ucalgary.ca
ignal.c
0cf04b6595a951df7671eafef5f9e7a114a6c691 09-Feb-2013 Mike Frysinger <vapier@gentoo.org> Fix decoding of sysctl() when oldval fields are NULL

If you call glibc's syscall wrapper like so:
static int name[] = { CTL_NET, NET_IPV4, NET_IPV4_LOCAL_PORT_RANGE };
int buffer[2] = { 32768, 61000 };
size_t size = sizeof(buffer);
sysctl(name, 3, 0, 0, buffer, size);
(note that oldval/oldlenp are NULL).

The current strace code complains like so:
_sysctl({{CTL_NET, NET_IPV4, NET_IPV4_LOCAL_PORT_RANGE, 38}, 3, process_vm_readv: Bad address
(nil), 0, 0x7fffe23c3960, 8}) = -1 EACCES (Permission denied)

Since passing NULL for the old values is valid, handle that explicitly.
This also simplifies the code a bit by splitting up the handling of the
new and old args so that we only handle the new args once.

Now the output looks like:
_sysctl({{CTL_NET, NET_IPV4, NET_IPV4_LOCAL_PORT_RANGE, 38}, 3, NULL, 0, 0x7fff8c0c91b0, 8) = -1 EACCES (Permission denied)

* system.c (sys_sysctl): Check if info.oldval is NULL first. Move the
processing of oldlen/info.newval/info.newlen out so they always get
executed. Fix the format strings so we use %lu for unsigned long rather
than a mix of %ld and %lu.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
ystem.c
99aa181ebcee3f6ae4f8eb83c719cc64cc5a09ec 08-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> If we are on a glibc system, assume it's at least glibc 2.1

It is not likely anyone uses glibc older that that:
glibc 2.1.1 was released in 1999

* net.c: Remove test for glibc >= 2.1.
* signal.c: Remove code which is compiled only for glibc < 2.1.
* util.c: Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
et.c
ignal.c
til.c
7ba8e72bb56243b8a7df949cef8a7d6039d889ac 08-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> S390: stop using needlessly static long pc variable

* syscall.c: Remove "static long pc" variable.
(get_scno): Use an automatic long variable instead of a static.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
751acb3d70ebefcde1b71fb2ab61a3cffd2e7c4b 08-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Dying suddenly with abort() is rude, avoid if possible

* file.c (sys_utime): Don't call abort() if wordsize is strange.
Instead, warn user about it.
* desc.c (printflock): Use the same message string as in sys_utime.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
esc.c
ile.c
86d94843cf4e7831dd118175d3814be037eb9056 08-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Remove vestigial hacks around non-Linux struct sigactions

* signal.c: Stop using __sighandler_t glibc'ism. Remove SA_HANDLER macro.
Explain why we can't use "sa_handler" as a field name.
(sys_sigaction): Use __sa_handler instead of SA_HANDLER macro.
(sys_rt_sigaction): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ignal.c
28ac68f2ab90e85663ecedcf9b56847290cd1ed4 08-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Optimize AArch64 handling of 32-bit personality

By putting aarch64_regs and arm_regs into a union,
register copying is eliminated.
No need to check and change personality on syscall exit.

* defs.h: Remove unused NUM_ARM_REGS define. Fix indentation.
* syscall.c: Put aarch64_regs and arm_regs into a union.
(update_personality): Shorten bitness message.
(printcall): Add commented-out PC printing.
(get_regs): Remove now-unnecessary 64-to-32 bits register copying.
(get_syscall_result): Drop personality changing code.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
yscall.c
89804ec3e1a5c912474d43438059aef3893d2e82 07-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Rename some register statics by prefixing their names with arch.

This makes it easier to grep for them.

* syscall.c: Make IA64's r8, r10 global variables static.
Rename variables:
r8,r10 -> ia64_r8,ia64_r10.
d0 -> m68k_d0.
a3 -> alpha_a3.
r28 -> hppa_r28.
r9 -> sh64_r9.
r10 -> cris_r10.
r3 -> microblaze_r3.
(get_scno): Use new variable names.
(syscall_fixup_on_sysenter): Likewise.
(get_syscall_result): Likewise.
(get_error): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
401374e9c236751a0bc548bef8fc369a905a4190 06-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Rename ARM's regs structure to arm_regs

Compile-tested.

* defs.h: Rename regs structure to arm_regs.
* syscall.c: Likewise.
(printcall): Use new name instead of old one.
(get_regs): Likewise.
(get_scno): Likewise.
(get_syscall_args): Likewise.
(get_error): Likewise.
* signal.c (sys_sigreturn): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
ignal.c
yscall.c
4bdb6bb7346de8577402d73e71616e8632269261 06-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Stop needlessly using static variable

* syscall.c: Remove static long psr.
(get_scno): Use local psr variable.
(get_syscall_result): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
8d4ca0c8cd81329ad730ab52b1e0653c1bbea803 06-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Shortcut tests for fork/exec syscalls

This change should speed up strace by a tiny bit.

More importantly, it makes it much more clear that
fork and exec fixups are not necessary for any reasonably
recent kernels. IOW: syscall_fixup_for_fork_exec() and its callees
are all dead code.

* defs.h: Declare new need_fork_exec_workarounds flag variable.
* strace.c: Define need_fork_exec_workarounds flag variable.
(test_ptrace_setoptions_followfork): Return 0/1 as success/fail indicator.
(test_ptrace_setoptions_for_all): Likewise.
(init): Set need_fork_exec_workarounds to TRUE if needed.
* syscall.c: Rename internal_syscall() to syscall_fixup_for_fork_exec().
(trace_syscall_entering): Call syscall_fixup_for_fork_exec() only if
need_fork_exec_workarounds == TRUE.
(trace_syscall_exiting): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
trace.c
yscall.c
88eafd81ab061ff217c0b56f02b07c16cbd29ff4 04-Feb-2013 Ben Noordhuis <info@bnoordhuis.nl> Improve perf_event_open argument decoding

* configure.ac (AC_CHECK_HEADERS): Add linux/perf_event.h.
* desc.c [HAVE_LINUX_PERF_EVENT_H]: Include <linux/perf_event.h>.
(perf_event_open_flags): New xlat structure.
(sys_perf_event_open): New function.
* linux/dummy.h (sys_perf_event_open): Remove.
* linux/syscall.h (sys_perf_event_open): New prototype.

Signed-off-by: Ben Noordhuis <info@bnoordhuis.nl>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
onfigure.ac
esc.c
inux/dummy.h
inux/syscall.h
af8dc6b3a562193c27c89531e7ac6d94e7c3c322 05-Feb-2013 Chris Metcalf <cmetcalf@tilera.com> tile: fix merge skew with new get_regs architecture

* defs.h [TILE]: Declare clear_regs(), get_regs() and get_regs_error.
* syscall.c (get_regs) [TILE]: Fix merge skew.
(printcall) [TILE]: fix a compiler warning about pt_reg_t in
a printf expression.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
efs.h
yscall.c
9e1a7d818a04d62f097a74b1ff525468c36b0e7c 05-Feb-2013 Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> mount: decode MS_NOSEC

* system.c (MS_NOSEC): Define.
(mount_flags): Add MS_NOSEC.

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
ystem.c
21ceeb487981dbb09dd82023d28459234ccd25f8 05-Feb-2013 Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> mmap: decode MAP_UNINITIALIZED

* mem.c (mmap_flags): Add MAP_UNINITIALIZED.

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
em.c
ddba73e4c01e8867886d56c508af2c33cc87dc49 05-Feb-2013 Dmitry V. Levin <ldv@altlinux.org> Print 64-bit instruction pointers zero padded

* syscall.c (printcall): Print 64-bit instruction pointers zero padded.
yscall.c
f0f41cfb1902afe42a728b8cffe878a4a3620def 05-Feb-2013 Dmitry V. Levin <ldv@altlinux.org> x86_64: fix compilation warning introduced in previous commit

* syscall.c (printcall): Cast x86_64_regs.rip to the type being printed.
yscall.c
df39e56d2d53013813a529862da6321222605f58 05-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Simple bug fix for x86_86

* syscall.c (printcall): Use x86_64_regs.rip, not x86_64_regs.ip.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
0b99a8ac3bf6314bc92ab528b3849ab3faf7bf4c 05-Feb-2013 Chris Metcalf <cmetcalf@tilera.com> Add tilegx support to strace

tilegx support has been in the kernel since 3.0.
In addition, fix some issues with the tilepro support already
present in strace, primarily the decision to use the
<asm/unistd.h> numbering space for system calls.

* defs.h [TILE]: Include <asm/ptrace.h> and provide an extern
struct pt_regs tile_regs for efficiency. Provide compat 32-bit
personality via SUPPORTED_PERSONALITIES, PERSONALITY0_WORDSIZE,
PERSONALITY1_WORDSIZE, and DEFAULT_PERSONALITY.
* linux/tile/errnoent1.h: New file, includes linux/errnoent.h.
* linux/tile/ioctlent1.h: New file, includes linux/ioctlent.h.
* linux/tile/signalent1.h: New file, includes linux/signalent.h.
* linux/tile/syscallent.h: Update with new asm-generic syscalls.
The version previously committed was the from the first tile patch
to LKML, which subsequently was changed to use <asm-generic/unistd.h>.
* linux/tile/syscallent1.h: Copy from linux/tile/syscallent.h.
* mem.c (addtileflags) [TILE]: use %ld properly for a "long" variable.
* process.c [TILE]: Choose clone arguments correctly and properly
suppress all "struct user" related offsets in user_struct_offsets.
* signal.c [TILE]: Use tile_regs not upeek.
* syscall.c (update_personality) [TILE]: Print mode.
(PT_FLAGS_COMPAT) [TILE]: Provide if not in system headers.
(tile_regs) [TILE]: Define 'struct pt_regs' variable to hold state.
(get_regs) [TILE]: use PTRACE_GETREGS to set tile_regs rather than using upeek.
(get_scno) [TILE]: Set personality.
(get_syscall_args) [TILE]: Use tile_regs.
(get_syscall_result) [TILE]: Update tile_regs.
(get_error) [TILE]: Use tile_regs.
(printcall) [TILE]: Print pc.
(arg0_offset, arg1_offset, restore_arg0, restore_arg1) [TILE]:
Properly handle tile call semantics and support tilegx.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
inux/tile/errnoent1.h
inux/tile/ioctlent1.h
inux/tile/signalent1.h
inux/tile/syscallent.h
inux/tile/syscallent1.h
em.c
rocess.c
ignal.c
yscall.c
til.c
4645582edbbc6c3605904634de7bcb9b0b4f0ef2 05-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Small optimization for SPARC[64] get_scno

* syscall.c: Remove static unsigned long trap veriable.
(get_scno): Use local trap variable.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
1ebe08d6136f904c8a5a5e02da7b72749080088b 05-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Do not compile getrval2() if not needed

* syscall.c (getrval2): Do not compile it for architetures where
it isn't ever used.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
ce7d953ebecc10f71e191b6d18cfeb2399429d5f 05-Feb-2013 Denys Vlasenko <vda.linux@googlemail.com> Optimize out PTRACE_PEEKUSER with -i

strace -i was fetching PC with a separate PEEKUSER
despite having GETREGS data:

ptrace(PTRACE_GETREGS, 22331, 0, 0x8087f00) = 0
ptrace(PTRACE_PEEKUSER, 22331, 4*EIP, [0x80dd7b7]) = 0
write(3, "[080dd7b7] ioctl(0, SNDCTL_TMR_T"..., 82) = 82
ptrace(PTRACE_SYSCALL, 22331, 0, SIG_0) = 0

Now it does this:

ptrace(PTRACE_GETREGS, 22549, 0, 0x8087ea0) = 0
write(3, "[080dd7b7] ioctl(0, SNDCTL_TMR_T"..., 82) = 82
ptrace(PTRACE_SYSCALL, 22549, 0, SIG_0) = 0

Analogous improvement in sys_sigreturn() is also implemented.

* defs.h: Declare extern struct pt_regs regs for SPARC[64] and ARM.
Declare clear_regs(), get_regs() and get_regs_error flag variable.
* strace.c (trace): Call get_regs(pid) as soon as we know the tcb
and that it is stopped.
* syscall.c (get_regs): New function. Used to fetch registers early,
just after tracee has stopped.
(printcall): Move it here from util.c. Use global regs.REG data,
if available on the arch, instead of re-fetching it.
(get_scno): Use global regs.REG data.
(get_syscall_result): Likewise.
* signal.c (sys_sigreturn): Likewise.
* util.c (printcall): Moved to syscall.c.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
ignal.c
trace.c
yscall.c
til.c
beae4c7182d8204a0d9fa9db2295c42744f7f377 10-Dec-2012 Stanislav Brabec <sbrabec@suse.cz> Fix sys_semtimedop decoding on s390x

The s390 and s390x pass semtimedop arguments differently from other
architectures. sys_semtimedop parser was fixed for s390 by commit
v4.6-177-ge0f5fd8, and s390x requires the same fix.

* linux/ipc.c (sys_semtimedop): Fix timespec decoding on s390x.

Signed-off-by: Stanislav Brabec <sbrabec@suse.cz>
pc.c
1f21513c38cbcb1d3d16e7b8ac0f17ef4793085e 07-Dec-2012 Dmitry V. Levin <ldv@altlinux.org> Fix *xattr decoding

* file.c (print_xattr_val): Do not attempt to decode a zero sized array.
Fixes RH#885233.
ile.c
eff5c0e60c35d852a97a26cd8c6be50fed75a1a0 07-Dec-2012 Stanislav Brabec <sbrabec@suse.cz> sys_semtimedop: fix timeval argument index in wrapped call

Looking at the implementation of wrapped semtimedop() call inside glibc
and kernel, I started to believe that timeval should be located in
tcp->u_arg[4] and not tcp->u_arg[5]. Fortunately, tcp->u_arg[5] now
works correctly as well, due to side effects of decode_ipc_subcall().

declaration in header:
int semtimedop(semid, *sops, nsops, *timeout);
0 1 2 3

sys_ipc arguments in glibc on all patforms except s390*:
semid, (int) nsops, 0, CHECK_N (sops, nsops), timeout
0 1 2 3 4
We have to use indexes: 0 3 1 4

sys_ipc arguments on s390*:
semid, (int) nsops, timeout, sops
0 1 2 3
We have to use indexes: 0 3 1 2

* ipc.c (sys_semtimedop) [!S390]: Fix timeval argument index in
indirect_ipccall case.
pc.c
eb54c4772581a143e2757a2be9718377058cc703 03-Dec-2012 John Spencer <maillist-strace@barfooze.de> Fix glibc version checks

* util.c: Check if __GLIBC__ is defined before using it.
* signal.c: Likewise. Fix __GLIBC_MINOR__ checks.
ignal.c
til.c
05eb905c4433c60d538e134619a3117522072a2f 29-Nov-2012 James Hogan <james.hogan@imgtec.com> Add state argument to change_syscall and fix SPARC

Add a state argument to change_syscall() so that SPARC can modify that
instead of read-modify-writing the whole register set. This function is
always called within an arg_setup/arg_finish_change sequence which on
certain architectures like SPARC will also be doing a read-modify-write.
This prevents the second write (from arg_finish_change) from undoing the
effects of the change_syscall call.

* util.c (change_syscall): Move below definition of arg_setup_state.
Add state argument.
[SPARC || SPARC64] Change to set state->u_regs[U_REG_G1] rather than
read-modify-writing it with PTRACE_GETREGS and PTRACE_SETREGS.
(setbpt, clearbpt): Pass state argument to change_syscall.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
til.c
890a5cad2321ae72fb5ca1b253edb874b1ca7180 10-Nov-2012 Steve McIntyre <steve.mcintyre@linaro.org> Add support for tracing 32-bit ARM EABI binaries on AArch64

* defs.h [AARCH64]: Copy in the definition of arm_pt_regs and the
accessor macros, so it's possible to build on AArch64 without
ARM system headers. Set SUPPORTED_PERSONALITIES to 2.
Define PERSONALITY0_WORDSIZE and PERSONALITY1_WORDSIZE.
Set DEFAULT_PERSONALITY to 1.
* linux/aarch64/errnoent1.h: New file, includes generic errnoent.h.
* linux/aarch64/ioctlent1.h: New file, includes generic ioctlent.h.
* linux/aarch64/signalent1.h: New file, includes generic signalent.h.
* linux/aarch64/syscallent1.h: Rename from linux/aarch64/syscallent.h.
* linux/aarch64/syscallent.h: New file, includes arm/syscallent.h.
* syscall.c [AARCH64]: Define aarch64_regs.
(update_personality) [AARCH64]: Add debug output.
(get_scno) [AARCH64]: Determine if we're in ARM or AArch64 mode by
checking the size of the returned uio structure from PTRACE_GETREGSET
and interpret the structure accordingly.
(get_syscall_result): Likewise.
(get_syscall_args): Merge the AArch64 and ARM sections so that on
AArch64 we can fall back to supporting the ARM personality.
(get_error): Likewise.

Signed-off-by: Steve McIntyre <steve.mcintyre@linaro.org>
efs.h
inux/aarch64/errnoent1.h
inux/aarch64/ioctlent1.h
inux/aarch64/signalent1.h
inux/aarch64/syscallent.h
inux/aarch64/syscallent1.h
yscall.c
716c93ecf8edc5dda092d4fa4d878f333a601b51 12-Nov-2012 Dmitry V. Levin <ldv@altlinux.org> Move asm-generic ioctl definitions to linux/ioctlent.h.in

* linux/ioctlent.h.in: Add asm-generic ioctl entries from all
linux/*/ioctlent.h.in files.
* linux/bfin/ioctlent.h.in: Remove asm-generic ioctl entries.
* linux/i386/ioctlent.h.in: Likewise.
* linux/powerpc/ioctlent.h.in: Likewise.
* linux/s390/ioctlent.h.in: Likewise.
* linux/sparc/ioctlent.h.in: Likewise.
inux/bfin/ioctlent.h.in
inux/i386/ioctlent.h.in
inux/ioctlent.h.in
inux/powerpc/ioctlent.h.in
inux/s390/ioctlent.h.in
inux/sparc/ioctlent.h.in
17e3860ee8684b397b99eea59b6458a8a7b88f5c 27-Oct-2012 Dmitry V. Levin <ldv@altlinux.org> Filter out redundant "*32" ioctl entries

* linux/ioctlent-filter.awk: New file.
* Makefile.am: Use it.
* linux/ioctlent.h.in: Removed redundant "*32" entries.
akefile.am
inux/ioctlent-filter.awk
inux/ioctlent.h.in
7943966f6cd137e44f27d56aaf21b023fb1fae63 27-Oct-2012 Dmitry V. Levin <ldv@altlinux.org> Enhance quotactl decoding

* quota.c (sys_quotactl): Decode 2nd syscall argument using printpath.
* pathtrace.c (pathtrace_match): Add quotactl support.
* linux/*/syscallent.h: Add TF flag to quotactl entry.
inux/aarch64/syscallent.h
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent.h
inux/x32/syscallent.h
inux/x86_64/syscallent.h
athtrace.c
uota.c
d8d3bd3709eb52581c8ce86cec5a7a9c43c3c5b9 24-Oct-2012 Steve McIntyre <steve.mcintyre@linaro.org> Add AArch64 support to strace

AArch64 has been included in linux from 3.7 onwards.
Add support for AArch64 in strace, tested on linux in a simulator.

* configure.ac: Support AArch64.
* defs.h [AARCH64]: Include <sys/ptrace.h>, define TCB_WAITEXECVE.
* ipc.c (indirect_ipccall): Support AArch64.
* process.c (struct_user_offsets): Likewise.
* syscall.c [AARCH64]: Include <asm/ptrace.h>, <sys/uio.h>, and
<elf.h>. Define struct user_pt_regs regs.
(get_scno, get_syscall_result): Support AArch64 using PTRACE_GETREGSET.
(get_syscall_args, get_error): Support AArch64.
* linux/aarch64/ioctlent.h.in: New file.
* linux/aarch64/syscallent.h: New file, based on linux 3.7 version of
asm-generic/unistd.h.

Signed-off-by: Steve McIntyre <steve.mcintyre@linaro.org>
onfigure.ac
efs.h
pc.c
inux/aarch64/ioctlent.h.in
inux/aarch64/syscallent.h
rocess.c
yscall.c
d6dbd998b723087f933f88a9e10843c6a7682fa2 24-Oct-2012 Steve McIntyre <steve.mcintyre@linaro.org> linux: add new errno values for EPROBE_DEFER and EOPENSTALE

New definitions match updates in Linux 3.4 and Linux 3.5 respectively.

* linux/errnoent.h (ERRNO_517): Change to EPROBE_DEFER.
(ERRNO_518): Change to EOPENSTALE.

Signed-off-by: Steve McIntyre <steve.mcintyre@linaro.org>
inux/errnoent.h
9679296d56e3c0a948b1b4dcce99fd3c9b253a3d 24-Oct-2012 Namhyung Kim <namhyung.kim@lge.com> Add -e trace=memory option

Add a new 'memory' category for tracing memory mapping related syscalls.

Affected syscalls are: break, brk, get_mempolicy, madvise, mbind,
migrate_pages, mincore, mlock, mlockall, mmap, move_pages, mprotect,
mremap, msync, munlock, munlockall, munmap, remap_file_pages, and
set_mempolicy.

* defs.h (TRACE_MEMORY): New macro.
* syscall.c (lookup_class): Handle trace=memory option.
* strace.1: Document it.
* linux/alpha/syscallent.h: Add TM flag to memory mapping related syscalls.
* linux/arm/syscallent.h: Likewise.
* linux/avr32/syscallent.h: Likewise.
* linux/bfin/syscallent.h: Likewise.
* linux/hppa/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/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/tile/syscallent.h: Likewise.
* linux/x32/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.

Signed-off-by: Namhyung Kim <namhyung.kim@lge.com>
efs.h
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent.h
inux/x32/syscallent.h
inux/x86_64/syscallent.h
trace.1
yscall.c
85c217849046414a98d2d90173960f39defc145f 27-Sep-2012 Mike Frysinger <vapier@gentoo.org> x32: add 64bit annotation too

Since someone can invoke these entry points directly with syscall(),
at least decode their name and show that they're 64bit versions rather
than just showing syscall_###.

* linux/x32/syscallent.h: Sync all missing entries below 312 with x86_64.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
inux/x32/syscallent.h
b742d8c1b8001dd2b8784f5a123cc8eb08f679ca 18-Sep-2012 Dmitry V. Levin <ldv@altlinux.org> Ignore fflush(3) return value

strace used to honor fflush(3) return value in trace_syscall_entering
which resulted to tracees not being PTRACE_SYSCALL'ed which in turn
caused nasty hangups like this one:

$ strace -o'|:' pwd
|:: Broken pipe

There is little strace can do in case of fflush(3) returning EOF, and
hangup is certainly not the best solution for the issue.

* syscall.c (trace_syscall_entering): Ignore fflush(3) return value.
yscall.c
9a71bcdab254e4cd93b8f1e93c659644eb70ea9b 18-Sep-2012 Dmitry V. Levin <ldv@altlinux.org> Use perror_msg instead of perror

* signal.c (sys_sigreturn): Use perror_msg instead of perror.
* strace.c (tprintf, tprints, detach, startup_attach): Likewise.
* syscall.c (get_scno): Likewise.
* util.c (umoven, umovestr): Likewise.
ignal.c
trace.c
yscall.c
til.c
4411a0ce304812ea2f4e5c33815f7148981af195 27-Sep-2012 Denys Vlasenko <vda.linux@googlemail.com> process_vm_readv may return ESRCH if tracee was killed, don't complain

Discovered by running test/sigkill_rain under strace.

* util.c (umoven): Do not emit error message if process_vm_readv
fails with ESRCH.
(umovestr): LikeWise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
til.c
978fbc901c4fe260caaa5881e54bd9cb54022101 13-Sep-2012 Denys Vlasenko <vda.linux@googlemail.com> Trivial fixes, no code changes.

* strace.c: Fix compiler warning message about tgkill - we don't use it.
Fix indentation of preprocessor directives.
(trace): Remove outdated comment.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
508279c94f15510d05c92a7694533c9a962d8585 24-Aug-2012 Dmitry V. Levin <ldv@altlinux.org> Always check setreuid return code

* strace.c (startup_child): Check setreuid return code.
trace.c
f04b5de5a5a743f0b3ca0895379dd2ba702ea174 22-Aug-2012 Mike Frysinger <vapier@gentoo.org> x32: update {g,s}etsockopt syscall numbers

Starting with linux 3.6 (and backported to earlier kernels), these two
syscalls have changed numbers (moving from native to compat entry points).
Update the strace syscall list accordingly.

* linux/x32/syscallent.h: Move setsockopt from 54 to 541, and move
getsockopt from 55 to 542.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
inux/x32/syscallent.h
ad232c6aa0c2a07830d61dc4b9912478634b23b5 16-Aug-2012 Dmitry V. Levin <ldv@altlinux.org> Decode file type returned by getdents system call

* file.c (sys_getdents): Decode d_type in unabbreviated mode.
ile.c
cf53436f737c0273028503186fc0f837c7191085 12-Jul-2012 Dmitry V. Levin <ldv@altlinux.org> Close pipe and wait for the pipe process termination

In case of normal strace termination, when the trace output is
redirected to a file or a pipe, close it and wait for the pipe
process termination.

* strace.c (main): Before normal exit, close shared_log when it
differs from stderr, and wait for popen_pid termination.
trace.c
26bc0606d96d05d30ba263939a0451889340a64c 10-Jul-2012 Denys Vlasenko <vda.linux@googlemail.com> Enable usage of PTRACE_SEIZE

* defs.h: Define USE_SEIZE to 1. Remove PTRACE_SEIZE_DEVEL
and PTRACE_EVENT_STOP1.
* strace.c (ptrace_attach_or_seize): Replace PTRACE_SEIZE_DEVEL
with 0.
(trace): Do not check for PTRACE_EVENT_STOP1.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
trace.c
d7df59197d406b14af21cbc734d286c27108e2db 04-Jun-2012 Mike Frysinger <vapier@gentoo.org> x32: update syscall table

This syncs with the syscall table as it is in linux 3.4.

* linux/x32/syscallent.h (59): Fix comment typo.
(78): Add missing getdents entry.
(174): Delete create_module entry (not in the kernel).
(181, 182, 183, 184, 185): Add missing entries.
(524, 536, 539, 540): Fix spacing.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
inux/x32/syscallent.h
7d2d23fd9b87c3a1fc61a51e6cb62923d952fb79 25-May-2012 Jean-Baptiste Queru <jbq@google.com> Merge "[MIPS] Add MIPS Support"
fd36697f71f2272c6e1e1283b81d9d85b9085915 25-May-2012 Jean-Baptiste Queru <jbq@google.com> Merge "Fix sigreturn decoding on MIPS"
fc71ec5f3e93f166f3d5a714c51010810699b098 24-May-2012 Duane Sand <duanes@mips.com> Fix sigreturn decoding on MIPS

From: Denys Vlasenko <dvlasenk@redhat.com>
Date: Thu, 9 Jun 2011 01:22:10 +0200

The "return 0" line was accidentally deleted circa 2007,
which made sigreturn on MIPS always display "= 0" return
instead of more informative " = ? (mask now [MASK])".

* strace.c (sys_sigreturn): Add wrongly deleted "return 0" line

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>

Change-Id: Iddd9af8b8a75e02adb38c42faa4f6dec8060fb4f
ignal.c
f20b06e335baf9428a6b5d82648dc862dc4e1b41 24-May-2012 Duane Sand <duanes@mips.com> [MIPS] Add MIPS Support

Change-Id: I875add0b1994f59bfbd77a29f0cf2dde5b3fa429
ndroid.mk
efs.h
ile.c
yscall-android.h
ystem.c
d33e72a26d821f5132410bd27d741f58eef728c9 18-May-2012 Denys Vlasenko <vda.linux@googlemail.com> Merge adjacent printing operations in a few places

* file.c (sys_readahead): Merge tprints() with following printllval().
(sys_ftruncate64): Likewise.
(sys_fadvise64): Likewise.
(sys_fadvise64_64): Likewise.
(sys_fallocate): Merge tprints() with following tprintf().

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ile.c
318a273ea9248c363d8cbc3a053be2ef4adff902 16-May-2012 Denys Vlasenko <vda.linux@googlemail.com> Use %d printf format instead of %i everywhere

* loop.c (loop_ioctl): Use %d instead of %i.
* mtd.c (mtd_ioctl): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
oop.c
td.c
8560ef291ca06948e5f49bccf4bf1e714654b718 16-May-2012 Denys Vlasenko <vda.linux@googlemail.com> Fix a few goofs in sys_sysctl()

* system.c (sys_sysctl): Cast pointer to long, not size_t,
when we intend to use it as an address. Set oldlen to 0 prior
to reading into it - we want to have deterministic result
if read fails.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ystem.c
048cc42f08ac64a04d14e6de17611a5e7ec3b400 16-May-2012 Denys Vlasenko <vda.linux@googlemail.com> Stop using non-standard %Zu and %Zd formats for size_t printing

The documented formats are %zu and %zd, but since our (normally disabled)
"fast" printf code doesn't support those too, I convert them to %lu and %ld.

* bjm.c (sys_query_module): Convert %Zd usages to %lu.
* system.c (sys_sysctl): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
jm.c
ystem.c
c59b3f13fbc50712785cc2635ab12e8152c96aa1 15-May-2012 Denys Vlasenko <vda.linux@googlemail.com> Remove outdated comment about suspending new tracees

We no longer track parent/child relationship between tracees.
Therefore, we no longer suspend new tracee until parent is seen
exiting form [v]fork/clone. The comment is obsolete.

* strace.c (trace): Remove outdated comment.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
c52826c267aaca5c976b10e13ee6debc0bdf3f43 15-May-2012 Denys Vlasenko <vda.linux@googlemail.com> Make sure current_wordsize and PERSONALITY0_WORDSIZE are ints in all arches

On 64bit systems with a single personality, they used to be sizeof(long),
which has type "long", not "int", which complicates printf formats.

* defs.h: Ensure that PERSONALITY0_WORDSIZE;s tyoe is int.
This in turn makes sure current_wordsize is also an int.
* count.c (call_summary): Revert the change which added cast to int.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ount.c
efs.h
d376c92a91c0b9fad79171abd7c50c1fc8976262 15-May-2012 Dmitry V. Levin <ldv@altlinux.org> Add configure --enable-gcc-Werror option

* configure.ac: New option --enable-gcc-Werror.
onfigure.ac
f112d0780055442f83e754620b2c618ec73b6226 15-May-2012 Dmitry V. Levin <ldv@altlinux.org> Make x86-64 build free of artificial warnings

* signal.c (sys_sigreturn): Do not issue "no sys_sigreturn" warning
on X86_64.
ignal.c
0dbc80de895c25769791b7726022a274695eec31 15-May-2012 Dmitry V. Levin <ldv@altlinux.org> Fix kernel release string parsing

* strace.c (get_os_release): Handle "X.Y-something" utsname.release
strings properly.

Reported-by: Bryce Gibson <bryce@gibson-consulting.com.au>
trace.c
55980f5b72000406e3fd843b098b5c1328a21e45 14-May-2012 Denys Vlasenko <vda.linux@googlemail.com> On clearing "breakpopint", restore syscall number too

This fixes Fedora bug 659382.
Low risk: this code is not supposed to be used on any non-acient kernel.

* util.c (clearbpt): Restore syscall number too.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
til.c
24ee60b836ad33bb4ac694ca99d6c94a8cc5ff92 05-May-2012 Mike Frysinger <vapier@gentoo.org> util: fix building when glibc has a stub process_vm_readv

If you have a newer glibc which provides process_vm_readv, but it is built
against older kernel headers which lack __NR_process_vm_readv, the library
will contain a stub implementation that just returns ENOSYS. Autoconf
checks for this case explicitly and will declare it as unavailable. So we
end up in a case where the headers provide the prototype, but autoconf has
not defined HAVE_PROCESS_VM_READV, so we hit the same build failure again:

util.c:738:16: error: static declaration of 'process_vm_readv' follows non-static declaration
/usr/include/bits/uio.h:58:16: note: previous declaration of 'process_vm_readv' was here

So rename our local function to something unique, and add a define so the
callers all hit the right place.

* util.c (strace_process_vm_readv): Rename from process_vm_readv.
(process_vm_readv): Define to strace_process_vm_readv.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
til.c
5700f68471ef83aae4757bb84280e3fcc6e20692 03-May-2012 Dmitry V. Levin <ldv@altlinux.org> doc: describe documentation policy

* README-hacking: Describe documentation policy.
EADME-hacking
503faaae3a6b6e05022c26b76f5c867e5623f1a7 03-May-2012 Dmitry V. Levin <ldv@altlinux.org> maint: post-release administrivia

* NEWS: Add header line for next release.
EWS
417eb8861e5f4c81077cc0b1e8a495209d850db8 02-May-2012 Dmitry V. Levin <ldv@altlinux.org> Prepare for 4.7 release

* configure.ac: Version 4.7.
* debian/changelog: 4.7-1.
* strace.spec: 4.7-1.
onfigure.ac
ebian/changelog
trace.spec
cf050db3e88bd68f17464afdc48805186eb300f4 02-May-2012 Dmitry V. Levin <ldv@altlinux.org> Fix build with <linux/loop.h> from 2.6.18 kernel headers

* configure.ac: Check for LO_FLAGS_AUTOCLEAR and LO_FLAGS_PARTSCAN
declarations.
* loop.c (loop_flags_options): Use LO_FLAGS_AUTOCLEAR and
LO_FLAGS_PARTSCAN only when appropriate declarations are available.
(loop_ioctl): Use LOOP_SET_CAPACITY only when it is defined.
onfigure.ac
oop.c
a5fd66b7b94b88c7d9fe1fe1f47c3faabb7b3191 02-May-2012 Dmitry V. Levin <ldv@altlinux.org> * vsprintf.c: Check for USE_CUSTOM_PRINTF earlier.
sprintf.c
e263e3b8131ad9d60c0e91d1307ae16437bc2c06 01-May-2012 Dmitry V. Levin <ldv@altlinux.org> Remove duplicate names from CREDITS

* .mailmap: Merge email addresses.
* CREDITS.in: Remove a duplicate name.
mailmap
REDITS.in
823eba28cd7a0e0cedf9bb3cd4e7f3765ceb2ef8 01-May-2012 Dmitry V. Levin <ldv@altlinux.org> tests: raise strace check timeout to 60 seconds

* tests/init.sh (check_timeout): New variable.
* tests/ptrace_setoptions: Use it.
* tests/strace-f: Likewise.

Reported-by: Mike Frysinger <vapier@gentoo.org>
ests/init.sh
ests/ptrace_setoptions
ests/strace-f
a28fbfd523f9758438985847cf9cd6b9c08433b1 01-May-2012 Dmitry V. Levin <ldv@altlinux.org> Update STA_* constants

* time.c (adjtimex_status): Add STA_NANO, STA_MODE, and STA_CLK.
* NEWS (Improvements): Mention it.
EWS
ime.c
4ef3063c95f8f5e703d5612e963c3eaf1785713a 01-May-2012 Dmitry V. Levin <ldv@altlinux.org> NEWS: update for release

* NEWS (Improvements): Mention recent recvmsg/recvmmsg decoders
enhancements.
(Portability): Add a recommendation for the minimum Linux kernel
version to use.
EWS
ea22e9753d577aed0b5564d083a6dac18a51eccd 01-May-2012 Dmitry V. Levin <ldv@altlinux.org> Make printing of utsname.domainname more portable

* configure.ac: Check for struct utsname.domainname field.
* process.c (sys_uname): Print utsname.domainname when the field is
available.
onfigure.ac
rocess.c
5ea97658e78b6ce9fb768ffdd6a4b682c5df8e90 01-May-2012 Dmitry V. Levin <ldv@altlinux.org> Fix recvmmsg decode: do not show more data than actually returned

This change complements recent fix for recvmsg decoding.

* net.c (printmmsghdr): Add msg_len parameter to pass down to do_msghdr.
When this parameter is zero, pass mmsghdr.msg_len to do_msghdr instead.
(decode_mmsg): Add msg_len parameter, pass it down to printmmsghdr.
(sys_sendmmsg): Call decode_mmsg with msg_len == (unsigned long) -1L.
(sys_recvmmsg): Call decode_mmsg with msg_len == 0.
et.c
043b5f81429412cf23d578d1dc2b45107a8352e5 01-May-2012 Dmitry V. Levin <ldv@altlinux.org> Remove recently introduced use of ULONG_MAX

* io.c: Remove limits.h inclusion.
(tprint_iov): Use "(unsigned long) -1L" instead of "ULONG_MAX".
* net.c: Remove limits.h inclusion.
(printmmsghdr, sys_sendmsg): Use "(unsigned long) -1L" instead of
"ULONG_MAX".
o.c
et.c
3efa7c7f1be0f54e0656de5cb4a5f4c39db10150 28-Apr-2012 Denys Vlasenko <vda.linux@googlemail.com> Enable printing of uts.domainname in uname syscall

* process.c (sys_uname): Enable printing of uts.domainname

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
rocess.c
b5d43b81a8abdf17bc3aa585a66215ebe3ba3671 28-Apr-2012 Denys Vlasenko <vda.linux@googlemail.com> Fix printstr's len parameter width

We often pass syscall params and other long-sized values
as printstr(len). Truncating them to int may be a bad thing.

* defs.h: Change len parameter's type from int to long in
string_quote and printstr function declarations.
* util.c (string_quote): Special-case only len==-1, not all len<0.
(printstr): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
til.c
e0bc222263cf47a43e1b26d55edb2ffadc8ccbff 28-Apr-2012 Denys Vlasenko <vda.linux@googlemail.com> Fix recvmsg decode: do not show more data than actually returned

I noticed that "hostname -d" talks over netlink and gets 20 bytes
of response, but we show entire 1024 bytes of iov.
This changes fixes that.

* defs.h: New function tprint_iov_upto.
* io.c (tprint_iov_upto): Definition of this function.
(tprint_iov): Call tprint_iov_upto.
* net.c (do_msghdr): Add data_size parameter, pass it down to tprint_iov_upto.
(printmsghdr): Add data_size parameter, pass it down to do_msghdr.
(printmmsghdr): Call do_msghdr with data_size==ULONG_MAX.
(sys_sendmsg): Call printmsghdr with data_size==ULONG_MAX.
(sys_recvmsg): Call printmsghdr with data_size==tcp->u_rval.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
o.c
et.c
54432560a846a466341874c11c8400d4b00def1e 28-Apr-2012 Dmitry V. Levin <ldv@altlinux.org> Package strace-log-merge

* strace.spec (%files): Add strace-log-merge.
trace.spec
9b4fca2853b69c14910d35b7fe8308f2bdc4ffe3 28-Apr-2012 Mike Frysinger <vapier@gentoo.org> NEWS: clarify & fix typo

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
EWS
aa6d8504772e7754163a109fb6bcbfbe13c3212b 28-Apr-2012 Mike Frysinger <vapier@gentoo.org> Cast current_wordsize to an int

On 64bit systems with a single personality, we see:
count.c: In function 'call_summary':
count.c:223:5: warning: format '%u' expects type 'unsigned int',
but argument 3 has type 'long unsigned int'

Since on multi-personality systems this is an array of ints, cast
the multiplication to an int and update the printf format.

* count.c (call_summary): Change %u to %d and cast first argument to int.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
ount.c
84e50fc76406523c0e46e50d60421ce04be15f45 20-Apr-2012 Dmitry V. Levin <ldv@altlinux.org> Update NEWS for upcoming 4.7 release

* NEWS: Update for 4.7 release.
EWS
48e95c7b1a653cbb16ab9e97106595388d4a9ff5 20-Apr-2012 Dmitry V. Levin <ldv@altlinux.org> Sync strace.spec and debian/ with packages

* debian/changelog: Sync with 4.5.20-2.3.
* debian/control: Likewise.
* strace.spec: Sync with 4.6-2.
ebian/changelog
ebian/control
trace.spec
ebee04cfb009bdc46599774b4647f6615b6ce3a2 18-Apr-2012 Mike Frysinger <vapier@gentoo.org> Decode /dev/loop ioctls

Needed to debug some losetup failures, and it's easier when you can see
what the kernel is getting vs what you think you're sending, so add some
decoders for those ioctls.

* loop.c: New file.
* Makefile.am (strace_SOURCES): Add loop.c.
* defs.h (loop_ioctl): New prototype.
(string_quote): Likewise.
* ioctl.c (ioctl_decode): Call loop_ioctl when code is 'L'.
* util.c (string_quote): Remove static keyword.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
akefile.am
efs.h
octl.c
oop.c
til.c
085e42886052190d3e515ca865546b527f59cdd1 17-Apr-2012 H.J. Lu <hongjiu.lu@intel.com> x32: add ia32 support

* Makefile.am (EXTRA_DIST): Add linux/x32/errnoent1.h,
linux/x32/ioctlent1.h, linux/x32/signalent1.h and
linux/x32/syscallent1.h.
* configure.ac: Remove AC_GNU_SOURCE, obsoleted by
AC_USE_SYSTEM_EXTENSIONS.
* defs.h (SUPPORTED_PERSONALITIES): Set to 2 for X32.
(PERSONALITY1_WORDSIZE): Set to 4 for X32.
* file.c (stat64): New struct for X32.
(sys_lseek32): New function for X32.
(stat64): Undef.
(sys_fstat64): Likewise.
(sys_stat64): Likewise.
(realprintstat64): New function for X32.
(sys_fstat64): Likewise.
(sys_stat64): Likewise.
* mem.c (sys_old_mmap): New function for X32.
* pathtrace.c (pathtrace_match): Also check sys_old_mmap for X32.
* syscall.c (update_personality): Add X32 support.
(get_scno): Support currpers == 1 for X32.
* linux/syscall.h (sys_lseek32): New function prototype for X32.
* linux/x32/errnoent1.h: New file.
* linux/x32/ioctlent1.h: Likewise.
* linux/x32/signalent1.h: Likewise.
* linux/x32/syscallent1.h: Likewise.
akefile.am
onfigure.ac
efs.h
ile.c
inux/syscall.h
inux/x32/errnoent1.h
inux/x32/ioctlent1.h
inux/x32/signalent1.h
inux/x32/syscallent1.h
em.c
athtrace.c
yscall.c
2bb4581ee501f6803df258ebb74c63a18a48422b 15-Apr-2012 H.J. Lu <hongjiu.lu@intel.com> Cast clock_t type to unsigned long long

* resource.c (sys_times): Cast clock_t type to unsigned long long.
* signal.c (printsiginfo): Likewise.
esource.c
ignal.c
6e4f3c1fa41851cb72230432db4be8e0c2993c7d 16-Apr-2012 Denys Vlasenko <vda.linux@googlemail.com> Add custom (faster) vfprintf implementation (disabled by default)

* defs.h: Declare strace_vfprintf either as a alias to vfprintf
or as a bona fide function. USE_CUSTOM_PRINTF define controls whether
we use strace_vfprintf. By default, we don't.
* strace.c (tprintf): Call strace_vfprintf instead of vfprintf.
* vsprintf.c: New file, implements strace_vfprintf.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
akefile.am
efs.h
trace.c
sprintf.c
61d62cf9481f100f76f1e8a2dfe131f638566633 16-Apr-2012 Denys Vlasenko <vda.linux@googlemail.com> Stop using %h[h]u format specifiers

This is needed for simplified printf, and reduces code size a bit.

* block.c (block_ioctl): Cast the value to unsinged and use %u
instead of using %hu.
* desc.c (sys_io_cancel): Likewise.
* resource.c (sys_sysinfo): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
lock.c
esc.c
esource.c
142aee0a593ea9b42aa98347d998176b8a4e2489 16-Apr-2012 Denys Vlasenko <vda.linux@googlemail.com> Trivial speed optimization

* strace.c (tprints): Use fputs_unlocked instead of fputs.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
c933f27a3a932bbe9921a1d94b45e4db94b21a5f 16-Apr-2012 H.J. Lu <hongjiu.lu@intel.com> Fix a problem with sys_lseek on x32

* file.c (sys_lseek): Use MIPS-n32 variant also for x32

Signed-off-by: H.J. Lu <hongjiu.lu@intel.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ile.c
35be58119e3727a694d8c9f9b83f372401fcc4c0 16-Apr-2012 H.J. Lu <hongjiu.lu@intel.com> Add x32 support to strace

X32 support is added to Linux kernel 3.4. In a nutshell, x32 is x86-64 with
32bit pointers. At system call level, x32 is also identical to x86-64,
as shown by many changes like "defined(X86_64) || defined(X32)". The
main differerence bewteen x32 and x86-64 is off_t in x32 is long long
instead of long.

This patch adds x32 support to strace. Tested on Linux/x32.

* configure.ac: Support X32.
* defs.h: Set SUPPORTED_PERSONALITIES to 3 for X86_64,
Set PERSONALITY2_WORDSIZE to 4 for X86_64.
Add tcb::ext_arg for X32.
* file.c (stat): New for X32.
(sys_lseek): Use 64-bit version for X32.
(printstat64): Check current_personality != 1 for X86_64.
* ipc.c (indirect_ipccall): Check current_personality == 1
for X86_64.
* mem.c (sys_mmap64): Also use tcp->u_arg for X32. Print NULL
for zero address. Call printllval for offset for X32.
* pathtrace.c (pathtrace_match): Don't check sys_old_mmap for
X32.
* process.c (ARG_FLAGS): Defined for X32.
(ARG_STACK): Likewise.
(ARG_PTID): Likewise.
(change_syscall): Handle X32.
(struct_user_offsets): Support X32.
(sys_arch_prctl): Likewise.
* signal.c: Include <asm/sigcontext.h> for X32.
(SA_RESTORER): Also define for X32.
* syscall.c (update_personality): Support X32 for X86_64.
(is_restart_error): Likewise.
(syscall_fixup_on_sysenter): Likewise.
(get_syscall_args): Likewise.
(get_syscall_result): Likewise.
(get_error): Likewise.
(__X32_SYSCALL_BIT): Define if not defined.
(__X32_SYSCALL_MASK): Likewise.
(get_scno): Check DS register value for X32. Use
__X32_SYSCALL_MASK on X32 system calls.
* util.c (printllval): Use ext_arg for X32.
(printcall): Support X32.
(change_syscall): Likewise.
(arg0_offset): Likewise.
(arg1_offset): Likewise.
* Makefile.am (EXTRA_DIST): Add linux/x32/errnoent.h,
linux/x32/ioctlent.h.in, linux/x32/signalent.h,
linux/x32/syscallent.h, linux/x86_64/errnoent2.h,
linux/x86_64/ioctlent2.h, linux/x86_64/signalent2.h and
linux/x86_64/syscallent2.h.
* linux/x32/errnoent.h: New.
* linux/x32/ioctlent.h.in: Likewise.
* linux/x32/signalent.h: Likewise.
* linux/x32/syscallent.h: Likewise.
* linux/x86_64/errnoent2.h: Likewise.
* linux/x86_64/ioctlent2.h: Likewise.
* linux/x86_64/signalent2.h: Likewise.
* linux/x86_64/syscallent2.h: Likewise.

Signed-off-by: H.J. Lu <hongjiu.lu@intel.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
akefile.am
onfigure.ac
efs.h
ile.c
pc.c
inux/x32/errnoent.h
inux/x32/ioctlent.h.in
inux/x32/signalent.h
inux/x32/syscallent.h
inux/x86_64/errnoent2.h
inux/x86_64/ioctlent2.h
inux/x86_64/signalent2.h
inux/x86_64/syscallent2.h
em.c
athtrace.c
rocess.c
ignal.c
yscall.c
til.c
dd0130b963151e37cffc8b593bebe3e3de58dfd4 16-Apr-2012 H.J. Lu <hongjiu.lu@intel.com> Restore tcb::u_lrval; fix lseek on MIPS-n32

Linux kernel v3.4 adds x32 support. Both x32 and n32 use 64bit offset
for lseek parameter and return value. We need u_lrval to handle it
properly. Also we shouldn't check HAVE_LONG_LONG_OFF_T for n32 lseek.
This patch fixes it properly and prepares lseek for x32.

* defs.h (tcb): Restore tcb::u_lrval field, RVAL_Lfoo constants.
Set RVAL_MASK to 7.
* file.c (sys_lseek): Print 64bit offset and return RVAL_LUDECIMAL
for n32.
* syscall.c (get_error): Set u_lrval for MIPS-n32.
(trace_syscall_exiting): Handle RVAL_Lfoo return value types.

Signed-off-by: H.J. Lu <hongjiu.lu@intel.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
ile.c
yscall.c
0cbed357ab749fa0cf58e8d72230c2ed92334932 05-Apr-2012 Mike Frysinger <vapier@gentoo.org> Decode mtd ioctls

I got tired of figuring out mtd structures (which show up a lot
in the embedded space), so add decoders for those ioctls.

* defs.h (mtd_ioctl): New prototype.
(print_loff_t): Likewise.
* io.c (print_loff_t): Delete static keyword
* ioctl.c (ioctl_decode): Call mtd_ioctl when code is 'M'.
* Makefile.am (strace_SOURCES): Add mtd.c.
(EXTRA_DIST): Add linux/mtd-abi.h.
* mtd.c: New file.
* linux/mtd-abi.h: New file.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
akefile.am
efs.h
o.c
octl.c
inux/mtd-abi.h
td.c
7ff5ed932568a8049c3ca134da374f64c3e255ce 05-Apr-2012 Mike Frysinger <vapier@gentoo.org> Fix indefinite hang on no-mmu systems

The ptrace setoptions code will fork a child which goes to sleep and
expects the parent to continue on to do tests. Unfortunately, this
does not work on no-mmu systems as fork() is actually vfork() and any
vforked children will hang the parent until it exits or execs.

We might be able to make this test work on no-mmu systems with a bit
of work, but easier to just disable this for the release so it works
now.

* strace.c (test_ptrace_setoptions_for_all): Return if strace_vforked.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
trace.c
f36ede69f7bceba461541f440e6d562a6d2ffa83 29-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Makefile.am: whitespace fix

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
akefile.am
7015fe4fd237dc95a51f135d75fe47442a757ecd 27-Mar-2012 Anton Blanchard <anton@samba.org> powerpc: Add syscall entries for direct socket system calls

* linux/powerpc/syscallent.h: Add direct socket system calls.
inux/powerpc/syscallent.h
4372cc956b7ff1b7e1398d2247e5ac87c4788455 26-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> qual_syscall: fix potential NULL dereference

Fix regression introduced by commit
c1371ebc400fe9578908beca87f2bf407daf1506

* syscall.c (qual_syscall): Handle null sys_name.

Reported-by: Fr. Br. George <george@altlinux.org>
yscall.c
030d555ce5465b90881b0c79c6f54c7396df5f37 26-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> strace-log-merge: fix file suffix calculation

* strace-log-merge: Quote file prefix to fix file suffix calculation.

Reported-by: Denys Vlasenko <vda.linux@googlemail.com>
Suggested-by: Andreas Schwab <schwab@linux-m68k.org>
trace-log-merge
df790130ff66b7cb9b3499210bae21a5baede111 26-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Remove unreachable code

* strace.c (process_opt_p_list): Remove unreachable code.
trace.c
94f00e62b410ce27c0c91624c15c6d8d4cbec56b 26-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> manpage: remove false info about -p being limited to 32 processes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.1
c5ccfa450b9818ef9eab94f9d15189e50a796937 26-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Tweak help text and manpage (added -In to manpage)

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.1
trace.c
378f9c5ad0043632475cd17cbe5fe4cf38971b2b 26-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> printstr: check for potential integer overflow

* util.c (printstr): Check for potential integer overflow during outstr
buffer size calculation.
til.c
ccee169ab6aa4ae7515198dadcef5dd2286ede4b 25-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Robustify parsing of numbers from strings

* defs.h (string_to_uint): New prototype.
* util.c (string_to_uint): New function.
* strace.c (error_opt_arg): New function.
(process_opt_p_list): Use string_to_uint instead of atoi.
Terminate in case of invalid process id.
(init): Use string_to_uint instead of atoi.
Use error_opt_arg in case of invalid option argument.
* syscall.c (qual_syscall, qual_signal, qual_desc): Use string_to_uint
instead of atoi.
efs.h
trace.c
yscall.c
til.c
20f6b54385d2462d858419f7c67509cb3d22d155 25-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> strace-log-merge: enhance usage error diagnostics

* strace-log-merge: Add --help option. Check number of arguments.
Issue an error message when no strace output was merged.
trace-log-merge
d8879f420697393ab5b73926ccb3b40f8f017303 25-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> configure.ac: sort lists and use m4_normalize to ease maintenance

* configure.ac (AC_CHECK_FUNCS, AC_CHECK_HEADERS, AC_CHECK_MEMBERS,
AC_CHECK_DECLS): Sort lists, use m4_normalize.
onfigure.ac
e4cc7c58dda80d502e5c66c0c91f7df191d540a8 23-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Simple optimizations

Why open-coding isdigit is a good idea?

Before: call __ctype_b_loc
movzbl (%ebx),%edx
mov (%eax),%eax
testb $0x8,0x1(%eax,%edx,2)
je lbl

After: movzbl (%eax),%edx
sub $0x30,%edx
cmp $0x9,%dl
ja lbl

text data bss dec hex filename
236869 704 18944 256517 3ea05 strace.before
236719 700 18944 256363 3e96b strace

* defs.h: Alias sigemptyset to __sigemptyset on glibc.
* syscall.c (qual_syscall): Open-code isdigit.
(qual_desc): Likewise.
(qual_signal): Open-code isdigit. Remove string copying
which was done for no apparent reason.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
yscall.c
d63b0d568265296caccef53476cee5e3ca05ce57 23-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Reorder declarations in defs.h. No code changes

* defs.h: Reorder declarations (such as: keep all printing functions together).

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
6764f8f2f0b71ecc069d607eb8525735d1684a59 22-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Simplify current tcp switching and current column handling

Instead of using "static FILE *outf and static unsigned int curcol"
to cache current outfile and its position, we can simply
remember current tcb and use its ->outf and ->curcol.
This allows to drop numerous "tcp->curcol = curcol" ops in trace().

Turns out we can't drop "static FILE *outf", but now its role is
a bit clearer: it newer changes after init, stays == stderr or
opened to shared log (which may be the same thing if neither -o
nor -ff was specified). Let's rename it then.

text data bss dec hex filename
236953 704 18944 256601 3ea59 strace.before.prev.commit
236905 704 18944 256553 3ea29 strace.before
236869 704 18944 256517 3ea05 strace

* strace.c: Replace curcol static variable by struct tcb *current_tcp.
Rename static FILE *outf to shared_log (since it no longer caches tcp->outf).
(ptrace_restart): Use current_tcp->curcol instead of curcol.
(tprintf): Check current_tcp != NULL instead of outf != NULL.
Use current_tcp->outf instead of outf, current_tcp->curcol instead of curcol.
(tprints): Likewise.
(line_ended): Likewise.
(printleader): Switch current tcb by "current_tcp = tcp" istead of
assignments to outf and curcol.
(droptcb): Set current_tcp to NULL if we dropped it.
(startup_child): Rename outf to shared_log.
(init): Likewise.
(cleanup): Likewise.
(trace): Simplify current tcp switching and current column handling.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
8511f2a1f02a31f66eab86bf95dee1636fb39076 22-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Make threaded execve handling code more reabable and somewhat simpler

* strace.c (droptcb): Remove outfname check in "outfname && followfork >= 2" -
with recent changes, followfork >= 2 check guarantees that outfile
was specified, and _is already opened_.
(trace): Move tcb existence check before threaded execve handling.
This allows to remove tcp != NULL checks in threaded execve handling.
Rewrite threaded execve handling code to be less indented,
keeping the same logic.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
513e9c23df4713c97c25f862ee9c140f508c5a2c 21-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> simple cleanups in defs.h. No logic changes.

* defs.h: Move offsetof macro definition into "libc stuff" section.
Renumber TCB_foo constants (smaller constants -> sometimes smaller code).
Remove uoff macro.
* process.c: Move uoff macro here (sole user).

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
rocess.c
b5e0908a173cc8005ed73fa5c0eab59d03baa7f3 21-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Show "+++ exited..." with -C

* strace.c (trace): Show "+++ exited..." with -C too.
Save tcp->curcol after PTRACE_LISTEN failure too, just in case.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
e7a4772196e18f35cad6aa9d6d4b71e9e3bdd1f6 21-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Slight tweak to qemu_multiarch_testing scripts

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
emu_multiarch_testing/make-hdc-img.sh
emu_multiarch_testing/parallel-build-hdc-img.sh
a44f9696e45f5bb51c6ec37c0ef95dc2cdfd4c8a 21-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Replace reprinting decision logic

After this change, we no longer need to decide when we need
to set TCB_REPRINT, and when we don't: it's never needed :)

Well, almost. That pesky pid-changing execve needs special treatment.
If not it, it'd be possible to nuke TCB_REPRINT...

While at it, fix a case of mishandled -C.

* strace.c (printleader): Do not set TCB_REPRINT.
(trace): Set TCB_REPRINT only for execve with changing pid.
Fix mishandling of -C.
* syscall.c (trace_syscall_entering): Do not clear TCB_REPRINT.
(trace_syscall_exiting): Replace reprinting decision logic.
Remove call to printargs(): it is known to just return 0 here.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
yscall.c
235067525cc064a9a466c245fa8a6265ae136306 21-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Report some ptrace failures; nuke tcp->ptrace_errno

Report some (not all) ptrace errors, namely,
errors on ptrace restart operations.

Before: 10533 sendto(-1, 0x804895e, 17, 0, NULL, 0 <unfinished ...>
After: 10533 sendto(-1, 0x804895e, 17, 0, NULL, 0 <ptrace(SYSCALL):No such process>

This tells user that strace failed to let sendto syscall
to be entered - process was dead at that point of time.
It is (marginally) better than to always say "<unfinished ...>"

While at it, patch removes tcp->ptrace_errno.
I added it many months ago, and it looks that after all
it is not needed for ptrace error detection: I failed to execute
a single existing code path which is accessible
through that variable only.

* defs.h: Remove struct tcp::ptrace_errno field.
* strace.c (ptrace_restart): Emit message to log on error.
(printleader): Remove "if (printing_tcp->ptrace_errno)..." code.
(trace): Remove !tcp->ptrace_errno check, it's always true.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
trace.c
907735aec82dd8d863b77839ce69508711703b4b 21-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Eliminate redundant checks of res variable

* syscall.c (trace_syscall_entering): Eliminate redundant checks of res variable.
(trace_syscall_exiting): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
46dc8b22067b1dd1d7d570265861223c85ca079e 21-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Rename POWERPC-specific static variable result to ppc_result

* syscall.c: Rename POWERPC-specific static variable result to ppc_result.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
bb6bb5c17992bbfdff902a4729296d0ddb4aa54a 20-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Remove redundant checks in syscall entry/exit, rename badly named function

* syscall.c (syscall_enter): Rename to get_syscall_args.
Document its return values.
(trace_syscall_entering): Don't check get_syscall_args() return
value for 0, it never returns that.
(syscall_fixup_on_sysexit): Make it return void.
(trace_syscall_exiting): Fix up syscall_fixup_on_sysexit()
call site accordingly.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
b7a6dae9fb15cd9f71d72861097c6c0e8608e88e 20-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Trivial tweaks. No logic changes

* process.c (sys_ptrace): Remove unneeded line wrapping.
* syscall.c (trace_syscall_entering): Use tprints() instead of tprintf().

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
rocess.c
yscall.c
852f98a3824f6b8359df744af5772306410341ab 20-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Make ptrace_restart() static. No code changes

* defs.h: Remove ptrace_restart() declaration.
* strace.c (ptrace_restart): Move its definition here.
* util.c (ptrace_restart): Remove its definition.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
trace.c
til.c
806fbce4e6133d87f4970e9ba1460c618b5fc23e 20-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Do not include limits.h unnecessarily

* ioctl.c: Remove limits.h inclusion left after the reverted change.
octl.c
feb40c4543d22468bb6dc7e3c29746ee2d4e06cc 20-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Partially revert last change

Thank you Dmitry for spotting it.

* ioctl.c (compare): Partially revert last change - the new
comparison logic was buggy.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
octl.c
1c2e912cc3e1be4081334b9ce0114c10a72166c6 20-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Simplify search in ioctl table

text data bss dec hex filename
236973 704 18944 256621 3ea6d strace.before
236929 704 18944 256577 3ea41 strace

* ioctl.c (compare): Simplify generation of compare result.
(ioctl_lookup): Pass key directly, not as part of dummy struct.
(ioctl_next_match): More readable code. No logic changes.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
octl.c
8cf2c261eada67a137c7d118edf305f010e469ff 19-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Update qemu build script: now tries to upload result back to host

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
emu_multiarch_testing/hdc.dir/init2
c1371ebc400fe9578908beca87f2bf407daf1506 19-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Shrink space needed by undefined syscalls in syscall tables.

Undefined syscall looked like this before this change:
{ 5, 0, printargs, "SYS_53" },
That is, "SYS_53" string had to be allocated and stored in strace binary.
Since now SCNO_IN_RANGE() macro requires sysent[scno].sys_func != NULL
for valid syscalls, we can replace printargs with NULL in such lines
and make them "invalid", thus not requiring syscall name string.

Savings on i386:
text data bss dec hex filename
237389 704 18944 257037 3ec0d strace.before
236973 704 18944 256621 3ea6d strace
Savings on mips:
336551 153692 38320 528563 810b3 strace.before
275543 153688 38320 467551 7225f strace

Tested to still decode undefined syscalls correctly (syscall no. 222 on i386).

* linux/*/syscallent.h: Replace 'printargs, "SYS_nnn"' with
'NULL, NULL'.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/arm/syscallent1.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/sparc/syscallent1.h
9fd4f96d2a2527ac7ca90c156bfc11ce10118684 19-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Optimize code if we have only one personality

On i386:
text data bss dec hex filename
238025 672 18980 257677 3ee8d strace.before
237389 704 18944 257037 3ec0d strace

* defs.h: Define PERSONALITY0_WORDSIZE as sizeof(long) if not defined.
Introduce new define, current_wordsize as
(personality_wordsize[current_personality]).
Make set_personality() no-op, current_personality constant zero,
current_wordsize as PERSONALITY0_WORDSIZE if we have only one personality.
* count.c (call_summary): Use current_wordsize instead of
personality_wordsize[current_personality].
* desc.c (printflock): Likewise.
* file.c (sys_utime): Likewise.
* io.c (tprint_iov): Likewise.
* process.c (printargv): Likewise.
* resource.c (decode_rlimit): Likewise.
* signal.c (sys_kill): Likewise.
(sys_rt_sigaction): Likewise.
* time.c (sprinttv): Likewise.
(sprint_timespec): Likewise.
(printitv_bitness): Likewise.
(tprint_timex): Likewise.
(printsigevent): Likewise.
* util.c (dumpiov): Likewise.
(umoven): Likewise.
(umovestr): Likewise.
* syscall.c: Initialize sysent to sysent0 etc.
Make current_personality, personality_wordsize[], set_personality()
conditional on SUPPORTED_PERSONALITIES > 1.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ount.c
efs.h
esc.c
ile.c
o.c
rocess.c
esource.c
ignal.c
yscall.c
ime.c
til.c
1be02798f56f3ee940c9cbc047be627fd12eef16 18-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Fix mips64 build failure: sys_pwrite64 doesn't exist.

sys_pwrite seems to do the same thing as sys_pwrite64
which we deleted when we removed non-Linux code.

* linux/mips/syscallent.h: s/sys_pwrite64/sys_pwrite/

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
inux/mips/syscallent.h
6acf586aa8adbf1505ff2975c1b0c1cb4920bf66 18-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> qemu_multiarch_testing/: a directory with scripts for build testing

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
emu_multiarch_testing/README
emu_multiarch_testing/hdc.dir/init
emu_multiarch_testing/hdc.dir/init2
emu_multiarch_testing/make-hdc-img.sh
emu_multiarch_testing/parallel-build-hdc-img.sh
146b944d4a968c2922f4220d33219ed3534f50d0 18-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Make internal_fork and internal_exec static

text data bss dec hex filename
237917 672 18980 257569 3ee21 strace
237845 672 18980 257497 3edd9 strace_new

* defs.h: Remove declarations of internal_fork and internal_exec.
* process.c: Remove definitions of internal_fork and internal_exec.
* syscall.c: Move them here.
(internal_syscall): Return void instead of int. We were always
returning zero, and callers weren't checking it anyway.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
rocess.c
yscall.c
f50e7141d5b5aedafa220d851a8b6afe753d679a 18-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Remove code which is not used on Linux

Compile tested in qemu on armv4l,armv4tl,armv5l,armv6l,i686,
mipsel,mips,x86_64

* syscall.c: Remove code which handles RVAL_Lfoo constants.
* defs.h: Remove struct tcb::u_lrval member - it is never set.
Remove RVAL_Lfoo constants which signify return of "long" result -
they are never used.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
yscall.c
88c63f21b18bcf345856c5ef2ca9504f29e9ace8 18-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Remove unused version of sys_lseek

It is buggy: it returns RVAL_LUDECIMAL, which means the return value
is in tcp->u_lrval. But tcp->u_lrval is never set
(on Linux - it used to be set on other OSes).

* file.c (sys_lseek): Remove a version of this function which is
supposed to be used if off_t is long long. It appears to be buggy
and unused.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ile.c
8677913953ecf97f4824f6ce666cdc36fee8fe70 17-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Revert "Remove underscores from a few syscall names which have them"

This reverts commit 31972d52b1059d8faca1c5f417c2db1a90b868ae.
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent.h
inux/x86_64/syscallent.h
0c163c408f9ebf705fd149941994b4997f353744 17-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Simplify sys_lseek64 conditional compilation.

It looks like sys_lseek64() is never used.
For one, it is buggy (always shows 0 return value), and no one complains.

From code inspection: sys_lseek64 name is not used anywhere.
It is defined to sys_lseek if HAVE_LONG_LONG_OFF_T is true.
Thus, if !HAVE_LONG_LONG_OFF_T, it is never used.
Therefore "if _LFS64_LARGEFILE || HAVE_LONG_LONG_OFF_T"
conditional it sits in can be simplified to
"if HAVE_LONG_LONG_OFF_T".
Therefore, we can move it a bit up and merge with
"if !HAVE_LONG_LONG_OFF_T, use this sys_lseek()" code block,
by addind an "else" clause to it.
To simplify it more, drop define and just rename sys_lseek64 ->
sys_lseek.

Since the function is buggy, I think it is unused and we can
just drop it. (I checked: at least I386 never uses it).

* file.c (sys_lseek64): Rename to sys_lseek; don't compile it
if _LFS64_LARGEFILE but !HAVE_LONG_LONG_OFF_T since in this case
it is never used.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ile.c
31972d52b1059d8faca1c5f417c2db1a90b868ae 17-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Remove underscores from a few syscall names which have them

Affected names are "_newselect", "_llseek", "_sysctl".
I see no apparent reason why they have leading underscores.
Moreover, some arches have underscored names and some have
non-underscored ones. This is not consistent.

I verified that every architectire I touched did not have
a similarly named syscall without underscore, thus this change
does not introduce new ambiquities.

I left "_exit" untouched for now, but the same points stand for it too:
some architectures use "exit" and no one complains. So why many
arches are using "_exit"?

* linux/*/syscallent.h: Remove underscores from displayed
syscall names for _newselect, _llseek, _sysctl.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent.h
inux/x86_64/syscallent.h
a61a72eacb9b6c687937799b933876bb3b397af4 17-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Remove unused struct tcb::baddr field

* defs.h: Remove unused struct tcb::baddr field.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
e10a0e4734c1b4853c71d008c135880d0ad35d5f 17-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Remove unused PTRACE_WRITE{TEXT,DATA} constants (they are from SunOS)

* util.c: Remove unused PTRACE_WRITE{TEXT,DATA} constants.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
til.c
989ebc91395600c21b4242aee27df9190b2166b3 17-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Reindent case labels. No code changes

* net.c (printsockopt): Reindent case labels.
* signal.c (sys_signal): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
et.c
ignal.c
3da9693b81db07da14e3e3364f81a6f4d4c26597 17-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Remove unused constants. No code changes

* syscall.c: Remove unused ENOIOCTLCMD constant. Fix indentation.
* util.c: Remove unused CLONE_STOPPED constant.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
til.c
081533c10048365a2a8ffd2456af81765d402810 17-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Move change_syscall() to its only user and make it static

* defs.h: Remove declaration of change_syscall().
* process.c (change_syscall): Remove definition of this function.
* util.c (change_syscall): Add definition of change_syscall().

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
rocess.c
til.c
2897fb3437eb27897b23a2e894a214e6d7c3b362 17-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> MAP_ANON is the same as MAP_ANONYMOUS, no need to have the former

* mem.c: Do not allocate string for MAP_ANON if it is the same as
MAP_ANONYMOUS.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
em.c
3e3490acf776124a52c0315a113cb2e364d1bc40 17-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Indentation and whitespace fixes. No code changes.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
esc.c
ile.c
em.c
rocess.c
trace.c
ime.c
til.c
cb419c52cb861beeadd7b94f1aa4f0fd8884eacf 17-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> test/threaded_execve: make it also test a case when leader is not in syscall

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
est/threaded_execve.c
b468f2320a8b8e245b481c78b58431ac56505849 16-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Implement prlimit64 decoding, rewrite [gs]etrlimit decoding

* configure.ac: Remove AC_RLIM_T_IS_LONG_LONG call.
Define SIZEOF_RLIM_T.
* m4/long_long.m4 (AC_RLIM_T_IS_LONG_LONG): Remove.
* linux/dummy.h (sys_prlimit64): Remove.
* linux/syscall.h (sys_prlimit64): New prototype.
* resource.c (resources): Reindent, add RLIMIT_RTTIME.
(sprintrlim, print_rlimit32, sys_getrlimit, sys_setrlimit): Remove.
[HAVE_LONG_LONG_RLIM_T]: Remove dead code.
[_LFS64_LARGEFILE || HAVE_LONG_LONG_RLIM_T]: Likewise.
(sprint_rlim64, print_rlimit64, decode_rlimit64, sprint_rlim32,
print_rlimit32, decode_rlimit, sys_getrlimit, sys_setrlimit,
sys_prlimit64): New functions.
onfigure.ac
inux/dummy.h
inux/syscall.h
4/long_long.m4
esource.c
9c3861d3177f3bfb12b24890fd118bcb77066abb 16-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Remove another "interrupt to quit" message

* strace.c (startup_attach): Remove another "interrupt to quit" message.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
3db3b26101443dccbea959ba0abcbffb240d04e8 16-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Fix "strace -oFILE -ff -p<nonexistant_pid>" behavior

* strace.c (newoutf): Set tcp->outf in non-ff mode too.
(alloctcb): This define is removed.
(alloc_tcb): Renamed to alloctcb. Does not set tcp->outf anymore.
Lost 'command_options_parsed' flag parameter.
(startup_attach): Do not say "interrupt to quit" in attach message -
^C does not work in all cases, we mislead users.
Call newoutf(tcp) after successful attach.
(startup_child): Call newoutf(tcp) after successful attach.
(trace): Call newoutf(tcp) when we picked up already attached child.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
800ec8ffde1296b3f2cfdd838fb08f2ff2bbe946 16-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Make alloc_tcb and droptcb static. No code changes.

The change is trivial. Diff is large because it is confused
by function definitions being moved around.

* defs.h: Remove declarations of alloc_tcb and droptcb.
* strace.c: Make alloc_tcb and droptcb static.
Shuffle functions around to make compiler happy.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
trace.c
a6d91ded3f2d5401e09a9c2fa442aabfbfe593a8 16-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Tidy up includes and copyright notices, fix indentation

The files not mentioned in changelog below had only
copyright notices fixes and indentation fixes.

* defs.h: Include <stdint.h> and <inttypes.h>.
* file.c: Do not include <inttypes.h>.
Move struct kernel_dirent declaration below top include block.
* block.c: Do not include <stdint.h> and <inttypes.h>.
* quota.c: Likewise.
* desc.c: Likewise.
* signal.c: Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
OPYRIGHT
jm.c
lock.c
ount.c
ebian/copyright
efs.h
esc.c
rrnoent.sh
ile.c
o.c
octl.c
octlsort.c
pc.c
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/dummy.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/ioctlent.sh
inux/m68k/syscallent.h
inux/mips/ioctlent.sh
inux/powerpc/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/dummy2.h
inux/sparc/syscall1.h
inux/sparc/syscallent1.h
inux/sparc64/dummy2.h
inux/sparc64/syscall1.h
inux/syscall.h
em.c
et.c
athtrace.c
rocess.c
uota.c
esource.c
csi.c
ignal.c
ignalent.sh
ock.c
trace-graph
trace.1
trace.c
tream.c
yscall.c
yscallent.sh
ystem.c
erm.c
est/Makefile
ime.c
til.c
late.el
27aeaa2aaad9fb642040be903d6fe6c0fc59c6e2 16-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> scsi.c: add copyright header

* scsi.c: This file was added back in 2007 without a copyright header.
Add it now.
csi.c
4a0ffeaf85f2f042d39ec1925f4aa2e5e4b9164c 15-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Enhance capget and capset syscalls decoding

* system.c (cap_version): New xlat structure.
(print_cap_header, print_cap_data): New functions.
(sys_capget, sys_capset): Use them.
ystem.c
648c22c4b39c489a2409821aaee807357faf60f8 15-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Remove unused code

* syscall.c (subcall_style, decode_subcall): Remove.
[SYS_socket_subcall] (decode_socket_subcall): New function, based on
decode_subcall in deref_style.
[SYS_ipc_subcall] (decode_ipc_subcall): New function, based on
decode_subcall in shift_style.
(trace_syscall_entering): Use decode_socket_subcall and
decode_ipc_subcall instead of decode_subcall.
yscall.c
3d7b11bf5514ccf91f55f8068a14b160cd6d031d 15-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Fix IPC decoding on alpha and arm

* ipc.c (indirect_ipccall): Return 0 on ALPHA and ARM EABI.
(sys_shmat): Use indirect_ipccall for proper return value decoding.
pc.c
63e4f86bd7db507e181dd0da467e7a9a2c3b2c1a 15-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> arm: fix compilation warnings

* configure.ac: Define SIZEOF_LONG.
* signal.c (sys_rt_sigaction) [SUPPORTED_PERSONALITIES > 1]: Help
compiler to optimize out unreachable code that is not expected to work
on platforms where sizeof(long) <= 4.
onfigure.ac
ignal.c
84abf700110ef54ac2bf8de4b09c54ca437f390a 15-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> tests: robustify again buggy shells

* tests/init.sh (check_strace): Use "${parameter:-word}" shell syntax
instead of "${parameter-word}".

Reported-by: Mike Frysinger <vapier@gentoo.org>
ests/init.sh
3362e89f66acde52605c654d904b2aebceb92297 15-Mar-2012 Mike Frysinger <vapier@gentoo.org> improve ifdef check with decode_subcall

Use the same ifdef logic around the call sites of decode_subcall()
to protect the definition of the func itself. This fixes warnings
for targets like hppa which don't use this func.

* syscall.c (decode_subcall): Wrap in SYS_socket_subcall and
SYS_ipc_subcall define checks.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
yscall.c
dde045c13f77ca477aa59e19d0b50ae4afa906b6 15-Mar-2012 Mike Frysinger <vapier@gentoo.org> alpha: fix decode of osf_sigprocmask

The alpha sigprocmask syscall is special in that it comes from OSF rather
than the style that everyone else uses.

Tested with this simple code:
$ cat test.c
#include <signal.h>
main() {
sigset_t set, oldset;
sigemptyset(&set);
sigaddset(&set, SIGINT);
sigaddset(&set, SIGHUP);
sigprocmask(SIG_SETMASK, &set, &oldset);
sigprocmask(SIG_UNBLOCK, &oldset, &set);
sleep(3);
}
$ gcc test.c && ./strace ./a.out
...
osf_sigprocmask(SIG_SETMASK, [HUP INT]) = 0 (old mask [])
osf_sigprocmask(SIG_UNBLOCK, []) = 0x3 (old mask [HUP INT])
osf_sigprocmask(SIG_BLOCK, [CHLD]) = 0x3 (old mask [HUP INT])
...

* linux/alpha/syscallent.h: Call sys_sigprocmask for osf_sigprocmask,
and change number of arguments to two.
* signal.c (sys_sigprocmask): Fix decoding of alpha osf sigprocmask.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
inux/alpha/syscallent.h
ignal.c
384b0ada7d821f3797bf5d72dcf096032d662193 15-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Fix array size calculation in previous commit

* pathtrace.c (getfdpath): Fix array size calculation.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
athtrace.c
29865e77e6eee0c380befd0ce53657b5604975ef 15-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> pathtrace_select() is never called with NULL, remove dead code

pathtrace_select() is only called for -P FILE options,
and FILE is never a NULL pointer.

text data bss dec hex filename
239453 672 19012 259137 3f441 strace.before
239329 672 19012 259013 3f3c5 strace

* pathtrace.c (pathtrace_select): Remove "if (path == NULL)...".
(pathtrace_select): Remove code which only executes if path == NULL.
The code was also buggy, it can free non-malloced pointer.
(getfdpath): Simplify snprintf to sprintf.
(pathmatch): Use strcmp() == 0 idiom for string equality test.
(pathtrace_match): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
athtrace.c
7c2b1a6dd0788aee1b781a6727f556d8ef381939 15-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> manpage: remove bugs which are fixed

"A traced process ignores SIGSTOP" - fixed, expected to be in linux-3.4.x.
"A traced process which tries to block SIGTRAP will be sent a SIGSTOP
in an attempt to force continuation of tracing." - not needed
and no longer done.
"On Linux, exciting as it would be, tracing the init process is forbidden"
- not true anymore.
"When a traced process receives a SIGTRAP signal not
associated with tracing, strace will not report that signal correctly."
- not true anymore.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.1
a509054aeee00a89a2250919f74bd849c67ded61 15-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Simplify SIGCHLD handler setting

* strace.c (init): Set SIGCHLD to SIG_DFL earlier.
(startup_child): Do not bother restoring SIGCHLD handler.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
2c4fb905fef268a7e359ce3acaec4ee7ef087996 15-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> When reporting signals, use short signal names (SIGfoo) instead of strerror

* defs.h: Remove strsignal declaration.
* signal.c: Better check for SI_FROMUSER define.
* strace.c (strerror): Remove this function.
(trace): Use short signal names (SIGfoo) instead of strerror.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
ignal.c
trace.c
7cba83138628a30861d852532e443e7ecdd8334e 15-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Remove TODO file: it's eleven years old and completely outdated

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ODO
29898149a0ce805cedb88602896573c50e059e74 15-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Clean up defs.h order. No code changes

* defs.h: Group together related declarations. No code changes.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
6e0bfd11ac1aa36713d9a65542ae86dd607ae374 15-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Fix lame kernel version checking code

The code "os_release[0] >= '3'" is not good for any
finer-grained checks such as "kernel >= 3.2.1".
Let's proactively fix it.

* strace.c: Change os_release from string to integer.
(get_os_release): Parse uname.release to KERNEL_VERSION
representation.
(init): Convert kernel version check to KERNEL_VERSION.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
61e7aad9fa1a6a5bd5a586e6276767caf12b53f2 15-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Experimental support for "detach on execve" feature

* strace.c: Define new detach_on_execve, skip_startup_execve bool variables.
(init): Set detach_on_execve on -b, set skip_startup_execve if
"strace PROG" form is used.
(trace): Detach from process if -b and we see PTRACE_EVENT_EXEC event.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
3e084ac349c3b177a75916254a4a5a02f29969e2 15-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Simple fixes.

* strace.c (usage): Document -d; document that -F is deprecated.
(droptcb): Print "<detached ...>" correctly for non-ff mode too.
(detach): Suppress a warning.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
68269aa29f37e012ab545aa1e700d2df3b85bb81 15-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Remove an outdated comment

* defs.h: Remove an outdated comment.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
bcde70adbcff01af4a0675d2fd9d9522807d573e 15-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Remove extra include directives. No code changes.

* defs.h: Include <signal.h> unconditionally.
Other files were doing it unconditionally, so no harm done.
* bjm.c: Remove system includes which are already included by defs.h.
* pathtrace.c: Likewise.
* process.c: Likewise.
* signal.c: Likewise.
* strace.c: Likewise.
* stream.c: Likewise.
* syscall.c: Likewise.
* system.c: Likewise.
* util.c: Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
jm.c
efs.h
athtrace.c
rocess.c
ignal.c
trace.c
tream.c
yscall.c
ystem.c
til.c
a50d2a87a1a8df4471bbd93f2ce9ef0541b1124b 15-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Tidy up order of includes; make bool variables explicit.

Bool variables are more compact in data and (on x86) on code too:

text data bss dec hex filename
237950 676 19044 257670 3ee86 strace.before
237838 676 19012 257526 3edf6 strace

* defs.h: Group library includes at the top of the file.
Rename dtime to Tflag, debug to debug_flag.
Change debug_flag,Tflag,qflag,not_failing_only,show_fd_path,tracing_paths
variable declarations from int to bool.
* strace.c: Change corresponding definitions. Do the same for static
variables iflag,rflag,print_pid_pfx.
Rename dtime to Tflag, debug to debug_flag.
* syscall.c: Rename dtime to Tflag, debug to debug_flag.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
trace.c
yscall.c
b859e14d20b7892d369ea9d185ac0891fbb11f80 15-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Fix compiler warnings about breaking strict-aliasing rules

* system.c (sys_capget, sys_capset): Use proxy unions to cast long*
pointers to cap_user_header_t and cap_user_data_t pointers without
breaking strict-aliasing rules.

Reported-by: Mike Frysinger <vapier@gentoo.org>
ystem.c
c96fdfae971b73f63de8dfb814c2148f88fc4086 15-Mar-2012 Mike Frysinger <vapier@gentoo.org> ppc64: drop unused pid variable

* syscall.c (get_scno) [POWERPC64]: Delete unused pid variable.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
yscall.c
8f81e385c725fc0a320bbf6576c2b89f9bca183e 15-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> ia64: fix compilation warnings

* linux/ia64/syscallent.h: Remove improper defines and undefs.

Reported-by: Mike Frysinger <vapier@gentoo.org>
inux/ia64/syscallent.h
ad0c01eeed01428b2aad34df5c54ccaf83052d6f 15-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Ensure that SWAP_FLAG_* constants are defined

* file.c: Define those of SWAP_FLAG_* constants which are not yet
provided by <sys/swap.h>.

Reported-by: Mike Frysinger <vapier@gentoo.org>
ile.c
33d24762cd7713aa26e7911fe070692d4dca1b25 14-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Enhance *listxattr syscalls decoding

* file.c (print_xattr_list): New function.
(sys_listxattr, sys_flistxattr): Use it.
ile.c
7989ad4208168c8845cc66534719e8a75bdcc6e5 14-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Fix *at syscalls flags decoding

Several *at decoders were defining own incomplete *atflags xlat
structures. That was error prone, and fchownat decoder actually
failed to recognize AT_EMPTY_PATH. Merging these incomplete
structures into the single at_flags xlat structure will fix
flags handling in all these decoders altogether.

* file.c: Define all AT_* constants used by *at decoders.
(at_flags): New xlat structure, with records for all AT_* constants.
(fstatatflags, linkat_flags, unlinkatflags): Remove.
(sys_newfstatat, sys_linkat, sys_unlinkat, sys_fchownat,
sys_utimensat): Use at_flags.
ile.c
371e1531469425b565d059b0ea402e7609f4f246 14-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Fix linkat flags decoding

* file.c (linkat_flags): New xlat structure.
(sys_linkat): Decode flags using linkat_flags.
ile.c
297632be5cfba5d51fc027e518ad91cb40e71d0b 13-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Implement sys_rt_tgsigqueueinfo syscall decoder

* linux/dummy.h (sys_rt_tgsigqueueinfo): Remove.
* linux/syscall.h (sys_rt_tgsigqueueinfo): New prototype.
* signal.c (print_sigqueueinfo): New function, based on
sys_rt_sigqueueinfo.
(sys_rt_sigqueueinfo): Use print_sigqueueinfo.
(sys_rt_tgsigqueueinfo): New function.
inux/dummy.h
inux/syscall.h
ignal.c
ee3c22ce55bdca3c4a96ffaeddb0f67c4e4ee6d3 13-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Implement syslog syscall decoder

* linux/dummy.h (sys_syslog): Remove.
* linux/syscall.h (sys_syslog): New prototype.
* system.c (syslog_action_type): New xlat structure.
(sys_syslog): New function.
inux/dummy.h
inux/syscall.h
ystem.c
67559ad260fd31c823615f650f5e131818acf20f 13-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Less ugly debug display of ptrace events

* strace.c (trace): Less ugly debug display of ptrace events.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
6bc050cc540c75d1ea7fd05786ff8ce395d1e96d 13-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Make manpage mention that -p "`pidof PROG`" works

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.1
7de265d88a78a27d58c2c728424e5bb8379ef351 13-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Fix logging for "strace -o FILE -ff test/threaded_execve" test case

Our logic which was deciding whether to print "<unfinished ...>"
thingy wasn't working properly for -ff case.

* defs.h: Group log generation-related declarations together.
Add a large comment which explains how it works.
Add declaration of line_ended() function.
* strace.c (line_ended): New function which sets up internal data
to indicate that previous line was finished.
(printleader): Change logic to fix log generation in -ff mode.
(newoutf): Make check for -ff mode consistent with other places.
(droptcb): Print "<detached ...>" if last line for this tcp wasn't finished.
(cleanup): Remove code to print "<unfinished ...>", printleader()
or detach() will do it instead.
(trace): Remove code to print "<unfinished ...>".
Add code which finishes threaded execve's incomplete line
with " <pid changed to PID ...>" message. Replace printing_tcp = NULL
followed by fflush() by line_ended() call.
* process.c (sys_exit): Call line_ended() to indicate that we finished priting.
* syscall.c (trace_syscall_exiting): Set printing_tcp to current tcp.
Call line_ended() to indicate that we finished priting.
Remove call to fflush(), it is done by line_ended() now.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
rocess.c
trace.c
yscall.c
3df080af316bd7dad363d464114bc20ce36c1f53 13-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> net.c: recognize MSG_WAITFORONE

* net.c (msg_flags): Add MSG_WAITFORONE.
et.c
328bf250bde8167cec6f2f5bf35463fb4ffb6f9f 12-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Treat -ff without -o FILE as single -f

* strace.c (init): Treat -ff without -o FILE as single -f.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
558e5127fb68a7ab5c5ba6d8e976efd77e396cc2 12-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Style fix. No code changes

* strace.c (process_opt_p_list): Style fix.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
ecc8b97c9bd36ad25c550ec412f43f44b59e2ebd 12-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Reduce stack usage by ~0.5k

main() uses ~0.5k of stack for local variables and such. When we enter
main tracing loop, most of these variables are no longer used.
But they still take up stack for the entire life of strace.
We can avoid this wastage if we move init code into a separate function.
(Need to be careful and not allow automatic inlining).

* strace.c (init): New function. Most of pre-existing code of
main is now living here.
(main): Call init() to do initialization.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
2e856a1c9215d292a7c41695928e8552788bc43c 12-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Preparatory cosmetic changes for the next commit

* strace.c (tprintf): Move function up in the source file. No code changes.
(tprints): Likewise.
(printleader): Likewise.
(tabto): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
7af9f35001af19e2844b3e9fb3c672ee696be17b 12-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Implement sendmmsg syscall decoder

* linux/dummy.h (sys_sendmmsg): Remove.
* linux/syscall.h (sys_sendmmsg): New prototype.
* net.c (printmmsghdr): Add index argument specifying the element in
mmsghdr array to print.
(decode_mmsg): New function, prints the whole mmsghdr array, its length
and message flags.
(sys_sendmmsg): New function.
(sys_recvmmsg): Use decode_mmsg to fix mmsghdr array decoding.
inux/dummy.h
inux/syscall.h
et.c
1ff463d15412de77fcf5b8ca1cf43c63dce1dbe1 12-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Implement sched_rr_get_interval syscall decoder

* linux/dummy.h (sys_sched_rr_get_interval): Remove.
* linux/syscall.h (sys_sched_rr_get_interval): New prototype.
* process.c (sys_sched_rr_get_interval): New function.
inux/dummy.h
inux/syscall.h
rocess.c
64d0e71f8b1f671e11915096fc634977650f1739 11-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Implement migrate_pages syscall decoder

* linux/dummy.h (sys_migrate_pages): Remove.
* linux/syscall.h (sys_migrate_pages): New prototype.
* mem.c (sys_migrate_pages): New function.
inux/dummy.h
inux/syscall.h
em.c
1b0bae2969abe21c388144761bc52e3ae9d1a043 11-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Implement get_robust_list syscall decoder

* linux/dummy.h (sys_get_robust_list): Remove.
* linux/syscall.h (sys_get_robust_list): New prototype.
* process.c (sys_get_robust_list): New function.
inux/dummy.h
inux/syscall.h
rocess.c
1e8ed076ceebb1558de5952c6d79e5155145fde3 11-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Define sys_set_robust_list as an alias to sys_munmap

* linux/dummy.h (sys_set_robust_list): Redefine to sys_munmap.
inux/dummy.h
73215473cea2bc53a520b5285775be84501b1f2d 11-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Implement clock_adjtime syscall decoder

* linux/dummy.h (sys_clock_adjtime): Remove.
* linux/syscall.h (sys_clock_adjtime): New prototype.
* time.c (do_adjtimex): New function, based on sys_adjtimex.
(sys_adjtimex): Use it.
(sys_clock_adjtime): New function.
inux/dummy.h
inux/syscall.h
ime.c
51dba35d387153c8a2310b92296ba30518df4f88 11-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Define sys_setns as an alias to sys_inotify_rm_watch

* linux/dummy.h (sys_setns): Redefine to sys_inotify_rm_watch.
inux/dummy.h
6bbe69609bf59aa69e59436e1a7bdd99b667cb09 11-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Sort definitions of dummy parsers. No code changes

* linux/dummy.h: Sort definitions of parsers implemented as aliases.
inux/dummy.h
ab1a70c7a12512b057a3051cd4f60fef7cd1a3df 11-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Correct inotify_rm_watch decoder

* file.c (sys_inotify_rm_watch): Print second argument as int.
ile.c
531af48779ce2c0d38437fd04ca9cf38a3324e5d 11-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Alias sys_fsync to sys_close

* file.c (sys_fsync): Remove.
* linux/syscall.h (sys_fsync): Likewise.
* linux/dummy.h (sys_fsync): Alias to sys_close.
* linux/m68k/syscallent.h: Add TD flag to fsync entry.
* linux/microblaze/syscallent.h: Likewise.
* linux/mips/syscallent.h: Likewise.
ile.c
inux/dummy.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/syscall.h
eb420ef585f2cd8e2ac705de20973d6417cc9d7a 10-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Update ioctl entries

* linux/ioctlent.h.in: Regenerate from v3.3 headers.
* linux/i386/ioctlent.h.in: Likewise.
inux/i386/ioctlent.h.in
inux/ioctlent.h.in
63c5e63f2ceadbecbb98b4b30a2f255270e00357 10-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> strace-log-merge: cleanup

* strace-log-merge: Redirect usage to stderr, make the check
for numeric suffix simpler.
trace-log-merge
d92029ef88a62ee8b4efec091ff76fe859a3fbbb 10-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Add syscall entries for new linux syscalls

* linux/i386/syscallent.h: Update process_vm_writev handler.
* linux/powerpc/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
* linux/alpha/syscallent.h: Add entries for accept4 and sendmmsg.
* linux/arm/syscallent.h: Add entries for process_vm_readv and
process_vm_writev.
* linux/m68k/syscallent.h: Likewise.
* linux/mips/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: Add entries for process_vm_readv,
process_vm_writev and accept4.
* linux/microblaze/syscallent.h: Add entries for sendmmsg,
process_vm_readv and process_vm_writev.
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/x86_64/syscallent.h
039521051e566420b48dc9f2e01691973ec39c02 10-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Implement process_vm_writev decoder

* process.c (sys_process_vm_writev): New function.
* linux/syscall.h (sys_process_vm_writev): New prototype.
inux/syscall.h
rocess.c
0bfd74436d3945e915d373364bbed1f08d3d3c38 10-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> Output iovec length in vmsplice and process_vm_readv decoders

* io.c (sys_vmsplice): Output iovec length.
* process.c (sys_process_vm_readv): Likewise.
o.c
rocess.c
882936565463ff895e6d50efc5c7c80521e7add8 09-Mar-2012 Dmitry V. Levin <ldv@altlinux.org> swapon: decode swap flags

* file.c: Include <sys/swap.h>.
(swap_flags): New xlat structure.
(sys_swapon): New function.
* linux/dummy.h (sys_swapon): Remove.
* linux/syscall.h (sys_swapon): New declaration.
ile.c
inux/dummy.h
inux/syscall.h
37ab4b79de57c1657e41f96a96fa699a08194a80 09-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Trivial simplification

* strace.c (detach): Use waitpid instead of wait4.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
f20250266eb5988805b03b1cc0fa74cdb6398742 09-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Don't consider PROG to be our child in "strace -D PROG" case

TCB_STRACE_CHILD is used for the case when "strace PROG" is ^C-ed
or something like that. strace should not just exit - it should
do something with its child (such as signal it too).

In -D case, PROG is not really a child of _strace_, it is a child
of strace's parent. It's ok to handle it exactly as an attached process.

While we are at it, remove nonsensical special-casing of TCB_STRACE_CHILD
in printing of "<unfinished ...>" message.

* strace.c (startup_attach): Don't set TCB_STRACE_CHILD if -D.
(trace): Print "<unfinished ...>" on error regardless of TCB_STRACE_CHILD.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
75fe85c2ee83a31afe0c8f1468da28deb1c2bc28 09-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Fix the case where we try to detach unattached processes

Before this change:
$ strace -D -p1
strace: -D and -p are mutually exclusive options
Process 1 detached <==== WRONG! (and we try to SIGSTOP it!!!)

* defs.h: Change the meaning of TCB_ATTACHED: now it means "this tracee
is attached to us". Add TCB_STRACE_CHILD: "this tracee is our child".
* strace.c (kill_save_errno): Move up. No code changes.
(process_opt_p_list): Don't set TCB_ATTACHED on new tcb.
(startup_attach): Change how we work with TCB_ATTACHED.
Set TCB_STRACE_CHILD on -D.
(startup_child): Use kill_save_errno instead of kill.
Set TCB_ATTACHED and TCB_STRACE_CHILD on attached strace child.
If we are in -D case, don't set TCB_ATTACHED (we aren't attached yet).
(detach): do not do PTRACE_DETACH if TCB_ATTACHED is not set.
(cleanup): Check TCB_STRACE_CHILD instead of TCB_ATTACHED.
(trace): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
trace.c
97c503fa2e9cd02126feae659f133631c8eb36f1 09-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Call PTRACE_CONT with addr=0

* strace.c (trace): Call PTRACE_CONT with addr=0.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
796f6e82b4fa61c8775da7ec8bbc57f1d05c9929 09-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> install strace-log-merge by "make install"

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
akefile.am
trace-log-merge
trace_log_merge
da3657d4e70ee3ac7986d9769e2ee20c93e8044f 09-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> strace_log_merge: new file. Helper to merge timestamped strace -ff logs

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace_log_merge
fd883380671693a4616881a9103491f9e67fc8ae 09-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Fix PID prefix printing in "strace -oLOG -ff -p1 -p2 -p3" case

In this case we were printing PIDs to LOG.* files
even though it is not necessary.

The fix is in the addition of "&& followfork < 2" condition.

* strace.c: Remove pflag_seen variable, add print_pid_pfx one.
(process_opt_p_list): Do not pflag_seen++.
(main): Use "nprocs != 0" condition instead of "pflag_seen != 0".
Set print_pid_pfx before entering main tracing loop.
(printleader): Use print_pid_pfx to decide whether to print pid prefix.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
e8172b79e3dd35a136f4dc4d4de9df5bb4565c01 09-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Allow -p PID to take comma or whitespace-separated list of PIDs

* defs.h: Clarify meaning of TCB_ATTACHED. No code changes.
* strace.c (process_opt_p_list): New function.
(main): Call process_opt_p_list to process -p PIDs argument.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
trace.c
114aefd6183b8c073453f8def73270c42255f974 08-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Pass addr=0 instead of 1 into restarting ptrace calls

While we are at it, fold do_ptrace into its lone caller.
We no longer set tcp->ptrace_errno = ESRCH on ESRC error in upeek.
Other code paths where ptrace fails wern't doing it, and the code which
checks tcp->ptrace_errno even assumes it is never set to ESRCH.
(It was me who added this code sometime ago, so it was my fault
that it was a bit messy)

I ran sigkill_rain test and verified that unfinished syscalls are
still handled correctly.

* util.c (ptrace_restart): Do not pass addr=1 to ptrace(), pass 0 instead.
I have no idea why we were passing 1. Ptrace documentation says
that addr parameter is ignored.
(do_ptrace): Remove this function.
(upeek): Use ptrace() instead of do_ptrace().
* defs.h: Remove do_ptrace() declaration.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
til.c
4c65c44478f1591d96cda425d78451334fe1d401 08-Mar-2012 Denys Vlasenko <vda.linux@googlemail.com> Trivial tweaks to error messages

* strace.c (test_ptrace_setoptions_followfork): Use kill_save_errno
instead of kill.
(trace): Use perror_msg instead of perror.
* count.c (set_sortby): Use error_msg_and_die instead of fprintf.
* syscall.c (qualify): Likewise.
* util.c (ptrace_restart): Expand error message.
(umoven): Likewise.
(umovestr): Likewise.
(upeek): Use perror_msg instead of sprintf + perror.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ount.c
trace.c
yscall.c
til.c
f76f96e20f766e6bb91593885b1e800f8bc14a52 03-Mar-2012 Jeff Brown <jeffbrown@google.com> Update to strace v4.6.

This change also fixes the system call numbers for ARM.
Previously, the ARM port had been hacked to use the system call numbers
for SH, which were only partially correct and often wildly inaccurate.

Refer to Android.patch for the Android-specific changes.

Change-Id: I5bba77591ef40f78a1b146c8831c05f1d7a3df94
ndroid.mk
ndroid.patch
OPYRIGHT
REDITS
hangeLog
hangeLog-CVS
NSTALL
akefile.am
akefile.in
EWS
EADME
EADME-Android
EADME-linux
cinclude.m4
clocal.m4
ndroid/arch/arm/config.h
ndroid/arch/sh/config.h
ndroid/arch/x86/config.h
rm-eabi.patch
jm.c
lock.c
onfig.guess
onfig.h.in
onfig.log
onfig.status
onfig.sub
onfigure
onfigure.ac
ount.c
efs.h
epcomp
esc.c
rrnoent.sh
ile.c
mport-Android.sh
nstall-sh
o.c
octl.c
octlsort.c
pc.c
inux/arm/errnoent1.h
inux/arm/ioctlent1.h
inux/arm/signalent1.h
inux/arm/syscallent.h
inux/arm/syscallent1.h
inux/dummy.h
inux/errnoent.h
inux/i386/syscallent.h
inux/ioctlent.sh
inux/ioctlsort.c
inux/mips/errnoent.h
inux/mips/ioctlent.sh
inux/mips/signalent.h
inux/mips/syscallent.h
inux/sh/syscallent.h
inux/syscall.h
inux/syscallent.h
em.c
issing
kinstalldirs
et.c
roc.c
rocess.c
uota.c
esource.c
csi.c
ignal.c
ignalent.sh
ock.c
trace-graph
trace.1
trace.c
trace.spec
trace/linux/alpha/errnoent.h
trace/linux/alpha/ioctlent.h
trace/linux/alpha/signalent.h
trace/linux/alpha/syscallent.h
trace/linux/dummy.h
trace/linux/errnoent.h
trace/linux/hppa/errnoent.h
trace/linux/hppa/ioctlent.h
trace/linux/hppa/signalent.h
trace/linux/hppa/syscallent.h
trace/linux/ia64/errnoent.h
trace/linux/ia64/ioctlent.h
trace/linux/ia64/signalent.h
trace/linux/ia64/syscallent.h
trace/linux/ioctlent.h
trace/linux/ioctlent.sh
trace/linux/ioctlsort.c
trace/linux/mips/errnoent.h
trace/linux/mips/ioctlent.h
trace/linux/mips/ioctlent.sh
trace/linux/mips/signalent.h
trace/linux/mips/syscallent.h
trace/linux/powerpc/errnoent.h
trace/linux/powerpc/ioctlent.h
trace/linux/powerpc/signalent.h
trace/linux/powerpc/syscallent.h
trace/linux/s390/errnoent.h
trace/linux/s390/ioctlent.h
trace/linux/s390/signalent.h
trace/linux/s390/syscallent.h
trace/linux/s390x/errnoent.h
trace/linux/s390x/ioctlent.h
trace/linux/s390x/signalent.h
trace/linux/s390x/syscallent.h
trace/linux/sh/errnoent.h
trace/linux/sh/ioctlent.h
trace/linux/sh/signalent.h
trace/linux/sh/syscallent.h
trace/linux/sh64/syscallent.h
trace/linux/signalent.h
trace/linux/sparc/dummy2.h
trace/linux/sparc/errnoent.h
trace/linux/sparc/errnoent1.h
trace/linux/sparc/gen.pl
trace/linux/sparc/ioctlent.h
trace/linux/sparc/ioctlent1.h
trace/linux/sparc/signalent.h
trace/linux/sparc/signalent1.h
trace/linux/sparc/syscall.h
trace/linux/sparc/syscall.h.2
trace/linux/sparc/syscall1.h
trace/linux/sparc/syscallent.h
trace/linux/sparc/syscallent1.h
trace/linux/sparc64/dummy2.h
trace/linux/sparc64/errnoent.h
trace/linux/sparc64/errnoent1.h
trace/linux/sparc64/errnoent2.h
trace/linux/sparc64/ioctlent.h
trace/linux/sparc64/ioctlent1.h
trace/linux/sparc64/ioctlent2.h
trace/linux/sparc64/signalent.h
trace/linux/sparc64/signalent1.h
trace/linux/sparc64/signalent2.h
trace/linux/sparc64/syscall.h
trace/linux/sparc64/syscall1.h
trace/linux/sparc64/syscallent.h
trace/linux/sparc64/syscallent1.h
trace/linux/sparc64/syscallent2.h
trace/linux/syscall.h
trace/linux/syscallent.h
trace/linux/x86_64/errnoent1.h
trace/linux/x86_64/gentab.pl
trace/linux/x86_64/ioctlent1.h
trace/linux/x86_64/signalent1.h
trace/linux/x86_64/syscallent.h
trace/linux/x86_64/syscallent1.h
tream.c
yscall.c
yscallent.sh
ystem.c
erm.c
ime.c
til.c
aea4b876c842081829b5174f5d07331e2bccf6a6 28-Feb-2012 Denys Vlasenko <vda.linux@googlemail.com> Remove stray sys_swapon() declaration

* linux/syscall.h: Remove stray sys_swapon() declaration.
* linux/mips/syscallent.h: Include dummy.h with correct relative path.
* linux/dummy.h: Tweak one place where spaces are used instead of tabs.
* linux/dummy_check.sh: New script. It helps in finding stray syscall
handler declarations.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
inux/dummy.h
inux/dummy_check.sh
inux/mips/syscallent.h
inux/syscall.h
3b60542041aa5e975ef7efe198d8bb5daba82c16 27-Feb-2012 Denys Vlasenko <vda.linux@googlemail.com> Correct syscall entries for t[g]kill

* linux/hppa/syscallent.h: Make tgkill use sys_tgkill, not printargs.
* linux/sh/syscallent.h: Change tkill type TD -> TS.
* linux/sh64/syscallent.h: Likewise.
* linux/mips/syscallent.h: Change tkill type 0 -> TS.
* linux/x86_64/syscallent.h: Likewise.
* linux/avr32/syscallent.h: Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
inux/avr32/syscallent.h
inux/hppa/syscallent.h
inux/mips/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/x86_64/syscallent.h
1945ccc3fbd5b56008c4a6b0cdd4611616201675 27-Feb-2012 Denys Vlasenko <vda.linux@googlemail.com> Assorted trivial optimizations

text data bss dec hex filename
236448 672 19044 256164 3e8a4 strace.before
236360 672 19044 256076 3e84c strace

* file.c (sprintmode): Use smaller static buffer, eliminate strlen call.
(sprinttime): Use smaller static buffer.
(printstat_sparc64): Coalesce two printing calls into one.
(printstat_powerpc32): Likewise.
(printcompat_statfs6): Likewise.
(sys_utime): Do not fetch personality_wordsize[current_personality]
repeatedly - cache it in local variable instead.
* process.c (printargv): Likewise.
* resource.c (sprintrlim): Return const char*, not char*. This allows
to eliminate sprintf(buf, "RLIM_INFINITY"). Use smaller static buffer.
(sprintrlim64): Likewise.
* strace.c (strerror): Use smaller static buffer.
(strsignal): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ile.c
rocess.c
esource.c
trace.c
72879c6a35cd5afa7f58ee7bc32e4dcd8e65bd9a 27-Feb-2012 Denys Vlasenko <vda.linux@googlemail.com> Alias a few more syscall printing functions

text data bss dec hex filename
237384 672 19044 257100 3ec4c strace.before
236448 672 19044 256164 3e8a4 strace

* defs.h: Declare new functions printargs_lu(), printargs_ld()
which simply print syscall all args as unsigned or signed longs.
* desc.c (sys_epoll_create): Call printargs_ld() instead of open-coding it.
* linux/syscall.h: Remove declarations of the following functions:
sys_alarm, sys_getresgid, sys_getsid, sys_nice, sys_setgid, sys_setpgid,
sys_setpgrp, sys_setregid, sys_setresgid.
* process.c (sys_setgid): Delete this function: now aliased to sys_setuid().
(sys_getresgid): Delete this function: now aliased to sys_getresuid().
(sys_setregid): Delete this function: now aliased to sys_setreuid().
(sys_setresgid): Delete this function: now aliased to sys_setresuid().
(sys_setpgrp): Delete this function: now aliased to printargs_lu().
(sys_getsid): Likewise.
(sys_setpgid): Likewise.
(sys_alarm): Likewise.
(sys_getpgrp): Delete this function: was unused - was already shadowed
by a define in linux/dummy.h.
(sys_setsid): Likewise.
(sys_getpgid): Likewise.
* resource.c (sys_nice): Delete this function: now aliased to printargs_ld().
* linux/dummy.h: Define new aliases (see above for the list).
* syscall.c (printargs_lu): New function.
(printargs_ld): New function.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
esc.c
inux/dummy.h
inux/syscall.h
rocess.c
esource.c
yscall.c
b237b1b20da4ff40efb919f9d4a6458a05f375ca 27-Feb-2012 Denys Vlasenko <vda.linux@googlemail.com> Style fixes, no code changes

* desc.c (sys_io_getevents): Indentation fix.
* file.c (sys_xstat): Remove space after function name.
(decode_mknod): Indentation fix.
* net.c (printsockopt): Indentation fix.
* process.c (unalignctl_string): Indentation fix.
(sys_sched_getscheduler): Remove space after ! operator.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
esc.c
ile.c
et.c
rocess.c
e83e157021177930b64ec4aa4983bbe13b39e91b 25-Feb-2012 Dmitry V. Levin <ldv@altlinux.org> Compress blank lines

Suppress repeated empty lines left after automated code removal.
This change was made by filtering every source code file through
"cat -s".
jm.c
onfigure.ac
efs.h
esc.c
ile.c
o.c
octlsort.c
pc.c
inux/ioctlent.sh
inux/ioctlsort.c
inux/microblaze/syscallent.h
inux/x86_64/gentab.pl
em.c
et.c
athtrace.c
rocess.c
uota.c
esource.c
ignal.c
ock.c
trace.c
tream.c
yscall.c
ystem.c
erm.c
ime.c
til.c
ee245d8ca36ce90212db3684528c9ed68f92d643 25-Feb-2012 Dmitry V. Levin <ldv@altlinux.org> Remove parts of automake machinery which are not needed on Linux

This change is a verbatim part of Dmitry's changes to remove support
for non-Linux architectures.

* Makefile.am: Don't install PORTING file. Install README-linux-ptrace file.
Set OS variable to linux unconditionally.
* configure.ac: Remove code to set opsys variable, and its usage.
Remove checks for headers which are never present on Linux.
* m4/stat.m4: Remove 'ifdef LINUX' check.
* m4/statfs.m4: Likewise.

Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
akefile.am
onfigure.ac
4/stat.m4
4/statfs.m4
dd762c302d085c0c3ddd28b2f5efc1e6dd003051 25-Feb-2012 Dmitry V. Levin <ldv@altlinux.org> Remove and update documentation

This change is a verbatim part of Dmitry's changes to remove support
for non-Linux architectures.

* PORTING: Deleted.
* INSTALL: Modified.
* README: Modified.
* strace.1: Modified: bugs should be reported to mailing list, not Debian.
* strace.spec: do not install PORTING file.

Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
NSTALL
ORTING
EADME
trace.1
trace.spec
aa925db23634fe6a2c1d4b47accb3649daf1b781 25-Feb-2012 Denys Vlasenko <vda.linux@googlemail.com> Remove a few more code parts which are unused on Linux

This change is abapted from Dmitry's changes to remove support for
non-Linux architectures.

* Makefile.am: Remove if LINUX/endif pairs.
* defs.h: Remove stream_ioctl() declaration.
* ioctl.c (ioctl_decode): Remove 'ifdef HAVE_SYS_STREAM_H' block.
* resource.c: Use 'defined(FOO)' instead of 'defined FOO' form.
* util.c: Likewise.
* signal.c: Remove conditional includes which are never used on Linux.
* stream.c: Likewise.
* file.c: Remove excessive empty lines.

Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
akefile.am
efs.h
ile.c
octl.c
esource.c
ignal.c
tream.c
til.c
1a3cf10c3095a9f80138b83f3d54499b825c9797 25-Feb-2012 Denys Vlasenko <vda.linux@googlemail.com> Build fixes after non-Linux code removal

* configure.ac: Remove calls to proc-based ptrace checks.
* proc.c: Remove, it's empty now.
* Makefile.am: Remove reference to proc.c.
* net.c: Remove trailing newlines.
* quota.c: Likewise
* resource.c: Likewise
* strace.c: Likewise
* stream.c: Likewise
* time.c: Likewise

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
akefile.am
onfigure.ac
et.c
roc.c
uota.c
esource.c
trace.c
tream.c
ime.c
c36c352329755387f0a503cc9a47047e6de6e711 25-Feb-2012 Denys Vlasenko <vda.linux@googlemail.com> Fix defined(FOO) style

* file.c: Consistently use defined(FOO) instead of defined (FOO).
* mem.c: Likewise.
* net.c: Likewise.
* signal.c: Likewise.
* sock.c: Likewise.
* linux/mips/syscallent.h: Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ile.c
inux/mips/syscallent.h
em.c
et.c
ignal.c
ock.c
2d1e90f9588281bb5520783006c06bc23f997bf8 25-Feb-2012 Denys Vlasenko <vda.linux@googlemail.com> Reindent preprocessor directives in util.c; fix style.

* util.c: Fix indentation of preprocessor directives broken by
automatic removal of non-Linux code. Fix style to use consistent
defined(FOO) instead of defined (FOO).

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
til.c
523635f4da8c963f96d9a41cad9fe55ab131aece 25-Feb-2012 Denys Vlasenko <vda.linux@googlemail.com> Reindent preprocessor directives in syscall.c; fix style.

* syscall.c: Fix indentation of preprocessor directives broken by
automatic removal of non-Linux code. Fix style to use consistent
defined(FOO) instead of defined (FOO).

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
329655a4661180043dc3f30e85b343e76a85b8e6 25-Feb-2012 Denys Vlasenko <vda.linux@googlemail.com> Reindent defs.h preprocessor directives

* defs.h: Fix indentation of preprocessor directives broken by
automatic removal of non-Linux code.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
8470374cba7df0e70653d95c4f336a4082c68d82 25-Feb-2012 Denys Vlasenko <vda.linux@googlemail.com> Cleanup after non-Linux code removal.

Conditions such as defined(LINUX) are always true now,
defined(FREEBSD) etc are always false.
When if directive has them as subexpressions, it can be simplified.
Another trivial changes here are fixes for directive indentation.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
esc.c
ile.c
o.c
pc.c
em.c
et.c
rocess.c
esource.c
ignal.c
trace.c
tream.c
yscall.c
ime.c
til.c
5afdf12572bee4ddf5a7b136d94fde024a01f642 25-Feb-2012 Denys Vlasenko <vda.linux@googlemail.com> Manual removal of non-Linux source, documentation, etc.

Remove non-Linux source directories: freebsd/, svr4/, sunos4/, svr4/.
Remove README-freebsd, README-sunos4, README-svr4, m4/procfs.m4.

linux/sparc/{errnoent1,ioctlent1,signalent1}.h used to point to svr4/ files -
replace their contents with copies of used (and now deleted) files.
Make linux/sparc64/{errnoent1,ioctlent1,signalent1}.h include these files
instead of svr4/* ones.

Makefile.am: remove references to deleted files.
configure.ac: Remove a few tests which make no sense on Linux.
Man page: remove non-Linux quirks information.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
akefile.am
EADME-freebsd
EADME-sunos4
EADME-svr4
onfigure.ac
reebsd/i386/Makefile.am
reebsd/i386/errnoent.h
reebsd/i386/ioctlent.h
reebsd/i386/signalent.h
reebsd/i386/syscall.h
reebsd/i386/syscallent.h
reebsd/ioctlent.sh
reebsd/syscalls.cat
reebsd/syscalls.pl
reebsd/syscalls.print
inux/sparc/errnoent1.h
inux/sparc/ioctlent1.h
inux/sparc/signalent1.h
inux/sparc64/errnoent1.h
inux/sparc64/ioctlent1.h
inux/sparc64/signalent1.h
4/procfs.m4
trace.1
unos4/dummy.h
unos4/errnoent.h
unos4/ioctlent.h
unos4/ioctlent.sh
unos4/signalent.h
unos4/syscall.h
unos4/syscallent.h
vr4/dummy.h
vr4/errnoent.h
vr4/ioctlent.h
vr4/ioctlent.sh
vr4/signalent.h
vr4/syscall.h
vr4/syscallent.h
ed720fda5d515f1359fcd3242223e553d1216789 25-Feb-2012 Denys Vlasenko <vda.linux@googlemail.com> Automated removal of non-Linux code

This change is generated by running every source through the following command:

unifdef -DLINUX -Dlinux -USUNOS4 -USVR4 -UUNIXWARE -UFREEBSD
-USUNOS4_KERNEL_ARCH_KLUDGE -UHAVE_MP_PROCFS
-UHAVE_POLLABLE_PROCFS -UHAVE_PR_SYSCALL -UUSE_PROCFS file.c

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
jm.c
lock.c
ount.c
efs.h
esc.c
ile.c
o.c
octl.c
pc.c
em.c
et.c
athtrace.c
roc.c
rocess.c
uota.c
esource.c
csi.c
ignal.c
ock.c
trace.c
tream.c
vr4/dummy.h
vr4/syscall.h
vr4/syscallent.h
yscall.c
ystem.c
erm.c
ime.c
til.c
d2a660f534d98169f60d50706cbb2ec15fa13cf8 25-Feb-2012 Denys Vlasenko <vda.linux@googlemail.com> When accessing data blocks, truncate addr to wordsize

* util.c (umoven): Truncate addr to wordsize before use.
til.c
9b3eb84a8538d3aa7fa5ce0dc50224f63f72cce8 22-Feb-2012 Dmitry V. Levin <ldv@altlinux.org> strace.1: fix a typo

* strace.1: Fix a typo in example description.
This fixes Debian bug #653309.
trace.1
c86340e171ebbb4b11e986d172e9b27535ae1807 22-Feb-2012 Dmitry V. Levin <ldv@altlinux.org> Fix sockaddr_un.sun_path name in decoded output

* net.c (printsock): Show sockaddr_un.sun_path as "sun_path".
This fixes Debian bug #554946.
et.c
6c38156b6e345a25118e0b7144822bdf55839631 22-Feb-2012 Dmitry V. Levin <ldv@altlinux.org> Avoid potential core file clobbering on exit

* strace.c (main): Set RLIMIT_CORE to zero before terminating itself
with a deadly signal.
This fixes Debian bug #656398.
trace.c
44824b9d4b05ba81d722f586b6e2803e7d18ca7b 20-Feb-2012 Dmitry V. Levin <ldv@altlinux.org> Eliminate native_scno and known_scno

* defs.h (known_scno): Remove.
(sysent): Remove native_scno field.
* process.c [IA64]: Replace known_scno(tcp) with tcp->scno.
(internal_fork) [USE_PROCFS || !LINUX]: Likewise.
* syscall.c: Do not define NR_SYSCALL_BASE.
(known_scno): Remove.
(syscall_fixup_on_sysenter) [USE_PROCFS]: Replace known_scno(tcp)
with tcp->scno.
(trace_syscall_entering) [SVR4 || FREEBSD || SUNOS4]: Likewise.
(syscall_fixup_on_sysexit) [SUNOS4]: Likewise.
efs.h
rocess.c
yscall.c
0c661513e5a4594cfae98042018ed549b1e26b8d 20-Feb-2012 Dmitry V. Levin <ldv@altlinux.org> Remove initialization of native_scno field

* linux/i386/syscallent.h: Remove native_scno initialization for clone,
fork and vfork.
* linux/ia64/syscallent.h (sys_fork, sys_vfork): Remove redirections
to printargs.
* linux/syscall.h [IA64]: Do not define SYS_fork and SYS_vfork.
* util.c (printcall) [IA64]: Likewise.
(setbpt): Use sys_func to check for clone, fork and vfork syscalls.
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/syscall.h
til.c
b5e88d43a80dad1c7af987d40edef14f69cff8ed 20-Feb-2012 Dmitry V. Levin <ldv@altlinux.org> Do not use SYS_ipc and SYS_socketcall

* linux/dummy.h (sys_ipc, sys_socketcall): Remove redirections to
printargs.
* linux/ia64/syscallent.h: Likewise.
* linux/i386/syscallent.h: Remove native_scno initialization for "ipc"
and "socketcall".
* linux/syscall.h (sys_ipc, sys_socketcall): New prototypes.
(SYS_ipc, SYS_socketcall): Remove no longer used constants.
[IA64]: Remove undefining of ipc and socket SYS_* constants.
[SPARC || SPARC64]: Remove unused ipc SYS_* constants.
* ipc.c (sys_ipc): New function.
* sock.c (sys_socketcall): Likewise.
* syscall.c (trace_syscall_entering): Use sys_func to check for ipc and
socket subcalls.
pc.c
inux/dummy.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/syscall.h
ock.c
yscall.c
9aa25abb2e74b05872c8d141776ced5c77b29dcf 10-Feb-2012 Dmitry V. Levin <ldv@altlinux.org> Remove initialization of native_scno field for most of syscalls

The native_scno field is not so much used in the code than before.
In many cases sys_func is checked instead, and for most of syscall
entries there is no need to initialize native_scno.

* linux/i386/syscallent.h: Remove native_scno initialization for
_exit, read, write, waitpid, execve, wait4, sysfs, readv, writev,
pread64, pwrite64, exit_group, waitid, send, recv, sendto and
recvfrom syscall entries.
* linux/syscall.h: Do not define no longer used SYS_waitid and
SYS_sub_* constants.
[IA64]: Do not define SYS_waitpid and SYS32_* constants.
* defs.h: Do not define no longer used __NR_exit_group constant.
* strace.c [USE_PROCFS] (proc_open): Use sys_func to check for execve.
efs.h
inux/i386/syscallent.h
inux/syscall.h
trace.c
612659e41e2f41490ea5ae2926f5e002bb398334 14-Feb-2012 Mike Frysinger <vapier@gentoo.org> util: check for process_vm_readv in C library

glibc-2.15 provides process_vm_readv, so trying to provide it ourselves
with that version fails.

* configure.ac (AC_CHECK_FUNCS): Add process_vm_readv.
* util.c: Handle HAVE_PROCESS_VM_READV.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
onfigure.ac
til.c
0ed9947c14835aade391098c7c74922266b77ec3 09-Feb-2012 Denys Vlasenko <vda.linux@googlemail.com> README-linux-ptrace: correct the description of suppressed signals

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
EADME-linux-ptrace
bdec9cbcebd256dbebf8fd2f7e35dec55b8bd5ae 06-Feb-2012 Dmitry V. Levin <ldv@altlinux.org> strace -P: fix handling of invalid syscalls

* pathtrace.c (pathtrace_match): Check the given syscall number using
SCNO_IN_RANGE.
athtrace.c
e752bed4afcd88da082f8b80ca7060d15c59fb16 03-Feb-2012 H.J. Lu <hongjiu.lu@intel.com> Skip the syscall entry if the sys_func field is NULL

Avoid NULL dereference when there are holes in sysent tables.
It can happen with syscall (number, ...) and number is in those holes.
There are no targets with holey systent tables so far, but at least
one such a target, x32, is already on the horizon.

* defs.h (SCNO_IN_RANGE): Also check the sys_func field.
efs.h
d602542f16d628e719a7a9c5cbf7c45f7d7e0ceb 03-Feb-2012 H.J. Lu <hongjiu.lu@intel.com> Define RLIM64_INFINITY only if not defined

* resource.c (RLIM64_INFINITY): Define only if it isn't defined.
esource.c
0b315b65432cda20c7e5608c5124289036522fa7 03-Feb-2012 H.J. Lu <hongjiu.lu@intel.com> Cast to long for %l in printf

Cast a value to long for %l in printf to avoid compiler warning
on systems where it may be long long.

* count.c (call_summary_pers): Cast to long.
* ipc.c (sys_mq_open, printmqattr): Likewise.
* quota.c (decode_cmd_data): Likewise.
* resource.c (sys_sysinfo): Likewise.
* time.c (tprint_timex): Likewise.
ount.c
pc.c
uota.c
esource.c
ime.c
6ca2610cee82e0bc80331093b7a713f6fc593eec 03-Feb-2012 H.J. Lu <hongjiu.lu@intel.com> Check HAVE_LONG_LONG_OFF_T when printing offset

When HAVE_LONG_LONG_OFF_T is defined, we need to use %llu to print
offset.

* io.c (sys_sendfile): Check HAVE_LONG_LONG_OFF_T when printing
offset.
o.c
a13b3fea4fb57a2f9f56b1caca6eb146c5714fc4 03-Feb-2012 H.J. Lu <hongjiu.lu@intel.com> Define old stat functions only if needed

When HAVE_LONG_LONG_OFF_T is defined, those old stat functions aren't
used and strace won't link since they use realprintstat which isn't
defined when HAVE_LONG_LONG_OFF_T is defined.

* file.c (convertoldstat, sys_oldstat, sys_oldfstat, sys_oldlstat):
Define only if HAVE_LONG_LONG_OFF_T isn't defined.
ile.c
d0cd4436b0b174b0de59379f47dc20a2a75bf70a 03-Feb-2012 H.J. Lu <hongjiu.lu@intel.com> Print NULL for zero address in sys_mmap64

* mem.c (sys_mmap64): Print NULL for zero address so that it is
consistent with sys_mmap.
em.c
309edeb2e1907d662330ec1b14290ab609e4d112 04-Feb-2012 Dmitry V. Levin <ldv@altlinux.org> Remove unused sys_pread64 and sys_pwrite64 parsers on Linux

* io.c [HAVE_LONG_LONG_OFF_T]: Remove sys_pread64 and sys_pwrite64
aliases.
(sys_pread64, sys_pwrite64): Define these functions only on
[SVR4 && _LFS64_LARGEFILE] platform.
* linux/mips/syscallent.h: Use sys_pread and sys_pwrite to handle
appropriate syscalls.
* linux/syscall.h (sys_pread64, sys_pwrite64): Remove.
* syscall.c (dumpio): Check sys_pread64 and sys_pwrite64 only on
[SVR4 && _LFS64_LARGEFILE] platform.
o.c
inux/mips/syscallent.h
inux/syscall.h
yscall.c
cdab1becb03eeae442719027fc26a17da464e5de 03-Feb-2012 Denys Vlasenko <vda.linux@googlemail.com> Trivial changes to help text. No code changes.

* strace.c (usage): Tweak help text: remove unpaired closing brackets,
make -V and -h sit on separate lines (hard to see them otherwise).

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
4f3df078b26899afe0f25d8651b06a5a5b5143e2 29-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> Simple optimizations

text data bss dec hex filename
239474 672 20484 260630 3fa16 strace.before
239234 668 19044 258946 3f382 strace

* file.c (sprint_open_modes): Reduce static buffer size.
Simplify separator printing.
* signal.c (sprintsigmask): Reduce static buffer size.
Simplify separator printing and printing of almost full masks.
Use stpcpy instead of sprintf and strcpy+strlen.
* strace.c (startup_child): Don't strchr() for ':' twice in a row.
* util.c (sprintflags): Exit loop early if possible.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ile.c
ignal.c
trace.c
til.c
3521884c91d0bbd8e796d72619da40bdad95789c 29-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> Trivial optimization

* strace.c (cleanup): Read 'interrupted' volatile variable only once.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
b51581e8f0b11d8f1cce055cebb287f728a508a3 29-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> Make interactive-ness directly controllable via command line option

Defaults are often ok, but when they are not, people get confused.
"Why can't I kill strace?" and "Why strace dies on ^C when I want
to _tracee_ to die instead?" are typical complaints.

* strace.c: Replace 'interactive' variable with 'opt_intr' variable.
Define INTR_foo constants for its possible values.
Define 'interactive' as a macro.
(usage): Document -I n option.
(main): Parse -I n option, modify signal handling to accomidate new
-I 1 and -I 4 modes.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
6703816060c2cf4aaf9c82057ced31c3ba744346 29-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> Suppress compiler warning

* strace.c (trace): Frame potentially unused label with ifdef/endif.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
a3559250d48ccc3ef755183ebb3246cbbb442c0d 29-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> On Ctrl-C induced detach, send SIGINT to child tracee, not SIGTERM.

* strace.c (interrupt): Remember signal number.
(cleanup): If we exiting due to signal, send that signal to child tracee.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
31fa8a22b17b2f898513b68e04269597147d2478 29-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> Add experimental code to use PTRACE_SEIZE, disabled by default

All new code is predicated on "ifdef USE_SEIZE". If it is not defined,
behavior is not changed.

If USE_SEIZE is enabled and run-time check shows that PTRACE_SEIZE works, then:
- All attaching is done with PTRACE_SEIZE + PTRACE_INTERRUPT.
This means that we no longer generate (and possibly race with) SIGSTOP.
- PTRACE_EVENT_STOP will be generated if tracee is group-stopped.
When we detect it, we issue PTRACE_LISTEN instead of PTRACE_SYSCALL.
This leaves tracee stopped. This fixes the inability to SIGSTOP or ^Z
a straced process.

* defs.h: Add commented-out "define USE_SEIZE 1" and define PTRACE_SEIZE
and related constants.
* strace.c: New variable post_attach_sigstop shows whether we age going
to expect SIGSTOP on attach (IOW: are we going to use PTRACE_SEIZE).
(ptrace_attach_or_seize): New function. Uses PTRACE_ATTACH or
PTRACE_SEIZE + PTRACE_INTERRUPT to attach to given pid.
(startup_attach): Use ptrace_attach_or_seize() instead of ptrace(PTRACE_ATTACH).
(startup_child): Conditionally use alternative attach method using PTRACE_SEIZE.
(test_ptrace_setoptions_followfork): More robust parameters to PTRACE_TRACEME.
(test_ptrace_seize): New function to test whether PTRACE_SEIZE works.
(main): Call test_ptrace_seize() while initializing.
(trace): If PTRACE_EVENT_STOP is seen, restart using PTRACE_LISTEN in order
to not let tracee run.
* process.c: Decode PTRACE_SEIZE, PTRACE_INTERRUPT, PTRACE_LISTEN.
* util.c (ptrace_restart): Add "LISTEN" to a possible error message.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
rocess.c
trace.c
til.c
2945639eb854598dbbdc98c4f7e965a0a99492dd 28-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> process_vm_readv gets EINVAL if process is gone (SIGKILLed). Don't complain.

* util.c (umoven): Don't complain on EINVAL from process_vm_readv.
(umovestr): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
til.c
64acaa1193173c965ef32919aa5c092ce912d57c 28-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> Revert last change. Add a comment to prevent further misunderstanding

* time.c (sys_nanosleep): Display remaining time only on interrupt.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ime.c
ea051f75331ee4c7a44d5449a2d136288314879a 28-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> Fix nanosleep decoding: second argument was not shown after success

* time.c (sys_nanosleep): Fix bug - inverted is_restart_error() check.
* syscall.c (is_restart_error): Remove redundant check.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
yscall.c
ime.c
3af224c5cd8a64a6af3f875549ff821e2b5cb211 28-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> Use process_vm_readv instead of PTRACE_PEEKDATA to read data blocks

Currently, we use PTRACE_PEEKDATA to read things like filenames and
data passed by I/O syscalls.
PTRACE_PEEKDATA gets one word per syscall. This is VERY expensive.
For example, in order to print fstat syscall, we need to perform
more than twenty trips into kernel to fetch one struct stat!

Kernel 3.2 got a new syscall, process_vm_readv(), which can be used to
copy data blocks out of process' address space.

This change uses it in umoven() and umovestr() functions if possible,
with fallback to old method if process_vm_readv() fails.
If it returns ENOSYS, we don't try to use it anymore, eliminating
overhead of trying it on older kernels.

Result of "time strace -oLOG ls -l /usr/lib >/dev/null":
before patch: 0.372s
After patch: 0.262s

* util.c (process_vm_readv): Wrapper to call process_vm_readv syscall.
(umoven): Use process_vm_readv for block reads of tracee memory.
(umovestr): Likewise.
* linux/syscall.h: Declare new function sys_process_vm_readv.
* process.c (sys_process_vm_readv): Decoder for new syscall.
* linux/i386/syscallent.h: Add process_vm_readv, process_vm_writev syscalls.
* linux/x86_64/syscallent.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
inux/i386/syscallent.h
inux/powerpc/syscallent.h
inux/syscall.h
inux/x86_64/syscallent.h
rocess.c
til.c
000b601439d249a4afa2ceb6096850a702612d1e 28-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> Fix a case of broken output if last seen syscall was exit

* defs.h: Rename tcp_last to printing_tcp. Explain what it means.
Remove printtrailer() function.
* process.c (sys_exit): Convert printtrailer() call to "printing_tcp = NULL".
* strace.c: Add new variable printing_tcp.
(cleanup): Convert printtrailer() call to "printing_tcp = NULL".
(trace): Likewise.
(trace): Fix checks for incomplete line - it was working wrongly if last syscall was exit.
(printleader): Set printing_tcp.
(printtrailer): Remove this function.
* syscall.c: Remove tcp_last variable.
(trace_syscall_entering): Don't set printing_tcp, printleader call now does it.
(trace_syscall_exiting): Convert printtrailer() call to "printing_tcp = NULL".

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
rocess.c
trace.c
yscall.c
est/threaded_execve.c
f7db5dd876eb41a3f0d5fd223c831734acc8d8d1 28-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> Fix handling of test/threaded_execve.c testcase

Since 3.0, Linux has a way to identify which thread execve'ed.
This patch makes use of it in order to properly dispose
of disappeared ("superseded") thread leader,
and replace it with execve'ed thread.

Before this patch, strace was "leaking" thread which exec'ed.
It was thinking that it still runs. It would look like this:

18460 pause( <unfinished ...> <=== thread leader
18466 execve("/proc/self/exe", ["exe", "exe"], [/* 47 vars */] <unfinished ...>
18465 +++ exited with 0 +++ <=== exits from other threads
18460 <... pause resumed> ) = 0

The last line is wrong: it's not pause resumed, it's execve resumed.
If thread leader would do exit instead of pause, it is much worse:
strace panics because it thinks it sees return from exit syscall!

And strace isn't aware 18466 (exec'ed thread) is gone.
It still thinks it's executes execve syscall.

* strace.c: New variable "static char *os_release".
(get_os_release): New static function.
(main): Call get_os_release to retrieve Linux version.
(trace): If we see PTRACE_EVENT_EXEC, retrieve old pid, and if it
differs from new one, free one of tcbs and print correct messages.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
3449ae83c26d159dddc8573dc22b867feb0f49c6 27-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> Fix readlink result display - was printing bogus "..." semi-randomly

* file.c (decode_readlink): Use printstr() instead of printpathn().

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ile.c
c76ae4352e4893ec0c93010ee1e9b7ddc0056804 27-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> Add new test program: test/threaded_execve.c

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
est/.gitignore
est/Makefile
est/threaded_execve.c
eebb04d4ae8bf4b08a041f5ea442ca24c90692c2 27-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> Make pid2tcb static

* defs.h: Remove pid2tcb declaration.
* strace.c (pid2tcb): Make this function static.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
trace.c
cfad543087d98c5313fd7f006c0de69a1d87dc8e 24-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> Per Dmitry's request, remove paranoid check in verror_msg()

* strace.c (verror_msg): Remove redundant check for msg != NULL.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
846ecb9b44995c99b80f762d579d65f738fca291 24-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> More robust error check for vasprintf

* strace.c (verror_msg): More robust error check for vasprintf.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
837399af4ffefec55f9693022dc6d8608da442cf 24-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> Slightly more compact handling of argv[]

text data bss dec hex filename
238274 672 20484 259430 3f566 strace.before
238226 672 20484 259382 3f536 strace

* strace.c (main): Slightly more compact handling of argv[]

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
aa6ec415c1a9b8a886bddf0db765b5de365a8360 24-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> Trivial optimization

* strace.c: Set default interactive = 1 statically instead
of doing it in main().

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
a677da5e3f25107d4402c1c917d019f2d0bc9f29 24-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> Allocate -o OUTFILE buffer only if needed

text data bss dec hex filename
238258 668 28676 267602 41552 strace.before
238274 668 20484 259426 3f562 strace

* strace.c (main): Allocate -o OUTFILE buffer only if needed:
unused buffer in bss is not entirely free.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
82bb78c149a1b527f4ae7a764be29a9c85067b29 24-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> Use single fprintf in verror_msg()

This change partially reverts commit 44d0532.

In code before commit 44d0532, single fprintf was used on purpose:
we want to send entire message as one write() call. Since stderr
is unbuffered, separate fprintf's to it always result in separate
writes, they are not coalesced. If we aren't the only program
which writes to this particular stderr, this may result
in interleaved messages.

Since this function is not performance critical, I guess
it's ok to make it less efficient.

* strace.c (verror_msg): Attempt to print the message in single
write operation. Use separate fprintfs as a fallback if malloc fails.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
trace.c
a47e6b9fbb98e2363af28cf9cfa436964faa4fc6 21-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> Improve code readability (logic is unchanged)

* util.c (umoven): Move assignment out of function call. Make assignment
to a flag variable later, closer to the place where it will be used.
(umovestr): Likewise.
(uload): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
til.c
6cecba53225ae30f1a28ce6954fb0cda847f3688 20-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> Change umovestr API: return > 0 instead of 0 if NUL was seen

* pathtrace.c (upathmatch): Adjust umovestr return value check for new API.
* util.c (printpathn): Use umovestr() > 0 return value for more efficient
(and robust - we don't depend on "no overwrote past NUL" behavior anymore)
handling of terminating NUL.
(printstr): Remove useless NUL placement before umovestr() call.
Allocate 1 byte more to outstr[] array - for NUL.
(umovestr): Change to return 1 if NUL was seen.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
athtrace.c
til.c
a17e55ca8f6f3d9897d891215405715b1bee5131 20-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> umovestr result may have no NUL, use "%.*s" instead of "%s" to print it

* system.c (sys_mount): Be careful when printing umovestr result,
it may have no terminating NUL.
(sys_sysmips): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
ystem.c
a1d541ec56e2fb4716f083fcc814b1dedde63d87 20-Jan-2012 Denys Vlasenko <vda.linux@googlemail.com> Eliminate code duplication in time printing, reduce a few static buffers

text data bss dec hex filename
238454 664 28772 267890 41672 strace.before
238106 664 28676 267446 414b6 strace

* defs.h: Add TIMESPEC_TEXT_BUFSIZE and TIMEVAL_TEXT_BUFSIZE defines.
Add 'int special' parameter to sprinttv().
* time.c (sprinttv): Add 'int special' parameter, and use it
similarly to 'int special' parameter of printtv_bitness().
(printtv_bitness): Use sprinttv() instead of duplicating its code.
(print_timespec): Use sprint_timespec() instead of duplicating
its code.
* desc.c (decode_select): Use TIMEVAL_TEXT_BUFSIZE instead of 128
when checking remaining buffer size.
* net.c (sys_recvmsg): Use TIMESPEC_TEXT_BUFSIZE instead of 128
for static buffer size.
* stream.c (decode_poll): Use TIMESPEC_TEXT_BUFSIZE instead of 128
when checking remaining buffer size.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
efs.h
esc.c
et.c
tream.c
ime.c
b3c52cf02ae536634898cd12afa5f3fcad17fbf2 19-Jan-2012 Denys Vlasenko <dvlasenk@redhat.com> Reduce bss usage and speed up string printing

text data bss dec hex filename
237913 660 49284 287857 46471 strace.before
237973 660 28772 267405 4148d strace

This reduces L1 D-cache pressure a bit: instead of dirtying
20k of bss, we will reuse already dirty stack area.

* util.c (printpathn): Use on-stack buffers instead of static ones.
Saves 5*MAXPATHLEN in bss.
(printstr): Use tprints() instead of tprintf("%s") when printing
formatted string. May be a bit faster, depending on libc.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
til.c
7d55801ae92a83c8f3efa8c97fdeb42f036bbbb2 17-Jan-2012 Andreas Schwab <schwab@linux-m68k.org> Add support for compat_statfs64

* file.c (struct compat_statfs64, printcompat_statfs64): Define.
(sys_statfs64, sys_fstatfs64): Use it.
ile.c
000d66f17542ea1f3ca4803c3df59f99e15e89e0 17-Jan-2012 Andreas Schwab <schwab@linux-m68k.org> Add support for statfs64.f_flags

* file.c (printstatfs64): Print f_flags if available.
ile.c
a7920a8927bba2f8cb3b4843c8cd045360cd4948 17-Jan-2012 Andreas Schwab <schwab@linux-m68k.org> Fix missing parens

* signal.c (sys_sigreturn): Add missing parens.
ignal.c
023b7700de942f59fcb4cd30903969d276a4d796 18-Jan-2012 Denys Vlasenko <dvlasenk@redhat.com> Get rid of TCB_SIGTRAPPED

On attempts to block or set SIGTRAP handler,
for example, using sigaction syscall, we generate
an additional SIGSTOP.

This change gets rid of this SIGSTOP sending/ignoring.
It appears to work just fine.

It also works if I force strace to not use PTRACE_O_TRACESYSGOOD,
which means strace stops will be marked with SIGTRAP,
not (SIGTRAP | 0x80) - I wondered maybe that's when
this hack is needed.

So, why we even have TCB_SIGTRAPPED? No one knows. It predates
version control: this code was present in the initial commit,
in 1999. No adequate comments, either.

Moreover, TCB_SIGTRAPPED is not set in sys_rt_sigaction
and sys_sigprocmask syscalls - the ones which are most usually
used to implement signal blocking, it is only set in obsolete
sys_signal, sys_sigaction, sys_sigsetmask, and in some dead
non-Linux code.

I think whatever bug it was fixing is gone long ago -
at least as long as sys_rt_sigaction is used by glibc.
Again, since glibc (and uclibc) uses sys_rt_sigaction
and sys_sigprocmask, modified code paths are not used
by most programs anyway.

* defs.h: Remove definition of TCB_SIGTRAPPED.
* signal.c (sys_sigvec): Don't set TCB_SIGTRAPPED and don't send SIGSTOP.
(sys_sigsetmask): Likewise.
(sys_sigaction): Likewise.
(sys_signal): Likewise.
* strace.c (trace): Remove code which executes if TCB_SIGTRAPPED is set.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
ignal.c
trace.c
5e09d77500a656da343580a16e6d005eb1c560b1 18-Jan-2012 Denys Vlasenko <dvlasenk@redhat.com> When we write log, flush output buffers in a few more cases

I observed a case when signal delivery message was buffered
by stdio until it was flushed along with the next syscall
entry message.

* strace.c (trace): Flush output buffers in a few more cases.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
bbe29b36aa1b3d50ea60ca58d3a6a959ac6237dd 18-Jan-2012 Denys Vlasenko <dvlasenk@redhat.com> Fix old sigaction display

* signal.c (sys_sigaction): Fix display of sigaction with
SIG_DFL/SIG_IGN handlers.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
ignal.c
e73a89d99921f7b9dc3f1350a4eb97c7fdc6032a 18-Jan-2012 Denys Vlasenko <dvlasenk@redhat.com> Change x86_64_regs struct type from pt_regs to user_regs_struct

* syscall.c: Change x86_64_regs struct type from
pt_regs to user_regs_struct, and explain the change in comment.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
024cad9a25bd11abc05525ab58b33cb570e29464 17-Jan-2012 Dmitry V. Levin <ldv@altlinux.org> Fix struct pt_regs declaration on i386 and x86-64

* defs.h [I386] (i386_regs): Replace definition with declaration.
[X86_64] (x86_64_regs): Remove.
* syscall.c [X86_64] (x86_64_regs): Make static.
efs.h
yscall.c
fe585656f8d0c6ac7298df22fce0d9ee0935e264 12-Jan-2012 Denys Vlasenko <dvlasenk@redhat.com> Make ERESTARTxyz messages more descriptive

There is widespread confusion about exact meaning
of ERESTARTxyz codes. Before this change, we were showing
all four of them the same: as "(To be restarted)".

This change prints better explanations for these codes,
and contains verbose comments which explain *why* we display
codes that way - or else someone confused
is bound to come later and mangle them again.
New messages are:

ERESTARTSYS (To be restarted if SA_RESTART is set)
ERESTARTNOINTR (To be restarted)
ERESTARTNOHAND (Interrupted by signal)
ERESTART_RESTARTBLOCK (Interrupted by signal)

* syscall.c (trace_syscall_exiting): Make ERESTARTxyz messages
more descriptive.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
3cc943825e3aa0d3f2681be33164412113cab5ab 10-Jan-2012 Denys Vlasenko <dvlasenk@redhat.com> Fix sigreturn arg count from 1 to 0 on all architectures.

* linux/alpha/syscallent.h: Change [rt_]sigreturn's arg count to 0.
* linux/arm/syscallent.h: Likewise.
* linux/avr32/syscallent.h: Likewise.
* linux/bfin/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
* linux/mips/syscallent.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/sparc/syscallent.h: Likewise.
* linux/tile/syscallent.h: Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent.h
b11322fd3c8d291061d69e40e28004b97b91b15d 10-Jan-2012 Denys Vlasenko <dvlasenk@redhat.com> Display mask on enter to sigreturn, not on exit

sys_sigreturn() performs ugly manipulations in order to show
signal mask which is restored by this syscall: on syscall entry,
fetches it from the stack, saves it in tcp->u_arg[]
(where it used to overflow this array - fixed sometime ago),
then retrieves the mask and displays it on syscall exit.

Apparently, the motivation is to make it slightly more obvious
to user that signal mask is restored only when this syscall returns.
IMO, this hardly justifies the necessary hacks. It is much easier
to display the mask at the point when we fetch it - on syscall entry.

While at it, I made it so that we do display returned value/errno.
I see no point in hiding it and showing uninformative "= ?" instead.

Example of pause() being interrupted by ALRM which has installed handler
which re-arms ALRM:

Before the patch:

rt_sigsuspend([INT]) = ? ERESTARTNOHAND (To be restarted)
--- {si_signo=SIGALRM, si_code=SI_KERNEL} (Alarm clock) ---
alarm(1) = 0
sigreturn() = ? (mask now [INT])

After:

rt_sigsuspend([INT]) = ? ERESTARTNOHAND (To be restarted)
--- {si_signo=SIGALRM, si_code=SI_KERNEL} (Alarm clock) ---
alarm(1) = 0
sigreturn() (mask [INT]) = -1 EINTR (Interrupted system call)

* defs.h: Declare struct pt_regs i386_regs and struct pt_regs x86_64_regs.
* syscall.c: Remove "static" keywork from these structures' definitions.
* signal.c (sys_sigreturn): Display mask on enter, not on exit.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
ignal.c
yscall.c
f1e690370359f61f9533134817b52d74460a20fb 04-Jan-2012 Denys Vlasenko <dvlasenk@redhat.com> Do not detach from tracee which experienced ptrace error.

Before this patch, if a thread got nuked by exit in another thread
and we happened to poke it at the same time, we print "????(" thingy
and detach the thread. Since we removed "detach before death" logic,
this no longer matches the behavior of other threads.
Before patch:
[pid 1780] exit_group(1) = ?
[pid 1778] ????( <unfinished ...>
Process 1778 detached
[pid 5860] +++ exited with 1 +++
After:
[pid 17765] exit_group(1) = ?
[pid 21680] ????( <unfinished ...>
[pid 17791] +++ exited with 1 +++
[pid 21680] +++ exited with 1 +++

* strace (trace): Do not detach from tracee which experienced ptrace error.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
4c1963836fd96909c2d86315d4972b5b0075edf6 04-Jan-2012 Denys Vlasenko <dvlasenk@redhat.com> Remove sig parameter from detach()

* strace.c (detach): Drop sig parameter - it is zero in all calls.
(cleanup): Don't pass sig = 0 to detach() call.
(detach): Ditto.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
856c7ed97bce524ade99bb1fc41e746973d45acc 26-Dec-2011 Dmitry V. Levin <ldv@altlinux.org> Enhance decoding for personalities with small wordsize

* util.c (umoven, umovestr) [SUPPORTED_PERSONALITIES > 1]: If current
personality's wordsize is less than sizeof(long), use only significant
bits of the given address.
til.c
a5a839a920da9d54c4174ebc82b29d7718839029 23-Dec-2011 Dmitry V. Levin <ldv@altlinux.org> Enhance personality switching

On syscall entry, save current personality in the tcb structure
along with scno.
On syscall exit, restore current personality from the tcb structure.
* defs.h (struct tcb) [SUPPORTED_PERSONALITIES > 1]: Add currpers
field.
* strace.c (alloc_tcb) [SUPPORTED_PERSONALITIES > 1]: Initialize
tcp->currpers.
* syscall.c (update_personality) [SUPPORTED_PERSONALITIES > 1]: New
function.
(get_scno, trace_syscall_exiting): Use it.

Reported-by: Michael A Fetterman <mafetter@nvidia.com>
efs.h
trace.c
yscall.c
b05fc5463be8df587b4acc8f522f51e21bc22be8 01-Dec-2011 Dmitry V. Levin <ldv@altlinux.org> * net.c (socktcpoptions): Add more TCP_* constants from linux/tcp.h

Reported-by: Rick Jones <rick.jones2@hp.com>
et.c
e0f5fd87da61c6123467a8701e9c0dc5b528f3bf 30-Nov-2011 Heiko Carstens <heiko.carstens@de.ibm.com> Fix sys_ipc/sys_semtimedop decoding on s390

The s390 kernel sys_ipc system call only takes five arguments instead of
six arguments which the common code sys_ipc implementation takes.
One of the arguments of the sys_semtimedop subcall is therefore passed in
a different register than in the common code implementation.
This leads to broken decoding of the timespec argument:

semtimedop(0, 0x3ffffb43832, 1, {...}) = -1 EAGAIN

Fixed it looks like this:

semtimedop(0, 0x3ffffc2c842, 1, {0, 10000000}) = -1 EINTR

* linux/ipc.c (sys_semtimedop): Fix timespec decoding on s390.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
pc.c
436d892212dd56401bacf818a238333d30f85c6a 29-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> strace.c (trace): Fix compilation warning
trace.c
4d0620dd905311f629229a98d583ebc70b38df08 29-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> linux/syscall.h: Remove redundant function declarations

Remove 51 function declarations aliased to other declarations in
linux/dummy.h file.
inux/syscall.h
a12c70d58706e2c5256c4ab0a6cdc861d3236ce6 29-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> linux/syscall.h: Sort function declarations
inux/syscall.h
dd760852ace5966cd7f013c3d9691460ec6a2c58 29-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> linux/syscall.h: Place one function declaration per line
inux/syscall.h
ad178c0dc050a0bd68179ca60f3aebe0ff6ddd89 28-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> Remove redundant parsers

* desc.c (sys_dup): Remove.
* file.c (sys_pivotroot, sys_rmdir, sys_fchdir, sys_chroot, sys_fchroot,
sys_unlink, sys_symlink, sys_rename): Remove.
* linux/syscall.h (sys_chroot, sys_dup, sys_fchdir, sys_pivotroot,
sys_rename, sys_rmdir, sys_symlink, sys_unlink): Remove.
* linux/dummy.h: Add aliases for sys_chroot, sys_dup, sys_pivotroot,
sys_rename, sys_rmdir, sys_symlink, sys_unlink.
* pathtrace.c (pathtrace_match): Update.
* sunos4/dummy.h: Add aliases for sys_chroot, sys_dup, sys_fchdir,
sys_fchroot, sys_rename, sys_rmdir, sys_symlink, sys_unlink.
* svr4/dummy.h: Likewise.
* sunos4/syscall.h (sys_chroot, sys_dup, sys_fchdir, sys_fchroot,
sys_rename, sys_rmdir, sys_symlink, sys_unlink): Remove.
* svr4/syscall.h (sys_chroot, sys_dup, sys_fchdir, sys_fchroot,
sys_rename, sys_rmdir, sys_symlink, sys_unlink): Remove.
esc.c
ile.c
inux/dummy.h
inux/syscall.h
athtrace.c
unos4/dummy.h
unos4/syscall.h
vr4/dummy.h
vr4/syscall.h
f33ee91888caf1c8351c0b9628e45b5204a0add6 28-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> Reflect the fact that nfsservctl syscall was removed from linux kernels

linux/dummy.h: Move nfsservctl to "unimplemented" section.
inux/dummy.h
831c7e5628bab96ead1cc9093d336fd7c576a52e 27-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> x86_64: add getcpu syscall entry

* linux/x86_64/syscallent.h: Add syscall entry for getcpu.
inux/x86_64/syscallent.h
00ebeeece06eec2ae5532c48621936c0e1d2b1dc 27-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> Add syscall entries for new linux syscalls

* linux/dummy.h: Add printargs parsers for new syscalls.
* linux/arm/syscallent.h: Add entries for sys_clock_adjtime,
sys_name_to_handle_at, sys_open_by_handle_at, sys_sendmmsg, sys_setns
and sys_syncfs.
* linux/i386/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Likewise.
* linux/mips/syscallent.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/sparc/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
* linux/alpha/syscallent.h: Add entries for sys_clock_adjtime,
sys_name_to_handle_at, sys_open_by_handle_at, sys_setns and sys_syncfs.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
* linux/s390/syscallent.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* linux/avr32/syscallent.h: Add entry for sys_setns.
* linux/bfin/syscallent.h: Add entries for sys_sendmmsg and sys_setns.
* linux/hppa/syscallent.h: Add entries for sys_clock_adjtime,
fanotify_init, fanotify_mark, sys_name_to_handle_at,
sys_open_by_handle_at, sys_sendmmsg, sys_setns and sys_syncfs.
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/dummy.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/x86_64/syscallent.h
1cd2f96a03a570b95f77cb10e4ed4bee839f54a1 27-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> Fix prctl syscall entries

* linux/mips/syscallent.h: Fix prctl handler.
* linux/tile/syscallent.h: Likewise.
inux/mips/syscallent.h
inux/tile/syscallent.h
b11adf3ad297f0855f2068e3500ab9a60a536b60 27-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> arm: fix io_* syscall entries

* linux/arm/syscallent.h: Fix handlers for io_setup, io_destroy,
io_getevents, io_submit and io_cancel.
inux/arm/syscallent.h
0c79befad2bd7b4914f3e21f98eb869f577a5587 27-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> Fix mincore syscall entries

* linux/arm/syscallent.h: Fix mincore handler.
* linux/avr32/syscallent.h: Likewise.
* linux/mips/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/mips/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
e86f54272c6968a4a0ed2d9c397a6ab3f74d4749 26-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> Fix sendmsg syscall entries

* linux/arm/syscallent.h: Fix number of sendmsg arguments.
* linux/avr32/syscallent.h: Likewise.
* linux/bfin/syscallent.h: Likewise.
* linux/hppa/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/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/tile/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent.h
inux/x86_64/syscallent.h
609ccb229aac20c15a3b2c6eba0a93a662f19000 26-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> Fix epoll_wait syscall entries

* linux/arm/syscallent.h: Fix epoll_wait flags and handler.
* linux/m68k/syscallent.h: Fix epoll_wait flags.
* linux/microblaze/syscallent.h: Fix number of epoll_wait arguments.
* linux/sh/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
inux/arm/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/x86_64/syscallent.h
6ea78df972bb23e24855143981166cbf6ad7e2c1 26-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> Fix epoll_ctl syscall entries

* linux/arm/syscallent.h: Fix epoll_ctl flags and handler.
* linux/m68k/syscallent.h: Fix epoll_ctl flags.
* linux/x86_64/syscallent.h: Fix number of epoll_ctl arguments.
inux/arm/syscallent.h
inux/m68k/syscallent.h
inux/x86_64/syscallent.h
2b1d1196b2ca4b1cff589514a74ce144fff201cb 26-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> arm: fix epoll_create syscall entry

* linux/arm/syscallent.h: Fix epoll_create handler.
inux/arm/syscallent.h
6710f4af09651e9549d7626ca7f9d9664de34739 26-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> Fix mlockall syscall entries

* linux/arm/syscallent.h: Fix number of mlockall arguments.
* linux/avr32/syscallent.h: Likewise.
* linux/bfin/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/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/tile/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/i386/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent.h
inux/x86_64/syscallent.h
a706881b3bf87903156cf552e053cfc6a40911f1 26-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> Fix epoll_pwait syscall entries

* linux/alpha/syscallent.h: Fix number of epoll_pwait arguments.
* linux/arm/syscallent.h: Likewise.
* linux/avr32/syscallent.h: Likewise.
* linux/bfin/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/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/tile/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent.h
inux/x86_64/syscallent.h
30a05158e34639d52aafb3c6fad06efe12986ac2 26-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> Fix reboot syscall entries

* linux/alpha/syscallent.h: Fix number of reboot arguments.
* linux/arm/syscallent.h: Likewise.
* linux/avr32/syscallent.h: Likewise.
* linux/bfin/syscallent.h: Likewise.
* linux/hppa/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/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/tile/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent.h
inux/x86_64/syscallent.h
c0861c0ac8b8a4055736f6da32d54b278fd49f26 26-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> Fix swapon syscall entries

* linux/arm/syscallent.h: Fix number of swapon arguments.
* linux/avr32/syscallent.h: Likewise.
* linux/bfin/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/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/tile/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
* linux/alpha/syscallent.h: Fix number of swapon arguments, add TF flag.
* linux/hppa/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Likewise.
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent.h
inux/x86_64/syscallent.h
faa2fe84e5b9518c656844942f68f5217b4096de 25-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> Fix sgetmask and ssetmask syscall entries

* linux/hppa/syscallent.h: Fix sgetmask and ssetmask entries.
* linux/powerpc/syscallent.h: Likewise.
* linux/sparc/syscallent.h: Likewise.
* linux/tile/syscallent.h: Likewise.
inux/hppa/syscallent.h
inux/powerpc/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent.h
9538352ee7a360eb5235bbd3d0c93ce049ca1513 25-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> Rename siggetmask to sgetmask and sigsetmask to ssetmask

* linux/arm/syscallent.h: Rename siggetmask to sgetmask and
sigsetmask to ssetmask.
* linux/bfin/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
* linux/mips/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Rename sys_sgetmask to sys_siggetmask,
sys_ssetmask to sys_sigsetmask.
inux/arm/syscallent.h
inux/bfin/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
454dcd458aa0f8ebe6838c1835d779739a9cca77 25-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> Add TRACE_IPC flag to sys_ipc syscall entries

* linux/arm/syscallent.h: Add TI flag to sys_ipc entry.
* linux/avr32/syscallent.h: Likewise.
* linux/bfin/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/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.
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/i386/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
594399d8ebb039bf29e6f48c63b400551d4e79cc 05-Nov-2011 Dmitry V. Levin <ldv@altlinux.org> gitlog-to-changelog: update from gnulib

* gitlog-to-changelog: Update from gnulib.
* Makefile.am: Add --append-dot to gitlog-to-changelog invocation.
akefile.am
itlog-to-changelog
6a4ac6ccc8f8733b0dfce917af3844bfbc51900c 22-Oct-2011 Denys Vlasenko <dvlasenk@redhat.com> Decode TIOCSCTTY's third parameter

* term.c (term_ioctl): Decode TIOCSCTTY's third parameter.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
erm.c
7f3aca1af90809a17d975aa76cd932ba0e92e14f 13-Oct-2011 Dmitry V. Levin <ldv@altlinux.org> Remove useless and obsolete "#if DONE" sections. No code changes

* linux/dummy.h: Remove "#if DONE" section.
* linux/sparc/dummy2.h: Likewise.
* linux/sparc64/dummy2.h: Likewise.
* sunos4/dummy.h: Likewise.
* svr4/dummy.h: Likewise.
inux/dummy.h
inux/sparc/dummy2.h
inux/sparc64/dummy2.h
unos4/dummy.h
vr4/dummy.h
b9e897d6aa535651b400d44080e48d88ab708da2 12-Oct-2011 Dmitry V. Levin <ldv@altlinux.org> Add names for dummy parsers. No code changes

* linux/dummy.h: Add aliases to printargs() for those of dummy parsers
that had no own names before.
* linux/*/syscallent.h: Use these new names instead of printargs.
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/dummy.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent.h
inux/x86_64/syscallent.h
9e38484d497d66532f4e424c4699e5ddcad7eea6 12-Oct-2011 Dmitry V. Levin <ldv@altlinux.org> Sort definitions of dummy parsers. No code changes

* linux/dummy.h: Sort definitions of parsers implemented as aliases
to printargs().
inux/dummy.h
aed334c02cec45657b8b817110292457aacde3db 14-Oct-2011 Mike Frysinger <vapier@gentoo.org> sys_epoll_create1: decode flag arguments correctly

* desc.c (epollflags): Define.
(sys_epoll_create1): Use epollflags to printflags. Change "O" to "EPOLL".

Reported-by: Марк Коренберг <socketpair@gmail.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
esc.c
d99e48c0f33f5230a743cd91a986edba176db2f8 11-Oct-2011 Dmitry V. Levin <ldv@altlinux.org> Implement decoding of splice, tee and vmsplice(2) syscalls

* io.c (print_loff_t): New function.
(sys_sendfile64): Use it.
(splice_flags): New xlat structure.
(sys_tee, sys_splice, sys_vmsplice): New functions.
* linux/syscall.h (sys_tee, sys_splice, sys_vmsplice): Declare them.
* linux/*/syscallent.h: Use them.
o.c
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/syscall.h
inux/tile/syscallent.h
inux/x86_64/syscallent.h
c327d71258edb75a8120dfbbdd0b1828a3f43a9a 11-Oct-2011 Dmitry V. Levin <ldv@altlinux.org> Fix epoll_wait and epoll_pwait decoding

* desc.c (epoll_wait_common): Print "maxevents" and "timeout" arguments
as integers.

Reported-by: Марк Коренберг <socketpair@gmail.com>
esc.c
5967c1a66bab9032e67e3dc9fbd521648cc91c07 11-Oct-2011 Dmitry V. Levin <ldv@altlinux.org> Decode EPOLLRDHUP

* desc.c (epollevents): Add EPOLLRDHUP.

Reported-by: Марк Коренберг <socketpair@gmail.com>
esc.c
be55ce794aed3395eeb1ca7cfb9a460a8050b82b 11-Oct-2011 Dmitry V. Levin <ldv@altlinux.org> Remove unreachable code in umoven() and umovestr().

* util.c (umoven, umovestr): Remove unreachable code.

Reported-by: Weichuan Yan <wchyan@marvell.com>
til.c
f88837a666a716aecd9974f7ef3fcf006e0afce1 05-Sep-2011 Denys Vlasenko <dvlasenk@redhat.com> Do post-attach initialization earlier; fix "we ignore SIGSTOP on NOMMU" bug

We set ptrace options when we see post-attach SIGSTOP.
This is wrong: it's better to set them right away on the very first
stop (whichever it will be). It also will make adding SEIZE support easier,
since SEIZE has no post-attach SIGSTOP.

We do it by adding a new bit, TCB_IGNORE_ONE_SIGSTOP, and treating
TCB_STARTUP and TCB_IGNORE_ONE_SIGSTOP as two slightly different things.

* defs.h: Add a new flag bit, TCB_IGNORE_ONE_SIGSTOP.
* process.c (internal_fork): Set TCB_IGNORE_ONE_SIGSTOP on a newly added child.
* strace.c (startup_attach): Set TCB_IGNORE_ONE_SIGSTOP after attach.
Fix a case when "strace -p PID" found PID dead but sone other of its threads
still alive.
(startup_child): Set TCB_IGNORE_ONE_SIGSTOP after attach, _if needed_.
This fixes a bogus case where we can ignore a _real_ SIGSTOP on NOMMU.
(detach): Perform anti-SIGSTOP dance only if TCB_IGNORE_ONE_SIGSTOP is set,
not if TCB_STARTUP is set.
(trace): Set TCB_IGNORE_ONE_SIGSTOP after attach.
Clear TCB_STARTUP and initialize tracee on the very first tracee stop.
Clear TCB_IGNORE_ONE_SIGSTOP when SIGSTOP is seen.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
rocess.c
trace.c
d116a7338645af45090aecc331701e999148d284 05-Sep-2011 Denys Vlasenko <dvlasenk@redhat.com> Get rid of TCB_ATTACH_DONE

* defs.h: Remove TCB_ATTACH_DONE constant.
* strace.c (startup_attach): Use TCB_STARTUP instead of TCB_ATTACH_DONE
to distinquish attached from not-yet-attached threads.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
trace.c
381dbc22929428579f50d9b0b39193feba93dcfd 05-Sep-2011 Denys Vlasenko <dvlasenk@redhat.com> Set TCB_STARTUP only _after_ we attached.

This fixes logic in detach() which thinks that TCB_STARTUP
means that we are already attached, but did not see SIGSTOP yet.
This also allows to get rid of TCB_ATTACH_DONE flag.

* process.c (internal_fork): Set TCB_STARTUP after attach.
* strace.c (startup_attach): Likewise.
(startup_child): Likewise.
(alloc_tcb): Do not set TCB_STARTUP on tcb allocation - we are
not attached yet.
(trace): Set TCB_STARTUP when we detech an auto-attached child.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
rocess.c
trace.c
6cda73ff9ca94e2be56d04186fceaca223a9c45b 02-Sep-2011 Denys Vlasenko <dvlasenk@redhat.com> Simple optimizations in trace()

* strace.c (trace): Calculate WSTOPSIG(status) once,
unify code paths to ptrace(PTRACE_SYSCALL).

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
014ca3a53cb24d8e12e87f43a880efc52940a8be 02-Sep-2011 Denys Vlasenko <dvlasenk@redhat.com> Trivial fixes on error paths

* strace.c (startup_attach): Emit message on fork() failure.
(startup_child): Remove non-informative comment.
* util.c (ptrace_restart): use perror_msg() on error instead of fprintf().

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
til.c
ad5155af816306b99a2644f5b73c4197c9f85b35 01-Sep-2011 Denys Vlasenko <dvlasenk@redhat.com> Fix compile failure introduced by last commit

* desc.c (decode_select): Fix double definition of nfds.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
esc.c
79a79ea851250a30005d6323b20a9e30d9f336c1 01-Sep-2011 Denys Vlasenko <dvlasenk@redhat.com> Roll back "die on malloc failure" behaviour a bit

After recent change, select(2^31-1, NULL, NULL, NULL)
would make strace exit. This change caps fdsize so that
it is always in [0, 1025*1024], IOW: we will try to allocate at most
1 megabyte, which in practice will almost always work,
unlike malloc(2Gig).

* desc.c (decode_select): Cap fdsize to 1024*1024.
* pathtrace.c (pathtrace_match): Cap fdsize to 1024*1024.
* file.c (sys_getdents): Cap len to 1024*1024.
(sys_getdents64): Cap len to 1024*1024.
* util.c (dumpiov): Refuse to process iov with more than 1024*1024
elements. Don't die on malloc failure.
(dumpstr): Don't die on malloc failure.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
esc.c
ile.c
athtrace.c
til.c
0a295bc97fd2ba9e6dc02f382dc87bc8705dc4d0 01-Sep-2011 Denys Vlasenko <dvlasenk@redhat.com> Add stpcpy to autoconf machinery

* configure.ac: Add stpcpy to AC_CHECK_FUNCS.
* defs.h: Frame stpcpy with "if !defined HAVE_STPCPY".
* util.c: Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
onfigure.ac
efs.h
til.c
b9c7ae621172bba141ef96e95e43f658c3643c71 01-Sep-2011 Denys Vlasenko <dvlasenk@redhat.com> Simplify sprinttv()

* time.c (sprinttv): Trivial simplifications.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
ime.c
1161725b8ec3934ac25f12b6d8ae81bc9ffa8b2c 01-Sep-2011 Denys Vlasenko <dvlasenk@redhat.com> * desc.c (decode_select): Set tcp->auxstr as late as possible.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
esc.c
ab034fbf09460c2fd933ea47c9085d09b8a1ab27 01-Sep-2011 Denys Vlasenko <dvlasenk@redhat.com> Reformat setuid-ing code in startup_child()

New code does the same as old one, but is more readable (I hope).

* strace.c (startup_child): Reformat setuid-ing code.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
2e968c0bb7b89aa43df726eb651f0b51572b4194 01-Sep-2011 Denys Vlasenko <dvlasenk@redhat.com> Minor tweaks in startup_child(). Logic isn't changed (but code is)

* strace.c (startup_attach): Tweak comment.
(startup_child): Move common code out of ifdef.
Indent nested ifdefs. Tweak comments. Remove two
unnecessary calls to getpid().

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
60fe8c139c6f2febefe595781812ddf0864a6ab8 01-Sep-2011 Denys Vlasenko <dvlasenk@redhat.com> Use tprints with literal strings, it may be faster than tprintf

* bjm.c: Replace tprintf("str") with tprints("str").
* block.c: Likewise.
* desc.c: Likewise.
* file.c: Likewise.
* io.c: Likewise.
* ipc.c: Likewise.
* mem.c: Likewise.
* net.c: Likewise.
* proc.c: Likewise.
* process.c: Likewise.
* quota.c: Likewise.
* resource.c: Likewise.
* scsi.c: Likewise.
* signal.c: Likewise.
* sock.c: Likewise.
* strace.c: Likewise.
* stream.c: Likewise.
* syscall.c: Likewise.
* system.c: Likewise.
* term.c: Likewise.
* time.c: Likewise.
* util.c: Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
jm.c
lock.c
esc.c
ile.c
o.c
pc.c
em.c
et.c
roc.c
rocess.c
uota.c
esource.c
csi.c
ignal.c
ock.c
trace.c
tream.c
yscall.c
ystem.c
erm.c
ime.c
til.c
5940e6593911dcace424c668a1c0934c71fccb9e 01-Sep-2011 Denys Vlasenko <dvlasenk@redhat.com> Fix "format not a string literal" warning caused by tprintf(str)

* defs.h: Declare tprints().
* strace.c: Define tprints().
(tabto): Use tprints(str), since tprintf(str) was throwing a warning.
* desc.c: Use tprints(str) instead of tprintf("%s", str).
* file.c: Likewise.
* io.c: Likewise.
* net.c: Likewise.
* process.c: Likewise.
* signal.c: Likewise.
* syscall.c: Likewise.
* util.c: Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
esc.c
ile.c
o.c
et.c
rocess.c
ignal.c
trace.c
yscall.c
til.c
dfa0acc8c1fc8d287c77f96ace8ac874f09c829a 31-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Add README-linux-ptrace file

I tried to push this doc to Michael Kerrisk <mtk.manpages@gmail.com>,
but got no reply. To avoid losing the document, let it live
in strace tree for now.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
EADME-linux-ptrace
1d46ba57a8ab16b353b531f2bbefe2ad7f354ca9 31-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Make out-of-memory handling more uniform

This fixes one real bug in dumpstr().

* defs.h: Declare die_out_of_memory().
* strace.c (die_out_of_memory): New function.
(strace_popen): If allocation fails, call die_out_of_memory().
(main): Likewise.
(expand_tcbtab): Likewise.
(rebuild_pollv): Likewise.
* count.c (count_syscall): Likewise.
(call_summary_pers): Likewise.
* desc.c (decode_select): Likewise.
* file.c (sys_getdents): Likewise.
(sys_getdents64): Likewise.
(sys_getdirentries): Likewise.
* pathtrace.c (pathtrace_match): Likewise.
* syscall.c (qualify): Likewise.
* util.c (printstr): Likewise.
(dumpiov): Likewise.
(dumpstr): Likewise.
(fixvfork): Likewise.
* mem.c (sys_mincore): Don't check free() parameter for NULL.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
ount.c
efs.h
esc.c
ile.c
em.c
athtrace.c
trace.c
yscall.c
til.c
2fb4db3e7aa1d6ac6b4b43f47597197492a846dd 31-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Optimization: eliminate all remaining usages of strcat()

After this change, we don't use strcat() anywhere.

* defs.h: Change sprinttv() return type to char *.
* time.c (sprinttv): Return pointer past last stored char.
* desc.c (decode_select): Change printing logic in order to eliminate
usage of strcat() - use stpcpy(), *outptr++ = ch, sprintf() instead.
Also reduce usage of strlen().
* stream.c (decode_poll): Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
esc.c
tream.c
ime.c
8778bffdd25dca050b3aa2a7a7e05bc8a63a6665 31-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Optimize string_quote() for speed

* util.c (string_quote): Speed up check for terminating NUL.
Replace strintf() with open-coded binary to hex/oct conversions -
we potentially do them for every single byte, need to be fast.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
til.c
5284557bfad96f12dd5798539008e1644f1dc094 31-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Optimization: eliminate some usages of strcat()

* defs.h: Declare stpcpy().
* util.c: Define stpcpy().
* file.c: Remove static str_append().
(sprint_open_modes): Use stpcpy() instead of str_append().
(sprintflags): Use stpcpy() instead of strcat().
(printpathn): Eliminate usage of strcat().
(printstr): Eliminate usage of strcat().

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
ile.c
til.c
b5b2589231847905229d78588316e708cbd03af1 30-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Small optimization on AVR32

* syscall.c (syscall_enter): Optimize tcp->u_arg[i] setting
from regs.FOO for AVR32.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
eb0e3e8f501b8519594d57caf2632581b3031c50 30-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> On X86_64 and I386, use PTRACE_GETREGS to fetch all registers

Before this change, registers were read with PTRACE_PEEKUSER
ptrace operation, one per register. This is slower than
fetching them all in one ptrace operation.

* defs.h: include asm/ptrace.h on X86_64 and I386.
* syscall.c: New static variables i386_regs and x86_64_regs.
Remove static eax/rax variables.
(get_scno): Fetch all registers with single PTRACE_GETREGS operation.
(get_syscall_result): Likewise.
(syscall_fixup_on_sysenter): Use PTRACE_GETREGS results in i386/x86_64_regs.
(syscall_enter): Set tcp->u_arg[i] from PTRACE_GETREGS results.
(get_error): Set tcp->u_rval, tcp->u_error from PTRACE_GETREGS results.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
yscall.c
a673f3fa62e1c2f34d27e88fb0772b9ee3d6f0f1 30-Aug-2011 Dmitry V. Levin <ldv@altlinux.org> Do not include <limits.h>

* strace.c: Do not include <limits.h> explicitly, it is already included
implicitly by <sys/param.h>.
trace.c
b038a43d756c84f98868557a1bbacd048faf1e53 30-Aug-2011 Dmitry V. Levin <ldv@altlinux.org> Include <sys/param.h> to get PATH_MAX definition

* pathtrace.c: Include <sys/param.h> instead of <limits.h> to get
PATH_MAX definition.

Reported-by: Steve Bennett <steveb@workware.net.au>
athtrace.c
77770bbf6b52bc109a2769df3aff19ce9fcdc9f4 26-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Indent a large set of nested ifdefs/endifs. No code changes

* defs.h: Indent a large set of nested ifdefs/endifs

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
8b4454cba79445651050ea84bb411e5265d4651e 25-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Rename syscall_fixup to syscall_fixup_on_sysenter

* defs.h: Tweak comment.
* syscall.c: Rename syscall_fixup to syscall_fixup_on_sysenter.
(trace_syscall_entering): Use new finction name.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
yscall.c
f20bff6a7397cae272b8bee76a31c4163d8a8a43 25-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Make syscall result reading more consistent among different arches

* syscall.c: Eliminate static flags variable for POWERPC.
(syscall_fixup): Don't fetch syscall results. Affected arches:
POWERPC, BFIN, HPPA.
(syscall_fixup_on_sysexit): Move syscall results fetching code
for this function to get_syscall_result. Affected arches:
S390X, POWERPC, BFIN, M68K, HPPA, CRIS, MICROBLAZE.
(get_syscall_result): Add syscall results fetching.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
ece9879797bd507e87238274e3b2931380ad6b42 25-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Simplify syscall_fixup[_on_sysexit]

* syscall.c (syscall_fixup): Remove checks for entering(tcp).
Remove code which executes if exiting(tcp).
(syscall_fixup_on_sysexit): Remove code which executes
if entering(tcp). Remove checks for exiting(tcp).

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
20c41fd91dfa0057e9f3de4bde51620c138e7706 25-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Split syscall_fixup into enter/exit pair of functions

* syscall.c: Create syscall_fixup_on_sysexit() which is a copy of
syscall_fixup().
(trace_syscall_exiting): Call syscall_fixup_on_sysexit() instead of
syscall_fixup().

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
61526c6b1ee40442943b245eeb5d0c5f13821131 25-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Remove stray commas in struct initializers. No code changes

* process.c: Remove stray commas in struct initializers.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
rocess.c
102ec4935440ff52a7fa3566154a84cc2473f16a 25-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Optimize tabto()

tabto is used in many lines of strace output.
On glibc, tprintf("%*s", col - curcol, "") is noticeably slow
compared to tprintf(" "). Use the latter.
Observed ~15% reduction of time spent in userspace.

* defs.h: Drop extern declaration of acolumn. Make tabto()
take no parameters.
* process.c (sys_exit): Call tabto() with no parameters.
* syscall.c (trace_syscall_exiting): Call tabto() with no parameters.
* strace.c: Make acolumn static, add static char *acolumn_spaces.
(main): Allocate acolumn_spaces as a string of spaces.
(printleader): Call tabto() with no parameters.
(tabto): Use simpler method to print lots of spaces.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
rocess.c
trace.c
yscall.c
fabaa91ab6df17ad7367c2768a13a5d622840656 25-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> * syscall.c (sys_indir): Use %ld for printing long, not %u.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
cb6f056004a10d5c3ed0341366e3ddeb53cac5e6 25-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Opotimize "scno >= 0 && scno < nsyscalls" check

gcc can't figure out on its own that this check can be done with
single compare, and does two compares. We can help it by casting
scno to unsigned long: ((unsigned long)(scno) < nsyscalls)

* defs.h: New macro SCNO_IN_RANGE(long_var).
* count.c (count_syscall): Use SCNO_IN_RANGE() instead of open-coded check.
* syscall.c (getrval2): Use SCNO_IN_RANGE() instead of open-coded check.
This fixes a bug: missing check for scno < 0 and scno > nsyscalls
instead of scno >= nsyscalls.
(get_scno): Use SCNO_IN_RANGE() instead of open-coded check.
This fixes a bug: scno > nsyscalls instead of scno >= nsyscalls.
(known_scno): Use SCNO_IN_RANGE() instead of open-coded check.
(internal_syscall): Likewise.
(syscall_enter): Likewise.
(trace_syscall_entering): Likewise.
(get_error): Likewise.
(trace_syscall_exiting): Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
ount.c
efs.h
yscall.c
1a5b5a7aff28a5c8bdafc6104508f553f50977a4 25-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Remove scno_good logic in syscall exit

* syscall.c (trace_syscall_exiting): Remove scno_good logic,
it can't trigger in syscall exit.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
684fb1ae3caa2586ed8119d8468ed3f42a9e4a40 25-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Remove redundant assignments

* syscall.c (get_error): Remove redundant "u_error = 0" and redundant
and unclear comments.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
92d443c030d821f3ccb7462842fca8f62aea0b42 25-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Group int-sized fields together in struct tcb

* defs.h: Group int-sized fields together in struct tcb.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
a614692fb082294ae3d3c7f6c1ed26b355d6c4bf 24-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Reorder functions in syscall.c. No code changes.

Old order (basically "in no particular order"):
dumpio
decode_subcall
internal_syscall
get_scno
get_syscall_result
known_scno
syscall_fixup
is_negated_errno
get_error
syscall_enter
trace_syscall_entering
trace_syscall_exiting
trace_syscall
printargs
getrval2
sys_indir
is_restart_error

New order:
various utility functions:
decode_subcall
printargs
getrval2
sys_indir
is_restart_error
syscall enter handling functions:
get_scno
known_scno
syscall_fixup (also used in syscall exit code)
internal_syscall (also used in syscall exit code)
syscall_enter
trace_syscall_entering
syscall exit handling functions:
get_syscall_result
is_negated_errno
get_error
dumpio
trace_syscall_exiting
main syscall enter/exit function:
trace_syscall

* syscall.c: Reorder functions so that related ones are closer
in the source.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
06602d99b72564e77600fc7c94e9ce8b78ec7085 24-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Rename some functions, delete unused one. No code changes

* defs.h: Rename get_scno_on_sysenter() to get_scno();
delete force_result() declaration.
* strace.c (proc_open): Rename get_scno_on_sysenter() to get_scno().
* syscall.c: Rename get_scno_on_sysenter() to get_scno().
Rename get_scno_on_sysexit() to get_syscall_result().
Delete unused force_result().

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
trace.c
yscall.c
2ce12ed31c2b46260b8fd140bfe8d6c30bc0eb29 24-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Unify per-architecture post-execve SIGTRAP check.

Move post-execve SIGTRAP check from get_scno_on_sysenter
(multitude of places on many architectures) to a single location
in trace_syscall_entering. This loosens the logic for some arches,
since many of them had additional checks such as scno == 0.
However, on non-ancient Linux kernels we should never have post-execve
SIGTRAP in the first place, by virtue of using PTRACE_O_TRACEEXEC.

* syscall.c (get_scno_on_sysenter): Remove tcp->flags & TCB_WAITEXECVE checks.
(trace_syscall_entering): Do tcp->flags & TCB_WAITEXECVE check here.
(get_scno_on_sysexit): Tweak comment.
(syscall_fixup): Likewise.
(trace_syscall_exiting): Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
18beb98fadbe43c3947cbdcc90d4f72d3a720b78 24-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Speed up x86 by avoiding EAX read on syscall entry

on x86, EAX read on syscall entry is not necessary if we know
that post-execve SIGTRAP is disabled by PTRACE_O_TRACEEXEC ptrace option.
This patch (a) moves EAX retrieval from syscall_fixup
to get_scno_on_sysexit, and (b) perform EAX retrieval in syscall_fixup
only if we are in syscall entry and PTRACE_O_TRACEEXEC option is not on.

* syscall.c (get_scno_on_sysexit): On I386 and X86_64, read eax/rax
which contain syscall return value.
(syscall_fixup): On I386 and X86_64, read eax/rax only on syscall enter
and only if PTRACE_O_TRACEEXEC is not in effect.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
77a7459536f38dd35364c24719ce5ca5cd6b76bc 24-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Do not read syscall no in get_scno_on_sysexit

* syscall.c (get_scno_on_sysexit): Remove scno retrieval code, since
we don't save it anyway. This is the first real logic change
which should make strace faster: for example, on x64 ORIG_EAX
is no longer read in each syscall exit.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
8cd1acd46f20b9a8a17c3353141de00bc877c0f1 24-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Simplify get_scno_on_sysenter/sysexit

* syscall.c (get_scno_on_sysenter): Remove "if (exiting(tcp))" code,
make "if (entering(tcp))" code unconditional.
(get_scno_on_sysexit): Remove "if (entering(tcp))" code,
make "if (exiting(tcp))" code unconditional.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
9a36ae5e886794865623b0d3d4f0d10bf541f32d 24-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> get_scno is an unholy mess, make it less horrible

Currently, get_scno does *much* more than "get syscall no".
It checks for post-execve SIGTRAP. It checks for changes
in personality. It retrieves params on entry and registers on exit.
Worse still, it is different in different architectures: for example,
for AVR32 regs are fetched in get_scno(), while for e.g. I386
it is done in syscall_enter().

Another problem is that get_scno() is called on both syscall entry and
syscall exit, which is stupid: we don't need to know scno on syscall
exit, it is already known from last syscall entry and stored in
tcp->scno! In essence, get_scno() does two completely different things
on syscall entry and on exit, they are just mixed into one bottle, like
shampoo and conditioner.

The following patches will try to improve this situation.

This change duplicates get_scno into identical get_scno_on_sysenter,
get_scno_on_sysexit functions. Call them in syscall enter and syscall
exit, correspondingly.

* defs.h: Rename get_scno to get_scno_on_sysenter; declare it only
if USE_PROCFS.
* strace.c (proc_open): Call get_scno_on_sysenter instead of get_scno.
* syscall.c (get_scno): Split into two (so far identical) functions
get_scno_on_sysenter and get_scno_on_sysexit.
(trace_syscall_entering): Call get_scno_on_sysenter instead of get_scno.
(trace_syscall_exiting): Call get_scno_on_sysexit instead of get_scno.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
trace.c
yscall.c
5f731c4e1b67390bbddb3e868d36e1790f0a7aec 23-Aug-2011 Dmitry V. Levin <ldv@altlinux.org> Reduce code redundancy in syscall_enter()

* syscall.c [LINUX] (syscall_enter): Move tcp->u_nargs initialization
from arch-specific ifdefs to common code. Always cache tcp->u_nargs in
a local variable and use it in for() loops.
[IA64, AVR32] Rewrite tcp->u_arg[] initialization using a loop.
yscall.c
44142a7b79d96e711c8b492a6ad6bb0a2bbc8ead 23-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Define MAX_ARGS to 6 for all Linux arches

* defs.h: Define MAX_ARGS to 6 for all Linux arches.
* linux/ia64/syscallent.h: Change all 8-argument printargs
to MA (MAX_ARGS).
linux/mips/syscallent.h: Change all two 7-argument printargs
to MA (MAX_ARGS).

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
inux/ia64/syscallent.h
inux/mips/syscallent.h
d5e66c4b971c7f2480d2ff37eb06038cda517b6f 23-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Fix argument printing in sys_mmap64

* mem.c (sys_mmap64): Fix a bug where we used tcp->u_args[i]
instead of argument values copied from memory.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
em.c
4b887a5a9a9892f064b238c8672fb89f42c8d5e0 23-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Cache tcp->u_nargs in a local variable for for() loops

Loops of the form "for (i = 0; i < tcp->u_nargs; i++) ..."
need to fetch tcp->u_nargs from memory on every iteration
if "..." part has a function call (gcc doesn't know that
tcp->u_nargs won't change). This can be sped up
by putting tcp->u_nargs in a local variable, which might
go into a CPU register.

* syscall.c (decode_subcall): Cache tcp->u_nargs in a local variable
as for() loop limit value.
(syscall_enter): Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
afc64037e22cc7cafadba766286e32550d9e8feb 23-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Drop checks for sysent[i].nargs == -1

* defs.h: Declare nsyscalls, nerrnos, nioctlents, nsignals as unsigned.
* syscall.c: Define nsyscalls, nerrnos, nioctlents, nsignals as unsigned.
(decode_subcall): Drop checks for sysent[i].nargs == -1.
(syscall_enter): Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
yscall.c
ac1ce77a23b4f4eecb6768f118259499308fce1c 23-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Stop using nargs == -1 in syscallent tables

Usage -1 as argument count in syscallent tables
necessitates the check for it, a-la:
if (sysent[tcp->scno].nargs != -1)
tcp->u_nargs = sysent[tcp->scno].nargs;
else
tcp->u_nargs = MAX_ARGS;
which is stupid: we waste cycles checking something which
is constant and known at compile time.

* defs.h: Make struct sysent::nargs unsigned.
* freebsd/i386/syscallent.h: Replace nargs of -1 with MA.
* linux/s390/syscallent.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* svr4/syscallent.h: Likewise.
* freebsd/syscalls.pl: Likewise in generator script.
* syscallent.sh: Likewise in generator script.
* syscall.c: Add define MA MAX_ARGS / undef MA around includes
of syscallent[N].h.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
reebsd/i386/syscallent.h
reebsd/syscalls.pl
inux/s390/syscallent.h
inux/s390x/syscallent.h
vr4/syscallent.h
yscall.c
yscallent.sh
ed4f4f02f1b1c3a0902f74969948c4c1b777ff4a 22-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Move trace_syscall_exiting below trace_syscall_entering. No code changes.

Syscall enter happens before syscall exit. Having functions
in opposite order in the source is confusing.

* syscall.c: Move trace_syscall_exiting below trace_syscall_entering.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
3b73881a0dc6b0e084e0f78e70904123fa305d8b 22-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Fix -z display.

Before this patch, the following:
open("qwerty", O_RDONLY) = -1 ENOENT
write(2, "wc: qwerty: No such file or dire"..., 38) = 38
was shown totally wrongly with -z:
open("qwerty", O_RDONLY) = 38
(yes, that's right, write syscall is lost!)
Now it is shown "less wrongly" as:
open("qwerty", O_RDONLY <unfinished ...>
write(2, "wc: qwerty: No such file or dire"..., 38) = 38

* syscall.c (trace_syscall_exiting): Use common TCB_INSYSCALL clearing
via "goto ret". This fixes totally broken display of -z, but even now
it is not working as intended. Add a comment about that.
(trace_syscall_entering): Use common TCB_INSYSCALL setting
via "goto ret".

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
b88f96129f8ebc064d490c8c161bcbc925d938c8 21-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Straighten up confused comments/messages about post-execve SIGTRAP handling

* defs.h: Explain TCB_INSYSCALL and TCB_WAITEXECVE bits in detail.
* strace.c (choose_pfd): Use entering/exiting macros instead of direct check
for TCB_INSYSCALL.
* syscall.c (get_scno): Use entering/exiting macros instead of direct check
for TCB_INSYSCALL. Fix comments about post-execve SIGTRAP.
(syscall_fixup): Use entering/exiting instead of direct check
for TCB_INSYSCALL. Add a comment what "not a syscall entry" message
usually means. Change wrong "stray syscall exit" messages into
"not a syscall entry" ones.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
trace.c
yscall.c
c95a88f124895042345473fad58daa30da9e1565 21-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> count_syscall() always returns 0, optimize it

* defs.h (count_syscall): Change return type from int to void.
* count.c (count_syscall): Change return type from int to void.
* syscall.c (trace_syscall_exiting): Change code around call
to count_syscall accordingly.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
ount.c
efs.h
yscall.c
2ecba32d52db699538bcfc3f69259aaff32a0fa9 21-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Optimize out dummy PC printing on signal delivery

* strace.c (trace): Optimize out dummy PC printing on signal delivery.
While at it, tweak comments.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
a7949748d14a21aa9698311413f2b84342d14e0e 21-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Conditionally optimize out unused code

* syscall.c (internal_syscall): Call internal_exec only if
SUNOS4 || (LINUX && TCB_WAITEXECVE).
* process.c (internal_exec): Define this function only if
SUNOS4 || (LINUX && TCB_WAITEXECVE).
(printwaitn): Don't check wordsize if SUPPORTED_PERSONALITIES == 1.
* signal.c (sys_kill): Likewise.
* syscall.c (is_negated_errno): Likewise.
(trace_syscall_exiting): Fold a tprintf into tprintfs which follow it.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
rocess.c
ignal.c
yscall.c
0890c8a403f60c2f66f17bf5d6bb16039b47c913 21-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Cosmetic improvement in ifdefs. No code changes

* strace.c (proc_open): Change ifdefs so that braces are properly paired.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
8dc0c8c5ef66c2b2eb76484b83c750c0712891f9 20-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Exclude tcp->pfd from non-procfs systems

* defs.h: Make struct tcb::pfd fields conditional on USE_PROCFS.
* strace.c (alloc_tcb): Use tcp->pfd only if USE_PROCFS.
(droptcb): Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
trace.c
cfd364b011e170377ae002551c4391c01f51acbf 20-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Small optimizations related to memory allocation

* strace (expand_tcbtab): Shorten "out of memory" message.
(rebuild_pollv): Remove unnecessary NULL check before free().
* util.c (dumpstr): Add a comment about likely bug.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
til.c
5d64581e106f47c474707001f924ee15ef22830b 20-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Improve code readability by avoiding assignments inside if()

* desc.c (decode_select): Move assignment out of if() condition.
* file.c (sprinttime): Likewise.
(sys_getdirentries): Likewise.
* io.c (sys_ioctl): Likewise.
* strace.c (test_ptrace_setoptions_followfork): Likewise.
(main): Likewise.
(proc_open): Likewise.
(detach): Likewise.
(proc_poll): Likewise.
(trace): Likewise.
* syscall.c (qualify): Likewise.
(sys_indir): Likewise.
* test/procpollable.c (main): Likewise.
* test/sfd.c (main): Likewise.
* time.c (printtv_bitness): Likewise.
(sprinttv): Likewise.
(print_timespec): Likewise.
(void sprint_timespec): Likewise.
(printitv_bitness): Likewise.
* util.c (dumpstr): Likewise.
(umovestr): Likewise.
(fixvfork): Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
esc.c
ile.c
o.c
trace.c
yscall.c
est/procpollable.c
est/sfd.c
ime.c
til.c
6b6ed5d669c04fb949dfc88ed0571e3db0d11571 20-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Convert ioctl_next_match() to new-style C function definition

* ioctl.c (ioctl_next_match): Convert to new-style C function definition.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
octl.c
39fca628019cbfa01835482ac8559e21fde7f03c 20-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Small optimization in signal and ioctl tables

Trivial shuffling of data tables puts them all in one file,
allowing gcc to see their sizes and eliminate variables
which store these sizes.

Surprisingly, in C mode gcc does not optimize out static const int
variables. Help it by using enums instead.

* defs.h: Stop exporting ioctlent{0,1,2}, nioctlents{0,1,2},
signalent{0,1,2}, nsignals{0,1,2}.
* ioctl.c: Remove definitions of ioctlent{,0,1,2} and nioctlents{,0,1,2}.
* signal.c: Remove definitions of signalent{,0,1,2} and nsignals{,0,1,2}.
* syscall.c: Move above definitions to this file. Make them static const
or enums if suitable.
efs.h
octl.c
ignal.c
yscall.c
5c774b2be4c64f24c8473d7bdf2ad23b8bc314cc 20-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Don't return int from set_personality(), no one checks it.

* defs.h (set_personality): Change return type to void.
* syscall.c (set_personality): Change return type to void.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
yscall.c
3ec963237690a8bb7e032c37e26fa0f089bb16e4 20-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Remove unused declaration

* defs.h: Remove unused declaration of handle_new_child().

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
d9ec141671dea4f4982749aa1bcc9c9ff4138d30 20-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Use natural-sized integer field for tcb::flags

* defs: Change struct tcb::flags type from short to int.
This results in smaller code at least on x86.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
deec74eb5296a220caabeb5f12abacd9770d10a2 20-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Make needlessly static data local

* syscall.c (get_scno): For POWERPC64 and X86-64, variable currpers
is declared static. But its old data is never used. Convert it
to ordinary local variable.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
7c9ba8b55e4cb198f2280353785491a77b05af2c 19-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Optimize get_scno function

* syscall.c (get_scno): Make gpr_offset[] array static const.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
799926211a0343561a92d8fc6dfc87202a136bd0 19-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Optimize iocb_cmd_lookup

* desc.c (iocb_cmd_lookup): Make command table constant.
Reduce size of static char buffer.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
esc.c
3432059f66df5ce81c42c6e4be91532538be6ccb 19-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Correct sys_sendfile[64] type and nargs

* freebsd/i386/syscallent.h: Correct sys_sendfile nargs 7->8
* linux/mips/syscallent.h: Correct sys_sendfile64 nargs 5->4
* linux/sh/syscallent.h: Correct sys_sendfile64 nargs 5->4
* linux/sh64/syscallent.h: Correct sys_sendfile64 nargs 5->4
* linux/m68k/syscallent.h: Correct sys_sendfile64 type TF->TD|TN
* linux/microblaze/syscallent.h: Correct sys_sendfile64 type TF->TD|TN
* linux/tile/syscallent.h: Correct sys_sendfile and sys_sendfile64 type TD->TD|TN

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
reebsd/i386/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/tile/syscallent.h
4924dbd6d750665cf383b20ab4fd67e48219ab91 19-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Make addflags return void

* defs.h (addflags): Change return type from int to void.
* util.c (addflags): Change return type from int to void.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
til.c
d9560c108099394281012eb4bd7c46a46df6d31d 19-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Set saner MAX_ARGS (6 or 8) for X86_64 and I386

I noticed that tcp->u_args[MAX_ARGS] array is way larger than
I'd expect: for all arches except HPPA it has 32 (!) elements.

I looked at the code and so far I spotted only one abuser of
this fact: sys_sigreturn. On several arches, it saves sigset_t
into tcp->u_args[1...N] on entry and prints it on exit, a-la

memcpy(&tcp->u_arg[1], &sc.oldmask[0], sizeof(sigset_t))

The problem here is that in glibc sigset_t is insanely large:
128 bytes, and using sizeof(sigset_t) in memcpy will overrun
&tcp->u_args[1] even with MAX_ARGS == 32:
On 32 bits, sizeof(tcp->u_args) == 32*4 == 128 bytes!
We may already have a bug there!

This commit changes the code to save NSIG / 8 bytes only.
NSIG can't ever be > 256, and in practice is <= 129,
thus NSIG / 8 is <= 16 bytes == 4 32-bit words,
and even MAX_ARGS == 5 should be enough for saving signal masks.

* defs.h: Reduce MAX_ARGS for X86_64 and I386 from 32 to 8
for FreeBSD and to 6 for everyone else. Add comment about current
state of needed MAX_ARGS.
* signal.c: Add comment about size of sigset_t.
(sprintsigmask): Reduce static string buffer from 8k to 2k.
(sys_sigreturn): Fix sigset saving to save only NSIG / 8 bytes,
not sizeof(sigset_t) bytes.
* linux/mips/syscallent.h: Reduce nargs of printargs-type syscall to 7.
* linux/arm/syscallent.h: Reduce nargs of printargs-type syscall to 6.
* 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.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
inux/arm/syscallent.h
inux/i386/syscallent.h
inux/m68k/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
ignal.c
9aa97968ed75103c1f8a18e079b73328710ebe1e 19-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Optimize sys_old_mmap

* mem.c (sys_old_mmap): For Ia64 and 32-bit personality of x86-64,
copy narrow parameters from userspace by single umove, not by six
separate ones; then assign them to long u_arg[i]. For SH[64],
avoid copying of tcp->u_arg.
(sys_mmap): Add FIXME comment - SH64 and i386 seem to be handled
differently for no apparent reason.
* test/mmap_offset_decode.c: New test program, illustrates FIXME.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
em.c
est/mmap_offset_decode.c
31f9cb6f4889c4b3b28993eb259f20ef097b2b6a 19-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Untangle ifdef forest in sys_mmap64. No code changes

After careful analysis, it looks like !LINUX and ALPHA
pass all seven parameters in registers; and in all other cases
parameters are on stack (pointed to by tcp->u_arg[0]).
In light of this, reorganize ifdefs, making them simpler,
without changing any logic.
After this, it's apparent we use tcp->u_arg[4,5,6] and possibly
[7] without checking that it's valid to do so.
So far, just add a comment about this.

* mem.c (sys_mmap64): Rewrite ifdefs in a much simpler way.
Add comments about apparent bugs.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
em.c
72a5848741a1d64badc1d88f7424cd9f357842f4 19-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Style and comment fixes, no code changes

* mem.c: Indent includes to show nesting better.
(addtileflags): Fix style of this function definition;
correct wrong endif comment, add another endif comment.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
em.c
4b08df42ff069dcf44b8ed206ae33a2904c366ba 19-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Use simpler rounding up to next multiple of 2.

* util.c (printllval): simpler rounding up to next multiple of 2.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
til.c
041b3ee42e7c6338f482320bcc649aff254ae892 18-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Cosmetic fixes, no code changes

* defs.h: Add/reformat comments.
* signal.c: Remove wrong comment. Add warning directive
when we detect that NSIG is undefined. Add comment about
NSIG on ARM. Fix typo in comment.
(signame): Reformat code a bit without changes to logic.
Shorten static buffer.
(sys_rt_sigprocmask): Remove stray empty line.
* syscall.c: Add warning directive when we detect that
NSIG is undefined. Add comment about NSIG on ARM.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
ignal.c
yscall.c
04f8b4860f12512186481ca21dbd311d9d612326 16-Aug-2011 Dmitry V. Levin <ldv@altlinux.org> Fix PTRACE_SETOPTIONS tests

* strace.c [LINUX] (kill_save_errno): New function.
(test_ptrace_setoptions_followfork): Change return type to void.
Fix and harden error handling. Use kill_save_errno() to avoid errno
clobbering. Treat EIO from ptrace() the same way as EINVAL.
(test_ptrace_setoptions_for_all): Use kill_save_errno() to avoid errno
clobbering. Treat EIO from ptrace() the same way as EINVAL.
(main): Update use of test_ptrace_setoptions_followfork().
trace.c
25caa318eedf38200cd7660320d95bf4662c6c5b 16-Aug-2011 Dmitry V. Levin <ldv@altlinux.org> Fix compilation on linux 2.4.x

* configure.ac: Check for BLKGETSIZE64.
* block.c (block_ioctl): Check for HAVE_BLKGETSIZE64.
lock.c
onfigure.ac
44f87efc676467ab47972feec49af4f7f34356bf 17-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Remove tcp->parent and TCB_CLONE_THREAD.

tcp->parent is used for only two things:
(1) to send signal on detach via tgkill (need to know tgid).
Solution: use tkill, it needs only tid.
(2) to optimize out ptrace options setting for new tracees.
Not a big deal if we drop this optimization: "set options" op is fast,
doing it just one extra time once per each tracee is hardly measurable.

TCB_CLONE_THREAD is a misnomer. It used only to flag sibling we attached to
in startup_attach. This is used to prevent infinite recursive rescanning
of /proc/PID/task.
Despite the name, there is no guarantee it is set only on non-leader:
if one would run "strace -f -p THREAD_ID" and THREAD_ID is *not*
a thread leader, strace will happily attach to it and all siblings
and will think that THREAD_ID is the leader! Which is a bug, but
since we no longer detach when we think tracee is going to die,
this bug no longer matters, because we do not use the knowledge
about thread group leaders for anything. (We used it to delay
leader's exit).

IOW: after this patch strace has no need to know about threads, parents
and children, and so on. Therefore it does not track that information.
It treats all tracees as independent entities. Overall,
this simplifies code a lot.

* defs.h: Add TCB_ATTACH_DONE flag, remove TCB_CLONE_THREAD flag
and struct tcb::parent field.
* process.c (internal_fork): Don't set tcpchild->parent.
* strace.c (startup_attach): Use TCB_ATTACH_DONE flag instead of
TCB_CLONE_THREAD to avoid attach attempts on already-attached threads.
Unlike TCB_CLONE_THREAD, TCB_ATTACH_DONE bit is used only temporarily,
and only in this function. We clear it on every tcb before we return.
(detach): Use tkill instead of tgkill.
(trace): Set ptrace options on new tracees unconditionally,
not only when tcp->parent == NULL.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
rocess.c
trace.c
833fb13cef3f1f05b71361b5002aa3c2faad9615 17-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Remove TCB_SUSPENDED constant and related code.

Since we no longer suspend waitpid'ing tracees, we have only one case when
we suspend tracee: when we pick up a new tracee created by clone/fork/vfork.

Background: on some other OSes, attach to child is done this way:
get fork's result (pid), loop ptrace(PTRACE_ATTACH) until you hook up
new process/thread. This is ugly and not safe, but what matters for us
is that it doesn't require suspending. Suspending is required
on Linux only, because on Linux attach to child is done differently.

On Linux, we use two methods of catching new tracee:
adding CLONE_THREAD bit to syscall (if needed, we change
[v]fork into clone before that), or using ptrace options.
In both cases, it may be so that new tracee appears before one which
created it returns from syscall. In this case, current code
suspends new tracee until its creator returns. Only then
strace can determine who is its parent (it needs child's pid for this,
which is visible in parent's [v]fork/clone result).
This is inherently racy. For example, what if SIGKILL kills
creator after it succeeded creating child, but before it returns?
Looks like we will have child suspended forever.

But after previous commit, we DO NOT NEED parent<->child link for anything.
Therefore we do not need suspending too. Bingo!

This patch removes suspending code. Now new tracees will be continued
right away. Next patch will remove tcp->parent member.

* defs.h: Remove TCB_SUSPENDED constant
* process.c (handle_new_child): Delete this function.
(internal_fork): Do not call handle_new_child on syscall exit.
* strace.c (handle_ptrace_event): Delete this function.
(trace): Do not suspend new child; remove all handling
of now impossible TCB_SUSPENDED condition.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
rocess.c
trace.c
19cdada5b499b978ffd9c3367b4ef34ad6f8bf2b 17-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Do not detach when we think tracee is going to die.

Current code plays some ungodly tricks, trying to not detach
thread group leader until all threads exit.

Also, it detaches from a tracee when signal delivery is detected
which will cause tracee to exit.
This operation is racy (not to mention the determination
whether signal is set to SIG_DFL is a horrible hack):
after we determined that this signal is indeed fatal
but before we detach and let process die,
*other thread* may set a handler to this signal, and
we will leak the process, falsely displaying it as killed!

I need to look in the past to figure out why we even do it.
First guess is that it's a workaround for old kernel bugs:
kernel used to deliver exit notifications to the tracer,
not to real parent. These workarounds are ancient
(internal_exit is from 1995).

The patch deletes the hacks. We no longer need tcp->nclone_threads,
TCB_EXITING and TCB_GROUP_EXITING. We also lose a few rather
ugly functions.

I also added a new message: "+++ exited with EXITCODE +++"
which shows exact moment strace got exit notification.
It is analogous to existing "+++ killed by SIG +++" message.

* defs.h: Delete struct tcb::nclone_threads field,
TCB_EXITING and TCB_GROUP_EXITING constants,
declarations of sigishandled() and internal_exit().
* process.c (internal_exit): Delete this function.
(handle_new_child): Don't ++tcp->nclone_threads.
* signal.c (parse_sigset_t): Delete this function.
(sigishandled): Delete this function.
* strace.c (startup_attach): Don't tcbtab[tcbi]->nclone_threads++.
(droptcb): Don't delay dropping if tcp->nclone_threads > 0,
don't drop parent if its nclone_threads reached 0:
just drop (only) this tcb unconditionally.
(detach): don't drop parent.
(handle_group_exit): Delete this function.
(handle_ptrace_event): Instead of handle_group_exit, just drop tcb;
do not panic if we see WIFEXITED from an attached pid;
print "+++ exited with EXITCODE +++" for every WIFEXITED pid.
* syscall.c (internal_syscall): Do not treat sys_exit specially -
don't call internal_exit on it.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
rocess.c
ignal.c
trace.c
yscall.c
02a08fb6f08e21e464b629f20e1601f1176b5be9 11-Aug-2011 Sergei Trofimovich <slyfox@gentoo.org> Declare printrusage32() on Alpha

* defs.h [ALPHA] (printrusage32): New declaration.

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
efs.h
26d1b1eaa861ec33d2c671acc9c0ccb867042cb8 15-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Slight optimization and cleanup in trace()

* strace.c (trace): Do not recalculate "cflag ? &ru : NULL"
again and again. Do not clear errno unnecessarily.
Consistently check wait errors as pid < 0, not pid == -1.
Indent ifdefs for better readability.
Remove comments after endif if ifdef/endif block is really tiny.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
5bd67c86a93c658d258348e8f14af94fd45cbeb6 15-Aug-2011 Denys Vlasenko <dvlasenk@redhat.com> Fix compilation on 2.4.20 kernel based system

* block.c (block_ioctl): add ifdef/endif around BLKGETSIZE64 usage
* strace.c (trace): add ifdef/endif around WIFCONTINUED usage

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
lock.c
trace.c
1b0df40644ca23fe068d7f004dbc15b07ff85086 20-Jul-2011 Dmitry V. Levin <ldv@altlinux.org> Check for additional PTRACE_* constants

* configure.ac (AC_CHECK_DECLS): Add PTRACE_O_TRACESYSGOOD,
PTRACE_O_TRACEEXEC, PTRACE_O_TRACEEXIT, PTRACE_EVENT_EXEC,
PTRACE_EVENT_VFORK_DONE and PTRACE_EVENT_EXIT.
* defs.h [LINUX]: Define these PTRACE_* constants when they are not
provided by <sys/ptrace.h>.

Reported-by: Douglas Mencken <dougmencken@gmail.com>
Reported-by: Steve Bennett <steveb@workware.net.au>
onfigure.ac
efs.h
d166c55f0d293137bbe04bc79b03f51bd8a530e0 19-Jul-2011 Denys Vlasenko <dvlasenk@redhat.com> Remove superfluous backslash-continuation in configure.ac

* configure.ac: remove superfluous backslash continuation
in AC_CHECK_DECLS

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
onfigure.ac
c9fd2e5ef7d002e12e7cf2512506c84a9414b0fd 12-Jul-2011 Jeff Brown <jeffbrown@google.com> Remove the simulator target from all makefiles.
Bug: 5010576

Change-Id: Ib37f3130d8f190a541da27590b7c980f861c2bb9
ndroid.mk
9015cd9f9e33d4457bdb50dbafe1ce943a5f3a96 24-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Make IOCTL_WSTOP more readable

* defs.h: Make IOCTL_WSTOP more readable

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
13d22f1aa3a1beba79a8febb3770f75e646211a8 24-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Trivial cleanups

* strace.c (trace): Change ifdef LINUX to make a bit more sense,
remove wrong comment at its endif. Slightly optimize
"+++ killed by SIG +++" message for systems without WCOREDUMP macro.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
e18314ed0fc97ed9df74944d755a9be63075178c 24-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Remove redundant include <stdarg.h>

* strace.c: Remove redundant include <stdarg.h>

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
178de007d14f3ae890117b540def9cf14bcb61fe 24-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Clean up two old comments

* strace.c (startup_attach): Remove misplaced comment.
(trace) Remove incomplete part of a comment.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
ead73bd3493c517fde508aecf6bc097aeae1752c 24-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Make a few variables static.

* defs.h: Remove tcbtab declaration.
* strace.c: Make run_uid, run_gid, outf, tcbtab, progname
global variables static

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
trace.c
f95397afb8aadf017b2d3d42056c5929dbf16775 24-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Add debug output in initial attachment code

* strace.c (startup_attach): If -d, report pid and success/failure
of every attach attempt.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
1d5f12ecb88f0cd7aa889d1d7ebd47449f4691b7 24-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Better debug logging of allocations and waitpit results

* strace.c (alloc_tcb): Print number of allocated tcb's if -d.
(droptcb): Likewise.
(handle_ptrace_event): Remove PTRACE_EVENT_EXEC debug message.
(trace): Improve logging of waitpid: show WIFxxx, exitcode/signal,
ptrace event name, WCOREDUMP - all on one line.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
0b6c73c88014d0a50b7afb1fb4d9bc8acca363ea 23-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Optimize arrays of register indexes in syscall_enter

* syscall.c (syscall_enter) [BFIN]: Make register no array "static const".
[SH]: Make register no array "const", pre-multiply it by 4.
[SH64]: Make register no array "const".
[X86_64]: Make register no array "const", pre-multiply it by 8.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
f5d099c27047eaa94fa80c02d92b09d1c0d2c063 23-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Deindent syscall_enter by removing unnecessary braces. No code changes.

syscall_enter has many long (>80 columns) lines.
It is aggravated by the fact that it has a lot of {} blocks
which are not necessary (the code is the same without them).
This patch removes {}s and deindents affected lines.
While at it, it indents ifdefs so that nesting is easier to track,
and adds a few spaces in the expressions, such as
"tcp->u_nargs*sizeof..." -> "tcp->u_nargs * sizeof...".
There is no actual changes to the code here.

* syscall.c (syscall_enter): Remove unnecessary {} blocks.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
47247865eb108e5f5c9cb1f0c3f40fd97cdb0978 23-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Remove dead "ifndef CLONE_PTRACE" branch

process.c defines CLONE_PTRACE for Linux, so it can't be undefined.
Therefore ifndef CLONE_PTRACE code is dead (since at least 2004).
This patch removes it.

* process.c (handle_new_child): Remove ifdef CLONE_PTRACE/endif (but not
the code inside) and entire ifndef CLONE_PTRACE/endif block.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
rocess.c
91ecfac9b61691c0ba2d878c5398c6db52c7624e 23-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Add a comment about setbpt. No code changes.

* defs.h: Add a comment about setbpt().

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
c133bf0eb240de31856f82972cf7f6f1e512780b 23-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Untangle a particularly badly obfuscated bit of code. No logic changes.

* util.c (setbpt): Calculate new arg0 in more readable way.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
til.c
65d7c4d66c209dce592a5a2ec0d1f83eef6b2f28 23-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Remove TCB_FOLLOWFORK

TCB_FOLLOWFORK flag seems to be unnecessary, because we either follow
all [v]forks/clones or don't follow any, therefore global variable
followfork is an already existing indicator of what we want to do.
This patch drops all setting/clearing of TCB_FOLLOWFORK bit,
and replaces checks for this bit by checks of followfork value.
In internal_fork, check is moved to in front of if(), since
the check is needed on both "entering" and "exiting" branch.

* defs.h: Remove TCB_FOLLOWFORK define.
* process.c (internal_fork): Do not set/clear TCB_FOLLOWFORK,
test followfork instead of tcp->flags & TCB_FOLLOWFORK.
(handle_new_child): Likewise.
* strace.c (startup_attach): Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
rocess.c
trace.c
1c706b38097183a17d35dc05aade7f8d439d104d 23-Jun-2011 Dmitry V. Levin <ldv@altlinux.org> * system.c (sys_capget, sys_capset): Fix pointer arithmetics
ystem.c
4f12af24e4c1d4e44b84ba6d5e72e6d8b6490e35 23-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Make initial tcb allocation more readable. No logic changes.

* strace.c (main): Make initial tcb allocation more readable.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
b0bafbb5d106d7dcaebbf76c97fc8e1daaa2e718 23-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Do not allocate tiny cap_user_header/data structures, place them on stack.

This allows us to avoid having code to malloc them, and code to check
for malloc failure. Resulting code decrease:
text data bss dec hex filename
10175 0 16 10191 27cf system.o.old
9797 0 0 9797 2645 system.o

* system.c (sys_capget): Put cap_user_header_t and cap_user_data_t
on stack, rather than allocating them in heap. These structures
are very small (a few integer fields), stack is a better place
for them.
(sys_capset): Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
ystem.c
cb2ad00652e746b370703b5470932b7612308b9c 23-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Use [p]error_msg[_and_die] where appropriate. No logic changes.

Resulting size changes:
text data bss dec hex filename
17445 16 8572 26033 65b1 strace.o.old
16850 16 8572 25438 635e strace.o

* strace.c: Replace fprintf[+cleanup]+exit with [p]error_msg_and_die,
fprintf("progname: ...") with [p]error_msg where appropriate.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
7b609d5ba0852e6c56ba311350ebd4412361777b 22-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Whitespace cleanups. No code changes.

* count.c: Place opening curly brace after if (),
not on the next line. Almost all strace code alredy
uses this style.
* desc.c: Likewise.
* file.c: Likewise.
* net.c: Likewise.
* pathtrace.c: Likewise.
* process.c: Likewise.
* quota.c: Likewise.
* signal.c: Likewise.
* strace.c: Likewise.
* syscall.c: Likewise.
* time.c: Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
ount.c
esc.c
ile.c
et.c
athtrace.c
rocess.c
uota.c
ignal.c
trace.c
yscall.c
ime.c
3d5ed41252ab8c0bb9f410058c61e95ba91caf90 22-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Make strace_fopen abort on error

Error from strace_fopen in main results in call to exit(1).
Error from strace_fopen in newoutf is propagated to newoutf
callers: startup_attach (where it results in exit(1))
and alloc_tcb (where error is ignored). In second case,
the behavior doesn't seem to be right: it means with -ff
on open error for new LOGFILE.PID the output will continue
to go into *the same file as the previous process* - which
would be confusing. Moreover, on droptcb outf may be closed
and the output of other, still running process outputting
to the same outf will be lost. I don't think this is sane.
IOW: in all cases, error in strace_fopen should be fatal.

* strace.c (strace_fopen): Abort on error instead of returning NULL.
(newoutf): Change return type to void.
(startup_attach): Remove error check on newoutf return value.
(main): Remove error check on strace_fopen return value.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
1f532ab27db945c33818ba5298fdd78c52d229ea 22-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Make set_cloexec_flag abort on error

set_cloexec_flag() may fail only if we pass it a bad fd,
such as -1 or non-opened one. If we do, we have a bug
in the caller. It makes no sense to try to continue
running when we detect such a blatant bug in our own code.

* strace (set_cloexec_flag): Abort instead of returning error
indicator. Change function to return void.
(strace_fopen): Remove error check on set_cloexec_flag return value.
(proc_open): Likewise.
(proc_poll_open): Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
7dd23384f77e9917bd3173c673f318c5d5b485ac 22-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Make strace_popen abort on error

It makes no sense to postpone abort on strace_popen error
unti it returns. Moreover, out-of-memory error was exiting
without any message.
While at it, use 0 as "none" for popen_pid, as optimization.

* strace: Initialize popen_pid to 0 - this puts it in bss.
(trace): Reset popen_pid to 0 instead of -1.
(strace_popen): Never return NULL as error indicator,
abort with good error message instead.
(main): Remove NULL check of strace_popen result.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
2b60c35b33cf22a88405c60db1e620880d05a7d4 22-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Delete fork_tcb()

Get rid of fork_tcb() function. It used to do what the comment
above it says, but now it doesn't do much:
it only sets tcp->flags |= TCB_FOLLOWFORK and maybe calls
expand_tcbtab(). The second operation is not necessary, since
alloc_tcp() will do it itself when needed.
This patch deletes fork_tcb(), open-coding tcp->flags |= TCB_FOLLOWFORK
where it was formerly called. It also makes nprocs, tcbtabsize and
expand_tcbtab() static. (While at it, I nuked redundant
extern char **environ declaration: strace.c had *two* of them...)

* defs.h: Remove declarations of nprocs, tcbtabsize and
expand_tcbtab.
* process.c (fork_tcb): Remove this function.
(internal_fork): Open-code fork_tcb.
(handle_new_child): Likewise.
* strace.c: Remove redundant "extern char **environ". Declare
nprocs and tcbtabsize static.
(expand_tcbtab): Make it static.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
rocess.c
trace.c
18da27367534217ac52a425413ae3f8b4b9d8ad2 22-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Simplify expand_tcbtab and alloc_tcb

Get rid of a few intermediate variables, simplifies a few expressions,
and uses error_msg_and_die instead of more verbose
fprintf+cleanup+exit sequence.
In alloc_tcp, I use memset to clear entire new tcp.
This not only saves a few bytes of code, but lowers the chances
of future bugs where some data "leaks out" into new tcb's
from old ones because we forgot to re-initialize it.

* strace.c (expand_tcbtab): Simplify this function. No logic changes.
(alloc_tcb): Likewise.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
e7c9024acf94101ceb17006102629f14e0f25553 22-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Trivial fixes

* process.c (internal_fork): Remove conditionals which make no difference
(we return 0 on both branches of these ifs).
* util.c: Fix indentation of an ifdef.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
rocess.c
til.c
081e72f41af2ca987882c03efc3960c1f87ecaa6 21-Jun-2011 Dmitry V. Levin <ldv@altlinux.org> Fix build when libaio-devel is not available

* desc.c: Do not compile code that uses struct iocb unless
HAVE_LIBAIO_H is set.

Reported-by: Denys Vlasenko <dvlasenk@redhat.com>
esc.c
d1d182209ea010f52bcf903739e7dbe0385e0021 09-Jun-2011 Dmitry V. Levin <ldv@altlinux.org> tests: finish ptrace_setoptions_* merge

* tests/Makefile.am (TESTS): Merge ptrace_setoptions_*.
* tests/ptrace_setoptions: Check for Linux kernel > 2.6.
ests/Makefile.am
ests/ptrace_setoptions
b56d6d3bfeeb8889ea18105033acfba6f3fcbf51 21-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Remove write-only nchildren member from struct tcb

* defs.h: Remove nchildren member from struct tcb.
* process.c (handle_new_child): Remove inc/decrements of tcp->nchildren.
(internal_fork): Likewise.
* strace.c (startup_attach): Likewise.
(droptcb): Likewise.
(alloc_tcb): Remove initialization of tcp->nchildren.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
rocess.c
trace.c
8f0f14b6da8d4482ad53d9bba9f909651ce55d40 21-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Fix tests/ptrace_setoptions_* to match last fix in ptrace options code

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
ests/ptrace_setoptions
ests/ptrace_setoptions_followfork
ests/ptrace_setoptions_for_all
f0a5f6d7107ade2ea9c425330655e97d11d17d79 21-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Remove write-only nzombies member from struct tcb

* defs.h: Remove nzombies member from struct tcb.
* strace.c (droptcb): Remove "tcp->parent->nzombies++".
(alloc_tcb): Remove "tcp->nzombies = 0".

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
trace.c
f44cce48bbbd573cc5ae801f69f857433160b03a 21-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Fix regression introduced by "Properly handle real SIGTRAPs" change

Commit 3454e4b463e6c22c7ea8c5461ef5a077f4650a54
introduced a bug: sometimes, TRACECLONE/TRACE[V]FORK opts were not set.
The check (tcp->parent == NULL) in old code was meant to check
"if we are not a child created by auto-attach" - in this case,
options need to be set on the child; otherwise they are inherited
and do not need to be set.
I misunderstood the check and if tcp->parent is not NULL, I was
setting only ptrace_setoptions_for_all bits.
This change fixes the problem. Since the fixed logic makes it
unnecessary to keep two sets of options in separate variables,
I merge them back into one variable, ptrace_setoptions.

* defs.h: Merge ptrace_setoptions_followfork and ptrace_setoptions_for_all
into one variable, ptrace_setoptions.
* strace.c: Likewise.
(test_ptrace_setoptions_followfork): Use ptrace_setoptions variable.
(test_ptrace_setoptions_for_all): Likewise.
(main): Likewise.
* process.c (internal_fork): Likewise.
(internal_exec): Likewise.
* strace.c (trace): Fix the bug where different options were set
depending on "tcp->parent == NULL" condition. Add a comment
which makes it more clear why this condition is checked.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
rocess.c
trace.c
0df9ed47af7a9385a2fbe6ba688ed4fc24ab0c00 18-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Do not suspend waitpid.

strace used to suspend waitpid until there is a child
for waitpid'ing process to collect status from.
Apparently, it was done because in some very old kernels
(circa 2002 or even earlier) there were ptrace bugs which
were making waitpid in real parent to not see children.
This kernel bug is fixed long ago. This change removes the workaround.
test/wait_must_be_interruptible.c is a test program which
illustrates why without this change strace changes
programs's behavior.

* defs.h: Delete waitpid and nclone_waiting members from from struct tcb.
Remove declaration of internal_wait().
* process.c (internal_wait): Remove this function.
* strace.c (alloc_tcb): Do not set tcp->nclone_waiting.
(resume): Remove this function.
(resume_from_tcp): Remove this function.
(detach): Do not call resume_from_tcp().
(handle_group_exit): Do not call resume_from_tcp().
* syscall.c (internal_syscall): Do not call internal_wait().

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
efs.h
rocess.c
trace.c
yscall.c
dfcd741a5ad170f7fc4ccc0391d3dc92e2d5e3ab 14-Jun-2011 Andi Kleen <ak@linux.intel.com> Enhance io_submit() decoding

strace didn't decode important fields in the iocb passed to io_submit.
This patch changes the code to dump them all. Also it prefixes the fields
with names to make it easier to read.

* desc.c (iocb_cmd_lookup, print_common_flags): New functions.
(sys_io_submit): New iocb decoder.
esc.c
8884968a46f5413345de7b0085388a367eb9caae 14-Jun-2011 Dmitry V. Levin <ldv@altlinux.org> Add argument to tprint_iov() specifying whether to decode each iovec

* defs.h (tprint_iov): Add decode_iov argument.
* io.c (tprint_iov): Implement new decode_iov argument.
(sys_readv, sys_writev, sys_sendfile, sys_preadv, sys_pwritev): Update
tprint_iov calls.
* net.c (do_msghdr): Likewise.
efs.h
o.c
et.c
fcda7a5f4fcfbedb5493bbfc1b37e53c6b3a575c 13-Jun-2011 Dmitry V. Levin <ldv@altlinux.org> Introduce ARRAY_SIZE() macro

* defs.h (ARRAY_SIZE): New macro.
* ioctl.c: Use it.
* pathtrace.c (pathmatch, storepath): Likewise.
* process.c (printpriv): Likewise.
* signal.c: Likewise.
* syscall.c: Likewise.
efs.h
octl.c
athtrace.c
rocess.c
ignal.c
yscall.c
732f39656d933c6112a0586bbefcf8288d57bda4 13-Jun-2011 Andi Kleen <ak@linux.intel.com> Fix decoding of timer id returned by timer_create

* time.c (sys_timer_create): The kernel returns a integer, not a
pointer for the timer id in the memory pointed to by timer_id.
ime.c
2ea2ab05905e66e9d84a0997c0ca3cde5f78d43f 09-Jun-2011 Dmitry V. Levin <ldv@altlinux.org> Add test for PTRACE_O_TRACESYSGOOD

* tests/ptrace_setoptions_for_all: New file.
* tests/Makefile.am (TESTS): Add ptrace_setoptions_for_all.
ests/Makefile.am
ests/ptrace_setoptions_for_all
30ecdcc12191f9b424ce50ae3ed401d9dd8cfc02 09-Jun-2011 Dmitry V. Levin <ldv@altlinux.org> tests: update test for linux kernel version

* tests/ptrace_setoptions_followfork: Check for Linux kernel > 2.6.
ests/ptrace_setoptions_followfork
e254e53d8c8769765abdb8d5e1f1ce8b65d1b313 09-Jun-2011 Dmitry V. Levin <ldv@altlinux.org> Update ptrace_setoptions test

The test have to be adjusted after commit v4.6-5-g3454e4b.

* ptrace_setoptions: Update grep pattern, rename to
ptrace_setoptions_followfork.
* tests/Makefile.am (TESTS): Rename ptrace_setoptions to
ptrace_setoptions_followfork.
ests/Makefile.am
ests/ptrace_setoptions
ests/ptrace_setoptions_followfork
44d053218ba658c901c3ab7dd905ab31ba417286 09-Jun-2011 Dmitry V. Levin <ldv@altlinux.org> * strace.c (verror_msg): Rewrite without use of heap memory allocation
trace.c
3e90b2992913db31bcc5b1b6f1b3fa8c28c5dc0c 09-Jun-2011 Dmitry V. Levin <ldv@altlinux.org> Fix MIPS syscall entries

* linux/mips/syscallent.h: Remove duplicate entries for 4336, 4337,
and 4338 syscall numbers.

Reported-by: Denys Vlasenko <dvlasenk@redhat.com>
inux/mips/syscallent.h
f07367954c9b41bf87deba08e79e5bb4c3b72c55 09-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Don't display bogus parameter for sigreturn syscall

* linux/*/syscallent.h: For those arches which use sys_sigreturn,
not printargs, to show [rt_]sigreturn syscall, change number of arguments
from 1 to 0: sys_sigreturn function doesn't use syscall parameters.
(I guess kernel doesn't actually _have_ any parameters for this syscall,
at least on these architectures). Do the same change for I386 and x86-64
even though they use printargs: I looked at kernel code and syscall
definitely doesn't have any parameters on these arches.
(I hesitate to change 1 to 0 params for arches I don't know -
it is remotely possible some of them do have a parameter for this syscall).

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/x86_64/syscallent.h
56a52984ae5d629160074c4c02445bc069024d0c 09-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Optimize sigreturn handling

* signal.c (sys_sigreturn): move stack pointer variables,
and for SPARC and MIPS, stack pointer and sigmask reading code
into "if (entering) ..." block, because it is only needed
in this branch; load tcp->u_arg[1] into sigmask for display
_after_ we know for sure u_arg[1] does contain valid sigmask
(IOW: perform operation only when we know we will need the result)

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
ignal.c
4660fe610c2b3707b15b170728a981440e1b54d4 09-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Do not call umoven to fetch parameters if we have zero params

* syscall.c [I386] (syscall_enter): Do not call umoven
to fetch zero bytes. This is just an optimization.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
yscall.c
eccc48c63eeefd9ff4c0412845345d82800ab2fb 09-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> "Modernize" four old-style function parameter declarations

* signal.c (signame, long_to_sigset, printsigmask, printsignal):
Convert old-style C function definitions to a "modern" form.
This does not change any actual code.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
ignal.c
facd45b255c888c17f3bf994ef3514ff913209b5 09-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Fix sigreturn decoding on MIPS

The "return 0" line was accidentally deleted circa 2007,
which made sigreturn on MIPS always display "= 0" return
instead of more informative " = ? (mask now [MASK])".

* strace.c (sys_sigreturn): Add wrongly deleted "return 0" line

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
ignal.c
e62df004ce7a649c014fc0b5af058d56bc168920 08-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Print at least one space between SYSCALL(ARGS) and = RESULT if tracee is killed

We already do it in the normal case, but in rare code path where
tracee is gone (SIGKILLed?) sometimes we were printing this:
"SYSCALL(ARGS <unavailable>)= ? <unavailable>" - note jammed together ")=".
test/sigkill_rain.c can be used to verify the fix.

* strace.c (printleader): add a space after ")" in " <unavailable>)"

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
trace.c
7c57be862b238ced13503e17dcf3a1daaad3efcc 08-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Add fflush after printf in test/sigkill_rain.c

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
est/sigkill_rain.c
8158e7716c330d21f116ea6c6479f3d559c63f38 08-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Update test/* directory, it seem to be a bit bit-rotted

Added README; modified sigkill_rain.c to be more understandable,
made clone.c compile; added wait_must_be_interruptible.c test;
updated Makefile and .gitignore.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
est/.gitignore
est/Makefile
est/README
est/clone.c
est/sigkill_rain.c
est/wait_must_be_interruptible.c
b63256e69bf3f1a74aadb0e14556490bc8f4ef95 07-Jun-2011 Denys Vlasenko <dvlasenk@redhat.com> Whitespace cleanups. no code changes.

* bjm.c: Fix tabulation (such as extra spaces before tabs),
convert punctuation where it deviates from prevalent form
elsewhere in strace code, convert sizeof and offsetof where
it deviates from from prevalent form, remove space between
function/macro/array names and (parameters) or [index],
add space between "if" and (condition), correct non-standard
or wrong indentaion.
* defs.h: Likewise
* desc.c: Likewise
* file.c: Likewise
* ipc.c: Likewise
* linux/arm/syscallent.h: Likewise
* linux/avr32/syscallent.h: Likewise
* linux/hppa/syscallent.h: Likewise
* linux/i386/syscallent.h: Likewise
* linux/ioctlsort.c: Likewise
* linux/m68k/syscallent.h: Likewise
* linux/microblaze/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/tile/syscallent.h: Likewise
* linux/x86_64/syscallent.h: Likewise
* mem.c: Likewise
* net.c: Likewise
* pathtrace.c: Likewise
* process.c: Likewise
* signal.c: Likewise
* sock.c: Likewise
* strace.c: Likewise
* stream.c: Likewise
* sunos4/syscall.h: Likewise
* sunos4/syscallent.h: Likewise
* svr4/syscall.h: Likewise
* svr4/syscallent.h: Likewise
* syscall.c: Likewise
* system.c: Likewise
* test/childthread.c: Likewise
* test/leaderkill.c: Likewise
* test/skodic.c: Likewise
* time.c: Likewise
* util.c: Likewise

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
jm.c
efs.h
esc.c
ile.c
pc.c
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ioctlsort.c
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/tile/syscallent.h
inux/x86_64/syscallent.h
em.c
et.c
athtrace.c
rocess.c
ignal.c
ock.c
trace.c
tream.c
unos4/syscall.h
unos4/syscallent.h
vr4/syscall.h
vr4/syscallent.h
yscall.c
ystem.c
est/childthread.c
est/leaderkill.c
est/skodic.c
ime.c
til.c
7a5b08fb26dcfb343e2c89567bf139af252a95fd 28-May-2011 Dmitry V. Levin <ldv@altlinux.org> ARM EABI: fix 64-bit syscall's arguments decoding

ARM OABI and ARM EABI have different function parameters passing rules.
With EABI, 64-bit function parameters passed in registers are aligned to
an even-numbered register instead of using the next available pair, see
http://lkml.org/lkml/2006/1/12/175
This rule also applies to syscall's arguments.

* linux/arm/syscallent.h (pread, pwrite, truncate64, ftruncate64,
readahead, preadv, pwritev): Fix number of arguments.
* util.c (printllval): Align 64bit argument to 64bit boundary on
__ARM_EABI__.

Reported-by: Damir Shayhutdinov <damir@altlinux.org>
Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
inux/arm/syscallent.h
til.c
3087dd678088754dddc0c801008e22ca2b7b9a37 12-May-2011 Damir Shayhutdinov <damir@altlinux.ru> Linux: implement decoding of preadv and pwritev syscalls

* io.c [LINUX && HAVE_SYS_UIO_H] (sys_preadv, sys_pwritev): New functions.
* linux/syscall.h (sys_preadv, sys_pwritev): Declare them.
* linux/*/syscallent.h: Use them.

Signed-off-by: Damir Shayhutdinov <damir@altlinux.ru>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
o.c
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/syscall.h
inux/x86_64/syscallent.h
1201426dd43f5b4e12dfe520e2a9c5027d33dc11 30-May-2011 Denys Vlasenko <dvlasenk@redhat.com> "Modernize" all old-style function parameter declarations

* bjm.c: Convert all remaining old-style C function definitions
to a "modern" form. This does not change any actual code.
* io.c: Likewise
* ioctl.c: Likewise
* net.c: Likewise
* proc.c: Likewise
* process.c: Likewise
* signal.c: Likewise
* sock.c: Likewise
* strace.c: Likewise
* stream.c: Likewise
* syscall.c: Likewise
* system.c: Likewise
* time.c: Likewise
* util.c: Likewise

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
jm.c
o.c
octl.c
pc.c
em.c
et.c
roc.c
rocess.c
ignal.c
ock.c
trace.c
tream.c
yscall.c
ystem.c
ime.c
til.c
75422766d51cf96ea081977c9d0b26b2ba1a8ade 27-May-2011 Denys Vlasenko <dvlasenk@redhat.com> Cleanups on top of "handle SIGTRAP properly" change,
based on Dmitry's comments.

* defs.h ([p]error_msg[_and_die]): Declare new functions.
* strace.c (SYSCALLTRAP): Rename to syscall_trap_sig.
([p]error_msg[_and_die]): Define new functions.
(strace_tracer_pid): New variable, it controls which pid will
do cleanup on exit via [p]error_msg_and_die.
(main): Set strace_tracer_pid to our initial pid.
(startup_attach): Change strace_tracer_pid if we are in -D mode.
(test_ptrace_setoptions_for_all): Minor changes to logic,
such as better diagnostic messages.
efs.h
trace.c
35aba6a8dd87a8d1fd69110d80f98224d1f5b18d 25-May-2011 Denys Vlasenko <dvlasenk@redhat.com> Identifier "errno" may be a macro, it's unsafe to use it

* strace.c (strerror): Rename parameter errno to err_no
trace.c
f8bc0655a0db6fd3031384a88cdc707285029ca5 24-May-2011 Denys Vlasenko <dvlasenk@redhat.com> Don't perform TCB_WAITEXECVE wait if not needed.

* defs.h (ptrace_setoptions_for_all): Expose this variable.
* strace.c (ptrace_setoptions_for_all): Remove "static".
* process.c (internal_exec): Don't set TCB_WAITEXECVE bit
if we know that post-execve SIGTRAP is not going to happen.
efs.h
rocess.c
trace.c
3454e4b463e6c22c7ea8c5461ef5a077f4650a54 23-May-2011 Denys Vlasenko <dvlasenk@redhat.com> Properly handle real SIGTRAPs.

* defs.h (ptrace_setoptions): Variable renamed to ptrace_setoptions_followfork.
* process.c (internal_fork): Ditto.
* strace.c (ptrace_setoptions_for_all): New variable.
(SYSCALLTRAP): New variable.
(error_msg_and_die): New function.
(test_ptrace_setoptions_for_all): New function.
(main): Call test_ptrace_setoptions_for_all() at init.
(handle_ptrace_event): Handle PTRACE_EVENT_EXEC (by ignoring it).
(trace): Check events and set ptrace options without -f too.
Check WSTOPSIG(status) not for SIGTRAP, but for SYSCALLTRAP.
efs.h
rocess.c
trace.c
1cd5371d503c3e56084faf9732b17133d94df3ef 21-Apr-2011 Mike Frysinger <vapier@gentoo.org> Blackfin: update syscall list

Signed-off-by: Mike Frysinger <vapier@gentoo.org>

* linux/bfin/syscallent.h: Add name_to_handle_at, open_by_handle_at,
clock_adjtime, and syncfs syscalls.
inux/bfin/syscallent.h
96e1f48087f111c7ede219cde94689ff96e4da11 21-Apr-2011 Mike Frysinger <vapier@gentoo.org> linux: add new EHWPOISON errno

Signed-off-by: Mike Frysinger <vapier@gentoo.org>

* linux/errnoent.h: Change ERRNO_133 to EHWPOISON.
inux/errnoent.h
8a08277d13d0378c2ff3ce851534c3bf7e31defa 07-Apr-2011 Grant Edwards <grant.b.edwards@gmail.com> Add ability to print file descriptor paths and filter by those paths

* pathtrace.c: New file, implements matching syscall arguments to
user-specified file paths.
* Makefile.am (strace_SOURCES): Add pathtrace.c.
* defs.h (TCB_FILTERED, filtered): New defines.
(getfdpath, pathtrace_select, pathtrace_match, show_fd_path,
tracing_paths): New declarations.
* strace.c (show_fd_path, tracing_paths): New global variables.
(usage, main): Implement handling of -y and -P options.
* strace.1: Add descriptions of -y and -P options.
* syscall.c (trace_syscall_entering): Add path matching logic to the
print/noprint decision and set the TCB_FILTERED bit appropriately.
(trace_syscall_exiting): Use filtered() macro that checks the
TCB_FILTERED bit to determine print/noprint status.
* util.c (printfd): Use getfdpath().
akefile.am
efs.h
athtrace.c
trace.1
trace.c
yscall.c
til.c
4cee0af77b0275740f7f97ae5d778f60d5ac7f88 07-Apr-2011 Dmitry V. Levin <ldv@altlinux.org> Fix BLKTRACESTOP definition

* block.c: Fix typo in the check for BLKTRACESTOP.
Reported by Gabor Z. Papp.
lock.c
03aefdadb20f3bdd05bf644dc2ce1e85758a5aee 15-Mar-2011 Dmitry V. Levin <ldv@altlinux.org> Ensure that PTRACE_GETSIGINFO et al are always defined on Linux

* configure.ac (AC_CHECK_DECLS): Add PTRACE_* constants.
* defs.h [LINUX]: Define those PTRACE_* constants that are not provided
by <sys/ptrace.h>.
onfigure.ac
efs.h
4e4fcafe9edc87b2f99193287267783ddc856883 15-Mar-2011 Dmitry V. Levin <ldv@altlinux.org> * CREDITS.in: Fix typo.
REDITS.in
bb668a57b41f717e7b2c8664997c979de1079c23 14-Mar-2011 Dmitry V. Levin <ldv@altlinux.org> Update PTRACE_* constants

* process.c (ptrace_cmds): Add PTRACE_GETREGSET and PTRACE_SETREGSET.
rocess.c
50e69cbe7491c2b7ff8b7a53442602bab17020b6 21-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Prepare for 4.6 release

* NEWS: Update for 4.6 release.
* configure.ac: Version 4.6.
* debian/changelog: 4.6-1.
* strace.spec: 4.6-1.
EWS
onfigure.ac
ebian/changelog
trace.spec
9004e12a91a11aab22babd431d7c2dd8ef312141 21-Feb-2011 Mike Frysinger <vapier@gentoo.org> linux/ioctlent: unify them all

This unifies all the ioctlent.h's in the linux subdir while still
allowing each arch to maintain its own minor list.

The basic method is:
- each arch has linux/<arch>/ioctlent.h.in which defines only the
arch-specific ioctls;
- linux/ioctlent.h.in which defines only the common ioctls;
- at build time, these two headers are combined and sorted to produce
the linux/ioctlent.h file.

This also requires a little tweaking of the include files since the
common ioctlent.h is a built file.

* linux/ioctlent.h: Split into linux/ioctlent.h.in and
linux/i386/ioctlent.h.in, remove asm entries from the former, remove
non-asm entries from the latter.
* linux/alpha/ioctlent.h: Rename to linux/alpha/ioctlent.h.in, remove
non-asm entries.
* linux/bfin/ioctlent.h: Rename to linux/bfin/ioctlent.h.in, remove
non-asm entries.
* linux/hppa/ioctlent.h: Rename to linux/hppa/ioctlent.h.in, remove
non-asm entries.
* linux/ia64/ioctlent.h: Rename to linux/ia64/ioctlent.h.in, remove
non-asm entries.
* linux/mips/ioctlent.h: Rename to linux/mips/ioctlent.h.in, remove
non-asm entries.
* linux/powerpc/ioctlent.h: Rename to linux/powerpc/ioctlent.h.in,
remove non-asm entries.
* linux/s390/ioctlent.h: Rename to linux/s390/ioctlent.h.in, remove
non-asm entries.
* linux/sh/ioctlent.h: Rename to linux/sh/ioctlent.h.in, remove
non-asm entries.
* linux/sparc/ioctlent.h: Rename to linux/sparc/ioctlent.h.in, remove
non-asm entries.
* linux/arm/ioctlent.h.in: New file.
* linux/avr32/ioctlent.h.in: Likewise.
* linux/i386/ioctlent.h.in: Likewise.
* linux/m68k/ioctlent.h.in: Likewise.
* linux/microblaze/ioctlent.h.in: Likewise.
* linux/tile/ioctlent.h.in: Likewise.
* linux/x86_64/ioctlent.h.in: Likewise.
* linux/s390x/ioctlent.h.in: Include ioctlent.h.in instead of
ioctlent.h.
* linux/sh64/ioctlent.h.in: Likewise.
* linux/sparc64/ioctlent.h.in: Likewise.
* linux/arm/ioctlent1.h: Update ioctlent.h include.
* linux/powerpc/ioctlent1.h: Likewise.
* linux/sparc/ioctlent1.h: Likewise.
* linux/sparc64/ioctlent1.h: Likewise.
* linux/x86_64/ioctlent1.h: Likewise.
* Makefile.am (AM_CPPFLAGS): Add -I$(builddir)/$(OS).
(EXTRA_DIST): Update.
[MAINTAINER_MODE && LINUX]: Convert from ioctlent_h to ioctlent_h_in.
[LINUX]: Add $(builddir)/$(OS)/ioctlent.h generation rules.
* .gitignore: Add linux/ioctlent.h.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
gitignore
akefile.am
inux/alpha/ioctlent.h
inux/alpha/ioctlent.h.in
inux/arm/ioctlent.h.in
inux/arm/ioctlent1.h
inux/avr32/ioctlent.h.in
inux/bfin/ioctlent.h
inux/bfin/ioctlent.h.in
inux/hppa/ioctlent.h
inux/hppa/ioctlent.h.in
inux/i386/ioctlent.h.in
inux/ia64/ioctlent.h
inux/ia64/ioctlent.h.in
inux/ioctlent.h
inux/ioctlent.h.in
inux/m68k/ioctlent.h.in
inux/microblaze/ioctlent.h.in
inux/mips/ioctlent.h
inux/mips/ioctlent.h.in
inux/powerpc/ioctlent.h
inux/powerpc/ioctlent.h.in
inux/powerpc/ioctlent1.h
inux/s390/ioctlent.h
inux/s390/ioctlent.h.in
inux/s390x/ioctlent.h
inux/s390x/ioctlent.h.in
inux/sh/ioctlent.h
inux/sh/ioctlent.h.in
inux/sh64/ioctlent.h.in
inux/sparc/ioctlent.h
inux/sparc/ioctlent.h.in
inux/sparc/ioctlent1.h
inux/sparc64/ioctlent.h
inux/sparc64/ioctlent.h.in
inux/sparc64/ioctlent1.h
inux/tile/ioctlent.h.in
inux/x86_64/ioctlent.h.in
inux/x86_64/ioctlent1.h
6b7a261ff81fdbe84769cb59852fa43cabc77e8f 10-Mar-2011 Dmitry V. Levin <ldv@altlinux.org> Show more details about signals received by traced processess

* strace.c [!USE_PROCFS] (trace): Differentiate output format depending
on PTRACE_GETSIGINFO success or failure. In the former case, use
printsiginfo() to show more details about received signal.
trace.c
c15dfc796150d09bb74bebfbb85bebf142766b6c 10-Mar-2011 Dmitry V. Levin <ldv@altlinux.org> Get rid of PT_GETSIGINFO

* strace.c [!USE_PROCFS] (trace): Assume that PTRACE_GETSIGINFO is
available. Replace PT_GETSIGINFO with PTRACE_GETSIGINFO. Use
PTRACE_GETSIGINFO for all signals.
trace.c
b41e1c90f0c0791ccf524323fffc96c04646c4d4 11-Mar-2011 Dmitry V. Levin <ldv@altlinux.org> Enhance decoding of kernel-generated signals

* signal.c (printsiginfo) [LINUX]: Do not print uninteresting
zero-initialized fields.
ignal.c
6d9e8e82f8dc1e3f5fa6082020172f0af37219e6 10-Mar-2011 Dmitry V. Levin <ldv@altlinux.org> Fix decoding of user-generated signals

* signal.c [LINUX] (SI_FROMUSER): Define.
[LINUX || SVR4] (printsiginfo) [SI_FROMUSER]: Enhance decoding.
ignal.c
7d4bff1851daba91968f19ebfea55251161b01bd 10-Mar-2011 Dmitry V. Levin <ldv@altlinux.org> Recognize SI_KERNEL and SI_ASYNCNL

* signal.c [LINUX] (SI_KERNEL, SI_ASYNCNL): Define.
[LINUX || SVR4] (siginfo_codes): Add entries for SI_KERNEL and
SI_ASYNCNL, reorder entries.
ignal.c
6c0e2fc5522bb8e31b58cb3e318f88af9313e52f 04-Mar-2011 Sebastian Pipping <sebastian@pipping.org> Take all git branches into account for generation of CREDITS file

* Makefile.am: Make CREDITS target depend on all git branches.
akefile.am
3138213bc9a827a372ad9f8009ebcc5d8797ce2d 04-Mar-2011 Dmitry V. Levin <ldv@altlinux.org> Fix decoding of file descriptors

* defs.h (printfd): New function prototype.
* util.c (printfd): New function.
* file.c (print_dirfd): Update prototype to use printfd().
(sys_openat, sys_faccessat, sys_newfstatat, sys_mkdirat, sys_linkat,
sys_unlinkat, sys_readlinkat, sys_renameat, sys_fchownat, sys_fchmodat,
sys_futimesat, sys_utimensat, sys_mknodat): Update use of print_dirfd().
(sys_lseek, sys_llseek, sys_readahead, sys_ftruncate, sys_ftruncate64,
sys_fstat, sys_fstat64, sys_oldfstat, sys_fstatfs, sys_fstatfs64,
sys_fchdir, sys_fchroot, sys_linkat, sys_fchown, sys_fchmod, sys_fsync,
sys_readdir, sys_getdents, sys_getdirentries, sys_fsetxattr,
sys_fgetxattr, sys_flistxattr, sys_fremovexattr, sys_fadvise64,
sys_fadvise64_64, sys_inotify_add_watch, sys_inotify_rm_watch,
sys_fallocate): Use printfd() for decoding of file descriptors.
* desc.c (sys_fcntl, sys_flock, sys_close, sys_dup, do_dup2,
decode_select, sys_epoll_ctl, epoll_wait_common): Use printfd() for
decoding of file descriptors.
* io.c (sys_read, sys_write, sys_readv, sys_writev, sys_pread,
sys_pwrite, sys_sendfile, sys_sendfile64, sys_pread64, sys_pwrite64,
sys_ioctl): Likewise.
* mem.c (print_mmap, sys_mmap64): Likewise.
* signal.c (do_signalfd): Likewise.
* stream.c (decode_poll): Likewise.
* time.c (sys_timerfd_settime, sys_timerfd_gettime): Likewise.
Based on patch from Grant Edwards <grant.b.edwards@gmail.com>.
efs.h
esc.c
ile.c
o.c
em.c
ignal.c
tream.c
ime.c
til.c
9cd385010ec1e0d22be70ff5163db194f1f22735 03-Mar-2011 Sebastian Pipping <sebastian@pipping.org> Print shutdown(2) modes as SHUT_* constants

* net.c (shutdown_modes): New xlat structure.
(sys_shutdown): Use shutdown_modes to decode 2nd syscall argument.
et.c
1e1405a4ac1863d5c1447ff278de4a5f522b300c 03-Mar-2011 Sebastian Pipping <sebastian@pipping.org> Fix decoding of inotify_init1() flags

* file.c (inotify_init_flags): New xlat structure.
(sys_inotify_init1): Use it instead of open_mode_flags.
ile.c
d475c06134717745987e4c1859e4cdb8d16e2001 03-Mar-2011 Dmitry V. Levin <ldv@altlinux.org> Fix struct xlat initialization bugs

* file.c (inotify_modes): Terminate with NULL entry.
* net.c (sock_type_flags): Make this array static.
(socketlayers): Add a comment that this array should remain not
NULL-terminated.
ile.c
et.c
f9a84ef39fdbfe9636837c99beff52d62a7b8127 03-Mar-2011 Dmitry V. Levin <ldv@altlinux.org> tests: avoid SIGPIPE

* tests/ptrace_setoptions: Replace "grep -q" with "grep > /dev/null".
The former may result to strace being killed by SIGPIPE, which in
certain configuratons may lead to generation of a core file.
Suggested by Mike Frysinger.
ests/ptrace_setoptions
e689e04c102d02514af429925ef3b00caaacd058 01-Mar-2011 Mike Frysinger <vapier@gentoo.org> tests: do not make missing /usr/bin/time a failure

* tests/init.sh (framework_skip_): New function.
(check_prog): Use it instead of framework_failure_.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
ests/init.sh
525a39a01a10f98e5020220012aa803c0e6c7df0 27-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Generate an xz tar archive of the distribution

* configure.ac (AM_INIT_AUTOMAKE): Replace dist-bzip2 with dist-xz.
* Makefile.am: Update srpm target.
* make-dist: Update for dist-xz.
* strace.spec: Update Source tag.
* debian/watch: Update regexp.
* .gitignore: Add strace-*.tar.xz.
gitignore
akefile.am
onfigure.ac
ebian/watch
ake-dist
trace.spec
983e875c1c150ef73c39c27de80c430c7f2a46ea 27-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Use "make check" in debian/rules and strace.spec

* debian/control: Update Build-Depends.
* debian/rules: Run "make check".
* strace.spec: Update BuildRequires. Run "make check" in %check section.
ebian/control
ebian/rules
trace.spec
4e4b5adfab00af3969e4352da85c1f5553d280bc 27-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Implement two basic "strace -f" tests

* Makefile.am (SUBDIRS): Add tests.
* configure.ac (AC_CONFIG_FILES): Add tests/Makefile.
* tests/.gitignore: New file.
* tests/Makefile.am: Likewise.
* tests/init.sh: Likewise.
* tests/ptrace_setoptions: Likewise.
* tests/strace-f: Likewise.
akefile.am
onfigure.ac
ests/.gitignore
ests/Makefile.am
ests/init.sh
ests/ptrace_setoptions
ests/strace-f
6ae37bf0eb4c7911141cb25f3501e460ae4edadc 26-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> ppc, s390, sparc: regenerate ioctlent.h files

* linux/powerpc/ioctlent.h: Regenerated using Fedora 15 kernel headers.
* linux/s390/ioctlent.h: Likewise.
* linux/sparc/ioctlent.h: Likewise.
inux/powerpc/ioctlent.h
inux/s390/ioctlent.h
inux/sparc/ioctlent.h
ff5c42aae8530fd27f56f92427c0a9f6c3442e9c 26-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Remove redundant ioctlent.h files

* linux/s390x/ioctlent.h: Replace old contents with include of
s390/ioctlent.h file.
* linux/sparc64/ioctlent.h: Replace old contents with include of
sparc/ioctlent.h file.
inux/s390x/ioctlent.h
inux/sparc64/ioctlent.h
609b58ca49375d0f6793cb5f8e34259aad5ed227 26-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> ioctlsort: sync with ioctl_lookup()

* linux/ioctlsort.c (main): Use NR and TYPE bits only, to sync with
ioctl_lookup() which looks at these bits only.
inux/ioctlsort.c
a6ca968003ad621e3f2baadea34d262a9de14d4f 25-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Remove obsolete .cvsignore files

* test/.cvsignore: Rename to test/.gitignore.
* */.cvsignore, */*/.cvsignore: Removed.
ebian/.cvsignore
reebsd/.cvsignore
reebsd/i386/.cvsignore
inux/.cvsignore
inux/alpha/.cvsignore
inux/hppa/.cvsignore
inux/ia64/.cvsignore
inux/mips/.cvsignore
inux/powerpc/.cvsignore
inux/sparc/.cvsignore
vr4/.cvsignore
est/.cvsignore
est/.gitignore
796d3a8679b40234510dc0f5b9104c7f2e044175 25-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Ignore generated intermediate header files

* .gitignore: Add ioctls.h and ioctldefs.h.
gitignore
59138a2b0dc788f9390af33180f1447a86dfaa8c 24-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Generate much of the CREDITS file from git log

* CREDITS.in: New file, derived from CREDITS, without names of
those who are listed as git log 'Author:'s.
* CREDITS: Remove file.
* Makefile.am [MAINTAINER_MODE] (CREDITS): New rule.
* .gitignore: Add CREDITS.
* .mailmap: New file, required to map git author names and email
addresses to canonical/preferred form.
gitignore
mailmap
REDITS
REDITS.in
akefile.am
e9a06b7ad439467a3f502d9358f6b44c1e850f60 23-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> sparc: fix compilation warning

* file.c [!HAVE_LONG_LONG_OFF_T] (realprintstat): Cast st_size
to unsigned long.
ile.c
0afbf85dec3ddbb7fca9b5268f7670b526f79c68 23-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Update the list of files that must be distributed

* Makefile.am (EXTRA_DIST): Add debian/source/format, debian/watch,
linux/ia64/signalent.h, linux/powerpc/ioctlent1.h,
linux/powerpc/syscallent1.h, linux/powerpc/errnoent1.h,
linux/powerpc/signalent1.h.
akefile.am
d9a4b0ab00e9262411d2420f33f067d484431520 23-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Fix compilation warning reported by gcc -Wunused-but-set-variable

* process.c (printwaitn) [!SUNOS4]: Do not define "exited" variable.
rocess.c
f72418c876d48241a14fc9afdd4dad17881263a1 22-Feb-2011 Mike Frysinger <vapier@gentoo.org> ioctlsort: zero pad ioctl codes to 4 places

Zero padding the ioctl number will allow simple sorting via shell scripts.

* linux/ioctlsort.c (main): Output ioctl codes zero padded.
* linux/ioctlent.h: Regenerated.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
inux/ioctlent.h
inux/ioctlsort.c
22485b702b4fc7c66520896b67b9cda2a4cb2486 22-Feb-2011 Mike Frysinger <vapier@gentoo.org> Update mount flags to latest linux

* system.c (MS_RELATIME, MS_KERNMOUNT, MS_I_VERSION,
MS_STRICTATIME, MS_BORN): Define.
(mount_flags): Add MS_RELATIME, MS_KERNMOUNT, MS_I_VERSION,
MS_STRICTATIME, MS_BORN.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
ystem.c
c36c3033fb35745639137c39936493ef0ca5b5ff 22-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Sync debian/changelog and strace.spec with packages

* debian/changelog: Sync with 4.5.20-2.
* strace.spec: Likewise.
ebian/changelog
trace.spec
7bab9fcc44d72c375306c81648239fba21d492bd 20-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Add TRACE_DESC|TRACE_FILE flags to fanotify_* sysentries

* linux/*/syscallent.h: Add TD flag to fanotify_init. Add TD|TF flags
to fanotify_mark.
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/bfin/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/x86_64/syscallent.h
2bc744d7c737f025e970d3e708a81779c45a8b06 20-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Fix flags of fallocate sysentries

* linux/*/syscallent.h: Fix sys_fallocate flags.
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/m68k/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent.h
inux/x86_64/syscallent.h
b9839ef1295cd6d2ee56500226f8be080c63804f 20-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Add TRACE_DESC flag to epoll_create* sysentries

* linux/*/syscallent.h: Add TD flag to sys_epoll_create and
sys_epoll_create1.
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent.h
inux/x86_64/syscallent.h
1e43961de5c9196aeef0d94cc3f291680879da88 20-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Add TRACE_DESC flag to fgetxattr, flistxattr, and fremovexattr sysentries

* linux/*/syscallent.h: Add TD flag to sys_fgetxattr, sys_flistxattr,
and fremovexattr.
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent.h
inux/x86_64/syscallent.h
612e0920c5feece7859860a3c8271b82b631788f 20-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Add TRACE_FILE flag to swapoff sysentries

* linux/*/syscallent.h: Add TF flag to sys_swapoff.
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent.h
inux/x86_64/syscallent.h
fdbe3c513a521a075a5688df85056200c846776d 20-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Add TRACE_DESC flag to fadvise64* sysentries

* linux/*/syscallent.h: Add TD flag to sys_fadvise64 and
sys_fadvise64_64.
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent.h
inux/x86_64/syscallent.h
bde8033605d0d7c83b4d7c4d4c2461775edcd0cc 20-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Add TRACE_DESC flag to mmap, mmap2, and old_mmap sysentries

* linux/*/syscallent.h: Add TD flag to sys_mmap and sys_old_mmap.
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/sparc/syscallent1.h
inux/tile/syscallent.h
inux/x86_64/syscallent.h
b2eaa8d7ed94e8056fcd6922bf78dd1481efb6ac 20-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Do not initialize native_scno on platforms with only one personality

* linux/bfin/syscallent.h: Remove redundant native_scno initialization.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
inux/bfin/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
e51a87c0dc44408dce677a6bb035680129e66119 20-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Add LOOP_* ioctls defined in linux/loop.h

* linux/ioctlent.sh: Add LOOP_* ioctls (0x4C..) defined in linux/loop.h
header file.
* linux/ioctlent.h: Regenerated.
Reported by Mike Frysinger.
inux/ioctlent.h
inux/ioctlent.sh
2fabd0eaf05379bf121c208ee7a1c129ce1f2f18 19-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Fix PTRACE_GETEVENTMSG usage and enhance test_ptrace_setoptions()

* strace.c (handle_ptrace_event): Fix PTRACE_GETEVENTMSG usage.
(test_ptrace_setoptions): Test that PTRACE_GETEVENTMSG works properly.
trace.c
330a895bbd81594026132e4b4915e7a895a493da 19-Feb-2011 Mike Frysinger <vapier@gentoo.org> linux/sparc: move to common syscall.h

Rather than constantly deal with the sparc/syscall.h going stale, merge
the few sparc-specific pieces into the linux/syscall.h header.

* linux/syscall.h: Add sparc-specific pieces from sparc/syscall.h.
* Makefile.am (EXTRA_DIST): Remove linux/sparc/syscall.h and
linux/sparc64/syscall.h.
* linux/sparc/syscall.h, linux/sparc64/syscall.h: Deleted.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
akefile.am
inux/sparc/syscall.h
inux/sparc64/syscall.h
inux/syscall.h
e44a4a262ab1d47815262a6bb03ba6001c79096a 19-Feb-2011 Mike Frysinger <vapier@gentoo.org> sparc: add new funcs to syscall.h

Sync missing defs from the common syscall.h here.

* linux/sparc/syscall.h: Add sys_setfsuid, sys_pread64, and
sys_pwrite64 prototypes.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
inux/sparc/syscall.h
71a78bc7395ca2b8f29009bfc3560c1d5851b88e 19-Feb-2011 Mike Frysinger <vapier@gentoo.org> sparc: punt unused syscall.h.2

I can't find any mention of this header actually being used.
Seems to be a really old copy of the common syscall.h.

* Makefile.am (EXTRA_DIST): Remove linux/sparc/syscall.h.2.
* linux/sparc/syscall.h.2: Deleted.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
akefile.am
inux/sparc/syscall.h.2
9fdbee6dea6543a1a4a4183403b6e9c436abcb04 19-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Fix raw exit_group(2) decoding

* syscall.c (trace_syscall_entering): Check for sys_exit instead of
SYS_exit to handle exit_group(2) as well as _exit(2).
yscall.c
bd13645efb3094267ce95920b6941cfcac757036 19-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Optimize known_scno()

* syscall.c (known_scno): Do not check for native_scno field on
platforms that support only one personality.
yscall.c
fde119c792f3e2de1f0580c9040f36e2a9fbc5d0 19-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> * process.c (internal_exit) [IA64]: Remove redundant check.
rocess.c
65c1a81f6ad628240445ba24d888d25b2fd69c1e 09-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> Fix biarch support in IO dumping

* syscall.c (dumpio): Switch on tcp->sys_func instead of tcp->scno
for more reliable results.
yscall.c
10a16a76fc04ec692a255c7ca2f4aac2e19df2c1 07-Sep-2010 Dmitry V. Levin <ldv@altlinux.org> Simplify tprintf() declaration

* defs.h (tprintf): Simplify declaration.
efs.h
7655fa090707a94c5ed34128e0d36da75af95198 05-Feb-2011 Dmitry V. Levin <ldv@altlinux.org> * defs.h (SYSCALL_NEVER_FAILS): Fix typo.
efs.h
50a218d4ac83e6adf6f44785037dd25bd8037921 18-Jan-2011 Dmitry V. Levin <ldv@altlinux.org> Fix decoding of get[ug]id, gete[ug]id and setfs[ug]id return values

* defs.h (SYSCALL_NEVER_FAILS): New syscall flag.
* linux/dummy.h: Change redirection for sys_get[ug]id, sys_gete[ug]id
and setfs[ug]id.
* linux/*/syscallent.h: Set SYSCALL_NEVER_FAILS flag for get[ug]id,
gete[ug]id and setfs[ug]id syscalls.
* process.c [LINUX] (sys_getuid, sys_setfsuid): New functions.
* syscall.c (NF): New shorthand macro for use in syscallent.h files.
(get_error): Check SYSCALL_NEVER_FAILS flag.
Reported by Марк Коренберг <socketpair@gmail.com>.
efs.h
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/dummy.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent.h
inux/x86_64/syscallent.h
rocess.c
yscall.c
62d0428cf599ba0a6f2f73c83e174fada31ff7e7 19-Jan-2011 Dmitry V. Levin <ldv@altlinux.org> * linux/*/syscallent.h: Fix typo in sys_newfstatat syscall flags.
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sparc/syscallent.h
inux/tile/syscallent.h
inux/x86_64/syscallent.h
ae6a5f7c4fb752164e51b9960b10cf66566e47ec 18-Jan-2011 Mike Frysinger <vapier@gentoo.org> Blackfin: update ioctl list

* linux/bfin/ioctlent.h: Sync with latest kernel sources.
inux/bfin/ioctlent.h
4dd54320b9d394dc76727b1cd395365e6c948b69 18-Jan-2011 Dmitry V. Levin <ldv@altlinux.org> Fix stat64 decoding on mips

* linux/mips/syscallent.h: Use sys_stat64() to decode stat64 syscall.
This fixes Debian bug #599028.
inux/mips/syscallent.h
e9e3d70fa10022d1d642d723cd448b049dcff229 17-Jan-2011 Dmitry V. Levin <ldv@altlinux.org> Update linux/*/syscallent.h files to match Linux kernel v2.6.37

* linux/alpha/syscallent.h: Add hooks for fanotify_init, fanotify_mark,
and prlimit64.
* linux/i386/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/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/x86_64/syscallent.h: Likewise.
* linux/arm/syscallent.h: Add hooks for accept4, fanotify_init,
fanotify_mark, and prlimit64.
* linux/hppa/syscallent.h: Add hook for prlimit64.
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/microblaze/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/x86_64/syscallent.h
be284cae112d71a0073e24b34e16a63f31b32fd8 17-Jan-2011 Dmitry V. Levin <ldv@altlinux.org> block.c: cleanup

* block.c: Include <inttypes.h>.
(print_blkpg_req): Always decode struct blkpg_ioctl_arg.
Robustify decoding of strings.
(block_ioctl): Do not decode return values passed by pointers on exit
from failed syscalls.
Use format macros from inttypes.h to print values of type uint64_t.
lock.c
4ef6db489a8a51ae03ffb78b58c679162a39f3c3 15-Jan-2011 Dmitry V. Levin <ldv@altlinux.org> Add block ioctl support

* block.c: New file.
* Makefile.am (strace_SOURCES): Add it.
* defs.h [LINUX] (block_ioctl): New function.
* ioctl.c (ioctl_decode) [LINUX]: Use it to decode HDIO_* and BLK*
ioctls.
Patch by Jeff Mahoney <jeffm@suse.com>
akefile.am
lock.c
efs.h
octl.c
7fea79b7606644ec4e7c2e0a9fbb070c15cbc589 14-Jan-2011 Holger Hans Peter Freyther <zecke@selfish.org> Parse SOL_SCTP socket options

* configure.ac (AC_CHECK_HEADERS): Add netinet/sctp.h.
* net.c [HAVE_NETINET_SCTP_H]: Include <netinet/sctp.h>.
[SOL_SCTP] (socksctpoptions): New xlat structure.
(sys_getsockopt, printsockopt): Parse SOL_SCTP options.
onfigure.ac
et.c
ce9e0f4c7fa3159376b7d05b8527bddfef0d2305 14-Jan-2011 Holger Hans Peter Freyther <zecke@selfish.org> * net.c (socketlayers): Add more SOL_* constants from linux/socket.h
et.c
1c3031b1f047d9e4f9026a52404bb2b3f29bdd1a 14-Jan-2011 Dmitry V. Levin <ldv@altlinux.org> strace.1: fix misleading italics

* strace.1: Use bold instead of italics for "-e trace=" keywords.
This fixes Debian bug #589323.
trace.1
4eb1b51022e3a0fe619d0a31d8ad659d1b76b562 14-Jan-2011 Dmitry V. Levin <ldv@altlinux.org> Update linux/ioctlent.h

* linux/ioctlent.h: Regenerate using linux v2.6.37 headers.
inux/ioctlent.h
ebc2f28523df14c65b3085ff0de5762c0d4f25bf 14-Jan-2011 Dmitry V. Levin <ldv@altlinux.org> Add HDIO_* ioctls defined in linux/hdreg.h

* linux/ioctlent.sh: Add HDIO_* ioctls (0x03..) defined in
linux/hdreg.h header file.
This fixes Debian bug #450953.
inux/ioctlent.sh
21ccf5ed07ed7b9f208827dc7ba9b932bfa6cfaa 13-Jan-2011 Dmitry V. Levin <ldv@altlinux.org> Test PTRACE_O_TRACECLONE and PTRACE_O_TRACEVFORK along with PTRACE_O_TRACEFORK

* strace.c (test_ptrace_setoptions): Add PTRACE_O_TRACECLONE and
PTRACE_O_TRACEVFORK to PTRACE_SETOPTIONS call, to test exactly
the same set of options that is going to be used later in trace().
trace.c
d48c6b91e235d485308881f41bdfb21cd1426c15 10-Jan-2011 Dmitry V. Levin <ldv@altlinux.org> * net.c (protocols): Add more IPPROTO_* constants defined in netinet/in.h
et.c
efa8bda2e7c06831de5262873d4da5749ea33302 07-Jan-2011 Holger Hans Peter Freyther <holger@freyther.de> * net.c (protocols): Add IPPROTO_GRE, IPPROTO_SCTP and IPPROTO_UDPLITE.
et.c
d64184f9aa1b42e22e91b0dee902484ccdb08c4f 04-Jan-2011 Carmelo AMOROSO <carmelo.amoroso@st.com> sh: Add entry for not-multiplexed accept4

* linux/sh/syscallent.h: Add specific entry for not-multiplexed accept4
available in kernel mainline since v2.6.37-rc6, see
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=21b6e4c7106b2d68a6710506d8706608272fd78b

Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
inux/sh/syscallent.h
9b977d106707c1d040597b18fb1fad66d8e1d517 13-Dec-2010 Carmelo AMOROSO <carmelo.amoroso@st.com> sh: Add entries for not-multiplexed socket calls

* linux/sh/syscallent.h: Add specific entries for not-multiplexed
socket calls (available in kernel mainline since v2.6.37-rc1)

Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
inux/sh/syscallent.h
b9c525790c158404c96ce8508e42a9217d1760d3 13-Dec-2010 Carmelo AMOROSO <carmelo.amoroso@st.com> sh: Fix compilation warning in do_pipe due to missing prototype

* defs.h [SH]: Make getrval2 prototype visible to do_pipe
and fix the following compiler warning:
.../net.c: In function 'do_pipe':
.../net.c:1632: warning: implicit declaration of function 'getrval2'
.../net.c:1632: warning: format '%lu' expects type 'long unsigned int',
but argument 3 has type 'int'

Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
efs.h
696381ec63ec200c5211643e4a4324d58b3031c4 14-Dec-2010 Dmitry V. Levin <ldv@altlinux.org> Fix build on uClibc

* defs.h [LINUX]: Define PTRACE_GETEVENTMSG macro.
Patch by Douglas Mencken <dougmencken@gmail.com>.
efs.h
8044bc1463f62ae5f974cc531576bc18dade0337 07-Dec-2010 Dmitry V. Levin <ldv@altlinux.org> Fix strace -f -o '|command' hangup

* strace.c (main): Call test_ptrace_setoptions() before parsing
-o option, otherwise a forked command will cause a hangup inside
test_ptrace_setoptions().
trace.c
bdafa1a90569fb791af6abdffca109fee044d94e 03-Dec-2010 Dmitry V. Levin <ldv@altlinux.org> Output diagnostics to stderr

* syscall.c (get_scno): Output information about changes in
personality mode to stderr. Reported by Pádraig Brady.
yscall.c
e3d4b68a7ba7498eb37f8b3739155aabdfa3e63a 03-Dec-2010 Dmitry V. Levin <ldv@altlinux.org> Recognize more clone flags

* process.c (CLONE_*): Define more flags from linux v2.6.25.
(clone_flags): Add entries for them.
Proposed by <zhangyanfei@cn.fujitsu.com>.
rocess.c
0ddd8addef9e9b0c7af00f70b97b3e464205ad1d 03-Dec-2010 Dmitry V. Levin <ldv@altlinux.org> Decode struct ucred for getsockopt SO_PEERCRED

* net.c (sys_getsockopt): Decode SO_PEERCRED.
Proposed by Arkadiusz Miśkiewicz <arekm@maven.pl>.
et.c
f8e56504749a4a5a79d40d115ae46718b4c949a4 01-Dec-2010 Carmelo AMOROSO <carmelo.amoroso@st.com> sh: Add support for tracing sys_cacheflush system call

* linux/sh/syscallent.h: Update sys_cacheflush entry.
* linux/syscall.h [SH] (sys_cacheflush): New function declaration.
* system.c [SH] (cacheflush_flags): New xlat structure.
[SH] (sys_cacheflush): New function.

Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Reviewed-by: Angelo Castello <angelo.castello@st.com>
inux/sh/syscallent.h
inux/syscall.h
ystem.c
b1467440f7c57c4ba9dc17ab9756e45c84d0adbe 02-Dec-2010 Dmitry V. Levin <ldv@altlinux.org> Cleanup test_ptrace_setoptions()

* strace.c (test_ptrace_setoptions): Cleanup.
(main): Fix test_ptrace_setoptions() error diagnostics message.
Print ptrace_setoptions value in debug mode.
trace.c
ca8ab8d2958f86297a6574a73cc1b9759d59c9b1 12-Nov-2010 Wang Chao <wang.chao@cn.fujitsu.com> Handle followfork using ptrace_setoptions if available

If PTRACE_O_TRACECLONE et al options are supported by kernel,
use them to do followfork rather than the original setbpt
method that changes registers ourselves.

* defs.h [LINUX] (handle_new_child): New function prototype.
* process.c [LINUX] (handle_new_child): New function based on the
code from internal_fork(), with a trivial change: do reparent only
for sys_clone.
[LINUX] (internal_fork): Use handle_new_child(). Do nothing if
ptrace_setoptions is in effect.
* strace.c [LINUX] (handle_ptrace_event): New function.
[LINUX] (trace): If ptrace_setoptions is in effect, then
call the new function to handle PTRACE_EVENT_* status, and
set PTRACE_SETOPTIONS when we see the initial stop of tracee.

Signed-off-by: Wang Chao <wang.chao@cn.fujitsu.com>
efs.h
rocess.c
trace.c
b13c0de058585de7d47778a8923426b89bfffbb5 12-Nov-2010 Wang Chao <wang.chao@cn.fujitsu.com> Test how PTRACE_SETOPTIONS support works

Currently test fork related options only. Fork a child that uses
PTRACE_TRACEME at startup and then does a fork so strace can test
how the PTRACE_SETOPTIONS support works before it handles any real
tracee. Since PTRACE_O_TRACECLONE/*FORK were introduced to kernel
at the same time, this test seems to be enough for these 3 options.

* defs.h [LINUX]: Define PTRACE_O_TRACECLONE et al macros here.
(ptrace_setoptions): New variable declaration.
* strace.c [LINUX] (test_ptrace_setoptions): New function, tests
whether kernel supports PTRACE_O_CLONE/*FORK, the result is stored
in the new variable ptrace_setoptions for later use.
(main): Call test_ptrace_setoptions() if followfork option is set.

Signed-off-by: Wang Chao <wang.chao@cn.fujitsu.com>
efs.h
trace.c
09fa7f87650f7267f31243ea7b00c02dab3d1305 17-Jan-2010 Dmitry V. Levin <ldv@altlinux.org> Enable support for less verbose build rules

* configure.ac (AM_INIT_AUTOMAKE): Add silent-rules.
onfigure.ac
e636c8516567642ed1ef0b281739f90650a6e109 16-Sep-2010 Wang Chao <wang.chao@cn.fujitsu.com> Do not trace children cloned with CLONE_UNTRACED flag

If clone is called with flag CLONE_UNTRACED, to be consistent with
option PTRACE_O_TRACECLONE, we should not set CLONE_PTRACE flag on
its arguments.

* process.c [LINUX] (internal_fork): Check the syscall and arguments.

Signed-off-by: Wang Chao <wang.chao@cn.fujitsu.com>
rocess.c
cbaaf799115b2354b0db69013324f4c9ada9afcd 17-Sep-2010 Dmitry V. Levin <ldv@altlinux.org> Update the list of CLOCK_* constants to match Linux kernel v2.6.32+

* time.c (struct xlat clocknames[]): Add more RT clock IDs.
Reported by Tommi Rantala.
ime.c
336a35fd43807867e17ea5f5152a36ccb8f14675 16-Sep-2010 Dmitry V. Levin <ldv@altlinux.org> Update linux/hppa/syscallent.h to match Linux kernel v2.6.35

* linux/hppa/syscallent.h: Add hooks for recvmmsg and accept4.
inux/hppa/syscallent.h
35d0572a124c60a2b35987d23886172ed40d76c1 15-Sep-2010 Dmitry V. Levin <ldv@altlinux.org> Pass less information to qualify_one and qual_*

* syscall.c (qualify_one, qual_syscall, qual_signal, qual_fault,
qual_desc): Take just a bitflag argument instead of pointer to the whole
qual_options structure.
(struct qual_options): Update prototype of "qualify" field.
(qualify): Update use of qualify_one and qual_options->qualify.
yscall.c
0ef43b8189b036fd958dcc1b861013f32ea596f5 15-Sep-2010 Wang Chao <wang.chao@cn.fujitsu.com> Fix -e option with only one value in qualifier statement

Fix regression introduced by commit v4.5.20-19-g30145dd:
if -e option is used with only one value in qualifier statement,
e.g. 'strace -e trace=open ls', syscall information would not be
printed properly.

* syscall.c (qualify): Remove faulty optimization.

Signed-off-by: Wang Chao <wang.chao@cn.fujitsu.com>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
yscall.c
584ba2d31d3e37c82750dac4500838bafc8d427a 12-Sep-2010 Mike Frysinger <vapier@gentoo.org> Fix off_t/rlim_t size checks when cross-compiling

The current off_t/rlim_t size checks (wrt size of long long) use AC_RUN
which obviously doesn't work when cross-compiling. While we don't hit
any configure errors, the fall back code is pretty dumb (which is to say
there isn't any). Considering the code in question though, we can use
some fun compiler tricks with sizeof and array lengths to turn it into
a pure build test and avoid the RUN issue completely.

* m4/long_long.m4 (AC_OFF_T_IS_LONG_LONG, AC_RLIM_T_IS_LONG_LONG):
Convert from AC_RUN_IFELSE to AC_COMPILE_IFELSE.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
4/long_long.m4
6d12afdac423ccdc9182022987130a3346a6405f 12-Sep-2010 Mike Frysinger <vapier@gentoo.org> Fix long long little endian detection when cross-compiling

The long long endian detection code does an AC_TRY_RUN() and since that
doesn't work when cross-compiling, it sets a fallback value. However,
rather than do any sort of default endian detection, the code simply
sets it to "no". This probably breaks most little endian systems out
there when cross-compiling for them. It certainly breaks Blackfin
systems. So use the common endian detection code provided by autoconf
and key off of that when cross-compiling.

* configure.ac: Call AC_C_BIGENDIAN.
* m4/long_long.m4 (AC_LITTLE_ENDIAN_LONG_LONG): Set cross-compiling
logic based on ac_cv_c_bigendian.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
onfigure.ac
4/long_long.m4
260e571343b12221ad848a9c972fc5518d66ef2c 11-Sep-2010 Mike Frysinger <vapier@gentoo.org> Blackfin: decode new syscalls

* linux/bfin/syscallent.h: Add fanotify/prlimit/cacheflush syscalls.
* linux/syscall.h: Add sys_cacheflush() decl.
* system.c: Decode Blackfin's cacheflush syscall.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
inux/bfin/syscallent.h
inux/syscall.h
ystem.c
1b30f4b7b73e6840ddfe299a84a5864074de66b7 11-Sep-2010 Mike Frysinger <vapier@gentoo.org> * linux/ioctlent.sh: Search a few non-exported paths.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
inux/ioctlent.sh
54e931fb858410644f61885b4b36fc20320e1fc6 15-Sep-2010 Roland McGrath <roland@redhat.com> Clean up pid2tcb usage

* strace.c (pid2tcb): Always match pid. Fail for argument <= 0.
[USE_PROCFS] (first_used_tcb): New function.
[USE_PROCFS] (trace): Use that instead of pid2tcb(0).
trace.c
1ed5d80ed8f3aa96a6cc7bad8ee6f2faa3642bf9 09-Sep-2010 Dmitry V. Levin <ldv@altlinux.org> Turn on more compiler warnings

* configure.ac: Enable gcc -Wwrite-strings.
onfigure.ac
918e49bac792ffb3ed48a33fadcb94e1833e953c 09-Sep-2010 Dmitry V. Levin <ldv@altlinux.org> Import warnings.m4 from gnulib

* m4/warnings.m4: Replace with warnings.m4 from gnulib.
* configure.ac: Use gl_WARN_ADD from new warnings.m4.
* Makefile.am (AM_CFLAGS): Update for new warnings.m4.
akefile.am
onfigure.ac
4/warnings.m4
916adeda63abe70b8a5731e7cddcb84c940908f9 09-Sep-2010 Dmitry V. Levin <ldv@altlinux.org> Split acinclude.m4

* Makefile.am (ACLOCAL_AMFLAGS): Add "-I m4".
* acinclude.m4: Remove.
* m4/includedir.m4: New file, with definition of AC_INCLUDEDIR from
acinclude.m4.
* m4/long_long.m4: New file, with definitions of AC_OFF_T_IS_LONG_LONG,
AC_RLIM_T_IS_LONG_LONG and AC_LITTLE_ENDIAN_LONG_LONG from acinclude.m4.
* m4/procfs.m4: New file, with definitions of AC_MP_PROCFS,
AC_POLLABLE_PROCFS and AC_STRUCT_PR_SYSCALL from acinclude.m4.
* m4/stat.m4: New file, with definition of AC_STAT64 from acinclude.m4.
* m4/statfs.m4: New file, with definition of AC_STATFS64 from
acinclude.m4.
* m4/warnings.m4: New file, with definition of AC_WARNFLAGS from
acinclude.m4.
akefile.am
cinclude.m4
4/includedir.m4
4/long_long.m4
4/procfs.m4
4/stat.m4
4/statfs.m4
4/warnings.m4
3eb94916738e4c4ba783ea3ef0ca62e2b0c73da7 10-Sep-2010 Dmitry V. Levin <ldv@altlinux.org> * process.c (sys_waitid): Remove unused variable.
rocess.c
30145dda9d7ff70df1d5ad750a183572c73e8963 07-Sep-2010 Dmitry V. Levin <ldv@altlinux.org> Fix const-correctness issues uncovered by gcc -Wwrite-strings

* defs.h (struct xlat): Add const qualifier to the field of
type "char *".
(set_sortby, qualify, printnum, printnum_int): Add const qualifier to
arguments of type "char *".
* count.c (set_sortby): Add const qualifier to the argument and
automatic variable of type "char *".
* desc.c (decode_select): Add const qualifier to automatic variables of
type "char *".
* ioctlsort.c (struct ioctlent): Add const qualifier to fields of
type "char *".
(main): Add const qualifier to argv.
* process.c (printargv): Add const qualifier to the argument and
automatic variable of type "char *".
(printargc) Add const qualifier to argument of type "char *".
* signal.c (sprintsigmask, parse_sigset_t): Add const qualifier to
arguments of type "char *".
* strace.c (progname): Add const qualifier.
(detach): Add const qualifier to automatic variable of type "char *".
* stream.c (struct strbuf): Add const qualifier to the field of
type "char *".
* syscall.c (struct qual_options): Add const qualifier to fields of
type "char *".
(qual_syscall, qual_fault, qual_desc, lookup_class): Add const qualifier
to arguments of type "char *".
(qual_signal): Add const qualifier to the argument of type "char *",
avoid modification of constant argument.
(qualify): Likewise.
* util.c (printflags): Add const qualifier to automatic variable of
type "char *".
(printnum, printnum_int): Add const qualifier to arguments of
type "char *".
ount.c
efs.h
esc.c
octlsort.c
rocess.c
ignal.c
trace.c
tream.c
yscall.c
til.c
cbdd1900a16016343c172db09fc48a83e7fa22ac 02-Sep-2010 Wang Chao <wang.chao@cn.fujitsu.com> Fix printing clone flags

When we trace clone() syscall with only exit signal as clone
flags, strace would print an unnecessary OR operator.

* process.c (sys_clone): Fix this.

Signed-off-by: Wang Chao <wang.chao@cn.fujitsu.com>
rocess.c
21b8db4eb966a6098c7cd10bd6cf0ce8ec59cab8 27-Aug-2010 Wang Chao <wang.chao@cn.fujitsu.com> Drop nclone_detached and related flags

Remove nclone_detached since CLONE_DETACHED flag was no-op for a very
long time in kernel.

* defs.h (struct tcb): Remove nclone_detached field.
Remove TCB_CLONE_DETACHED flag.
* process.c: Remove CLONE_DETACHED flag.
(clone_flags): Remove CLONE_DETACHED entry.
(internal_fork, internal_wait): Remove code dealing with CLONE_DETACHED
flag and nclone_detached.
* strace.c (startup_attach, alloc_tcb, droptcb, handle_group_exit):
Likewise.

Signed-off-by: Wang Chao <wang.chao@cn.fujitsu.com>
efs.h
rocess.c
trace.c
ffd2b30926175b109a2ba91900628c8037b8184f 06-Aug-2010 Neil Campbell <lists@thebatcave.org.uk> Correct get/set_robust_list syscall numbers for powerpc

* linux/powerpc/syscallent.h: Swap positions of get_ and set_robust_list.
inux/powerpc/syscallent.h
5a22b31a60e9defa39df2672c89768fa85543276 05-Aug-2010 Wang Chao <wang.chao@cn.fujitsu.com> Handle CLONE_PARENT flag

* process.c (internal_fork): The parent of new cloned process is the
same of the calling process when CLONE_PARENT is set.
rocess.c
304ea5f06779a9fd998e7e03d860469853370921 05-Aug-2010 Wang Chao <wang.chao@cn.fujitsu.com> Fix error when judging if process has children

* process.c (internal_wait): Processes counted in tcp->nclone_threads
are tcp's threads, rather than tcp's children.

Signed-off-by: Wang Chao <wang.chao@cn.fujitsu.com>
rocess.c
d322a4bbe118642c4c9b170451a601a1e80b72d6 05-Aug-2010 Wang Chao <wang.chao@cn.fujitsu.com> Forbid using mutually exclusive options -D and -p together

If we use -D and -p option together to trace a multi-thread program, in
addition to the main thread, other threads could not be traced even if we
present -f option. Moreover, when executing 'strace -D -p <non-exist pid>',
strace could not terminate normally.

* strace.c (main): Check it.

Signed-off-by: Wang Chao <wang.chao@cn.fujitsu.com>
trace.c
670f51126a7a949e39e24b3cffb55f1c490f581f 30-Jul-2010 David Daney <ddaney@caviumnetworks.com> Update Linux MIPS syscalls to match 2.6.35-rc6+

* linux/mips/syscallent.h: Add and update 405 hooks.
inux/mips/syscallent.h
939caba68e93a51e537f29c3bd778dea1f081157 06-Jul-2010 Edgar E. Iglesias <edgar.iglesias@gmail.com> Add support for the MicroBlaze architecture

* configure.ac: Recognize MicroBlaze.
* linux/microblaze/syscallent.h: New file.
* Makefile.am (EXTRA_DIST): Add linux/microblaze/syscallent.h
* process.c (change_syscall, struct_user_offsets): Add MicroBlaze
support.
* signal.c (sys_sigreturn): Likewise.
* syscall.c (internal_syscall, get_scno, syscall_fixup, get_error,
syscall_enter): Likewise.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Signed-off-by: Michal Simek <monstr@monstr.eu>
akefile.am
onfigure.ac
inux/microblaze/syscallent.h
rocess.c
ignal.c
yscall.c
b7915d15b813c56a36510e942fa4e5ec21307924 29-Apr-2010 Frederik Schüler <fs@debian.org> linux/sparc: add missing syscall declarations

* linux/sparc/syscall.h: Sync with linux/syscall.h

Signed-off-by: Frederik Schüler <fs@debian.org>
inux/sparc/syscall.h
cfa96b379cdd6561a5cc89f2bb86ee9f4b2a3928 29-Jul-2010 Doug Kwan <dougkwan@google.com> Fix strace by applying this patch from up-stream.

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>.

Change-Id: Iba2a50fc1104bfe899163e975cf94745d72b4db6
http://strace.git.sourceforge.net/git/gitweb.cgi?p=strace/strace;a=commitdiff;h=9bc6340d21cb20d2c775863598068c1a29460eba
yscall.c
ee81c8a57177ad6db9e5fae1666a7a996f90f159 03-Jul-2010 Andreas Schwab <schwab@linux-m68k.org> Handle biarch get/setrlimit

* resource.c (print_rlimit32) [POWERPC64 || X86_64]: Define.
(sys_getrlimit, sys_setrlimit) [POWERPC64 || X86_64]: Use it.
esource.c
d69fa497f4729373618fb7b506a2362422487ab1 12-Jul-2010 Andreas Schwab <schwab@linux-m68k.org> Add biarch support for powerpc64

* acinclude.m4 (AC_LITTLE_ENDIAN_LONG_LONG): Use int instead of
long.
* configure.ac [$host_cpu = powerpc*]: Also define POWERPC64 if
$host_cpu = powerpc64.
* defs.h (SUPPORTED_PERSONALITIES, PERSONALITY0_WORDSIZE)
(PERSONALITY1_WORDSIZE) [POWERPC64]: Define.
* file.c: (struct stat_powerpc32, printstat_powerpc32) [POWERPC64]:
Define.
(printstat) [LINUX && POWERPC64]: Use printstat_powerpc32 in
32-bit personality.
(sys_newfstatat) [POWERPC64]: Handle personalities.
* signal.c (sys_sigreturn) [POWERPC64]: Likewise.
* util.c (printllval) [POWERPC64]: Likewise.
(printcall) [POWERPC64]: Use wider format for IP prefix.
* syscall.c (get_scno) [POWERPC64]: Check for 64/32 bit mode.
* linux/powerpc/errnoent1.h: New file.
* linux/powerpc/ioctlent1.h: New file.
* linux/powerpc/signalent1.h: New file.
* linux/powerpc/syscallent1.h: New file.
cinclude.m4
onfigure.ac
efs.h
ile.c
inux/powerpc/errnoent1.h
inux/powerpc/ioctlent1.h
inux/powerpc/signalent1.h
inux/powerpc/syscallent1.h
ignal.c
yscall.c
til.c
372cc84c972f8e88cc148f343b02f4b5beb83dc7 09-Jul-2010 Andreas Schwab <schwab@redhat.com> Balance braces

* strace.c (proc_open): Avoid unbalanced braces.
(trace): Likewise.
trace.c
102e69a3ea49c2833e2c95bf1babcaa0761d0ed7 03-Jul-2010 Andreas Schwab <schwab@linux-m68k.org> Remove extern declaration at file scope

* defs.h (force_result): Declare.
* process.c (internal_wait): Don't declare force_result.
efs.h
rocess.c
b87d30c785679b37a2ec7242881f0d0b819c738d 11-Jun-2010 Andreas Schwab <schwab@redhat.com> Document -C/-D

* strace.c (usage): Document -C.
* strace.1: Document -D.
trace.1
trace.c
f47fa96b2bcccef3c0f25393f850685e82a91f4a 14-Apr-2010 Roland McGrath <roland@redhat.com> Fix sourceforge download URL.
trace.spec
246888d23999d2ce5301bd9f814ed5c09a6889b8 05-Jun-2010 Andreas Schwab <schwab@linux-m68k.org> M68K: Fix fetching syscall arguments

* syscall.c (syscall_enter) [M68K]: Properly handle more than five
syscall arguments.
yscall.c
587432273982c136809a6e9182e8ecf674648706 28-May-2010 Andreas Schwab <schwab@linux-m68k.org> Decode TLS syscalls on m68k

* linux/m68k/syscallent.h: Add entries for get_thread_area,
set_thread_area, atomic_comxchg_32, atomic_barrier.
* linux/dummy.h (sys_get_thread_area, sys_set_thread_area) [M68K]:
Don't redefine.
* mem.c (sys_get_thread_area, sys_set_thread_area) [LINUX && M68K]: New.
inux/dummy.h
inux/m68k/syscallent.h
em.c
ffca9e30d6228532e84adc2cfe18f0ea72d199c5 28-May-2010 Andreas Schwab <schwab@linux-m68k.org> Fix warning when compiling for m68k

* syscall.c (d0): Define as long.
yscall.c
fb19d317e61dfbb8234bb23d5c7cc40827667ec2 17-May-2010 Nick Kralevich <nnk@google.com> Get rid of warnings when compiled with -Wformat-security

Change-Id: I023345f6cf225c8b66258ddf5830121045e60b81
jm.c
rocess.c
ignal.c
7b4667297a4a8c4b6de545d50cc80d3beeef29a1 14-May-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: I67c1f9768f55f7cc19e47b0febeca59bc9afed08
ed9483ac353bf127889707abf2656acc04483952 15-Apr-2010 Tony SIM <chinyeow.sim.xt@renesas.com> SuperH: add configuration to strace

Change-Id: I7a8986a7e3e0e07ae22cb21c5713f4e06c2790a9
ndroid.mk
ndroid/arch/sh/config.h
acbe51899abd3f7ce5de5aad7245bb3de642bfab 07-Apr-2010 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.
EWS
onfigure.ac
ebian/changelog
trace.spec
0c56f62207d81713f9ce7705e865b75f921e6a1b 13-Apr-2010 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.

Signed-off-by: Frederik Schüler <fs@debian.org>
ebian/changelog
ebian/control
ebian/rules
394f60c07e706f3dc207cd18343738390123d58d 13-Apr-2010 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.
inux/s390/syscallent.h
inux/s390x/syscallent.h
ae4db5e1bb7c6a6d550bf6bd28273736ecea4d4f 07-Apr-2010 Dmitry V. Levin <ldv@altlinux.org> Update linux/ioctlent.h

* linux/ioctlent.sh: Search in asm-generic directory as well.
* linux/ioctlent.h: Regenerated.
inux/ioctlent.h
inux/ioctlent.sh
623003918a2d35d71bb7f44917b78c41a9ac169b 06-Apr-2010 Dmitry V. Levin <ldv@altlinux.org> 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.
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/x86_64/syscallent.h
e6591031475ace4ac54bb9995f21dd86fa857b1b 29-Mar-2010 Dmitry V. Levin <ldv@altlinux.org> Enhance recvmmsg parser

* net.c (sys_recvmmsg): Decode mmsghdr structure on exit from the
syscall. Decode timespec structure both on entrance and on exit.
et.c
0873f29af4c1b2357e4f13338731665dd1ee2893 12-Feb-2010 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.
inux/arm/syscallent.h
inux/bfin/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscall.h
inux/sparc/syscallent.h
inux/syscall.h
et.c
a7835e631a164ddf327163cc450fd07470482104 31-Mar-2010 Dmitry V. Levin <ldv@altlinux.org> * strace.1: Fix quoting of hyphens and formatting of strace options.
trace.1
7d7c963d793f37c232fb29dfa7240ecfce9a3e14 29-Mar-2010 Dmitry V. Levin <ldv@altlinux.org> Split trace_syscall() for better readability

* syscall.c (trace_syscall): Split into trace_syscall_exiting() and
trace_syscall_entering().
yscall.c
e3a7ef5a2a3ac31bfa0d3f9ce65981e51700073e 28-Mar-2010 Dmitry V. Levin <ldv@altlinux.org> 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.
ount.c
efs.h
trace.1
trace.c
yscall.c
c94a774a3bf40cee1ef6babc3f0615ec956f6a65 07-Apr-2010 Dmitry V. Levin <ldv@altlinux.org> 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
akefile.am
9676499f89dbb6e870ed19c857c4ceaca44452b7 07-Apr-2010 Dmitry V. Levin <ldv@altlinux.org> * desc.c (sys_epoll_pwait): Fix output formatting bug.
esc.c
6e6337549506469fd6dc3e20e7623f3161b476f6 07-Apr-2010 Dmitry V. Levin <ldv@altlinux.org> * desc.c (decode_select): Fix potential stack buffer overflow.
esc.c
4310a375e905840481862c6c351152fe29df81c9 01-Apr-2010 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.
pc.c
bab894067478879f42d764dea6130a177759ffe6 21-Mar-2010 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.
ile.c
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/syscall.h
inux/x86_64/syscallent.h
360986bacd9d4455c2a5da0a31a9e275f673cfd8 08-Mar-2010 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.
onfigure.ac
5f5ae71ed6fc176add4c3bfe2df7538d24494794 09-Mar-2010 Jean-Baptiste Queru <jbq@google.com> Add an empty CleanSpec.mk

Change-Id: If6392cb4b86090fb8808da9562ea362127449c6b
leanSpec.mk
edb393420ca8bde289e1d51340715803c7641a5b 23-Feb-2010 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.
ignal.c
200370419bb3540e50e9333a3359af4ca681d3bf 09-Feb-2010 David Daney <ddaney@caviumnetworks.com> Fix MIPS N32/N64 compile error

* syscall.c [LINUX_MIPSN32 || LINUX_MIPSN64] (syscall_enter): Pass
tcp->pid to ptrace().
yscall.c
1cced96502fc2e45b942c509059e31b3a5795179 05-Feb-2010 The Android Open Source Project <initial-contribution@android.com> am 30e270dc: am f7a73024: reconcile main tree with open-source eclair

Merge commit '30e270dc12d8ca72dd66947ec8f67208b4a0aae8'

* commit '30e270dc12d8ca72dd66947ec8f67208b4a0aae8':
android-2.1_r1 snapshot
c8c6698ef7cde83a496b273672a51ec2a8f14fb3 28-Dec-2009 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.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
akefile.am
onfigure.ac
efs.h
inux/tile/syscallent.h
em.c
rocess.c
ignal.c
yscall.c
30e270dc12d8ca72dd66947ec8f67208b4a0aae8 05-Feb-2010 The Android Open Source Project <initial-contribution@android.com> am f7a73024: reconcile main tree with open-source eclair

Merge commit 'f7a730248fa772625f519cd6a75b1fb6b30c9101' into eclair-plus-aosp

* commit 'f7a730248fa772625f519cd6a75b1fb6b30c9101':
android-2.1_r1 snapshot
f7a730248fa772625f519cd6a75b1fb6b30c9101 05-Feb-2010 The Android Open Source Project <initial-contribution@android.com> reconcile main tree with open-source eclair
e5e60858063f214fcd7860f50f8bcb46f951f9ab 31-Dec-2009 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.
efs.h
et.c
rocess.c
ignal.c
trace.c
tream.c
yscall.c
erm.c
til.c
257e15737d8f0550d9ab01c039047d37bc823cbd 26-Dec-2009 Dmitry V. Levin <ldv@altlinux.org> 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().
efs.h
rocess.c
yscall.c
27bb9ee15e3480cf4a97bd776e81f0063c32323f 25-Jan-2010 Dmitry V. Levin <ldv@altlinux.org> * Makefile.am (INCLUDES): Remove redundant search directories.
akefile.am
881f573876e2223ae5c2cedaa32a3b0d6b9ff339 04-Feb-2010 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.
ebian/changelog
ebian/control
ebian/rules
ebian/source/format
ebian/watch
5bdb66ec768565a8f97a5de94b56bda63b036159 29-Jan-2010 The Android Open Source Project <initial-contribution@android.com> reconcile android-2.1_r1 snapshot
3de3d6bf5abdf410110aed1f844992304f6ae8b9 25-Jan-2010 Andreas Schwab <schwab@redhat.com> Fix spurious failure of AC_STAT64 test

* acinclude.m4 (AC_STAT64): Include <sys/types.h> first.
cinclude.m4
0f92f4a2cbf20a8fa66b02d6ea9751e6437c8757 13-Jan-2010 The Android Open Source Project <initial-contribution@android.com> android-2.1_r1 snapshot
840d85b3e50cea9f28aedd23af94742c2a60265a 12-Jan-2010 Andreas Schwab <schwab@redhat.com> Don't kill the process when detaching

* strace.c (detach): Call clearbpt when TCB_BPTSET is set.
trace.c
fdc45590eb96c43cf8f8e8db5f598fd3d7b9a385 25-Dec-2009 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.
inux/arm/syscallent.h
inux/avr32/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/x86_64/syscallent.h
em.c
c5fd1d9c82b161618435500a9265f0a8db2d7e70 25-Dec-2009 Chris Metcalf <cmetcalf@tilera.com> * mem.c (sys_mbind): Display first argument in hex
em.c
ff3474aa5a9dd573056576d54d42e12526f38d9c 25-Dec-2009 Chris Metcalf <cmetcalf@tilera.com> * mem.c (mremap_flags): Add MREMAP_FIXED
em.c
5078770858835852b4d569b1b5e97a26cb623e7c 13-Nov-2009 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.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
inux/i386/syscallent.h
inux/ia64/syscallent.h
inux/sparc/gen.pl
inux/syscallent.h
inux/x86_64/syscallent1.h
e5355de95c495dcfc616509f88c4fb5f9996b8e6 27-Oct-2009 Andreas Schwab <schwab@redhat.com> Remove support for pre-C89

* defs.h: Remove references to __STDC__ and P macros.
* strace.c: Likewise.
efs.h
trace.c
b2892a9bbecc956701640ee3828950d84a6cb57c 15-Nov-2009 Jean-Baptiste Queru <jbq@google.com> merge from open-source master
d8309af6148d6496ca6c73ed0a29ba26957d1512 15-Nov-2009 Jean-Baptiste Queru <jbq@google.com> merge from open-source master

Merge commit 'goog/stage-korg-master' into HEAD
1cbe5bbc7ad527242c92930d9d006483bcc97705 15-Nov-2009 Jean-Baptiste Queru <jbq@google.com> merge from eclair
ca75bd6dffc01e4d95e85d3af82d446cd80afbb5 13-Nov-2009 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.
et.c
c36a2bcae33bbd58d76823a2bb63719d93b3f046 13-Nov-2009 Jean-Baptiste Queru <jbq@google.com> eclair snapshot
ndroid.mk
46ed50d56909843420b0a0cb1360a500ce421d52 11-Nov-2009 Andreas Schwab <schwab@redhat.com> Ignore errors if a thread is killed

* util.c (clearbpt): Ignore ESRCH error.
til.c
9906e6da8be98d27bffa2baeeccd40cf1a1b11c1 14-Oct-2009 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.

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
cinclude.m4
onfigure.ac
ile.c
312891930180ba10bd9d65c3e47f92cf15a6dacd 06-Nov-2009 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.
et.c
62e0596dbda6831f7f7a976c183373d5ff7a7584 03-Nov-2009 Dmitry V. Levin <ldv@altlinux.org> 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.
jm.c
pc.c
rocess.c
ock.c
f0df31e71a58c6e79ba77c1a9d84b2f38d44bec7 03-Nov-2009 Dmitry V. Levin <ldv@altlinux.org> 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.
onfigure.ac
fe9495369e2a17fc2c3a34dd42d34f60193ce114 04-Nov-2009 Andreas Schwab <schwab@redhat.com> Decode fallocate on PowerPC

* linux/powerpc/syscallent.h: Decode fallocate.
inux/powerpc/syscallent.h
b5600fc3df0453ba11f254a9b49add3ffbec9733 04-Nov-2009 Andreas Schwab <schwab@redhat.com> 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.
efs.h
ile.c
o.c
em.c
til.c
d45f0a66c1c60c9703c7fd0b826a6436e0adc17a 03-Nov-2009 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.
ile.c
inux/powerpc/syscallent.h
ccdff481c086611488c5df70550fcf8fe907e7af 27-Oct-2009 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.
efs.h
trace.c
7d9247e197e82bb053f4357519265538298862ce 21-Oct-2009 Roland McGrath <roland@redhat.com> * strace.spec: 4.5.19-1 release.
trace.spec
ff896f7e0fc785bc3bac40faa81ee823fd81ec31 21-Oct-2009 Dmitry V. Levin <ldv@altlinux.org> * file.c (printstat64): Cleanup trailing whitespace.
ile.c
61b7435ca146c8a75f867ae0e1fd35d74d7f86a5 16-Oct-2009 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"
ile.c
8af45cf0ea6b130817a3978b826f19ee26eb603c 12-Oct-2009 Dmitry V. Levin <ldv@altlinux.org> * configure.ac (AC_CHECK_HEADERS): Remove asm/reg.h.
onfigure.ac
8566c500253f3bef38ace7d6031f76fe5d21f7e0 12-Oct-2009 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.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
efs.h
rocess.c
ignal.c
yscall.c
til.c
150759b7bffc6c1aa8095484e1694e008c643c9e 12-Oct-2009 Roland McGrath <roland@redhat.com> * make-dist: Clean up.
ake-dist
ffda2d393fce6261fb108aa3eee3eb19c42a4f31 12-Oct-2009 Roland McGrath <roland@redhat.com> * configure.ac: Use AC_CONFIG_AUX_DIR([.]).
onfigure.ac
ac260688619616819beb8e5c876ccf97afe8a3c1 10-Oct-2009 Dmitry V. Levin <ldv@altlinux.org> * make-dist: New script for preparing release tarballs.
ake-dist
81dfcfb18b0b481e868d449184bb403dcc8498da 10-Oct-2009 Dmitry V. Levin <ldv@altlinux.org> * git-set-file-times: Import from rsync.
it-set-file-times
76ac37d8d57c17ec00612f50532a2b275c8c50da 10-Oct-2009 Dmitry V. Levin <ldv@altlinux.org> * Makefile.am [MAINTAINER_MODE]: Define and export TAR_OPTIONS.
akefile.am
783f5bc24c7ce99739f1e1cd71060fda26aa43e3 09-Oct-2009 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().
pc.c
d7bb8b49cc89d428c3a415b94a6ddfcff754dc85 09-Oct-2009 Dmitry V. Levin <ldv@altlinux.org> * NEWS: Update for 4.5.19 release.
EWS
ef941013d2f2e441ee155dfc26fa7ea1345eb926 08-Oct-2009 Dmitry V. Levin <ldv@altlinux.org> 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().
pc.c
002e985526a6e6451f8cdaca88e34f4777377848 07-Oct-2009 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.
pc.c
c1a5b7e8c42086635d09ce8adc7f8b3dd018c999 08-Oct-2009 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.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
onfigure.ac
trace.c
yscall.c
229738ce4e5432023024d15b74541222228eb7b3 08-Oct-2009 Mike Frysinger <vapier@gentoo.org> 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.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
ile.c
8bfc23e056cdfc3a8f4eed426db706dd63234c88 07-Oct-2009 Mike Frysinger <vapier@gentoo.org> Add sys_nanosleep() prototype for sparc

* linux/sparc/syscall.h (sys_nanosleep): New prototype.
Reported by Frederik Schüler.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
inux/sparc/syscall.h
09a13c2da736aa9a74e7de761062c82832f7cf04 07-Oct-2009 Mike Frysinger <vapier@gentoo.org> 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.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
til.c
aab05bd713b18b0c99dfae83017b850c87d9d789 07-Oct-2009 Mike Frysinger <vapier@gentoo.org> Ignore .gdb files from FLAT toolchains

* .gitignore: Add /*.gdb.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
gitignore
24ab9600b6b17937514cc9f935cb7390eea0f1e8 07-Oct-2009 Mike Frysinger <vapier@gentoo.org> * configure.ac (AC_CHECK_FUNCS): Sort and expand.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
onfigure.ac
e90cc742759b95a1e8aff0caa917bc1f3742f5ac 07-Oct-2009 Mike Frysinger <vapier@gentoo.org> Blackfin: Update ioctl/syscall lists

* linux/bfin/ioctlent.h: Sync list with latest kernel sources.
* linux/bfin/syscallent.h: Likewise.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
inux/bfin/ioctlent.h
inux/bfin/syscallent.h
b065daa71bdd832cf5d85b1cae5759c84388c2d7 07-Oct-2009 Mike Frysinger <vapier@gentoo.org> ioctlsort: Check ppc hosts too

* linux/ioctlsort.c: Check for __powerpc__.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
inux/ioctlsort.c
0fda1c59cc707918b7d5de9c516c629d0abb4f3c 07-Oct-2009 Andreas Schwab <schwab@redhat.com> Fix build on ia64

* linux/ia64/syscallent.h: Update for addition of accept4 syscall
in ../syscallent.h.
inux/ia64/syscallent.h
d087571b3e54ff7485dd85f20614e0e020a3525d 07-Oct-2009 Roland McGrath <roland@redhat.com> * strace.spec (%doc): Add ChangeLog-CVS.
trace.spec
2b832dfa69b943d4efb687c5f9516069fe9eff12 07-Oct-2009 Roland McGrath <roland@redhat.com> * Makefile.am (srpm): New phony target.
akefile.am
a478d741dcc28ed9183427b463d39f152ed2f90a 07-Oct-2009 Roland McGrath <roland@redhat.com> * Makefile.am (EXTRA_DIST): Add ChangeLog.

($(srcdir)/ChangeLog): New target, replaces gen-changelog phony target.
Put it inside [MAINTAINER_MODE].
akefile.am
84c693e99aa1a1ceac5fdcb4b59bfd1a18b8973d 06-Oct-2009 Dmitry V. Levin <ldv@altlinux.org> * NEWS: Update for 4.5.19 release.
EWS
f786da5b1be84743bd9287304b6dad3633339ed8 05-Oct-2009 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.
ebian/changelog
ebian/control
ebian/rules
67874d8393499e3c7f0d5a950f2707758560f61f 06-Oct-2009 Dmitry V. Levin <ldv@altlinux.org> * defs.h [HPPA]: Lower MAX_ARGS from 32 to 6.
efs.h
c0124e64489277d2d8a6c76ee66579ffa18e052e 06-Oct-2009 Dmitry V. Levin <ldv@altlinux.org> * ipc.c [LINUX] (sys_shmat): HPPA does not use an IPC multiplexer.

Based on patch from Carlos O'Donell.
pc.c
1dc2061c2ac7a73fa3d88fa0b10079151f7de530 14-Sep-2009 Carlos O'Donell <carlos@systemhalted.org> * linux/hppa/syscallent.h: Update syscalls.

Based on work by Kyle McMartin and Helge Deller.
inux/hppa/syscallent.h
4677c8af94bcb3f39d5bf929ee44cd6724b7d0b8 09-Sep-2009 Carlos O'Donell <carlos@systemhalted.org> Fix SA_HANDLER function pointer comparisons for hppa

* signal.c (sys_sigaction): Cast SA_HANDLER function pointers to long.
(sys_rt_sigaction): Likewise.
ignal.c
eeb9ce3895f1ca0920d50696ef8b48124cef9da6 05-Oct-2009 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.

Signed-off-by: Edgar E. Iglesias <edgar@axis.com>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
yscall.c
til.c
9d2ee3d6aab520656b053d1d04cadff165d14759 05-Oct-2009 Dmitry V. Levin <ldv@altlinux.org> * signal.c (do_signalfd): Fix typo in output format.
ignal.c
7304fd9abdd85881e90baf9b4077cfdd0da12477 21-Sep-2009 Dmitry V. Levin <ldv@altlinux.org> * Makefile.am (gen_changelog_start_date): Fix date.
akefile.am
fbfed22854797d0078750a94ea0e3e195c33ba9d 14-Sep-2009 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.
EWS
onfigure.ac
ebian/changelog
trace.spec
22a97807b0e82e514c05231b99c09b7ef0d2190e 14-Sep-2009 Dmitry V. Levin <ldv@altlinux.org> 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.
ebian/changelog
ebian/compat
ebian/control
896db21e6d20e13f5b125364e3dffdf27608d7f5 19-Sep-2009 Kirill A. Shutemov <kirill@shutemov.name> Fix fadvise64 decoding on ARM

* file.c (sys_fadvise64_64) [ARM]: Fix argument ordering.

Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
ile.c
7674006eed0a3c4de34fac89fc3592520c728637 18-Sep-2009 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.

Signed-off-by: Steve Bennett <steveb@workware.net.au>
Reviewed-by: Kirill A. Shutemov <kirill@shutemov.name>
rocess.c
86b23b73b8643ddb4fc0936def1595be943d49ae 14-Sep-2009 Mike Frysinger <vapier@gentoo.org> Mark shell scripts as executable

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
rrnoent.sh
reebsd/ioctlent.sh
inux/ioctlent.sh
inux/mips/ioctlent.sh
ignalent.sh
unos4/ioctlent.sh
vr4/ioctlent.sh
yscallent.sh
8b1218e5fffe30b0157c7c592ccc1eaddfab86dd 14-Sep-2009 Mike Frysinger <vapier@gentoo.org> Ignore ioctlsort helper program

* .gitignore: Add ioctlsort.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
gitignore
4651222197ed474ac3e6c9a2331394cdc9fc9756 14-Sep-2009 Mike Frysinger <vapier@gentoo.org> linux/errno: Add ERFKILL

* linux/errnoent.h: Change ERRNO_132 to ERFKILL according to errno 132
definition introduced in Linux 2.6.31.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
inux/errnoent.h
8a56b8a8e77e095b6152253dc99fc5f4c226d02f 14-Aug-2009 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.
inux/arm/syscallent.h
inux/m68k/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscall.h
inux/sparc/syscallent.h
inux/syscall.h
inux/syscallent.h
705ff10c0b9c07b9b51fc2f2bc6f3e6412f6ed9c 14-Aug-2009 Paolo Bonzini <pbonzini@redhat.com> 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.
inux/syscall.h
inux/x86_64/syscallent.h
et.c
99c85693a54e3da6c0e45127e25331766c071c2a 28-Aug-2009 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".
rocess.c
a0b125c9afa56cc094f215fba1501aed5bbf9b66 21-Aug-2009 Lorenzo Colitti <lorenzo@google.com> Point strace at the correct headers so its output is correct on ARM devices.
ndroid.mk
85f583229fdc670c54a6c8a2f7b2f05bb0d57ab7 12-Aug-2009 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.
rocess.c
c38107a7674d2c74a213228afe52eb6486dfea6c 26-Jul-2009 Jean-Baptiste Queru <jbq@google.com> reconcile korg/master into goog/master
53ca62d15f255cae115aac69d7ab2b825c689ed1 26-Jul-2009 Jean-Baptiste Queru <jbq@google.com> Merge korg/donut into korg/master
08f922a574ceed1cc092b79a5aa6a46c2925cd0d 09-Jul-2009 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.

Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
gitignore
hangeLog
hangeLog-CVS
akefile.am
EADME-hacking
itlog-to-changelog
414fe7d4d284e22d7855c5367f17dbc0714738d9 08-Jul-2009 Dmitry V. Levin <ldv@altlinux.org> Cleanup trailing whitespaces and indentation that uses spaces before tabs

Correct spacing to fix warnings reported by
git diff --check 4b825dc642cb6eb9a060e54bf8d69288fbee4904 HEAD

Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
hangeLog
NSTALL
EADME-linux
EADME-svr4
jm.c
ebian/changelog
ebian/rules
esc.c
inux/sparc/gen.pl
inux/sparc/syscall1.h
inux/sparc64/syscall1.h
inux/x86_64/gentab.pl
trace-graph
unos4/syscall.h
vr4/syscallent.h
yscall.c
est/Makefile
est/childthread.c
est/leaderkill.c
82f4cc6eee722cd327f7a43d236b51cd37180b63 08-Jul-2009 Dmitry V. Levin <ldv@altlinux.org> README-CVS: Rename to README-hacking

Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
hangeLog
akefile.am
EADME-CVS
EADME-hacking
5f87a09c6cb54f42db2366eae59bf36ea494c86c 07-Jul-2009 Dmitry V. Levin <ldv@altlinux.org> .cvsignore: Remove obsolete file

Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
cvsignore
hangeLog
eb9e2e8904ce85a6c7390be25bb873c6db88c4d3 03-Jun-2009 Roland McGrath <roland@redhat.com> Revert unapproved commits.
hangeLog
efs.h
esc.c
rocess.c
ignal.c
trace.c
vr4/syscallent.h
yscall.c
est/childthread.c
est/leaderkill.c
est/many_looping_threads.c
til.c
4ac9d627f4b8d2022958668e5c2f3b784605cb16 01-Jun-2009 Dmitry V. Levin <ldv@altlinux.org> * strace.c (handle_stopped_tcbs): Fix cast for 4th argument passed to ptrace().
hangeLog
trace.c
4bcd5ef92281106dc479ef79623353d59c7101ee 01-Jun-2009 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.
hangeLog
jm.c
ile.c
rocess.c
ignal.c
f48df6ce298672621718d3921d3f357fc68c4433 01-Jun-2009 Dmitry V. Levin <ldv@altlinux.org> 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>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
hangeLog
onfigure.ac
ystem.c
0b8c79a2f6cf87f09bd6d9b7d404faa924af8ee2 23-Apr-2009 Jean-Baptiste Queru <jbq@google.com> Merge donut into master
5bb66b56e34ca2583fb16d7feb7f421e0dd84e63 23-Apr-2009 Jean-Baptiste Queru <jbq@google.com> merge cupcake into donut
1f9b727dc8c604adff0d8c87002c3564364782a2 23-Apr-2009 Jean-Baptiste Queru <jbq@google.com> Merge donut into master
d80ed6c5c6c521325319de76514a5b610f801cf3 20-Apr-2009 Denys Vlasenko <dvlasenk@redhat.com> fix thinko in ChangeLog
hangeLog
4e718b5ea2014839c298dbd7b7cb0f1c15fae1aa 20-Apr-2009 Denys Vlasenko <dvlasenk@redhat.com> * strace.c (printstatsol, printstat_sparc64):
Remove NULL and error check for addr parameter.
(printoldstat, printstat, printoldstat64):
Move NULL and error check for addr parameter
so that it happens before printstatsol/printstat_sparc64 calls.
hangeLog
ile.c
246f42ff5ab28f71a08d790352f9411db99e0fb8 20-Apr-2009 Denys Vlasenko <dvlasenk@redhat.com> * strace.c (collect_stopped_tcbs): Do not enable/disable signals
multiple times, do it just once per collecting pass.
hangeLog
trace.c
e740fd31d2dd4720de2c39f10b5096e9eac40484 16-Apr-2009 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.
hangeLog
ile.c
rocess.c
b1a78cf3eeef995a9fd4bcf39ac7179fdc381979 15-Apr-2009 Denys Vlasenko <dvlasenk@redhat.com> * signal (sys_rt_sigtimedwait): Fix sigtimedwait syscall decoding.
hangeLog
ignal.c
7a862d76203181c8df053a69f18d46146b81d508 15-Apr-2009 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.
hangeLog
esc.c
ignal.c
1d632468c09756d3382d1a92f99a8413636e75d3 14-Apr-2009 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.
hangeLog
ile.c
rocess.c
esource.c
ignal.c
ime.c
6be8f1ed6975c34b8e3ace7e1b509489d7d6cbd8 29-Mar-2009 The Android Open Source Project <initial-contribution@android.com> Merge branch 'open_source_no_contributions' into google_internal
2a8dda76c6fc5631591c3271a6610326780aaafb 27-Mar-2009 The Android Open Source Project <initial-contribution@android.com> Merge commit 'korg/cupcake'
86f5deb1d24010a178615e2cff38687f304ef0f0 25-Mar-2009 Dianne Hackborn <> Automated import from //branches/donutburger/...@140818,140818
OTICE
317b47bef7d3cdcd3a90b8eb92cf87cdfa583078 25-Mar-2009 Dianne Hackborn <> Automated import from //branches/master/...@140824,140824
OTICE
132c52a5ccf7b12a44a617f06c97d3f4344a4421 23-Mar-2009 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.
hangeLog
et.c
ystem.c
39fa62802071eac3ce9aaf70568d75340db85346 20-Mar-2009 Denys Vlasenko <dvlasenk@redhat.com> Update Changelog to more accurately describe the changes.
hangeLog
1e209212163c84290990e1c5e75200c733ba0bf2 20-Mar-2009 Denys Vlasenko <dvlasenk@redhat.com> As it turned out, "if (interrupted) break;" is needed in both loops,
in "collect tasks" loop and in enclosing "collect/process" loop.
Before this patch, "strace cat" + "killall -INT strace" wasn't
making strace stop and exit. This patch restores 4.5.18 behavior
in this regard.
trace.c
68620c9c3d2755cbdc5497c38d319762d5b16099 20-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@141571
OTICE
c8905ec3e2a8136459d4823f1c6a1cd608b4c671 18-Mar-2009 Jean-Baptiste Queru <jbq@google.com> Merge commit 'remotes/korg/cupcake' into merge
aab52cae4cf597a556911fec3ef4cb5803a95b12 17-Mar-2009 Denys Vlasenko <dvlasenk@redhat.com> Remove "better attach to SIGSTOP", it is not correct...
(^C fix remains).
hangeLog
trace.c
222713aa409c5caa47327a084f1083a7d6fee66f 17-Mar-2009 Denys Vlasenko <dvlasenk@redhat.com> * strace.c (startup_attach): Take care to correctly attach
to stopped processes by resending SIGSTOP.
(collect_stopped_tcbs): Check for ^C here, not in trace().
(trace): Remove check for ^C.
hangeLog
trace.c
eedaac768dcb55346292495440f1201bd7b2b1b4 10-Mar-2009 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().
hangeLog
efs.h
esc.c
ile.c
pc.c
c71016ea799c6ca5b7bfca60eb845266af9c065f 06-Mar-2009 Denys Vlasenko <dvlasenk@redhat.com> defs.h: cosmetics (wrap overlong line)
efs.h
34d6eabc451f16d5f168fc1595ee604f21bccc51 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
UTHORS
ndroid.mk
OPYRIGHT
REDITS
hangeLog
NSTALL
ODULE_LICENSE_BSD
akefile.am
akefile.in
EWS
ORTING
EADME
EADME-Android
EADME-linux
ODO
cinclude.m4
clocal.m4
ndroid/arch/arm/config.h
ndroid/arch/x86/config.h
rm-eabi.patch
jm.c
onfig.guess
onfig.h.in
onfig.log
onfig.status
onfig.sub
onfigure
onfigure.ac
efs.h
epcomp
esc.c
rrnoent.sh
ile.c
nstall-sh
o.c
octl.c
octlsort.c
pc.c
inux/dummy.h
inux/errnoent.h
inux/ioctlent.h
inux/ioctlent.sh
inux/ioctlsort.c
inux/signalent.h
inux/syscall.h
inux/syscallent.h
em.c
issing
kinstalldirs
et.c
roc.c
rocess.c
esource.c
ignal.c
ignalent.sh
ock.c
trace-graph
trace.1
trace.c
trace.spec
trace/linux/alpha/errnoent.h
trace/linux/alpha/ioctlent.h
trace/linux/alpha/signalent.h
trace/linux/alpha/syscallent.h
trace/linux/dummy.h
trace/linux/errnoent.h
trace/linux/hppa/errnoent.h
trace/linux/hppa/ioctlent.h
trace/linux/hppa/signalent.h
trace/linux/hppa/syscallent.h
trace/linux/ia64/errnoent.h
trace/linux/ia64/ioctlent.h
trace/linux/ia64/signalent.h
trace/linux/ia64/syscallent.h
trace/linux/ioctlent.h
trace/linux/ioctlent.sh
trace/linux/ioctlsort.c
trace/linux/mips/errnoent.h
trace/linux/mips/ioctlent.h
trace/linux/mips/ioctlent.sh
trace/linux/mips/signalent.h
trace/linux/mips/syscallent.h
trace/linux/powerpc/errnoent.h
trace/linux/powerpc/ioctlent.h
trace/linux/powerpc/signalent.h
trace/linux/powerpc/syscallent.h
trace/linux/s390/errnoent.h
trace/linux/s390/ioctlent.h
trace/linux/s390/signalent.h
trace/linux/s390/syscallent.h
trace/linux/s390x/errnoent.h
trace/linux/s390x/ioctlent.h
trace/linux/s390x/signalent.h
trace/linux/s390x/syscallent.h
trace/linux/sh/errnoent.h
trace/linux/sh/ioctlent.h
trace/linux/sh/signalent.h
trace/linux/sh/syscallent.h
trace/linux/sh64/syscallent.h
trace/linux/signalent.h
trace/linux/sparc/dummy2.h
trace/linux/sparc/errnoent.h
trace/linux/sparc/errnoent1.h
trace/linux/sparc/gen.pl
trace/linux/sparc/ioctlent.h
trace/linux/sparc/ioctlent1.h
trace/linux/sparc/signalent.h
trace/linux/sparc/signalent1.h
trace/linux/sparc/syscall.h
trace/linux/sparc/syscall.h.2
trace/linux/sparc/syscall1.h
trace/linux/sparc/syscallent.h
trace/linux/sparc/syscallent1.h
trace/linux/sparc64/dummy2.h
trace/linux/sparc64/errnoent.h
trace/linux/sparc64/errnoent1.h
trace/linux/sparc64/errnoent2.h
trace/linux/sparc64/ioctlent.h
trace/linux/sparc64/ioctlent1.h
trace/linux/sparc64/ioctlent2.h
trace/linux/sparc64/signalent.h
trace/linux/sparc64/signalent1.h
trace/linux/sparc64/signalent2.h
trace/linux/sparc64/syscall.h
trace/linux/sparc64/syscall1.h
trace/linux/sparc64/syscallent.h
trace/linux/sparc64/syscallent1.h
trace/linux/sparc64/syscallent2.h
trace/linux/syscall.h
trace/linux/syscallent.h
trace/linux/x86_64/errnoent1.h
trace/linux/x86_64/gentab.pl
trace/linux/x86_64/ioctlent1.h
trace/linux/x86_64/signalent1.h
trace/linux/x86_64/syscallent.h
trace/linux/x86_64/syscallent1.h
tream.c
yscall-android.h
yscall.c
yscallent.sh
ystem.c
erm.c
ime.c
til.c
fb1f778a58eaa58b8c329c3e3e7521e2abeaf1ef 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
UTHORS
ndroid.mk
OPYRIGHT
REDITS
hangeLog
NSTALL
ODULE_LICENSE_BSD
akefile.am
akefile.in
EWS
ORTING
EADME
EADME-Android
EADME-linux
ODO
cinclude.m4
clocal.m4
ndroid/arch/arm/config.h
ndroid/arch/x86/config.h
rm-eabi.patch
jm.c
onfig.guess
onfig.h.in
onfig.log
onfig.status
onfig.sub
onfigure
onfigure.ac
efs.h
epcomp
esc.c
rrnoent.sh
ile.c
nstall-sh
o.c
octl.c
octlsort.c
pc.c
inux/dummy.h
inux/errnoent.h
inux/ioctlent.h
inux/ioctlent.sh
inux/ioctlsort.c
inux/signalent.h
inux/syscall.h
inux/syscallent.h
em.c
issing
kinstalldirs
et.c
roc.c
rocess.c
esource.c
ignal.c
ignalent.sh
ock.c
trace-graph
trace.1
trace.c
trace.spec
trace/linux/alpha/errnoent.h
trace/linux/alpha/ioctlent.h
trace/linux/alpha/signalent.h
trace/linux/alpha/syscallent.h
trace/linux/dummy.h
trace/linux/errnoent.h
trace/linux/hppa/errnoent.h
trace/linux/hppa/ioctlent.h
trace/linux/hppa/signalent.h
trace/linux/hppa/syscallent.h
trace/linux/ia64/errnoent.h
trace/linux/ia64/ioctlent.h
trace/linux/ia64/signalent.h
trace/linux/ia64/syscallent.h
trace/linux/ioctlent.h
trace/linux/ioctlent.sh
trace/linux/ioctlsort.c
trace/linux/mips/errnoent.h
trace/linux/mips/ioctlent.h
trace/linux/mips/ioctlent.sh
trace/linux/mips/signalent.h
trace/linux/mips/syscallent.h
trace/linux/powerpc/errnoent.h
trace/linux/powerpc/ioctlent.h
trace/linux/powerpc/signalent.h
trace/linux/powerpc/syscallent.h
trace/linux/s390/errnoent.h
trace/linux/s390/ioctlent.h
trace/linux/s390/signalent.h
trace/linux/s390/syscallent.h
trace/linux/s390x/errnoent.h
trace/linux/s390x/ioctlent.h
trace/linux/s390x/signalent.h
trace/linux/s390x/syscallent.h
trace/linux/sh/errnoent.h
trace/linux/sh/ioctlent.h
trace/linux/sh/signalent.h
trace/linux/sh/syscallent.h
trace/linux/sh64/syscallent.h
trace/linux/signalent.h
trace/linux/sparc/dummy2.h
trace/linux/sparc/errnoent.h
trace/linux/sparc/errnoent1.h
trace/linux/sparc/gen.pl
trace/linux/sparc/ioctlent.h
trace/linux/sparc/ioctlent1.h
trace/linux/sparc/signalent.h
trace/linux/sparc/signalent1.h
trace/linux/sparc/syscall.h
trace/linux/sparc/syscall.h.2
trace/linux/sparc/syscall1.h
trace/linux/sparc/syscallent.h
trace/linux/sparc/syscallent1.h
trace/linux/sparc64/dummy2.h
trace/linux/sparc64/errnoent.h
trace/linux/sparc64/errnoent1.h
trace/linux/sparc64/errnoent2.h
trace/linux/sparc64/ioctlent.h
trace/linux/sparc64/ioctlent1.h
trace/linux/sparc64/ioctlent2.h
trace/linux/sparc64/signalent.h
trace/linux/sparc64/signalent1.h
trace/linux/sparc64/signalent2.h
trace/linux/sparc64/syscall.h
trace/linux/sparc64/syscall1.h
trace/linux/sparc64/syscallent.h
trace/linux/sparc64/syscallent1.h
trace/linux/sparc64/syscallent2.h
trace/linux/syscall.h
trace/linux/syscallent.h
trace/linux/x86_64/errnoent1.h
trace/linux/x86_64/gentab.pl
trace/linux/x86_64/ioctlent1.h
trace/linux/x86_64/signalent1.h
trace/linux/x86_64/syscallent.h
trace/linux/x86_64/syscallent1.h
tream.c
yscall-android.h
yscall.c
yscallent.sh
ystem.c
erm.c
ime.c
til.c
5ae2b7c601dadf79a4345e1ee21053947b9e4add 27-Feb-2009 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.
hangeLog
akefile.am
onfigure.ac
efs.h
esc.c
ile.c
inux/avr32/syscallent.h
inux/s390x/syscallent.h
et.c
roc.c
rocess.c
ignal.c
trace.c
tream.c
yscall.c
til.c
ea0e6e80260d2b1b7ad40282012b0e47869bcddf 25-Feb-2009 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.
hangeLog
onfigure.ac
rocess.c
ignal.c
yscall.c
til.c
8ed57276426392f961d557ea0bf54d9ba6ac4a5f 25-Feb-2009 Denys Vlasenko <dvlasenk@redhat.com> By Hans-Christian Egtvedt (hans-christian.egtvedt AT atmel.com):

strace.c: suppress "warning: unused static" message by adding #ifdef's around
a variable
.gitignore: trivial
test/*.c: cleanup (suppress warnings, much better style).
gitignore
trace.c
est/childthread.c
est/clone.c
est/fork.c
est/leaderkill.c
est/many_looping_threads.c
est/procpollable.c
est/sfd.c
est/sig.c
est/sigkill_rain.c
est/skodic.c
est/vfork.c
4dedd561d61562fe66f1a0b673ad33ac6a1e3c71 24-Feb-2009 Denys Vlasenko <dvlasenk@redhat.com> Replace many more bare ptrace calls with calls to wrappers
which do proper error-checking and set tcp->ptrace_errno.
In some cases, missing error checking is added.
Error handling for trace_syscall() failures and other cases
where tcp->ptrace_errno is nonzero is cleaned up a bit
and made more verbose if we see error other than ESRC.
Some comments are added or expanded.
* defs.h: Declare ptrace_cmds[]. Modify do_ptrace
declaration (last parameter is long, not void *).
* process.c: Make ptrace_cmds[] non-static.
(change_syscall): Use do_ptrace() instead of bare ptrace().
* signal.c: Use do_ptrace() instead of bare ptrace().
* strace.c: Update trace_syscall() failure handling.
* syscall.c: Use do_ptrace() instead of bare ptrace().
* util.c: Use do_ptrace() instead of bare ptrace().
Update do_ptrace() wrapper.
(str_PTRACE_xxx): New function - helper returning "PTRACE_xxx".
(do_ptrace_peekdata): New function - wrapper for PTRACE_PEEKDATA
(do_ptrace5): New function - wrapper for 5-argument ptrace calls.
hangeLog
efs.h
rocess.c
ignal.c
trace.c
yscall.c
til.c
c7e837154dae4db1cdf78e6251eb103cde2e3465 24-Feb-2009 Denys Vlasenko <dvlasenk@redhat.com> * process.c: Indent preprocessor directives so that nesting
can be figured out. Add PTRACE_SET_SYSCALL to ptrace_cmds[].
hangeLog
rocess.c
e6d113ff3edd44f814bea186cb5ce24e10314608 23-Feb-2009 Denys Vlasenko <dvlasenk@redhat.com> linux/ioctlent.sh: update by Mike Frysinger (now collects enums too)
inux/ioctlent.sh
c43a515f3bb3917e997631007764dbdb1f04f4e7 23-Feb-2009 Denys Vlasenko <dvlasenk@redhat.com> More cleanups from Mike Frysingler:
README: update an URL
.gitignore: added
config.guess config.sub install-sh: removed, they are revenerated
by autoconf anyway
gitignore
EADME
onfig.guess
onfig.sub
nstall-sh
5e97754cfedb4bbf180f6bd077d478d6c5653657 23-Feb-2009 Denys Vlasenko <dvlasenk@redhat.com> HACKING-scripts: new doc file by Mike Frysinger
ACKING-scripts
8a4bdf842ec2a20d45e8aa5c2437f3c55565e69b 22-Feb-2009 Denys Vlasenko <dvlasenk@redhat.com> s/sort | uniq/sort -u/
inux/ioctlent.sh
f3c9ed48bc1a476e3cd0919971b0ddaaec968c9c 20-Feb-2009 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.
hangeLog
akefile.am
inux/powerpc/signalent.h
inux/s390/signalent.h
inux/s390x/signalent.h
3566e3d5f2e1c90ab8a918fef101f843bf610d81 20-Feb-2009 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.
hangeLog
inux/ioctlent.sh
53560265c69774e655f49bf7da839cfe350606ed 20-Feb-2009 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.
hangeLog
akefile.am
inux/sh/signalent.h
361f82b8538894fd0efe7bb56e0c63a3bb87f687 20-Feb-2009 Denys Vlasenko <dvlasenk@redhat.com> fix accidental damage to ChangeLog
hangeLog
185cce13733577c9e9a607e92e88d30acca15d5f 20-Feb-2009 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.
hangeLog
akefile.am
inux/errnoent.h
inux/powerpc/errnoent.h
d8df3718ca335dfbdad29760125341dfa7a8a602 20-Feb-2009 Denys Vlasenko <dvlasenk@redhat.com> Patch by Mike Frysinger (vapier AT gentoo.org).
Removing redundant errnoent.h files.
* Makefile.am: Remove references 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.
hangeLog
akefile.am
inux/ia64/errnoent.h
inux/s390/errnoent.h
inux/s390x/errnoent.h
inux/sh/errnoent.h
26de70e92ed103c40c99ab10e74cb6e51f25160e 13-Feb-2009 Denys Vlasenko <dvlasenk@redhat.com> test/sigkill_rain.c: a testcase with lots of async deaths
est/sigkill_rain.c
b2c048b394ff3ca9d7bd1a112761b5515521bf8d 11-Feb-2009 Roland McGrath <roland@redhat.com> .
hangeLog
587c7b50adbe9b1f287917db8b0f5e27f0b6eb98 11-Feb-2009 Roland McGrath <roland@redhat.com> 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>.
onfigure.ac
ignal.c
84e20af5a6f3d6e02c24579b60a282053ef01e0e 10-Feb-2009 Denys Vlasenko <dvlasenk@redhat.com> Cleanup after tcb table expansion simplification.
There was code which was trying to continue tracing
even if table expansion fails. Now we treat it as fatal
failure, so this code is removed by this change.
* defs.h: Delete TCB_FOLLOWFORK constant.
* process.c: Delete fork_tcb() and all calls of it.
* strace.c (startup_attach): Remove usage of TCB_FOLLOWFORK.
* syscall.c: Indent preprocessor directives.
hangeLog
efs.h
rocess.c
trace.c
yscall.c
3bb7cd6660032e97f76e8f62efd3540dbba97656 09-Feb-2009 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.
hangeLog
efs.h
trace.c
til.c
7a8bf065802f836901ae886317efcb4ed77cae7b 29-Jan-2009 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.
hangeLog
trace.c
7e0615f3aecc023e2756a83bdf113c5ceaac431d 28-Jan-2009 Denys Vlasenko <dvlasenk@redhat.com> * process.c (internal_clone): Check and complain if pid value
looks insane.
* strace.c (alloc_tcb): Clear *all* fields in reused tcb.
(main): Query and remember uname() info on startup.
(handle_stopped_tcbs): Do not use PTRACE_SETOPTIONS on Linux < 2.6.29.
(printleader): Correct printing of "<unavailable>" markers.
hangeLog
rocess.c
trace.c
47ce6dfc9f54fe8809179fd4e200e4e2f5bb7d02 27-Jan-2009 Denys Vlasenko <dvlasenk@redhat.com> * strace.c (collect_stopped_tcbs): Guard against the case when
waitpid() reports the same task multiple times.
Run tested.
hangeLog
trace.c
59432dbb333959618b5afdb9a7513d1ab0289a14 26-Jan-2009 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.
hangeLog
efs.h
rocess.c
esource.c
db78f76e968f426ced5901cbda452b1827535a3a 26-Jan-2009 Denys Vlasenko <dvlasenk@redhat.com> fix fallout from recent tcb table expansion error handling change
hangeLog
rocess.c
fb03667fad9cca59460e739e2f8d69f304ff7a33 23-Jan-2009 Denys Vlasenko <dvlasenk@redhat.com> syscall.c (get_scno): Fix warnings about unused 'pid' variable
hangeLog
yscall.c
1f458256448d3fcbfbd80869a5b7ef17f19da4e0 23-Jan-2009 Denys Vlasenko <dvlasenk@redhat.com> By 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'.
hangeLog
em.c
2c8a2583612f4df2a93cb8d180aadda4e93ec1dd 21-Jan-2009 Denys Vlasenko <dvlasenk@redhat.com> * strace.c (collect_stopped_tcbs): Do not return NULL when ECHILD
is detected, return collected list instead. Fixes symptom when
the last "+++ killed by SIGxxx +++" is not printed.
hangeLog
trace.c
418d66a847bda4867c59e604c0d07c64ed53e320 17-Jan-2009 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.
hangeLog
efs.h
rocess.c
trace.c
til.c
1d5b113f8c013b11afa10de8393e770b29c648fd 17-Jan-2009 Denys Vlasenko <dvlasenk@redhat.com> * defs.h: Update a comment. No code changes.
* strace.c (handle_stopped_tcbs): Discard all execve stops
and clear TCB_WAITEXECVE bit.
* syscall.c (get_scno): Add the code to not mistakenly
treat ptrace stop as execve stop (execve stops can be blocked
by traced program).
Fixes RH#477775 "strace hangs if the target process blocks SIGTRAP".
hangeLog
efs.h
trace.c
yscall.c
f9a7e63a1ad57a87c1e6be10b7a6b49282ed1203 17-Jan-2009 Denys Vlasenko <dvlasenk@redhat.com> * process.c: Add a comment. No code changes.
* strace.c (collect_stopped_tcbs): Stop reversing list of stopped
tcp's. I'm not totally convinced it is crucial, but this is surely
fits the concept of "least surprise".
Do not collect TCB_SUSPENDED tcp's (this is closer to how
it was before).
(handle_stopped_tcbs): Remove the code to reject TCB_SUSPENDED tcp's,
it's done earlier now. In an unobvious way, this was causing
SIGSTOPs from freshly attached children to be misinterpreted.
hangeLog
rocess.c
trace.c
8aeed47e6a7b2ee0086786bd0bd180796edc1475 14-Jan-2009 Denys Vlasenko <dvlasenk@redhat.com> * linux/bfin/syscallent.h: sys_futex has 6 parameters, not 5.
hangeLog
inux/bfin/syscallent.h
f535b54bc40373c81b13df0975aef4212dacbbde 13-Jan-2009 Denys Vlasenko <dvlasenk@redhat.com> Fixes for ptrace() argument parsing.
* process.c: Add parsing of PTRACE_SETOPTIONS, PTRACE_GETEVENTMSG,
PTRACE_GETSIGINFO, PTRACE_SETSIGINFO.
* strace.c (handle_stopped_tcbs): Make PTRACE_SETOPTIONS
define check more robust.
* 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.
hangeLog
efs.h
esc.c
et.c
rocess.c
ignal.c
ock.c
trace.c
til.c
215cc2703763894faea05899642ea5dfd5fc5c95 09-Jan-2009 Denys Vlasenko <dvlasenk@redhat.com> * defs.h: Add new struct tcb fields: wait_status, next_need_service.
make flags field wider (ints are easier to work with on many CPUs).
* strace.c (trace): Split this function into two:
collect_stopped_tcbs() and handle_stopped_tcbs().
Now we collect *all* waitable tasks, then handle them all,
then repeat.
Fixes RH#478419 "Some threads stop when strace with -f option
is executed on a multi-thread process"
* test/many_looping_threads.c: example program which cna't be straced
successfully without this fix.
hangeLog
efs.h
trace.c
est/many_looping_threads.c
ef2fbf856cf775981b52278c80ce2a74a44019f4 06-Jan-2009 Denys Vlasenko <dvlasenk@redhat.com> Output format fixes, improving the situation after recent
change which added better 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.
hangeLog
efs.h
rocess.c
trace.c
yscall.c
til.c
30b5e5ab67ad13a37cb2b010332c2b434d887fe2 06-Jan-2009 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.
hangeLog
esc.c
8236f254b797057396c6ec41b616a0ea3fc4a8a1 02-Jan-2009 Denys Vlasenko <dvlasenk@redhat.com> * syscall.c: more cosmetics. fixed a few localized style discrepancies.
The only actual code change is a trivial one where
a char *array[] made const and static.
yscall.c
bc161ecae6dc18cef8739e6c066eb91ba8bf2634 02-Jan-2009 Denys Vlasenko <dvlasenk@redhat.com> * defs.h, syscall.c: explain why x86 does not need TCB_WAITEXECVE trick,
and what syscall_fixup() is expected to do. Comments only, no code changes.
efs.h
yscall.c
0861ecbb44c1a7756e776af4a6fd7731e2a82a68 02-Jan-2009 Denys Vlasenko <dvlasenk@redhat.com> * strace.c: Fix compile failure: on some systems PTRACE_O_xxx
and PTRACE_EVENT_xxx constants are not defined.
hangeLog
trace.c
402eeb6d1ffbdeefc0bee448a56c0181a0b3c3a2 02-Jan-2009 Denys Vlasenko <dvlasenk@redhat.com> trailing whitespace removal, no code changes
EADME-freebsd
EADME-linux
ebian/changelog
ebian/control
reebsd/syscalls.pl
inux/x86_64/gentab.pl
trace-graph
06bfe26236330044e553d1681083e82f39b76145 02-Jan-2009 Dmitry V. Levin <ldv@altlinux.org> 2008-11-13 Kirill A. Shutemov <kirill@shutemov.name>

* linux/arm/syscallent.h: Update syscalls.
Based on patch by Enrico Scholz.
hangeLog
inux/arm/syscallent.h
465acd2b322f19e9599f73248a00345f76d16c9f 02-Jan-2009 Dmitry V. Levin <ldv@altlinux.org> 2008-11-13 Kirill A. Shutemov <kirill@shutemov.name>

* linux/arm/syscallent.h: Fix build on ARM EABI which does not
provide syscalls socketcall and ipc.
hangeLog
inux/arm/syscallent.h
2fc6615b9137234af661ed15796e021e98e43bf9 01-Jan-2009 Dmitry V. Levin <ldv@altlinux.org> 2009-01-01 Andreas Schwab <schwab@suse.de>

* net.c (sys_accept): Properly decode third argument as pointer to
int.
hangeLog
et.c
ecfe2f19f963b5c2f176c5e70d42654d7429ce3e 30-Dec-2008 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.
hangeLog
trace.c
adedb510197209e7077310f9e9f67e3d51fb8617 30-Dec-2008 Denys Vlasenko <dvlasenk@redhat.com> Fixing many instances of broken indentation with spaces instead of tabs.
No code changes.
esc.c
ile.c
inux/hppa/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sparc/syscallent.h
em.c
rocess.c
ock.c
tream.c
yscall.c
til.c
8ba1cd7d122b5323f9a1ac8be494ddbc1352d5cd 30-Dec-2008 Denys Vlasenko <dvlasenk@redhat.com> Patch by Kirill A. Shutemov:
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.
hangeLog
efs.h
yscall.c
24f0dcea027058050643659851c3fa7ddb1828dc 29-Dec-2008 Denys Vlasenko <dvlasenk@redhat.com> * linux/syscallent.h: Mark sendfile(2) as network syscall.
* linux/*/syscallent.h: Same, for all architectures.
hangeLog
reebsd/i386/syscallent.h
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/bfin/syscallent.h
inux/hppa/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/syscallent.h
inux/x86_64/syscallent.h
96d5a76109b4f1d1f4c9c76641e6ec896108083d 29-Dec-2008 Denys Vlasenko <dvlasenk@redhat.com> * defs.h: Remove sigtrap80 field from struct tcb.
* strace.c: Add ptrace_stop_sig static variable
and use it in place of tcp->sigtrap80.
Add ptrace_opts_set static flag variable.
(trace): Set ptrace options once, not per-process.
If unexpected SIGTRAP is later received,
revert back to using SIGTRAP
(assume old, broken kernel).
hangeLog
efs.h
trace.c
b1efe53531c2f0f3fd2a4fc8a56220737539c44e 23-Dec-2008 Denys Vlasenko <dvlasenk@redhat.com> Fix build breakage from my previous commit.
Now I test for PT_SETOPTIONS being #defined.
Remove trailing whitespace.
No actual code changes.
esc.c
trace.c
vr4/syscallent.h
est/childthread.c
est/leaderkill.c
1e3ce32a4fadb58230bca4f16baf8152579dd3d0 22-Dec-2008 Denys Vlasenko <dvlasenk@redhat.com> Make strace correctly handle SIGTRAP produced by e.g.
kill(2) and by trapping instruction.
* defs.h: Add sigtrap80 field to struct tcb.
* strace.c (alloc_tcb): Initialize it to SIGTRAP.
(detach): Use tcp->sigtrap80 instead of SIGTRAP constant.
(trace): Attempt to set PTRACE_O_TRACESYSGOOD and
PTRACE_O_TRACEEXEC options on each newly attached process,
distinquish between SIGTRAP and (SIGTRAP | 0x80) stops.
Fixes RH#162774 "strace ignores int3 SIGTRAP".
hangeLog
efs.h
trace.c
67670f6420d064f0b0f54ab2cf2f07752dcc35c7 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
ndroid.mk
ndroid/arch/arm/config.h
ndroid/arch/x86/config.h
onfig.h
732d1bf4d4aaff68eff1c41d8900264637a57dfe 17-Dec-2008 Denys Vlasenko <dvlasenk@redhat.com> Make strace somewhat resilient against process disappearing
under its claws. Prime example is sudden SIGKILL.
Fixes RH#472053
hangeLog
efs.h
rocess.c
trace.c
yscall.c
til.c
73ce40e9c7ddff0f824382d4cfa06d25cf18dc28 17-Dec-2008 Denys Vlasenko <dvlasenk@redhat.com> two instances of s/sa_handler == SIG_DFL/sa_handler == SIG_IGN/
hangeLog
ignal.c
932fc7d4fc1a29e8b8bcea5685db3f6c2e212e36 16-Dec-2008 Denys Vlasenko <dvlasenk@redhat.com> This patch does not change any logic.

It merely passes tcp pointer to upeek instead of pid.
This is needed if one wants to check or change
some tcp fields.

I have patches which require this. I can imagine someone else
eventually needing to look at tcp for completely orthogonal reasons.
hangeLog
efs.h
rocess.c
ignal.c
trace.c
yscall.c
til.c
5414bf7ad0f0abfe1bc798bfb0ade2be019af5b1 10-Dec-2008 Dmitry V. Levin <ldv@altlinux.org> 2008-11-11 Dmitry V. Levin <ldv@altlinux.org>

* sock.c [LINUX] (sock_ioctl): Parse more SIOCS* ioctls.
hangeLog
ock.c
93969ec043c941d18efc15d1a252eae1b9cf145a 10-Dec-2008 Dmitry V. Levin <ldv@altlinux.org> Add RH# bugzilla tags
hangeLog
f01b09e4b4e4af168e43bdb9372e3f115028d0f0 10-Dec-2008 Roland McGrath <roland@redhat.com> .
hangeLog
a09353acc6aafdf84c5c76f276c9639a4313baa9 10-Dec-2008 Roland McGrath <roland@redhat.com> 2008-12-09 Roland McGrath <roland@redhat.com>

* strace.1 (DIAGNOSTICS): New section, describe exit behavior.
trace.1
28e81da91c433575a16a23d797ba6a954df4515f 09-Dec-2008 Denys Vlasenko <dvlasenk@redhat.com> manpage: document new feature of propagating exit code/signal death status.
trace.1
62958b2fd998e45a1fe0c2ef554ddb0a826b3445 09-Dec-2008 Denys Vlasenko <dvlasenk@redhat.com> vda tests his commit powers by removing trailing whitespace from a test
est/skodic.c
8dd31ddfcc5ee11c4876cdcc8e17fd1d1bd17631 11-Nov-2008 Dmitry V. Levin <ldv@altlinux.org> 2008-11-09 Dmitry V. Levin <ldv@altlinux.org>

* process.c (prctl_options): Update constants from linux 2.6.27.
hangeLog
rocess.c
949f451bfa2956218af8ce827332df2f55f78bc8 11-Nov-2008 Dmitry V. Levin <ldv@altlinux.org> 2008-11-09 Dmitry V. Levin <ldv@altlinux.org>

* system.c (capabilities): Add more capability values.
hangeLog
ystem.c
a501f1426eeeeeb6fc31317c1ab7cc491026f495 11-Nov-2008 Dmitry V. Levin <ldv@altlinux.org> 2008-11-09 Dmitry V. Levin <ldv@altlinux.org>

* 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.
hangeLog
til.c
4371b10b30ceb369942e93105c038519524ba18e 10-Nov-2008 Dmitry V. Levin <ldv@altlinux.org> 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.
hangeLog
esc.c
inux/syscall.h
inux/syscallent.h
inux/x86_64/syscallent.h
et.c
ignal.c
87ea1f4fe68c6110a96a76f8601b3e204200082d 10-Nov-2008 Dmitry V. Levin <ldv@altlinux.org> 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.
hangeLog
akefile.am
onfigure.ac
efs.h
inux/bfin/ioctlent.h
inux/bfin/syscallent.h
inux/syscall.h
rocess.c
yscall.c
ystem.c
til.c
d915c802ef929956e29be921f388be39a4d209a8 10-Nov-2008 Dmitry V. Levin <ldv@altlinux.org> 2008-09-18 Mike Frysinger <vapier@gentoo.org>

* configure.ac: Accept uclinux hosts as linux.
hangeLog
onfigure.ac
8a550d729d53f963452d10990cd56d1132cb1602 10-Nov-2008 Dmitry V. Levin <ldv@altlinux.org> 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.
hangeLog
et.c
a68096576afc07e51d33b49c432d658b27a7f13c 10-Nov-2008 Dmitry V. Levin <ldv@altlinux.org> 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>
hangeLog
trace.c
4a3ec90c3aa1cecc489f6fd19d785c6473ee8164 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
ndroid.mk
ODULE_LICENSE_BSD
EADME-Android
EADME-CVS
EADME-freebsd
EADME-sunos4
EADME-svr4
rm-eabi.patch
jm.c
onfig.h
onfig.log
onfig.status
ebian/changelog
ebian/control
ebian/copyright
ebian/rules
ile.c
reebsd/i386/errnoent.h
reebsd/i386/ioctlent.h
reebsd/i386/signalent.h
reebsd/i386/syscall.h
reebsd/i386/syscallent.h
reebsd/ioctlent.sh
reebsd/syscalls.cat
reebsd/syscalls.pl
reebsd/syscalls.print
inux/alpha/errnoent.h
inux/alpha/ioctlent.h
inux/alpha/signalent.h
inux/alpha/syscallent.h
inux/dummy.h
inux/hppa/errnoent.h
inux/hppa/ioctlent.h
inux/hppa/signalent.h
inux/hppa/syscallent.h
inux/ia64/errnoent.h
inux/ia64/ioctlent.h
inux/ia64/signalent.h
inux/ia64/syscallent.h
inux/mips/errnoent.h
inux/mips/ioctlent.h
inux/mips/ioctlent.sh
inux/mips/signalent.h
inux/mips/syscallent.h
inux/powerpc/errnoent.h
inux/powerpc/ioctlent.h
inux/powerpc/signalent.h
inux/powerpc/syscallent.h
inux/s390/errnoent.h
inux/s390/ioctlent.h
inux/s390/signalent.h
inux/s390/syscallent.h
inux/s390x/errnoent.h
inux/s390x/ioctlent.h
inux/s390x/signalent.h
inux/s390x/syscallent.h
inux/sh/errnoent.h
inux/sh/ioctlent.h
inux/sh/signalent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/dummy2.h
inux/sparc/errnoent.h
inux/sparc/errnoent1.h
inux/sparc/gen.pl
inux/sparc/ioctlent.h
inux/sparc/ioctlent1.h
inux/sparc/signalent.h
inux/sparc/signalent1.h
inux/sparc/syscall.h
inux/sparc/syscall.h.2
inux/sparc/syscall1.h
inux/sparc/syscallent.h
inux/sparc/syscallent1.h
inux/sparc64/dummy2.h
inux/sparc64/errnoent.h
inux/sparc64/errnoent1.h
inux/sparc64/errnoent2.h
inux/sparc64/ioctlent.h
inux/sparc64/ioctlent1.h
inux/sparc64/ioctlent2.h
inux/sparc64/signalent.h
inux/sparc64/signalent1.h
inux/sparc64/signalent2.h
inux/sparc64/syscall.h
inux/sparc64/syscall1.h
inux/sparc64/syscallent.h
inux/sparc64/syscallent1.h
inux/sparc64/syscallent2.h
inux/syscallent.h
inux/x86_64/errnoent1.h
inux/x86_64/gentab.pl
inux/x86_64/ioctlent1.h
inux/x86_64/signalent1.h
inux/x86_64/syscallent.h
inux/x86_64/syscallent1.h
rocess.c
esource.c
ignal.c
trace.c
trace/linux/alpha/errnoent.h
trace/linux/alpha/ioctlent.h
trace/linux/alpha/signalent.h
trace/linux/alpha/syscallent.h
trace/linux/dummy.h
trace/linux/errnoent.h
trace/linux/hppa/errnoent.h
trace/linux/hppa/ioctlent.h
trace/linux/hppa/signalent.h
trace/linux/hppa/syscallent.h
trace/linux/ia64/errnoent.h
trace/linux/ia64/ioctlent.h
trace/linux/ia64/signalent.h
trace/linux/ia64/syscallent.h
trace/linux/ioctlent.h
trace/linux/ioctlent.sh
trace/linux/ioctlsort.c
trace/linux/mips/errnoent.h
trace/linux/mips/ioctlent.h
trace/linux/mips/ioctlent.sh
trace/linux/mips/signalent.h
trace/linux/mips/syscallent.h
trace/linux/powerpc/errnoent.h
trace/linux/powerpc/ioctlent.h
trace/linux/powerpc/signalent.h
trace/linux/powerpc/syscallent.h
trace/linux/s390/errnoent.h
trace/linux/s390/ioctlent.h
trace/linux/s390/signalent.h
trace/linux/s390/syscallent.h
trace/linux/s390x/errnoent.h
trace/linux/s390x/ioctlent.h
trace/linux/s390x/signalent.h
trace/linux/s390x/syscallent.h
trace/linux/sh/errnoent.h
trace/linux/sh/ioctlent.h
trace/linux/sh/signalent.h
trace/linux/sh/syscallent.h
trace/linux/sh64/syscallent.h
trace/linux/signalent.h
trace/linux/sparc/dummy2.h
trace/linux/sparc/errnoent.h
trace/linux/sparc/errnoent1.h
trace/linux/sparc/gen.pl
trace/linux/sparc/ioctlent.h
trace/linux/sparc/ioctlent1.h
trace/linux/sparc/signalent.h
trace/linux/sparc/signalent1.h
trace/linux/sparc/syscall.h
trace/linux/sparc/syscall.h.2
trace/linux/sparc/syscall1.h
trace/linux/sparc/syscallent.h
trace/linux/sparc/syscallent1.h
trace/linux/sparc64/dummy2.h
trace/linux/sparc64/errnoent.h
trace/linux/sparc64/errnoent1.h
trace/linux/sparc64/errnoent2.h
trace/linux/sparc64/ioctlent.h
trace/linux/sparc64/ioctlent1.h
trace/linux/sparc64/ioctlent2.h
trace/linux/sparc64/signalent.h
trace/linux/sparc64/signalent1.h
trace/linux/sparc64/signalent2.h
trace/linux/sparc64/syscall.h
trace/linux/sparc64/syscall1.h
trace/linux/sparc64/syscallent.h
trace/linux/sparc64/syscallent1.h
trace/linux/sparc64/syscallent2.h
trace/linux/syscall.h
trace/linux/syscallent.h
trace/linux/x86_64/errnoent1.h
trace/linux/x86_64/gentab.pl
trace/linux/x86_64/ioctlent1.h
trace/linux/x86_64/signalent1.h
trace/linux/x86_64/syscallent.h
trace/linux/x86_64/syscallent1.h
unos4/dummy.h
unos4/errnoent.h
unos4/ioctlent.h
unos4/ioctlent.sh
unos4/signalent.h
unos4/syscall.h
unos4/syscallent.h
vr4/dummy.h
vr4/errnoent.h
vr4/ioctlent.h
vr4/ioctlent.sh
vr4/signalent.h
vr4/syscall.h
vr4/syscallent.h
yscall-android.h
yscall.c
ystem.c
ime.c
til.c
14256a7d2634f40f67ccbf73e163d022f5268d55 12-Sep-2008 Jan Kratochvil <jan.kratochvil@redhat.com> 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.
hangeLog
trace.1
21a75347451b5178a0eb85a48042b8db0e45b318 03-Sep-2008 Dmitry V. Levin <ldv@altlinux.org> 2008-04-19 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.
hangeLog
esc.c
rocess.c
ignal.c
tream.c
yscall.c
ime.c
2e55ff4562e87f8361f0c1db5a42ee6e9ac0cc56 03-Sep-2008 Dmitry V. Levin <ldv@altlinux.org> 2008-04-19 Dmitry V. Levin <ldv@altlinux.org>

* 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().
hangeLog
efs.h
inux/dummy.h
yscall.c
ime.c
50f6013c15bd5103cd1fe4e518f177f0eec74660 03-Sep-2008 Dmitry V. Levin <ldv@altlinux.org> 2008-04-19 Dmitry V. Levin <ldv@altlinux.org>

* 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.
hangeLog
rocess.c
f02cf214d9d411c074a2d8a64f84e0db2035024d 03-Sep-2008 Dmitry V. Levin <ldv@altlinux.org> 2008-04-19 Dmitry V. Levin <ldv@altlinux.org>

* process.c (prctl_options): Add more constants.
hangeLog
rocess.c
86c26be3c88f382273222358fb2f7d537d022712 03-Sep-2008 Dmitry V. Levin <ldv@altlinux.org> 2008-04-19 Dmitry V. Levin <ldv@altlinux.org>

* 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.
hangeLog
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/m68k/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/syscallent.h
inux/x86_64/syscallent.h
93deafe50b8023ffadc36b6a5e8ba0c3bd2fb567 03-Sep-2008 Dmitry V. Levin <ldv@altlinux.org> 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>
hangeLog
inux/x86_64/syscallent.h
39fcbbf19abcc49b9a715f69f4256616dace2761 29-Aug-2008 Roland McGrath <roland@redhat.com> .
hangeLog
98a3ecfa99df5cfbc367d469b2a0ab86b8f77333 29-Aug-2008 Roland McGrath <roland@redhat.com> 2008-08-28 Roland McGrath <roland@redhat.com>

* strace.1 (BUGS): New section, mention SIGTRAP interference.
trace.1
76016daf5335b01d9b1aa9d730c0e3a294064949 29-Aug-2008 Roland McGrath <roland@redhat.com> .
hangeLog
3f0dbe2d474c5f3c280d14f2b5407dd8631f7401 29-Aug-2008 Roland McGrath <roland@redhat.com> 2008-08-28 Roland McGrath <roland@redhat.com>

* strace.spec (%ifarch %{strace64_arches}): Use cp -p instead of ln
for %{rhel} < 6.
trace.spec
09db705c510dcb72044e6a5f68722ae64d9924a5 29-Aug-2008 Roland McGrath <roland@redhat.com> Prepare for 4.5.18 release
hangeLog
EWS
onfigure.ac
trace.spec
a2266f7c384171936dfe408577d43b8f7d0cf708 25-Aug-2008 Roland McGrath <roland@redhat.com> .
hangeLog
d5bd7e681b2297b24bfd1b82eb4baea1bf6795fb 25-Aug-2008 Roland McGrath <roland@redhat.com> 2008-08-24 Roland McGrath <roland@redhat.com>

* syscall.c (trace_syscall): Conditionalize on [SYS_socket_subcall]
and [SYS_ipc_subcall] individually.
yscall.c
d94020ffc1932a4ead1aa57ac2d450ad03c078bb 25-Aug-2008 Roland McGrath <roland@redhat.com> 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>.
inux/syscall.h
85c42749346bed0bdb08aabeae4be038b48d0c0c 25-Aug-2008 Roland McGrath <roland@redhat.com> .
hangeLog
4a6f652cb769024f71ab4023d5ee93e38d730355 25-Aug-2008 Roland McGrath <roland@redhat.com> 2008-08-24 Roland McGrath <roland@redhat.com>

* 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>.
inux/powerpc/syscallent.h
inux/syscall.h
em.c
6f677cff391efcd20a6acfb206ac5914afa97fa8 25-Aug-2008 Roland McGrath <roland@redhat.com> .
hangeLog
586d6ab9f239e912ad3a7b781a2f302abdf7788c 25-Aug-2008 Roland McGrath <roland@redhat.com> 2008-08-24 Roland McGrath <roland@redhat.com>

* mem.c (mmap_prot): Handle PROT_SAO.
From Simon Murray <simon@transitive.com>.
em.c
d88e7b3b4bfaad4cb982dc041be97cadf367626c 25-Aug-2008 Roland McGrath <roland@redhat.com> .
hangeLog
f4021b146688527fd5250285555653247ad4157d 25-Aug-2008 Roland McGrath <roland@redhat.com> 2008-08-24 Roland McGrath <roland@redhat.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>.
em.c
459ea0b0535fba0019eab2634963e49e623bafab 20-Aug-2008 Roland McGrath <roland@redhat.com> .
hangeLog
5f20681a258c6a5fcc4b1918c2f987dd94752c58 20-Aug-2008 Roland McGrath <roland@redhat.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.
ignal.c
ab971652acced8d8f7827e928d7ebe76afd389de 06-Aug-2008 Jan Kratochvil <jan.kratochvil@redhat.com> .
hangeLog
8fc9575e0b45aae0af00e73da2d7b7bca5ebbf13 06-Aug-2008 Jan Kratochvil <jan.kratochvil@redhat.com> 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.
til.c
3aba527d45efd1a425e0db5e2b912764588a2342 06-Aug-2008 Jan Kratochvil <jan.kratochvil@redhat.com> .
hangeLog
1f942710a57860eeabfa03e62b8ac151022d1be3 06-Aug-2008 Jan Kratochvil <jan.kratochvil@redhat.com> 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.
ignal.c
trace.c
yscall.c
til.c
21aa9957451d05a20665f779788041653319440c 01-Aug-2008 Roland McGrath <roland@redhat.com> .
hangeLog
1cdfb8f96be9709c13d9f9c5e36a0622bd88c1e7 01-Aug-2008 Roland McGrath <roland@redhat.com> 2008-07-31 Roland McGrath <roland@redhat.com>

* Makefile.am (EXTRA_DIST): Add new linux/arm/ files.
akefile.am
649afd0b69df97347d6ed64ed5ae35d862534dc6 01-Aug-2008 Roland McGrath <roland@redhat.com> .
hangeLog
c531e571fe6879b7e0bc0fd6ea577907a8a2e005 01-Aug-2008 Roland McGrath <roland@redhat.com> 2008-07-31 Roland McGrath <roland@redhat.com>

* file.c [LINUX] (struct kernel_dirent): Define it locally,
do not use <linux/dirent.h>.
Fixes RH#457291.
ile.c
58b37df725497da7c968541edd6afdcee48f396f 01-Aug-2008 Roland McGrath <roland@redhat.com> .
hangeLog
639658b75493e752b2bccfa4c03c411a860a8912 01-Aug-2008 Roland McGrath <roland@redhat.com> 2008-07-31 Roland McGrath <roland@redhat.com>

* configure.ac: Add AC_HEADER_STDBOOL.
* defs.h [HAVE_STDBOOL_H]: #include <stdbool.h>.
Fixes Debian##492774.
onfigure.ac
efs.h
06350dba7505eda4b8220cca8a9b112504fafc4d 25-Jul-2008 Dmitry V. Levin <ldv@altlinux.org> 2008-07-24 Dmitry V. Levin <ldv@altlinux.org>

* strace.c (main): Fix -F option backwards compatibility.
hangeLog
trace.c
4cb15334c389e17d76d121e1ca9fea85bbf03a12 22-Jul-2008 Roland McGrath <roland@redhat.com> .
hangeLog
09a007c14f12497070e3ef513e6e539a4b693b76 22-Jul-2008 Roland McGrath <roland@redhat.com> 2008-07-22 Roland McGrath <roland@redhat.com>

* Makefile.am (EXTRA_DIST): Add new debian/ files.
akefile.am
f67bc835a0033b7121d8102cfc78eea198c4d842 22-Jul-2008 Roland McGrath <roland@redhat.com> .
hangeLog
6a1311d5d38f63cc794b7d1f55acb05e397075f9 22-Jul-2008 Roland McGrath <roland@redhat.com> 2008-07-21 Roland McGrath <roland@redhat.com>

* configure.ac: Version 4.5.17.
* strace.spec: 4.5.17-1.
onfigure.ac
trace.spec
1bedd4dae4559655e6b0abc926d6efc72b4722aa 22-Jul-2008 Roland McGrath <roland@redhat.com> .
hangeLog
c07538a2da61e1ed1b70706442b7de99a3b852de 22-Jul-2008 Roland McGrath <roland@redhat.com> 2008-07-21 Roland McGrath <roland@redhat.com>

* defs.h [LINUXSPARC]: Don't #include <linux/a.out.h>.
efs.h
4b14ed7c89f84dc426a94595dcd8e9bb7b577e05 22-Jul-2008 Roland McGrath <roland@redhat.com> .
hangeLog
a04e213e6aa38f8dba20b5bfe1ebe864922712b0 22-Jul-2008 Roland McGrath <roland@redhat.com> 2008-07-19 Frederik Schüler <fs@debian.org>

* debian/control: Add strace64 package.
Fixes Debian#491167, Debian#491188.
* 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.
ebian/changelog
ebian/control
ebian/rules
ebian/strace64.install
ebian/strace64.manpages
92a67a40fb3a5ba5d48edd2538095b93178dccb1 22-Jul-2008 Roland McGrath <roland@redhat.com> .
hangeLog
2b95658bdfb3e9a5de60a0e7924875eff336777e 22-Jul-2008 Roland McGrath <roland@redhat.com> 2008-07-18 Andreas Schwab <schwab@suse.de>

* linux/powerpc/syscallent.h: Fix argument count for request_key.
inux/powerpc/syscallent.h
092f0ebfaf5b3994fa31b15c1a8acbdd832d1da2 22-Jul-2008 Roland McGrath <roland@redhat.com> 2008-07-18 Andreas Schwab <schwab@suse.de>

* linux/ia64/syscallent.h: Decode mincore syscall.
inux/ia64/syscallent.h
bcd2c95437f6548f12b3f08867a099a9e4e8f4b6 22-Jul-2008 Roland McGrath <roland@redhat.com> 2008-07-18 Andreas Schwab <schwab@suse.de>

* term.c (term_ioctl): Decode indirect parameter as int, not long.
erm.c
e157e366344009a8435418bf90886c0ee4a07b41 18-Jul-2008 Roland McGrath <roland@redhat.com> .
hangeLog
55dd2780de8e8f4ffdcd2982fe20e8112130ce73 18-Jul-2008 Roland McGrath <roland@redhat.com> 2008-07-17 Roland McGrath <roland@redhat.com>

* NEWS, strace.spec: Updates in preparation for release.
EWS
trace.spec
f2a3092816429e1a603fe47c9ef30516ca7a04ba 18-Jul-2008 Roland McGrath <roland@redhat.com> .
hangeLog
5b63d963ac98fb1ea1233a3d4886f65c9b0515e3 18-Jul-2008 Roland McGrath <roland@redhat.com> 2008-07-17 Roland McGrath <roland@redhat.com>

* process.c (printwaitn): When current personality's wordsize is
smaller than native, sign-extend the PID argument from 32 bits.
rocess.c
ccb1028d89f16e4ec740419c15061886858a5be6 18-Jul-2008 Roland McGrath <roland@redhat.com> .
hangeLog
1aeaf74640dd091a4cab85aafba49e8dfd5b0fb0 18-Jul-2008 Roland McGrath <roland@redhat.com> 2008-07-17 Roland McGrath <roland@redhat.com>

* process.c (futexops): Update table.
(sys_futex): Handle FUTEX_WAIT_BITSET correctly.
From Ulrich Drepper <drepper@redhat.com>.
Fixes RH#448628.
rocess.c
ff6b94cec64c363b763b6ee7440db918f8ed53b8 18-Jul-2008 Roland McGrath <roland@redhat.com> .
hangeLog
334baa8cf336966ad6397922358bf2757ecad059 18-Jul-2008 Roland McGrath <roland@redhat.com> 2008-07-17 Roland McGrath <roland@redhat.com>

* 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.
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/hppa/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sparc/syscallent.h
inux/syscallent.h
inux/x86_64/syscallent.h
e5978366353980cf78e60e0461ab8f2779c6eba1 18-Jul-2008 Roland McGrath <roland@redhat.com> .
hangeLog
b659f87e7d5b10f2c06626368efb8a0637f91da5 18-Jul-2008 Roland McGrath <roland@redhat.com> 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.
til.c
4483018fefa95c48e37ddb4cc4a26b97b64c8647 18-Jul-2008 Roland McGrath <roland@redhat.com> .
hangeLog
db5c5f6888fbf2973a9e090ed5192aab544a87b5 18-Jul-2008 Roland McGrath <roland@redhat.com> .
hangeLog
d6ff0d520d4bd8dda1523ec57e8ba2bc0ab3cf69 18-Jul-2008 Roland McGrath <roland@redhat.com> 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.
til.c
b4e30f0903a3ec47eaeb9bef192682b6b31e24a3 18-Jul-2008 Roland McGrath <roland@redhat.com> .
hangeLog
4fef51d9480db70025808d17044bf64f3ce7b2df 18-Jul-2008 Roland McGrath <roland@redhat.com> 2008-07-17 Roland McGrath <roland@redhat.com>

* signal.c (sigact_flags): Prefer SA_NODEFER to SA_NOMASK,
SA_RESETHAND to SA_ONESHOT.
Fixes RH#455821.
ignal.c
87b542b4de11fc8a6bec1e3866b321f3e77c693e 18-Jul-2008 Roland McGrath <roland@redhat.com> .
hangeLog
cc4f22dbc08336de7e1ebabf11bc8f55b681abdd 18-Jul-2008 Roland McGrath <roland@redhat.com> 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.
ebian/changelog
ebian/strace-udeb.install
9a001a75f9d5560af24e8e6a523d8943cba3b502 18-Jul-2008 Roland McGrath <roland@redhat.com> 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.
ebian/control
ebian/copyright
ebian/rules
ebian/strace.docs
ebian/strace.examples
ebian/strace.install
ebian/strace.manpages
812376ab1ffec3cda16ad7efed41aa9d07430012 18-Jul-2008 Roland McGrath <roland@redhat.com> .
hangeLog
41c48227a86a176da333f713d5047240885f25cc 18-Jul-2008 Roland McGrath <roland@redhat.com> 2008-07-03 Jan Kratochvil <jan.kratochvil@redhat.com>

Trace even VFORK on -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.
efs.h
rocess.c
trace.1
trace.c
8149e30526905769205833f1519860f40f55e935 18-Jul-2008 Roland McGrath <roland@redhat.com> .
hangeLog
6019fbbf47e22995beffd6a82a2c435845e241e4 18-Jul-2008 Roland McGrath <roland@redhat.com> 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
ebian/changelog
ebian/compat
ebian/control
ebian/rules
3ffd406aefc41f3b4bfba46bb25a78009510bcbb 30-Jun-2008 Dmitry V. Levin <ldv@altlinux.org> 2008-06-29 Dmitry V. Levin <ldv@altlinux.org>

* linux/x86_64/syscallent.h: Remove duplicate syscall entries
for #283 and #284.
hangeLog
inux/x86_64/syscallent.h
97ecd62349930e19d4cb38b1e66e96c99c752882 27-Jun-2008 Jan Kratochvil <jan.kratochvil@redhat.com> *** empty log message ***
hangeLog
0128362ec5c3b25fd5ad9e442956e2388ea2e3e2 27-Jun-2008 Jan Kratochvil <jan.kratochvil@redhat.com> 2008-06-27 Jan Kratochvil <jan.kratochvil@redhat.com>

* linux/syscallent.h: Remove a duplicite syscall stub #326.
inux/syscallent.h
2b9b213bccaf14b838a745625d3bc1af3ff768cb 28-May-2008 Roland McGrath <roland@redhat.com> .
hangeLog
c1e4592381000f7da363418d8f58bc02b44451d7 28-May-2008 Roland McGrath <roland@redhat.com> 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.
yscall.c
36d0042225c07cfa09cf3462877e71ba19f022d1 20-May-2008 Roland McGrath <roland@redhat.com> .
hangeLog
5897e649cdadb943a0110b1e8bf00a329a4b04a4 20-May-2008 Roland McGrath <roland@redhat.com> .
hangeLog
257ef50c7354b2135f886082429a9a1bd171164e 20-May-2008 Roland McGrath <roland@redhat.com> .
hangeLog
366c57eae37dc792ac8bf90a33439d07d7b4374b 20-May-2008 Roland McGrath <roland@redhat.com> 2008-05-19 Roland McGrath <roland@redhat.com>

* linux/x86_64/syscallent.h: Update entries for timerfd_* and fallocate.
inux/x86_64/syscallent.h
30713bebba026820364b8d9b15ee180f36a91929 20-May-2008 Roland McGrath <roland@redhat.com> 2008-05-19 Roland McGrath <roland@redhat.com>

* 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>.
inux/syscall.h
inux/syscallent.h
96a9661df6d2aae66e2a735a04abba8ddf78fe7f 20-May-2008 Roland McGrath <roland@redhat.com> 2008-05-19 Roland McGrath <roland@redhat.com>

* file.c (sys_fallocate): New function.
* linux/syscall.h: Declare it.
* linux/syscallent.h: Update entry.
From Kyle McMartin <kyle@mcmartin.ca>.
ile.c
de328e684f86405d85881cdc489b88a27332d256 20-May-2008 Roland McGrath <roland@redhat.com> 2008-05-19 Roland McGrath <roland@redhat.com>

* 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>.
ime.c
bc362d4732184d24cb7b7b7bd31c05582f2a9c46 20-May-2008 Roland McGrath <roland@redhat.com> .
hangeLog
e53d8899d57e1dd237148ada53ff3ee9c29f6864 20-May-2008 Roland McGrath <roland@redhat.com> 2008-05-19 Roland McGrath <roland@redhat.com>

* debian/rules (binary-arch): Fix chmod/chown typo.
Fixes Debian#459255.
ebian/rules
91802a600ea4ee9683054f3fd075e62fe854eab1 20-May-2008 Roland McGrath <roland@redhat.com> 2008-05-19 Roland McGrath <roland@redhat.com>

* debian/rules (binary-arch): Install strace-graph in examples/
directory under package doc.
Fixes Debian#469068.
ebian/rules
9416743f111defc7f310bb8ca3033a5964f1d088 20-May-2008 Roland McGrath <roland@redhat.com> .
hangeLog
4d7ed02fbc825d966fcbe46f0fdf9dd12479b13d 20-May-2008 Roland McGrath <roland@redhat.com> 2008-05-19 Roland McGrath <roland@redhat.com>

* signal.c (sys_kill): When current personality's wordsize is smaller
than native, sign-extend the PID argument from 32 bits.
Fixes RH#430585.
ignal.c
9d9540bfe5e717a1d680a848fc2ed5bb425430f7 20-May-2008 Roland McGrath <roland@redhat.com> .
hangeLog
5670331bf1ffb36fa815ddb817064e7f08dd2d97 20-May-2008 Roland McGrath <roland@redhat.com> 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.
efs.h
inux/arm/errnoent1.h
inux/arm/ioctlent1.h
inux/arm/signalent1.h
inux/arm/syscallent.h
inux/arm/syscallent1.h
yscall.c
0cbb4e4bc046fb039386e519e4e447d5ca985385 20-May-2008 Roland McGrath <roland@redhat.com> 2008-05-19 Roland McGrath <roland@redhat.com>

* 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.
onfigure.ac
ignal.c
ed26d2a70cc90bec70b3e36970b446ee84a03dce 20-May-2008 Roland McGrath <roland@redhat.com> 2008-01-07 Paul Mundt <lethal@linux-sh.org>

* linux/sh64/syscallent.h: Update numerous calls, fix others.
inux/sh64/syscallent.h
08429fb4da1b9e17fe60adb9552e22fe944cdb3b 20-May-2008 Roland McGrath <roland@redhat.com> .
hangeLog
542c2c6fe2b93ae73221dd5c5c8ed95a73b676e4 20-May-2008 Roland McGrath <roland@redhat.com> 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.
efs.h
ile.c
o.c
inux/mips/syscallent.h
inux/syscall.h
em.c
rocess.c
ignal.c
yscall.c
9047cfd86dc0efebef543b083e944970c0f96a8d 20-May-2008 Roland McGrath <roland@redhat.com> .
hangeLog
3291ef2013cf9510f8ca493ab1c81862fd3a5e15 20-May-2008 Roland McGrath <roland@redhat.com> 2008-05-19 Roland McGrath <roland@redhat.com>

* util.c [LINUX] (setbpt): Use correct SYS_clone number for current
personality.
Fixes RH#447475.
til.c
fee60a6cc34e38ce7f1b022e47f4d3536309eb38 20-May-2008 Roland McGrath <roland@redhat.com> .
hangeLog
5e48c54ddf9c1e7e431701b3a1d920611495e2fa 20-May-2008 Roland McGrath <roland@redhat.com> 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.
inux/sparc/syscall.h
inux/sparc/syscallent.h
yscall.c
153fbd69d2a3d45033140ff55b6d31555eaec177 20-Apr-2008 Dmitry V. Levin <ldv@altlinux.org> 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>
hangeLog
ile.c
b838b1e0b9b3f6077acdf9a8cb2860b6fd1be424 20-Apr-2008 Dmitry V. Levin <ldv@altlinux.org> 2008-04-19 Dmitry V. Levin <ldv@altlinux.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>
hangeLog
ile.c
dc7715baadf94b370d7737d2581d733ebe2e95a1 20-Apr-2008 Dmitry V. Levin <ldv@altlinux.org> 2008-04-19 Dmitry V. Levin <ldv@altlinux.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>
hangeLog
ile.c
99af25c8b3289b44eadb1b2808cc730495002310 19-Apr-2008 Dmitry V. Levin <ldv@altlinux.org> 2008-04-19 Dmitry V. Levin <ldv@altlinux.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>
hangeLog
inux/errnoent.h
48e7c6e29a712035839bade6a9db3d6112395ad4 19-Apr-2008 Dmitry V. Levin <ldv@altlinux.org> 2008-04-19 Dmitry V. Levin <ldv@altlinux.org>

* signalent.sh: Fix sort(1) old-style options.
* syscallent.sh: Likewise.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
hangeLog
ignalent.sh
yscallent.sh
a97f03b781904bbb1af35d9610cec88930359096 19-Apr-2008 Dmitry V. Levin <ldv@altlinux.org> 2008-04-19 Dmitry V. Levin <ldv@altlinux.org>

* count.c (call_summary_pers): Check calloc() return value.
Signed-off-by: "Yang Zhiguo" <yzgcsu@cn.fujitsu.com>
hangeLog
ount.c
bf881fa4c29253163c8650edbf4bbcd3f9d1c6bb 26-Mar-2008 Roland McGrath <roland@redhat.com> .
hangeLog
7c2ec5713bcf78ef277b80d95e9c740dabe71bc2 26-Mar-2008 Roland McGrath <roland@redhat.com> 2008-03-26 Roland McGrath <roland@redhat.com>

* strace.spec (strace64_arches): Add sparc64.
trace.spec
90824cad810ce89b91232d034e129598abb7831f 21-Nov-2007 Roland McGrath <roland@redhat.com> 2007-11-20 Roland McGrath <roland@redhat.com>

* CREDITS, ChangeLog: Converted contents to UTF8.
REDITS
hangeLog
b8152c1ac058e6fcf0d544c70bbcec8d77f6aaed 19-Nov-2007 Roland McGrath <roland@redhat.com> .
hangeLog
fdf5f40bc0495eb43cb344f1b713be4e17fdc38f 19-Nov-2007 Roland McGrath <roland@redhat.com> .
hangeLog
4c99f5678f3d412f657d6f705dd483397ab4b07c 19-Nov-2007 Roland McGrath <roland@redhat.com> 2007-11-19 Roland McGrath <roland@redhat.com>

* strace.spec: Add BuildRequires on libaio-devel, libacl-devel.
trace.spec
f492bdf830c928eeb97811967abb30b3c936a9b1 19-Nov-2007 Roland McGrath <roland@redhat.com> .
hangeLog
1e868064d14f47de62bdf5006efb6246aae8d478 19-Nov-2007 Roland McGrath <roland@redhat.com> 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.
rocess.c
648fc87bbbd2f0888129bc798364bd368085b2f7 19-Nov-2007 Roland McGrath <roland@redhat.com> .
hangeLog
0bf8732210ba6c9df02f523b14adfb8186ae3f53 19-Nov-2007 Roland McGrath <roland@redhat.com> 2007-11-19 Andreas Schwab <schwab@suse.de>

* linux/syscallent.h: Fix argument count for getdents64.
* linux/arm/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
inux/arm/syscallent.h
inux/m68k/syscallent.h
inux/syscallent.h
inux/x86_64/syscallent.h
f59eaf4adcb2820ab82a0fd78377d163356b1245 19-Nov-2007 Roland McGrath <roland@redhat.com> 2007-11-19 Andreas Schwab <schwab@suse.de>

* linux/ia64/syscallent.h: Use sys_getdents64.
* linux/sh/syscallent.h: Likewise.
inux/ia64/syscallent.h
inux/sh/syscallent.h
c6efe6e39366627bd511f6b63d83571f99da704c 13-Nov-2007 Roland McGrath <roland@redhat.com> .
hangeLog
276ceb33f20fc41403e46684e441230296f6a433 13-Nov-2007 Roland McGrath <roland@redhat.com> 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.
trace.c
est/.cvsignore
est/Makefile
est/childthread.c
f189d6d04742085f74684f6ab45c49e77e24a81d 04-Nov-2007 Roland McGrath <roland@redhat.com> .
hangeLog
576b78479862c1dd816652b21af75f457c0be30e 04-Nov-2007 Roland McGrath <roland@redhat.com> 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.
ignal.c
ecdfe0ff63623826603dd9525faeadfe1afa6cd4 04-Nov-2007 Roland McGrath <roland@redhat.com> .
hangeLog
e5039fb74e0794ddd4f46dce32a1c7e010d1a658 04-Nov-2007 Roland McGrath <roland@redhat.com> 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.
rocess.c
db63f10b62913a73da85ddd02d0b4d8fed752974 04-Nov-2007 Roland McGrath <roland@redhat.com> .
hangeLog
54cc1c8ae2d097502439a95d43e1f0ed6782d38c 04-Nov-2007 Roland McGrath <roland@redhat.com> 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.
trace.c
78118592c08ceff4a795a90c45ddf1dfe62db757 02-Nov-2007 Roland McGrath <roland@redhat.com> .
hangeLog
6d9703205e06c77c6c8d38eac6796cfc9a4ea92c 02-Nov-2007 Roland McGrath <roland@redhat.com> 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.
til.c
529574fe140989e3a9b33de0e0716c5b41857bc3 01-Nov-2007 Roland McGrath <roland@redhat.com> 2007-11-01 Roland McGrath <roland@redhat.com>

* linux/mips/syscallent.h: Fix argument count for fadvise64_64.
From Paul Mundt <lethal@linux-sh.org>.
inux/mips/syscallent.h
1c502ad03ae3c4720eb3898273e2f735c485664e 01-Nov-2007 Roland McGrath <roland@redhat.com> 2007-11-01 Roland McGrath <roland@redhat.com>

* linux/mips/syscallent.h: Fix argument count for lookup_dcookie.
From Paul Mundt <lethal@linux-sh.org>.
inux/mips/syscallent.h
e020138749939eb492f77b388c355410b527e5d9 01-Nov-2007 Roland McGrath <roland@redhat.com> .
hangeLog
fb78ef7166005997f356c9c526ebf0ba4625cbf7 01-Nov-2007 Roland McGrath <roland@redhat.com> 2007-11-01 Roland McGrath <roland@redhat.com>

* linux/sh64/syscallent.h: Fix SYS_socket_subcall check.
From Paul Mundt <lethal@linux-sh.org>.
inux/sh64/syscallent.h
6eaa9e8f26b7e0ffb13a5b777563f430527bc808 01-Nov-2007 Roland McGrath <roland@redhat.com> 2007-11-01 Roland McGrath <roland@redhat.com>

* linux/sh/syscallent.h: Update numerous calls.
From Paul Mundt <lethal@linux-sh.org>.
inux/sh/syscallent.h
fe10aa70a7668557e567339cf63adf84879c8123 01-Nov-2007 Roland McGrath <roland@redhat.com> 2007-09-22 Dmitry V. Levin <ldv@altlinux.org>

* desc.c (sys_pselect6): Decode signal mask when entering syscall.
Relax signal mask size check.
esc.c
d017e340ff9050a35842cd7e14cd5c2d36934ca4 01-Nov-2007 Roland McGrath <roland@redhat.com> .
hangeLog
6bc09daaf6b249b35dec4283b165b1f39e6d6a0d 01-Nov-2007 Roland McGrath <roland@redhat.com> 2007-09-22 Dmitry V. Levin <ldv@altlinux.org>

* 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.
efs.h
esc.c
tream.c
ime.c
f17106ee78b1c60ef3cdab3ca474bc11f1fe6923 01-Nov-2007 Roland McGrath <roland@redhat.com> 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.
tream.c
a6c0d8c90a1cc3117f70281968d9efe6de755d83 01-Nov-2007 Roland McGrath <roland@redhat.com> 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.
efs.h
esc.c
til.c
c210f428cc47f7856db68289a7795c57e579184c 01-Nov-2007 Roland McGrath <roland@redhat.com> .
hangeLog
9bc6340d21cb20d2c775863598068c1a29460eba 01-Nov-2007 Roland McGrath <roland@redhat.com> 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>.
yscall.c
436d51895024a9c421a04daaf471d56d4345073d 01-Nov-2007 Roland McGrath <roland@redhat.com> .
hangeLog
c294b8f411e25097f80280fbb924bc031becc181 01-Nov-2007 Roland McGrath <roland@redhat.com> 2007-11-01 Roland McGrath <roland@redhat.com>

* net.c (sockpacketoptions): Make PACKET_ADD_MEMBERSHIP and
PACKET_DROP_MEMBERSHIP conditional.
From Bernhard Fischer <rep.dot.nop@gmail.com>.
et.c
09d5228d9c48f385925df18a85b35e00a91b363f 01-Nov-2007 Roland McGrath <roland@redhat.com> .
hangeLog
67828ca1a5c69146d0d2c368935e1826b25c5679 01-Nov-2007 Roland McGrath <roland@redhat.com> 2007-11-01 Roland McGrath <roland@redhat.com>

* configure.ac: Match sh64* for SH64, sh* for SH.
Reported by Bernhard Fischer <rep.dot.nop@gmail.com>.
onfigure.ac
16fbe97a10d7aa9af820b1c98243d9c2bfb120de 13-Oct-2007 Dmitry V. Levin <ldv@altlinux.org> net.c (printsock): Really use printpathn() as written in ChangeLog entry
et.c
b6c32f4598b84364472bc3febcb80ff3e475def8 09-Oct-2007 Dmitry V. Levin <ldv@altlinux.org> 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.
hangeLog
et.c
bea0203d2d4c8be1818c7d93a630306d79edf716 08-Oct-2007 Dmitry V. Levin <ldv@altlinux.org> 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.
hangeLog
til.c
19bab50c7405b9b2295fa402d798a2c22225f96e 08-Oct-2007 Dmitry V. Levin <ldv@altlinux.org> .
hangeLog
08b623eb84266d4a2defc619fa78400c4e4f0dc1 08-Oct-2007 Dmitry V. Levin <ldv@altlinux.org> 2007-09-25 Dmitry V. Levin <ldv@altlinux.org>

* strace (main): Use calloc for tcbtab allocation.
Check calloc return value.
Reported by Bai Weidong.
hangeLog
trace.c
4df814ff8fcf939a840d728ca2081fda25225418 12-Sep-2007 Roland McGrath <roland@redhat.com> .
hangeLog
315113e47b22789ecf6e58682a19a7d930aa0497 12-Sep-2007 Roland McGrath <roland@redhat.com> 2007-09-11 Roland McGrath <roland@redhat.com>

* linux/syscallent.h: Fix getegid32 entry.
From Jakub Bogusz <qboosh@pld-linux.org>.
inux/syscallent.h
e9052fd332c315dc9ecd0867ca37fc68754ce18e 12-Sep-2007 Roland McGrath <roland@redhat.com> 2007-09-11 Roland McGrath <roland@redhat.com>

* linux/alpha/syscallent.h: Correct entries for madvise, setresgid,
getresgid, pivot_root, mincore, pciconfig_iobase, getdents64.
From Jakub Bogusz <qboosh@pld-linux.org>.
inux/alpha/syscallent.h
da6c92c2349de2c2cb1b60fafc44938ee78764a9 12-Sep-2007 Roland McGrath <roland@redhat.com> 2007-09-11 Roland McGrath <roland@redhat.com>

* mem.c (sys_getpagesize): Define for [SPARC || SPARC64] too.
From Jakub Bogusz <qboosh@pld-linux.org>.
em.c
5aa0434fe990c2137f6e16fb69ff6279832ab393 12-Sep-2007 Roland McGrath <roland@redhat.com> 2007-09-11 Roland McGrath <roland@redhat.com>

* defs.h [LINUXSPARC]: Use asm/psrcompat.h for [SPARC64], not asm/psr.h.
From Jakub Bogusz <qboosh@pld-linux.org>.
efs.h
c2f7351fcdb0729cd380c44c6de438e693f1bfde 12-Sep-2007 Roland McGrath <roland@redhat.com> 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>.
inux/sparc/syscall.h
inux/sparc/syscallent.h
c18c703b4873f9510b7820edf5ff239c83e34d69 22-Aug-2007 Dmitry V. Levin <ldv@altlinux.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.
hangeLog
yscall.c
2f33e914b6bfea679dd6c5e5016ded20d277ab41 07-Aug-2007 Roland McGrath <roland@redhat.com> .
hangeLog
e6d0f71e6a33a861a0b1fd2d2e9154c2f246c859 07-Aug-2007 Roland McGrath <roland@redhat.com> 2007-08-06 Jan Kratochvil <jan.kratochvil@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.
ile.c
6f694b22129bb81d5944245c946b1bcbd1e6afe3 07-Aug-2007 Roland McGrath <roland@redhat.com> .
hangeLog
c7bd4d321d82e7396b9282ee1b80a498d2785f19 07-Aug-2007 Roland McGrath <roland@redhat.com> 2007-08-05 Jan Kratochvil <jan.kratochvil@redhat.com>

* file.c (printstat64): Test [HAVE_LONG_LONG] for st_size printing
and cast to widest type available.
ile.c
f76fca52bf011a1390dfa65398a3861fed24f599 07-Aug-2007 Roland McGrath <roland@redhat.com> .
hangeLog
71d3d663caa197b26dcdade024612eee76bf837a 07-Aug-2007 Roland McGrath <roland@redhat.com> 2007-08-03 Ulrich Drepper <drepper@redhat.com>

* file.c (open_mode_flags): Add O_CLOEXEC.
* net.c (msg_flags): Add MSG_CMSG_CLOEXEC.
ile.c
et.c
f30de7edd26114115c9fafd07f65f8cebb1b358a 03-Aug-2007 Roland McGrath <roland@redhat.com> .
hangeLog
47d3223c734d21e68eadb52889e1746d401af364 03-Aug-2007 Roland McGrath <roland@redhat.com> 2007-08-03 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.5.16.
* debian/changelog, strace.spec: 4.5.16-1.
EWS
onfigure.ac
ebian/changelog
trace.spec
328c235c2b6a3418195810ba593f2eb57051deca 03-Aug-2007 Roland McGrath <roland@redhat.com> .
hangeLog
a2eed4f8a176acfffca4370e8a48f2c14bd7635c 03-Aug-2007 Roland McGrath <roland@redhat.com> 2007-08-02 Jan Kratochvil <jan.kratochvil@redhat.com>

* test/leaderkill.c (start): Renamed to ...
(start0): ... here.
(start1): New function.
(main): Created a new spare thread.
est/leaderkill.c
1bfd31032538222fa7d6b5d1741f1a4efa0eb739 03-Aug-2007 Roland McGrath <roland@redhat.com> 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.
trace.c
7b5dd1e146aaf132f29f350df551ec9cb2c937f5 03-Aug-2007 Roland McGrath <roland@redhat.com> .
hangeLog
75df90ee416be3e2196e0977cd405053df505073 03-Aug-2007 Roland McGrath <roland@redhat.com> 2007-08-03 Roland McGrath <roland@redhat.com>

* 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.
ebian/control
ebian/rules
1dee3a81bd633d904d84ba5b328a62c11b616844 02-Aug-2007 Roland McGrath <roland@redhat.com> .
hangeLog
1c459769f69ff7cac0e12f934517e1ab349b9cc0 02-Aug-2007 Roland McGrath <roland@redhat.com> 2007-08-01 Roland McGrath <roland@redhat.com>

* util.c (umoven): Don't perror for EIO.
(umovestr): Likewise.
til.c
8e7174fc1e4fc3d293e99ad7bc898e450605bfb7 02-Aug-2007 Roland McGrath <roland@redhat.com> .
hangeLog
85a3bc4a0473de8d770d5543fc3c22c53b3e958e 02-Aug-2007 Roland McGrath <roland@redhat.com> 2007-08-01 Roland McGrath <roland@redhat.com>

* process.c (printargv): Handle boundary cases correctly.
Handle biarch fetching correctly.
rocess.c
a503dcf82047ecf3d8c535406898f3059e424131 02-Aug-2007 Roland McGrath <roland@redhat.com> 2007-08-01 Roland McGrath <roland@redhat.com>

* util.c (printstr): Don't print ... if the string matches the length
limit exactly.
til.c
dd519cc7c00f91f7e408e6a64bf4da3649d004bd 02-Aug-2007 Roland McGrath <roland@redhat.com> .
hangeLog
d5e86ce02b2978422670145d837527b48dd61401 02-Aug-2007 Roland McGrath <roland@redhat.com> 2007-08-01 Roland McGrath <roland@redhat.com>

* linux/sparc64/syscallent.h: Just #include the sparc file.
* linux/sparc64/syscallent1.h: Likewise.
* linux/sparc64/syscallent2.h: Likewise.
inux/sparc64/syscallent.h
inux/sparc64/syscallent1.h
inux/sparc64/syscallent2.h
d9ac0256a42a4af54e293c135a945c22cb1e5d14 02-Aug-2007 Roland McGrath <roland@redhat.com> .
hangeLog
245745cf07fb910e5e4e1e6cebb10fd5e7684ada 02-Aug-2007 Roland McGrath <roland@redhat.com> 2007-08-01 Roland McGrath <roland@redhat.com>

* 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.
inux/arm/syscallent.h
inux/hppa/syscallent.h
inux/ia64/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/sparc64/syscallent.h
b8c91639b8f106541a052dd3471e8c2628ad8bec 02-Aug-2007 Roland McGrath <roland@redhat.com> .
hangeLog
db8319f2fa34065b73248e7074a3ebb5d1acd117 02-Aug-2007 Roland McGrath <roland@redhat.com> 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.
inux/syscall.h
inux/syscallent.h
rocess.c
e9fcf735aff718fffaff700a3c76b4c095c6f9d1 02-Aug-2007 Roland McGrath <roland@redhat.com> .
hangeLog
e6a00aff77144c2331cbb1c94e8547398180ce8c 02-Aug-2007 Roland McGrath <roland@redhat.com> 2007-08-01 Roland McGrath <roland@redhat.com>

* 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.
inux/arm/syscallent.h
inux/ia64/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/sparc64/syscallent.h
e7c39670197fbf293d013134fe3ce65eaa7d0caa 02-Aug-2007 Roland McGrath <roland@redhat.com> 2007-07-23 Ulrich Drepper <drepper@redhat.com>

* 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.
esc.c
inux/syscall.h
inux/syscallent.h
inux/x86_64/syscallent.h
5d4657908586eae8d5074971018b80f3120b9611 02-Aug-2007 Roland McGrath <roland@redhat.com> .
hangeLog
827461aeede2841226e69201f625d956cc6bdbcd 02-Aug-2007 Roland McGrath <roland@redhat.com> 2007-08-01 Roland McGrath <roland@redhat.com>

* 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.
inux/arm/syscallent.h
inux/ia64/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/sparc64/syscallent.h
e46623403567c7dab387c8a9c6e40ae891c6ab21 02-Aug-2007 Roland McGrath <roland@redhat.com> 2007-02-23 Ulrich Drepper <drepper@redhat.com>

* 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.
inux/syscall.h
inux/syscallent.h
inux/x86_64/syscallent.h
ime.c
488a1408284ac5e3cec64e3ad1df8d41fdf00121 02-Aug-2007 Roland McGrath <roland@redhat.com> .
hangeLog
a826df6ce6aa1d8e65bdfbe87c429611b5720729 02-Aug-2007 Roland McGrath <roland@redhat.com> 2007-08-01 Roland McGrath <roland@redhat.com>

* linux/sparc/syscallent.h: Add entry for signalfd.
* linux/sparc64/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* linux/s390/syscallent.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.
* linux/mips/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Likewise.
* linux/arm/syscallent.h: Likewise.
inux/sh/syscallent.h
6f91dcfa337e68fb3290b1130d0f17095c6262d1 02-Aug-2007 Roland McGrath <roland@redhat.com> 2007-08-01 Roland McGrath <roland@redhat.com>

* linux/sparc/syscallent.h: Add entry for signalfd.
* linux/sparc64/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* linux/s390/syscallent.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.
* linux/mips/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Likewise.
* linux/arm/syscallent.h: Likewise.
inux/arm/syscallent.h
inux/ia64/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/sparc64/syscallent.h
f46ccd32cf682e2ca554232e106f012ab8ead04e 02-Aug-2007 Roland McGrath <roland@redhat.com> 2007-07-23 Ulrich Drepper <drepper@redhat.com>

* 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.
inux/syscall.h
inux/syscallent.h
inux/x86_64/syscallent.h
ignal.c
e36e4cae7bba2020edbc8688290c53188970ca83 02-Aug-2007 Roland McGrath <roland@redhat.com> .
hangeLog
419cd38805a33b616b20f6a1f183d04a12e67401 02-Aug-2007 Roland McGrath <roland@redhat.com> 2007-08-01 Roland McGrath <roland@redhat.com>

* 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.
inux/hppa/syscallent.h
inux/ia64/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/sparc64/syscallent.h
f240005701067569f9a9c97d9b01cdaba247c56a 02-Aug-2007 Roland McGrath <roland@redhat.com> 2007-07-23 Ulrich Drepper <drepper@redhat.com>

* 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.
esc.c
inux/syscall.h
inux/syscallent.h
inux/x86_64/syscallent.h
b2c4f507ac1b778ce8109d1443e41a61402c3e3b 24-Jul-2007 Roland McGrath <roland@redhat.com> .
hangeLog
41383399cd72de811e983fbbd4b3c7d6cfcfd98d 24-Jul-2007 Roland McGrath <roland@redhat.com> 2007-07-23 Roland McGrath <roland@redhat.com>

* time.c (printtv_bitness): SPECIAL only counts when tv_sec == 0.
ime.c
6afc5659acc3df3d2e446ba4aa3a76bdd7264e1b 24-Jul-2007 Roland McGrath <roland@redhat.com> 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.
efs.h
esc.c
ile.c
inux/syscall.h
inux/syscallent.h
inux/x86_64/syscallent.h
ime.c
b912ffe5ccfb0b682f1c18f44f5cc1f0eb4cb1b9 24-Jul-2007 Roland McGrath <roland@redhat.com> .
hangeLog
0e091a1a3d5f931100ce10390053aed43068a68f 24-Jul-2007 Roland McGrath <roland@redhat.com> 2007-07-23 Roland McGrath <roland@redhat.com>

* 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.
inux/arm/syscallent.h
inux/hppa/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/sparc64/syscallent.h
2c00a4a3cb2d949ecec228395b4912a4727e89d6 24-Jul-2007 Roland McGrath <roland@redhat.com> 2007-07-23 Ulrich Drepper <drepper@redhat.com>

* 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.
inux/syscall.h
em.c
7c7c00b193e3c8b8dfdf1df673b4507818072d0e 24-Jul-2007 Roland McGrath <roland@redhat.com> 2007-07-23 Roland McGrath <roland@redhat.com>

* linux/syscallent.h: move_pages takes 6 args, not 5.
* linux/x86_64/syscallent.h: Likewise.
2007-07-23 Ulrich Drepper <drepper@redhat.com>

* 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.
inux/syscallent.h
inux/x86_64/syscallent.h
2149fc0b468f97ed840dc44f4aede8d3917e60dc 24-Jul-2007 Roland McGrath <roland@redhat.com> .
hangeLog
58372f52ac5f824be687c01bfc1db1ffb963f91e 24-Jul-2007 Roland McGrath <roland@redhat.com> 2007-07-23 Roland McGrath <roland@redhat.com>

* util.c (tv_add): Fix rounding comparison.
Reported by Bai Weidong <baiwd@cn.fujitsu.com>.
til.c
a7f34143e30a5ed3778b71284cf8e4c2dba630e7 11-Jul-2007 Roland McGrath <roland@redhat.com> .
hangeLog
14e3174d1c0d583aaa1b5938530541cf6a103874 11-Jul-2007 Roland McGrath <roland@redhat.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>.
ount.c
0adfb528d8c7e13c8aceb6c448d5fe1be161981f 11-Jul-2007 Roland McGrath <roland@redhat.com> .
hangeLog
d6a32f176c7a07c72c69000c39a5a964e4168874 11-Jul-2007 Roland McGrath <roland@redhat.com> 2007-07-11 Roland McGrath <roland@redhat.com>

* strace.c (handle_group_exit): Detach TCP before LEADER.
Don't use PTRACE_KILL on LEADER.
trace.c
70b2f0a80a5053559cdf9b53726bd79033e15dc7 11-Jul-2007 Roland McGrath <roland@redhat.com> .
hangeLog
779c466c0fdb4a0e4039d5ed407d1e6f61c23437 11-Jul-2007 Roland McGrath <roland@redhat.com> 2007-07-11 Roland McGrath <roland@redhat.com>

* util.c (printstr): Fix size calculation for outstr allocation.
til.c
cbf406099b602c3d9ad60b3a3e758b2968d6fb0c 11-Jul-2007 Roland McGrath <roland@redhat.com> .
hangeLog
d26486e7f9b025d2a511472ebebf1658b3b2c03b 11-Jul-2007 Roland McGrath <roland@redhat.com> 2007-07-11 Roland McGrath <roland@redhat.com>

* configure.ac (struct sigcontext.sc_hi2): Use #ifdef around
<asm/sigcontext.h> to match signal.c include conditions.
onfigure.ac
96affab0691e14d46587facdae40ed186992a985 05-Jul-2007 Roland McGrath <roland@redhat.com> .
hangeLog
6c95bedf8d671602c1370ef58547bbd8d457039e 05-Jul-2007 Roland McGrath <roland@redhat.com> 2007-07-05 Roland McGrath <roland@redhat.com>

* debian/rules: Use debian/$(package) instead of debian/tmp as temp dir.
ebian/rules
b3205c80f6e8ffdb1d2054dc644959dc819e9989 05-Jul-2007 Roland McGrath <roland@redhat.com> .
hangeLog
e7fa30573509eecd8ba2e370b873d1db75d65423 05-Jul-2007 Roland McGrath <roland@redhat.com> 2007-07-05 Roland McGrath <roland@redhat.com>

* configure.ac: Use <stddef.h> before <linux/socket.h>.
onfigure.ac
877882ab9b166a44bcfbbd3139d66535ee1a69b4 05-Jul-2007 Roland McGrath <roland@redhat.com> 2007-07-05 Roland McGrath <roland@redhat.com>

* 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.
ebian/changelog
ebian/control
1be68c49b1c6158903d364cb19dce48a0d874d96 05-Jul-2007 Roland McGrath <roland@redhat.com> .
hangeLog
5a7151c0e63a558e51d807d5cc398eba703164b3 05-Jul-2007 Roland McGrath <roland@redhat.com> 2007-07-05 Roland McGrath <roland@redhat.com>

* .cvsignore: Add some automake-created files.
cvsignore
f9fe645bbc7437124a5402945281c4418e87ca75 05-Jul-2007 Roland McGrath <roland@redhat.com> .
hangeLog
7e9817c1bff9c04c78a740a58a287ae6138fc2c2 05-Jul-2007 Roland McGrath <roland@redhat.com> 2007-07-05 Roland McGrath <roland@redhat.com>

* file.c (sys_utime): Use personality_wordsize to handle biarch.
Fixes RH#247185.
ile.c
57dd0cb90e4c2e3ff7fae2a1697ca6376707f4d8 05-Jul-2007 Roland McGrath <roland@redhat.com> 2007-07-05 Roland McGrath <roland@redhat.com>

* signal.c (sys_sigreturn) [MIPS]: Pass 3rd arg to sprintsigmask.
From Zhang Le <zhilg@users.sourceforge.net>.
ignal.c
4acaaa16d990b36ccd40a6c649b2198b75b1c89f 05-Jul-2007 Roland McGrath <roland@redhat.com> .
hangeLog
4bfa6266eb6c67fce50907b427dff6bbd9e93794 05-Jul-2007 Roland McGrath <roland@redhat.com> 2007-07-05 Roland McGrath <roland@redhat.com>

* strace.c (strace_fopen): [_LFS64_LARGEFILE]: Use fopen64.
Fixes Debian#385310.
trace.c
599df140f5ee4f57e9cc0a41f0276744d411c5d8 05-Jul-2007 Roland McGrath <roland@redhat.com> .
hangeLog
6176a1a9710a6c3a265a4cbd4c6c9c90d26e2942 05-Jul-2007 Roland McGrath <roland@redhat.com> .
hangeLog
09553f85cd97c4ad35cdf316c8e65621b9e86712 05-Jul-2007 Roland McGrath <roland@redhat.com> 2007-07-05 Roland McGrath <roland@redhat.com>

* strace.c (main): Fix error message for unfound -u user.
From Srinivasa Ds <srinivasa@in.ibm.com>.
trace.c
c9024cc3759a01c8c9df0af046900b14995e17b8 05-Jul-2007 Roland McGrath <roland@redhat.com> 2007-07-05 Roland McGrath <roland@redhat.com>

* debian/control (Architecture): Add armel.
ebian/control
a41eb90022ec00703f272bcaa4d21c38f9430209 05-Jul-2007 Roland McGrath <roland@redhat.com> .
hangeLog
6e2612785d30e876d74ba592a008941caf8ba116 05-Jul-2007 Roland McGrath <roland@redhat.com> 2007-07-05 Roland McGrath <roland@redhat.com>

* 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>.
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/dummy.h
inux/hppa/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/sparc64/syscallent.h
inux/sparc64/syscallent2.h
inux/syscallent.h
inux/x86_64/syscallent.h
026878377298a1154512ac51bbe7ffc9a28ad7d9 05-Jul-2007 Roland McGrath <roland@redhat.com> .
hangeLog
fece322e8badc9b47b4286c1d1d4cc7121e7b7e9 05-Jul-2007 Roland McGrath <roland@redhat.com> 2007-07-05 Roland McGrath <roland@redhat.com>

* configure.ac: Check for struct sigcontext.sc_hi2.
* signal.c (sys_sigreturn) [MIPS]: Use sc_hi2 vs sc_sigset if found.
onfigure.ac
ignal.c
a7b4e0a7d7b6faf3ce562f7e9ff036a68ef07393 05-Jul-2007 Roland McGrath <roland@redhat.com> .
hangeLog
359c8ed57c255be18299f383cb7e696fa5d62b63 05-Jul-2007 Roland McGrath <roland@redhat.com> 2007-03-21 Andreas Schwab <schwab@suse.de>

* file.c (sys_newfstatat): Don't use printstat64 on ppc64.
ile.c
c219f7c462c026cd35a3cfa3079e19ed7060eddc 05-Jul-2007 Roland McGrath <roland@redhat.com> .
hangeLog
51942a9f14ab9f01919c6251183783e7dc4dbd42 05-Jul-2007 Roland McGrath <roland@redhat.com> 2007-07-05 Roland McGrath <roland@frob.com>

* 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.
rocess.c
70e4b462daa660d9636077597bb12852c71ee54c 05-Jul-2007 Roland McGrath <roland@redhat.com> .
hangeLog
e1e57b28407f808962bb4481d678ec03ec5838dd 05-Jul-2007 Roland McGrath <roland@redhat.com> 2007-07-05 Jan Kratochvil <jan.kratochvil@redhat.com>

* test/leaderkill.c: New file.
* test/.cvsignore, test/Makefile: Add it.
est/.cvsignore
est/Makefile
est/leaderkill.c
0a463880341945df08b6dc79134dc78cc38dc283 05-Jul-2007 Roland McGrath <roland@redhat.com> 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.
trace.c
b011af5ef077fcfc2ad967579dcb1e5ed9b3193e 30-Jun-2007 Dmitry V. Levin <ldv@altlinux.org> 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 scsi.c
* defs.h (scsi_ioctl): New function.
* ioctl.c (ioctl_decode): Use scsi_ioctl().
hangeLog
akefile.am
efs.h
octl.c
csi.c
fefdd97156bb2f86c5b6596dc7e28d954516b3ed 29-Jun-2007 Dmitry V. Levin <ldv@altlinux.org> 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>.
hangeLog
til.c
8a483d8562559f1d017f06905ff84b3d724604b0 12-Jun-2007 Roland McGrath <roland@redhat.com> .
hangeLog
02203311e96a90608c30e6604dc1f7bda0a777f0 12-Jun-2007 Roland McGrath <roland@redhat.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.
trace.c
625c99885b10d762e5770c576514591f69b0b20e 02-Jun-2007 Roland McGrath <roland@redhat.com> .
hangeLog
134813ae1ecf7f214440a5a09d5eff15a71bf8e6 02-Jun-2007 Roland McGrath <roland@redhat.com> 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.
trace.c
71f1a1372ca83dfb8c11d0ecfb441fcba9946730 30-Mar-2007 Dmitry V. Levin <ldv@altlinux.org> 2007-03-30 Dmitry V. Levin <ldv@altlinux.org>

* mem.c (mmap_flags): Add MAP_32BIT.
Reported by Kirill A. Shutemov.
hangeLog
em.c
652e44878378777c2a8315e3f34286d488362490 21-Mar-2007 Dmitry V. Levin <ldv@altlinux.org> 2007-01-12 Dmitry V. Levin <ldv@altlinux.org>

* sock.c (sock_ioctl): Check umove() return code.
hangeLog
ock.c
ecdd0bbb5276b5b5ec3d1daf87be0b23082e17a6 21-Mar-2007 Dmitry V. Levin <ldv@altlinux.org> 2007-01-12 Dmitry V. Levin <ldv@altlinux.org>

* sock.c (sock_ioctl) [LINUX]: Handle SIOCGIFMAP.
hangeLog
ock.c
402842487c21f3cb97caefa2ca3724048da9e5de 21-Mar-2007 Dmitry V. Levin <ldv@altlinux.org> 2007-01-12 Dmitry V. Levin <ldv@altlinux.org>

* sock.c (sock_ioctl) [LINUX]: Handle SIOCGIFTXQLEN.
hangeLog
ock.c
9f825d3b6e0db50c521446c91afad05fa52c93e0 16-Mar-2007 Roland McGrath <roland@redhat.com> .
hangeLog
cc6cbe2a42513beee965e167ffd1ba6664a67e9e 16-Mar-2007 Roland McGrath <roland@redhat.com> 2007-03-16 Roland McGrath <roland@redhat.com>

* linux/s390/syscallent.h: Use sys_restart_syscall for 7.
* linux/s390x/syscallent.h: Likewise.
inux/s390/syscallent.h
inux/s390x/syscallent.h
c6696f5ee95d6a621efa06acffac2c36d6d31b59 18-Feb-2007 Roland McGrath <roland@redhat.com> .
hangeLog
cddc21f5fa6d93e12823e8e886938ed0405997ca 18-Feb-2007 Roland McGrath <roland@redhat.com> 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}.
trace.spec
00a1875a84c18e5feea1fe7293d52338f41b36f4 18-Feb-2007 Roland McGrath <roland@redhat.com> 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.
trace.spec
0a45fae03e880ff38d04b9f41510d8e69f0b6a1b 17-Jan-2007 Roland McGrath <roland@redhat.com> log updates
hangeLog
EWS
ebian/changelog
trace.spec
817b708fcb7fb95dee484df2b95ecc2967877419 16-Jan-2007 Dmitry V. Levin <ldv@altlinux.org> 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.
hangeLog
ystem.c
a0de7c1f643e7a5422e39e8f35afb92bccdbb84a 16-Jan-2007 Roland McGrath <roland@redhat.com> log update
hangeLog
EWS
ebian/changelog
trace.spec
71d7089055b0ce830bf13d9322f06b87d6ce47c0 13-Jan-2007 Dmitry V. Levin <ldv@altlinux.org> 2007-01-12 Dmitry V. Levin <ldv@altlinux.org>

* time.c [LINUX] (tprint_timex32, tprint_timex): Decode adjtimex
modes as flags.
hangeLog
ime.c
5c7ad8c9155271b3c7b8fc9f08da43d3d9138b71 13-Jan-2007 Dmitry V. Levin <ldv@altlinux.org> 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.
hangeLog
ystem.c
9b5b67eb43bf90e83834126dfde4472e5a721080 12-Jan-2007 Dmitry V. Levin <ldv@altlinux.org> 2007-01-11 Dmitry V. Levin <ldv@altlinux.org>

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.
hangeLog
efs.h
esc.c
ile.c
pc.c
5eb1aa539cdfe5be4a462f983c16cafdd94023e6 11-Jan-2007 Roland McGrath <roland@redhat.com> 2007-01-11 Roland McGrath <roland@redhat.com>

* system.c [LINUX] (CTL_CPU): Define in case header is missing it.
ystem.c
7a399408f2b97e55ab4dded8b289608bb16880c6 11-Jan-2007 Roland McGrath <roland@redhat.com> .
hangeLog
6d9e67e4a0dddd4b712f07c92531990bd85b96df 11-Jan-2007 Roland McGrath <roland@redhat.com> 2007-01-11 Roland McGrath <roland@redhat.com>

* debian/control (Uploaders): Add Frederik Schueler <fs@debian.org>.
ebian/control
4724f3b0f97d0a91cb94b99e7104645dd7563345 11-Jan-2007 Roland McGrath <roland@redhat.com> .
hangeLog
a9e3224b1154b6edada00dd733eed5b2c603cf09 11-Jan-2007 Roland McGrath <roland@redhat.com> .
hangeLog
cdec46946c34576b054276f8e3fa0cc73be9ffce 11-Jan-2007 Roland McGrath <roland@redhat.com> 2007-01-11 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.5.15.
* debian/changelog, strace.spec: 4.5.15-1.
* strace.spec (Release): Use %{?dist}.
trace.spec
16a3a52e0c3b97a91316006335421f2090d3bb91 11-Jan-2007 Roland McGrath <roland@redhat.com> 2007-01-11 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.5.15.
* debian/changelog, strace.spec: 4.5.15-1.
EWS
onfigure.ac
ebian/changelog
ab9008bc085848e6c898cd38b7415baa161c5890 11-Jan-2007 Dmitry V. Levin <ldv@altlinux.org> 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.
hangeLog
efs.h
esc.c
rocess.c
ignal.c
til.c
7d61ff1dbf7226ed35a35c12b8b642bd5fc9a0a9 21-Dec-2006 Dmitry V. Levin <ldv@altlinux.org> 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.
hangeLog
akefile.am
ount.c
efs.h
yscall.c
16f27946d5b7b243b90268fdc55ebb0785e8637a 21-Dec-2006 Dmitry V. Levin <ldv@altlinux.org> RH#165469 is also Debian#350641.
RH#218435 is also Debian#353935.
hangeLog
b2f869997a41b633918707ebc090a3028abc855a 21-Dec-2006 Dmitry V. Levin <ldv@altlinux.org> 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.
hangeLog
yscall.c
3abe8b20f6d303f0b2b772b3fbcde424697653a2 20-Dec-2006 Dmitry V. Levin <ldv@altlinux.org> 2006-12-20 Dmitry V. Levin <ldv@altlinux.org>

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.
hangeLog
yscall.c
10de62bb052b541af3d0566f05f3f870cce0e028 13-Dec-2006 Dmitry V. Levin <ldv@altlinux.org> 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.
hangeLog
efs.h
rocess.c
trace.c
d3cb392f8520cb1a6a3d6c93febe2a2424560574 13-Dec-2006 Dmitry V. Levin <ldv@altlinux.org> 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.
hangeLog
ime.c
165b15dbe8ca39334dd7059883c955829c95ac70 13-Dec-2006 Dmitry V. Levin <ldv@altlinux.org> 2006-12-10 Dmitry V. Levin <ldv@altlinux.org>

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.
hangeLog
ime.c
1a684d6ebee655035b06facee28c83f94c7dfbb9 13-Dec-2006 Dmitry V. Levin <ldv@altlinux.org> 2006-12-10 Dmitry V. Levin <ldv@altlinux.org>

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.
hangeLog
ime.c
1cad25dd44afc58a5345e704dcbe4ec0d57e58eb 13-Dec-2006 Dmitry V. Levin <ldv@altlinux.org> 2006-12-10 Dmitry V. Levin <ldv@altlinux.org>

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.
hangeLog
ime.c
a7945a3d4e144674a8dd1d885e7086bc274e391b 13-Dec-2006 Dmitry V. Levin <ldv@altlinux.org> 2006-12-10 Dmitry V. Levin <ldv@altlinux.org>

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.
efs.h
esc.c
ile.c
ime.c
4ebb4e3d312bb8215f4eea9130cce6bb8bdb972f 13-Dec-2006 Dmitry V. Levin <ldv@altlinux.org> 2006-12-10 Dmitry V. Levin <ldv@altlinux.org>

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.
hangeLog
efs.h
o.c
til.c
ac518d10777f9dd95aad22939da6c867cf4c193e 13-Dec-2006 Dmitry V. Levin <ldv@altlinux.org> 2006-12-10 Dmitry V. Levin <ldv@altlinux.org>

* time.c (sys_timer_create): Check umove() return code.
hangeLog
ime.c
b9fe011cdfb0a3014e68a6e82007b6c2703a340b 13-Dec-2006 Dmitry V. Levin <ldv@altlinux.org> 2006-12-10 Dmitry V. Levin <ldv@altlinux.org>

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.
hangeLog
efs.h
esc.c
ile.c
em.c
et.c
rocess.c
ignal.c
trace.c
tream.c
yscall.c
35a55785ea8ff44d214af52085e3a5ea624730aa 04-Dec-2006 Dmitry V. Levin <ldv@altlinux.org> 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.
hangeLog
ystem.c
a6946662073f457921adac41dc12fe79c5feb4df 04-Dec-2006 Dmitry V. Levin <ldv@altlinux.org> 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.
hangeLog
inux/ia64/syscallent.h
ef5c3d657dee362898d84e697efea4a5e48a7b96 16-Oct-2006 Dmitry V. Levin <ldv@altlinux.org> 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.
hangeLog
akefile.am
uota.c
esource.c
1f336e59aa4a8afafcaede0580d8aa8572bb8679 14-Oct-2006 Dmitry V. Levin <ldv@altlinux.org> 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.
hangeLog
onfigure.ac
ile.c
cbd470fc9d92ff2553567a4334fb307afcaec09a 14-Oct-2006 Dmitry V. Levin <ldv@altlinux.org> 2006-10-14 Dmitry V. Levin <ldv@altlinux.org>

* strace.c (main): Check getcwd() return code.
hangeLog
trace.c
95ebf5abfc1f3ed8b451b7816aa51b93a49e3ef7 13-Oct-2006 Dmitry V. Levin <ldv@altlinux.org> 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.
hangeLog
efs.h
esc.c
ile.c
inux/alpha/syscallent.h
inux/hppa/syscallent.h
inux/ia64/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sparc/syscallent.h
inux/sparc64/syscallent.h
inux/syscall.h
inux/syscallent.h
inux/x86_64/syscallent.h
rocess.c
ignal.c
tream.c
9633942c07427ed51caea0e73f139e964d1a19cc 12-Oct-2006 Dmitry V. Levin <ldv@altlinux.org> 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.
hangeLog
trace.c
504eb0b9c6550808a09e4c959f2d772d22197974 12-Oct-2006 Dmitry V. Levin <ldv@altlinux.org> 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.
hangeLog
ile.c
aca9a74264bb2460f014fb0b2935c25a03e79646 12-Oct-2006 Dmitry V. Levin <ldv@altlinux.org> 2006-04-21 Dmitry V. Levin <ldv@altlinux.org>

* defs.h [LINUX && X86_64 && !__NR_exit_group]: Define
__NR_exit_group.
hangeLog
efs.h
76860f60d73bbdcc98725b6f8d7997ad0746cac2 12-Oct-2006 Dmitry V. Levin <ldv@altlinux.org> 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.
hangeLog
rocess.c
trace.c
fd52f8d9afa1642922bc9942d463eb1ef41cc0cb 10-Oct-2006 Roland McGrath <roland@redhat.com> fix bz tag
hangeLog
ff87ae2ef175376837d4123b67d7ad842ad0ecea 22-Aug-2006 Roland McGrath <roland@redhat.com> .
hangeLog
9f130d5114b4c8e83330bcd254d1c78dd70e1371 22-Aug-2006 Roland McGrath <roland@redhat.com> 2006-08-22 Roland McGrath <roland@redhat.com>

* ipc.c (sys_msgget, sys_semget, sys_shmget): Show key values in hex.
Fixes RH#198179.
pc.c
7103001b35e9e980e99e970161138658a2947d77 22-Aug-2006 Roland McGrath <roland@redhat.com> .
hangeLog
1eecc385606e5468691599d68978285987c2b89d 22-Aug-2006 Roland McGrath <roland@redhat.com> 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#202620.
inux/powerpc/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
6ef291b9ebdacef545e866ea2676c294ada9b397 22-Aug-2006 Roland McGrath <roland@redhat.com> .
hangeLog
feb838139028d6e063d10a6033269870a5c25b5c 22-Aug-2006 Roland McGrath <roland@redhat.com> 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.
Fixes RH#202620.
inux/arm/syscallent.h
inux/m68k/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/syscall.h
inux/syscallent.h
de1701007fac0f1df89cd4be80f30e00883cc69a 25-Apr-2006 Roland McGrath <roland@redhat.com> .
hangeLog
cb9def6975f28933ada9d35f05c6fba9ab3fe1fd 25-Apr-2006 Roland McGrath <roland@redhat.com> 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.
trace.1
trace.c
5b97ae3122012238888de8a20dbeed65872671e2 25-Apr-2006 Roland McGrath <roland@redhat.com> .
hangeLog
d0c4c0cb881facd0ccf16b0c266875a8bf3e56aa 25-Apr-2006 Roland McGrath <roland@redhat.com> 2006-04-25 Roland McGrath <roland@redhat.com>

* strace.c (main): Fail when nonoption args follow -p switches.
Fixes Debian#361302.
trace.c
4582127fea84ea0a9bcf72367e5bea30deb07715 25-Apr-2006 Roland McGrath <roland@redhat.com> 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.
inux/arm/syscallent.h
9216ba7a745ea61d22a3bfb62d2069ac6ecf1922 25-Apr-2006 Roland McGrath <roland@redhat.com> .
hangeLog
f691bd2a4f0a915f998e4127b108869b57db4213 25-Apr-2006 Roland McGrath <roland@redhat.com> 2006-03-30 Daniel Jacobowitz <dan@codesourcery.com>

* process.c (change_syscall): Add ARM support.
* syscall.c (get_scno): Handle ARM EABI.
Fixes Debian#360152.
rocess.c
yscall.c
9d19e163f0ef3da8018584784442d3f7e4932f3a 25-Apr-2006 Roland McGrath <roland@redhat.com> .
hangeLog
5a862ff6b9329ea7549072ec3090c47a3816ce3b 25-Apr-2006 Roland McGrath <roland@redhat.com> 2006-04-25 Roland McGrath <roland@redhat.com>

* Makefile.am (EXTRA_DIST): Add xlate.el.
akefile.am
6827f0c223103c37819500a2bd3f81a1b6a67c73 25-Apr-2006 Roland McGrath <roland@redhat.com> 2006-04-25 Roland McGrath <roland@redhat.com>

* linux/mips/Makefile.in: File removed, unused cruft.
* linux/sparc/Makefile.in: Likewise.
inux/mips/Makefile.in
inux/sparc/Makefile.in
2377706eb5caf9b037e8f4b60d653465b92037e6 25-Apr-2006 Roland McGrath <roland@redhat.com> .
hangeLog
4aa15561f96648de3c326b38da515e40b3d11a37 25-Apr-2006 Roland McGrath <roland@redhat.com> 2006-04-25 Roland McGrath <roland@redhat.com>

* strace.spec (Source0): Use http://dl.sourceforge.net URL.
trace.spec
a079d9f95a9afcdf3621ab02defc90045c72ae89 25-Apr-2006 Roland McGrath <roland@redhat.com> 2006-04-25 Roland McGrath <roland@redhat.com>

* 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.
pc.c
inux/hppa/syscallent.h
074a8e1619708023d6092b8c54574e5f698a5f72 17-Jan-2006 Roland McGrath <roland@redhat.com> .
hangeLog
f4d9b49453169979469428dee02eaca98bca21d7 17-Jan-2006 Roland McGrath <roland@redhat.com> 2006-01-16 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.5.14.
* debian/changelog, strace.spec: 4.5.14-1.
EWS
onfigure.ac
ebian/changelog
trace.spec
ef6b8bf61be046f94a23e1e4d2beb3945c1754df 14-Jan-2006 Roland McGrath <roland@redhat.com> .
hangeLog
e1f27c5aedc394c804e076599307b520d1014e8a 14-Jan-2006 Roland McGrath <roland@redhat.com> 2006-01-13 Roland McGrath <roland@redhat.com>

* debian/control (Build-Depends): Add debhelper.
ebian/control
402c9d1ed5483c75056812b2811117b6e5b076a6 12-Jan-2006 Roland McGrath <roland@redhat.com> .
hangeLog
79dcd7aa9cdb1784a4e799fbb4fc37374d6424f1 12-Jan-2006 Roland McGrath <roland@redhat.com> 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.
inux/alpha/syscallent.h
inux/arm/syscallent.h
inux/hppa/syscallent.h
inux/ia64/syscallent.h
inux/m68k/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/sh/syscallent.h
inux/sparc/syscall.h
inux/sparc/syscallent.h
inux/sparc64/syscallent.h
inux/syscall.h
inux/syscallent.h
inux/x86_64/syscallent.h
ignal.c
6af374811ba26950c2ac3e7f9bfd69cb986e0f27 12-Jan-2006 Roland McGrath <roland@redhat.com> 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.
ystem.c
e8e43207bde1b6600ef0af0d053ad2b11b39e23c 12-Jan-2006 Roland McGrath <roland@redhat.com> .
hangeLog
839a9da963caedb9fe9388b9670376b559d9e14c 12-Jan-2006 Roland McGrath <roland@redhat.com> 2006-01-12 Roland McGrath <roland@redhat.com>

* debian/control (Standards-Version): Update to 3.6.2.
ebian/control
9ee476f7d442bc37a9e1e6adafbb3cdd7b40a3d0 12-Jan-2006 Roland McGrath <roland@redhat.com> .
hangeLog
8e4a3e61ef9034308d273fd10cb2cf256c9f068d 12-Jan-2006 Roland McGrath <roland@redhat.com> 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.
ystem.c
0662b590abf091ea1b6f9d5fd0f6c1ab9fece2ee 12-Jan-2006 Roland McGrath <roland@redhat.com> 2006-01-12 Roland McGrath <roland@redhat.com>

* debian/rules (binary-arch): Don't pass -s to install. Use dh_strip.
Fixes Debian#325132.
ebian/rules
97a932bc725db9ec5e678a711cafdc056a902b79 12-Jan-2006 Roland McGrath <roland@redhat.com> .
hangeLog
4b2dccaf943adf4ff2b6e15c1f51a59652f8da36 12-Jan-2006 Roland McGrath <roland@redhat.com> 2006-01-12 Roland McGrath <roland@redhat.com>

* 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.
efs.h
yscall.c
4935530a8a388a0cff4a828cf8c6cc0518e9abd0 12-Jan-2006 Roland McGrath <roland@redhat.com> .
hangeLog
138c6a334fd9949d6147c63ada02cf55472e02c0 12-Jan-2006 Roland McGrath <roland@redhat.com> 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.
efs.h
trace.c
yscall.c
7c061b21353dced7b2d00886edce04ec8f971bac 12-Jan-2006 Roland McGrath <roland@redhat.com> .
hangeLog
48a035fb6f4300c0d2f9341eaf63f1d95c5ba2ae 12-Jan-2006 Roland McGrath <roland@redhat.com> 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.
yscall.c
52f70f7451891f8dbd55b4e3685b65de8eb4800c 02-Dec-2005 Roland McGrath <roland@redhat.com> .
hangeLog
e1ebaabb727036c3319c5bdb361d3c3c937ad37a 02-Dec-2005 Roland McGrath <roland@redhat.com> 2005-12-01 Roland McGrath <roland@redhat.com>

* ipc.c (indirect_ipccall) [MIPS || HPPA]: Return false.
Fixes Debian#340239.
pc.c
cdb247397a416d02fbd8bd5fe6f9b9fac8b9610e 02-Dec-2005 Roland McGrath <roland@redhat.com> 2005-12-01 Roland McGrath <roland@redhat.com>

* Makefile.am (EXTRA_DIST): Add linux/arm/syscallent.h
and linux/m68k/syscallent.h.
Fixes Debian#336197.
akefile.am
c0f1b7579a324041baf4b2c9d41683ffd388865e 02-Dec-2005 Roland McGrath <roland@redhat.com> 2005-12-01 Roland McGrath <roland@redhat.com>

* debian/control (Architecture): Add armeb.
Fixes Debian#335681.
ebian/control
ec407e3b56e283e2764499b3ab6473733c6a0c8d 02-Dec-2005 Roland McGrath <roland@redhat.com> 2005-11-02 Michal Marek <mmarek@suse.cz>

* strace-graph (handle_trace): follow clone() and vfork() calls.
trace-graph
362f1c3e3f6eb6514d29668978928092e56a1500 02-Dec-2005 Roland McGrath <roland@redhat.com> .
hangeLog
06288007583eff6d8059f954c0baffae2d13a136 02-Dec-2005 Roland McGrath <roland@redhat.com> 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.
inux/s390/syscallent.h
inux/s390x/syscallent.h
a81bf4c79f9f2706cd1bea0082fb8d63f08e8a5b 02-Dec-2005 Roland McGrath <roland@redhat.com> 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.
pc.c
13d9851c4f9b550327b2afb6c9a51af1739ba9f3 02-Dec-2005 Roland McGrath <roland@redhat.com> 2005-10-07 Andreas Schwab <schwab@suse.de>

* linux/ia64/syscallent.h: Syscall 1105 is gettid, not ioperm.
inux/ia64/syscallent.h
8e5ca848303a7a1c33d07127493fa4778053cd32 02-Dec-2005 Roland McGrath <roland@redhat.com> .
hangeLog
70d9909b9e43f9de697a4e9616eadc3577fec9fa 02-Dec-2005 Roland McGrath <roland@redhat.com> 2005-12-01 Roland McGrath <roland@redhat.com>

* resource.c (resources): Add RLIMIT_NICE, RLIMIT_RTPRIO.
Reported by Scott Tsai <scottt958@yahoo.com.tw>.
esource.c
bc38ae72f2b4418a79fb339dc1bb900546f7b443 02-Dec-2005 Roland McGrath <roland@redhat.com> .
hangeLog
7f7f436b77ae29e1be2e78e270e0c22116969b55 02-Dec-2005 Roland McGrath <roland@redhat.com> 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.
trace.1
89e94ff094ba4c1e3368c2b369d14d0bd0423740 02-Dec-2005 Roland McGrath <roland@redhat.com> .
hangeLog
54b90d784234deb727fd02fdde57ddaa9d51354d 02-Dec-2005 Roland McGrath <roland@redhat.com> 2005-12-01 Roland McGrath <roland@redhat.com>

* 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.
pc.c
b22dfe381e5c681efb9018c2043c4e2ca0371803 02-Dec-2005 Roland McGrath <roland@redhat.com> 2005-07-31 Ulrich Drepper <drepper@redhat.com>

* linux/x86_64/syscallent.h: Fix syscall parameter count for msgrcv and
msgctl.
inux/x86_64/syscallent.h
61b675e197ed6db678005248e34bd94d1d7a3ae9 02-Dec-2005 Roland McGrath <roland@redhat.com> .
hangeLog
f467c0078a197fa9ab23706bef5479d43bd6cc7e 02-Dec-2005 Roland McGrath <roland@redhat.com> 2005-07-31 Ulrich Drepper <drepper@redhat.com>

* ipc.c (sys_msgrcv): Add entering handling and print first parameter
there.
Fixes RH#164757.
pc.c
68565786b59c8f42ec51ac58f3aceb1c98a26445 22-Oct-2005 Roland McGrath <roland@redhat.com> .
hangeLog
b15c4e47ff5b2b0dd71fa10472eafb1d5abf4c5f 22-Oct-2005 Roland McGrath <roland@redhat.com> 2005-10-21 Roland McGrath <roland@redhat.com>

* util.c (printpathn): Cap N at sizeof path - 1.
til.c
03c3d75de17e1b8e4bc017018dbd6566cf5be6e6 03-Aug-2005 Roland McGrath <roland@redhat.com> .
hangeLog
be4d9f8b98e3b6910a3a8a580bbd421f086c7ffd 03-Aug-2005 Roland McGrath <roland@redhat.com> 2005-08-03 Roland McGrath <roland@redhat.com>

* 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.
onfigure.ac
esource.c
7e94676ebf64c4a29ccf1c1439d36334b0044e57 03-Aug-2005 Roland McGrath <roland@redhat.com> .
hangeLog
e806ac29eef0c848b54532ac4c5a9d8e2e2c4208 03-Aug-2005 Roland McGrath <roland@redhat.com> 2005-08-03 Roland McGrath <roland@redhat.com>

* resource.c [LINUX] (OLD_CMD): New macro.
(quotacmds): Use it to hard-wire old O_* values, don't use macros.
esource.c
0c26d34b782b075c237db96ed3376a3defd7827e 03-Aug-2005 Roland McGrath <roland@redhat.com> .
hangeLog
cab4380dbb475fa457b06270e476851c73984c77 03-Aug-2005 Roland McGrath <roland@redhat.com> 2005-08-03 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.5.13.
* debian/changelog, strace.spec: 4.5.13-1.
EWS
onfigure.ac
ebian/changelog
trace.spec
9554a485749b87ee7ff76f9cbec6c7716c22fc18 03-Aug-2005 Roland McGrath <roland@redhat.com> .
hangeLog
0ef86adb978e1c7fe511c189e4fb4a807f735936 03-Aug-2005 Roland McGrath <roland@redhat.com> 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.
inux/m68k/syscallent.h
inux/syscallent.h
64434f847dd6e26573969b196034edbcde72a30d 03-Aug-2005 Roland McGrath <roland@redhat.com> 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.
inux/arm/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/sparc64/syscallent.h
inux/sparc64/syscallent2.h
inux/x86_64/syscallent.h
7dbfe57c15e243f8044a3ce6e4baafcc750b527b 03-Aug-2005 Roland McGrath <roland@redhat.com> 2005-07-22 James Lentini <jlentini@gmail.com>

* bjm.c (sys_init_module): Display all three arguments.
* linux/syscallent.h: Update argument count.
jm.c
inux/syscallent.h
e0f6bb05c7af378e7d88d07ed1e6198bd3a4f8fa 03-Aug-2005 Roland McGrath <roland@redhat.com> .
hangeLog
a08a97eff32ba016ec5d71d2e6948dd43b98cf34 03-Aug-2005 Roland McGrath <roland@redhat.com> 2005-08-03 Roland McGrath <roland@redhat.com>

* 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.
trace.c
d56a656ec871341edb73358f63ee96b7d56a819a 03-Aug-2005 Roland McGrath <roland@redhat.com> 2005-08-03 Roland McGrath <roland@redhat.com>

* process.c (internal_wait): Don't suspend when known child is known
to be exiting already.
rocess.c
30afb79ee2764d28ed4bc77e3b878b650ea0a92f 19-Jul-2005 Roland McGrath <roland@redhat.com> .
hangeLog
165155a9c63b7076e60a74a44c86f8d8b308c9c4 19-Jul-2005 Roland McGrath <roland@redhat.com> 2005-07-19 Roland McGrath <roland@redhat.com>

* defs.h [LINUX] [M68K] (__NR_exit_group): Define it if missing.
Fixes Debian#315500.
efs.h
387d0e5942bce95be28c95d374ea41e787ac25ed 19-Jul-2005 Roland McGrath <roland@redhat.com> .
hangeLog
feb90500e27a0767abca81e62446b3955e772e6e 19-Jul-2005 Roland McGrath <roland@redhat.com> 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.
inux/s390/errnoent.h
inux/s390/syscallent.h
inux/s390x/errnoent.h
inux/s390x/syscallent.h
415a7d6f9197290669c385641b9e88c76638bc6c 05-Jul-2005 Roland McGrath <roland@redhat.com> .
hangeLog
520e21f01e73a9998726bf93d7c279c702eca07c 05-Jul-2005 Roland McGrath <roland@redhat.com> 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.
em.c
e10dc51eead427144adfea0d75ca8dea68a7e0eb 05-Jul-2005 Roland McGrath <roland@redhat.com> .
hangeLog
2fe7b13b2f893f7647408af98576affe2b9b123d 05-Jul-2005 Roland McGrath <roland@redhat.com> 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.
efs.h
reebsd/i386/syscallent.h
inux/alpha/syscallent.h
inux/hppa/syscallent.h
inux/ia64/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/sparc64/syscallent.h
inux/sparc64/syscallent2.h
inux/syscallent.h
inux/x86_64/syscallent.h
trace.1
unos4/syscallent.h
vr4/syscallent.h
yscall.c
fd583f64204fb99890e67f181f34341538f0b093 05-Jul-2005 Roland McGrath <roland@redhat.com> .
hangeLog
ada42316254569dd40bbe5e07d2e42f698ad66f7 05-Jul-2005 Roland McGrath <roland@redhat.com> 2005-06-08 Dmitry V. Levin <ldv@altlinux.org>

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.
reebsd/i386/syscallent.h
inux/alpha/syscallent.h
inux/hppa/syscallent.h
inux/ia64/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/sparc/syscallent.h
inux/sparc64/syscallent.h
inux/sparc64/syscallent2.h
inux/syscallent.h
inux/x86_64/syscallent.h
vr4/syscallent.h
bfacc2613d90a7e959db036ccde56fb5fed1e5a2 05-Jul-2005 Roland McGrath <roland@redhat.com> .
hangeLog
c0b9e37b3fefaf5d7e6a3c132c72df84eee411a9 05-Jul-2005 Roland McGrath <roland@redhat.com> 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.
et.c
012ffdf69cfed12492bf7684599c761a82be62a6 05-Jul-2005 Roland McGrath <roland@redhat.com> .
hangeLog
04ac03a554548ad69f2699b98ae31e15a7fc7915 05-Jul-2005 Roland McGrath <roland@redhat.com> 2005-07-04 Roland McGrath <roland@redhat.com>

* net.c (sockipoptions): Fix typos.
From Ulrich Drepper <drepper@redhat.com>.
Fixes RH#161578.
et.c
9814a94bd10aea81b8bcb29e2ba167b09d70cedb 05-Jul-2005 Roland McGrath <roland@redhat.com> 2005-07-04 Roland McGrath <roland@redhat.com>

* 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.
efs.h
et.c
til.c
43cb21f2e606c012194b5760e802344b72a4d29b 10-Jun-2005 Roland McGrath <roland@redhat.com> .
hangeLog
182cbf4a4a14b15f607de40e7752e92c04b418ff 10-Jun-2005 Roland McGrath <roland@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.
EWS
onfigure.ac
ebian/changelog
trace.spec
59a611ba1de47a3462503e9396f7d846e60d67a4 08-Jun-2005 Roland McGrath <roland@redhat.com> .
hangeLog
a4d4853f679014799a6608cc8114e6ce7f37ae89 08-Jun-2005 Roland McGrath <roland@redhat.com> 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.
efs.h
ile.c
rocess.c
yscall.c
til.c
d40a3931db28704d9c93127ebceb2ca92beb867a 08-Jun-2005 Roland McGrath <roland@redhat.com> .
hangeLog
84fa923c15aa537b666d26694549091e9b9a5ddb 08-Jun-2005 Roland McGrath <roland@redhat.com> 2005-05-12 Philippe De Muyter <phdm@macqel.be>

* util.c (getpc, printcall): Check #if defined(M68K), not M68k.
Enables `-i' on m68k machines.
til.c
e35109a19d97b941f38e79980f94990c67701123 08-Jun-2005 Roland McGrath <roland@redhat.com> typo
hangeLog
5d73170df49aca9c3649c9ca0fa537c19f3f57ca 08-Jun-2005 Roland McGrath <roland@redhat.com> .
hangeLog
ca85b97c9cea63db45e59a345218b902936b693d 08-Jun-2005 Roland McGrath <roland@redhat.com> revert debugging code
til.c
76989d7a16cb9683d0a75a6261f18ced66d0c04a 08-Jun-2005 Roland McGrath <roland@redhat.com> 2005-06-06 Roland McGrath <roland@redhat.com>

* 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.
efs.h
trace.c
til.c
e69b627099635f34bc2056e6cf2ada02ec9b0a09 08-Jun-2005 Roland McGrath <roland@redhat.com> 2005-06-06 Roland McGrath <roland@redhat.com>

* 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.
* 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.
inux/syscall.h
173527948f2e0521a69e9d569dbf12a810bbe788 08-Jun-2005 Roland McGrath <roland@redhat.com> 2005-06-06 Roland McGrath <roland@redhat.com>

* 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_*.
* 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.
yscall.c
ef78250d7959ab7a8f835631679a97beeb0a1a0f 08-Jun-2005 Roland McGrath <roland@redhat.com> 2005-06-06 Roland McGrath <roland@redhat.com>

* 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.
inux/syscallent.h
a4f9f2da0790e75de1e64b6b169d29c14c5bab53 08-Jun-2005 Roland McGrath <roland@redhat.com> 2005-06-06 Roland McGrath <roland@redhat.com>

* process.c (struct_user_offsets) [X86_64]: Reorder elements so
matching works right.
Fixes RH#159787.
* 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.
rocess.c
6286f66d7a8e48805682f6ceb447bb20cf2cd859 03-Jun-2005 Roland McGrath <roland@redhat.com> .
hangeLog
0873843a2493532f6acbd39431b55fb3843cad9d 03-Jun-2005 Roland McGrath <roland@redhat.com> 2005-06-02 Roland McGrath <roland@redhat.com>

* file.c (printstatfs64): Cast values to unsigned long long and use
%llu formats.
Fixes RH#158243.
ile.c
712a6bfb58db78c5cf19cbc67fff8a62a2da665d 01-Jun-2005 Roland McGrath <roland@redhat.com> .
hangeLog
aa524c88c49814863cb7f19e5c8a8eeca6ce22fe 01-Jun-2005 Roland McGrath <roland@redhat.com> 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.
efs.h
esc.c
ile.c
o.c
em.c
et.c
rocess.c
tream.c
ystem.c
til.c
b422e0d47dd81daa7d7df359f1237c7aaea173cb 01-Jun-2005 Roland McGrath <roland@redhat.com> .
hangeLog
b2dee13345a62c80a677f3342cd525d611fbc632 01-Jun-2005 Roland McGrath <roland@redhat.com> 2005-05-31 Dmitry V. Levin <ldv@altlinux.org>

* 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.
jm.c
efs.h
esc.c
ile.c
pc.c
em.c
et.c
roc.c
rocess.c
ignal.c
ock.c
tream.c
ystem.c
erm.c
ime.c
til.c
a6ef1a307592a4b03080782216c906763e1632d3 01-Jun-2005 Roland McGrath <roland@redhat.com> .
hangeLog
0d3f645a48402d697ba5fe9aa9345f52d9e5e6a0 01-Jun-2005 Roland McGrath <roland@redhat.com> 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.
jm.c
e8c6eec04bfa504e54ba0b477288289e2542f400 01-Jun-2005 Roland McGrath <roland@redhat.com> .
hangeLog
46100d07257824da2ae1147da0324b5788c95501 01-Jun-2005 Roland McGrath <roland@redhat.com> 2005-05-31 Dmitry V. Levin <ldv@altlinux.org>

* 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.
jm.c
esc.c
ile.c
em.c
trace.c
ystem.c
til.c
e776e3e4cbf675f33d2661c58d2442d6d6be9566 27-May-2005 Roland McGrath <roland@redhat.com> .
hangeLog
2cbe44e441726abf568fbc4ca3cb5ab157ae7684 27-May-2005 Roland McGrath <roland@redhat.com> 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.
ystem.c
682291ec61d4b9e2397cd739679139e4c17fb0d2 09-May-2005 Roland McGrath <roland@redhat.com> .
hangeLog
cbdbcafd4c7854a8a8d4a21e4e1c75cd39eb771f 09-May-2005 Roland McGrath <roland@redhat.com> 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.
onfigure.ac
37b9f8480cf54455d1943e534509e20a92da2199 09-May-2005 Roland McGrath <roland@redhat.com> 2005-05-09 Roland McGrath <roland@redhat.com>

* 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.
esc.c
inux/alpha/syscallent.h
inux/hppa/syscallent.h
inux/ia64/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/syscall.h
inux/syscallent.h
inux/x86_64/syscallent.h
bc718ed39631d8f7b4a06a44982c24ce316816cc 09-May-2005 Roland McGrath <roland@redhat.com> 2005-05-09 Roland McGrath <roland@redhat.com>

* debian/control (Architecture): Add ppc64.
Fixes Debian bug #301089.
ebian/control
05a017be6b358b67eecb124e10fd7f2dc689b0eb 09-May-2005 Roland McGrath <roland@redhat.com> .
hangeLog
dccec72a72e7b6451d9739e5d4611f4abf39f48d 09-May-2005 Roland McGrath <roland@redhat.com> 2005-05-09 Roland McGrath <roland@redhat.com>

* strace.c (main): Refuse negative -s argument value.
Fixes Debian bug #303256.
trace.c
f04bb48240da2eeccbc12f00281c5b9bb172b4da 09-May-2005 Roland McGrath <roland@redhat.com> 2005-05-05 Anton Blanchard <anton@samba.org>

* process.c (ptrace_cmds): Add PTRACE_GETVRREGS and PTRACE_SETVRREGS
if defined.
rocess.c
f3b565be86a5f32e3b3f73d0fb6661de28938cd6 09-May-2005 Roland McGrath <roland@redhat.com> .
hangeLog
1025c3ed7f1043ffe66f763db81b85a537ebb023 09-May-2005 Roland McGrath <roland@redhat.com> 2005-04-25 Anton Blanchard <anton@samba.org>

* file.c (openmodes): Add O_NOATIME flag if defined.
ile.c
802b8f41dcf393f3237bd8f7651153c3836fea8b 09-May-2005 Roland McGrath <roland@redhat.com> 2005-04-05 Anton Blanchard <anton@samba.org>

* 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.
pc.c
ad81dce78f49fdc690dd83f4f6e90cebe51b1a67 09-May-2005 Roland McGrath <roland@redhat.com> 2005-04-05 Anton Blanchard <anton@samba.org>

* signal.c (signame): Don't try and dereference negative index.
ignal.c
039a00aa83f1877b7bc96a3bb450d26a0259e199 09-May-2005 Roland McGrath <roland@redhat.com> 2005-04-05 Anton Blanchard <anton@samba.org>

* 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.
inux/powerpc/syscallent.h
cd71177823ba419512fe248f3e21d920b916ee80 09-May-2005 Roland McGrath <roland@redhat.com> 2005-04-05 Anton Blanchard <anton@samba.org>

* linux/powerpc/ioctlent.h: Regenerated.
inux/powerpc/ioctlent.h
e1f1e5744330b5c48da26a3e7ffbe7ff2159be52 23-Mar-2005 Roland McGrath <roland@redhat.com> .
hangeLog
183df961ee3bb7376458483905d8253dae0f1cf8 23-Mar-2005 Roland McGrath <roland@redhat.com> 2005-03-22 Roland McGrath <roland@redhat.com>

* desc.c (decode_select): Increase local buffer size.
Fixes RH#151570.
esc.c
a3734a91edcf414364a0953205ae5b1b5c312da3 23-Mar-2005 Roland McGrath <roland@redhat.com> .
hangeLog
985e8fd9bda8c6a786ae37155303c673d4f1bd42 23-Mar-2005 Roland McGrath <roland@redhat.com> 2005-03-22 Roland McGrath <roland@redhat.com>

* linux/arm/syscallent.h: Fix 113 entry (syscall, not vm86old).
inux/arm/syscallent.h
7147a3df2cd6fc7d77208690389463876082cdfd 23-Mar-2005 Roland McGrath <roland@redhat.com> 2005-03-22 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.5.11.
* debian/changelog, strace.spec: 4.5.11-1.
EWS
onfigure.ac
ebian/changelog
trace.spec
3181c51d47ca7e8b8a805ca2e380c993c58029e4 15-Mar-2005 Roland McGrath <roland@redhat.com> .
hangeLog
d8184030b34f896092d821c9d7a25653faa05aa8 15-Mar-2005 Roland McGrath <roland@redhat.com> 2005-03-14 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.5.10.
* debian/changelog, strace.spec: 4.5.10-1.
EWS
onfigure.ac
ebian/changelog
trace.spec
0495c93dee7cdf2d6ea4a3b4d88406d347356a6c 15-Mar-2005 Roland McGrath <roland@redhat.com> .
hangeLog
0de75164d873fde8b0a69ae124cf7b4b2ea22251 15-Mar-2005 Roland McGrath <roland@redhat.com> 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.
inux/alpha/syscallent.h
391a4e7bc2053332611872a976c226f26a9ace9f 15-Mar-2005 Roland McGrath <roland@redhat.com> .
hangeLog
eca2025d6d06c1b22b3198833cafc0ae5f44d79e 15-Mar-2005 Roland McGrath <roland@redhat.com> 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.
inux/mips/syscallent.h
14b082ed7c9f2823ddb675efd074d5cfacd53d90 15-Mar-2005 Roland McGrath <roland@redhat.com> 2005-03-14 Roland McGrath <roland@redhat.com>

* debian/control (Architecture): Add s390.
Fixes Debian bug #294172.
ebian/control
920e6bb712d63512356857d198c073a3683fcb5f 15-Mar-2005 Roland McGrath <roland@redhat.com> 2005-02-28 Andreas Schwab <schwab@suse.de>

* syscall.c (getrval2): Move #ifdef IA64 inside #ifdef LINUX.
yscall.c
bfb49e5f608700bcede1a2c2f316002594691e40 06-Mar-2005 Roland McGrath <roland@redhat.com> .
hangeLog
3a055d7d64222223da2550ca540043de7e3e232b 06-Mar-2005 Roland McGrath <roland@redhat.com> 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.
trace.c
4859f6cef86519201dad8ecac933576d963c2e36 02-Mar-2005 Roland McGrath <roland@redhat.com> .
hangeLog
f774642aa435b67f4e6c4316d3955318a799fc8a 02-Mar-2005 Roland McGrath <roland@redhat.com> 2005-03-01 Roland McGrath <roland@redhat.com>

* file.c (print_xattr_val): Add a cast.
ile.c
b0a3d4ee5aa8b2305257897367d7abc8ae1cce95 06-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
e85aaa459ac01e12560d28cb7aad5bce18f54fba 06-Feb-2005 Roland McGrath <roland@redhat.com> 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.
esc.c
371ed8fceca7e2812a5edbaab2db2cce966dc0e8 06-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-05 Roland McGrath <roland@redhat.com>

* util.c (printpath, printpathn): Print NULL and don't try any fetch
when ADDR is zero.
Fixes Debian bug #63093.
til.c
854694b0873e6b7bc416be78b4f1c32f91889917 06-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
15dca8e307086cb2a53045046fe4791dc7afe378 06-Feb-2005 Roland McGrath <roland@redhat.com> 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.
efs.h
rocess.c
trace.c
a24aaae493cadc62c069f1c4c93bc2b6b7306dd9 06-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-05 Roland McGrath <roland@redhat.com>

* debian/control (Build-Depends): Fix for s390 and sparc.
From Bastian Blank <waldi@debian.org>.
Fixes Debian bug #293564.
ebian/control
6df9d64bd40de52916a912df8e2c0c543abfd2e1 04-Feb-2005 Roland McGrath <roland@redhat.com> nit
trace.spec
0c6c17b4511120d2f4cc02616d88e40b7fbe92c1 04-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
3619a99bb4fccdde2edbaf440f5da5905371d52c 04-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-04 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.5.9.
* debian/changelog, strace.spec: 4.5.9-2.
ebian/changelog
trace.spec
1e834485c6f52e8987a0eeceddf47a3a385464a4 04-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
663a8a065c96d491cfc4f9516747d9ccac79de97 04-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-04 Roland McGrath <roland@redhat.com>

* file.c (O_LARGEFILE): Omit when #undef'd because it was zero.
ile.c
55f23e71c8f9d88cbdd788ab795215614900c8b6 04-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
d63311a8bc005eb794bff08f2ed5872c4136757c 04-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-04 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.5.9.
* debian/changelog, strace.spec: 4.5.9-1.
EWS
onfigure.ac
ebian/changelog
trace.spec
026bdab75f0ec7464413a41d777fa6e75c9567b6 03-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
98d5f01f37b91a54d3453daa0ab9664ee9e701c1 03-Feb-2005 Roland McGrath <roland@redhat.com> 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.
ebian/control
ebian/rules
d08b2f03a8c454e1b3afdbd49b68c42de88b31df 02-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
fee836eb65cd9792914b0e1c038c354be6ab1170 02-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-02 Roland McGrath <roland@redhat.com>

* file.c (openmodes) [O_LARGEFILE] [O_LARGEFILE == 0]: Redefine to
known values for Linux.
ile.c
84219e1d181fdff7846e958ead579bbdab2fa1bd 02-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
7a91883b32776a7fc8255ddbcf2d1781be9e2c2e 02-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-02 Roland McGrath <roland@redhat.com>

* util.c (printcall): Print 16 ?s when long is 8 bytes.
Fixes RH#146932.
til.c
1967a1333c42ecdc5fd05ec399ecc207402f82ad 02-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
3cad4a6f398cc75a69add363e9b1db6b3b2ae4b7 02-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
ddce11b805b1db9452a4dbd3972f6f4aeeab0499 02-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-02 Roland McGrath <roland@redhat.com>

* 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.
octl.c
inux/sparc/syscall.h
inux/sparc64/syscall.h
94098ef856be76632fe186b413c837131eeac6c5 02-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
e6a432ddf1be9e8544afc8c3100b5a7aae43035f 02-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-02 Roland McGrath <roland@redhat.com>

* 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.
ock.c
9d721f283b8d79538d25ef909d1f3bb83d4a9a7f 02-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
795edb11488dd47c4598e2228e3b5431de7ed46d 02-Feb-2005 Roland McGrath <roland@redhat.com> 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.
onfigure.ac
efs.h
trace.c
ac6b7bba2ee8d07c4b3f47deaf180ab30f0e0212 02-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
b77d0934b3fa9df0a5b3046f7fd187687bdb712f 02-Feb-2005 Roland McGrath <roland@redhat.com> 2004-12-20 Dmitry V. Levin <ldv@altlinux.org>

* syscall.c (call_summary): Fix potential NULL dereference.
Fixes RH#143369.
yscall.c
dd9efd897a37246380a7d78547c434f697781435 02-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
fe6b352f8d5367521685c7ea52016c544fd9d2fe 02-Feb-2005 Roland McGrath <roland@redhat.com> 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.
yscall.c
0dfeed6a2a2b7be9000a8a0f26c085489f88a7f4 02-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
cbd3358a62fad460923d1626a220b6396e1fdd9f 02-Feb-2005 Roland McGrath <roland@redhat.com> 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.
ystem.c
dc26fffa8a82d318703bcf524ec2e1e66f9ce4b3 02-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
bda969a877e5a35090b4d71836414bbaf2298e7c 02-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-01 Roland McGrath <roland@redhat.com>

* config.guess: Update from canonical version, timestamp 2004-11-12.
* config.sub: Likewise, timestamp 2004-11-30.
onfig.guess
onfig.sub
174ddda74c71b8ec69a8076bce7a78ff3f343efd 02-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-01 Roland McGrath <roland@redhat.com>

* 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.
inux/syscallent.h
392a671e9260ea81cad3431144ef06b37429ec1c 02-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-01 Roland McGrath <roland@redhat.com>

* 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.
* 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.
inux/x86_64/syscallent.h
b2ba50bb2e9e535f67119a9b3746929ab9435656 02-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
c2d5eb082dfc2779d4758ea9736c7027dca58ba1 02-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-01 Roland McGrath <roland@redhat.com>

* 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.
rocess.c
063ae2dd434b78b7332f900ad4b8c34fdc240cb3 02-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-01 Roland McGrath <roland@redhat.com>

* signal.c [HAVE_SIGACTION] [LINUX && X86_64] (SA_RESTORER): Define
here too.
Part of RH#142667.
ignal.c
1f1c54aea7e4f9a7fcfab61ee30f03fce9fe91b4 02-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-01 Roland McGrath <roland@redhat.com>

* 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.
inux/syscall.h
28eace82fd2505045714a723615e9160a690d55d 02-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
76421df9b279973ef4f8c6a70142b349bfc39807 02-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-01 Roland McGrath <roland@redhat.com>

* syscall.c (qual_signal): Fix inverted return value and bogus
argument to qualify_one in the named case.
yscall.c
f01185e5d4d04197408f48c474cee819b8063bb8 02-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-01 Roland McGrath <roland@redhat.com>

* linux/syscall.h [IA64] (SYS_semtimedop): #undef it.
inux/syscall.h
5f221c3659eab6ccd8f8590361f37678440585a5 02-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
883567c1cc695df21e7d02eaa27f4618423a3091 02-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-01 Roland McGrath <roland@redhat.com>

* 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.
ile.c
5396233748b72837d5d645a230285756a82d219a 02-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
96ad7b8f529221bd1db1c3cdca871ee9e1dc713a 02-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-01 Roland McGrath <roland@redhat.com>

* net.c (sys_getsockopt): Fix a format %ld -> %d.
et.c
bc484bd394a60aab58729e66b06ba0ba29d8edc6 02-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
5a9c6ade8963d4839c76d88aa8845e992014f86c 02-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-01 Roland McGrath <roland@redhat.com>

* syscall.c (syscall_enter) [X86_64]: Fix 32-bit argument register map
not to double the middle entry!
yscall.c
6722dcf609aec427d1309b0c9ab5585e1adc28a9 02-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
874ffc65c86f6bf864e242d86b2cb945301b8ee1 02-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-01 Roland McGrath <roland@redhat.com>

* linux/x86_64/syscallent.h: Fix exit_group entry.
inux/x86_64/syscallent.h
1b3ca10e359935fbd84d6de681d487f61f90e09c 02-Feb-2005 Roland McGrath <roland@redhat.com> .
hangeLog
9f6a861109713c6d13f42f0d21bde1d7cf9c27a4 02-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-01 Roland McGrath <roland@redhat.com>

* linux/ia64/syscallent.h: Add fadvise64, fstatfs64, statfs64, mbind,
[gs]et_mempolicy, mq_*, sys_kexec_load, vserver, and waitid.
Fixes RH#146245.
inux/ia64/syscallent.h
fc544dbb6ce7da41263aa91df62fd0f17ab716dd 02-Feb-2005 Roland McGrath <roland@redhat.com> 2005-01-22 Andreas Schwab <schwab@suse.de>

* net.c (sys_getsockopt): Change type of len to int.
et.c
eac26fc53eaf2cd52c1c531d1d3817a66b8b2180 02-Feb-2005 Roland McGrath <roland@redhat.com> 2005-02-01 Roland McGrath <roland@redhat.com>

* util.c (getpc) [S390 || S390X]: Implement it.
Patch by David Wilder <wilder@us.ibm.com>.
til.c
be4eeb95f54f3231affd4a6faa4f0413bfe4347e 20-Oct-2004 Roland McGrath <roland@redhat.com> .
hangeLog
e27ed3426d56cf664a256b2e8cb5144b0c0953b2 20-Oct-2004 Roland McGrath <roland@redhat.com> 2004-10-19 Roland McGrath <roland@redhat.com>

* file.c (sys_fadvise64): Conditionalize just on [LINUX].
ile.c
b0756891d2c2f982241cb3b09a09f8d46091d178 20-Oct-2004 Roland McGrath <roland@redhat.com> .
hangeLog
f041d47866293e5903065bff8af81e9b4424a9d2 20-Oct-2004 Roland McGrath <roland@redhat.com> 2004-10-19 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.5.8.
* debian/changelog, strace.spec: 4.5.8-1.
EWS
ebian/changelog
trace.spec
6e52d23cc6a6084802422652e28e9bf4434a7406 20-Oct-2004 Roland McGrath <roland@redhat.com> 2004-10-19 Roland McGrath <roland@redhat.com>

* 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.
onfigure.ac
esc.c
63d6e54c8bc29c3d4f7c391165c6199788e9622b 20-Oct-2004 Roland McGrath <roland@redhat.com> 2004-10-19 Roland McGrath <roland@redhat.com>

* 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.
esc.c
e26a37832e1387c8a4c797951b4a678da4503ef4 20-Oct-2004 Roland McGrath <roland@redhat.com> .
hangeLog
00dc13fbe7a4d1bba614c8b75877db110cabb044 20-Oct-2004 Roland McGrath <roland@redhat.com> 2004-10-19 Roland McGrath <roland@redhat.com>

* 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.
trace.c
712bc7a97b1ff89afab232764090224f31519f28 20-Oct-2004 Roland McGrath <roland@redhat.com> .
hangeLog
0569095472c93c8513edefcf31013503ce4c0589 20-Oct-2004 Roland McGrath <roland@redhat.com> 2004-10-19 Roland McGrath <roland@redhat.com>

* 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): Don't detach leader that wasn't
TCB_ATTACHED.
* 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.
trace.c
223a3ff9a8c66dfa6f03e783c573a9bd2f004a9c 20-Oct-2004 Roland McGrath <roland@redhat.com> .
hangeLog
8988d1e16c99ee49d38be57215236795c92a34b5 20-Oct-2004 Roland McGrath <roland@redhat.com> 2004-10-19 Roland McGrath <roland@redhat.com>

* sock.c [! LINUX]: Include <sys/socket.h> before <sys/sockio.h>.
Reported by Marty Leisner <mleisner@eng.mc.xerox.com>.
ock.c
5e02a5793d981265072d606fcb2293d80e73824f 20-Oct-2004 Roland McGrath <roland@redhat.com> 2004-10-19 Roland McGrath <roland@redhat.com>

* process.c (WCOREFLAG): Define if not defined.
(W_STOPCODE, W_EXITCODE): Likewise.
Reported by Marty Leisner <mleisner@eng.mc.xerox.com>.
rocess.c
c5fa4ac3f0a074d26fc79d0a0670744352ab26d4 20-Oct-2004 Roland McGrath <roland@redhat.com> 2004-10-19 Roland McGrath <roland@redhat.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.
ebian/rules
9597e6dc2cd220e8a6acbaa96ab4fcdb37c0def9 20-Oct-2004 Roland McGrath <roland@redhat.com> 2004-09-05 Phil Blundell <pb@nexus.co.uk>

* linux/arm/syscallent.h: New file.
inux/arm/syscallent.h
391d5a1183f0839a7e4d2ab8e98db5520854c131 20-Oct-2004 Roland McGrath <roland@redhat.com> 2004-09-14 Richard Henderson <rth@twiddle.net>

* linux/alpha/syscallent.h: Add tgkill, *stat64, vserver, mbind,
[gs]et_mempolicy, mq_*, waitid.
inux/alpha/syscallent.h
205ad8be0a141434345c45f93c272c6f6c81ccf5 20-Oct-2004 Roland McGrath <roland@redhat.com> 2004-10-19 Roland McGrath <roland@redhat.com>

* linux/hppa/syscallent.h: Update for 2.6.9 syscalls.
From Randolph Chung <tausq@debian.org>
Fixes Debian bug #273887.
inux/hppa/syscallent.h
38d88e649424cc8ecf1f0704b2af39f6a1a8ae3e 20-Oct-2004 Roland McGrath <roland@redhat.com> 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 Steve Langasek <vorlon@debian.org>.
Fixes Debian bug #271500.
ebian/rules
914f3aa017b7c58ee123acedeaf406e85a70c3e6 20-Oct-2004 Roland McGrath <roland@redhat.com> .
hangeLog
8c304bcc002344f7bbe8d993aff62e027f086733 20-Oct-2004 Roland McGrath <roland@redhat.com> 2004-10-19 Roland McGrath <roland@redhat.com>

* file.c (sys_llseek): Revert last change.
ile.c
0aa53f65fccee68600258506045a0e6e79d24d0f 07-Oct-2004 Roland McGrath <roland@redhat.com> .
hangeLog
2fe2a3e124c10a958f8738d03df7c01cc283e531 07-Oct-2004 Roland McGrath <roland@redhat.com> 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.
ile.c
o.c
61b324bc39fa17878aba9ab8b76bdefcaaccdfec 07-Oct-2004 Roland McGrath <roland@redhat.com> .
hangeLog
63b2d857f520cbeade9a69f251d695aff1f6f8c0 07-Oct-2004 Roland McGrath <roland@redhat.com> 2004-10-07 Roland McGrath <roland@redhat.com>

* linux/x86_64/syscallent.h: Fix botched table entries.
From Ulrich Drepper <drepper@redhat.com>.
inux/x86_64/syscallent.h
aa08d7128218bb9674471e59b474ad9c29c5af40 07-Oct-2004 Roland McGrath <roland@redhat.com> .
hangeLog
b10a33590d11f8e36d315c48a976a86772366799 07-Oct-2004 Roland McGrath <roland@redhat.com> 2004-10-07 Roland McGrath <roland@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.
* linux/syscallent.h: Handle mbind, set_mempolicy, get_mempolicy.
From Ulrich Drepper <drepper@redhat.com>.
inux/syscall.h
inux/syscallent.h
inux/x86_64/syscallent.h
em.c
51f9ac0da6c3d3d9709b7e35a55775c17c34b0f2 07-Oct-2004 Roland McGrath <roland@redhat.com> .
hangeLog
df13e8f4cae0e57786cf5cd9d0304d6f9f2715d5 07-Oct-2004 Roland McGrath <roland@redhat.com> 2004-10-07 Roland McGrath <roland@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.
From Ulrich Drepper <drepper@redhat.com>.
ile.c
inux/syscall.h
inux/syscallent.h
2af128bcd2c36cebae74ec3ecbe7fd7119bbd40c 07-Oct-2004 Roland McGrath <roland@redhat.com> .
hangeLog
7166bb0cead2a8390ccd81c55205344f536680aa 07-Oct-2004 Roland McGrath <roland@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.
inux/ioctlent.h
inux/ioctlent.sh
inux/ioctlsort.c
79367f83737bddb377c6bcb1f37ac4462fd4af23 07-Oct-2004 Roland McGrath <roland@redhat.com> .
hangeLog
d83c50b8e44db2a2e19d048ab7d1e1caf1fa1996 07-Oct-2004 Roland McGrath <roland@redhat.com> 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.
efs.h
octl.c
ime.c
d2553bbb8728f83bce358eaba0396255279da62c 07-Oct-2004 Roland McGrath <roland@redhat.com> .
hangeLog
93817bfb82577309f84cb5ac8324e34f502d777f 07-Oct-2004 Roland McGrath <roland@redhat.com> 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.
esc.c
inux/alpha/syscallent.h
inux/hppa/syscallent.h
inux/ia64/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sparc/syscallent.h
inux/sparc64/syscallent.h
inux/sparc64/syscallent2.h
inux/syscall.h
inux/syscallent.h
inux/x86_64/syscallent.h
2803d102e80859ec6bf1b19e667bfa3868b8dded 07-Oct-2004 Roland McGrath <roland@redhat.com> .
hangeLog
566ce1fc6269266422490ead5ecfa8c6fd5e090c 07-Oct-2004 Roland McGrath <roland@redhat.com> 2004-10-06 Roland McGrath <roland@redhat.com>

* resource.c (resources): Add RLIMIT_LOCKS, RLIMIT_SIGPENDING,
and RLIMIT_MSGQUEUE, if defined.
From Ulrich Drepper <drepper@redhat.com>.
Fixes RH#133594.
esource.c
288a3a0c11eb6f6fc66a116312f6fb8878ff7d55 07-Oct-2004 Roland McGrath <roland@redhat.com> .
hangeLog
f9c49b24dce71468e99209e76bdd17e7fe2d4408 07-Oct-2004 Roland McGrath <roland@redhat.com> 2004-10-06 Roland McGrath <roland@redhat.com>

* file.c (sprintmode): Add const to return type.
(sprintfstype): Likewise.
* signal.c (printsiginfo): Add a const.
ile.c
ignal.c
5077082649babf6dac0cabf5e2dd53dff4d393d0 07-Oct-2004 Roland McGrath <roland@redhat.com> 2004-10-06 Roland McGrath <roland@redhat.com>

* net.c [HAVE_SENDMSG] (printcmsghdr): New function.
(printmsghdr): Use it.
et.c
4455b1da965b455c33c9d1c37a2474a126ebad29 07-Oct-2004 Roland McGrath <roland@redhat.com> .
hangeLog
39426a359feab31845270005d61372d4b8fe9462 07-Oct-2004 Roland McGrath <roland@redhat.com> 2004-09-15 Roland McGrath <roland@redhat.com>

* linux/syscallent.h: waitid takes 5 arguments, and is in TP category.
* process.c (sys_waitid): Handle fifth argument (struct rusage *).
inux/syscallent.h
rocess.c
cbf130892ff3524ffb702c1777adb289eaa10a39 07-Oct-2004 Roland McGrath <roland@redhat.com> 2004-09-15 Roland McGrath <roland@redhat.com>

* linux/x86_64/syscallent.h: Use sys_waitid.
inux/x86_64/syscallent.h
813b8aff4440ab78f4d9abc2420d36ee7da94623 11-Sep-2004 Roland McGrath <roland@redhat.com> .
hangeLog
675d4a6dba13915527309c962c38f5f961ec2996 11-Sep-2004 Roland McGrath <roland@redhat.com> 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.
ime.c
51d1ebc33a514719ed4fc3a18b70cc9967e752d3 07-Sep-2004 Michal Ludvig <mludvig@suse.cz> 2004-09-07 Michal Ludvig <mludvig@suse.cz>

* defs.h (nioctlents1, nsignals2): Fix typos in decls.
hangeLog
efs.h
ce36138bcb3824c73586fe39298c73bd9385c5e7 04-Sep-2004 Roland McGrath <roland@redhat.com> .
hangeLog
e10e62a03c62c06e07c4312ba9afe633194e2d13 04-Sep-2004 Roland McGrath <roland@redhat.com> 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.
yscall.c
77019f783a9d0d3110fd238ee3b4c5f1b870d3c7 04-Sep-2004 Roland McGrath <roland@redhat.com> .
hangeLog
ee36ce19e03e08f4b692570090ee58b72d2f0f50 04-Sep-2004 Roland McGrath <roland@redhat.com> 2004-09-03 Roland McGrath <roland@redhat.com>

* 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.
efs.h
o.c
octl.c
ignal.c
yscall.c
4ee6e6970d777fb47d2526908fda4d91571c8933 04-Sep-2004 Roland McGrath <roland@redhat.com> .
hangeLog
d9f816f60457930af27349fac3d23b3b78338036 04-Sep-2004 Roland McGrath <roland@redhat.com> 2004-09-03 Roland McGrath <roland@redhat.com>

* 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.
jm.c
efs.h
esc.c
ile.c
pc.c
em.c
et.c
roc.c
rocess.c
esource.c
ignal.c
ock.c
tream.c
ystem.c
erm.c
ime.c
til.c
b036f584a0f1bf7b3ac809f84714e50c0c95387e 01-Sep-2004 Roland McGrath <roland@redhat.com> .
hangeLog
475d203dc44364c801737ba3a9b3aa6662916231 01-Sep-2004 Roland McGrath <roland@redhat.com> 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.
inux/syscall.h
inux/syscallent.h
inux/x86_64/syscallent.h
c74c0b732b66139d59e616210718950f2853f3aa 01-Sep-2004 Roland McGrath <roland@redhat.com> 2004-09-01 Roland McGrath <roland@redhat.com>

* 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.
efs.h
rocess.c
yscall.c
a9baea469bff45410ac18d7de980554eacd2784b 31-Aug-2004 Roland McGrath <roland@redhat.com> 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.
trace.spec
61d6487f11653277f3220851c7abf810c3b33552 31-Aug-2004 Roland McGrath <roland@redhat.com> 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.
trace.spec
5db9032c636a111d11d0b4c5c68f415d3124f38e 31-Aug-2004 Roland McGrath <roland@redhat.com> 2004-08-31 Roland McGrath <roland@redhat.com>

* debian/rules: Rewrite sparc64 change of 2004-07-12.
Always do each build in a separate build directory.
Fixes Debian bug #254728.
ebian/rules
f5fcbc1fb0bf4645aec5b3cfb4a61247dd1063e9 31-Aug-2004 Roland McGrath <roland@redhat.com> .
hangeLog
b15c4974952083d5ff7c7801df855dd7b069ef20 31-Aug-2004 Roland McGrath <roland@redhat.com> 2004-08-31 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.5.7.
* strace.spec, debian/changelog: 4.5.7-1.
ebian/changelog
c9b624f4aaddd2cd8e27ec599c3bfbcb7287c4ad 31-Aug-2004 Roland McGrath <roland@redhat.com> 2004-08-31 Roland McGrath <roland@redhat.com>

* debian/rules: Rewrite sparc64 change of 2004-07-12.
Always do each build in a separate build directory.
Fixes Debian bug #254728.
ebian/rules
55a00f8092d9596a4ca619017bfba0dea2e085d1 31-Aug-2004 Roland McGrath <roland@redhat.com> 2004-08-31 Roland McGrath <roland@redhat.com>

* time.c (clocknames): Use #ifdef around CLOCK_* uses.
ime.c
0ef93b71eac2ea8c08aaf5c02697b5cbcf3a7b46 31-Aug-2004 Roland McGrath <roland@redhat.com> .
hangeLog
368ccc64a9752bdb9862e308d21720559756d6f1 31-Aug-2004 Roland McGrath <roland@redhat.com> 2004-08-31 Roland McGrath <roland@redhat.com>

* debian/rules: Revert sparc64 change of 2004-07-12.
It does not build properly.
Fixes Debian bug #254728.
ebian/rules
b93f91835646292bb5469e2a81e57a1522d483bf 31-Aug-2004 Roland McGrath <roland@redhat.com> 2004-08-31 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.5.7.
* strace.spec, debian/changelog: 4.5.7-1.
EWS
onfigure.ac
ebian/changelog
trace.spec
dc025fad62c940203f5a2e971334eb6858e6dda7 31-Aug-2004 Roland McGrath <roland@redhat.com> .
hangeLog
4de04aa70f82f73b40756553ea7eb7d15f3332d1 31-Aug-2004 Roland McGrath <roland@redhat.com> 2004-08-31 Roland McGrath <roland@redhat.com>

* strace.1: Say that -c shows system CPU time, not real time.
Fixes Debian bug #254438.
trace.1
aa510629c74a8af3c229ac15a2405f45912d9f47 31-Aug-2004 Roland McGrath <roland@redhat.com> 2004-08-31 Roland McGrath <roland@redhat.com>

* syscall.c (dumpio): Match pread and pwrite system calls too.
Fixes Debian bug #239947.
yscall.c
1651c1c531f77b3f0a302c8caf54e47e5deda6f1 31-Aug-2004 Roland McGrath <roland@redhat.com> .
hangeLog
1bf4373ab6b6105d3174e024279e66292cee4b83 31-Aug-2004 Roland McGrath <roland@redhat.com> 2004-08-31 Roland McGrath <roland@redhat.com>

* net.c (sockoptions): Add all SO_* macros known in Linux 2.6.9.
Fixes Debian bug #171653.
et.c
8e593d23d1b799e1f2f93d3dcde32ec83f4b5831 31-Aug-2004 Roland McGrath <roland@redhat.com> .
hangeLog
92f1d6d4e4326564dcfc0b3cfbe6a4a9047795f8 31-Aug-2004 Roland McGrath <roland@redhat.com> 2004-07-12 Dmitry V. Levin <ldv@altlinux.org>

* signal.c [LINUX] (parse_sigset_t): Fix hex strings parser.
Fixes RH#128091.
ignal.c
0a053256ee34a155d873b465cc3d5b781cc1e5ae 31-Aug-2004 Roland McGrath <roland@redhat.com> .
hangeLog
08f0ae30fd500a577cd735073fd6b4e09ebb8aac 31-Aug-2004 Roland McGrath <roland@redhat.com> 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.
trace.c
4f6ba69d99a8b6933707abdeb0151f98c28172c9 31-Aug-2004 Roland McGrath <roland@redhat.com> 2004-08-30 Roland McGrath <roland@redhat.com>

* 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.
et.c
7fbbf020f78c94852837d2aa1d760b382796e83c 31-Aug-2004 Roland McGrath <roland@redhat.com> .
hangeLog
54a4edd69a320542ddd0dffec05dacab7443d453 31-Aug-2004 Roland McGrath <roland@redhat.com> 2004-08-30 Roland McGrath <roland@redhat.com>

* 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.
ime.c
3a71f1938bf59d027f74d16bf2a79405b2af999a 31-Aug-2004 Roland McGrath <roland@redhat.com> .
hangeLog
ced50da46b600af578f2c341ba0db31c72880eb2 31-Aug-2004 Roland McGrath <roland@redhat.com> 2004-08-30 Roland McGrath <roland@redhat.com>

* system.c (personality_options): Hard-code values here.
Don't #include <linux/personality.h> at all.
Fixes RH#130965.
ystem.c
a0b9ef14b0e5f499d88ba769dc0ef0913b658406 31-Aug-2004 Roland McGrath <roland@redhat.com> .
hangeLog
3292e229b9deb55d6d9a52726e326d6efb1ad994 31-Aug-2004 Roland McGrath <roland@redhat.com> 2004-08-30 Roland McGrath <roland@redhat.com>

* 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.
ile.c
d51619ab5dc029c902aa106c4e8fd0f1641b06e1 12-Jul-2004 Roland McGrath <roland@redhat.com> .
hangeLog
785a0260ff8a389898830a5455af4383c0ca6469 12-Jul-2004 Roland McGrath <roland@redhat.com> 2004-07-12 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.5.6.
* strace.spec, debian/changelog: 4.5.6-1.
EWS
onfigure.ac
ebian/changelog
trace.spec
05cf2951a69da9c9882107b7e33a9a13156c2b5d 12-Jul-2004 Roland McGrath <roland@redhat.com> .
hangeLog
b46cd51d58d5278165121907765fcc4b97f3b5be 12-Jul-2004 Roland McGrath <roland@redhat.com> 2004-07-12 Roland McGrath <roland@redhat.com>

* debian/rules: On sparc-linux, build strace64 as well.
From Ben Collins <bcollins@debian.org>.
Fixes Debian bug #254728.
ebian/rules
0165e7790d83fe64da4fbe4dc73d91590381ca98 12-Jul-2004 Roland McGrath <roland@redhat.com> 2004-07-12 Roland McGrath <roland@redhat.com>

* Makefile.am (EXTRA_DIST): Add linux/sparc64 files.
akefile.am
6d1a65c759c6c650e47ce5045a26380a4acbdffa 12-Jul-2004 Roland McGrath <roland@redhat.com> 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.
* config.h.in (SPARC64): New define.
* 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.
onfigure.ac
efs.h
ile.c
octl.c
inux/sparc/syscall.h
inux/sparc/syscallent.h
inux/sparc64/dummy2.h
inux/sparc64/errnoent.h
inux/sparc64/errnoent1.h
inux/sparc64/errnoent2.h
inux/sparc64/ioctlent.h
inux/sparc64/ioctlent1.h
inux/sparc64/ioctlent2.h
inux/sparc64/signalent.h
inux/sparc64/signalent1.h
inux/sparc64/signalent2.h
inux/sparc64/syscall.h
inux/sparc64/syscall1.h
inux/sparc64/syscallent.h
inux/sparc64/syscallent1.h
inux/sparc64/syscallent2.h
et.c
rocess.c
ignal.c
yscall.c
til.c
fdb097f63721acd7eeae8a7224dfe934b8e1a4a2 12-Jul-2004 Roland McGrath <roland@redhat.com> 2004-06-28 Andreas Schwab <schwab@suse.de>

* process.c (internal_exec): Move TCB_WAITEXECVE handling here.
(sys_execve): Remove it here.
rocess.c
6b3b1fcee14aec96aee850bcf99fe616c16a5e13 12-Jul-2004 Roland McGrath <roland@redhat.com> 2004-07-12 Roland McGrath <roland@redhat.com>

* debian/control (Section): Move to utils, matching Debian override.
ebian/control
6617729a7a7e04dcb00684fbd760f5dbdf18b807 12-Jul-2004 Roland McGrath <roland@redhat.com> 2004-07-12 Roland McGrath <roland@redhat.com>

* Makefile.am (EXTRA_DIST): Add linux/sh64/syscallent.h.
akefile.am
23e86d676352e4ad2f74413c6e4d171c384b85e4 12-Jul-2004 Roland McGrath <roland@redhat.com> .
hangeLog
5687ff1ca7b4a284c0638fc4bf14fa6c76e04fc9 12-Jul-2004 Roland McGrath <roland@redhat.com> 2004-07-12 Roland McGrath <roland@redhat.com>

* 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.
et.c
ock.c
90a5a949d89c26371b4899997f7257ee24c6b55c 12-Jul-2004 Roland McGrath <roland@redhat.com> .
hangeLog
bd10245b09cc95966e185b5870247d6d4d7c2030 12-Jul-2004 Roland McGrath <roland@redhat.com> 2004-07-12 Roland McGrath <roland@redhat.com>

* linux/ioctlsort.c: Add some #includes.
[POWERPC]: Kludge out high bits.
* linux/ia64/ioctlent.h: Regenerated using RHEL3 headers.
* linux/powerpc/ioctlent.h: Likewise.
inux/ia64/ioctlent.h
inux/ioctlsort.c
inux/powerpc/ioctlent.h
61e0bebb44a61b9976308205d78557e06e6f2f75 12-Jul-2004 Roland McGrath <roland@redhat.com> 2004-07-11 Roland McGrath <roland@redhat.com>

* linux/ioctlent.sh: Replace asm with $asm in all places.
inux/ioctlent.sh
adc2b308a1ce896d7aeaa4c7527e36fb0b3251fe 12-Jul-2004 Roland McGrath <roland@redhat.com> Tweak maintainer rules.
akefile.am
16110b23a0cf9a271a4d06e271ff193e7bd1817e 12-Jul-2004 Roland McGrath <roland@redhat.com> .
hangeLog
bc44e40e2a41c740eb92dfb410af73635709a6a6 12-Jul-2004 Roland McGrath <roland@redhat.com> 2004-07-11 Roland McGrath <roland@redhat.com>

* configure.ac: Add I386 as AM_CONDITIONAL.
* Makefile.am [LINUX]: Add maintainer-mode rules to regenerate
the ioctlent.h file.
akefile.am
onfigure.ac
d26566955711969411c6f48d3990b47ffd400b41 08-Jul-2004 Roland McGrath <roland@redhat.com> 2004-07-07 Roland McGrath <roland@redhat.com>

* linux/ioctlent.sh: Take optional second argument to use as directory
name in place of `asm'.
inux/ioctlent.sh
533e52aeb018a7f350fb7b83129d0b073c200f79 08-Jul-2004 Roland McGrath <roland@redhat.com> .
hangeLog
9f09da616af8b6b2d5be0af53cdc5bc093036ee0 08-Jul-2004 Roland McGrath <roland@redhat.com> 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.
esource.c
2c72f3c1d74ba5d71216b9aeaa15b0c385cab304 28-Jun-2004 Roland McGrath <roland@redhat.com> .
hangeLog
b7e2ca14560893bb5d12b5a9758a0e6fff56b3b4 28-Jun-2004 Roland McGrath <roland@redhat.com> 2004-06-27 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.5.5.
* strace.spec, debian/changelog: 4.5.5-1.
EWS
onfigure.ac
ebian/changelog
trace.spec
7a391df72cf1ec03dcb9d83320fb687f4009ae1c 23-Jun-2004 Roland McGrath <roland@redhat.com> .
hangeLog
a2dec92f0254674a68f25ed73a4e819f33437424 23-Jun-2004 Roland McGrath <roland@redhat.com> .
hangeLog
998fac70497f071897c79571ced1486ae3c260d8 23-Jun-2004 Roland McGrath <roland@redhat.com> 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.
* syscall.c (force_result): [LINUX && X86_64]: Fix RAX*4 -> RAX*8.
yscall.c
66a77f1aafd9c44a9dc3f421c433441e39cdff12 04-Jun-2004 Roland McGrath <roland@redhat.com> .
hangeLog
ed8e77e6d4c710a92599148030f12434d709c1f7 04-Jun-2004 Roland McGrath <roland@redhat.com> 2004-06-03 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.5.4.
* strace.spec, debian/changelog: 4.5.4-1.
EWS
onfigure.ac
ebian/changelog
trace.spec
0c542de51fc3cf411a1ccc1c9850679009cc7205 04-Jun-2004 Roland McGrath <roland@redhat.com> .
hangeLog
5a8146a20860eca692d182553ebe28b258c11af5 04-Jun-2004 Roland McGrath <roland@redhat.com> 2004-06-03 Roland McGrath <roland@redhat.com>

* net.c (domains): Add many PF_* values #ifdef PF_*.
(addrfams): Add many AF_* values #ifdef AF_*.
Fixes Debian bug #250506.
et.c
337d391ae93bfb297b95e9a86ec2f1802a30e9d5 04-Jun-2004 Roland McGrath <roland@redhat.com> .
hangeLog
59fbb400b51f156e85b814c4f85fecaea475ad75 04-Jun-2004 Roland McGrath <roland@redhat.com> 2004-05-02 Dmitry V. Levin <ldv@altlinux.org>

* linux/ioctlent.h: Regenerated from linux-2.6.5.
Fixes RH#122257.
inux/ioctlent.h
718f9a692f4409481603bddcb5b70fb57326501a 04-Jun-2004 Roland McGrath <roland@redhat.com> 2004-05-02 Dmitry V. Levin <ldv@altlinux.org>

* 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..).
inux/ioctlent.sh
3dfd799d1181b2235f413d479ca8ce617d9595ba 04-Jun-2004 Roland McGrath <roland@redhat.com> 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.
inux/ioctlsort.c
e01b8ce73af8802929ad5f3f101b786f08d5e69b 04-Jun-2004 Roland McGrath <roland@redhat.com> .
hangeLog
27387f9f4bd4a73447691751a65c499657c1b2eb 04-Jun-2004 Roland McGrath <roland@redhat.com> 2004-06-03 Roland McGrath <roland@redhat.com>

* debian/control (Architecture): Add amd64.
Fixes Debian bug #246568.
ebian/control
6d52da697d67b46f4c460b53abe368e8ddb2c7d5 04-Jun-2004 Roland McGrath <roland@redhat.com> .
hangeLog
7b54a7ae61d0eda798575f77d898a24dda7a0952 04-Jun-2004 Roland McGrath <roland@redhat.com> 2004-06-03 Roland McGrath <roland@redhat.com>

* 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.
efs.h
rocess.c
trace.c
25e8259c3655a3e3ace36f64276bb0f1ca39642c 04-Jun-2004 Roland McGrath <roland@redhat.com> .
hangeLog
f8cc83c9efc0f33e721ec7f05eacc20c729da757 04-Jun-2004 Roland McGrath <roland@redhat.com> 2004-04-19 Roland McGrath <roland@redhat.com>

* process.c (printstatus): Add a space before | in output.
rocess.c
252b185634aaa2ca31d64bf4bc363f9ea59deaf6 17-Apr-2004 Roland McGrath <roland@redhat.com> dup line
ebian/changelog
ea2402e72f145a17d92837a7bc76fe7a223ffc33 17-Apr-2004 Roland McGrath <roland@redhat.com> .
hangeLog
a8c555fbbb49cc6b1032d1bc420fe6d048547d95 17-Apr-2004 Roland McGrath <roland@redhat.com> 2004-04-16 Roland McGrath <roland@redhat.com>

* configure.ac: Version 4.5.3.
* strace.spec, debian/changelog: 4.5.3-1.
onfigure.ac
ebian/changelog
trace.spec
025442c1359726f755a4729f3df8f81e70431e15 16-Apr-2004 Roland McGrath <roland@redhat.com> .
hangeLog
1a3d60e1fc08d23194dd735c70c5984c69c4f948 16-Apr-2004 Roland McGrath <roland@redhat.com> 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.
esource.c
5a8458bb03c1b8a25e4beb2c69d2997600d43ae4 16-Apr-2004 Roland McGrath <roland@redhat.com> 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>.
inux/s390/ioctlent.h
inux/s390x/ioctlent.h
6508d3321a817ce79467c24d54a76a157fd528e6 16-Apr-2004 Roland McGrath <roland@redhat.com> .
hangeLog
5e169a1b64545bd5b7d4776c8d93665fc90ca594 16-Apr-2004 Roland McGrath <roland@redhat.com> 2004-04-16 Roland McGrath <roland@redhat.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.
EWS
d4c85ebbc64b1eb141b310a4634c6ca37fd352c1 16-Apr-2004 Roland McGrath <roland@redhat.com> 2004-04-16 Roland McGrath <roland@redhat.com>

* 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.
inux/dummy.h
inux/syscall.h
inux/syscallent.h
ime.c
8d1bf3c198d6014119eb8ad2e9c18e3302b605ad 16-Apr-2004 Roland McGrath <roland@redhat.com> .
hangeLog
0e82f523e22a9eb81f886e569344b558e4a1cbd4 16-Apr-2004 Roland McGrath <roland@redhat.com> 2004-04-16 Roland McGrath <roland@redhat.com>

* configure.ac: Check for <mqueue.h>.
* ipc.c (sys_mq_open, printmqattr) [! HAVE_MQUEUE_H]: Don't try to
decode struct mq_attr.
onfigure.ac
4df13c169dae7f9fac4719a4d3df7bcd0bf8a2ca 16-Apr-2004 Roland McGrath <roland@redhat.com> 2004-04-16 Roland McGrath <roland@redhat.com>

* configure.ac: Check for <mqueue.h>.
* ipc.c (sys_mq_open, printmqattr) [! HAVE_MQUEUE_H]: Don't try to
decode struct mq_attr.
* 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.
pc.c
085bae16dbae1396ae29860c0ed1793d745580b7 14-Apr-2004 Roland McGrath <roland@redhat.com> .
hangeLog
05e5e79a706a560188c28aba8d765e1a8534e87b 14-Apr-2004 Roland McGrath <roland@redhat.com> 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.
et.c
6421d63d747e345932815197495403f556c73da0 14-Apr-2004 Roland McGrath <roland@redhat.com> .
hangeLog
79fbda596afb380a1e6f49254efbf5bba148cab1 14-Apr-2004 Roland McGrath <roland@redhat.com> 2004-04-13 Roland McGrath <roland@redhat.com>

* 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.
rocess.c
149d415fd42b84e18c9ab98e3367533848ee71e9 14-Apr-2004 Roland McGrath <roland@redhat.com> 2004-04-13 Roland McGrath <roland@redhat.com>

* acinclude.m4: Quote first argument to AC_DEFUN in all cases.
cinclude.m4
74dcbd888cde425b577dc101ce1d0b12ca5167fc 09-Apr-2004 Roland McGrath <roland@redhat.com> .
hangeLog
62412203f8c94f32cf4920bba5add81eafcd5f05 09-Apr-2004 Roland McGrath <roland@redhat.com> 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.
EWS
70b08530b80a6ee6591c38cf397fe0eeba1b4d7a 09-Apr-2004 Roland McGrath <roland@redhat.com> 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.
trace.c
6835f23b630053e3da44f2a46638cef258e85494 02-Mar-2004 Roland McGrath <roland@redhat.com> .
hangeLog
02cee8d5cbcb0aaaf64d4f4d0916e3d4dbd8ee01 02-Mar-2004 Roland McGrath <roland@redhat.com> 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>.
til.c
2d1ecca2aa98e46bbacb41854feb17f603b9893a 02-Mar-2004 Roland McGrath <roland@redhat.com> .
hangeLog
75a2c617a2e3c5417d5fdcfda3b4332b00109da1 02-Mar-2004 Roland McGrath <roland@redhat.com> 2004-03-02 Roland McGrath <roland@redhat.com>

* debian/control (Standards-Version): Update to 3.6.1.
ebian/control
30423407e6d1b5a0b89e78383de30ecd29598249 02-Mar-2004 Roland McGrath <roland@redhat.com> .
hangeLog
d62b6711b4d9cfff3b578fd208175f2aa1ae1430 02-Mar-2004 Roland McGrath <roland@redhat.com> 2004-03-01 Roland McGrath <roland@redhat.com>

* strace.c (main): Avoid potential buffer overruns from ludicrous
arguments or PATH values.
* syscall.c (qual_signal): Bail out for too-long string.
yscall.c
bdb09df1866b8c50317011938bb963aa9d694cd6 02-Mar-2004 Roland McGrath <roland@redhat.com> 2004-03-01 Roland McGrath <roland@redhat.com>

* strace.c (main): Avoid potential buffer overruns from ludicrous
arguments or PATH values.
trace.c
801bf1ff33ccbc2fba2ba2ad7b37162004112f61 02-Mar-2004 Roland McGrath <roland@redhat.com> .
hangeLog
b66e936380233603414433e79a57dfed8ffae1cc 02-Mar-2004 Roland McGrath <roland@redhat.com> 2004-03-01 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.5.2.
* strace.spec, debian/changelog: 4.5.1-1.
EWS
onfigure.ac
ebian/changelog
trace.spec
5586f9a982ec104612b6934465b76f02fded1756 02-Mar-2004 Roland McGrath <roland@redhat.com> .
hangeLog
59aea57f0f9be29d601fc30315b63e9375d1063c 02-Mar-2004 Roland McGrath <roland@redhat.com> .
hangeLog
05cdd3c6a5ed5c49dbd23bb6350dfed4c4510571 02-Mar-2004 Roland McGrath <roland@redhat.com> 2004-03-01 Roland McGrath <roland@redhat.com>

* mem.c [LINUX]: <asm/mman.h> -> <linux/mman.h>
em.c
8f30c1d6b4f87a11309cfc7788466c76e642db1a 02-Mar-2004 Roland McGrath <roland@redhat.com> .
hangeLog
b53a8a82df6a915c70ddf7e4f4ed2a45fc727863 02-Mar-2004 Roland McGrath <roland@redhat.com> 2004-03-01 Roland McGrath <roland@redhat.com>

* linux/sparc/syscall.h: Copy linux/syscall.h defns of sys_sched_*.
inux/sparc/syscall.h
7da8ff703ce238c8b7bed49028157fe4c5d1ff40 01-Mar-2004 Roland McGrath <roland@redhat.com> .
hangeLog
a796fd0ec7515d9a5ddea02964be3fda05d4ac11 01-Mar-2004 Roland McGrath <roland@redhat.com> 2004-03-01 Roland McGrath <roland@redhat.com>

* system.c (sysctl_vm): Conditionalize VM_* macro uses, add some more.
From Tim Yamin <plasmaroo@gentoo.org>.
ystem.c
7decfb229850118aace9e0cb6019036f64a18821 01-Mar-2004 Roland McGrath <roland@redhat.com> 2004-03-01 Roland McGrath <roland@redhat.com>

* 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.
onfigure.ac
em.c
rocess.c
ce23810f33a976df69f4b90e99875c0cc423ef9e 01-Mar-2004 Roland McGrath <roland@redhat.com> .
hangeLog
b09e33a286635e68a77a7ad19e88bc35db693f7d 01-Mar-2004 Roland McGrath <roland@redhat.com> 2004-03-01 Roland McGrath <roland@redhat.com>

* process.c (sys_execve): Clear instead of set TCB_WAITEXECVE on
erring syscall.
rocess.c
4695e94b948191c89dd6c0df9e83bee2a2c5d06e 01-Mar-2004 Roland McGrath <roland@redhat.com> .
hangeLog
b0acdfdbdc95d2eac977f6feadbe3f0ec76ae41a 01-Mar-2004 Roland McGrath <roland@redhat.com> 2004-03-01 Roland McGrath <roland@redhat.com>

* 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.
ignal.c
e58b8a0014db5f9a0d999486bc7d3184bda272ae 01-Mar-2004 Roland McGrath <roland@redhat.com> .
hangeLog
fb1bc073769268ea6daa35fdff4dc639e487b2b1 01-Mar-2004 Roland McGrath <roland@redhat.com> 2004-03-01 Roland McGrath <roland@redhat.com>

* process.c (struct_user_offsets) [LINUX && IA64]: Conditionalize
PT_AR_CSD and PT_AR_SSD uses in case of older kernel headers.
* configure.ac: Check for `struct pt_all_user_regs'
and `struct ia64_fpreg' in <sys/ptrace.h>.
* util.c, process.c, syscall.c: Work around conflicts between
<sys/ptrace.h> and <linux/ptrace.h> for defining those types.
rocess.c
ce9f0740d3b6e9910f25712771961bdb4bb4eaa2 01-Mar-2004 Roland McGrath <roland@redhat.com> 2004-03-01 Roland McGrath <roland@redhat.com>

* configure.ac: Check for `struct pt_all_user_regs'
and `struct ia64_fpreg' in <sys/ptrace.h>.
* util.c, process.c, syscall.c: Work around conflicts between
<sys/ptrace.h> and <linux/ptrace.h> for defining those types.
onfigure.ac
yscall.c
til.c
90d0afd72811fa149d66b9c6b59d0ebcbf9aba6b 01-Mar-2004 Roland McGrath <roland@redhat.com> Tweak last change.
til.c
861dc147e329241a316ed7a4874117930c77dcce 01-Mar-2004 Roland McGrath <roland@redhat.com> .
hangeLog
c9dc3c1ea77e24e531bde164ba90cc226b1305f8 01-Mar-2004 Roland McGrath <roland@redhat.com> 2004-03-01 Roland McGrath <roland@redhat.com>

* util.c [LINUX] (arg0_index, arg1_index): New macros.
[S390 || S390X]: Define them with inverted values.
(setbpt): Use them for u_arg indices.
til.c
24e8d31c2144037780921df629e4d0ed34af109c 01-Mar-2004 Roland McGrath <roland@redhat.com> .
hangeLog
b4ce17690f176b972a8cb5cbdd1005bbd4aecf15 01-Mar-2004 Roland McGrath <roland@redhat.com> 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.
efs.h
et.c
yscall.c
176ac32167992711eca4a47e331ff6616590b347 01-Mar-2004 Roland McGrath <roland@redhat.com> .
hangeLog
279d378b14e9f7283b0e0dc09509343f19b37b19 01-Mar-2004 Roland McGrath <roland@redhat.com> 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>.
inux/dummy.h
rocess.c
3d3f1c9fb733f2ca6e6fd076fc0e3886226a9ea2 21-Feb-2004 Roland McGrath <roland@redhat.com> .
hangeLog
ed817731b79639a8fb2ee6ce25181df2364fe40a 21-Feb-2004 Roland McGrath <roland@redhat.com> 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.
inux/hppa/syscallent.h
b233c2602920fb74670c1463e3a388800a4a99f5 20-Feb-2004 Roland McGrath <roland@redhat.com> .
hangeLog
08267b8d6703c23332e39b1296e10e327196acb3 20-Feb-2004 Roland McGrath <roland@redhat.com> 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.
rocess.c
yscall.c
til.c
13aeab35587d7e93dcdcd710cb2948c26c8af8bc 20-Feb-2004 Roland McGrath <roland@redhat.com> .
hangeLog
54394c80f7e044864052c294b697c61ada4bdffa 20-Feb-2004 Roland McGrath <roland@redhat.com> 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].
inux/powerpc/syscallent.h
inux/syscall.h
c3266d51f0b4c0af082000a02649e37f992dbc8b 20-Feb-2004 Roland McGrath <roland@redhat.com> 2004-02-19 Roland McGrath <roland@redhat.com>

* strace.c (main): Use TCP->pid, not PID, in -p message.
Fixes Debian bug #229802.
trace.c
182aa38bb22283612dbed7cfa82f972529ee196e 20-Feb-2004 Roland McGrath <roland@redhat.com> 2004-01-13 Roland McGrath <roland@redhat.com>

* syscall.c (force_result) [LINUX] [S390 || S390X]: Remove bogus upeek
call.
yscall.c
5ef24abf005145b7e30e475e23c0fa2e8b0f4e13 20-Feb-2004 Roland McGrath <roland@redhat.com> Revert jhughes commits.
hangeLog
EADME-linux
onfigure.ac
inux/dummy.h
inux/syscall.h
inux/syscallent.h
rocess.c
ystem.c
d535306ce2d61de87a29764cd94fd81b87d07a8b 05-Feb-2004 John Hughes <john@Calva.COM> Better output for sys_migrate
hangeLog
inux/dummy.h
ae259337730f2d7a2b47bfbfb33aad1db0b65fba 29-Jan-2004 John Hughes <john@Calva.COM> port SSI clustering mods to OpenSSI on Linux
hangeLog
EADME-linux
onfigure.ac
inux/dummy.h
inux/syscall.h
inux/syscallent.h
rocess.c
ystem.c
ec0cf0b16b44e68f11ccd2598fd05b0e020bf784 13-Jan-2004 Roland McGrath <roland@redhat.com> .
hangeLog
1c04b0b000a93eef43fb2633a082d3f18da69f47 13-Jan-2004 Roland McGrath <roland@redhat.com> 2004-01-13 Roland McGrath <roland@redhat.com>

* stream.c (internal_stream_ioctl): Fix typo strict -> struct.
Reported by Petter Reinholdtsen <pere@hungry.com>.
tream.c
7515547868273fc52143f5085d2c884cc02492c4 13-Jan-2004 Roland McGrath <roland@redhat.com> .
hangeLog
9205324e8bd06caa8c18b42f113fcfe9a2b852cd 13-Jan-2004 Roland McGrath <roland@redhat.com> 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.
ile.c
135db8908d5a6a045191c7d7e9ca4572bd60d600 13-Jan-2004 Roland McGrath <roland@redhat.com> .
hangeLog
c767ad8e1aa12fb81120f27a7194a36a46a12c68 13-Jan-2004 Roland McGrath <roland@redhat.com> 2003-12-14 Anton Blanchard <anton@samba.org>

* file.c [LINUX] (fsmagic): Add SYSFS_MAGIC.
ile.c
190f8dd7b15ae1798750dad5db94c729f6e171c7 13-Jan-2004 Roland McGrath <roland@redhat.com> 2003-12-14 Anton Blanchard <anton@samba.org>

* syscall.c (get_error) [POWERPC]: Cast result to unsigned long for
ppc64, we were misreporting syscalls that really succeeded as having
failed.
yscall.c
3a95725ec7575be821565bafc140f951fe1f04f5 13-Jan-2004 Roland McGrath <roland@redhat.com> 2003-12-14 Anton Blanchard <anton@samba.org>

* linux/powerpc/syscallent.h: Update to include recently added
syscalls.
inux/powerpc/syscallent.h
ca4e10c0600b3a59dcb5cf96f2f952b1d1b64c37 13-Jan-2004 Roland McGrath <roland@redhat.com> 2003-12-31 David Mosberger <davidm@hpl.hp.com>

* process.c (struct_user_offsets) [IA64]: Fix up register name list.
rocess.c
8950c69092f6e5ca647b149870faac9069872a1f 13-Jan-2004 Roland McGrath <roland@redhat.com> .
hangeLog
3766a56ee7620c303f2b61b11111f77371737ad1 13-Jan-2004 Roland McGrath <roland@redhat.com> 2004-01-13 Roland McGrath <roland@redhat.com>

* strace.1: Remove comment about vfork on Linux.
Fixes Debian bug #223390.
trace.1
2efe879fa8df30bf69c3a4c471dcc5e19ad0b6ea 13-Jan-2004 Roland McGrath <roland@redhat.com> 2003-12-15 Dmitry V. Levin <ldv@altlinux.org>

* strace.c (trace) [WCOREDUMP]: Show coredump status of the
killed process if available.
trace.c
5b7aa6866bdaf1d5e8624b8b7c113e7004a639ca 13-Jan-2004 Roland McGrath <roland@redhat.com> .
hangeLog
4054284e29aeeb7ab8495ecb27000f0301047f7c 13-Jan-2004 Roland McGrath <roland@redhat.com> 2004-01-13 Roland McGrath <roland@redhat.com>

* file.c (direnttypes): Define under [LINUX] as well. Add DT_UNKNOWN.
(sys_getdents64) [LINUX]: Print d_type field.
ile.c
cf28303d8442680405cf8caddb8745e04d2bec99 14-Nov-2003 Roland McGrath <roland@redhat.com> .
hangeLog
00eb84e55f5455c1f17a7ff819dbb2be7912e113 14-Nov-2003 Roland McGrath <roland@redhat.com> 2003-11-13 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.5.1.
* strace.spec, debian/changelog: 4.5.1-1.
EWS
onfigure.ac
ebian/changelog
trace.spec
0aac872ba5753e240312a2c5b26911b56a4b8a90 14-Nov-2003 Roland McGrath <roland@redhat.com> .
hangeLog
2843a4e1d2fca851be6e47e7ff2413b45903ac9a 14-Nov-2003 Roland McGrath <roland@redhat.com> 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>.
efs.h
o.c
octl.c
tream.c
f25ef3916f41f9a6187c66c2053f0a1591b39812 13-Nov-2003 Roland McGrath <roland@redhat.com> .
hangeLog
09f7a01e6787a5513593fce345c5beaa5e4b9470 13-Nov-2003 Roland McGrath <roland@redhat.com> .
hangeLog
ee06762c4178fdd19efd7f5c95f92d05d1f1648b 13-Nov-2003 Roland McGrath <roland@redhat.com> 2003-11-13 Roland McGrath <roland@redhat.com>

* linux/sh/syscallent.h: Use sys_setgroups32, sys_getgroups32.
* linux/sh64/syscallent.h: Likewise.
inux/sh/syscallent.h
inux/sh64/syscallent.h
6bc1220fe3f10e16919f182ad394c35619fe2e7f 13-Nov-2003 Roland McGrath <roland@redhat.com> 2003-09-06 Dmitry V. Levin <ldv@altlinux.org>

* 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.
efs.h
ile.c
til.c
83bd47a91ea40e0623b3bad51d7c12c732a8d994 13-Nov-2003 Roland McGrath <roland@redhat.com> 2003-09-06 Dmitry V. Levin <ldv@altlinux.org>

* 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.
rocess.c
a44c82af4b7d1b412964881da063ed5aa6e729a4 13-Nov-2003 Roland McGrath <roland@redhat.com> 2003-09-06 Dmitry V. Levin <ldv@altlinux.org>

* 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.
inux/syscall.h
inux/syscallent.h
730e8c0fe046ffb8100cd930001ddbbbc6eaaecc 11-Nov-2003 Roland McGrath <roland@redhat.com> .
hangeLog
ce0d15442eec017b1dcbfdd14ac92e73c39c586a 11-Nov-2003 Roland McGrath <roland@redhat.com> 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.
trace.c
a0f32e03d16a852bc56429ef4fe40b5a9a783f57 07-Nov-2003 Roland McGrath <roland@redhat.com> .
hangeLog
37b9a66dd4cf063c4a3d1002f4196cd7ef9ae5b7 07-Nov-2003 Roland McGrath <roland@redhat.com> 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>
trace.c
e52919ba3eb318ce23cefc2ccfe041b564879444 07-Nov-2003 Roland McGrath <roland@redhat.com> .
hangeLog
36ef1bc03e291f98eb5f44ba722a49b87c3cb5e5 07-Nov-2003 Roland McGrath <roland@redhat.com> 2003-11-06 Roland McGrath <roland@redhat.com>

* net.c (printsock): Fix typo in #ifdef AF_NETLINK.
From Ulrich Drepper <drepper@redhat.com>.
et.c
b310a0c26b3b31d52aa4b25549e06113284bd5bb 07-Nov-2003 Roland McGrath <roland@redhat.com> 2003-11-06 Roland McGrath <roland@redhat.com>

* strace.c (tprintf): Check result of vfprintf and use perror when it
fails while not writing to stderr itself. Fixes Debian bug #218762.
trace.c
d4897f8f147eae856fedfa8752438b5c1b22394f 01-Nov-2003 Roland McGrath <roland@redhat.com> .
hangeLog
b67e8e338a064b3a839ccbacfe4a10c647b96e24 01-Nov-2003 Roland McGrath <roland@redhat.com> .
hangeLog
ee9c5b5d6321bc7e9c7d0553716d9d4fe09f1061 01-Nov-2003 Roland McGrath <roland@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.
yscall.c
7aa6d2004c2e32a85fa57e9906e883d27feacb38 22-Oct-2003 Roland McGrath <roland@redhat.com> .
hangeLog
0411b40c2f90776fe4ad16d404a8aa283d2784cf 22-Oct-2003 Roland McGrath <roland@redhat.com> 2003-10-21 Roland McGrath <roland@redhat.com>

* strace.1: Fixed a few spelling errors.
trace.1
a9f76daf083c64bd13676614651e054e32b07ce9 22-Oct-2003 Roland McGrath <roland@redhat.com> .
hangeLog
bb4833f1ae49b6dc1b1a24ac6d2546f4d7f5e936 22-Oct-2003 Roland McGrath <roland@redhat.com> 2003-10-21 Roland McGrath <roland@redhat.com>

* syscall.c: Revert last change, was broken.
yscall.c
e7da3506ca6cf8c51727bf5856fdc0ae4bac6c3a 01-Oct-2003 Roland McGrath <roland@redhat.com> .
hangeLog
fccfb94863038be3e4a45d61983b9449fbcca03d 01-Oct-2003 Roland McGrath <roland@redhat.com> 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.
rocess.c
8c74bd9626b1d0611803089aea56db3b8f317d3e 01-Oct-2003 Roland McGrath <roland@redhat.com> .
hangeLog
c38fecaf9189bb77438b6c6ec852bc3ea427830a 01-Oct-2003 Roland McGrath <roland@redhat.com> 2003-10-01 Roland McGrath <roland@redhat.com>

* signal.c [LINUX] (parse_sigset_t): Rewrite to process hex strings
from right to left so we don't have to presume the size.
Fixes RH#105995. Reported by David Woodhouse <dwmw2@redhat.com>.
ignal.c
268e9043a9c3b3bb480336dae6457f6fb238c945 26-Sep-2003 Roland McGrath <roland@redhat.com> .
hangeLog
47eb0e2a0cadeea4f091ad2548556231585a31ab 26-Sep-2003 Roland McGrath <roland@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.
em.c
739868f2f3af084228a9e53dd4c658578c215d19 25-Sep-2003 Roland McGrath <roland@redhat.com> add log entry!
trace.spec
f2e9f6e1eeba37f9d42058e0c0b9d3f7315bf2d0 25-Sep-2003 Roland McGrath <roland@redhat.com> nit
ebian/changelog
4f59bab56192799078e54f9029b0cf9a2662a17b 25-Sep-2003 Roland McGrath <roland@redhat.com> .
hangeLog
a943d00c8810f014b85b52751f7f428cc6d1c7a0 25-Sep-2003 Roland McGrath <roland@redhat.com> 2003-09-24 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.5.
* strace.spec, debian/changelog: 4.5-1.
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.
trace.spec
a9da8cd179bb8cd374164d674828df9aa441402e 25-Sep-2003 Roland McGrath <roland@redhat.com> 2003-09-24 Roland McGrath <roland@redhat.com>

* syscall.c (get_scno) [LINUX] [S390 || S390X]: Bail out of
instruction decoding branch if TCB_INSYSCALL is clear.
Reported by <jochen@penguin-breeder.org>.
yscall.c
a3bc12eab1bd03f383e642eb340399da8c43df56 25-Sep-2003 Roland McGrath <roland@redhat.com> 2003-09-24 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.5.
* strace.spec, debian/changelog: 4.5-1.
EWS
onfigure.ac
ebian/changelog
b6ef5fd88f2f64907c98f5cfde7b7cc555af4362 25-Sep-2003 Roland McGrath <roland@redhat.com> 2003-09-24 Roland McGrath <roland@redhat.com>

* linux/ioctlent.h: Swap order of overloaded TC* and SNDCTL_* values.
inux/ioctlent.h
7633f1e0681077d63d6b4e5744facddfc8af5e91 24-Sep-2003 Roland McGrath <roland@redhat.com> .
hangeLog
90b4cb59924fc3ad80baabf9dcea03de8b0baa9b 24-Sep-2003 Roland McGrath <roland@redhat.com> 2003-09-23 Roland McGrath <roland@redhat.com>

* signal.c (sprintsigmask): Print RT_%u for __SIGRTMIN..__SIGRTMAX.
Fixes RH#104365.
ignal.c
109f3d38ade263e90bfe5b28365c9b3e9d093b35 21-Aug-2003 Roland McGrath <roland@redhat.com> .
hangeLog
a349fcc55c9c01510849c0626ab2551a1b9bd36c 21-Aug-2003 Roland McGrath <roland@redhat.com> 2003-08-21 Roland McGrath <roland@redhat.com>

* linux/syscallent.h: Fix mlock argument count.
* linux/x86_64/syscallent.h: Likewise.
* linux/s390/syscallent.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/syscallent.h
inux/x86_64/syscallent.h
5bc5345d9fa6be5e9b40700955879513540c46ee 21-Aug-2003 Roland McGrath <roland@redhat.com> .
hangeLog
c0f8bbda62139da801bb761d8c66724e12638087 21-Aug-2003 Roland McGrath <roland@redhat.com> 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.
efs.h
o.c
inux/mips/syscallent.h
inux/sh/syscallent.h
rocess.c
4d8130c85990fdf24e355366475854f26d91f1c8 17-Jul-2003 Roland McGrath <roland@redhat.com> .
hangeLog
cb612146018b941943efa4d0f37a868dc3417510 17-Jul-2003 Roland McGrath <roland@redhat.com> 2003-07-17 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.4.99.
* strace.spec, debian/changelog: 4.4.99-1.
EWS
onfigure.ac
ebian/changelog
trace.spec
af9e5ace075eb608a4965091e60baa1de62e0432 17-Jul-2003 Roland McGrath <roland@redhat.com> 2003-07-09 Roland McGrath <roland@redhat.com>

* linux/ia64/syscallent.h (tgkill): New at 1235.
inux/ia64/syscallent.h
25969ce6e1a8ebcc87888ee45728bffa9b21d075 17-Jul-2003 Roland McGrath <roland@redhat.com> .
hangeLog
0fe4158ca6402dd2a7a2e2e1b412b84552d5b16a 17-Jul-2003 Roland McGrath <roland@redhat.com> 2003-07-17 Roland McGrath <roland@redhat.com>

* 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>.
inux/syscallent.h
e2be9ab3d36c43926c2b64ef3f15ee26159d7330 17-Jul-2003 Roland McGrath <roland@redhat.com> 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).
pc.c
ab147c5d67748213d3169fdf9f39c26ec0f65770 17-Jul-2003 Roland McGrath <roland@redhat.com> 2003-07-17 Roland McGrath <roland@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>.
ile.c
inux/syscall.h
728d94d28abfd348f7557c8dfb995ef0cd6beac4 17-Jul-2003 Roland McGrath <roland@redhat.com> 2003-07-17 Roland McGrath <roland@redhat.com>

* linux/powerpc/syscallent.h (tgkill): New at 250.
inux/powerpc/syscallent.h
004d88ddbe9ff9e3efeab536a870f7fc2f685e17 09-Jul-2003 Roland McGrath <roland@redhat.com> .
hangeLog
9c555e71d22a9aa3baf02a49a989ee184a7b09be 09-Jul-2003 Roland McGrath <roland@redhat.com> 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.
inux/alpha/syscallent.h
rocess.c
yscall.c
8ffc352a35dc2633b01ffd2a15bc0464d8e26ca3 09-Jul-2003 Roland McGrath <roland@redhat.com> 2003-07-08 Roland McGrath <roland@redhat.com>

* signal.c (sys_tgkill): New function.
* linux/syscall.h: Declare it.
* linux/syscallent.h: Add tgkill.
inux/syscall.h
inux/syscallent.h
ignal.c
a9a86199ff7d3a589e1871a4754a02a227e5f03e 27-Jun-2003 Roland McGrath <roland@redhat.com> .
hangeLog
79db8af77790f9c3d0f5e426763f353797774446 27-Jun-2003 Roland McGrath <roland@redhat.com> 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.
onfigure.ac
ile.c
inux/dummy.h
4fe23b51584ca1361060774b9cd31b13e8050efb 27-Jun-2003 Roland McGrath <roland@redhat.com> .
hangeLog
f5a477788ed49d3c15e2080c03d30d4beaeefee3 27-Jun-2003 Roland McGrath <roland@redhat.com> 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.
onfigure.ac
efs.h
inux/sh64/syscallent.h
inux/shmedia/syscallent.h
em.c
rocess.c
ock.c
yscall.c
til.c
5f7ffc563ae8c2e287842442cfbc714dbda0f33e 27-Jun-2003 Roland McGrath <roland@redhat.com> 2003-06-26 Roland McGrath <roland@redhat.com>

* config.guess: Update from canonical version, timestamp 2003-06-17.
* config.sub: Likewise.
onfig.guess
onfig.sub
8f340e3111aabb1ce46db6538b9c42f82d190f3a 27-Jun-2003 Roland McGrath <roland@redhat.com> .
hangeLog
7c051d2e4c748e1dd2ba9841ad1520ccce296ea4 27-Jun-2003 Roland McGrath <roland@redhat.com> 2003-06-26 Roland McGrath <roland@redhat.com>

* syscall.c (force_result) [LINUX] [ARM]: Fix variable usage.
From: Joshua Neal <tinara@netpipeline.net>.
yscall.c
c2aa8ea5f80940b5c3118f630b8d5d8cc886c5c6 27-Jun-2003 Roland McGrath <roland@redhat.com> .
hangeLog
88812d685d7d24a68841ee0435aab6296f273787 27-Jun-2003 Roland McGrath <roland@redhat.com> 2003-06-26 Roland McGrath <roland@redhat.com>

* 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>.
inux/ia64/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/syscallent.h
inux/x86_64/syscallent.h
rocess.c
9df23f9a37ce6963323baa69bfb1a35b1c0eddd6 27-Jun-2003 Roland McGrath <roland@redhat.com> .
hangeLog
2f924cafae418c582858f3e5de45df277026dd00 27-Jun-2003 Roland McGrath <roland@redhat.com> 2003-06-26 Roland McGrath <roland@redhat.com>

* syscall.c (get_scno) [S390 || S390X]: Fix old vs new mode detection.
From Michael Holzheu <HOLZHEU@de.ibm.com>.
yscall.c
ee911635e73a33205bc68cc5ffd068b3eaa75aa8 24-Jun-2003 Roland McGrath <roland@redhat.com> .
hangeLog
8758e544d502e54202079b0521ae0a234d644a4a 24-Jun-2003 Roland McGrath <roland@redhat.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>.
et.c
f02c3c3a8a6c8850be960dea983b51d484c0ae27 11-Jun-2003 Roland McGrath <roland@redhat.com> grr
trace.spec
e84e6276b5cbb64e66afeb3565f8cb8dee83fbe6 11-Jun-2003 Roland McGrath <roland@redhat.com> .
hangeLog
acd3cd758d9070398d95e279d82cbdaa0f7d7303 11-Jun-2003 Roland McGrath <roland@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.
EWS
onfigure.ac
ebian/changelog
trace.spec
767b4305337c4f35140869189e49836a224264e9 10-Jun-2003 Roland McGrath <roland@redhat.com> .
hangeLog
5a14cee5a0cbad846d846d94b0be7a807f30a743 10-Jun-2003 Roland McGrath <roland@redhat.com> 2003-06-09 Roland McGrath <roland@redhat.com>

* linux/s390x/syscallent.h: Update many syscalls.
* linux/syscall.h (SYS_socket_subcall): Update [S390X] value.
inux/s390x/syscallent.h
inux/syscall.h
c38d46ea66b576b676d6c7ef28e89b652d3f52f9 10-Jun-2003 Roland McGrath <roland@redhat.com> .
hangeLog
ef022c67eeac8f51695a636f934f7b295cac7b99 10-Jun-2003 Roland McGrath <roland@redhat.com> 2003-06-09 Roland McGrath <roland@redhat.com>

* linux/s390/syscallent.h: Update many syscalls.
* linux/syscall.h (SYS_socket_subcall): Update [S390] value.
inux/s390/syscallent.h
inux/syscall.h
eef1fded0c8dc1bc5338719a6fecf6f71209848d 10-Jun-2003 Roland McGrath <roland@redhat.com> .
hangeLog
cb6822a25e306a234ad069ed5d2bb66f26369792 10-Jun-2003 Roland McGrath <roland@redhat.com> 2003-06-09 Roland McGrath <roland@redhat.com>

* linux/shmedia/syscallent.h: New file.
From Stephen Thomas <stephen.thomas@superh.com>.
inux/shmedia/syscallent.h
3634c272079f7e711e99a6fe16e73a24f6371844 10-Jun-2003 Roland McGrath <roland@redhat.com> .
hangeLog
0a396906981a03f93c07cb912585d0679dd50899 10-Jun-2003 Roland McGrath <roland@redhat.com> 2003-06-09 Roland McGrath <roland@redhat.com>

* strace.c (trace): Print a message and newline for a WIFEXITED report
from the process we just printed an unterminated syscall line for.
trace.c
0f87c4972f20f102149e3ec84073c0e9d53e146d 04-Jun-2003 Roland McGrath <roland@redhat.com> 2003-06-03 Roland McGrath <roland@redhat.com>

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.
efs.h
rocess.c
ignal.c
yscall.c
ef388689610fa17df1d3001face8057b411a2e26 04-Jun-2003 Roland McGrath <roland@redhat.com> 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.
til.c
2c1d534aac29c3b5753148366a06495f9ccdd2a2 04-Jun-2003 Roland McGrath <roland@redhat.com> .
hangeLog
2fb649615cbe0dcc73a3d19dbc0d0b9251b9951d 04-Jun-2003 Roland McGrath <roland@redhat.com> 2003-06-03 Roland McGrath <roland@redhat.com>

* debian/control (Standards-Version): Update to 3.5.10.
ebian/control
cf99f9c864fbddc66798d50c317bf111d5237b35 03-Jun-2003 Roland McGrath <roland@redhat.com> .
hangeLog
ed64516fa4f4ce25308a1f2ad3b84f8734c3e783 03-Jun-2003 Roland McGrath <roland@redhat.com> 2003-06-03 Roland McGrath <roland@redhat.com>

* strace.c (main): In PATH search, accept only a regular file with
execute bits set. Fixes Debian bug #137103.
trace.c
454a024a9bade604443721882a2466b5bc84aa34 03-Jun-2003 Roland McGrath <roland@redhat.com> .
hangeLog
369310502bfca4b202d72be9452c8cdb55bb6d5e 03-Jun-2003 Roland McGrath <roland@redhat.com> 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.
trace.c
8245cf5fcaf1178b11aeb6440fdc0197d58f4179 02-Jun-2003 Roland McGrath <roland@redhat.com> .
hangeLog
c69ab7be6b6499b226cf7aaf40654c254f101b32 02-Jun-2003 Roland McGrath <roland@redhat.com> 2003-06-02 Roland McGrath <roland@redhat.com>

* debian/control (Architecture): Add shmedia.
ebian/control
a834fbe4eb9891829b907375bf96cea163456d92 02-Jun-2003 Roland McGrath <roland@redhat.com> .
hangeLog
64ffba5880272d2bb4536b05c50b62510fd6b844 02-Jun-2003 Roland McGrath <roland@redhat.com> 2003-06-02 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.4.97.
* strace.spec, debian/changelog: 4.4.97-1.
EWS
onfigure.ac
ebian/changelog
trace.spec
ea5d92bcccf46dac5fe2a8845fcb127697f50da7 02-Jun-2003 Roland McGrath <roland@redhat.com> 2003-06-02 Roland McGrath <roland@redhat.com>

* config.guess: Update from ftp://ftp.gnu.org/pub/gnu/config/,
timestamp 2003-05-22.
* config.sub: Likewise, timestamp 2003-05-24.
onfig.guess
onfig.sub
e1e584b8fa0d97caad461f82a5427cd37d6327f3 02-Jun-2003 Roland McGrath <roland@redhat.com> 2003-06-02 Roland McGrath <roland@redhat.com>

* 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>.
onfigure.ac
efs.h
em.c
rocess.c
ock.c
yscall.c
til.c
d0835361d61de0051771a5c1ae60ddc2c7c5152d 23-May-2003 Roland McGrath <roland@redhat.com> .
hangeLog
0962345a5775e0eea75c3ec408fb4807e851e7f0 23-May-2003 Roland McGrath <roland@redhat.com> 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.
efs.h
rocess.c
trace.c
7dfd4ed7218a83c730e00571d48c0e3b4f33df95 23-May-2003 Roland McGrath <roland@redhat.com> .
hangeLog
984154d2468b7e8bfcccff3e5d584baf3b8fffa4 23-May-2003 Roland McGrath <roland@redhat.com> 2003-05-22 Roland McGrath <roland@redhat.com>

* 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.
rocess.c
031b0d88cf332846eb0af02fbcaf068fb50be6f2 23-May-2003 Roland McGrath <roland@redhat.com> .
hangeLog
fe5fdb23def92008d615bf5dbeec647da452a30c 23-May-2003 Roland McGrath <roland@redhat.com> 2003-05-22 Roland McGrath <roland@redhat.com>

* process.c [LINUX] [S390 || S390X] (ARG_CTID, ARG_TLS): Fix swapped
indices. Reported by Jakub Jelinek <jakub@redhat.com>.
rocess.c
941b7405773031c63f9eba588234b23aababc564 23-May-2003 Roland McGrath <roland@redhat.com> 2003-05-22 Roland McGrath <roland@redhat.com>

* signal.c [LINUX] (SI_SIGIO, SI_TKILL): New macros.
[LINUX || SVR4] (siginfo_codes): Add strings for them.
ignal.c
d8f98bc46cb32289e4bde21778fbbad7e2b93148 23-May-2003 Roland McGrath <roland@redhat.com> 2003-05-22 Roland McGrath <roland@redhat.com>

* 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.
inux/alpha/syscallent.h
inux/hppa/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/s390x/syscallent.h
inux/sh/syscallent.h
inux/sparc/syscallent.h
5aae8773f9602b3eae832963b21459d39dfc712f 23-May-2003 Roland McGrath <roland@redhat.com> .
hangeLog
a2f3496d745f19405343650dfe7aadf661108011 23-May-2003 Roland McGrath <roland@redhat.com> 2003-05-22 Roland McGrath <roland@redhat.com>

* process.c (print_affinitylist): Fix loop condition.
Reported by Ian Wienand <ianw@gelato.unsw.edu.au>.
rocess.c
872a43633ac8a44ba72e55303c6bdc1170545ba8 10-Apr-2003 Roland McGrath <roland@redhat.com> .
hangeLog
2b61902ee98ec63603abd8b0c84b0c9d4fa70c48 10-Apr-2003 Roland McGrath <roland@redhat.com> 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.
yscall.c
808a4baeb2732feba83f92664d4e50b6108985f3 08-Apr-2003 Roland McGrath <roland@redhat.com> .
hangeLog
58f38db0b1ec1d682854566fe4b6bdf3b9319888 08-Apr-2003 Roland McGrath <roland@redhat.com> 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>.
inux/syscall.h
inux/syscallent.h
8477647c4b3c04c6fc4adb0dc76221d319008296 08-Apr-2003 Roland McGrath <roland@redhat.com> 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>.
pc.c
cf43e9036289b3d92ee2e824b012ff14f4bcdb40 02-Apr-2003 Roland McGrath <roland@redhat.com> .
hangeLog
561c7995d7524afbf92689593b9ba5f9615d0982 02-Apr-2003 Roland McGrath <roland@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.
ile.c
ock.c
tream.c
215da2ab0734cd9cec7a99ba0e66e44ef2ea1819 31-Mar-2003 Roland McGrath <roland@redhat.com> sync with rh file
trace.spec
10a56fbbd5dc32b12703ec2b4744117f6e258bdc 31-Mar-2003 Roland McGrath <roland@redhat.com> .
hangeLog
1b86e2d311bf86b077778c8d794221cfc61e14ec 31-Mar-2003 Roland McGrath <roland@redhat.com> 2003-03-30 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.4.96.
* strace.spec, debian/changelog: 4.4.96-1.
EWS
onfigure.ac
ebian/changelog
trace.spec
347636fa12c2a4573f5512ab46fdc5b3bc0633e3 31-Mar-2003 Roland McGrath <roland@redhat.com> .
hangeLog
6b1d43ef29a23e5e0aba381f70e2f64e9cface30 31-Mar-2003 Roland McGrath <roland@redhat.com> 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.
em.c
et.c
yscall.c
75a99b7d558e9c4d44275f4bd8da2cb90f9be9ca 31-Mar-2003 Roland McGrath <roland@redhat.com> 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.
inux/sh/errnoent.h
inux/sh/ioctlent.h
inux/sh/signalent.h
inux/sh/syscallent.h
1e1b61d0773b24d25d80b072c2dafec9b98a05c6 31-Mar-2003 Roland McGrath <roland@redhat.com> 2003-02-26 Stuart Menefy <stuart.menefy@st.com>

* linux/ioctlent.sh: Take an arg for location of header files
* syscallent.sh: Replaced lost $
inux/ioctlent.sh
yscallent.sh
ac971c27278e1d45bf12c1ba522c7507ba778144 31-Mar-2003 Roland McGrath <roland@redhat.com> 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,errnoent,ioctlent,signalent}.h: New files
akefile.am
rocess.c
til.c
5467f2681e5ac32ef6f67ab7b9e8874a388db3e5 31-Mar-2003 Roland McGrath <roland@redhat.com> .
hangeLog
1e35679bbb8c840bd0b107c68cb187feeb3e3282 31-Mar-2003 Roland McGrath <roland@redhat.com> 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>.
inux/dummy.h
inux/syscall.h
ime.c
e9a188d51e041830e5e03e4ea92dbcc6121329f7 31-Mar-2003 Roland McGrath <roland@redhat.com> 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>.
inux/syscallent.h
5755ec54e25f96e341a4eda0cfb14f25c902dfbb 21-Mar-2003 Roland McGrath <roland@redhat.com> .
hangeLog
6f67a984426c77aabf7627dddd06cd71b2c3dcc0 21-Mar-2003 Roland McGrath <roland@redhat.com> 2003-03-18 Roland McGrath <roland@redhat.com>

* process.c [LINUX] (sys_clone): Don't dereference parent_tid argument.
rocess.c
49bad88ceb98549453eb744c192359ecdc7873ec 18-Mar-2003 Roland McGrath <roland@redhat.com> .
hangeLog
361aac5193045db0ff0d2d0a7a19964793ab1ab7 18-Mar-2003 Roland McGrath <roland@redhat.com> 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.
inux/x86_64/syscallent.h
rocess.c
f22e0c70eb6c37e1402c24db81a7362c379d49af 15-Mar-2003 Roland McGrath <roland@redhat.com> .
hangeLog
e24fa3e4c5e146c84b2d607ded8244d9696bfef4 15-Mar-2003 Roland McGrath <roland@redhat.com> 2003-03-15 Roland McGrath <roland@redhat.com>

* linux/x86_64/syscallent.h: Add exit_group syscall at 231.
inux/x86_64/syscallent.h
27cad9a9ea27471cb5db4da66b451461145ad0a6 14-Mar-2003 Roland McGrath <roland@redhat.com> .
hangeLog
84009caa246642cb5bcdc71f427911bf6c91d2ea 14-Mar-2003 Roland McGrath <roland@redhat.com> 2003-03-14 Roland McGrath <roland@redhat.com>

* linux/x86_64/syscallent.h: Update and add many 2.5 syscalls.
inux/x86_64/syscallent.h
c03981d0ea2d910c5caf621bceadc9a792fd4576 14-Mar-2003 Roland McGrath <roland@redhat.com> 2003-03-14 Roland McGrath <roland@redhat.com>

* linux/ia64/syscallent.h: clone takes 5 arguments.
* process.c [LINUX && IA64] (ARG_*): Update for 2.5 clone calls.
inux/ia64/syscallent.h
rocess.c
178d3b46cbd60c979ee7a16b8e48323a14de4c4a 12-Mar-2003 Roland McGrath <roland@redhat.com> tweak last change
rocess.c
43f2c84d50a1a41efff017abecbc7ebc8f23fd97 12-Mar-2003 Roland McGrath <roland@redhat.com> tweak last change
rocess.c
6fbb4e320998ebcc3eb06514628ae730b6a7d617 12-Mar-2003 Roland McGrath <roland@redhat.com> .
hangeLog
9677b3a2805e346ca5e61820391095ea3e571c3f 12-Mar-2003 Roland McGrath <roland@redhat.com> 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.
inux/ia64/syscallent.h
inux/syscall.h
rocess.c
2e747d6762db6f7e8e0904fbfe9a46961fe51c00 12-Mar-2003 Roland McGrath <roland@redhat.com> yet more typos in last change
inux/ia64/syscallent.h
e14b62a5d5f28149fd5326fd348bbf9facd9e288 12-Mar-2003 Roland McGrath <roland@redhat.com> more typos in last change
inux/ia64/syscallent.h
f6a4ea6f4e48c873b67cef1a2cafbd1b30c21dee 12-Mar-2003 Roland McGrath <roland@redhat.com> typos in last change
inux/ia64/syscallent.h
041900f67526502d3d081b5b29f3c5d5401ef42b 12-Mar-2003 Roland McGrath <roland@redhat.com> .
hangeLog
c5396639b14903aad1c561c20869de11f545f596 12-Mar-2003 Roland McGrath <roland@redhat.com> 2003-03-12 Roland McGrath <roland@redhat.com>

* linux/ia64/syscallent.h: Add a bunch of 2.5 syscalls.
inux/ia64/syscallent.h
b3f8fd6573e52e7bd539c0c80e4d40d892bf8cd5 05-Mar-2003 Roland McGrath <roland@redhat.com> .
hangeLog
ba95476dd48d5d1b250fdf2ab23af569f805a805 05-Mar-2003 Roland McGrath <roland@redhat.com> 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.
yscall.c
d2a6c6b5a6ccdbd2a384ac33e311bf1caedc777f 05-Mar-2003 Roland McGrath <roland@redhat.com> .
hangeLog
72c5b7bf739c707a7f8cd006050f1302c0e618e7 05-Mar-2003 Roland McGrath <roland@redhat.com> 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.
inux/powerpc/syscallent.h
inux/syscall.h
inux/syscallent.h
em.c
8dfa04a17460d82bce243b978b3e98cb830b2f5c 05-Mar-2003 Roland McGrath <roland@redhat.com> 2003-03-04 Ulrich Drepper <drepper@redhat.com>

* process.c [LINUX] (sys_futex): Omit final if op is not FUTEX_WAIT.
rocess.c
a4187c918301038fed0bc937e64b2514060c87a9 26-Feb-2003 Roland McGrath <roland@redhat.com> .
hangeLog
e07cd606729a9ae113a7bcbe30008ce06b61ba66 26-Feb-2003 Roland McGrath <roland@redhat.com> 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>.
onfigure.ac
74f905df7bc3c23b6621a2d6bfed51c18143bbd1 24-Feb-2003 Roland McGrath <roland@redhat.com> .
hangeLog
1893d0566f0cf1e5043809283fe13444ee699495 24-Feb-2003 Roland McGrath <roland@redhat.com> 2003-02-24 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.4.95.
* strace.spec, debian/changelog: 4.4.95-1.
EWS
onfigure.ac
ebian/changelog
trace.spec
66375f6905aa441a6feca3e4128422e3af3689bb 24-Feb-2003 Roland McGrath <roland@redhat.com> .
hangeLog
d245092e7fa8a72ab419542d85fab50554e6f9a7 24-Feb-2003 Roland McGrath <roland@redhat.com> 2003-02-24 Roland McGrath <roland@redhat.com>

* process.c (sys_getresgid): Fix typos in argument access.
rocess.c
127f7d2a14ad4ec7bb201b815d94a2c449431c3a 24-Feb-2003 Roland McGrath <roland@redhat.com> .
hangeLog
9bd6b4234b8dadc2ea4165594dcf6ec612c5abca 24-Feb-2003 Roland McGrath <roland@redhat.com> 2003-02-23 Roland McGrath <roland@redhat.com>

* process.c (sys_getresuid): Fix typos in argument access.
Reported by Anton Blanchard <anton@samba.org>.
rocess.c
45be9607ce45458482daae7fc2d09d8a9a59fbdf 20-Feb-2003 Roland McGrath <roland@redhat.com> .
hangeLog
6c2fe9d9700d77763688ec78c4ae620b2dfd1f47 20-Feb-2003 Roland McGrath <roland@redhat.com> 2003-02-19 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.4.94.
* strace.spec, debian/changelog: 4.4.94-1.
onfigure.ac
ebian/changelog
trace.spec
937e8d870420d6b15aff52196f8b6287b5dfab42 20-Feb-2003 Roland McGrath <roland@redhat.com> 2003-02-19 Roland McGrath <roland@redhat.com>

* version.c: Removed.
ersion.c
44fb043ae74ddff12183a0c67afe7df478077334 20-Feb-2003 Roland McGrath <roland@redhat.com> .
hangeLog
9c9a2534e361b683f1e4e08804b7166a01475bf1 20-Feb-2003 Roland McGrath <roland@redhat.com> 2003-02-19 Roland McGrath <roland@redhat.com>

* version.c: Removed.
* Makefile.am (strace_SOURCES): Remove it.
* strace.c: Use PACKAGE_NAME and VERSION macros instead of version var.
akefile.am
trace.c
7152234bbfd3bb654fbbbf6d52b55770fbc8c851 20-Feb-2003 Roland McGrath <roland@redhat.com> .
hangeLog
f3a0e1bb56176d1f41aa92be3c7128f0ad1b1543 20-Feb-2003 Roland McGrath <roland@redhat.com> 2003-02-19 Roland McGrath <roland@redhat.com>

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.
rocess.c
yscall.c
ff02c907ea79f13e3ca27aed12f99e0f78cb258a 30-Jan-2003 Roland McGrath <roland@redhat.com> .
hangeLog
30ff45ed74c5f000dcd23b83ed7193cd6d63e17d 30-Jan-2003 Roland McGrath <roland@redhat.com> 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.
ignal.c
0a5832c8460cf24487da684db14c0f5fb6d5999e 30-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-23 Roland McGrath <roland@redhat.com>

* linux/sparc/syscall.h: Declare sys_getdents64, sys_llseek.
inux/sparc/syscall.h
4db2624c8f6ec2c6f204c945df349bf42a897d01 30-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-23 Roland McGrath <roland@redhat.com>

* util.c [LINUX && SPARC]: Do renaming kludges around <asm/reg.h>
like signal.c does.
til.c
6ee7d1fc01196c6ee7ffbf062ac591a25c1e53da 24-Jan-2003 Roland McGrath <roland@redhat.com> .
hangeLog
8bcf35765dba20e83bf0667ea787cc6b89afab97 24-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-23 Roland McGrath <roland@redhat.com>

* linux/dummy.h [! SYS_getpmsg] (sys_getpmsg): #define to printargs.
[! SYS_putpmsg] (sys_putpmsg): Likewise.
inux/dummy.h
d2c642fbeb31fc85119d6462b1051e39dcb0742a 24-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-23 Roland McGrath <roland@redhat.com>

* linux/sparc/syscall.h: Declare sys_getdents64.
inux/sparc/syscall.h
8d276ff256b5806599845dbf3f77d87ac0629d47 24-Jan-2003 Roland McGrath <roland@redhat.com> .
hangeLog
de6e53308ca58da7d357f8114afc74fff7a18043 24-Jan-2003 Roland McGrath <roland@redhat.com> 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.
EWS
trace.c
4417fda9ba5ca52a7639b73e6fda41af6b372d2d 24-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-21 Roland McGrath <roland@redhat.com>

* 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.
trace.1
5bd7cf8545631b1e249b6a0ec80e7a5925a3c584 24-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-23 Roland McGrath <roland@redhat.com>

* process.c: Reorder includes to put sys/reg.h before linux/ptrace.h,
since they can conflict.
rocess.c
6a39c21335a389fc9441f1e829fd66e94578ff59 22-Jan-2003 Roland McGrath <roland@redhat.com> 4.4.93
hangeLog
ee06172f28848fc4f239275dcbe698173c4c3e91 22-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-21 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.4.93.
* strace.spec, debian/changelog: 4.4.93-1.
* strace.spec (Source0): Use strace-VERSION.tar.bz2 now.
EWS
onfigure.ac
ebian/changelog
trace.spec
b472e1ca0ad7b29c56fa087b08587e79ea961889 20-Jan-2003 Roland McGrath <roland@redhat.com> .
hangeLog
96dc5148ff0d74a44853431f4eb6b6143de3f71c 20-Jan-2003 Roland McGrath <roland@redhat.com> 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.
efs.h
yscall.c
08eee593ea7e9d4a3616bf1e5cbc36a3ce424353 20-Jan-2003 Roland McGrath <roland@redhat.com> .
hangeLog
7b3082206c5ea5ea41259c8b013138c6f6b6463a 20-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-20 Roland McGrath <roland@redhat.com>

* 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>.
til.c
b4968becdcf43529e5d29eb85c1372f4649e58a2 20-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-20 Roland McGrath <roland@redhat.com>

* 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.
rocess.c
9b0982b5d3b84c845192ad8b7ad822f81cf4743a 18-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-17 Anton Blanchard <anton@samba.org>

* util.c [LINUX] (setbpt): Handle SYS_vfork like SYS_fork.
til.c
2b157e74cf1d7083f3575a3b205f57fb566e1e61 18-Jan-2003 Roland McGrath <roland@redhat.com> .
hangeLog
9383c6c539af09303efe0a16dea55363b095f66e 18-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-17 Anton Blanchard <anton@samba.org>

* util.c [LINUX] (setbpt): Handle SYS_vfork like SYS_fork.
til.c
3f01abd618b3276afb26e81ea35f4148cb8aa910 18-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-17 Anton Blanchard <anton@samba.org>

* linux/syscall.h (SYS_socket_subcall): 256 also for POWERPC.
inux/syscall.h
ec4bd1370add48c1a80fe2319a61e29116b67fd1 15-Jan-2003 Roland McGrath <roland@redhat.com> .
hangeLog
de4047d394dae02f06cadf98a88cf664432ee5c4 15-Jan-2003 Roland McGrath <roland@redhat.com> 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>.
inux/powerpc/errnoent.h
inux/powerpc/ioctlent.h
55f45707e6b27fb70cbea7b89fc14e85cb780aaa 15-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-14 Roland McGrath <roland@redhat.com>

* 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.
inux/hppa/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/s390/syscallent.h
inux/sparc/syscallent.h
c6cc577089355345b5d6e6e70c8f0a8be55d5346 15-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-14 Roland McGrath <roland@redhat.com>

* io.c [LINUX] (sys_pread, sys_pwrite): Fix last change.
From Anton Blanchard <anton@samba.org>.
o.c
4a9b49a96f2109a85beaa030e10767aeef22991d 15-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-14 Roland McGrath <roland@redhat.com>

* strace.1: Update bug reporting info.
trace.1
1919161d41d51c0e15276f756ea716dec3142036 15-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-14 Roland McGrath <roland@redhat.com>

* resource.c [LINUX] (quotacmds): Grok new command encodings.
From Nathan Scott <nathans@debian.org>.
esource.c
bc78376efe021b514f07f3604cf230b58812c2f5 15-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-14 Roland McGrath <roland@redhat.com>

* linux/syscall.h (SYS_socket_subcall): Only 256 for S390, S390X.
All others at the moment use linux/syscallent.h, where it's 300.
inux/syscall.h
d7bec5093b22f5620764113dbfa8d55d081753da 14-Jan-2003 Roland McGrath <roland@redhat.com> .
hangeLog
d377f30556360285f314abea649a41f052b3690d 14-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-14 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.4.91.
* strace.spec, debian/changelog: 4.4.91-1
EWS
onfigure.ac
ebian/changelog
trace.spec
f775ab35fb6ebcb6574dde06221b2dc40793ead2 14-Jan-2003 Roland McGrath <roland@redhat.com> .
hangeLog
eb285359906700f46b22cf4f9911695034313736 14-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-14 Roland McGrath <roland@redhat.com>

* 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>.
onfigure.ac
rocess.c
ignal.c
yscall.c
til.c
92999db60bddbc925c7f702a6c897ad17d746739 14-Jan-2003 Roland McGrath <roland@redhat.com> .
hangeLog
5017d43bcb9509c49005a6be24a07adbe38501cd 14-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-14 Roland McGrath <roland@redhat.com>

* defs.h [_LARGEFILE64_SOURCE] (_LFS64_LARGEFILE): Define it.
* linux/syscallent.h: Use sys_getdents64, sys_truncate64,
sys_ftruncate64, instead of printargs, for those syscalls.
inux/syscallent.h
bf621d40c5ba196abc89fa7445f86a75791b4f1a 14-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-14 Roland McGrath <roland@redhat.com>

* 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.
rocess.c
e6d3a2957c2bae7bde8ecd638892adc89aac1346 14-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-14 Roland McGrath <roland@redhat.com>

* defs.h (ALIGN64): Fix defn for PPC, same as FreeBSD one.
* defs.h [_LARGEFILE64_SOURCE] (_LFS64_LARGEFILE): Define it.
* linux/syscallent.h: Use sys_getdents64, sys_truncate64,
sys_ftruncate64, instead of printargs, for those syscalls.
efs.h
8073179e985bdf460926cbaa91737d844e201f8c 14-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-14 Roland McGrath <roland@redhat.com>

* 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.
pc.c
e1df47ff9a7f3e1ed90969109258f2686f74ce0d 14-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-14 Roland McGrath <roland@redhat.com>

* 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.
til.c
4e25459c464e6b8f608d95ddc820a7bbe400f134 14-Jan-2003 Roland McGrath <roland@redhat.com> .
hangeLog
552cde2d5a567ebf515f6683d9892d50b0c2c7dc 14-Jan-2003 Roland McGrath <roland@redhat.com> 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.
onfig.guess
onfig.sub
nstall-sh
da5ad2d9436561e8bf9292ee54057ab94782ac57 14-Jan-2003 Roland McGrath <roland@redhat.com> .
hangeLog
f5c450d3c5353a74b0370b27594c70d3ad74ef47 14-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-13 Roland McGrath <roland@redhat.com>

* 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>.
efs.h
o.c
6e87ee0d5c9459d3c6c14050c6a59cba54ae8d45 14-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-13 Roland McGrath <roland@redhat.com>

* term.c [LINUX]: Get kernel definition of struct termios.
From Anton Blanchard <anton@samba.org>.
erm.c
c3ca0d80a59586c39803a75384e64e13424e8506 14-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-13 Roland McGrath <roland@redhat.com>

* net.c: HAVE_OPTHDR -> HAVE_STRUCT_OPTHDR
Reported by John Hughes <john@Calva.COM>.
et.c
6500d0af4337eac751387a30c0b1b9a6c865a590 14-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-13 Roland McGrath <roland@redhat.com>

* 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.
inux/powerpc/syscallent.h
a4168e578c2487d909188fa87252b443deb36043 14-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-13 Roland McGrath <roland@redhat.com>

* linux/ioctlent.sh: Look in sound/ directory too.
From Anton Blanchard <anton@samba.org>.
inux/ioctlent.sh
7388a26af8bd99563e6a1cdaf6736d99c92ae1a5 14-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-13 Roland McGrath <roland@redhat.com>

* linux/syscall.h [ARM] (SYS_socket_subcall): Set to 300.
inux/syscall.h
bb3af52962a322da7cb13966ae66ab9fa5b314d4 14-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-13 Roland McGrath <roland@redhat.com>

* ioctl.c (ioctl_decode) [POWERPC]: Decode term ioctls like Alpha.
From Anton Blanchard <anton@samba.org>.
octl.c
8f474e087ebb77b57eb87f4fdc557d53c64ca933 14-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-13 Roland McGrath <roland@redhat.com>

* strace.c [! HAVE_STRSIGNAL]: Clean up #ifdefs on decls for
sys_siglist and _sys_siglist.
Reported by John Hughes <john@Calva.COM>.
trace.c
81634e482ee9e5b6e6e23e58cb1ea4b7bbbf464f 14-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-13 Roland McGrath <roland@redhat.com>

* desc.c (printflock64): Fix ADDR argument type.
From Anton Blanchard <anton@samba.org>.
esc.c
6ef18edb5f6a91d953f697730fadaf21bdc650cb 14-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-13 Roland McGrath <roland@redhat.com>

* linux/powerpc/signalent.h: Add SIGRTMIN.
From Anton Blanchard <anton@samba.org>.
inux/powerpc/signalent.h
edcf1b0d12896863d376b3e30f4a0f01980999d6 10-Jan-2003 Roland McGrath <roland@redhat.com> .
hangeLog
1d847cf1d5d3283c3fee523e1b51bda27d536f97 10-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-10 Roland McGrath <roland@redhat.com>

* configure.ac, NEWS: Version 4.4.91.
* strace.spec, debian/changelog: 4.4.91-1
EWS
onfigure.ac
ebian/changelog
trace.spec
09b371c9790b4cba81666a64db1aff6681f89260 10-Jan-2003 Roland McGrath <roland@redhat.com> .
hangeLog
7f33cc3eb5ead7a79cae8c586e40d2f8b573eec1 10-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-10 Roland McGrath <roland@redhat.com>

* util.c [LINUX && X86_64] (arg0_offset, arg1_offset): Use correct
values for x86-64, conditional on current_personality.
til.c
944d10f8875e3e1a8b6c928061a8b455895ee254 10-Jan-2003 Roland McGrath <roland@redhat.com> .
hangeLog
e29341c02f4fb658a34bca1f36c5d587257970d6 10-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-10 Roland McGrath <roland@redhat.com>

* strace.c (droptcb): Clear flags word before calling rebuild_pollv.
trace.c
7686eee1d72e1d150f696890fd24ea9fa41383be 10-Jan-2003 Roland McGrath <roland@redhat.com> Fix output format of last change.
tream.c
03c5c4d37eb86f8d6b9df2db540b5a6530e70011 10-Jan-2003 Roland McGrath <roland@redhat.com> .
hangeLog
c012d223a6b915f06ef32b8aaa52b984015d192e 10-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-10 Roland McGrath <roland@redhat.com>

* strace.c (rebuild_pollv): Fix typo: struct poll -> struct pollfd.
trace.c
38dc6bb84fefe9e310177afe09cf37f88a2abb67 10-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-10 Roland McGrath <roland@redhat.com>

* configure.ac: Check struct T_conn_res for QUEUE_ptr or ACCEPTOR_id.
* stream.c (print_transport_message): Use #ifdefs for those members.
tream.c
acf06ef2e3e3b7f808c982cc86d402da981260bb 10-Jan-2003 Roland McGrath <roland@redhat.com> typo in last change
onfigure.ac
516f34994b5160f0821b5b1d98c2e46b541890d1 10-Jan-2003 Roland McGrath <roland@redhat.com> .
hangeLog
a7a0d38a4cb226b09df78060e649181cfc1f68b3 10-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-10 Roland McGrath <roland@redhat.com>

* configure.ac: Fix siginfo_t/sig_atomic_t checks.
Use prerequisite #include <netinet/in.h> for netinet/*.h checks.
onfigure.ac
ca16be8be9521b61bd2c5d945aa115519ebcb4da 10-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-10 Roland McGrath <roland@redhat.com>

* strace.c (pfd2tcb): Fix for new tcbtab type.
(rebuild_pollv): Likewise.
(detach): Put variables used under [LINUX] inside #ifdef.
trace.c
43b286f8cb8586acef62da1cbfa5e00d0ea4d427 10-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-10 Roland McGrath <roland@redhat.com>

* process.c (change_syscall) [POWERPC]: Add missing return.
* util.c [POWERPC] (arg0_offset): Set to 4*PT_R3, not 4*PT_ORIG_R3.
rocess.c
til.c
dcfcaf71b39282d6bc60b988a30fca5f8e43f70c 10-Jan-2003 Roland McGrath <roland@redhat.com> .
hangeLog
45aeb6e26d3735996c012744a518989212894f12 10-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-10 Roland McGrath <roland@redhat.com>

* configure.ac: Diddle CFLAGS after AC_PROG_CC, not before.
onfigure.ac
037124f9d2afd5b1a5fa0ce16fb75c94711c66f7 10-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-10 Roland McGrath <roland@redhat.com>

* 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.
ebian/changelog
ebian/control
ebian/rules
trace.spec
ea496213958acda8f8a407aebbd8c6f2cccb75b3 10-Jan-2003 Roland McGrath <roland@redhat.com> .
hangeLog
a03d2275f2dadacbf4bd4b3ba4b1cb42e253f3b7 10-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-09 Roland McGrath <roland@redhat.com>

* debian/control: Update Maintainer: field.
ebian/control
d38809b8bd82bbebad7da330398c07bf1a7d215e 10-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-09 Roland McGrath <roland@redhat.com>

* syscall.c (force_result) [S390 || S390X]: Fix typo.
yscall.c
5694e80e145c89c56cb297d3a4ce96979b0129a0 09-Jan-2003 Roland McGrath <roland@redhat.com> update
hangeLog
EWS
d81f1d9aac84cbed9d9dcde84fa44f8b1f9b6a66 09-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-08 Roland McGrath <roland@redhat.com>

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.
til.c
e85bbfe9ab55854cc3a6227d2f9001587fe64996 09-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-08 Roland McGrath <roland@redhat.com>

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.
rocess.c
trace.c
923f75011953091f1e0c5b734f7ff98f71f9791b 09-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-08 Roland McGrath <roland@redhat.com>

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.
efs.h
yscall.c
44f24c7b267082a7654ec8440f0e444346578ece 09-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-08 Roland McGrath <roland@redhat.com>

* Makefile.am (AM_CFLAGS): New variable, define to $(WARNFLAGS).
* Makefile.am (EXTRA_DIST): Remove debian/postinst and debian/prerm.
akefile.am
709ef619bfd7cf5bd0bda1cbb040d590aec3e4b7 09-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-08 Roland McGrath <roland@redhat.com>

* linux/x86_64/syscallent1.h (sys_oldlstat): #define as printargs.
inux/x86_64/syscallent1.h
ca16a404e210a4694c0cc29d1b17700163d9f4fe 09-Jan-2003 Roland McGrath <roland@redhat.com> 2003-01-08 Roland McGrath <roland@redhat.com>

* file.c [LINUX]: #undef st_[amc]time in case they are macros.
ile.c
136bbb1aeeba4bbbe954329920447b2b1de11f25 09-Jan-2003 Wichert Akkerman <wichert@deephackmode.org> Do not end summary with full stop
hangeLog
ebian/control
5a9b086cfe4d8fd744685dc6085712b241ffb34e 09-Jan-2003 Wichert Akkerman <wichert@deephackmode.org> No longer install postinst and prerm since /usr/doc symlink is no longer needed
hangeLog
ebian/control
ebian/postinst
ebian/prerm
ebian/rules
2850c7edcf390f930969df4ee816b37f665f6382 30-Dec-2002 Roland McGrath <roland@redhat.com> .
hangeLog
d97b2071cd2b09f092d6cf486f7f007e44728ea6 30-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-30 Roland McGrath <roland@redhat.com>

* Makefile.am (bin_SCRIPTS): New variable, list strace-graph.
(EXTRA_DIST): Add missing files.
akefile.am
41074c0b39c11dfec6e042a03c5cadb292f08ae7 30-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-30 Roland McGrath <roland@redhat.com>

* configure.ac: Fix asm/sigcontext.h check to include prerequisite.
onfigure.ac
9797cebddbb0b2ce2ed19ed31ffdbd25d1f860da 30-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-30 Roland McGrath <roland@redhat.com>

* 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.
yscall.c
692b68a316244c32eb2c93ef2c88a98870be9e65 30-Dec-2002 Roland McGrath <roland@redhat.com> .
hangeLog
fd3e0423000adbb2648b7d389a3d9d953b901ab3 30-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-30 Roland McGrath <roland@redhat.com>

* version.c (version): Make const, bump to 4.4.90.
* strace.c: Update decl.
trace.c
ersion.c
7daaace2640597ade2b96e6f2ccfdfaa311343b1 30-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-30 Roland McGrath <roland@redhat.com>

* 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.
akefile.am
inux/x86_64/Makefile.in
inux/x86_64/errnoent1.h
inux/x86_64/i386-headers.diff
inux/x86_64/ioctlent1.h
inux/x86_64/makeheaders.sh
inux/x86_64/signalent1.h
inux/x86_64/syscallent1.h
a83c22f1c6ffe0a79e389f207123359fd9870cc2 30-Dec-2002 Roland McGrath <roland@redhat.com> .
hangeLog
2746edd1850d7289c305ba7ec5cba9a4295d92f1 30-Dec-2002 Roland McGrath <roland@redhat.com> 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.
akefile.am
onfigure.ac
reebsd/Makefile.am
inux/Makefile.am
7e7f7703e576535d5f88ad69f2456f9dcde6027a 30-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-30 Roland McGrath <roland@redhat.com>

* linux/syscallent.h [X86_64]: Disable sanity checks, subcall stuff is
already broken for 32-bit personality on x86-64.
inux/syscallent.h
80964aaf26efc18a035a382e53beb4166b6611ac 30-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-29 Roland McGrath <roland@redhat.com>

* configure.ac, Makefile.am: Punt subdirs, handle everything here.
akefile.am
onfigure.ac
61bf7c201f77d155357be3069adbbb619233965a 30-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-29 Roland McGrath <roland@redhat.com>

* sunos4/Makefile.in: File removed.
* svr4/Makefile.in: File removed.
unos4/Makefile.in
vr4/Makefile.in
64f793ad3f22035ed28dc2fb9cda3fc085287428 30-Dec-2002 Roland McGrath <roland@redhat.com> Removed in automake update
akefile.in
cconfig.h
clocal.m4
utogen.sh
onfigure.in
30d47f10eb3c2789d5f4334ec4b5ad174d575a14 30-Dec-2002 Roland McGrath <roland@redhat.com> .
hangeLog
270b449179d4b6416726e60f2a615d6ec0837e02 30-Dec-2002 Roland McGrath <roland@redhat.com> 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.
inux/hppa/syscallent.sh
inux/powerpc/syscallent.sh
yscallent.sh
6d2b34971b33d379c89c36c5ad1b0c6d5d12c453 30-Dec-2002 Roland McGrath <roland@redhat.com> 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.
* 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_*
UTHORS
akefile.am
EADME-CVS
cinclude.m4
onfigure.ac
ile.c
et.c
trace.c
tream.c
e4d289013916c73187d461bb8f4b4010f6cf3f5a 30-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-29 Roland McGrath <roland@redhat.com>

* 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.
inux/hppa/Makefile.in
inux/ia64/Makefile.in
inux/s390/Makefile.in
inux/s390x/Makefile.in
ab708516461099b4a6fbd07130ab5c6110106a21 30-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-26 Roland McGrath <roland@redhat.com>

* 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>

* 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.
inux/Makefile.in
0318643c8b97561a7dc0fd87ad1befeb7ef0e5aa 30-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-22 Roland McGrath <roland@redhat.com>

* 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.
inux/x86_64/Makefile.in
e8d8952202a67b86c6552cafb140d284a9df45ad 30-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-26 Roland McGrath <roland@redhat.com>

* 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.
reebsd/Makefile.am
reebsd/i386/Makefile.am
reebsd/i386/Makefile.in
inux/Makefile.am
18e368f0e223bff6b8c8cd9d6ce69fd9f295db51 30-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-29 Roland McGrath <roland@redhat.com>

* 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-22 Roland McGrath <roland@redhat.com>

* 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.
inux/alpha/Makefile.in
inux/powerpc/Makefile.in
8596015a6ac7f29bfd90d3cdfbeb3a2f38ee7fe8 30-Dec-2002 Roland McGrath <roland@redhat.com> .
hangeLog
63d0146e83740af65b49b301772084c53c7d4598 30-Dec-2002 Roland McGrath <roland@redhat.com> 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>.
efs.h
044c8d2ceae0c0147b6b117356020d01044ff2ed 22-Dec-2002 Roland McGrath <roland@redhat.com> mention WNOHANG bug fix
hangeLog
EWS
df211904e03a1eefcebe0c0c8c4d1ee61d2aa8b0 22-Dec-2002 Roland McGrath <roland@redhat.com> 2.5 updates
hangeLog
09f0d1d4c48e19b84573f66e8c8edab79150a550 22-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-21 Roland McGrath <roland@redhat.com>

* 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.
inux/ia64/syscallent.h
inux/syscall.h
909875ba26c1ed466aa9b46d14a339500617690c 22-Dec-2002 Roland McGrath <roland@redhat.com> 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.
em.c
rocess.c
7a178afa704312d1b1244b6386e0b59182febf55 22-Dec-2002 Roland McGrath <roland@redhat.com> 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.
inux/syscallent.h
c25a62f1f871befa5ca1f2822142ac72c25cc9a2 22-Dec-2002 Roland McGrath <roland@redhat.com> WNOHANG fix
hangeLog
b69f81b8e552ab9ecdc5605887458adb0cb9542a 22-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-21 Roland McGrath <roland@redhat.com>

* 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.
rocess.c
yscall.c
f57204d839ba657e91a4007f4d85e1fa1dae5262 18-Dec-2002 Roland McGrath <roland@redhat.com> update
hangeLog
EWS
eddfb9e3cc15f2e56e2225f8096bcf7fd849e1fc 18-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-17 Roland McGrath <roland@redhat.com>

* linux/ia64/syscallent.h: Remove placeholders 275-298 to catch up
with linux/syscallent.h additions.
inux/ia64/syscallent.h
29f554f394fe076d082d5cd4be55565ca3c0fa83 18-Dec-2002 Roland McGrath <roland@redhat.com> update
hangeLog
ee9d435275fd7abf736992f84b5053ee16ec4fc7 18-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-17 Roland McGrath <roland@redhat.com>

* 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.
efs.h
rocess.c
trace.c
13f0b430417514d4c6a09073b66bbdbdefa426db 17-Dec-2002 Roland McGrath <roland@redhat.com> update
hangeLog
7508cb4678141d146d819120f6b5b428c103882e 17-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-17 Roland McGrath <roland@redhat.com>

* strace.c (detach) [LINUX]: Use __WALL (or a second try with __WCLONE)
in wait after sending SIGSTOP.
trace.c
a581c5144d79fdf847c30b2751c2098843828d82 17-Dec-2002 Roland McGrath <roland@redhat.com> update
hangeLog
a39c5a11b6706e950789fc223e8996cc970ac267 17-Dec-2002 Roland McGrath <roland@redhat.com> 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>.
ignal.c
915742f7975b2b11f862ed9ac5280e42bbfa1614 17-Dec-2002 Roland McGrath <roland@redhat.com> update
hangeLog
5bc05558bb9f9acd1f895ea128f3326ef4b03338 17-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-16 Roland McGrath <roland@redhat.com>

* 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.
trace.c
7ec1d3584b4caafd6c3634f0a41f90e85f25d42b 17-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-16 Roland McGrath <roland@redhat.com>

* process.c [LINUX] (wait4_options): Fix __WCLONE value. Add
__WNOTHREAD and __WALL.
rocess.c
7bf10474b981aa27f6b8c5b5e3f563d21f2eafca 16-Dec-2002 Roland McGrath <roland@redhat.com> Fix botched commit.
trace.c
32be5979b4895db18a9df1dc5a86d87850d47121 16-Dec-2002 Roland McGrath <roland@redhat.com> see ChangeLog for details
hangeLog
34e014ac7502357e599935c62c18cba564c451be 16-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-15 Roland McGrath <roland@redhat.com>

* configure.in: Don't check for putpmsg.
* stream.c (sys_getpmsg, sys_putpmsg): Make these conditional on
#ifdef SYS_*, rather than on HAVE_PUTPMSG.
onfigure.in
tream.c
1e85cf9cb1b0cf3773bbd361bce57379d30b4940 16-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-15 Roland McGrath <roland@redhat.com>

* 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>.
til.c
3bb9c3d3585bb08f0afb061839e0ea3792bfb41a 16-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-15 Roland McGrath <roland@redhat.com>

* process.c (setarg) [POWERPC]: Support it.
rocess.c
553a609807074e95eed5a0bffba334b7fb3d3751 16-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-15 Roland McGrath <roland@redhat.com>

* strace.c (main) [! USE_PROCFS]: Always reset SIGCHLD to SIG_DFL.
trace.c
2fe77226610d25f2628ceef38ceb7acfcc2eacdb 16-Dec-2002 Roland McGrath <roland@redhat.com> stat64 configure check fixed
hangeLog
e7bc4be67eb8ffdd9c51035bd1211f5ebbfed04d 16-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-15 Roland McGrath <roland@redhat.com>

* aclocal.m4 (AC_STAT64): Include <linux/types.h> before <asm/stat.h>
in test. Test our own #ifdef LINUX rather than predefined `linux'.
clocal.m4
36d87c2ffa2943f82885e5e9656de5e3977ffe58 16-Dec-2002 Roland McGrath <roland@redhat.com> Merged various Red Hat fixes
hangeLog
5c5aefdf3fb793ec48f61a653f850d22a3496bda 16-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-15 Roland McGrath <roland@redhat.com>

* linux/powerpc/syscallent.h: Use sys_llseek for _llseek.
* linux/sparc/syscallent.h: Likewise.
* linux/hppa/syscallent.h: Likewise.
* 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.
inux/powerpc/syscallent.h
2638cb435670dce7889e76715115810bc351abaf 16-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-15 Roland McGrath <roland@redhat.com>

* signal.c [LINUX && I386]: Provide SA_RESTORER constant if not
defined. If the bit is set, print the sa_restorer field of sigaction.
ignal.c
5b70e7c03c065dae8aaf1c0b79d431a7b921e0f2 16-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-15 Roland McGrath <roland@redhat.com>

* 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.
* 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.
inux/syscallent.h
c2aa4306a2cf58930e1492a29c0e41e885ce35f8 16-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-15 Roland McGrath <roland@redhat.com>

* linux/ia64/syscallent.h: Remove macros for sys_delete_module,
sys_nanosleep, both already in linux/dummy.h.
* 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.
inux/ia64/syscallent.h
761b5d790f0b75f5589825c6885562374c7432a3 16-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-15 Roland McGrath <roland@redhat.com>

* 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.
* syscall.c (trace_syscall): Use strerror, not sys_errlist/sys_nerr.
* syscall.c (get_scno): Move static `currpers' inside #ifdef X86_64.
(trace_syscall): Fix return without value.
yscall.c
59a9779ae52409ca7d80f39fdc73a4cbccc4c8a2 16-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-15 Roland McGrath <roland@redhat.com>

* linux/powerpc/syscallent.h: Use sys_llseek for _llseek.
* linux/sparc/syscallent.h: Likewise.
* linux/hppa/syscallent.h: Likewise.
inux/hppa/syscallent.h
inux/sparc/syscallent.h
5a223477e3f6d1badab5925e3da9dc6a2f20d949 16-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-15 Roland McGrath <roland@redhat.com>

* 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.
* 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.
rocess.c
186c5acdb9af627e0844cf82ed68d0da6dbe13de 16-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-15 Roland McGrath <roland@redhat.com>

* 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.
ile.c
o.c
67ecd63d02c1b692477f8006b7ee0c0165df332b 16-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-15 Roland McGrath <roland@redhat.com>

* linux/ia64/syscallent.h: Remove macros for sys_delete_module,
sys_nanosleep, both already in linux/dummy.h.
* 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.
inux/dummy.h
2c71e0da7e531494f4ea21f8b8e9730a26789154 16-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-15 Roland McGrath <roland@redhat.com>

* 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.
inux/syscall.h
e948faf94efd282b44a6e61666b27551a9629273 16-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-15 Roland McGrath <roland@redhat.com>

* desc.c (sys_osf_select): Add missing return type.
esc.c
34e4a6984c95cb6757c80e414e1116ee254075cf 16-Dec-2002 Roland McGrath <roland@redhat.com> 2002-12-15 Roland McGrath <roland@redhat.com>

* 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.
em.c
882eda809cc23387fe5072a53d7b19a8393c5b32 11-Nov-2002 Michal Ludvig <mludvig@suse.cz> 2002-11-09 Heiko Carstens <heiko.carstens@de.ibm.com>

Bugfix for s390/s390x:
* syscall.c: Fixed scno derivation for s390/s390x.
hangeLog
yscall.c
39c0e94935e8c332b0c51ef904fb08c6700f13b4 06-Nov-2002 Michal Ludvig <mludvig@suse.cz> Merged patch fixing MIPS build.
hangeLog
jm.c
ystem.c
81a3a9ad54954597978b945a2525e5a7b83c98d6 06-Nov-2002 Michal Ludvig <mludvig@suse.cz> Committed NEWS.
EWS
17f8fb3484e94976882f65b7a3aaffc6f24cd75d 06-Nov-2002 Michal Ludvig <mludvig@suse.cz> Added switch for printing only succeeding syscalls.
hangeLog
efs.h
trace.c
yscall.c
eb818f0af6bbe836440517ca100f71e55fc05923 09-Oct-2002 Michal Ludvig <mludvig@suse.cz> Added missing ChangeLog by Heiko Carstens.
REDITS
hangeLog
4995fb9398cbb6e99731bf9389c590b5a9f2d187 07-Oct-2002 Michal Ludvig <mludvig@suse.cz> 2nd part of s390/s390x port
inux/s390/Makefile.in
inux/s390/errnoent.h
inux/s390/ioctlent.h
inux/s390/signalent.h
inux/s390/syscallent.h
inux/s390x/Makefile.in
inux/s390x/errnoent.h
inux/s390x/ioctlent.h
inux/s390x/signalent.h
inux/s390x/syscallent.h
10a88d09ebe283d0dd2ba5deccfe50dc20ea5821 07-Oct-2002 Michal Ludvig <mludvig@suse.cz> 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.
hangeLog
akefile.in
cconfig.h
onfig.sub
onfigure.in
ile.c
inux/syscall.h
rocess.c
ignal.c
tream.c
yscall.c
til.c
c57fb8e410952223a72d474be8414ebfc63cc025 23-Sep-2002 Michal Ludvig <mludvig@suse.cz> Ignore autom4te.cache (from autoconf)
cvsignore
0e035502d28ef981636abde3139247e6fb2bfcce 23-Sep-2002 Michal Ludvig <mludvig@suse.cz> 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.
hangeLog
akefile.in
cconfig.h
onfigure.in
efs.h
ile.c
inux/syscall.h
inux/x86_64/Makefile.in
inux/x86_64/gentab.pl
inux/x86_64/i386-headers.diff
inux/x86_64/makeheaders.sh
inux/x86_64/syscallent.h
em.c
rocess.c
ignal.c
yscall.c
til.c
53b320f61f9c5f4278db227ed21db5a1937d58c3 23-Sep-2002 Michal Ludvig <mludvig@suse.cz> 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.
REDITS
hangeLog
EWS
onfigure.in
ile.c
inux/syscall.h
yscall.c
2c4e3a8061130493bd196564f096b677c5528fc1 24-May-2002 John Hughes <john@Calva.COM> fix unsigned arithmetic bug in previous change
hangeLog
et.c
tream.c
38ae88d332acd9f86a30d58158e306d795d98977 23-May-2002 John Hughes <john@Calva.COM> Improve tracing of timod ioctls
hangeLog
cconfig.h
clocal.m4
onfigure.in
efs.h
o.c
et.c
tream.c
cde80abad5fa4b2414d0177f228f65e2c7bdc6dd 23-May-2002 John Hughes <john@Calva.COM> Make autoheader happy about Linux/SuperH
hangeLog
cconfig.h
b664308560d655bc1fb333663eb0d0fb3395409f 23-May-2002 John Hughes <john@Calva.COM> Fix warning if not using POLL_HACK
hangeLog
trace.c
93f7fccaa60735509fd75ad22c8a97a8cd52f6bb 22-May-2002 John Hughes <john@Calva.COM> improve {set,get}sockopt
hangeLog
et.c
d870b3c31a0139b335a66a829169bacc74624c44 21-May-2002 John Hughes <john@Calva.COM> fix warning will POLL_HACK
hangeLog
trace.c
5eb78d5f7403ca282a028f924a17155172a1ac0f 17-May-2002 John Hughes <john@Calva.COM> cope with ioctl #defines with extraneous spaces
hangeLog
vr4/ioctlent.sh
e922478dd462520c3665a3d907491a30fd58b9df 17-May-2002 John Hughes <john@Calva.COM> cope with #ifdef protected #defines
hangeLog
vr4/ioctlent.sh
fd15cb31adf1c38c2b5524253a50e5646c7b08ce 17-May-2002 John Hughes <john@Calva.COM> tidy up decode of streams ioctls a little
hangeLog
tream.c
c61eb3dce2a87f8220c64404e9c2309f877da455 17-May-2002 John Hughes <john@Calva.COM> handle svr4 procpriv call
hangeLog
rocess.c
vr4/dummy.h
vr4/syscall.h
ccef63782c10d9ce9da77ef7530861a3d14b1300 01-May-2002 Wichert Akkerman <wichert@deephackmode.org> Merge patch from Greg Banks for Linux/SuperH support
REDITS
hangeLog
onfigure.in
efs.h
rocess.c
ock.c
yscall.c
til.c
822f0c9a84a4c992cc126766c83726e7275a5572 03-Apr-2002 Wichert Akkerman <wichert@deephackmode.org> Fix closing of outputfiles in droptcb()
trace.c
eb8ebdad122a20ecae0ce8e3e60cb71d8e4a7152 01-Apr-2002 Wichert Akkerman <wichert@deephackmode.org> close tcp->outf in droptcb()
hangeLog
trace.c
b0c598ff8d03a57627a5335448a8a60f0950f4f7 01-Apr-2002 Wichert Akkerman <wichert@deephackmode.org> decode packet options
hangeLog
et.c
b292d27f6fcd34aad18ee4bc50dbfec91ab54467 31-Mar-2002 Wichert Akkerman <wichert@deephackmode.org> Update for cvsbuild rename
EADME-CVS
ed2c74d3cc5f4e5e4d0dab6e52d92466b94283e3 31-Mar-2002 Wichert Akkerman <wichert@deephackmode.org> Regenrated Linus ioctlent.h files
hangeLog
87210eadb44f25d5093b7a52baed5ad624e4663a 31-Mar-2002 Wichert Akkerman <wichert@deephackmode.org> Regenerated
inux/alpha/ioctlent.h
inux/hppa/ioctlent.h
inux/ia64/ioctlent.h
inux/mips/ioctlent.h
inux/powerpc/ioctlent.h
inux/sparc/ioctlent.h
ec85fa103ce6b2daed04e959a12c3d4dcc1d9530 31-Mar-2002 Wichert Akkerman <wichert@deephackmode.org> Update hppa syscalls
inux/hppa/syscallent.h
inux/syscall.h
235b0ff516c1d2dd7f138faa3f0f96acdcde1527 31-Mar-2002 Wichert Akkerman <wichert@deephackmode.org> Rename cvsbuild to autogen.sh
hangeLog
utogen.sh
vsbuild
4527dae3b8c2041831d55193f7aa6cae70ea4704 31-Mar-2002 Wichert Akkerman <wichert@deephackmode.org> check for negative u_errors
hangeLog
yscall.c
7ab47b63e3d58dfbe32ba909b222c1bc2a88c5c0 31-Mar-2002 Wichert Akkerman <wichert@deephackmode.org> Fix signed/unsigned problems
hangeLog
efs.h
ile.c
o.c
0fddf434f3a7c6a18522643ce01c7454350a0a30 31-Mar-2002 Wichert Akkerman <wichert@deephackmode.org> Fix typo, add (unimplemented in kernel) stream syscalls
inux/syscallent.h
d321ff95f2c077d8e2fcecda210cbbcd4f2005c1 31-Mar-2002 Wichert Akkerman <wichert@deephackmode.org> Add Debian packaging setup
hangeLog
ebian/.cvsignore
ebian/changelog
ebian/control
ebian/copyright
ebian/postinst
ebian/prerm
ebian/rules
46e558b37f5c8f55bb1d37baafb184758290991f 31-Mar-2002 Wichert Akkerman <wichert@deephackmode.org> update copyright
OPYRIGHT
8b8ff7c7800c70393c03b1a806be6daec6a0e068 27-Dec-2001 Wichert Akkerman <wichert@deephackmode.org> Add new TCP socket options
hangeLog
et.c
fa519575fdd3b1bb13f307b819869d97b50812ba 26-Oct-2001 John Hughes <john@Calva.COM> don't lose ioctls if comment spans 2 lines
hangeLog
vr4/ioctlent.sh
9fbd0dd3b62a0a58d55a5071310a6ab8a9eaaa75 26-Oct-2001 Wichert Akkerman <wichert@deephackmode.org> regenerated ioctlent.h using current scripts so term ioctls are included
hangeLog
inux/ioctlent.h
19e49984acc8f12dfaf0b7835ad17ca24f854c47 19-Oct-2001 John Hughes <john@Calva.COM> only trace syscalls/signals/faults of interest
hangeLog
trace.c
c0c5ac850a452ec4c6f8ce12caaf9ae8b7894adb 19-Oct-2001 John Hughes <john@Calva.COM> Merge SVR4/Linux printsiginfo
hangeLog
5826589d8e210c2d34c8ce496d5b7a0f54188ef0 18-Oct-2001 John Hughes <john@Calva.COM> Merge SVR4/Linux printsiginfo
cconfig.h
clocal.m4
onfigure.in
efs.h
rocess.c
ignal.c
trace.c
2d8b2c587152bfa3408d4920f07cbb865fd36dff 18-Oct-2001 John Hughes <john@Calva.COM> handle return values for ssisys on NSC
hangeLog
ystem.c
421620897008f94f44475286d92c8723dcaf4368 18-Oct-2001 John Hughes <john@Calva.COM> handle sigwait on svr4
hangeLog
ignal.c
vr4/dummy.h
vr4/syscall.h
0aadba459035fba110f77f44d0ea9f2b9f447baa 16-Oct-2001 John Hughes <john@Calva.COM> Decode some ssisys args on NSC
hangeLog
ystem.c
aca07f3d18014509eaa1b51890d5f1c2976ac2c3 16-Oct-2001 John Hughes <john@Calva.COM> Implement memcntl for UnixWare
hangeLog
em.c
vr4/dummy.h
9cecf7f8d6115a247be7186013857270b2d588d5 16-Oct-2001 John Hughes <john@Calva.COM> Fix umovestr of unmapped page for UnixWare
hangeLog
til.c
7b3346be42d6a1f539e95d385ee498f8b3c529f8 10-Oct-2001 Wichert Akkerman <wichert@deephackmode.org> Import lots of ia64 related changes from David Mosberger
hangeLog
jm.c
efs.h
esc.c
ile.c
inux/ia64/Makefile.in
inux/ia64/ioctlent.h
inux/ia64/syscallent.h
inux/ioctlent.sh
inux/syscall.h
rocess.c
esource.c
ignal.c
trace.c
yscall.c
til.c
a2278146b07066567521617158c5284a585668c9 28-Sep-2001 John Hughes <john@Calva.COM> fix display of ptrace args on FreeBSD
hangeLog
rocess.c
1fcb1d64ed13836334d100af9412f220efa1bbfa 18-Sep-2001 John Hughes <john@Calva.COM> fix sockaddr display
hangeLog
et.c
08b8f708530166d53a939875cef855a1e8bf31b1 19-Aug-2001 Wichert Akkerman <wichert@deephackmode.org> Update version number to 4.4
ersion.c
d22c4a11549ff5690bcb51880b0415c49b5893ac 19-Aug-2001 Wichert Akkerman <wichert@deephackmode.org> Add NEWS section for 4.4 release
EWS
67e3e6352a37026098019ed61e471e34b33207d4 19-Aug-2001 Wichert Akkerman <wichert@deephackmode.org> do not include asm/sigcontext.h on Linux/IA64 since it gets the struct from bits/sigcontext.h already which signal.h includes
hangeLog
ignal.c
7c707a73e1faa318a2dbfbaeb9390fe84e72ddbc 03-Aug-2001 Wichert Akkerman <wichert@deephackmode.org> Add ioctl changes
hangeLog
b2c12f37f872483280e61d68f30a46e1a83495d8 03-Aug-2001 Wichert Akkerman <wichert@deephackmode.org> Add copyright notice
inux/ioctlent.sh
c6c1ea5440ca78e9fab99d7f3e18a54ba4d7b7f0 03-Aug-2001 Wichert Akkerman <wichert@deephackmode.org> Copyright update
octl.c
6453d585d15b4315f365f955dde334097e4e781f 03-Aug-2001 Wichert Akkerman <wichert@deephackmode.org> Regenerated
inux/errnoent.h
inux/ioctlent.h
inux/signalent.h
1c595a437d9a610b45b46da20be77aecd06e9d76 03-Aug-2001 Wichert Akkerman <wichert@deephackmode.org> remember to shift ioctl masks as well
octl.c
b50c90745809da023afe793f9ce19f39d5ca88ce 03-Aug-2001 Wichert Akkerman <wichert@deephackmode.org> change regexps so we catch sound ioctls as well in Linux
inux/ioctlent.sh
ac2a9283ec2accafa89eaba83d89c3c72725b31a 03-Aug-2001 Wichert Akkerman <wichert@deephackmode.org> fix a few things so the ioctl list is generated
inux/Makefile.in
cd6aefcebcdd540a370f7812c97ed5135402d6a2 03-Aug-2001 Wichert Akkerman <wichert@deephackmode.org> synchronize section for fcntl and use sys_fcntl for sys_fcntl as well
hangeLog
inux/hppa/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/syscallent.h
77ed07c4c462dc0b23f1b371169a51274a21a20d 03-Aug-2001 Wichert Akkerman <wichert@deephackmode.org> Add
inux/hppa/syscallent.h
0b1120afb96a2c76a6b0349a970a37095f73ca58 03-Aug-2001 Wichert Akkerman <wichert@deephackmode.org> linux/hppa syscall updates
hangeLog
inux/hppa/syscallent.h
82b162ee2d375dffaa2f0d663706c62d1ebda4f6 03-Aug-2001 Wichert Akkerman <wichert@deephackmode.org> seems Linux/IA64 changed register names on us, switch to using new names
hangeLog
rocess.c
54b4f79216c819ec93aaf5031acb1772fccef7a9 03-Aug-2001 Wichert Akkerman <wichert@deephackmode.org> set CLOEXEC flag for outputfile
hangeLog
trace.c
7b96b57b7d6e1a3b2b1d9be428c3ff70b7769f8b 03-Aug-2001 Wichert Akkerman <wichert@deephackmode.org> Add a few LFS syscalls for Linux/sparc
hangeLog
inux/sparc/syscall.h
inux/sparc/syscallent.h
4f1bbbe74f9dc2723bff6e1028d3aa6c3ca85b6d 23-Jul-2001 Wichert Akkerman <wichert@deephackmode.org> Support cross-compiling between architectures
hangeLog
onfigure.in
01250b2cc0168b5c63fad0fff9e8406c7733a226 14-Jul-2001 Wichert Akkerman <wichert@deephackmode.org> Add S390 to architecture list
hangeLog
0dc4fc93d157123faa36cf90948e8d4fd96c82f0 14-Jul-2001 Wichert Akkerman <wichert@deephackmode.org> Add S390 to architecture list
hangeLog
onfigure.in
1d08dcf46dd4b2cfe3e27723c05b0aec9955c591 10-Jul-2001 John Hughes <john@Calva.COM> Merge iov fixes from Richard Kettlewell
hangeLog
ODO
efs.h
o.c
et.c
trace.c
yscall.c
til.c
688c7fc3e70b67121d56d423f1c5d79829239a6e 02-Jul-2001 Wichert Akkerman <wichert@deephackmode.org> Update config.sub and config.guess
hangeLog
onfig.guess
onfig.sub
70c5e7aa48c4f4c22bbc3396f8b2279c76e9cfba 15-May-2001 John Hughes <john@Calva.COM> printcontext should pass sigmask addr to printsigmask
hangeLog
ignal.c
aa09c6b01ee425d419cdae4389fad0a06da489ef 15-May-2001 John Hughes <john@Calva.COM> Don\'t run off end of memory in umovestr when USE_PROCFS
hangeLog
til.c
4e36a8151bccaba338bf8513a367d287d193f524 18-Apr-2001 John Hughes <john@Calva.COM> Handle fork1/forkall on uw, handle rfork1,rforkall,rexecve and ssisys on uw non-stop-clusters
hangeLog
onfigure.in
rocess.c
vr4/dummy.h
vr4/syscall.h
yscall.c
ystem.c
3525440544c0bad31a786a476a21ff15d010175e 12-Apr-2001 Wichert Akkerman <wichert@deephackmode.org> Add todays changes
hangeLog
8f7f0a2d56592a7c6c6ccf58b54799347d50c39f 12-Apr-2001 Wichert Akkerman <wichert@deephackmode.org> Add Ganesan Rajagopal
REDITS
d5c2daef10de69002c6ab34bdcf1b707da2097b6 12-Apr-2001 Wichert Akkerman <wichert@deephackmode.org> switch to using /proc/<pid>/status on Linux
ignal.c
8d15e210fdbbe03246f8a38d5c41555d5b959ce9 12-Apr-2001 Wichert Akkerman <wichert@deephackmode.org> Update syscall list
inux/powerpc/syscallent.h
5c4c69bc80874a0340d290b562db73d755e39129 12-Apr-2001 Wichert Akkerman <wichert@deephackmode.org> Fix wrong cast in powerpc code
rocess.c
7a90acaf2be1b3bd549bc0c2b1cf56ada4cecfc4 12-Apr-2001 Wichert Akkerman <wichert@deephackmode.org> fix mailinglist address
EADME
42080d852e2dc0ef3eb507ef561e91cc97cff515 10-Apr-2001 Wichert Akkerman <wichert@deephackmode.org> add more configure tests for system headers
hangeLog
onfigure.in
tream.c
4ca3109a03ad7d853050eb5668db3df92a6749aa 10-Apr-2001 Wichert Akkerman <wichert@deephackmode.org> Merge MIPS patches from Maciej W. Rozycki
hangeLog
3472dd562cdd6ce04fa1c26e2ef8bf2d2b29f95e 10-Apr-2001 Wichert Akkerman <wichert@deephackmode.org> improve formating for sys_sysmips
ystem.c
74842453c58ffb1a331fd39314eb6abac34ee361 10-Apr-2001 Wichert Akkerman <wichert@deephackmode.org> fix some syscall names
inux/mips/syscallent.h
352ce8255d5de7ea0b067807c1f0487f507925e6 10-Apr-2001 Wichert Akkerman <wichert@deephackmode.org> update syscall list
inux/mips/syscallent.h
75c422b3a8c2eecc403f14a00e14f7675149dd07 10-Apr-2001 Wichert Akkerman <wichert@deephackmode.org> add code to print PC for MIPS
til.c
e70bbe533a30ce6429927b0b852778a44ccae70b 07-Apr-2001 Wichert Akkerman <wichert@deephackmode.org> note we are working on 4.3.1 now
hangeLog
EWS
ersion.c
3c935437d5af373eb6f05b4780c2e08840e55b29 07-Apr-2001 Wichert Akkerman <wichert@deephackmode.org> fix small display error for sys_sysmips
ystem.c
3f389c49dbec6f115bf1f43902965d0836dea1ac 07-Apr-2001 Wichert Akkerman <wichert@deephackmode.org> Fix another typo
ystem.c
d6b924937038457f83b47b26b9163bdfbdc230f2 07-Apr-2001 Wichert Akkerman <wichert@deephackmode.org> use asm/sysmips.h and linux/utsname.h if they exist
fix some silly typos in mips sections
hangeLog
onfigure.in
inux/syscall.h
ystem.c
b07296aaa1b2907af036ad419ba2974d94c5ec25 01-Apr-2001 Wichert Akkerman <wichert@deephackmode.org> Updated
EWS
4f043ec2f8b8c68f77e901d91c52155617642db0 31-Mar-2001 Wichert Akkerman <wichert@deephackmode.org> regenerate linux/mips ioctl list
hangeLog
inux/mips/ioctlent.h
8aada67e50c16685e5d5a6552ef5d781d2b55712 31-Mar-2001 Wichert Akkerman <wichert@deephackmode.org> regenerate ioctl list
hangeLog
inux/ia64/ioctlent.h
cf7156792ab23d21dc0bb313d03bfb8a2a153edf 31-Mar-2001 Wichert Akkerman <wichert@deephackmode.org> Removed since we can use the general Linux copy
hangeLog
inux/alpha/ioctlent.sh
inux/ia64/ioctlent.sh
inux/powerpc/ioctlent.sh
29f0d05cee0805346e1f3372fc0d67e5a3c3d761 31-Mar-2001 Wichert Akkerman <wichert@deephackmode.org> add dir variable to set location of kernel includes
hangeLog
inux/ioctlent.sh
00cd74c6fe78da6ed95f3108a95d683f96418c48 30-Mar-2001 Wichert Akkerman <wichert@deephackmode.org> Update Linux/ia64 ioctl list
hangeLog
inux/ia64/ioctlent.h
386fcd060559eb4b343e3c38b6583d8866446ee0 29-Mar-2001 Wichert Akkerman <wichert@deephackmode.org> cleanup includefilenames in ioctl lists
inux/alpha/ioctlent.h
inux/hppa/ioctlent.h
inux/powerpc/ioctlent.sh
inux/sparc/ioctlent.h
10767789bc5fd68ac7363d0cf7df9dc217d5e356 29-Mar-2001 Wichert Akkerman <wichert@deephackmode.org> Updated linux/powerpc ioctl list
hangeLog
inux/powerpc/ioctlent.h
d7fb20677be9b1bdb1623095f76287c076f97876 29-Mar-2001 Wichert Akkerman <wichert@deephackmode.org> update linux/hppa ioctllist
hangeLog
inux/hppa/ioctlent.h
bbf59e94741a25111fc311f6d55b50c9f2ef67c2 29-Mar-2001 Wichert Akkerman <wichert@deephackmode.org> update linux/alpha ioctllist
hangeLog
inux/alpha/ioctlent.h
00a82eed2b1b7989a8659390c23b8a87425f235d 28-Mar-2001 Wichert Akkerman <wichert@deephackmode.org> several Linux/sparc fixes
hangeLog
onfigure.in
inux/sparc/syscall.h
rocess.c
ignal.c
yscall.c
fe8f65dde2efe573861e6fd4a5e2f17f16ea6424 28-Mar-2001 Wichert Akkerman <wichert@deephackmode.org> update Linux/sparc ioctl list
hangeLog
inux/sparc/ioctlent.h
2f1d87e74ff68004b99901f964a1cbab89da09db 28-Mar-2001 Wichert Akkerman <wichert@deephackmode.org> use __WALL for wait4 if we can
hangeLog
trace.c
8ab1a3c7ac45ad9f059fa17d7643e2691c0a4904 28-Mar-2001 Wichert Akkerman <wichert@deephackmode.org> fix typo
hangeLog
b8a85a49ae738655cec81bd9e7bcb0bd6f5c9442 28-Mar-2001 John Hughes <john@Calva.COM> Check for endianness of long long
hangeLog
cconfig.h
clocal.m4
onfigure.in
efs.h
6156357814ce751cb0e82a88a4824c931b2e3d62 27-Mar-2001 John Hughes <john@Calva.COM> Fix compile errors with SCO UDK compiler
hangeLog
et.c
072ea8ada088023c7b622b00fc6b59b8d2844422 27-Mar-2001 Wichert Akkerman <wichert@deephackmode.org> retro-actively mention Linux/hppa support in the changelog
hangeLog
8e075fbbda35fd04367d7361c23615e7c6198f09 27-Mar-2001 John Hughes <john@Calva.COM> Fix bad merge of solaris patch
hangeLog
vr4/syscallent.h
c1652e2095fcd9ac62cf2669ef6aec5fd0052851 27-Mar-2001 Wichert Akkerman <wichert@deephackmode.org> Add Linux/hppa port, patch from Richard Hirst
REDITS
EWS
cconfig.h
onfigure.in
efs.h
ile.c
inux/hppa/.cvsignore
inux/hppa/Makefile.in
inux/hppa/errnoent.h
inux/hppa/ioctlent.h
inux/hppa/signalent.h
inux/hppa/syscallent.h
inux/hppa/syscallent.sh
inux/syscall.h
rocess.c
ignal.c
yscall.c
til.c
e3bf56a9de9b2feda1b40d9dc1b55926ffd62638 19-Mar-2001 Wichert Akkerman <wichert@deephackmode.org> add getdents64 and fcntl64 (not decoded yet)
hangeLog
inux/syscallent.h
6f2bbe219b8ff49bb5c4466f1d2eea435fdff9a2 19-Mar-2001 Wichert Akkerman <wichert@deephackmode.org> update config.guess
hangeLog
onfig.guess
407be9a2a413271ea5edf1a7a424088a23d76422 19-Mar-2001 Wichert Akkerman <wichert@deephackmode.org> Update Linux/mips syscall table
hangeLog
inux/mips/syscallent.h
e2613b4c7c007bf124522937c4f3d6a45054bf38 17-Mar-2001 Wichert Akkerman <wichert@deephackmode.org> Add Linux ioctlsort
inux/ioctlsort.c
a966785753cbabaf44b39c75d387adf423e44caa 17-Mar-2001 Wichert Akkerman <wichert@deephackmode.org> Implement new way to get the ioctl list for Linux: instead of
trying to #include every possible kernel header grab all the relevant
#defines from them and use those directly.
hangeLog
EWS
octl.c
octlsort.c
inux/.cvsignore
inux/Makefile.in
inux/ioctlent.h
inux/ioctlent.sh
cf1de759ed0bc7b83665beeb4953b6b37e9e186d 08-Mar-2001 John Hughes <john@Calva.COM> cope with FreeBSD compatability syscalls
hangeLog
reebsd/i386/syscall.h
reebsd/i386/syscallent.h
reebsd/syscalls.pl
c0fc3fd077de3ba606a58d6be8823025482a6762 08-Mar-2001 John Hughes <john@Calva.COM> replace some #if FREEBSD by #if HAVE_ST_xxx
hangeLog
cconfig.h
clocal.m4
onfigure.in
ile.c
0c79e01d74a05476f90eb4815882181fecabe3f5 08-Mar-2001 John Hughes <john@Calva.COM> replace wimpy get64 by powerful LONG_LONG :-)
hangeLog
efs.h
ile.c
o.c
em.c
70623be853b5524d87d980ac3d611b11890800ea 08-Mar-2001 John Hughes <john@Calva.COM> Use configure to detect 64bit off_t and rlim_t
hangeLog
cconfig.h
clocal.m4
onfigure.in
esc.c
ile.c
reebsd/i386/syscall.h
reebsd/i386/syscallent.h
reebsd/syscalls.print
o.c
em.c
esource.c
b8c9f77c6d2d9350d26705ff6b200e54d1ca66cc 07-Mar-2001 John Hughes <john@Calva.COM> FreeBSD uses 64 bit off_t, fix stat&fcntl(flock)
hangeLog
esc.c
ile.c
reebsd/i386/syscall.h
reebsd/i386/syscallent.h
reebsd/syscalls.print
e2f6d87d5820c3912efe354599716eee013be345 07-Mar-2001 John Hughes <john@Calva.COM> add missing bit of solaris patches
hangeLog
ile.c
9dec06c03463f160d26b020e4345d3b8a6d41841 07-Mar-2001 John Hughes <john@Calva.COM> minor svr4 fixes
hangeLog
vr4/dummy.h
vr4/syscallent.h
5a826b8427383232940249ca16f543178fbeeba4 07-Mar-2001 John Hughes <john@Calva.COM> Fix off_t args on FreeBSD
hangeLog
efs.h
ile.c
reebsd/i386/syscall.h
reebsd/i386/syscallent.h
reebsd/syscalls.print
o.c
em.c
7737c8ad9de625c4e1dce0f06389905d950a6ad7 07-Mar-2001 John Hughes <john@Calva.COM> Implement truncate64 & ftruncate64 for them that wants 'em
hangeLog
c524990dec72221308b210318635ddac38e7ced8 07-Mar-2001 John Hughes <john@Calva.COM> Fix for freebsd 4.1
hangeLog
bb557236e730b8db5f7815aa554eeb310d754662 07-Mar-2001 John Hughes <john@Calva.COM> Fix for freebsd 4.1
hangeLog
cb8b69d7c0fba840579d77fe376cac3cb55c98fa 07-Mar-2001 John Hughes <john@Calva.COM> Merge Harald B�hme's solaris patches
hangeLog
bc4935a721bf45a1bfd265b35a6c99ed83d9d288 07-Mar-2001 John Hughes <john@Calva.COM> Fixup unimplemented UW syscalls
hangeLog
c8f2e8a4ac1bb1926e6e7499322f7b1142939034 07-Mar-2001 John Hughes <john@Calva.COM> Use pr_syscall on UW
hangeLog
091fe83115bcd16c01fb27218e165e6c205049a1 07-Mar-2001 John Hughes <john@Calva.COM> fix stat64 on UW
hangeLog
95ea9c0a68cafa854df26a7b2f52aceed556481c 07-Mar-2001 John Hughes <john@Calva.COM> fix compile on UW
hangeLog
96f5147037554b188575d215d840f594a457afa9 06-Mar-2001 John Hughes <john@Calva.COM> Implement truncate64 & ftruncate64 for them that wants 'em
ile.c
vr4/dummy.h
vr4/syscall.h
3deafe28658c7727b2b821d41b26d21a8f48aa04 06-Mar-2001 John Hughes <john@Calva.COM> Fix for freebsd 4.1
reebsd/syscalls.pl
61eeb55be47ab952bc1c01682670066cf7a79e99 06-Mar-2001 John Hughes <john@Calva.COM> Fix for freebsd 4.1
yscall.c
bdf48f55f264a9cd2eb1b3cac8f1f87c1acad008 06-Mar-2001 John Hughes <john@Calva.COM> Merge Harald B�hme's solaris patches
onfigure.in
efs.h
esc.c
ile.c
o.c
em.c
et.c
esource.c
ignal.c
vr4/dummy.h
vr4/syscall.h
vr4/syscallent.h
yscall.c
8ba4b3fc8c7baf1212d4eb2dc0e9312c14d1010d 06-Mar-2001 John Hughes <john@Calva.COM> Fixup unimplemented UW syscalls
vr4/dummy.h
vr4/syscall.h
vr4/syscallent.h
252997128dcb73565fc95d6a22b60079c11005c6 06-Mar-2001 John Hughes <john@Calva.COM> Use pr_syscall on UW
clocal.m4
efs.h
yscall.c
8fe2c989867d7ce4fe8ba0e05266e6195488928d 06-Mar-2001 John Hughes <john@Calva.COM> fix stat64 on UW
clocal.m4
ile.c
1e4cb3466230aa8b4f2e8e8936b240c7b98db486 06-Mar-2001 John Hughes <john@Calva.COM> fix compile on UW
et.c
ignal.c
fa30618c22c58ca26d9cb89bd297197ed99cc30f 21-Feb-2001 Wichert Akkerman <wichert@deephackmode.org> Fix format for Unix domain sockets
hangeLog
et.c
0cbfb324b54e4c5859c76dd132a7ad942c0f5e77 19-Feb-2001 Wichert Akkerman <wichert@deephackmode.org> Add sys_sysmips decoding
hangeLog
inux/mips/syscallent.h
inux/syscall.h
ystem.c
f185065a405794eaf6abc0dcf8345d9e6aa882f7 16-Feb-2001 Wichert Akkerman <wichert@deephackmode.org> add support for IPv6 scope ids
REDITS
hangeLog
EWS
cconfig.h
clocal.m4
onfigure.in
et.c
edf2dcc259cccb5788fb94aa828d9a77c1c96da8 16-Feb-2001 Wichert Akkerman <wichert@deephackmode.org> Use @bindir@ and @mandir@
hangeLog
akefile.in
8c7122c9519dfd46ea7c8c026eab6f7aed74cf21 16-Feb-2001 Wichert Akkerman <wichert@deephackmode.org> Test for netinet/tcp.h and udp.h and use those
hangeLog
onfigure.in
efs.h
et.c
efdecacc5d7f91c17adb7cdb1dd7306ea6d22c9f 26-Nov-2000 Wichert Akkerman <wichert@deephackmode.org> fix formating error in sys_setsockopt
add list of socketlayers and use that for [gs]etsockopt
hangeLog
et.c
d856b99aff36012d1c8bc72012d0ede414e17971 13-Oct-2000 Wichert Akkerman <wichert@deephackmode.org> FreeBSD updates, make things compile on Linux 2.2 kernels
hangeLog
tream.c
ime.c
2e4ffe59b588159eb80e236f068278ba47735932 04-Sep-2000 Wichert Akkerman <wichert@deephackmode.org> more FreeBSD updates
REDITS
hangeLog
efs.h
et.c
rocess.c
trace.c
erm.c
10b9cfbbe4f1996c8ff1ac7931626603f5133dc8 04-Sep-2000 Wichert Akkerman <wichert@deephackmode.org> add clone
est/.cvsignore
b8b0b0d3d792b4f4609ca698e8e2c6f64ff18c97 03-Sep-2000 Wichert Akkerman <wichert@deephackmode.org> update ChangeLog
hangeLog
9b0c31d663e51a98383f83521f4b6081986ee47c 03-Sep-2000 Wichert Akkerman <wichert@deephackmode.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
hangeLog
ile.c
rocess.c
est/clone.c
f75a9ab4318ee9bf6a91c337a363e6e3f623aa4c 01-Sep-2000 Wichert Akkerman <wichert@deephackmode.org> Add FreeBSD support
EADME-freebsd
reebsd/i386/.cvsignore
reebsd/i386/Makefile.in
reebsd/i386/errnoent.h
reebsd/i386/ioctlent.h
reebsd/i386/signalent.h
reebsd/i386/syscall.h
reebsd/i386/syscallent.h
bf79f2e16b090ffe59cd1e1820935680a2da7b78 01-Sep-2000 Wichert Akkerman <wichert@deephackmode.org> Add FreeBSD support
REDITS
hangeLog
akefile.in
cconfig.h
onfigure.in
efs.h
ile.c
reebsd/.cvsignore
reebsd/ioctlent.sh
reebsd/syscalls.cat
reebsd/syscalls.pl
reebsd/syscalls.print
o.c
octl.c
pc.c
em.c
et.c
roc.c
rocess.c
esource.c
ignal.c
trace.c
tream.c
yscall.c
ystem.c
erm.c
til.c
d077c451cd94c49ca508e1082a85cd042c0e7398 10-Aug-2000 Wichert Akkerman <wichert@deephackmode.org> Handle change in Linux 2.4.0-test6 stat structure
hangeLog
ile.c
16a03d2e97415afe6cf34172a0aea97a95a0b160 10-Aug-2000 Wichert Akkerman <wichert@deephackmode.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
hangeLog
cconfig.h
clocal.m4
onfigure.in
efs.h
ile.c
et.c
ignal.c
trace.c
vr4/dummy.h
vr4/syscall.h
vr4/syscallent.h
yscall.c
ystem.c
est/clone.c
e381610a008714838053fdb9ca9b6b9bdeeaa8e4 01-Aug-2000 Ralf Baechle <ralf@linux-mips.org> Implement setargs for MIPS.
rocess.c
255b89a92f2ab75d262a091a3250c3a059f30778 31-Jul-2000 Ralf Baechle <ralf@linux-mips.org> Linux/MIPS doesn't pass mmap argument in a structure like Intel.
inux/mips/syscallent.h
7987cdf192632516d6ba493b0a9943f5a3a7c362 05-Jul-2000 Wichert Akkerman <wichert@deephackmode.org> net.c: add SOL_PACKET and SOL_RAW socket options, update SOL_IP and SOL_TCP
hangeLog
EWS
onfigure.in
et.c
trace.c
43a7482edbc7142b91e95d7aedeb9d121fc4880f 27-Jun-2000 Wichert Akkerman <wichert@deephackmode.org> Merge changes from Ulrich
hangeLog
onfigure.in
efs.h
ile.c
til.c
bd4125c6bcd20e8f014b682b31d6fc5d0fef3ed0 27-Jun-2000 Wichert Akkerman <wichert@deephackmode.org> Close outf fd when forking
hangeLog
trace.c
5ae21ead9f83597452f9a0517e8a51fa4823f921 01-May-2000 Wichert Akkerman <wichert@deephackmode.org> The `too much stuff, just check the ChangeLog' update
REDITS
hangeLog
ODO
efs.h
esc.c
ile.c
inux/alpha/syscallent.h
inux/dummy.h
inux/ia64/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/sparc/syscallent.h
inux/syscallent.h
em.c
rocess.c
ignal.c
trace.c
yscall.c
ystem.c
erm.c
10dfa564bde8b4d3e551ad2bc5ed817914168237 22-Apr-2000 Wichert Akkerman <wichert@deephackmode.org> Update mips syscall table
hangeLog
inux/mips/syscallent.h
481e45b0cf9cc871881b2949b4a0d701c7080547 17-Apr-2000 Wichert Akkerman <wichert@deephackmode.org> added names for SVR4, SYSV, BSD4.3 and POSIX syscalls
hangeLog
inux/mips/syscallent.h
fd89ced0fcea2bce54d477fa528375c2c75e4b3d 13-Apr-2000 Wichert Akkerman <wichert@deephackmode.org> Linux/MIPS uses syscalls up to >4k, so set MAX_QUALS to 4999
hangeLog
efs.h
529f06d9c959da041be82bad8f4eb9bb97377168 11-Apr-2000 Wichert Akkerman <wichert@deephackmode.org> add clone test
est/clone.c
c792698a99b640e7d256e8692c992bd967f0c5b2 11-Apr-2000 Wichert Akkerman <wichert@deephackmode.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
OPYRIGHT
REDITS
hangeLog
akefile.in
EWS
EADME
EADME-linux
ODO
jm.c
ile.c
inux/alpha/syscallent.h
inux/dummy.h
inux/ia64/syscallent.h
inux/mips/syscallent.h
inux/powerpc/syscallent.h
inux/sparc/syscallent.h
inux/syscall.h
inux/syscallent.h
em.c
rocess.c
esource.c
ignal.c
yscall.c
ystem.c
est/Makefile
est/skodic.c
til.c
faf722234dc8af97776f94fdda7e100fb60650a2 20-Feb-2000 Wichert Akkerman <wichert@deephackmode.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
hangeLog
efs.h
rocess.c
ignal.c
trace.c
tream.c
yscall.c
est/.cvsignore
est/Makefile
est/skodic.c
est/vfork.c
til.c
2ee6e45f36566e8735b35ffad40bfcc626a25a98 18-Feb-2000 Wichert Akkerman <wichert@deephackmode.org> Fixup isdigit calls
cvsignore
hangeLog
trace.c
vr4/.cvsignore
yscall.c
12f75d1a388cd2eaf1edb7b73daea243210c4ea0 14-Feb-2000 Wichert Akkerman <wichert@deephackmode.org> S390 updates
hangeLog
EWS
ODO
cconfig.h
em.c
rocess.c
yscall.c
57f229d9521594940b82560b39bf882548eb22ba 03-Feb-2000 Wichert Akkerman <wichert@deephackmode.org> Fixup ia64 stuff, part 1
cconfig.h
inux/ia64/.cvsignore
inux/ia64/Makefile.in
inux/ia64/errnoent.h
inux/ia64/ioctlent.h
inux/ia64/ioctlent.sh
inux/ia64/signalent.h
inux/ia64/syscallent.h
8b1b40cd8b49151374d0ac2a5b1a4b459f9e0ae5 03-Feb-2000 Wichert Akkerman <wichert@deephackmode.org> Merge Trillian patches (Linux ia64)
hangeLog
jm.c
onfig.sub
onfigure.in
efs.h
esc.c
ile.c
inux/dummy.h
inux/syscall.h
em.c
rocess.c
ignal.c
trace.c
yscall.c
ystem.c
til.c
4dc3b141be2e109170fb515b98723545474ac701 01-Feb-2000 Pavel Machek <pavel@ucw.cz> Split trace_syscall into few functions to make code readable.
hangeLog
yscall.c
d8ae7e332a15c12a488efa40136fa07f7dafa34b 01-Feb-2000 Pavel Machek <pavel@ucw.cz> Cleaned up __NR_SYSCALL_BASE: less number of #ifdef's in main code is
always good.
yscall.c
9a9f10b4fcbbf102149ca61660805a4a2297e17a 01-Feb-2000 Pavel Machek <pavel@ucw.cz> Wrap changing of syscall into nice function.

Warn instead of infinite loop in case of error.
ile.c
rocess.c
245a6ac0e71d7ecdbb776b12b735de58cf5a055b 01-Feb-2000 Pavel Machek <pavel@ucw.cz> Automatically probe for sys/poll.h

Include example of nasty program where strace (by design) gives
incorrect output.
onfigure.in
tream.c
est/Makefile
est/skodic.c
5597f898dfb01586bd1c659c415ffd798a8517db 27-Jan-2000 Wichert Akkerman <wichert@deephackmode.org> Fix type on aclocal.m4
clocal.m4
301601812c887618acdfa5ef83363aea3a3a6e78 21-Jan-2000 Wichert Akkerman <wichert@deephackmode.org> Release version 4.2
hangeLog
ersion.c
3ed6dc2491895369df1eb6b5284cc9de3520d8a0 11-Jan-2000 Wichert Akkerman <wichert@deephackmode.org> Add 1900 to tm_year in sprinttime
hangeLog
ile.c
9a8a37f2b28d1c0d3f57951fd5aeeb96ff7d2f16 25-Dec-1999 Wichert Akkerman <wichert@deephackmode.org> fix loop for arm
til.c
9148a3b4eea9664a5be10de542f43a2cb51f84da 25-Dec-1999 Wichert Akkerman <wichert@deephackmode.org> update changelog&news
hangeLog
EWS
0396bdc0a7fbef876653460e3ba512398e40ba9b 25-Dec-1999 Wichert Akkerman <wichert@deephackmode.org> Use STAT64 test for the new stat64 functions
hangeLog
ile.c
til.c
c921cb2885c0194a260cc8701858e8c12fb6f462 24-Dec-1999 Ulrich Drepper <drepper@redhat.com> Update.
hangeLog
dfff33ce4cdc5a7d34a236d11501e6c481821c47 24-Dec-1999 Ulrich Drepper <drepper@redhat.com> Add AC_STAT64.
onfigure.in
02fffd8276a8a142a838dcaeadc153fcded34ade 24-Dec-1999 Ulrich Drepper <drepper@redhat.com> Define HAVE_STAT64.
cconfig.h
b8601b00a61f279fdb8af8f3dea9129ce44e1615 24-Dec-1999 Ulrich Drepper <drepper@redhat.com> Define AC_STAT64.
clocal.m4
7f02c4d53f5e86442cbad76951e81976090a4ad9 24-Dec-1999 Ulrich Drepper <drepper@redhat.com> Implement sys_stat64, sys_fstat64, sys_lstat64, and printstat64.
ile.c
2f2a5864acd0534795a128362730af8c1f0d453f 24-Dec-1999 Ulrich Drepper <drepper@redhat.com> Define table entries for sys_stat64, sys_lstat64, and sys_fstat64.
inux/syscallent.h
75bb37c8a82fff91874b26a914c551ab6b48e103 24-Dec-1999 Ulrich Drepper <drepper@redhat.com> Declare sys_stat64, sys_lstat64, and sys_fstat64.
inux/syscall.h
90512f033269020a6fe60d9f8891f1a6ec99f4ac 24-Dec-1999 Ulrich Drepper <drepper@redhat.com> (internal_clone): Fix a few typos and add definitions to make it at
least compile.
rocess.c
0fa01d706f02d0541c0b030f6493756060df5e07 24-Dec-1999 Ulrich Drepper <drepper@redhat.com> Use ugly libc_stat trick also for stat64.
ile.c
7a0b649aeace5c1e1efe4a1d7b1ae6e3a87e0d44 23-Dec-1999 Wichert Akkerman <wichert@deephackmode.org> Begin work on supporting clone
hangeLog
efs.h
rocess.c
yscall.c
til.c
4dc8a2aec63e4fb5ee2688544c4de323ed5de3ef 23-Dec-1999 Wichert Akkerman <wichert@deephackmode.org> Bunch of stuff
REDITS
hangeLog
EWS
jm.c
onfig.sub
onfigure.in
esc.c
ile.c
o.c
octl.c
pc.c
inux/syscall.h
inux/syscallent.h
em.c
et.c
rocess.c
esource.c
ignal.c
trace.1
trace.c
tream.c
yscall.c
ystem.c
til.c
e5be0de04471219a85a6ca0e37d21ef6d0d18caf 14-Dec-1999 Wichert Akkerman <wichert@deephackmode.org> Note that Linux has semop
hangeLog
inux/syscall.h
inux/syscallent.h
ea78f0f77185f7d6d0b2055805139d96e1be816c 29-Nov-1999 Wichert Akkerman <wichert@deephackmode.org> Add UnixWare support to configure
hangeLog
EADME-svr4
cconfig.h
clocal.m4
onfigure.in
efs.h
octl.c
roc.c
trace.c
ystem.c
til.c
aec6238b12deda2f24fc415d65d3e1483df905b3 28-Nov-1999 Wichert Akkerman <wichert@deephackmode.org> Improve sys_query_module code
akefile.in
jm.c
9123ac8884f3a9d518086371514fe83f9042f6b6 27-Nov-1999 Wichert Akkerman <wichert@deephackmode.org> fully decode the query_module syscall
hangeLog
jm.c
3377df74182174b4b69185fa00fe80f03a15ec0b 26-Nov-1999 Wichert Akkerman <wichert@deephackmode.org> Parse UnixWare mount options
hangeLog
ystem.c
9dbf15466e9c178ac4090eba2c1232e2fe0706f9 26-Nov-1999 Wichert Akkerman <wichert@deephackmode.org> Add pollhack
hangeLog
EADME-svr4
trace.c
4695657dab44fbdf3352d9f49ea7943ad9e614f9 26-Nov-1999 Wichert Akkerman <wichert@deephackmode.org> Seems like some systems treat sigmask_t and sigmask_t* as the same thing.
hangeLog
ignal.c
48214be2d3991b398733f11c09a5d3f1aabcddfa 26-Nov-1999 Wichert Akkerman <wichert@deephackmode.org> Only use long_to_sigset on Linux systems
hangeLog
ignal.c
e4aafd4c4d5ecd3317419d1681ef5804dbf1333e 26-Nov-1999 Wichert Akkerman <wichert@deephackmode.org> Merge patches from John Hughes
hangeLog
ile.c
et.c
vr4/syscall.h
vr4/syscallent.h
906dade0ddcd670302fe8ce4e00b9a449b61999f 26-Nov-1999 Wichert Akkerman <wichert@deephackmode.org> Tiny display fixup in getpmsg syscall output
tream.c
2a64b43d87c89c8feb0b2e6c1d008a2d635049b0 26-Nov-1999 Wichert Akkerman <wichert@deephackmode.org> Update for 4.1 release
hangeLog
EWS
221f54f721a2f74e629bb70e34888205f68e95cc 18-Nov-1999 Wichert Akkerman <wichert@deephackmode.org> Now it builds on alpha again...
efs.h
esc.c
inux/alpha/syscallent.h
inux/syscall.h
ime.c
0ae852b90b116aaac2c0c7816dce2e1365ad271e 18-Nov-1999 Wichert Akkerman <wichert@deephackmode.org> Oops, forgot to commit this one
inux/syscall.h
f5eeabb156641482abd504fb98b039e1aae4ae87 18-Nov-1999 Wichert Akkerman <wichert@deephackmode.org> Start merging linux-ip-routing fork
hangeLog
akefile.in
onfigure.in
efs.h
esc.c
ile.c
inux/alpha/syscallent.h
em.c
et.c
rocess.c
esource.c
ime.c
60456d785d7ef5a668d8b954c4c0f58e2bc00f7f 01-Nov-1999 Wichert Akkerman <wichert@deephackmode.org> update Linux MIPS syscall table
hangeLog
inux/mips/syscallent.h
2f473da12babff710bbe37c7f95be01fd00118f9 01-Nov-1999 Wichert Akkerman <wichert@deephackmode.org> Fix duplicate for sys_create_module
Include linux/in6.h only for Linux MIPS
hangeLog
jm.c
vsbuild
et.c
ystem.c
505e176ded6376a1283093b334c2c6deb47916e7 01-Nov-1999 Wichert Akkerman <wichert@deephackmode.org> test for linux/in6.h in configure
onfigure.in
et.c
31aa7068a2a1cd46c5b62663396f6b3ef45a9256 01-Nov-1999 Wichert Akkerman <wichert@deephackmode.org> Added missing Linux MIPS files
inux/mips/.cvsignore
inux/mips/Makefile.in
inux/mips/errnoent.h
inux/mips/ioctlent.h
inux/mips/ioctlent.sh
inux/mips/signalent.h
inux/mips/syscallent.h
f90da01fd19a7779d6ed9ad66605367ae43bb2fd 31-Oct-1999 Wichert Akkerman <wichert@deephackmode.org> Add Linux MIPS support
REDITS
hangeLog
onfigure.in
efs.h
inux/Makefile.in
inux/alpha/Makefile.in
inux/powerpc/.cvsignore
inux/powerpc/Makefile.in
inux/sparc/Makefile.in
inux/syscall.h
em.c
rocess.c
ignal.c
unos4/Makefile.in
vr4/Makefile.in
yscall.c
til.c
54a4767f8609abfe2d7cb1802bc9e8dca97dd08f 17-Oct-1999 Wichert Akkerman <wichert@deephackmode.org> Add missing newline in error
trace.c
5052482ed7c25c60a755632a9acd37f88ec98bdc 11-Oct-1999 Wichert Akkerman <wichert@deephackmode.org> Update Linux module syscalls
hangeLog
jm.c
15dea97f8a05b2b67f5752137fe93e3cc20db6ec 06-Oct-1999 Wichert Akkerman <wichert@deephackmode.org> Compilation updates
hangeLog
onfigure.in
vsbuild
et.c
rocess.c
ignal.c
yscall.c
til.c
7b27ba0673bd6fb55ea9aca122e805ed82a89949 31-Aug-1999 Wichert Akkerman <wichert@deephackmode.org> Update strace-graph copyright to BSD
hangeLog
trace-graph
9ce1a63eb20b069607c06f9645ac5a17b418a5f3 30-Aug-1999 Wichert Akkerman <wichert@deephackmode.org> Catching up on my mail-backlog, see ChangeLog for details
REDITS
hangeLog
akefile.in
EADME-svr4
ODO
onfigure.in
efs.h
o.c
octl.c
inux/sparc/syscall.h
et.c
roc.c
ignal.c
trace-graph
trace.c
vr4/syscallent.h
yscall.c
ystem.c
til.c
5a777663d5208fb2485d06b5a54419f0d15e7bf6 04-Aug-1999 Wichert Akkerman <wichert@deephackmode.org> Add sys_poll to Linux/alpha syscall list
hangeLog
inux/alpha/syscallent.h
4a01ca0d0ff8a7ff41cf6a65e463e1fa7bb1a6e9 25-Jul-1999 Wichert Akkerman <wichert@deephackmode.org> CVS branch test
EWS
ersion.c
527a80589d5df0bca150eed9e9748151acddc533 15-Jul-1999 Wichert Akkerman <wichert@deephackmode.org> Update sys_createmodule and sys_initmodule
hangeLog
inux/dummy.h
ystem.c
b046b38593b6bca6b6c49ac1fcc09dd5cd4c94b2 14-Jul-1999 Wichert Akkerman <wichert@deephackmode.org> Update sys/reg.h usage in syscall.c as well
yscall.c
36915a19e4806339b76209b20fdbd1091c126115 13-Jul-1999 Wichert Akkerman <wichert@deephackmode.org> Add test for sys/reg.h and use that instead of asm/ptrace.h
This should fix building problems on glibc2.0 systems
hangeLog
onfigure.in
rocess.c
ignal.c
til.c
ca4469902c45469a2ec108447cf47d1761801215 10-Jul-1999 Wichert Akkerman <wichert@deephackmode.org> Remove hack in signal.c for arm architecture
hangeLog
ignal.c
14cd9f06e5420b15ff1ba8bbd3077bdedc708a8f 09-Jul-1999 Wichert Akkerman <wichert@deephackmode.org> Tell system.c not to include linux/fs.h
ystem.c
8dc9a1a3c5156557d9fa6014ea05c221b1e85413 09-Jul-1999 Wichert Akkerman <wichert@deephackmode.org> Update versionnumber to 4.0
cvsignore
EWS
EADME
EADME-linux
trace.1
ersion.c
5b4d128fabf17cc779ca35bedd6c3f8c4dc94775 09-Jul-1999 Wichert Akkerman <wichert@deephackmode.org> Update patch from drow for file.c kernel types
hangeLog
ile.c
a6013708731702ede04520e52be5cc2fdc69e19b 08-Jul-1999 Wichert Akkerman <wichert@deephackmode.org> Add patch from drow to get proper kernel types in file.c
hangeLog
ODO
ile.c
8d5860c8d807440c28e838fa82f2ad7e83bade17 03-Jul-1999 Nate Sammons <nate@users.sourceforge.net> system.c was using __NR_* style syscall number defines, which don't
get defined now. Use SYS_* instead, and also make the previously dead
include hack work.

sys_personality didn't work right before.
ystem.c
e68d61c7d6dcf986d32c462e533ea46f85183db8 28-Jun-1999 Wichert Akkerman <wichert@deephackmode.org> Remove stupid error in strace.c. Looks like I pasted something
I shouldn't have in there :(
trace.c
360815ecc28b2a44611b146c873fab76c88e12af 28-Jun-1999 Wichert Akkerman <wichert@deephackmode.org> Update documentation somewhat
EADME
EADME-CVS
EADME-linux
trace.c
2b483ba988f29e4715db8ee80b7a5ebc77e5027d 24-Jun-1999 Wichert Akkerman <wichert@deephackmode.org> Fix conditions for including sys/reg.h and linux/ptrace.h
hangeLog
yscall.c
e6f876c49de4a5f535e476804e4627f8e0ecb869 22-Jun-1999 Wichert Akkerman <wichert@deephackmode.org> Linux/powerpc and SunOS fixes
hangeLog
em.c
yscall.c
til.c
50a2745c8894e77eedb88b1cb2e79adf44068e04 21-Jun-1999 Wichert Akkerman <wichert@deephackmode.org> Bring Linux/powerpc up to date
inux/powerpc/syscallent.h
em.c
789ed35db520a552ba5ea0a5cbe5b31efa7adde5 14-Jun-1999 Wichert Akkerman <wichert@deephackmode.org> avoid leaking fd into child
hangeLog
trace.c
8829a55dc2b13a00be7402f4bf644178a12e9f74 11-Jun-1999 Wichert Akkerman <wichert@deephackmode.org> Various fixes, see ChangeLog for details
hangeLog
onfigure.in
ile.c
em.c
rocess.c
trace.1
vr4/dummy.h
vr4/syscall.h
vr4/syscallent.h
yscall.c
ystem.c
0405743d6a0f108a45ffd630cce024087bbb726d 10-Jun-1999 Wichert Akkerman <wichert@deephackmode.org> Add cvsbuild
vsbuild
3f7f49d6797b481f3a760e2d7bfdb4cf6671403f 09-Jun-1999 Wichert Akkerman <wichert@deephackmode.org> Update versionsnumber for 3.99.1 and update NEWS
EWS
ersion.c
cc4b8f426a4ae9350cfe41b42b488b5d11836bd8 09-Jun-1999 Wichert Akkerman <wichert@deephackmode.org> Update syscall list for Linux/alpha
hangeLog
inux/alpha/syscallent.h
dacfb6ebd630641d851b6df94c3b4587969a6cfb 03-Jun-1999 Wichert Akkerman <wichert@deephackmode.org> Add sparc patches from Jakub Jelinek
REDITS
hangeLog
ile.c
inux/alpha/syscallent.h
inux/powerpc/syscallent.h
inux/sparc/errnoent.h
inux/sparc/syscall.h
inux/sparc/syscallent.h
inux/syscall.h
inux/syscallent.h
ignal.c
trace.c
yscall.c
ystem.c
til.c
8783c011ea6b511c52c7813132d29751c0746f5f 29-May-1999 Ulrich Drepper <drepper@redhat.com> Don't include linux/ptrace.h for glibc.
hangeLog
yscall.c
0d2d323610ebc3976ccf8dd0c353586d9ce47290 29-May-1999 Ulrich Drepper <drepper@redhat.com> Fix typo.
hangeLog
onfigure.in
0c239d9e87b9c0827c8ca951b8f986ae73f181a6 28-May-1999 Wichert Akkerman <wichert@deephackmode.org> Adding cvsignore files for alpha and sparc
inux/alpha/.cvsignore
inux/sparc/.cvsignore
6ff1218d888ee6e74aacace2ff5f029a603b89f6 28-May-1999 Wichert Akkerman <wichert@deephackmode.org> add config.log
cvsignore
71bdaff3b7009ce6d7fa9d8dda569b758ae238af 28-May-1999 Wichert Akkerman <wichert@deephackmode.org> Fix typo
til.c
22fe9d2b99a12e1b778ce0481473ed67aa53f628 27-May-1999 Wichert Akkerman <wichert@deephackmode.org> added `a bit of sysctl support', patch from Ulrich Drepper
hangeLog
inux/dummy.h
ystem.c
2992bbabfca22054ff6e08ce5671188683138c74 26-May-1999 Wichert Akkerman <wichert@deephackmode.org> Remove some stuff from CVS that should be autogenerated
cvsignore
onfig.h.in
onfigure
42a9655ffe067d8c686e0604acc69f44962e8390 26-May-1999 Wichert Akkerman <wichert@deephackmode.org> Added some cvsignore files
cvsignore
inux/.cvsignore
9524bb9e726ebf3bdee45f07fd93e0bf2bcc439c 26-May-1999 Wichert Akkerman <wichert@deephackmode.org> use kernel dirent structure for Linux
hangeLog
ile.c
f9d3dcbea26ffc20e9bca903550ff97fffd1e250 15-May-1999 Wichert Akkerman <wichert@deephackmode.org> Update maintainer name in manpage
trace.1
dbb440e5ae5d1a6be4eeda28088e8dfc9b195bac 11-May-1999 Wichert Akkerman <wichert@deephackmode.org> Only compile IPX-support in net.c for Linux
et.c
2e2553a534f532a1546ea2b2f3dc3cd2276d020d 09-May-1999 Wichert Akkerman <wichert@deephackmode.org> Merged in a bunch of patches that I got as reaction to the 3.99 release.
See the ChangeLog for details
hangeLog
ODO
cconfig.h
jm.c
onfig.h.in
onfigure
onfigure.in
ile.c
o.c
inux/dummy.h
inux/syscall.h
inux/syscallent.h
em.c
et.c
rocess.c
ignal.c
ock.c
tream.c
ystem.c
erm.c
til.c
022c52fda19fa3e92a7000b239214fdd57248a4b 27-Apr-1999 Wichert Akkerman <wichert@deephackmode.org> Update the version number to 3.99 (first pre-release for 4.0)
ersion.c
8bc6cfd067c62e13f029732e3315ef3997b9991a 21-Apr-1999 Wichert Akkerman <wichert@deephackmode.org> Minor compiliation-fixes
ile.c
em.c
d4d8e92b30dc9d776066965375a1f392f2d209ab 19-Apr-1999 Wichert Akkerman <wichert@deephackmode.org> Update linux sparc support so it compiles and works reasonably
hangeLog
ODO
ile.c
inux/sparc/syscallent.h
tream.c
b859bea10a0945681ecc66a1aa06ae4cc5845af8 19-Apr-1999 Wichert Akkerman <wichert@deephackmode.org> Change number of personalities for Linux sparc to 2
Minor other fixes
EWS
efs.h
ile.c
yscall.c
7a1f0e95dbd86d8e1213f9ed6a0d848d5f4d395e 18-Apr-1999 Wichert Akkerman <wichert@deephackmode.org> Update syscalls for Linux alpha
hangeLog
inux/alpha/syscallent.h
25d0c4fdf25b7a2c1132b46a5753e3308a50a3a2 18-Apr-1999 Wichert Akkerman <wichert@deephackmode.org> Fix stat structures for Linux once again
hangeLog
ile.c
a0f36c6c29ff6d883b8bbfeaa16450ab269d41f6 16-Apr-1999 Wichert Akkerman <wichert@deephackmode.org> Fix test for alpha so we get the osf_stat functions in file.c
ile.c
328c5e7fd8ae6fbe2e384e8068c878084d6f80e8 16-Apr-1999 Wichert Akkerman <wichert@deephackmode.org> Added support for old*stat syscalls for Linux
Changed referenced to LINUX to linux in file.c
Fix include for ldt.h in mem.c while we're at it
hangeLog
ile.c
inux/dummy.h
em.c
fd3bcae88add6f6e3d9ea9f42b6606fcac7286f9 15-Apr-1999 Wichert Akkerman <wichert@deephackmode.org> Oops, lets update config.sub as well so we can compile on more alphas
onfig.sub
1786d81bee82834f0769634cbe8c177661da3c50 15-Apr-1999 Wichert Akkerman <wichert@deephackmode.org> Update the ChangeLog and NEWS files to reflect new maintainer
Update CREDITS to list Uldrich and Nate.
Switch to autoconf 2.13
REDITS
hangeLog
EWS
EADME
onfigure
onfigure.in
6bfcd3287759af376cfcc7670da3f048261fab90 06-Apr-1999 Nate Sammons <nate@users.sourceforge.net> Avoid compiler warning.
et.c
5c74d204e7641a072eec3a9d1ec537d100b83ddc 06-Apr-1999 Nate Sammons <nate@users.sourceforge.net> Avoid compiler warnings.
ile.c
99a5690773ca0c4ec2f84771c92123e7794f6106 06-Apr-1999 Nate Sammons <nate@users.sourceforge.net> Realtime signals are named starting with 0. Fix `signame' to comply.
ignal.c
4a12143420783ac4d2d1588e6afd024bb5eb074c 06-Apr-1999 Nate Sammons <nate@users.sourceforge.net> Convert all sigsets correctly into libc sigset_t. Add functions
`long_to_sigset', `copy_sigset', and `copy_sigset_len'. Add
additional arg to `printsigmask' and `sprintsigmask' to indicate
whether realtime signals may be in the mask, and keep the printing
rational.
ignal.c
771a6ff03ce5741694973f2dd3949370932d9d00 06-Apr-1999 Nate Sammons <nate@users.sourceforge.net> Use the kernel's struct stat instead of libc's.
ile.c
94fe3a0be1e43a6bcc68c2a364349df91c736ad8 06-Apr-1999 Nate Sammons <nate@users.sourceforge.net> Remove (apparently?) unused definition of struct kernel_stat for
LINUXSPARC.
ile.c
b4aa1139eb2c6738444e0f6f039b01ff81acb64e 31-Mar-1999 Nate Sammons <nate@users.sourceforge.net> Fix a couple of typos in the man page.
trace.1
3080aa492b9418ca06e3cbb1c938a41e4a6588ea 30-Mar-1999 Nate Sammons <nate@users.sourceforge.net> Fix a silly bug in signame. A signal should be *greater* than the
minimum.
ignal.c
dab325a8900a885fb3701eacc09073fadbf8250c 30-Mar-1999 Nate Sammons <nate@users.sourceforge.net> Fix wrong argument of rt_sigprocmask being used.
ignal.c
ce780fc9e6067b15b65ca2904c698c77503bf635 30-Mar-1999 Nate Sammons <nate@users.sourceforge.net> Add new function `signame', which returns name (SIGXXX) of numeric
signal, and replace lookups in signalent[] with calls to it.
efs.h
rocess.c
ignal.c
trace.c
yscall.c
38508fdf0c25cd9227a5f6e4085f3c94bd70eb0c 30-Mar-1999 Nate Sammons <nate@users.sourceforge.net> Don't try to follow clone, until special handling for all of its
possible modes has been implemented.
rocess.c
ccd8f216267cea2f56567b8a44929475105b8298 30-Mar-1999 Nate Sammons <nate@users.sourceforge.net> Add capability for Linux to change a vfork call into plain fork, which
can be followed. (Requires a kernel patch for now.) Also document it.
rocess.c
trace.1
39c761997d9e1dbef06d29088814e62955eaced1 29-Mar-1999 Nate Sammons <nate@users.sourceforge.net> Change EXEC_vfork to SYS_vfork; broke compilation on at least
glibc2.1.
rocess.c
9047076564d0a097897f165a1311f35f8a2b116b 17-Mar-1999 Wichert Akkerman <wichert@deephackmode.org> sys/reg apparently only exists on i386 and m68k, so fix the test in
a couple of files
rocess.c
ignal.c
yscall.c
til.c
5daa028ca314e4c36c1f38e0149834d9a0520128 15-Mar-1999 Wichert Akkerman <wichert@deephackmode.org> Simply bugfixes, see patch to debian/changelog for details
em.c
et.c
roc.c
rocess.c
ignal.c
til.c
76baf7c9f6dd61a15524ad43c1b690c252cf5b7c 19-Feb-1999 Wichert Akkerman <wichert@deephackmode.org> Initial revision
OPYRIGHT
REDITS
hangeLog
NSTALL
akefile.in
EWS
ORTING
EADME
EADME-linux
EADME-sunos4
EADME-svr4
ODO
cconfig.h
clocal.m4
jm.c
onfig.guess
onfig.h.in
onfig.sub
onfigure
onfigure.in
efs.h
esc.c
rrnoent.sh
ile.c
nstall-sh
o.c
octl.c
octlsort.c
pc.c
inux/Makefile.in
inux/alpha/Makefile.in
inux/alpha/errnoent.h
inux/alpha/ioctlent.h
inux/alpha/ioctlent.sh
inux/alpha/signalent.h
inux/alpha/syscallent.h
inux/dummy.h
inux/errnoent.h
inux/ioctlent.h
inux/ioctlent.sh
inux/powerpc/Makefile.in
inux/powerpc/errnoent.h
inux/powerpc/ioctlent.h
inux/powerpc/ioctlent.sh
inux/powerpc/signalent.h
inux/powerpc/syscallent.h
inux/powerpc/syscallent.sh
inux/signalent.h
inux/sparc/Makefile.in
inux/sparc/dummy2.h
inux/sparc/errnoent.h
inux/sparc/errnoent1.h
inux/sparc/gen.pl
inux/sparc/ioctlent.h
inux/sparc/ioctlent1.h
inux/sparc/signalent.h
inux/sparc/signalent1.h
inux/sparc/syscall.h
inux/sparc/syscall.h.2
inux/sparc/syscall1.h
inux/sparc/syscallent.h
inux/sparc/syscallent1.h
inux/syscall.h
inux/syscallent.h
em.c
et.c
roc.c
rocess.c
esource.c
ignal.c
ignalent.sh
ock.c
trace.1
trace.c
tream.c
unos4/Makefile.in
unos4/dummy.h
unos4/errnoent.h
unos4/ioctlent.h
unos4/ioctlent.sh
unos4/signalent.h
unos4/syscall.h
unos4/syscallent.h
vr4/Makefile.in
vr4/dummy.h
vr4/errnoent.h
vr4/ioctlent.h
vr4/ioctlent.sh
vr4/signalent.h
vr4/syscall.h
vr4/syscallent.h
yscall.c
yscallent.sh
ystem.c
erm.c
est/Makefile
est/fork.c
est/procpollable.c
est/sfd.c
est/sig.c
ime.c
til.c
ersion.c
late.el
fa2c235113f9f310562b09097af5fa466a3158e0 12-Jan-1970 Upstream <upstream-import@none> external/strace 4.5.12
UTHORS
OPYRIGHT
REDITS
hangeLog
NSTALL
akefile.am
akefile.in
EWS
ORTING
EADME
EADME-CVS
EADME-freebsd
EADME-linux
EADME-sunos4
EADME-svr4
ODO
cinclude.m4
clocal.m4
jm.c
onfig.guess
onfig.h.in
onfig.sub
onfigure
onfigure.ac
ebian/changelog
ebian/control
ebian/copyright
ebian/rules
efs.h
epcomp
esc.c
rrnoent.sh
ile.c
reebsd/i386/errnoent.h
reebsd/i386/ioctlent.h
reebsd/i386/signalent.h
reebsd/i386/syscall.h
reebsd/i386/syscallent.h
reebsd/ioctlent.sh
reebsd/syscalls.cat
reebsd/syscalls.pl
reebsd/syscalls.print
nstall-sh
o.c
octl.c
octlsort.c
pc.c
inux/alpha/errnoent.h
inux/alpha/ioctlent.h
inux/alpha/signalent.h
inux/alpha/syscallent.h
inux/dummy.h
inux/errnoent.h
inux/hppa/errnoent.h
inux/hppa/ioctlent.h
inux/hppa/signalent.h
inux/hppa/syscallent.h
inux/ia64/errnoent.h
inux/ia64/ioctlent.h
inux/ia64/signalent.h
inux/ia64/syscallent.h
inux/ioctlent.h
inux/ioctlent.sh
inux/ioctlsort.c
inux/mips/errnoent.h
inux/mips/ioctlent.h
inux/mips/ioctlent.sh
inux/mips/signalent.h
inux/mips/syscallent.h
inux/powerpc/errnoent.h
inux/powerpc/ioctlent.h
inux/powerpc/signalent.h
inux/powerpc/syscallent.h
inux/s390/errnoent.h
inux/s390/ioctlent.h
inux/s390/signalent.h
inux/s390/syscallent.h
inux/s390x/errnoent.h
inux/s390x/ioctlent.h
inux/s390x/signalent.h
inux/s390x/syscallent.h
inux/sh/errnoent.h
inux/sh/ioctlent.h
inux/sh/signalent.h
inux/sh/syscallent.h
inux/sh64/syscallent.h
inux/signalent.h
inux/sparc/dummy2.h
inux/sparc/errnoent.h
inux/sparc/errnoent1.h
inux/sparc/gen.pl
inux/sparc/ioctlent.h
inux/sparc/ioctlent1.h
inux/sparc/signalent.h
inux/sparc/signalent1.h
inux/sparc/syscall.h
inux/sparc/syscall.h.2
inux/sparc/syscall1.h
inux/sparc/syscallent.h
inux/sparc/syscallent1.h
inux/sparc64/dummy2.h
inux/sparc64/errnoent.h
inux/sparc64/errnoent1.h
inux/sparc64/errnoent2.h
inux/sparc64/ioctlent.h
inux/sparc64/ioctlent1.h
inux/sparc64/ioctlent2.h
inux/sparc64/signalent.h
inux/sparc64/signalent1.h
inux/sparc64/signalent2.h
inux/sparc64/syscall.h
inux/sparc64/syscall1.h
inux/sparc64/syscallent.h
inux/sparc64/syscallent1.h
inux/sparc64/syscallent2.h
inux/syscall.h
inux/syscallent.h
inux/x86_64/errnoent1.h
inux/x86_64/gentab.pl
inux/x86_64/ioctlent1.h
inux/x86_64/signalent1.h
inux/x86_64/syscallent.h
inux/x86_64/syscallent1.h
em.c
issing
kinstalldirs
et.c
roc.c
rocess.c
esource.c
ignal.c
ignalent.sh
ock.c
trace-graph
trace.1
trace.c
trace.spec
tream.c
unos4/dummy.h
unos4/errnoent.h
unos4/ioctlent.h
unos4/ioctlent.sh
unos4/signalent.h
unos4/syscall.h
unos4/syscallent.h
vr4/dummy.h
vr4/errnoent.h
vr4/ioctlent.h
vr4/ioctlent.sh
vr4/signalent.h
vr4/syscall.h
vr4/syscallent.h
yscall.c
yscallent.sh
ystem.c
erm.c
ime.c
til.c