-
Work around LLVM ORCv2 issue affecting Cuttlefish · 3e551b3cNicolas Capens authored
Android Cuttlefish x86 instances crashed with an execution privilege access violation error, due to an R_386_PC32 relocation which is used when calling a C function from Reactor code, who's address is not associated with any symbol (since it's an absolute constant), but it still invokes the symbol resolver for "". Returning any address for this nameless symbol prevents the issue. This is not a proper fix for the root cause, which is presumed to be a bug in LLVM's handling of ELF::R_386_PC32 relocations not associated with any symbol, but it enables us to make the switch from the deprecated LLVM ORCv1 JIT API to ORCv2. Bug: b/172974501 Change-Id: I2d1978fccd2365bd8837f6d2054f43792f61cf73 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/50368 Kokoro-Result: kokoro <noreply+kokoro@google.com> Tested-by:
Nicolas Capens <nicolascapens@google.com> Tested-by:
Jason Macnak <natsu@google.com> Reviewed-by:
Jason Macnak <natsu@google.com> Reviewed-by:
Antonio Maiorano <amaiorano@google.com>
3e551b3c
×