
#11340: linker_unload test fails on ARM -------------------------------------+------------------------------ Reporter: bgamari | Owner: Type: bug | Status: new 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): Wiki Page: | -------------------------------------+------------------------------ Comment (by bgamari): Looking a bit more at how m32 works, this behavior makes quite a bit of sense: it keeps a list of pages which it fills with small objects (which symbol extras are). Once a page is full it removes it from the active list. When an object in a non-active page is freed it decrements an object counter associated with that page. When the counter reaches zero, the page itself is freed. I can think of a few (imperfect) approaches to mitigate this, 1. don't use m32 for symbol extras 2. teach m32 to try harder to find memory in the needed range 3. teach m32 to replace freed pages on the active list instead of freeing them 4. just accept that object unloading on ARM is a bit broken and mark the test accordingly I'm currently leaning towards (4). -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11340#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler