From e0a4d9fa6fa68b95181fbaf1babcbb3cf2c9c63b Mon Sep 17 00:00:00 2001 From: Gustavo Zacarias Date: Mon, 6 Oct 2014 17:23:05 -0300 Subject: [PATCH] uclibc: add ptrace fixes for ppc & sparc Add ptrace header fixes for ppc and sparc. Patch status: upstream. Signed-off-by: Gustavo Zacarias Signed-off-by: Peter Korsgaard --- ...update-ptrace.h-to-latest-from-glibc.patch | 134 ++++++++++++++++ ...update-ptrace.h-to-latest-from-glibc.patch | 151 ++++++++++++++++++ 2 files changed, 285 insertions(+) create mode 100644 package/uclibc/0.9.33.2/uclibc-0063-powerpc-update-ptrace.h-to-latest-from-glibc.patch create mode 100644 package/uclibc/0.9.33.2/uclibc-0064-sparc-update-ptrace.h-to-latest-from-glibc.patch diff --git a/package/uclibc/0.9.33.2/uclibc-0063-powerpc-update-ptrace.h-to-latest-from-glibc.patch b/package/uclibc/0.9.33.2/uclibc-0063-powerpc-update-ptrace.h-to-latest-from-glibc.patch new file mode 100644 index 0000000000..58e4b9197e --- /dev/null +++ b/package/uclibc/0.9.33.2/uclibc-0063-powerpc-update-ptrace.h-to-latest-from-glibc.patch @@ -0,0 +1,134 @@ +From 56824024e4f3fa8b5c6f696934c51fbc86946a80 Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias +Date: Sun, 7 Sep 2014 12:01:33 -0300 +Subject: [PATCH] powerpc: update ptrace.h to latest from glibc + +Update sys/ptrace.h to latest glibc release for a lot of missing +definitions. + +Signed-off-by: Gustavo Zacarias +Signed-off-by: Bernhard Reutner-Fischer +--- + libc/sysdeps/linux/powerpc/sys/ptrace.h | 93 ++++++++++++++++++++++++++++++++- + 1 file changed, 91 insertions(+), 2 deletions(-) + +diff --git a/libc/sysdeps/linux/powerpc/sys/ptrace.h b/libc/sysdeps/linux/powerpc/sys/ptrace.h +index 02c303c..dd81efc 100644 +--- a/libc/sysdeps/linux/powerpc/sys/ptrace.h ++++ b/libc/sysdeps/linux/powerpc/sys/ptrace.h +@@ -1,5 +1,5 @@ + /* `ptrace' debugger support interface. Linux version. +- Copyright (C) 2001 Free Software Foundation, Inc. ++ Copyright (C) 2001-2014 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -20,6 +20,7 @@ + #define _SYS_PTRACE_H 1 + + #include ++#include + + __BEGIN_DECLS + +@@ -78,8 +79,96 @@ enum __ptrace_request + #define PT_DETACH PTRACE_DETACH + + /* Continue and stop at the next (return from) syscall. */ +- PTRACE_SYSCALL = 24 ++ PTRACE_SYSCALL = 24, + #define PT_SYSCALL PTRACE_SYSCALL ++ ++ /* Set ptrace filter options. */ ++ PTRACE_SETOPTIONS = 0x4200, ++#define PT_SETOPTIONS PTRACE_SETOPTIONS ++ ++ /* Get last ptrace message. */ ++ PTRACE_GETEVENTMSG = 0x4201, ++#define PT_GETEVENTMSG PTRACE_GETEVENTMSG ++ ++ /* Get siginfo for process. */ ++ PTRACE_GETSIGINFO = 0x4202, ++#define PT_GETSIGINFO PTRACE_GETSIGINFO ++ ++ /* Set new siginfo for process. */ ++ PTRACE_SETSIGINFO = 0x4203, ++#define PT_SETSIGINFO PTRACE_SETSIGINFO ++ ++ /* Get register content. */ ++ PTRACE_GETREGSET = 0x4204, ++#define PTRACE_GETREGSET PTRACE_GETREGSET ++ ++ /* Set register content. */ ++ PTRACE_SETREGSET = 0x4205, ++#define PTRACE_SETREGSET PTRACE_SETREGSET ++ ++ /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect ++ signal or group stop state. */ ++ PTRACE_SEIZE = 0x4206, ++#define PTRACE_SEIZE PTRACE_SEIZE ++ ++ /* Trap seized tracee. */ ++ PTRACE_INTERRUPT = 0x4207, ++#define PTRACE_INTERRUPT PTRACE_INTERRUPT ++ ++ /* Wait for next group event. */ ++ PTRACE_LISTEN = 0x4208, ++#define PTRACE_LISTEN PTRACE_LISTEN ++ ++ PTRACE_PEEKSIGINFO = 0x4209 ++#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO ++}; ++ ++ ++/* Flag for PTRACE_LISTEN. */ ++enum __ptrace_flags ++{ ++ PTRACE_SEIZE_DEVEL = 0x80000000 ++}; ++ ++/* Options set using PTRACE_SETOPTIONS. */ ++enum __ptrace_setoptions ++{ ++ PTRACE_O_TRACESYSGOOD = 0x00000001, ++ PTRACE_O_TRACEFORK = 0x00000002, ++ PTRACE_O_TRACEVFORK = 0x00000004, ++ PTRACE_O_TRACECLONE = 0x00000008, ++ PTRACE_O_TRACEEXEC = 0x00000010, ++ PTRACE_O_TRACEVFORKDONE = 0x00000020, ++ PTRACE_O_TRACEEXIT = 0x00000040, ++ PTRACE_O_TRACESECCOMP = 0x00000080, ++ PTRACE_O_EXITKILL = 0x00100000, ++ PTRACE_O_MASK = 0x001000ff ++}; ++ ++/* Wait extended result codes for the above trace options. */ ++enum __ptrace_eventcodes ++{ ++ PTRACE_EVENT_FORK = 1, ++ PTRACE_EVENT_VFORK = 2, ++ PTRACE_EVENT_CLONE = 3, ++ PTRACE_EVENT_EXEC = 4, ++ PTRACE_EVENT_VFORK_DONE = 5, ++ PTRACE_EVENT_EXIT = 6, ++ PTRACE_EVENT_SECCOMP = 7 ++}; ++ ++/* Arguments for PTRACE_PEEKSIGINFO. */ ++struct __ptrace_peeksiginfo_args ++{ ++ __uint64_t off; /* From which siginfo to start. */ ++ __uint32_t flags; /* Flags for peeksiginfo. */ ++ __int32_t nr; /* How many siginfos to take. */ ++}; ++ ++enum __ptrace_peeksiginfo_flags ++{ ++ /* Read signals from a shared (process wide) queue. */ ++ PTRACE_PEEKSIGINFO_SHARED = (1 << 0) + }; + + /* Perform process tracing functions. REQUEST is one of the values +-- +2.0.4 + diff --git a/package/uclibc/0.9.33.2/uclibc-0064-sparc-update-ptrace.h-to-latest-from-glibc.patch b/package/uclibc/0.9.33.2/uclibc-0064-sparc-update-ptrace.h-to-latest-from-glibc.patch new file mode 100644 index 0000000000..77b2c2e925 --- /dev/null +++ b/package/uclibc/0.9.33.2/uclibc-0064-sparc-update-ptrace.h-to-latest-from-glibc.patch @@ -0,0 +1,151 @@ +From 085465e5c507822b25daec6c0fc1a78da48bff9e Mon Sep 17 00:00:00 2001 +From: Gustavo Zacarias +Date: Sun, 7 Sep 2014 12:01:34 -0300 +Subject: [PATCH] sparc: update ptrace.h to latest from glibc + +Update sys/ptrace.h to latest glibc release for a lot of missing +definitions. + +Signed-off-by: Gustavo Zacarias +Signed-off-by: Bernhard Reutner-Fischer +--- + libc/sysdeps/linux/sparc/sys/ptrace.h | 97 +++++++++++++++++++++++++++++++++-- + 1 file changed, 92 insertions(+), 5 deletions(-) + +diff --git a/libc/sysdeps/linux/sparc/sys/ptrace.h b/libc/sysdeps/linux/sparc/sys/ptrace.h +index 26fa4b3..0f6c2cc 100644 +--- a/libc/sysdeps/linux/sparc/sys/ptrace.h ++++ b/libc/sysdeps/linux/sparc/sys/ptrace.h +@@ -1,5 +1,5 @@ + /* `ptrace' debugger support interface. Linux/SPARC version. +- Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. ++ Copyright (C) 1996-2014 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -20,7 +20,7 @@ + #define _SYS_PTRACE_H 1 + + #include +- ++#include + #include + + /* Linux/SPARC kernels up to 2.3.18 do not care much +@@ -147,12 +147,11 @@ enum __ptrace_request + #endif + + /* Continue and stop at the next (return from) syscall. */ +- PTRACE_SYSCALL = 24 ++ PTRACE_SYSCALL = 24, + #define PTRACE_SYSCALL PTRACE_SYSCALL + + #if __WORDSIZE == 64 + +- , + /* Get all floating point registers used by a processes. + This is not supported on all machines. */ + PTRACE_GETFPREGS = 25, +@@ -160,10 +159,98 @@ enum __ptrace_request + + /* Set all floating point registers used by a processes. + This is not supported on all machines. */ +- PTRACE_SETFPREGS = 26 ++ PTRACE_SETFPREGS = 26, + #define PT_SETFPREGS PTRACE_SETFPREGS + + #endif ++ ++ /* Set ptrace filter options. */ ++ PTRACE_SETOPTIONS = 0x4200, ++#define PT_SETOPTIONS PTRACE_SETOPTIONS ++ ++ /* Get last ptrace message. */ ++ PTRACE_GETEVENTMSG = 0x4201, ++#define PT_GETEVENTMSG PTRACE_GETEVENTMSG ++ ++ /* Get siginfo for process. */ ++ PTRACE_GETSIGINFO = 0x4202, ++#define PT_GETSIGINFO PTRACE_GETSIGINFO ++ ++ /* Set new siginfo for process. */ ++ PTRACE_SETSIGINFO = 0x4203, ++#define PT_SETSIGINFO PTRACE_SETSIGINFO ++ ++ /* Get register content. */ ++ PTRACE_GETREGSET = 0x4204, ++#define PTRACE_GETREGSET PTRACE_GETREGSET ++ ++ /* Set register content. */ ++ PTRACE_SETREGSET = 0x4205, ++#define PTRACE_SETREGSET PTRACE_SETREGSET ++ ++ /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect ++ signal or group stop state. */ ++ PTRACE_SEIZE = 0x4206, ++#define PTRACE_SEIZE PTRACE_SEIZE ++ ++ /* Trap seized tracee. */ ++ PTRACE_INTERRUPT = 0x4207, ++#define PTRACE_INTERRUPT PTRACE_INTERRUPT ++ ++ /* Wait for next group event. */ ++ PTRACE_LISTEN = 0x4208, ++#define PTRACE_LISTEN PTRACE_LISTEN ++ ++ PTRACE_PEEKSIGINFO = 0x4209 ++#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO ++}; ++ ++ ++/* Flag for PTRACE_LISTEN. */ ++enum __ptrace_flags ++{ ++ PTRACE_SEIZE_DEVEL = 0x80000000 ++}; ++ ++/* Options set using PTRACE_SETOPTIONS. */ ++enum __ptrace_setoptions ++{ ++ PTRACE_O_TRACESYSGOOD = 0x00000001, ++ PTRACE_O_TRACEFORK = 0x00000002, ++ PTRACE_O_TRACEVFORK = 0x00000004, ++ PTRACE_O_TRACECLONE = 0x00000008, ++ PTRACE_O_TRACEEXEC = 0x00000010, ++ PTRACE_O_TRACEVFORKDONE = 0x00000020, ++ PTRACE_O_TRACEEXIT = 0x00000040, ++ PTRACE_O_TRACESECCOMP = 0x00000080, ++ PTRACE_O_EXITKILL = 0x00100000, ++ PTRACE_O_MASK = 0x001000ff ++}; ++ ++/* Wait extended result codes for the above trace options. */ ++enum __ptrace_eventcodes ++{ ++ PTRACE_EVENT_FORK = 1, ++ PTRACE_EVENT_VFORK = 2, ++ PTRACE_EVENT_CLONE = 3, ++ PTRACE_EVENT_EXEC = 4, ++ PTRACE_EVENT_VFORK_DONE = 5, ++ PTRACE_EVENT_EXIT = 6, ++ PTRACE_EVENT_SECCOMP = 7 ++}; ++ ++/* Arguments for PTRACE_PEEKSIGINFO. */ ++struct __ptrace_peeksiginfo_args ++{ ++ __uint64_t off; /* From which siginfo to start. */ ++ __uint32_t flags; /* Flags for peeksiginfo. */ ++ __int32_t nr; /* How many siginfos to take. */ ++}; ++ ++enum __ptrace_peeksiginfo_flags ++{ ++ /* Read signals from a shared (process wide) queue. */ ++ PTRACE_PEEKSIGINFO_SHARED = (1 << 0) + }; + + /* Perform process tracing functions. REQUEST is one of the values +-- +2.0.4 + -- 2.30.2