Support statically-linked libcurl for HTTP uploads in Linux

https://breakpad.appspot.com/1064002/



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1277 4c0a9323-5329-0410-9bdc-e9ce6186880e
Create a new tool to upload Mac system library symbols.

R=andybons@chromium.org, mark@chromium.org

Review URL: https://breakpad.appspot.com/1124002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1278 4c0a9323-5329-0410-9bdc-e9ce6186880e
Make Linux ExceptionHandler::HandleSignal public
A=Jed Davis <jld@mozilla.com> R=ted at https://breakpad.appspot.com/1114003/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1279 4c0a9323-5329-0410-9bdc-e9ce6186880e
Add .gitignore, remove generated files
Build minidump_upload, symupload for all targets

Rather than duplicating these tools for any target which has libcurl
- Introduce src/tools/common/ and move minidump_upload, sym_upload there from src/tools/linux/
- Move linux/http_upload.cc,.h up to src/common/ from src/common/linux/

don't link with -ldl and use dlopen to use libcurl.so, but just link with libcurl.
XXX: probably want to retain linking with -dl and just teach it the name of curl
shared object on cygwin...
Add support for DWARF in PECOFF as used by cygwin and mingw

For cygwin and mingw targets, build a dump_syms tool which can read DWARF
symbols contained in a PE/COFF executable.

I felt bad about making another copy of dump_symbols.cc, so this one has the
beginnings of being parameterized by an image file reader class, so we can apply
it to a pecoff-format image file reading class

Write pecoff format image file reading class which
- knows how to read PE32 and PE32+ image files
- makes PECOFF file id by fetching from a CV record or by hashing
- can read PECOFF exports as a fallback if there is no DWARF information
Fix building minidump processor tools for MinGW

This is a sub-set of changes in https://breakpad.appspot.com/548002/ with a bit
of updating

- Link minidump_stackwalk, minidump_dump with PTHREAD_LIBS as pthread_cancel is used
- Link minidump_stackwalk with ws2_32 as ntoh functions are used
- Fix wtypes.h include for case sensitive filesystems
- Various _s function variants should only be used if _MSC_VER, use _r variants  with MinGW
- Unfortunately current MinGW64 has a bug where _r variants are only prototyped in pthread.h
Build PECOFF/DWARF dump_syms for MinGW

Substitute MapViewOfFile() for mmap()
Fix building client library and upload tools for MinGW

This is the rest of https://breakpad.appspot.com/548002/, brought up to date

Mainly fix include filenames to be lowercased for case-sensitive filesystems

Removed usage of stdext::checked_array_iterator, which is a MSVC-only feature.
Build MinGW client library and upload tools using gyp-generated Makefile
Teach gyp generated Makefile to build crash_generation_app correctly

- Use linker flag for Windows subsystem
- Add rule for compiling windows resources
- rename crash_generation_app.rc to avoid a clash in corresponding .o names
Ensure the C:\Dumps\ directory exists in the crash_generation_app demo

Ensure the C:\Dumps\ directory exists in the crash_generation_app demo,
otherwise it doesn't demonstrate much.

http://code.google.com/p/google-breakpad/issues/detail?id=298
Default debug_file to the code_file basename

Strip any path from code_file, and use that as debug_file if one isn't recorded
in the codeview record.

The current implementation of 'ld --build-id' doesn't write a pdbfilename in the
codeview record, not least because we don't have such a thing.

The minidump processor requires both debug_file and debug_identifier (the
build-id) to locate the symbol file.
Build Windows tools using gyp as well

Requires MS DIA (Debug Interface Access SDK to be installed.
Note that the DIA SDK is not in the Express editions of Visual Studio.

See https://groups.google.com/forum/#!topic/google-breakpad-discuss/F0jMWxmWk0M
for a change to remove that dependency.
Add .gyp file for building ms_symbol_server_converter
Add pe-add-debugid

XXX: does not work.  This looks to be quite hard to do correctly.

A horribly hacky tool to add a build-id to an existing pe image, for testing
purposes
Add a small script to run dump_syms and install symbol files
Add a README.md with notes on what is left to do