forked from Floorp-Projects/Floorp
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
bug 1069556 - local build changes to match up with upstream Breakpad.…
… r=benwa,glandium This commit contains a few things: * Misc build fixup to sync with upstream--adding a few new moz.build files, source files * The final bits of unhooking Breakpad from the profiler: ** Revert to only building toolkit/crashreporter if MOZ_CRASHREPORTER. ** Stop building bits of Breakpad that we only needed for the profiler. ** Remove a few bits of profiler code that were used to interface with Breakpad. ** Remove toolkit/crashreporter/breakpad-logging, which was only used to suppress Breakpad logging for the in-process stackwalker. * Upstream removed their Android-compat sys/ucontext.h because the Android NDK added it, but the bionic we're using for Gonk builds is too old, so add a copy of the previous version of those files to toolkit/crashreporter/gonk-include to keep Gonk building. * Consolidate moz.build files under toolkit/crashreporter/google-breakpad/client/linux
- Loading branch information
Showing
42 changed files
with
1,042 additions
and
681 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
16 changes: 0 additions & 16 deletions
16
toolkit/crashreporter/breakpad-logging/BreakpadLogging.cpp
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,159 @@ | ||
// Copyright (c) 2012, Google Inc. | ||
// All rights reserved. | ||
// | ||
// Redistribution and use in source and binary forms, with or without | ||
// modification, are permitted provided that the following conditions are | ||
// met: | ||
// | ||
// * Redistributions of source code must retain the above copyright | ||
// notice, this list of conditions and the following disclaimer. | ||
// * Redistributions in binary form must reproduce the above | ||
// copyright notice, this list of conditions and the following disclaimer | ||
// in the documentation and/or other materials provided with the | ||
// distribution. | ||
// * Neither the name of Google Inc. nor the names of its | ||
// contributors may be used to endorse or promote products derived from | ||
// this software without specific prior written permission. | ||
// | ||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
|
||
#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_ELF_H | ||
#define GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_ELF_H | ||
|
||
#include <stdint.h> | ||
#include <libgen.h> | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif // __cplusplus | ||
|
||
// The Android <elf.h> provides BSD-based definitions for the ElfXX_Nhdr | ||
// types | ||
// always source-compatible with the GLibc/kernel ones. To overcome this | ||
// issue without modifying a lot of code in Breakpad, use an ugly macro | ||
// renaming trick with #include_next | ||
|
||
// Avoid conflict with BSD-based definition of ElfXX_Nhdr. | ||
// Unfortunately, their field member names do not use a 'n_' prefix. | ||
#define Elf32_Nhdr __bsd_Elf32_Nhdr | ||
#define Elf64_Nhdr __bsd_Elf64_Nhdr | ||
|
||
// In case they are defined by the NDK version | ||
#define Elf32_auxv_t __bionic_Elf32_auxv_t | ||
#define Elf64_auxv_t __bionic_Elf64_auxv_t | ||
|
||
#define Elf32_Dyn __bionic_Elf32_Dyn | ||
#define Elf64_Dyn __bionic_Elf64_Dyn | ||
|
||
#include_next <elf.h> | ||
|
||
#undef Elf32_Nhdr | ||
#undef Elf64_Nhdr | ||
|
||
typedef struct { | ||
Elf32_Word n_namesz; | ||
Elf32_Word n_descsz; | ||
Elf32_Word n_type; | ||
} Elf32_Nhdr; | ||
|
||
typedef struct { | ||
Elf64_Word n_namesz; | ||
Elf64_Word n_descsz; | ||
Elf64_Word n_type; | ||
} Elf64_Nhdr; | ||
|
||
#undef Elf32_auxv_t | ||
#undef Elf64_auxv_t | ||
|
||
typedef struct { | ||
uint32_t a_type; | ||
union { | ||
uint32_t a_val; | ||
} a_un; | ||
} Elf32_auxv_t; | ||
|
||
typedef struct { | ||
uint64_t a_type; | ||
union { | ||
uint64_t a_val; | ||
} a_un; | ||
} Elf64_auxv_t; | ||
|
||
#undef Elf32_Dyn | ||
#undef Elf64_Dyn | ||
|
||
typedef struct { | ||
Elf32_Sword d_tag; | ||
union { | ||
Elf32_Word d_val; | ||
Elf32_Addr d_ptr; | ||
} d_un; | ||
} Elf32_Dyn; | ||
|
||
typedef struct { | ||
Elf64_Sxword d_tag; | ||
union { | ||
Elf64_Xword d_val; | ||
Elf64_Addr d_ptr; | ||
} d_un; | ||
} Elf64_Dyn; | ||
|
||
|
||
// __WORDSIZE is GLibc-specific and used by Google Breakpad on Linux. | ||
// All Android platforms are 32-bit for now. | ||
#ifndef __WORDSIZE | ||
#define __WORDSIZE 32 | ||
#endif | ||
|
||
// The Android headers don't always define this constant. | ||
#ifndef EM_X86_64 | ||
#define EM_X86_64 62 | ||
#endif | ||
|
||
#ifndef EM_PPC64 | ||
#define EM_PPC64 21 | ||
#endif | ||
|
||
#ifndef EM_S390 | ||
#define EM_S390 22 | ||
#endif | ||
|
||
#if !defined(AT_SYSINFO_EHDR) | ||
#define AT_SYSINFO_EHDR 33 | ||
#endif | ||
|
||
#if !defined(NT_PRSTATUS) | ||
#define NT_PRSTATUS 1 | ||
#endif | ||
|
||
#if !defined(NT_PRPSINFO) | ||
#define NT_PRPSINFO 3 | ||
#endif | ||
|
||
#if !defined(NT_AUXV) | ||
#define NT_AUXV 6 | ||
#endif | ||
|
||
#if !defined(NT_PRXFPREG) | ||
#define NT_PRXFPREG 0x46e62b7f | ||
#endif | ||
|
||
#if !defined(NT_FPREGSET) | ||
#define NT_FPREGSET 2 | ||
#endif | ||
|
||
#ifdef __cplusplus | ||
} // extern "C" | ||
#endif // __cplusplus | ||
|
||
#endif // GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_ELF_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
// Copyright (c) 2012, Google Inc. | ||
// All rights reserved. | ||
// | ||
// Redistribution and use in source and binary forms, with or without | ||
// modification, are permitted provided that the following conditions are | ||
// met: | ||
// | ||
// * Redistributions of source code must retain the above copyright | ||
// notice, this list of conditions and the following disclaimer. | ||
// * Redistributions in binary form must reproduce the above | ||
// copyright notice, this list of conditions and the following disclaimer | ||
// in the documentation and/or other materials provided with the | ||
// distribution. | ||
// * Neither the name of Google Inc. nor the names of its | ||
// contributors may be used to endorse or promote products derived from | ||
// this software without specific prior written permission. | ||
// | ||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
|
||
#ifndef GOOGLE_BREAKPAD_ANDROID_INCLUDE_LINK_H | ||
#define GOOGLE_BREAKPAD_ANDROID_INCLUDE_LINK_H | ||
|
||
/* Android doesn't provide <link.h>. Provide custom version here */ | ||
#include <elf.h> | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif // __cplusplus | ||
|
||
#define ElfW(type) _ElfW (Elf, ELFSIZE, type) | ||
#define _ElfW(e,w,t) _ElfW_1 (e, w, _##t) | ||
#define _ElfW_1(e,w,t) e##w##t | ||
|
||
struct r_debug { | ||
int r_version; | ||
struct link_map* r_map; | ||
ElfW(Addr) r_brk; | ||
enum { | ||
RT_CONSISTENT, | ||
RT_ADD, | ||
RT_DELETE } r_state; | ||
ElfW(Addr) r_ldbase; | ||
}; | ||
|
||
struct link_map { | ||
ElfW(Addr) l_addr; | ||
char* l_name; | ||
ElfW(Dyn)* l_ld; | ||
struct link_map* l_next; | ||
struct link_map* l_prev; | ||
}; | ||
|
||
#ifdef __cplusplus | ||
} // extern "C" | ||
#endif // __cplusplus | ||
|
||
#endif /* GOOGLE_BREAKPAD_ANDROID_INCLUDE_LINK_H */ |
Oops, something went wrong.