mirror of
https://github.com/chromium/crashpad.git
synced 2024-12-28 15:50:26 +08:00
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>
This commit is contained in:
parent
52ddeac77c
commit
7ed4d5c454
@ -28,7 +28,11 @@
|
||||
.globl CAPTURECONTEXT_SYMBOL2
|
||||
#if defined(__i386__) || defined(__x86_64__)
|
||||
.balign 16, 0x90
|
||||
#elif defined(__arm__) || defined(__aarch64__) || defined(__mips__)
|
||||
#elif defined(__arm__) || defined(__aarch64__)
|
||||
.balign 4, 0x0
|
||||
.type CAPTURECONTEXT_SYMBOL, %function
|
||||
.type CAPTURECONTEXT_SYMBOL2, %function
|
||||
#elif defined(__mips__)
|
||||
.balign 4, 0x0
|
||||
#endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user