2113 Commits

Author SHA1 Message Date
Mark Mentovai
b3d84e0d05 mac: System libraries are no longer found on disk on macOS 11
On macOS 11, system libraries are no longer present on disk as
individual Mach-O files, but are shipped exclusively in the dyld shared
cache. This affects tests that verify the list of modules loaded into a
process. The new _dyld_shared_cache_contains_path function can be used
to determine whether a path exists in the dyld shared cache.

Bug: crashpad:347
Test: crashpad_snapshot_test ProcessReaderMac.{Self,Child}Modules
Change-Id: I19402e45701caeb850bdafd701ccbba4ef9c60bc
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2384322
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
2020-08-31 21:15:49 +00:00
Mark Mentovai
56937e1df5 mac: 11.0 SDK support
This updates the process_types version of dyld_all_image_infos for macOS
11.0.

Test: crashpad_snapshot_test ProcessTypes.DyldImagesSelf
Bug: crashpad:347
Change-Id: Ieb134f17015070a11c918b26ece316f77a4cc263
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2384317
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
2020-08-31 21:14:59 +00:00
Mark Mentovai
bdf9471324 mac: Switch from <AvailabilityMacros.h> to <Availability.h>
The macOS 11.0 SDK, as of Xcode 12b6 12A8189n, has not updated
<AvailabilityMacros.h> with a MAC_OS_X_VERSION_11_0 or
MAC_OS_X_VERSION_10_16 constant. However, the <Availability.h> interface
has been updated to provide both __MAC_11_0 and __MAC_10_16.
<AvailabilityMacros.h>’s MAC_OS_X_VERSION_MAX_ALLOWED, which is supposed
to identify the SDK version, is broken in the 11.0 SDK in that whenever
the deployment target is set to 10.15 or earlier, the SDK will be
mis-identified through this interface as 10.15. When using the
<Availability.h> equivalent, __MAC_OS_X_VERSION_MAX_ALLOWED, the 11.0
SDK is identified as 10.16 (arguably it should be internally versioned
as 11.0, but at least this interface allows it to be detected
unambiguously.) It’s clear that the <AvailabilityMacros.h> interface
provides no meaningful support for the macOS 11.0 SDK at all, but
<Availability.h> does.

<Availability.h> was introduced in the Mac OS X 10.5 SDK, so there is no
relevant SDK version compatibility problem with this interface.

Key differences between these interfaces for the purposes used by
Crashpad:
 - <AvailabilityMacros.h> → <Availability.h>
 - MAC_OS_X_VERSION_MIN_REQUIRED (DT) → __MAC_OS_X_VERSION_MIN_REQUIRED
 - MAC_OS_X_VERSION_MAX_ALLOWED (SDK) → __MAC_OS_X_VERSION_MAX_ALLOWED
 - MAC_OS_X_VERSION_x_y → __MAC_x_y
 - <Availability.h> __MAC_OS_X_VERSION_* SDK/DT macros are only
   available when targeting macOS, while <AvailabilityMacros.h>
   MAC_OS_X_VERSION_* SDK/DT macros are available on all Apple platforms,
   which may be a source of confusion. (<Availability.h> __MAC_* macros
   do remain available on all Apple platforms.)

This change was made mostly mechanically by:

sed -i '' -Ee 's/<AvailabilityMacros.h>/<Availability.h>/g' \
    $(git grep -E -l '<AvailabilityMacros.h>' |
          grep -v AvailabilityMacros.h)

sed -i '' -Ee 's/(MAC_OS_X_VERSION_(MIN_REQUIRED|MAX_ALLOWED))/__\1/g' \
    $(git grep -E -l 'MAC_OS_X_VERSION_(MIN_REQUIRED|MAX_ALLOWED)' |
          grep -v AvailabilityMacros.h)

sed -i '' -Ee 's/(MAC_OS_X_VERSION_(10_[0-9]+))/__MAC_\2/g' \
    $(git grep -E -l 'MAC_OS_X_VERSION_(10_[0-9]+)' |
          grep -v AvailabilityMacros.h)

Bug: crashpad:347
Change-Id: Ibdcd7a6215a82f7060b7b67d98691f88454085fc
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2382421
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-08-31 21:11:29 +00:00
Shai Barack
364fdd65a0 fuchsia: Fix Wconversion on Mac/iOS builds (take two)
Followup to:
https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2373376

