Browse Source

rework musl patches, mostly from sabotage linux

Waldemar Brodkorb 11 years ago
parent
commit
765fcfd026

+ 1 - 1
package/strace/Makefile

@@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk
 
 PKG_NAME:=		strace
 PKG_VERSION:=		4.8
-PKG_RELEASE:=		7
+PKG_RELEASE:=		8
 PKG_MD5SUM:=		c575ef43829586801f514fd91bfe7575
 PKG_DESCR:=		System call trace program
 PKG_SECTION:=		debug

+ 33 - 0
package/strace/patches/patch-defs_h

@@ -0,0 +1,33 @@
+--- strace-4.8.orig/defs.h	2013-05-14 16:10:42.000000000 +0200
++++ strace-4.8/defs.h	2014-02-26 17:36:34.000000000 +0100
+@@ -155,18 +155,18 @@ extern char *stpcpy(char *dst, const cha
+     || defined(METAG) \
+     || defined(TILE) \
+     || defined(XTENSA) \
+-    ) && defined(__GLIBC__)
++    ) && defined(__linux__)
+ # include <sys/ptrace.h>
+ #else
+ /* Work around awkward prototype in ptrace.h. */
+ # define ptrace xptrace
+ # include <sys/ptrace.h>
+ # undef ptrace
+-# ifdef POWERPC
++#if defined(POWERPC) && defined(__GLIBC__)
+ #  define __KERNEL__
+ #  include <asm/ptrace.h>
+ #  undef __KERNEL__
+-# endif
++#endif
+ extern long ptrace(int, int, char *, long);
+ #endif
+ 
+@@ -222,7 +222,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

+ 11 - 0
package/strace/patches/patch-desc_c

@@ -0,0 +1,11 @@
+--- strace-4.8.orig/desc.c	2013-05-02 00:39:10.000000000 +0200
++++ strace-4.8/desc.c	2014-02-25 15:16:36.000000000 +0100
+@@ -223,7 +223,7 @@ static const struct xlat perf_event_open
+ 	{ 0,				NULL			},
+ };
+ 
+-#if _LFS64_LARGEFILE
++#if defined(_LFS64_LARGEFILE) && defined(__GLIBC__) || defined(__UCLIBC__)
+ /* fcntl/lockf */
+ static void
+ printflock64(struct tcb *tcp, long addr, int getlk)

+ 17 - 0
package/strace/patches/patch-net_c

@@ -0,0 +1,17 @@
+--- strace-4.8.orig/net.c	2013-05-18 00:20:02.000000000 +0200
++++ strace-4.8/net.c	2014-02-25 16:06:44.000000000 +0100
+@@ -95,12 +95,14 @@
+ #endif
+ 
+ /* Under Linux these are enums so we can't test for them with ifdef. */
++#if !defined(IPPROTO_MAX)
+ #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
++#endif
+ 
+ static const struct xlat domains[] = {
+ #ifdef PF_UNSPEC

+ 49 - 0
package/strace/patches/patch-process_c

@@ -0,0 +1,49 @@
+--- strace-4.8.orig/process.c	2013-05-18 00:22:19.000000000 +0200
++++ strace-4.8/process.c	2014-02-25 20:02:55.000000000 +0100
+@@ -55,7 +55,7 @@
+ # endif
+ #endif
+ 
+-#ifdef HAVE_LINUX_PTRACE_H
++#if defined(HAVE_LINUX_PTRACE_H) && defined(__GLIBC__)
+ # undef PTRACE_SYSCALL
+ # ifdef HAVE_STRUCT_IA64_FPREG
+ #  define ia64_fpreg XXX_ia64_fpreg
+@@ -104,6 +104,10 @@
+ # include <asm/rse.h>
+ #endif
+ 
++#ifdef __arm__
++#include <asm/ptrace.h>
++#endif
++
+ #ifdef HAVE_PRCTL
+ # include <sys/prctl.h>
+ 
+@@ -2857,7 +2861,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 +2876,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 +2889,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;
+ }

+ 22 - 0
package/strace/patches/patch-signal_c

@@ -0,0 +1,22 @@
+--- strace-4.8.orig/signal.c	2013-05-23 15:41:23.000000000 +0200
++++ strace-4.8/signal.c	2014-02-26 17:40:43.000000000 +0100
+@@ -60,6 +60,10 @@
+ # include <asm/ptrace_offsets.h>
+ #endif
+ 
++#ifndef POWERPC
++#include <asm/ptrace.h>
++#endif
++
+ #if defined(SPARC) || defined(SPARC64) || defined(MIPS)
+ typedef struct {
+ 	struct pt_regs		si_regs;
+@@ -815,7 +819,7 @@ sys_sigreturn(struct tcb *tcp)
+ {
+ #if defined(ARM)
+ 	if (entering(tcp)) {
+-		struct sigcontext_struct sc;
++		struct sigcontext sc;
+ 		sigset_t sigm;
+ 		if (umove(tcp, arm_regs.ARM_sp, &sc) < 0)
+ 			return 0;

+ 17 - 0
package/strace/patches/patch-syscall_c

@@ -0,0 +1,17 @@
+--- strace-4.8.orig/syscall.c	2013-05-14 16:10:42.000000000 +0200
++++ strace-4.8/syscall.c	2014-02-26 17:46:14.000000000 +0100
+@@ -72,12 +72,8 @@
+ # include <elf.h>
+ #endif
+ 
+-#if defined(AARCH64)
+-# include <asm/ptrace.h>
+-#endif
+-
+-#if defined(XTENSA)
+-# include <asm/ptrace.h>
++#ifndef POWERPC
++#include <asm/ptrace.h>
+ #endif
+ 
+ #ifndef ERESTARTSYS

+ 14 - 0
package/strace/patches/patch-time_c

@@ -0,0 +1,14 @@
+--- strace-4.8.orig/time.c	2012-05-01 23:17:51.000000000 +0200
++++ strace-4.8/time.c	2014-02-25 17:25:14.000000000 +0100
+@@ -774,7 +774,11 @@ printsigevent(struct tcb *tcp, long arg)
+ 			/* _pad[0] is the _tid field which might not be
+ 			   present in the userlevel definition of the
+ 			   struct.  */
++#if defined(__GLIBC__)
+ 			tprintf("{%d}", sev._sigev_un._pad[0]);
++#else
++			tprintf("{%d}", (int) sev.__pad[0]);
++#endif
+ 		else if (sev.sigev_notify == SIGEV_THREAD)
+ 			tprintf("{%p, %p}", sev.sigev_notify_function,
+ 				sev.sigev_notify_attributes);