arm: Properly mark _ZN8crashpad14CaptureContextEP10ucontext_t as %function

lld wants to remove bl/blx substitution for non-function symbols
(https://reviews.llvm.org/D73542). GNU ld apparently already doesn't
do it.

Since _ZN8crashpad14CaptureContextEP10ucontext_t wasn't marked as a function,
chromium's thumb code would then branch without mode transition into
crashpads non-thumb assembly (in arm32).

So mark the symbol as function, so that things work even if that patch
relands. This should also make things work with GNU ld, though I haven't
verified that it was broken before and works now.

I also did this for aarch64 since it seems like The Right Thing To Do
(assuming the assembler accepts it, which I also haven't checked --
the CQ will hopefully check that).

Bug: chromium:1049649
Change-Id: I3452c16f0d52a2dc0397fd3d60d06b5c39a4b524
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2044144
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
1 file changed
tree: de3f91bf6dbd431bcc57649018998aa5e8e136bf
  1. .clang-format
  2. .gitattributes
  3. .gitignore
  4. .gn
  5. .vpython
  6. AUTHORS
  7. BUILD.gn
  8. CONTRIBUTORS
  9. DEPS
  10. LICENSE
  11. README.md
  12. build/
  13. client/
  14. codereview.settings
  15. compat/
  16. crashpad.gyp
  17. doc/
  18. handler/
  19. infra/
  20. minidump/
  21. navbar.md
  22. package.h
  23. snapshot/
  24. test/
  25. third_party/
  26. tools/
  27. util/
README.md

Crashpad

Crashpad is a crash-reporting system.

Documentation

Source Code

Crashpad’s source code is hosted in a Git repository at https://chromium.googlesource.com/crashpad/crashpad.

Other Links