This time tested the changed code path.
Sorry for the sloppy changes. Thank you for your patience.

Bug: fuchsia:56258
Change-Id: I1dc0e37600be3879e76ae4fe17806504b34c75fc
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2381081
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2020-08-28 17:26:09 +00:00
Shai Barack
dc9f3a58aa fuchsia: Fix Wconversion on Mac/iOS builds
Followup to:
https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2345384

Bug: fuchsia:56258
Change-Id: Iec749d385f5d7546d020c0037581515f28df0fe9
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2373376
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-08-27 17:31:57 +00:00
Justin Cohen
71695216f9 ios: Fix Xcode project buildgen.
Change-Id: Ib9701a2c7c7ebc55ba69e1e6fa9cde59d3e4c557
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2378400
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-08-27 15:59:07 +00:00
Shai Barack
59e8120e7a [Wconversion] Suppress warnings on Fuchsia
Bug: fuchsia:56258

Change-Id: I6bdc0b81a0294040e4dceb18576ab38c45a430e4
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2345384
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2020-08-25 00:09:48 +00:00
Mark Mentovai
45ca490687 Build with -Wvla, forbidding stack-allocated variable-length arrays
Update mini_chromium to f3cfec80ca521881c97629adf6fcdf21158d635d

4b41c7657578 Add DISABLE_CFI_ICALL and NO_SANITIZE macros
f3cfec80ca52 Build with -Wvla, forbidding stack-allocated variable-
             length arrays

Change-Id: Ic6342ac9fee49061f9086ffb79a061b104168eef
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2363827
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-08-18 22:28:49 +00:00
Mark Mentovai
1509aadd63 Remove a variable-length array to enable compiling with -Wvla
Change-Id: I721f1dccc7e1188631a57f435c5c097ff83853b8
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2363768
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-08-18 21:18:39 +00:00
Mark Mentovai
ebab28f30d Remove a variable-length array* to enable compiling with -Wvla
* that hopefully never actually materialized

Change-Id: Ic8625c0edf773a2dd5f0c40b7f293ec5492ce101
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2363147
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-08-18 15:16:47 +00:00
Scott Graham
b472408135 fuchsia: Remove run_tests.py functionality
This removes the rotted functionality for running tests on Fuchsia. It
had previously been broken by other platform changes. Other tools are
from previous SDKs being removed too; this approach is no longer going
to work.

The preferred way is to connect via SSH to the device, however, that
requires using the femu.sh from the SDK, which in turn requires `sudo`
to create a network device, so it won't directly work on bots anyway.

I started trying to update the to use femu.sh, fserve.sh, & fpublish.sh,
but that requires building a .far, which uses GN templates which
differ from the in-tree versions, and don't seem (?) to support
packaging resources into the package.

So, for now because it was confusing people (see linked bug) give up and
delete the code for the time being.

Bug: fuchsia:54031
Change-Id: Iac7af80094b150d11e71474cba4bd93eb8e80639
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2354160
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-08-13 23:21:50 +00:00
Joshua Peraza
7547d0aa87 android: Remove orderfile configs from handler trampoline
Upstreams https://chromium-review.googlesource.com/c/chromium/src/+/1505951

Change-Id: Id78d20308cfcbfba9b0f6535a8c69e9cbbf219e1
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2354278
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-08-13 20:56:30 +00:00
Joshua Peraza
0cccdc0b7e Replace is_linux with is_linux || is_chromeos
Upstreams https://chromium-review.googlesource.com/c/chromium/src/+/2326293

Change-Id: I74379d1fbb8f9ec94e3e7eb969af0c8c492c9c07
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2342044
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-08-06 22:39:56 +00:00
Joshua Peraza
2f66eefb79 Update language to eliminate 'whitelist'
Change-Id: I6afe27313093c6867d0276274e6b17b195d9d263
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2339536
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-08-06 21:03:16 +00:00
Joshua Peraza
94b7e45210 fix OS guards for attachments
Change-Id: I10fdaf15ea4ba5906eeb81234508e987c29985ff
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2333082
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-08-03 21:05:48 +00:00
Mark Mentovai
9cd1a4dadb doc: Upgrade the crashpad-home App Engine app to the Go 1.11 runtime
App Engine’s Go 1.9 runtime is no longer functional. See
https://cloud.google.com/appengine/docs/deprecations and
https://cloud.google.com/appengine/docs/standard/go111/go-differences.

