
#11340: linker_unload test fails on ARM -------------------------------------+---------------------------------- Reporter: bgamari | Owner: Type: bug | Status: patch Priority: normal | Milestone: 8.0.1 Component: Compiler | Version: 7.10.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: arm Type of failure: Runtime crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D1728 Wiki Page: | -------------------------------------+---------------------------------- Comment (by bgamari): Here is an excerpt from the Diff description,
The gist here is that previously we didn't catch the case where a relocation resulted in a jump that would overflow the 24-bit target address of ARM's branch instructions. This resulted in a segmentation fault. I've added an explicit check so that we now provide a reasonable error message in this case.
Moreover, we now set `USE_CONTIGUOUS_MMAP` on ARM, following the behavior of PowerPC to avoid symbols being too far removed from their extras.
While doing this, I took the opportunity to refactor relocation handling, making it follow LLVM LLD's implementation more closely since the ARM ELF specification is a bit unclear in some places and I believe the LLD implementation is trustworthy.
-- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11340#comment:8 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler