From 93cebf538e33c1b7066c857ed9929483153136d6 Mon Sep 17 00:00:00 2001 From: "digit@chromium.org" Date: Wed, 27 Jun 2012 14:04:52 +0000 Subject: Fix Android build of client library http://breakpad.appspot.com/401002/ git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@973 4c0a9323-5329-0410-9bdc-e9ce6186880e --- src/client/linux/android_ucontext.h | 32 +++++---------------------- src/client/linux/handler/exception_handler.cc | 7 +----- 2 files changed, 7 insertions(+), 32 deletions(-) (limited to 'src/client/linux') diff --git a/src/client/linux/android_ucontext.h b/src/client/linux/android_ucontext.h index 30a4e6c2..7942db79 100644 --- a/src/client/linux/android_ucontext.h +++ b/src/client/linux/android_ucontext.h @@ -35,33 +35,15 @@ #ifndef GOOGLE_BREAKPAD_CLIENT_LINUX_ANDROID_UCONTEXT_H_ #define GOOGLE_BREAKPAD_CLIENT_LINUX_ANDROID_UCONTEXT_H_ +#include #include -#if !defined(__GLIBC__) && (defined(__arm__) || defined(__thumb__)) +// didn't include before API level 8. +// It is used to define struct sigcontext properly. +#if defined(__arm__) && __ANDROID_API__ < 8 +#include +#endif -struct sigcontext { - uint32_t trap_no; - uint32_t error_code; - uint32_t oldmask; - uint32_t arm_r0; - uint32_t arm_r1; - uint32_t arm_r2; - uint32_t arm_r3; - uint32_t arm_r4; - uint32_t arm_r5; - uint32_t arm_r6; - uint32_t arm_r7; - uint32_t arm_r8; - uint32_t arm_r9; - uint32_t arm_r10; - uint32_t arm_fp; - uint32_t arm_ip; - uint32_t arm_sp; - uint32_t arm_lr; - uint32_t arm_pc; - uint32_t arm_cpsr; - uint32_t fault_address; -}; typedef uint32_t __sigset_t; typedef struct sigcontext mcontext_t; typedef struct ucontext { @@ -72,6 +54,4 @@ typedef struct ucontext { __sigset_t uc_sigmask; } ucontext_t; -#endif - #endif // GOOGLE_BREAKPAD_CLIENT_LINUX_ANDROID_UCONTEXT_H_ diff --git a/src/client/linux/handler/exception_handler.cc b/src/client/linux/handler/exception_handler.cc index 5d9e93f7..4b78424f 100644 --- a/src/client/linux/handler/exception_handler.cc +++ b/src/client/linux/handler/exception_handler.cc @@ -397,15 +397,10 @@ bool ExceptionHandler::GenerateDump(CrashContext *context) { logger::write("\n", 1); } -#if defined(__ANDROID__) - const pid_t child = clone( - ThreadEntry, stack, CLONE_FILES | CLONE_FS | CLONE_UNTRACED, - &thread_arg); -#else const pid_t child = sys_clone( ThreadEntry, stack, CLONE_FILES | CLONE_FS | CLONE_UNTRACED, &thread_arg, NULL, NULL, NULL); -#endif + int r, status; // Allow the child to ptrace us sys_prctl(PR_SET_PTRACER, child); -- cgit v1.2.1