Note that this doesn’t migrate away from the App Engine SDK per
https://cloud.google.com/appengine/docs/standard/go111/go-differences#migrating-appengine-sdk,
as this service does use App Engine APIs. Newer Go runtimes are
available, currently including 1.12, 1.13, and a beta version of 1.14,
but 1.12 and newer do not support App Engine APIs per
https://cloud.google.com/appengine/docs/standard/go112/go-differences,
so this upgrade targets the Go 1.11 runtime.

Change-Id: Ia9c28cfb1abe5f226ae8c07de90cd2e9b6e19a48
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2328805
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2020-07-31 03:06:41 +00:00
Avi Drissman
4ae896bad0 Migrate to OS_MAC and OS_APPLE in Crashpad
This migrates:

 defined(OS_MACOSX) -> defined(OS_APPLE)
 defined(OS_MACOSX) && !defined(OS_IOS) -> defined(OS_MAC)
 !defined(OS_MACOSX) || defined(OS_IOS) -> !defined(OS_MAC)

Bug: chromium:1105907
Change-Id: I1b4abc19bbbe8df90e9c6e64cd29324b40b8ab71
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2321777
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-07-28 02:35:48 +00:00
Joshua Peraza
e89ba0d1d6 linux: fix timer test
Semaphore is implemented with a mutex and condition variable.
When a semaphore is used in TimerTest, Run() acquires a lock
to guard its CV but may be interrupted by the signal handler
before releasing the lock which results in a hang when
Signal(), called from the signal handler, also needs to
acquire the lock.

Bug: chromium:1050178
Change-Id: I0d7ef65bd159ee2de9258ba24537f9470f4c621d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2318554
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-07-27 20:48:49 +00:00
Joshua Peraza
ad3ad354d3 android: fix executable name test
Bug: chromium:1050178
Change-Id: I04ba3e4c4b3d2c707a9967b792a2e8d85e62adef
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2317841
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-07-27 16:51:25 +00:00
Tamir Duberstein
f9549d1ffe [fuchsia] Avoid underscores in package names
Bug: fuchsia:22679
Change-Id: I11de95cd91b23bd496d17246a448bcf1995a2814
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2315004
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2020-07-23 17:08:02 +00:00
Tamir Duberstein
13fd1561dc [fuchsia] Mark tests group testonly
Bug: fuchsia:22679
Change-Id: Ief6171ef8b00997edfc36e6fb6214c582a1b3f11
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2315007
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-07-23 02:15:11 +00:00
Tamir Duberstein
1a64e1cdc6 [fuchsia] Add tests group
We'll indirect through this group while we rename crashpad{_,-}tests.

Bug: fuchsia:22679
Change-Id: Ic4ca73ecbd6d3e2776a7b7ee8bbbd5012459be52
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2315003
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
Commit-Queue: Tamir Duberstein <tamird@google.com>
2020-07-22 23:46:12 +00:00
Tamir Duberstein
6c96d8fb78 fuchsia: Move crashpad_tests to injected-services
Isolation=good.

Change-Id: Ide383f52548bbfb5bef2703787cb7bab411fb8bf
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2315002
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2020-07-22 23:33:31 +00:00
Mark Mentovai
5d1c71c83e Update buildtools to 9e121212d42b and mini_chromium to 85e41f6b6cb5
Update buildtools to 9e121212d42be62a7cce38072f925f8398d11e49

6b2a302b65ba Roll GN from 7d7e8dee..cd3869be
6b951673d176 Roll GN from cd3869be..b6203d18
00f6f7c80e3c Update chromium's DEPS-file presubmits with new 'Str' type
eb3987ec709b Roll GN from b6203d18..d585128c
9e121212d42b Roll GN from d585128c..3028c6a4

Update mini_chromium to 85e41f6b6cb5dd31521c4a06b15c25d3345a6194

85e41f6b6cb5 apple: Use `frameworks` instead of `libs` in GN targets

