strace: update 4.10 -> 4.11
PATCH 1/1 strace: update 4.10 -> 4.11
Noteworthy changes in release 4.11 (2015-12-21)
===============================================
* Changes in behavior
* Some syscalls have different names depending on architecture and personality. In these cases, syscall filtering and printing now consistently uses the names that match corresponding __NR_* kernel macros of the tracee's architecture and personality.
* Added strace prefix to all diagnostic messages.
* Improvements
* Enhanced and extended test suite.
* Implemented reliable tracing of processes whose personality differs from the personality of strace, fixed decoding of 32-bit personality syscalls on 64-bit architectures.
* When some data referenced by syscall arguments is irrelevant or cannot be read from tracee's memory, strace now prints its address consistently.
* When a syscall is restarted using restart_syscall mechanism, strace now shows the syscall name on architectures that expose this information.
* Print values returned by epoll_create1, eventfd, eventfd2, fanotify_init, inotify_init1, perf_event_open, pipe, pipe2, signalfd, signalfd4, socket, socketpair, timerfd, and timerfd_create syscalls, as well as F_DUPFD and F_DUPFD_CLOEXEC fcntl commands, as file descriptors.
* Optimized decoding of indirect socket syscalls.
* Implemented decoding of nanoseconds along with seconds in stat family
syscalls (addresses Fedora bug #1251176).
* Implemented decoding of struct statfs.f_flags in statfs syscall.
* Implemented decoding of siginfo_t.si_syscall and siginfo_t.si_arch
in SIGSYS signal.
* Implemented decoding of indirect syscall on mips o32.
* Implemented decoding of IPPROTO_IP control messages.
* Implemented decoding of setsockopt syscall multicast arguments.
* Enhanced decoding of struct sigevent.
* Enhanced decoding of block, loop, mtd, ptp, rtc, SG_IO, socket, tty,
and v4l2 ioctl syscall arguments.
* Enhanced decoding of epoll_create, fcntl, fcntl64, futex, getdents,
getdents64, getsockopt, io_*, mount, msgctl, prctl, quotactl, recvfrom,
sendfile, setsockopt, and shmctl syscalls.
* Implemented decoding of bpf, execveat, ioperm, iopl, kcmp, kexec_file_load,
lookup_dcookie, membarrier, memfd_create, mlock2, name_to_handle_at,
open_by_handle_at, sched_getattr, sched_setattr, and userfaultfd syscalls.
* Updated lists of AF_*, EPOLL_*, FALLOC_FL_*, F_*, INPUT_PROP_*, IPPROTO_*,
IPV6_*, IP_*, KEY_*, LOCK_*, MNT_*, MS_*, PACKET_*, PERF_FLAG_*, PF_*,
PR_*, PTRACE_O_*, RENAME_*, SCTP_*, SECBIT_*, SO_*, TCP_*, and siginfo_t
constants. * Added Nios II architecture support.
* Added new syscall entries to match Linux 4.4.
* Bug fixes
* Fixed potential short read of strings from tracee's memory.
* Fixed -qq option in conjunction with -o option.
* Fixed filtering of <unavailable> syscalls.
* Fixed decoding of ioctl syscall command on aarch64 and 32-bit architectures with 64-bit aligned structures.
* Fixed decoding of eventfd2, epoll_create1, signalfd4, and sync_file_range2 syscall flags arguments.
* Fixed decoding of 4th argument of clock_nanosleep syscall.
* Fixed decoding of getpagesize syscall on m68k.
* Fixed decoding of getrandom and seccomp syscalls on aarch64.
* Fixed decoding of timezone argument of gettimeofday and settimeofday
* syscalls.
* Fixed decoding of offset argument of mmap2 syscall on arm, sparc, and sparc64.
* Fixed decoding of pipe syscall on alpha and mips.
* Fixed decoding of pipe2 syscall on ia64, sh, sparc, and sparc64.
* Fixed decoding of signal mask argument of pselect6 syscall on x32.
* Fixed decoding of signal mask of rt_sigreturn syscall on aarch64, m68k,
and x32.
* Fixed decoding of 4th argument of semctl indirect syscall.
* Fixed decoding of sa_restorer and sa_mask of sigaction syscall on m68k.
* Fixed decoding of statfs64 and fstatfs64 syscalls on arm eabi.
* Fixed decoding of struct dirent on x32.
* Fixed decoding of times syscall return value on mips n32 and x32.
* Fixed decoding of path argument of umount2 syscall
(addresses Debian bug #785050). * Worked around a kernel bug in tracing privileged executables.
* Fixed various errors in mapping between syscall numbers and associated information like the number of syscall arguments, the name of syscall, and syscall decoder.
---
.../0001-Add-linux-aarch64-arch_regs.h.patch | 25 --------
.../Include-linux-ioctl.h-for-_IOC_-macros.patch | 69 ----------------------
.../strace/Include-sys-stat.h-for-S_I-macros.patch | 52 ----------------
.../strace/strace/Makefile-ptest.patch | 18 +++---
.../strace/strace-add-configure-options.patch | 10 ++--
.../strace/{strace_4.10.bb => strace_4.11.bb} | 12 ++--
6 files changed, 19 insertions(+), 167 deletions(-)
delete mode 100644 meta/recipes-devtools/strace/strace/0001-Add-linux-aarch64-arch_regs.h.patch
delete mode 100644 meta/recipes-devtools/strace/strace/Include-linux-ioctl.h-for-_IOC_-macros.patch
delete mode 100644 meta/recipes-devtools/strace/strace/Include-sys-stat.h-for-S_I-macros.patch
rename meta/recipes-devtools/strace/{strace_4.10.bb => strace_4.11.bb} (77%)meta/recipes-devtools/strace/strace/0001-Add-linux-aarch64-arch_regs.h.patch deleted +0 -25
@@ -1,25 +0,0 @@ -From f85854131c8265f2eb59c714dcea5c4b3dc09bed Mon Sep 17 00:00:00 2001 -From: Koen Kooi <[email protected]> -Date: Wed, 15 Apr 2015 14:29:37 +0200 -Subject: [PATCH] Add linux/aarch64/arch_regs.h - -It is missing from the tarball, but it is present in git for v4.10 - -Signed-off-by: Koen Kooi <[email protected]> -Upstream-Status: Pending ---- - linux/aarch64/arch_regs.h | 2 ++ - 1 file changed, 2 insertions(+) - create mode 100644 linux/aarch64/arch_regs.h - -diff --git a/linux/aarch64/arch_regs.h b/linux/aarch64/arch_regs.h -new file mode 100644 -index 0000000..9a5e33e ---- /dev/null -+++ b/linux/aarch64/arch_regs.h -@@ -0,0 +1,2 @@ -+extern uint64_t *const aarch64_sp_ptr; -+extern uint32_t *const arm_sp_ptr; --- -1.9.3 -
meta/recipes-devtools/strace/strace/Include-linux-ioctl.h-for-_IOC_-macros.patch deleted +0 -69
69 lines not on this page · raw message
meta/recipes-devtools/strace/strace/Include-sys-stat.h-for-S_I-macros.patch deleted +0 -52
52 lines not on this page · raw message
meta/recipes-devtools/strace/strace/Makefile-ptest.patch +9 -9
@@ -10,32 +10,32 @@ Signed-off-by: Chong Lu <[email protected]> 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index e73958c..5f0dfee 100644 +index 0209bac..b969e25 100644 --- a/configure.ac +++ b/configure.ac -@@ -6,7 +6,7 @@ AC_INIT([strace], +@@ -36,7 +36,7 @@ AC_INIT([strace], AC_CONFIG_SRCDIR([strace.c]) AC_CONFIG_AUX_DIR([.]) AC_CONFIG_HEADERS([config.h]) --AM_INIT_AUTOMAKE([foreign dist-xz no-dist-gzip silent-rules parallel-tests]) -+AM_INIT_AUTOMAKE([foreign dist-xz no-dist-gzip silent-rules serial-tests]) +-AM_INIT_AUTOMAKE([foreign nostdinc dist-xz no-dist-gzip silent-rules parallel-tests]) ++AM_INIT_AUTOMAKE([foreign nostdinc dist-xz no-dist-gzip silent-rules serial-tests]) AM_MAINTAINER_MODE AC_CANONICAL_HOST diff --git a/tests/Makefile.am b/tests/Makefile.am -index ff5e136..984bdb6 100644 +index 0f23b4b..429f7e9 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am -@@ -101,3 +101,21 @@ EXTRA_DIST = init.sh run.sh \ - $(TESTS) +@@ -332,3 +332,21 @@ ksysent.h: $(srcdir)/ksysent.sed - CLEANFILES = $(TESTS:=.tmp) + BUILT_SOURCES = ksysent.h + CLEANFILES = ksysent.h $(TESTS:=.tmp) + +buildtest-TESTS: $(check_PROGRAMS) $(TESTS) + +install-ptest: + install $(BUILDDIR)/strace $(DESTDIR) -+ install "$(srcdir)/.."/strace-log-merge $(DESTDIR) ++ install $(srcdir)/../strace-log-merge $(DESTDIR) + install -d $(DESTDIR)/$(TESTDIR) + cp $(BUILDDIR)/$(TESTDIR)/Makefile $(DESTDIR)/$(TESTDIR) + sed -i -e 's/^Makefile:/_Makefile:/' $(DESTDIR)/$(TESTDIR)/Makefile
meta/recipes-devtools/strace/strace/strace-add-configure-options.patch +5 -5
@@ -9,10 +9,10 @@ Signed-off-by: Chong Lu <[email protected]> 1 file changed, 26 insertions(+) diff --git a/configure.ac b/configure.ac -index e73958c..9099370 100644 +index 1524b9b..0209bac 100644 --- a/configure.ac +++ b/configure.ac -@@ -270,6 +270,18 @@ AC_CHECK_HEADERS(m4_normalize([ +@@ -341,6 +341,18 @@ AC_CHECK_HEADERS(m4_normalize([ sys/vfs.h sys/xattr.h ]))
@@ -24,14 +24,14 @@ index e73958c..9099370 100644 + AC_CHECK_HEADERS([sys/acl.h]) + ;; + no) ;; -+ *) AC_MSG_ERROR([bad value $enableval for aio option]) ;; ++ *) AC_MSG_ERROR([bad value $enableval for acl option]) ;; + esac] +) + + AC_CHECK_HEADERS([linux/mqueue.h],,, [#include <linux/types.h>]) AC_CHECK_HEADERS([linux/icmp.h linux/in6.h linux/netlink.h linux/if_packet.h], [], [], [#include <stddef.h> - #include <sys/socket.h> -@@ -745,6 +757,20 @@ if test "x$ac_cv_lib_dl_dladdr" = xyes; then +@@ -845,6 +857,20 @@ if test "x$ac_cv_lib_dl_dladdr" = xyes; then fi AC_SUBST(dl_LIBS)
meta/recipes-devtools/strace/strace_4.11.bb renamed from meta/recipes-devtools/strace/strace_4.10.bb +5 -7
@@ -5,19 +5,17 @@ LICENSE = "BSD" LIC_FILES_CHKSUM = "file://COPYING;md5=124500c21e856f0912df29295ba104c7" SRC_URI = "${SOURCEFORGE_MIRROR}/strace/strace-${PV}.tar.xz \ - file://0001-Add-linux-aarch64-arch_regs.h.patch \ file://git-version-gen \ file://strace-add-configure-options.patch \ file://Makefile-ptest.patch \ file://run-ptest \ - file://Include-sys-stat.h-for-S_I-macros.patch \ - file://Include-linux-ioctl.h-for-_IOC_-macros.patch \ " -SRC_URI[md5sum] = "107a5be455493861189e9b57a3a51912" -SRC_URI[sha256sum] = "e6180d866ef9e76586b96e2ece2bfeeb3aa23f5cc88153f76e9caedd65e40ee2" +SRC_URI[md5sum] = "a15d2555a7febb56d00c6e1a51c655dc" +SRC_URI[sha256sum] = "e86a5f6cd8f941f67f3e4b28f4e60f3d9185c951cf266404533210a2e5cd8152" inherit autotools ptest bluetooth + RDEPENDS_${PN}-ptest += "make coreutils grep gawk" PACKAGECONFIG_class-target ??= "\
@@ -25,10 +23,10 @@ PACKAGECONFIG_class-target ??= "\ ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ " -PACKAGECONFIG[libaio] = "--enable-aio,--disable-aio,libaio" PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl" -PACKAGECONFIG[libunwind] = "--with-libunwind, --without-libunwind, libunwind" PACKAGECONFIG[bluez] = "ac_cv_header_bluetooth_bluetooth_h=yes,ac_cv_header_bluetooth_bluetooth_h=no,${BLUEZ}" +PACKAGECONFIG[libaio] = "--enable-aio,--disable-aio,libaio" +PACKAGECONFIG[libunwind] = "--with-libunwind,--without-libunwind,libunwind" TESTDIR = "tests"
Signature · 1 line
1.9.1
Quoted 2 lines · Andre McCurdy
Noteworthy changes in release 4.11 (2015-12-21)
They forgot to mention "breaks on the yocto autobuilder". :)
| /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-deb-non-deb/build/build/tmp/work/i586-poky-linux/strace/4.11-r0/strace-4.11/tests/ksysent.c:45:24:
fatal error: syscallent.h: No such file or directory
| compilation terminated. | make: *** [ksysent.o] Error 1 | make: Leaving directory
`/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-deb-non-deb/build/build/tmp/work/i586-poky-linux/strace/4.11-r0/build/tests' | ERROR: Function failed: do_compile_ptest_base (log file is located at /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-deb-non-deb/build/build/tmp/work/i586-poky-linux/strace/4.11-r0/temp/log.do_compile_ptest_base.18605)
Did you test with ptests enabled?
(full log at
https://autobuilder.yoctoproject.org/main/builders/nightly-deb-non-deb/builds/235/steps/BuildImages/logs/stdio
)
Ross
Quoted 11 lines · Ross
Quoted 2 lines · Andre McCurdy
Noteworthy changes in release 4.11 (2015-12-21)
They forgot to mention "breaks on the yocto autobuilder". :)
|
/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-deb-non-deb/build/build/tmp/work/i586-poky-linux/strace/4.11-r0/strace-4.11/tests/ksysent.c:45:24:
fatal error:syscallent.h: No such file or directory
Quoted 8 lines
| compilation terminated. | make: *** [ksysent.o] Error 1 | make: Leaving directory`/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-deb-non-deb/build/build/tmp/work/i586-poky-linux/strace/4.11-r0/build/tests' | ERROR: Function failed:
do_compile_ptest_base(log file is located at/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-deb-non-deb/build/build/tmp/work/i586-poky-linux/strace/4.11-r0/temp/log.do_compile_ptest_base.18605)Did you test with ptests enabled?
Not for x86 :-(
Error is due to do_compile_ptest() forcing ARCH="${TARGET_ARCH}". The tests Makefile uses ARCH to setup include paths but there isn't a direct mapping between OE's arch values and the ones expected by strace. In this case ARCH should be "i386" in order to find the header file correctly, not "i586".
Removing ARCH="${TARGET_ARCH}" from do_compile_ptest() and letting strace auto detect fixes the build failure.
Forcing ARCH was introduced here:
http://git.openembedded.org/openembedded-core/commit/?id=af76eb0405352d66dfd00d7f856f401d892855e1
But I'm not 100% clear what the original problem was though, so I'm not sure about just undoing that change without some more investigation. Any thoughts?
Quoted 4 lines
(full log at
https://autobuilder.yoctoproject.org/main/builders/nightly-deb-non-deb/builds/235/steps/BuildImages/logs/stdio)Ross
CCing Robert as he wrote the patch that introduced the ARCH assignment.
Quoted 9 lines · Andre McCurdy
Error is due to
do_compile_ptest()forcing ARCH="${TARGET_ARCH}". The testsMakefileuses ARCH to setup include paths but there isn't a direct mapping between OE's arch values and the ones expected by strace. In this case ARCH should be "i386" in order to find the header file correctly, not "i586".Removing ARCH="${TARGET_ARCH}" from
do_compile_ptest()and letting strace auto detect fixes the build failure.
Quoted 9 lines
Forcing ARCH was introduced here:
http://git.openembedded.org/openembedded-core/commit/?id=af76eb0405352d66dfd00d7f856f401d892855e1
But I'm not 100% clear what the original problem was though, so I'm not sure about just undoing that change without some more investigation. Any thoughts?
I guess if it autodetects correctly now then the workaround isn't required. Robert, what do you think?
Ross
Quoted 15 lines · Ross
CCing Robert as he wrote the patch that introduced the ARCH assignment.
Quoted 12 lines · Andre McCurdy
Error is due to
do_compile_ptest()forcing ARCH="${TARGET_ARCH}". The testsMakefileuses ARCH to setup include paths but there isn't a direct mapping between OE's arch values and the ones expected by strace. In this case ARCH should be "i386" in order to find the header file correctly, not "i586".Removing ARCH="${TARGET_ARCH}" from
do_compile_ptest()and letting strace auto detect fixes the build failure.Forcing ARCH was introduced here:
Quoted 8 lines
Quoted 5 lines
http://git.openembedded.org/openembedded-core/commit/?id=af76eb0405352d66dfd00d7f856f401d892855e1
But I'm not 100% clear what the original problem was though, so I'm not sure about just undoing that change without some more investigation. Any thoughts?
I guess if it autodetects correctly now then the workaround isn't required. Robert, what do you think?
Forcing ARCH (and OS) for strace 4.10 seems to be a purely cosmetic fix to make the include paths on the compiler command lines look prettier. None of the sources in tests seem to require the headers in the $(OS)/$(ARCH) directories, so it doesn't matter if ARCH is undefined or forced to something incorrect.
For strace 4.11, forcing OS and ARCH is wrong and should be removed.
The WIP change currently in mut is OK as a temporary solution, but maybe I'll send a new patch series for strace 4.11 in the next few days since I think some other things need fixing too (the configure.ac patch and acl / libaio dependencies are no longer correct and the git-version-gen script needs updating or dropping).
Quoted 1 line
Ross