
#7718: ios patch no 8: adjustor pools --------------------------------+------------------------------------------- Reporter: StephenBlackheath | Owner: Type: feature request | Status: patch Priority: normal | Milestone: Component: Compiler | Version: 7.7 Resolution: | Keywords: Os: Other | Architecture: arm Failure: None/Unknown | Difficulty: Unknown Testcase: | Blockedby: Blocking: 7724 | Related: --------------------------------+------------------------------------------- Changes (by StephenBlackheath): * status: new => patch Comment: I have got libffi working on iOS now for adjustors, so we don't need the pools any more, which is great news. My work is done now (unless you need something fixed), and it's over to you guys. ----------------- How libffi gets around Apple's restrictions is interesting, and I never would have thought of it. Somehow or other it manages to allocate two adjacent memory pages, setting the second one to be executable and putting some pre-compiled data in it. The executable page then fetches the closure's data with a PC-relative reference of -4096 or so (the page size), so it picks the data out of the writable memory! Mind boggling. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/7718#comment:9 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler