strace: update to 4.10

- include upstream fixes for musl compatibility
Include <sys/stat.h> for S_I* macros
d34e00b293942b1012ddc49ed3ab379a32337611

Include <linux/ioctl.h> for _IOC_* macros
3460dc486d333231998de0f19918204aacee9ae3

strace 4.8 is broken with musl on some arch
(arm: omap,oxnas according to buildbot)

compile tested only

Signed-off-by: Dirk Neukirchen <dirkneukirchen@web.de>

SVN-Revision: 46124
This commit is contained in:
Jo-Philipp Wich 2015-06-25 11:05:50 +00:00
parent c37d7a7e8f
commit bbf9531ee7
3 changed files with 55 additions and 167 deletions

View file

@ -10,9 +10,9 @@ include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=strace
PKG_VERSION:=4.8
PKG_VERSION:=4.10
PKG_RELEASE:=1
PKG_MD5SUM:=c575ef43829586801f514fd91bfe7575
PKG_MD5SUM:=107a5be455493861189e9b57a3a51912
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@SF/$(PKG_NAME)

View file

@ -0,0 +1,53 @@
--- a/evdev.c
+++ b/evdev.c
@@ -28,6 +28,8 @@
#include "defs.h"
+#include <linux/ioctl.h>
+
#ifdef HAVE_LINUX_INPUT_H
#include <linux/input.h>
#include "xlat/evdev_abs.h"
--- a/ioctl.c
+++ b/ioctl.c
@@ -29,7 +29,7 @@
*/
#include "defs.h"
-#include <asm/ioctl.h>
+#include <linux/ioctl.h>
#include "xlat/ioctl_dirs.h"
#ifdef HAVE_LINUX_INPUT_H
--- a/ioctlsort.c
+++ b/ioctlsort.c
@@ -33,7 +33,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <asm/ioctl.h>
+#include <linux/ioctl.h>
struct ioctlent {
const char *info;
--- a/mknod.c
+++ b/mknod.c
@@ -1,6 +1,7 @@
#include "defs.h"
#include <fcntl.h>
+#include <sys/stat.h>
#ifdef MAJOR_IN_SYSMACROS
# include <sys/sysmacros.h>
--- a/printmode.c
+++ b/printmode.c
@@ -1,6 +1,7 @@
#include "defs.h"
#include <fcntl.h>
+#include <sys/stat.h>
#include "xlat/modetypes.h"

View file

@ -1,165 +0,0 @@
--- a/net.c
+++ b/net.c
@@ -50,11 +50,7 @@
#include <arpa/inet.h>
#include <net/if.h>
#include <asm/types.h>
-#if defined(__GLIBC__)
-# include <netipx/ipx.h>
-#else
-# include <linux/ipx.h>
-#endif
+#include <linux/ipx.h>
#if defined(__GLIBC__) && defined(HAVE_SIN6_SCOPE_ID_LINUX)
# if defined(HAVE_LINUX_IN6_H)
@@ -94,14 +90,6 @@
# define PF_UNSPEC AF_UNSPEC
#endif
-/* Under Linux these are enums so we can't test for them with ifdef. */
-#define IPPROTO_EGP IPPROTO_EGP
-#define IPPROTO_PUP IPPROTO_PUP
-#define IPPROTO_IDP IPPROTO_IDP
-#define IPPROTO_IGMP IPPROTO_IGMP
-#define IPPROTO_RAW IPPROTO_RAW
-#define IPPROTO_MAX IPPROTO_MAX
-
static const struct xlat domains[] = {
#ifdef PF_UNSPEC
{ PF_UNSPEC, "PF_UNSPEC" },
@@ -493,24 +481,16 @@ static const struct xlat protocols[] = {
{ IPPROTO_ICMP, "IPPROTO_ICMP" },
{ IPPROTO_TCP, "IPPROTO_TCP" },
{ IPPROTO_UDP, "IPPROTO_UDP" },
-#ifdef IPPROTO_IGMP
{ IPPROTO_IGMP, "IPPROTO_IGMP" },
-#endif
#ifdef IPPROTO_GGP
{ IPPROTO_GGP, "IPPROTO_GGP" },
#endif
#ifdef IPPROTO_IPIP
{ IPPROTO_IPIP, "IPPROTO_IPIP" },
#endif
-#ifdef IPPROTO_EGP
{ IPPROTO_EGP, "IPPROTO_EGP" },
-#endif
-#ifdef IPPROTO_PUP
{ IPPROTO_PUP, "IPPROTO_PUP" },
-#endif
-#ifdef IPPROTO_IDP
{ IPPROTO_IDP, "IPPROTO_IDP" },
-#endif
#ifdef IPPROTO_TP
{ IPPROTO_TP, "IPPROTO_TP" },
#endif
@@ -571,12 +551,8 @@ static const struct xlat protocols[] = {
#ifdef IPPROTO_UDPLITE
{ IPPROTO_UDPLITE, "IPPROTO_UDPLITE" },
#endif
-#ifdef IPPROTO_RAW
{ IPPROTO_RAW, "IPPROTO_RAW" },
-#endif
-#ifdef IPPROTO_MAX
{ IPPROTO_MAX, "IPPROTO_MAX" },
-#endif
{ 0, NULL },
};
static const struct xlat msg_flags[] = {
--- a/process.c
+++ b/process.c
@@ -55,19 +55,6 @@
# endif
#endif
-#ifdef HAVE_LINUX_PTRACE_H
-# undef PTRACE_SYSCALL
-# ifdef HAVE_STRUCT_IA64_FPREG
-# define ia64_fpreg XXX_ia64_fpreg
-# endif
-# ifdef HAVE_STRUCT_PT_ALL_USER_REGS
-# define pt_all_user_regs XXX_pt_all_user_regs
-# endif
-# include <linux/ptrace.h>
-# undef ia64_fpreg
-# undef pt_all_user_regs
-#endif
-
#if defined(SPARC64)
# define r_pc r_tpc
# undef PTRACE_GETREGS
@@ -94,6 +81,7 @@
#include <sched.h>
#include <asm/posix_types.h>
+#include <asm/ptrace.h>
#undef GETGROUPS_T
#define GETGROUPS_T __kernel_gid_t
#undef GETGROUPS32_T
@@ -2857,7 +2845,7 @@ sys_sched_setscheduler(struct tcb *tcp)
if (umove(tcp, tcp->u_arg[2], &p) < 0)
tprintf(", %#lx", tcp->u_arg[2]);
else
- tprintf(", { %d }", p.__sched_priority);
+ tprintf(", { %d }", p.sched_priority);
}
return 0;
}
@@ -2872,7 +2860,7 @@ sys_sched_getparam(struct tcb *tcp)
if (umove(tcp, tcp->u_arg[1], &p) < 0)
tprintf("%#lx", tcp->u_arg[1]);
else
- tprintf("{ %d }", p.__sched_priority);
+ tprintf("{ %d }", p.sched_priority);
}
return 0;
}
@@ -2885,7 +2873,7 @@ sys_sched_setparam(struct tcb *tcp)
if (umove(tcp, tcp->u_arg[1], &p) < 0)
tprintf("%d, %#lx", (int) tcp->u_arg[0], tcp->u_arg[1]);
else
- tprintf("%d, { %d }", (int) tcp->u_arg[0], p.__sched_priority);
+ tprintf("%d, { %d }", (int) tcp->u_arg[0], p.sched_priority);
}
return 0;
}
--- a/signal.c
+++ b/signal.c
@@ -35,6 +35,7 @@
#include <sys/user.h>
#include <fcntl.h>
+#include <asm/ptrace.h>
#ifdef HAVE_SYS_REG_H
# include <sys/reg.h>
# ifndef PTRACE_PEEKUSR
--- a/time.c
+++ b/time.c
@@ -774,7 +774,7 @@ printsigevent(struct tcb *tcp, long arg)
/* _pad[0] is the _tid field which might not be
present in the userlevel definition of the
struct. */
- tprintf("{%d}", sev._sigev_un._pad[0]);
+ tprintf("{%d}", *(int *) &sev.sigev_notify_function);
else if (sev.sigev_notify == SIGEV_THREAD)
tprintf("{%p, %p}", sev.sigev_notify_function,
sev.sigev_notify_attributes);
--- a/defs.h
+++ b/defs.h
@@ -27,6 +27,7 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#define _LARGEFILE64_SOURCE 1
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
@@ -222,7 +223,7 @@ extern long ptrace(int, int, char *, lon
# define PTRACE_EVENT_EXIT 6
#endif
-#if !defined(__GLIBC__)
+#if !defined(__GLIBC__) && !defined(PTRACE_PEEKUSER)
# define PTRACE_PEEKUSER PTRACE_PEEKUSR
# define PTRACE_POKEUSER PTRACE_POKEUSR
#endif