summaryrefslogtreecommitdiff
path: root/Makefile.am
Commit message (Collapse)AuthorAgeFilesLines
* netlink: introduce NETLINK_NETFILTER parserChen Jingpiao2018-03-111-0/+1
| | | | | | | | * netlink_netfilter.c: New file. * Makefile.am (strace_SOURCES): Add it. * defs.h (decode_netlink_netfilter): New prototype. * netlink.c (netlink_decoders): Add NETLINK_NETFILTER. * xlat/netfilter_versions.in: New file.
* Introduce mmap_cache.hDmitry V. Levin2018-02-261-0/+1
| | | | | | | | | | | | | | | | Let's avoid bloating defs.h and introduce a separate header for mmap_cache. * defs.h (struct mmap_cache_t, enum mmap_cache_protection, enum mmap_cache_rebuild_result, mmap_cache_enable, mmap_cache_is_enabled, mmap_cache_invalidate, mmap_cache_delete, mmap_cache_rebuild_if_invalid, mmap_cache_search): Move ... * mmap_cache.h: ... to this new file. * Makefile.am (strace_SOURCES): Add mmap_cache.h. * mmap_cache.c: Include mmap_cache.h. * strace.c: Likewise. * syscall.c: Likewise. * unwind.c: Likewise.
* mmap_cache: new subsystem derived from unwind.cMasatake YAMATO2018-02-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | | For making mmap cache code reusable from other areas in strace than unwind, mmap cache related code and unwind related code should be separated. This change moves the most of mmap cache code from unwind.c to mmap_cache.c, a new file. * unwind.c: Move mmap_cache implementation ... * mmap_cache.c: ... to this new file. * Makefile.am (strace_SOURCES): add mmap_cache.c. * defs.h (struct tcb): Move mmap_cache, mmap_cache_size, and mmap_cache_generation fields out of [USE_LIBUNWIND] condition. (mmap_cache_invalidate, mmap_cache_delete, mmap_cache_rebuild_if_invalid): New function prototypes. (struct mmap_cache_t, enum mmap_cache_rebuild_result): Move from unwind.c. * syscall.c (syscall_exiting_decode): Replace unwind_cache_invalidate with mmap_cache_invalidate. Signed-off-by: Masatake YAMATO <yamato@redhat.com>
* Update copyright headersDmitry V. Levin2018-02-131-1/+1
| | | | | Headers updated automatically using maint/update_copyright_years.sh script.
* Remove old and unused maintenance scriptsEugene Syromyatnikov2018-02-131-3/+0
| | | | | | | | | | | | Firewell, last witnesses of bygone era. * linux/sparc/gen.pl: Remove. * linux/x86_64/gentab.pl: Likewise. * xlate.el: Likewise. * Makefile.am (EXTRA_DIST): Remove them. Suggested-by: Elvira Khabirova <lineprinter@altlinux.org> Co-Authored-by: Dmitry V. Levin <ldv@altlinux.org>
* Mark architectures that indicate syscall error in a dedicated registerEugene Syromyatnikov2018-02-101-0/+1
| | | | | | | | | | | | | | * linux/alpha/arch_defs_.h (HAVE_ARCH_DEDICATED_ERR_REG): New macro, define to 1. * linux/ia64/arch_defs_.h: Likewise. * linux/mips/arch_defs_.h: Likewise. * linux/powerpc/arch_defs_.h: Likewise. * linux/powerpc64/arch_defs_.h: Likewise. * linux/sparc64/arch_defs_.h: Likewise. * linux/arch_defs_.h [!HAVE_ARCH_DEDICATED_ERR_REG] (HAVE_ARCH_DEDICATED_ERR_REG): New macro, define to 0. * linux/nios2/arch_defs_.h: New file. * Makefile.am (EXTRA_DIST): Add it.
* Handle very special __ARM_NR_-prefixed syscallsEugene Syromyatnikov2018-02-101-0/+3
| | | | | | | | | * linux/aarch64/nr_prefix.c: New file. * linux/arm/nr_prefix.c: Likewise. * linux/nr_prefix.c: Likewise. * Makefile.am (EXTRA_DIST): Add them. * printsiginfo.c: Include nr_prefix.c (print_si_info): Use nr_prefix.
* Use shuffle_scno for x32 syscall numbersEugene Syromyatnikov2018-02-091-0/+2
| | | | | | | | | | | This changes behaviour of printing of unknown syscall. * linux/x32/shuffle_scno.c: New file. * linux/x86_64/shuffle_scno.c: Likewise. * Makefile.am (EXTRA_DIST): Add them. * linux/x86_64/get_scno.c (arch_get_scno): Do not clear __X32_SYSCALL_BIT. * tests/nsyscalls.c: Update expected output.
* Move shuffle_scno to arch-specific fileEugene Syromyatnikov2018-02-091-0/+3
| | | | | | | | | | | | | | While we are here, let's fix AArch64 by limiting scno shuffling to compat personality only. * syscall.c: Include shuffle_scno.c. (shuffle_scno): Move it to a... * linux/arm/shuffle_scno.c: New file. * linux/aarch64/shuffle_scno.c: New file, define arm's shuffle_scno as arm_shuffle_scno and call it only for personality 1. * linux/shuffle_scno.c: New file, fallback trivial shuffle_scno definition. * Makefile.am (EXTRA_DIST): Add them.
* Makefile.am: minor EXTRA_DIST formatting changesEugene Syromyatnikov2018-02-061-13/+14
|
* Move large file-related wrappers to a separate headerEugene Syromyatnikov2018-02-061-1/+2
| | | | | | * strace.c [_LARGEFILE64_SOURCE]: Move the definitions under it to a... * largefile_wrappers.h: ... new file. * Makefile.am (strace_SOURCES): Add it.
* Introduce s390_sthyi system call decoderEugene Syromyatnikov2018-01-291-0/+1
| | | | | | | | * s390.c: New file. * Makefile.am (strace_SOURCES): Add it. * linux/s390/syscallent.h ([380]): Change decoder to s390_sthyi. * linux/s390x/syscallent.h: Likewise. * xlat/s390_sthyi_function_codes.in: New file.
* Drop non-functional CRIS architecture supportDmitry V. Levin2018-01-251-24/+0
| | | | | | | | | | | | | | From the very first commit when CRIS architecture support was introduced and up to this comment that ends the agony of this non-functional code, this support was incomplete and could never be compiled. * Makefile.am (EXTRA_DIST): Remove linux/crisv*. * clone.c: Remove CRISV* checks. * configure.ac ($host_cpu == cris*): Remove. * linux/crisv10: Remove. * linux/crisv32: Likewise. Fixes: v4.5.18-77-gea0e6e8 ("CRIS support by Hinko Kocevar ...")
* Implement decoding of riscv_flush_icache syscallEugene Syromyatnikov2018-01-251-0/+1
| | | | | | | | * linux/riscv/syscallent.h ([259]): Add riscv_flush_icache entry. * riscv.c: New file. * Makefile.am (strace_SOURCES): Add it. * xlat/riscv_flush_icache_flags.in: New file. * NEWS: Mention it.
* Rework decoding and pathtrace of old select syscallDmitry V. Levin2018-01-231-0/+1
| | | | | | | | | | | | | | | | | | | | | * linux/arch_defs_.h [!HAVE_ARCH_OLD_SELECT] (HAVE_ARCH_OLD_SELECT): New macro. * linux/aarch64/arch_defs_.h (HAVE_ARCH_OLD_SELECT): Likewise. * linux/arm/arch_defs_.h: Likewise. * linux/bfin/arch_defs_.h: Likewise. * linux/i386/arch_defs_.h: Likewise. * linux/m68k/arch_defs_.h: Likewise. * linux/microblaze/arch_defs_.h: Likewise. * linux/powerpc64/arch_defs_.h: Likewise. * linux/sh/arch_defs_.h: Likewise. * linux/x32/arch_defs_.h: Likewise. * linux/x86_64/arch_defs_.h: Likewise. * linux/powerpc/arch_defs_.h: New file. * Makefile.am (EXTRA_DIST): Add it. * desc.c (SYS_FUNC(oldselect)): Rewrite using fetch_indirect_syscall_args, move under [HAVE_ARCH_OLD_SELECT]. * pathtrace.c (match_xselect_args): New function. (pathtrace_match_set): Use it.
* Transform fetch_old_mmap_args into fetch_indirect_syscall_argsDmitry V. Levin2018-01-231-0/+1
| | | | | | | | | | | | | | | As there are more than one old style syscall that take their arguments via array, generalize fetch_old_mmap_args into a function that could fetch variable number of arguments. * mem.c (fetch_old_mmap_args): Transform into ... * fetch_indirect_syscall_args.c: ... fetch_indirect_syscall_args in this new file. * Makefile.am (libstrace_a_SOURCES): Add it. * defs.h [HAVE_ARCH_OLD_MMAP] (fetch_old_mmap_args): Remove. (fetch_indirect_syscall_args): New prototype. * pathtrace.c (pathtrace_match_set) [HAVE_ARCH_OLD_MMAP]: Use fetch_indirect_syscall_args instead of fetch_old_mmap_args.
* Move decoder of getpagesize syscall to libstraceDmitry V. Levin2018-01-211-0/+1
| | | | | | | | | | As only five architectures have getpagesize syscall, moving the decoder to libstrace allows to get rid of getpagesize related ifdefs and check build of getpagesize decoder on other architectures. * mem.c (SYS_FUNC(getpagesize)): Move ... * getpagesize.c: ... to this new file. * Makefile.am (libstrace_a_SOURCES): Add it.
* Move definition of personality macros to arch_defs_.hEugene Syromyatnikov2018-01-211-1/+2
| | | | | | | | | | | | | | | | | | | | * supported_personalities.h: Remove. * defs.h: Do not include it. * linux/arch_defs_.h [!DEFAULT_PERSONALITY] (DEFAULT_PERSONALITY): New macro. [!SUPPORTED_PERSONALITIES] (SUPPORTED_PERSONALITIES): Likewise. * linux/aarch64/arch_defs_.h (SUPPORTED_PERSONALITIES): New macro. * linux/riscv/arch_defs_.h: Likewise. * linux/s390x/arch_defs_.h: Likewise. * linux/sparc64/arch_defs_.h: Likewise. * linux/x32/arch_defs_.h: Likewise. * linux/x86_64/arch_defs_.h: Likewise. * linux/powerpc64/arch_defs_.h: New file. * linux/tile/arch_defs_.h: Likewise. * Makefile.am (EXTRA_DIST): Add them. (strace_SOURCES): Remove supported_personalities.h. Co-Authored-by: Dmitry V. Levin <ldv@altlinux.org>
* Introduce HAVE_ARCH_SA_RESTOREREugene Syromyatnikov2018-01-211-0/+1
| | | | | | | | | | | | | | In order to simplify HAVE_SA_RESTORER logic a bit. * linux/ia64/arch_defs_.h (HAVE_ARCH_SA_RESTORER): New macro. * linux/m68k/arch_defs_.h: Likewise. * linux/sparc/arch_defs_.h: Likewise. * linux/sparc64/arch_defs_.h: Likewise. * linux/hppa/arch_defs_.h: New file. * Makefile.am (EXTRA_DIST): Add it. * signal.c [HAVE_ARCH_SA_RESTORER]: Define HAVE_SA_RESTORER to it. [!HAVE_ARCH_SA_RESTORER && SA_RESTORER]: Define HAVE_SA_RESTORER to 1. [!HAVE_ARCH_SA_RESTORER && !SA_RESTORER]: Define HAVE_SA_RESTORER to 0.
* Replace NEED_UID16_PARSERS with HAVE_ARCH_UID16_SYSCALLSDmitry V. Levin2018-01-211-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | * linux/arch_defs_.h [!HAVE_ARCH_UID16_SYSCALLS] (HAVE_ARCH_UID16_SYSCALLS): New macro. * linux/aarch64/arch_defs_.h (HAVE_ARCH_UID16_SYSCALLS): New macro. * linux/arm/arch_defs_.h: Likewise. * linux/i386/arch_defs_.h: Likewise. * linux/ia64/arch_defs_.h: Likewise. * linux/m68k/arch_defs_.h: Likewise. * linux/s390/arch_defs_.h: Likewise. * linux/s390x/arch_defs_.h: Likewise. * linux/sh/arch_defs_.h: Likewise. * linux/sparc/arch_defs_.h: Likewise. * linux/sparc64/arch_defs_.h: Likewise. * linux/syscall.h: Likewise. * linux/x32/arch_defs_.h: Likewise. * linux/x86_64/arch_defs_.h: Likewise. * linux/bfin/arch_defs_.h: New file. * linux/microblaze/arch_defs_.h: Likewise. * linux/riscv/arch_defs_.h: Likewise. * linux/sh64/arch_defs_.h: Likewise. * Makefile.am (EXTRA_DIST): Add them. * defs.h (NEED_UID16_PARSERS): Remove. * linux/syscall.h: Check for HAVE_ARCH_UID16_SYSCALLS instead of NEED_UID16_PARSERS. * uid.c: Likewise.
* Replace HAVE_GETRVAL2 with HAVE_ARCH_GETRVAL2Dmitry V. Levin2018-01-211-0/+6
| | | | | | | | | | | | | | | | | * linux/arch_defs_.h [!HAVE_ARCH_GETRVAL2] (HAVE_ARCH_GETRVAL2): New macro. * linux/alpha/arch_defs_.h: New file. * linux/ia64/arch_defs_.h: Likewise. * linux/mips/arch_defs_.h: Likewise. * linux/sh/arch_defs_.h: Likewise. * linux/sparc/arch_defs_.h: Likewise. * linux/sparc64/arch_defs_.h: Likewise. * Makefile.am (EXTRA_DIST): Add them. * defs.h (HAVE_GETRVAL2): Remove. (getrval2): Check for HAVE_ARCH_GETRVAL2 instead of arch checks. * net.c (SYS_FUNC(pipe)): Check for HAVE_ARCH_GETRVAL2 instead of HAVE_GETRVAL2. * syscall.c: Likewise.
* Rename arch-specific arch_defs.h files to arch_defs_.hDmitry V. Levin2018-01-211-9/+10
| | | | | | | | | | | | | | | | | | Introduce a new arch_defs.h header that includes the corresponding arch-specific arch_defs_.h file followed by generic arch_defs_.h file. * linux/arch_defs.h: Rename to linux/arch_defs_.h. * linux/aarch64/arch_defs.h: Rename to linux/aarch64/arch_defs_.h. * linux/arm/arch_defs.h: Rename to linux/arm/arch_defs_.h. * linux/i386/arch_defs.h: Rename to linux/i386/arch_defs_.h. * linux/m68k/arch_defs.h: Rename to linux/m68k/arch_defs_.h. * linux/s390/arch_defs.h: Rename to linux/s390/arch_defs_.h. * linux/s390x/arch_defs.h: Rename to linux/s390x/arch_defs_.h. * linux/x32/arch_defs.h: Rename to linux/x32/arch_defs_.h. * linux/x86_64/arch_defs.h: Rename to linux/x86_64/arch_defs_.h. * arch_defs.h: New file. * Makefile.am (strace_SOURCES): Add it. (EXTRA_DIST): Rename linux/*/arch_defs.h to linux/*/arch_defs_.h.
* Add compat support for s390xEugene Syromyatnikov2018-01-191-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By very popular demand. While we are here, let's refactor the condition for old_mmap_pgoff into an arch-specific one, as it is used more than in one place. * NEWS: Mention this. * strace.1.in (.SH "MULTIPLE PERSONALITY SUPPORT"): Likewise. * configure.ac (case "$host_cpu" in) <s390x>: Set arch_m32 to s390, set cc_flags_m32 to -m31. (st_MPERS([m32])): Add s390x. * defs.h [S390X]: Define NEED_UID16_PARSERS. * linux/s390/arch_sigreturn.c [!S390_FRAME_PTR] (S390_FRAME_PTR): New macro, define to s390_frame_ptr. [!SIGNAL_FRAMESIZE] (SIGNAL_FRAMESIZE): New macro, define to __SIGNAL_FRAMESIZE. [!PTR_TYPE] (PTR_TYPE): New macro, define to unsigned long. (arch_sigreturn): Use S390_FRAME_PTR, SIGNAL_FRAMESIZE, and PTR_TYPE instead of s390_frame_ptr, __SIGNAL_FRAMESIZE, and pointer-sized type, respectively. * linux/s390/get_error.c [!ARCH_REGSET] (ARCH_REGSET): New macro, define * to s390_regset. (get_error): Use it instead of s390_regset. * linux/s390/get_scno.c (arch_get_scno): Likewise. * linux/s390/get_syscall_args.c (get_syscall_args): Likewise. * linux/s390/set_error.c (arch_set_error, arch_set_success): Likewise. * linux/s390/set_scno.c (arch_set_scno): Likewise. * linux/s390x/arch_regs.c (psw_compat_t, s390_compat_regs, s390x_regs_union, s390_frame_ptr, s390x_frame_ptr, s390x_io): New variables. (s390_regset, s390x_regset, ARCH_REGS_FOR_GETREGSET, ARCH_IOVEC_FOR_GETREGSET, ARCH_PC_REG, ARCH_PERSONALITY_0_IOV_SIZE, ARCH_PERSONALITY_1_IOV_SIZE): New macros. * linux/s390x/arch_regs.h (s390_frame_ptr, s390x_frame_ptr): New prototypes. * linux/s390x/arch_rt_sigframe.c: Conditionalize on tcp->currpers. * linux/s390x/arch_sigreturn.c: Likewise. * linux/s390x/get_error.c: Likewise. * linux/s390x/get_scno.c: Likewise. * linux/s390x/get_syscall_args.c: Likewise. * linux/s390x/set_error.c: Likewise. * linux/s390x/set_scno.c: Likewise. * linux/s390x/errnoent1.h: New file. * linux/s390x/ioctls_arch1.h: Likewise. * linux/s390x/ioctls_inc1.h: Likewise. * linux/s390x/signalent1.h: Likewise. * linux/s390x/syscallent1.h: Likewise. * Makefile.am (EXTRA_DIST): Add new files added to linux/s390x. * supported_personalities.h [S390X] (SUPPORTED_PERSONALITIES): Define to 2. * tests/strace-V.test: Add s390 to the list of architectures that have m32 personality. * linux/s390/arch_defs.h (HAVE_ARCH_OLD_MMAP_PGOFF): New macro. * linux/s390x/arch_defs.h: Likewise. * mem.c: Replace #ifdef S390 with #ifdef HAVE_ARCH_OLD_MMAP_PGOFF. * pathtrace.c: Likewise.
* Introduce arch-specific define HAVE_ARCH_OLD_MMAPEugene Syromyatnikov2018-01-171-0/+9
| | | | | | | | | | | | | | | | | | * linux/arch_defs.h: New file. * linux/aarch64/arch_defs.h: New file. Define HAVE_ARCH_OLD_MMAP. * linux/arm/arch_defs.h: Likewise. * linux/i386/arch_defs.h: Likewise. * linux/m68k/arch_defs.h: Likewise. * linux/s390/arch_defs.h: Likewise. * linux/s390x/arch_defs.h: Likewise. * linux/x32/arch_defs.h: Likewise. * linux/x86_64/arch_defs.h: Likewise. * Makefile.am (EXTRA_DIST): Add them. * defs.h: Include "arch_defs.h" * mem.c: Replace condition for SYS_FUNC(old_mmap) with #ifdef HAVE_ARCH_OLD_MMAP. Suggested-by: Dmitry V. Levin <ldv@altlinux.org>
* Add support for specifying compiler options for mpers buildsEugene Syromyatnikov2018-01-161-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Because some architectures are very, very special. * configure.ac (cc_flags_m32, cc_flags_mx32): New variables. AC_SUBST them. * m4/mpers.m4 (MPERS_CFLAGS): Use instead of CFLAG, pushdef as $cc_flags_$1. Use mpers_name instead of CFLAG in AC_CACHE_CHECK messages. Pass MPERS_CFLAGS as the second argument to mpers_test.sh * mpers.sh: Add CC_ARCH_FLAGS as the second argument (PARSER_FILE is moved to the third one). Do not expect leading dash in ARCH_FLAG anymore. * mpers_test.sh (mpers_cc_flags): New variable, initialise to the second command line argument. Pass $mpers_name without leading dash to mpers.sh. Pass $mpers_cc_flags as the second argument to mpers.sh ($sample is the third argument now). * Makefile.am (mpers-m%.stamp:): Pass $(mpers_CC_FLAGS) as the second argument to mpers.sh ($$f is now the third argument). ($(mpers_m32_targets)): Define target variable mpers_CC_FLAGS with the value of @cc_flags_m32@ ($(mpers_mx32_targets)): Define target variable mpers_CC_FLAGS with the value of @cc_flags_mx32@ * tests/Makefile.am (MERS_CC_FLAGS): New variable. * bootstrap: Append @cc_flags_$1@ to MPERS_CC_FLAGS. Append $(MPERS_CC_FLAGS) to ARCH_MFLAGS.
* Introduce hardened xsprintf/xsnprintf macrosEugene Syromyatnikov2018-01-051-0/+1
| | | | | | | | | | Let's try to future/fool-proof code a bit by introducing variants of sprintf/snprintf that die if an overflow (or an error) occurs. They are deemed to be the default choice for printing to some local string buffer where no sensible error handling is implemented. * xstring.h: New file. * Makefile.am (strace_SOURCES): Add it.
* Move enum trace_event into a separate headerEugene Syromiatnikov2018-01-041-0/+1
| | | | | | | | | As it will have users outside strace.c in the future. * trace_event.h (enum trace_event): Move it from... * strace.c (enum trace_event): ...here. (#include "trace_event.h"): New header, for enum trace_event. * Makefile.am (strace_SOURCES): Add trace_event.h.
* unwind: demangle symbol namesMasatake YAMATO2017-12-261-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement demangling of C++ symbol names in stack trace using cplus_demangle function from GNU libiberty library. This is an example demangled stack trace output: fstat(5, {st_mode=S_IFREG|0664, st_size=0, ...}) = 0 > /usr/lib64/libc-2.25.so(__fxstat64+0x12) [0xffd62] > /usr/lib64/libc-2.25.so(_IO_file_doallocate+0x5f) [0x717ff] > /usr/lib64/libc-2.25.so(_IO_doallocbuf+0x79) [0x81699] > /usr/lib64/libc-2.25.so(_IO_file_overflow+0x198) [0x807b8] > /usr/lib64/libc-2.25.so(_IO_file_xsputn+0xbd) [0x7ed5d] > /usr/lib64/libc-2.25.so(fwrite_unlocked+0x60) [0x7d800] > /usr/lib64/libleveldb.so.1.18(leveldb::EnvWrapper::StartThread+0x3b6) [0x48656] > /usr/lib64/libleveldb.so.1.18(leveldb::log::Writer::EmitPhysicalRecord+0x89) [0x28bc9] > /usr/lib64/libleveldb.so.1.18(leveldb::log::Writer::AddRecord+0x9e) [0x28d9e] > /usr/lib64/libleveldb.so.1.18(leveldb::DBImpl::Write+0x208) [0x1ce18] > /usr/lib64/libleveldb.so.1.18(leveldb::DB::Put+0x59) [0x192b9] > /usr/lib64/libleveldb.so.1.18(leveldb::DBImpl::Put+0x1d) [0x1931d] > /home/yamato/var/leveldb/doc/a.out(main+0x120) [0x1107] > /usr/lib64/libc-2.25.so(__libc_start_main+0xea) [0x2088a] > /home/yamato/var/leveldb/doc/a.out(_start+0x2a) [0xf3a] * Makefile.am [USE_DEMANGLE] (strace_CPPFLAGS, strace_LDFLAGS, libiberty_LDADD): Append libiberty_CPPFLAGS, strace_LDFLAGS, and libiberty_LIBS, respectively. * configure.ac: Add --with-libiberty option. Check cplus_demangle support in libiberty. * unwind.c [USE_DEMANGLE]: Include <demangle.h>. (print_stack_frame) [USE_DEMANGLE]: Use cplus_demangle. Signed-off-by: Masatake YAMATO <yamato@redhat.com>
* Remove linux/ptp_clock.hDmitry V. Levin2017-12-231-1/+0
| | | | | | | | | | | | | As linux kernel provides a compatible linux/ptp_clock.h header since commit v3.8-rc1~139^2~514, there is no need for a local copy. * linux/ptp_clock.h: Remove. * Makefile.am (EXTRA_DIST): Remove it. * configure.ac (AC_CHECK_TYPES): Check for struct ptp_sys_offset in <linux/ptp_clock.h>. * ioctl.c (ioctl_decode) <case '='>: Conditionalize on [HAVE_STRUCT_PTP_SYS_OFFSET]. * ptp.c: Likewise.
* Remove linux/ubi-user.hDmitry V. Levin2017-12-231-1/+0
| | | | | | | | | | | | | As linux kernel provides a compatible mtd/ubi-user.h header since commit v3.7-rc1~85^2~17, there is no need for a local copy. * linux/ubi-user.h: Remove. * Makefile.am (EXTRA_DIST): Remove it. * configure.ac (AC_CHECK_MEMBERS): Check for struct ubi_attach_req.max_beb_per1024 in <mtd/ubi-user.h>. * ioctl.c (ioctl_decode) <case 'o', case 'O'>: Conditionalize on HAVE_STRUCT_UBI_ATTACH_REQ_MAX_BEB_PER1024. * ubi.c: Likewise.
* Remove linux/mtd-abi.hDmitry V. Levin2017-12-231-1/+0
| | | | | | | | | | | | | | | As linux kernel provides a compatible mtd/mtd-abi.h header since commit v3.2-rc1~14^2~33, there is no need for a local copy. * linux/mtd-abi.h: Remove. * Makefile.am (EXTRA_DIST): Remove it. * configure.ac (AC_CHECK_TYPES): Check for struct mtd_write_req in <mtd/mtd-abi.h>. * ioctl.c (ioctl_decode) <case 'M'>: Conditionalize on [HAVE_STRUCT_MTD_WRITE_REQ]. * mtd.c: Likewise. * tests/ioctl_mtd.c: Likewise. * tests/ioctl.c (main): Likewise.
* Remove linux/personality.hDmitry V. Levin2017-12-231-1/+0
| | | | | | | | | * linux/personality.h: Remove. * Makefile.am (EXTRA_DIST): Remove it. * personality.c: Do not include <linux/personality.h>, include "xlat/personality_flags.h" before "xlat/personality_types.h". * xlat/personality_flags.in: Provide fallback definitions. * xlat/personality_types.in: Likewise.
* kvm: decode the argument of KVM_{SET, GET}_REGS ioctl commandMasatake YAMATO2017-12-041-0/+4
| | | | | | | | | | | | | | * configure.ac (AC_CHECK_TYPES): Add struct kvm_regs. * linux/arck_kvm.c: New file. * linux/x86_64/arch_kvm.c: Likewise. * linux/i386/arch_kvm.c: Likewise. * linux/x32/arch_kvm.c: Likewise. * Makefile.am (EXTRA_DIST): Add them. * kvm.c: Include "arch_kvm.c". [HAVE_STRUCT_KVM_REGS] (kvm_ioctl_decode_regs): New function. (kvm_ioctl) [HAVE_STRUCT_KVM_REGS] <KVM_SET_REGS, KVM_GET_REGS>: Use it. Signed-off-by: Masatake YAMATO <yamato@redhat.com>
* ioctl: add a stub for decoding kvm related ioctlsMasatake YAMATO2017-12-011-0/+1
| | | | | | | | | | * kvm.c: New file. * Makefile.am (strace_SOURCES): Add it. * configure.ac (AC_CHECK_HEADERS): Add linux/kvm.h. * defs.h (kvm_ioctl): New prototype. * ioctl.c (ioctl_decode) HAVE_LINUX_KVM_H]: Use kvm_ioctl. Signed-off-by: Masatake YAMATO <yamato@redhat.com>
* Add strace-log-merge man pageEugene Syromyatnikov2017-11-301-1/+1
| | | | | | | | | * strace-log-merge.1.in: New file. * NEWS: Mention this. * .gitignore: Add strace-log-merge.1. * Makefile.am (man_MANS): Likewise. * configure.ac (AC_CONFIG_FILES): Likewise. * debian/strace.manpages: Likewise.
* mpers: fix cross-compilingDmitry V. Levin2017-11-251-2/+7
| | | | | | | | | | | | | | | | | In cross builds, a target version of readelf has to be used instead of a native one. * configure.ac (AC_CHECK_TOOL): Add readelf. * Makefile.am (READELF): New variable. (mpers-m%.stamp): Pass it to $(srcdir)/mpers.sh. * m4/mpers.m4 (st_MPERS): Pass READELF environment variable to $srcdir/mpers_test.sh. * mpers.sh (READELF): New variable. Use it instead of readelf. * maint/ioctls_sym.sh: Likewise. * NEWS: Mention this fix. Reported-by: Rolf Eike Beer <eb@emlix.com>
* Makefile.am: use gen-contributors-list.sh for CREDITSEugene Syromyatnikov2017-11-131-4/+3
| | | | | * Makefile.am ($(srcdir)/CREDITS): Employ maint/gen-contributors-list.sh for the contributor list generation.
* keyctl: add support for KDF parameters decoding in KEYCTL_DH_COMPUTEEugene Syromyatnikov2017-09-021-0/+2
| | | | | | | | | | | | | | | | | | | | * fetch_struct_keyctl_kdf_params.c: New file. * keyctl_kdf_params.h: Likewise. * Makefile.am (strace_SOURCES): Add them. * configure.ac: Add check for struct keyctl_kdf_params presence in <linux/keyctl.h>. * defs.h (struct strace_keyctl_kdf_params): Add forward declaration. * keyctl.c (keyctl_dh_compute): Add new parameter kdf_addr, print it on exiting. (SYS_FUNC(keyctl)) <case KEYCTL_DH_COMPUTE>: Pass arg5 to keyctl_dh_compute. * tests/keyctl.c: Include assert.h. (struct keyctl_kdf_params) [!HAVE_STRUCT_KEYCTL_KDF_PARAMS]: New definition. (STR32): New definition, copied from ioctl_dm.c. (append_str, kckdfp_to_str): New functions. (main): Update expected output, add checks for struct keyctl_kdf_params decoding.
* Move number_set interface to separate filesDmitry V. Levin2017-08-221-0/+2
| | | | | | | | | | | | | | | | | * number_set.c: New file. * number_set.h: Likewise. * Makefile.am (strace_SOURCES): Add them. * basic_filters.c: Include "number_set.h". (number_slot_t, struct number_set): Move to number_set.h. (BITS_PER_SLOT, number_setbit, number_isset, reallocate_number_set, add_number_to_set, is_number_in_set): Move to number_set.c. * defs.h (struct number_set): Remove forward declaration. (read_set, write_set, signal_set, is_number_in_set): Move to number_set.h. * filter.h (add_number_to_set): Move to number_set.h. * filter_qualify.c: Include "number_set.h". (number_slot_t, struct number_set): Remove. * strace.c: Include "number_set.h". * syscall.c: Likewise.
* Move SUPPORTED_PERSONALITIES to a separate fileEdgar Kaziakhmedov2017-08-221-0/+1
| | | | | | | | | | | | | | | Since the defs.h contains unrelated declarations which are redundant (and sometimes conflicting) for other binaries included in the strace package, move SUPPORTED_PERSONALITIES defintions to a separate file. * defs.h: Include "supported_personalities.h". (SUPPORTED_PERSONALITIES): Move ... * supported_personalities.h: ... to the new file. * Makefile.am (strace_SOURCES): Add it. Signed-off-by: Edgar Kaziakhmedov <edgar.kaziakhmedov@virtuozzo.com> Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
* Move string_to_uint* functions to a separate fileEdgar Kaziakhmedov2017-08-221-0/+2
| | | | | | | | | | | | | | | | Make string_to_uint* functions available to other binaries included in the strace package. * string_to_uint.h: New file. * defs.h: Include it. (string_to_uint_ex, string_to_uint_upto, string_to_uint): Move to string_to_uint.h. * util.c (string_to_uint_ex, string_to_uint): Move ... * string_to_uint.c: ... to the new file. * Makefile.am (strace_SOURCES): Add string_to_uint.h and string_to_uint.c. Signed-off-by: Edgar Kaziakhmedov <edgar.kaziakhmedov@virtuozzo.com> Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
* netlink: add a basic rtnetlink parser of nsid messagesJingPiao Chen2017-08-141-0/+1
| | | | | | | | | | * rtnl_nsid.c: New file. * Makefile.am (strace_SOURCES): Add it. * netlink_route.h (decode_rtgenmsg): New prototype. * netlink_route.c (route_decoders): Add RTM_DELNSID, RTM_GETNSID, and RTM_NEWNSID. Co-authored-by: Fabien Siron <fabien.siron@epita.fr>
* netlink: add a basic rtnetlink parser of mdb messagesJingPiao Chen2017-08-141-0/+1
| | | | | | | | | | | | * rtnl_mdb.c: New file. * Makefile.am (strace_SOURCES): Add it. * netlink_route.h (decode_br_port_msg): New prototype. * configure.ac (AC_CHECK_TYPES): Check for struct br_port_msg in <linux/if_bridge.h>. * netlink_route.c (route_decoders): Add RTM_DELMDB, RTM_GETMDB, and RTM_NEWMDB. Co-authored-by: Fabien Siron <fabien.siron@epita.fr>
* netlink: add a basic rtnetlink parser of netconf messagesJingPiao Chen2017-08-141-0/+1
| | | | | | | | | | | | * rtnl_netconf.c: New file. * Makefile.am (strace_SOURCES): Add it. * netlink_route.h (decode_netconfmsg): New prototype. * configure.ac (AC_CHECK_TYPES): Check for struct netconfmsg in <linux/netconf.h>. * netlink_route.c (route_decoders): Add RTM_GETNETCONF and RTM_NEWNETCONF. Co-authored-by: Fabien Siron <fabien.siron@epita.fr>
* netlink: add a basic rtnetlink parser of dcb messagesJingPiao Chen2017-08-141-0/+1
| | | | | | | | | | | | * rtnl_dcb.c: New file. * Makefile.am (strace_SOURCES): Add it. * netlink_route.h (decode_dcbmsg): New prototype. * configure.ac (AC_CHECK_HEADERS): Add linux/dcbnl.h. (AC_CHECK_TYPES): Check for struct dcbmsg in <linux/dcbnl.h>. * netlink_route.c (route_decoders): Add RTM_GETDCB and RTM_SETDCB. * xlat/dcb_commands.in: New file. Co-authored-by: Fabien Siron <fabien.siron@epita.fr>
* netlink: add a basic rtnetlink parser of addrlabel messagesJingPiao Chen2017-08-141-0/+1
| | | | | | | | | | | | * rtnl_addrlabel.c: New file. * Makefile.am (strace_SOURCES): Add it. * netlink_route.h (decode_ifaddrlblmsg): New prototype. * configure.ac (AC_CHECK_TYPES): Check for struct ifaddrlblmsg in <linux/if_addrlabel.h>. * netlink_route.c (route_decoders): Add RTM_DELADDRLABEL, RTM_GETADDRLABEL, and RTM_NEWADDRLABEL. Co-authored-by: Fabien Siron <fabien.siron@epita.fr>
* netlink: add a basic rtnetlink parser of tc action messagesJingPiao Chen2017-08-141-0/+1
| | | | | | | | | | * rtnl_tc_action.c: New file. * Makefile.am (strace_SOURCES): Add it. * netlink_route.h (decode_tcamsg): New prototype. * netlink_route.c (route_decoders): Add RTM_DELACTION, RTM_GETACTION, and RTM_NEWACTION. Co-authored-by: Fabien Siron <fabien.siron@epita.fr>
* netlink: add a basic rtnetlink parser of tc messagesJingPiao Chen2017-08-141-0/+1
| | | | | | | | | | | * rtnl_tc.c: New file. * Makefile.am (strace_SOURCES): Add it. * netlink_route.h (decode_tcmsg): New prototype. * netlink_route.c (route_decoders): Add RTM_DELQDISC, RTM_GETQDISC, RTM_NEWQDISC, RTM_DELTCLASS, RTM_GETTCLASS, RTM_NEWTCLASS, RTM_DELTFILTER, RTM_GETTFILTER, and RTM_NEWTFILTER. Co-authored-by: Fabien Siron <fabien.siron@epita.fr>
* netlink: add a basic rtnetlink parser of neightbl messagesJingPiao Chen2017-08-141-0/+1
| | | | | | | | | | * rtnl_neightbl.c: New file. * Makefile.am (strace_SOURCES): Add it. * netlink_route.h (decode_ndtmsg): New prototype. * netlink_route.c (route_decoders): Add RTM_GETNEIGHTBL, RTM_NEWNEIGHTBL, and RTM_SETNEIGHTBL. Co-authored-by: Fabien Siron <fabien.siron@epita.fr>
* netlink: add a basic rtnetlink parser of neigh messagesJingPiao Chen2017-08-141-0/+1
| | | | | | | | | | | | | | * rtnl_neigh.c: New file. * Makefile.am (strace_SOURCES): Add it. * netlink_route.h (decode_ndmsg, decode_rtm_getneigh): New prototypes. * configure.ac (AC_CHECK_HEADERS): Add linux/neighbour.h. * netlink_route.c (route_decoders): Add RTM_DELNEIGH, RTM_DELNEIGH, and RTM_NEWNEIGH. * xlat/nda_types.in: New file. * xlat/neighbor_cache_entry_flags.in: Likewise. * xlat/neighbor_cache_entry_states.in: Likewise. Co-authored-by: Fabien Siron <fabien.siron@epita.fr>