Ted Mielczarek 6cee755e09 Fix Mac Breakpad host tools to build in Linux cross-compile
We're working on building our Firefox Mac builds as a Linux cross-compile
(https://bugzilla.mozilla.org/show_bug.cgi?id=921040) and we need symbol
dumping to work. This change ports the Mac dump_syms tool to build and work
on Linux. I've tested it and it produces identical output to running the
tool on Mac.

The bulk of the work here was converting src/common/mac/dump_syms.mm and
src/tools/mac/dump_syms/dump_syms_tool.mm from ObjC++ to C++ and removing
their use of Foundation classes in favor of standard C/C++.

This won't compile out-of-the-box on Linux, it requires some Mac system
headers that are not included in this patch. I have those tentatively in
a separate patch to land in Gecko
(http://hg.mozilla.org/users/tmielczarek_mozilla.com/mc/rev/5fb8da23c83c),
but I wasn't sure if you'd be interested in having them in the Breakpad tree.
We could almost certainly pare down the set of headers included there, I
didn't spend too much time trying to minimize them (we primarily just need
the Mach-O structs and a few associated bits).

I just realized that this patch is missing updating the XCode project files
(ugh). I'll fix that up in a bit.

R=mark@chromium.org
BUG=https://bugzilla.mozilla.org/show_bug.cgi?id=543111

Review URL: https://codereview.chromium.org/1340543002 .
2015-09-16 06:46:55 -04:00
2013-12-13 16:49:11 +00:00
2015-09-11 01:37:29 -04:00
2013-12-10 17:53:50 +00:00

Breakpad is a set of client and server components which implement a
crash-reporting system.


-----
Getting started in 32-bit mode (from trunk)
Configure: CXXFLAGS=-m32 CFLAGS=-m32 CPPFLAGS=-m32 ./configure
    Build: make
     Test: make check
  Install: make install

If you need to reconfigure your build be sure to run "make distclean" first.


-----
To request change review:
0. Get a copy of depot_tools repo.
   http://dev.chromium.org/developers/how-tos/install-depot-tools

1. Create a new directory for checking out the source code.
   mkdir breakpad && cd breakpad

2. Run the `fetch` tool from depot_tools to download all the source repos.
   fetch breakpad

3. Make changes. Build and test your changes.
   For core code like processor use methods above.
   For linux/mac/windows, there are test targets in each project file.

4. Commit your changes to your local repo and upload them to the server.
   http://dev.chromium.org/developers/contributing-code
   e.g. git commit ... && git cl upload ...
   You will be prompted for credential and a description.

5. At https://codereview.chromium.org/ you'll find your issue listed; click on
   it, and select Publish+Mail, and enter in the code reviewer and CC
   google-breakpad-dev@googlegroups.com
Description
No description provided
Readme 39 MiB
Languages
C++ 68.2%
Makefile 12.8%
C 5.1%
Shell 5%
Objective-C 3.6%
Other 5.3%