Change-Id: I1fd5cc4d48bdcc2ec762c6edf570fa8c7e55dc88
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2311421
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2020-07-22 05:00:20 +00:00
Joshua Peraza
b71bde32e7 linux: fix tests with msan
Change-Id: Ie8fdeeb5b783e28cba2ae73345ddcff1405ccdf5
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2309228
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-07-21 16:55:49 +00:00
Joshua Peraza
070b18d326 linux: fix alt-stack tests with asan
Disable the stack-overrun test since ASAN will detect the
stack corruption and kill the process.

Also allocate extra alt-stack space when ASAN is enabled.

Change-Id: Id8711d2aaa31c90c78b7feceec2877c18dc9be00
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2303591
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-07-20 20:50:06 +00:00
Joshua Peraza
9f66d569fb linux: put test attachment in temp directory
This prevents errors creating the attachment if a previous test
failed to delete it for some reason.

Change-Id: I2622d86e08987ad3ff201da84dc9ae210acf776d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2302722
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-07-16 20:54:31 +00:00
Joshua Peraza
06a688ddc1 linux: setup a signal stack
Bug: crashpad:340
Change-Id: I035d988bc8e76dbf80c07f0c92b07dbefeba8bd1
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2209768
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-07-15 19:00:09 +00:00
Scott Graham
ef8a063055 Fuchsia: Propagate failure to initialize exception snapshot
If the process' threads can't be read, then the cpu context object won't
be able to be initialized.

Previously, the process snapshot always assumed that the context would
be filled out, as there was no error returned, which could result in
later checks failing.

Return an error from the exception snapshot's initialization so that
process snapshot can correctly handle failure to initialize.

Bug: fuchsia:55837
Change-Id: Ia3fecef1230a19dfa23401b0339c6a94370c6baf
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2296039
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-07-13 19:53:06 +00:00
Mark Mentovai
fd001f792e build: Make crashpad_dependencies="external" work in the GN build
…for macOS, at least.

Change-Id: Iba45328d957de17198180d171677a45468c9adc2
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2290842
Reviewed-by: Eric Astor <epastor@google.com>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-07-11 03:33:33 +00:00
Suraj Malhotra
e3c94b87f0 [fuchsia] Move //zircon/system/ulib/fdio to //sdk/lib/fdio
Bug: fuchsia:54057
Change-Id: I58e2bbf7f3a1674d5b34d4bc502b85cee0bea347
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2253148
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2020-07-10 18:43:55 +00:00
Mark Mentovai
498c36b82a mac arm64: Provide something more useful from SystemSnapshot::CPURevison
hw.cputype is just CPU_TYPE_ARM64, which isn’t terribly useful.
hw.cpufamily is somewhat better as it uses <mach/machine.h> CPUFAMILY_*
values, which distinguish between different CPU generations.
CPUFAMILY_ARM_VORTEX_TEMPEST identifies A12, for example. (The fun cores
are Vortex and the boring cores are Tempest.)

Bug: crashpad:345
Change-Id: I88be4fa0b305b2fa15bd24358f63dc7d72192b27
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2289041
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-07-09 01:48:42 +00:00
Mark Mentovai
030c58c295 mac: Add missing #include "build/build_config.h" for ARCH_CPU_*
This #include was omitted from 0c3f50c8e14a.

Bug: crashpad:345
Change-Id: Ic3392bfc611ba847e50743ef7129263bf69c81e2
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2288393
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-07-08 21:01:31 +00:00
Mark Mentovai
0c3f50c8e1 mac: Crashpad for macOS on arm64, phase 2: build tests
This gets all tests building. They don’t all pass, and there aren’t any
guarantees that anything else works yet, either.

This is mostly a lot of CPU context shuffling.

Bug: crashpad:345
Change-Id: I684017a5816f44917392964d7fb6d08083770b38
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2285962
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-07-08 20:26:51 +00:00
Mark Mentovai
809939c9d1 mac: Crashpad for macOS on arm64, phase 1: build it
This gets all production code for Chrome building, excluding tests.
There aren’t any guarantees that anything works yet.

This is mostly a lot of CPU context shuffling.

In contrast to macOS on x86, there’s no need to support 32-bit arm on
macOS, because this new platform is 64-bit-only from its inception.

Bug: crashpad:345
Change-Id: I187239b6a969005a3458af7fe30c44147a57f95f
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2285961
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-07-08 16:18:40 +00:00
Mark Mentovai
b9c828ea83 android: Fix “gn analyze”
On Android, the compat library built compat/android/sys/mman.cc, which
provides a fallback for mmap, and compat/linux/sys/mman.cc, which
provides a fallback for memfd_create. This can result in two object
files colliding in the library, which is flagged as a “gn analyze”
error:

> ERROR at //crashpad/compat/BUILD.gn:62:5: Duplicate object file
>     static_library(target_name) {
>     ^----------------------------
> The target //crashpad/compat:compat
> generates two object files with the same name:
>   obj/crashpad/compat/compat/mman.o
>
> It could be you accidentally have a file listed twice in the
> sources. Or, depending on how your toolchain maps sources to
> object files, two source files with the same name in different
> directories could map to the same object file.
>
> In the latter case, either rename one of the files or move one of
> the sources to a separate source_set to avoid them both being in
> the same target.

The files are renamed to avoid this collision. The associated headers
cannot be renamed because they need to shadow the SDK’s copies. There is
no “gn analyze” conflict reported for headers with the same name.

Change-Id: Ia49ef5ff8375673395597e96555f72f7c69e3564
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2285965
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
2020-07-08 13:53:20 +00:00
Mark Mentovai
828095ac32 Clear the gn sources_assignment_filter when building in Chromium
Chromium relies on a global gn sources assignment filter, even though
it’s kind of discouraged. Crashpad doesn’t use this, instead selecting
which files to build entirely with the logic in its .gn files. In some
cases, Chromium’s filters prevent _linux files from building on Android,
and _mac files from building on iOS, even though Crashpad’s build has
explicitly requested these inclusions. To overcome this problem,
clear the gn sources_assignment_filter in all of Crashpad’s own .gn
files when building in Chromium.

Change-Id: Iab0af29f4e5aff4be8eec2ee12b2e3f991c0a86d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2285959
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Rohit Rao <rohitrao@chromium.org>
2020-07-08 04:29:24 +00:00
Mark Mentovai
7cf66d83e6 Restore util tests to crashpad_tests used by Chromium
This was indvertently removed in ea4af71c2ac7, which should have enabled
util tests on iOS, the only platform they had been disabled on.

Change-Id: Id0d618c7268d5db21c2fd32a5f49c1770958d6d7
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2286509
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-07-08 04:13:54 +00:00
Mark Mentovai
b2061004ce Update mini_chromium to 4e8ff0c3a29f
4e8ff0c3a29f ios: Use the “Apple Development” code signing certificate

Change-Id: I900e064f7d289c66fa96ab1e642c1645bd6d702e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2285958
Reviewed-by: Rohit Rao <rohitrao@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-07-08 03:12:44 +00:00
Rohit Rao
245fee1b63 Removes Chromium-specific args from setup_ios_gn.py.
Bug: None
Change-Id: Ic0f2352be57c0010ea6d951bec2754addba5cac0
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2285894
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Rohit Rao <rohitrao@chromium.org>
2020-07-08 01:25:35 +00:00
Rohit Rao
17b08b5aab Copies the latest setup_ios_gn.py from Chromium.
Also includes the latest convert_gn_xcodeproj.py.

BUG=None

Change-Id: Icd82dd248ebf30b98054336d82f73a70d63f1d71
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2276602
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Rohit Rao <rohitrao@chromium.org>
2020-07-07 12:41:12 +00:00
Tamir Duberstein
d2c22d6b4b [fuchsia] Always initialize
We occassionally see UB here that looks like context_.architecture isn't
initialized.

Note to reviewers: needs a test. Guidance on where/how to write one
would be most welcome.

Bug: fuchsia:55587
Change-Id: I886972e4d3a5c1e0c53eb17f3f65dada47a84115
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2281881
Reviewed-by: Mark Mentovai <mark@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2020-07-06 23:07:38 +00:00
Adam Kallai
e46f30cc54 fix: include missing header file
Include the header from base/ where NOTREACHED is defined.
This fixes a build failure on Windows on Arm.

The patch was originally created by Richard Townsend <richard.townsend@arm.com>.

Bug: 1100363
Change-Id: Ic97f7c217f22e51f1d4c9bd87ae434e263975c6d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2279091
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-07-02 18:38:59 +00:00
Robert Sesek
9f4741d4de Fix Android and CrOS build after 414569987.
Change-Id: Ifdc0dac02eac11f09eb14f4a713bea70f4680d83
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2278034
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Robert Sesek <rsesek@chromium.org>
2020-07-01 22:09:46 +00:00
Robert Sesek
99ecfd3b52 apple: Convert GN libs lists to frameworks.
GN recently added support for Apple frameworks to link, rather than
overloading the libs lists. This pulls .frameworks out of the libs
lists, so that GN can stop supporting .frameworks in libs in the
future.

Roll mini_chromium ae14a14ab..cd26c5101

$ git log ae14a14ab..cd26c5101 --date=short --no-merges --format='%ad %ae %s'
2020-07-01 rsesek@chromium.org apple: Expand {{framework_dirs}} and {{frameworks}} in the toolchain.

Bug: chromium:1052560
Change-Id: Id70bceb57174a52c6f4a7f72378a3ee0ae89f64d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2278022
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Robert Sesek <rsesek@chromium.org>
2020-07-01 19:57:26 +00:00
Robert Sesek
1ae20ec163 Roll buildtools/ 4164a3056..6099f1018 (17 commits)
4164a30562..6099f10184

$ git log 4164a3056..6099f1018 --date=short --no-merges --format='%ad %ae %s'
2020-06-18 sdefresne remove copybara initialization artifacts
2020-06-18 sdefresne Copybara Service Migration Initialization.
2020-06-18 sdefresne Roll GN from db55efd4..7d7e8dee
2020-06-17 sdefresne Roll GN from fbe7aec7..db55efd4
2020-06-15 sdefresne Roll GN from 200492a5..fbe7aec7
2020-06-15 sdefresne Roll GN from 9a0496a7..200492a5
2020-06-11 thakis Roll GN from d0a6f072..9a0496a7
2020-06-03 ambre [libunwind] Build with -funwind-tables
2020-05-20 dpranke Change 'dpranke@chromium.org' -> 'dpranke@google.com' in OWNERS files.
2020-05-20 avi Fix checkdeps
2020-05-20 dpranke Update TEAM in OWNERS for build-related directories.
2020-05-19 rsesek Roll GN from ab32747a..d0a6f072
2020-05-15 hypan libc++: Set output_name of libc++ to libc++_chrome for android
2020-05-14 thakis Roll GN from 5ed3c9cc..ab32747a
2020-04-23 thakis Reland "Roll libunwind 43bb9f8722..d999d54f4b"
2020-03-30 tvanderlippe Update clang-format version to eb85e90350e
2020-03-23 brettw Roll GN from 9499562d..5ed3c9cc

Created with:
  roll-dep buildtools

Bug: chromium:1052560
Change-Id: Ibd5d9e864528d383e06f35a22dea1eaeacc17b90
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2278023
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Robert Sesek <rsesek@chromium.org>
2020-07-01 16:34:24 +00:00
Mark Mentovai
09d1df04bf Use OS_WIN, not OS_WINDOWS; provide crashpad_types traits for Fuchsia
The incorrect macro was used in f4b906c79c02 (at my request when I was
reviewing from a phone).

The Windows and Fuchsia builds are broken, so…

TBR: epastor@google.com
Change-Id: I8aebbbc24db261f3c3377210bb1c477132964828
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2270920
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-06-27 04:56:14 +00:00
Eric Astor
f4b906c79c Avoid use of a Linux-only header in cross-platform code
Change-Id: I358ee1d7e09868e64df1f1dc6c0f49e40099ff16
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2259336
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-06-24 17:31:40 +00:00
Eric Astor
d9c3e7cb36 Avoid use of variable-length arrays when not necessary
Change-Id: I45872ed02bbcf49b2709276dbb38cf72fab5cb1c
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2259335
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-06-24 17:27:44 +00:00
Eric Astor
ca0fd934d9 Add missing virtual/protected destructor definitions on virtual classes
Change-Id: Ic12e131e3e23d153dd5c9733d8f8c5062adbf802
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2259334
Commit-Queue: Eric Astor <epastor@google.com>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-06-24 17:25:08 +00:00