Re: [GHC] #7134: ghc-7.6.0.20120810-x86_64-windows.exe -> internal error R_X86_64_PC32

#7134: ghc-7.6.0.20120810-x86_64-windows.exe -> internal error R_X86_64_PC32 -------------------------------+---------------------------------- Reporter: cetinsert | Owner: thoughtpolice Type: bug | Status: patch Priority: highest | Milestone: 7.8.1 Component: GHCi | Version: 7.6.1-rc1 Resolution: | Keywords: R_X86_64_PC32 Operating System: Windows | Architecture: x86_64 (amd64) Type of failure: GHCi crash | Difficulty: Unknown Test Case: | Blocked By: 3658 Blocking: | Related Tickets: -------------------------------+---------------------------------- Comment (by awson): I've made preliminary port of this patch to HEAD. It works on my Windows 8 64-bit boxes, but some mentions should be made: 1. I've disabled {{{.ctor}}} section handling. It was introduced recently and does not work on x86_64 mingw32 barfing {{{can't find section `'}}}; 2. It turned out STG allocator (which uses standard C {{{malloc}}}, which, in turn, uses {{{HeapAlloc}}} on Windows) can allocate some memory from high addresses. This did not occured when I allocated trampolines area with {{{VirtualAlloc}}} directly, but it makes Symon's concerns looks much more reasonable than I thought before. Probably, it is worth efforts to guarantee placement of trampolines area next to object image in memory as it is made in unixish code. Especially because we now allocate trampolines for all externs and not only for undefined externs (which accidentally was enough for 7.6.3) precisely because of STG allocator puts some *defined* externs to high addresses. Anyway, right now this patch makes x86_64 mingw32 working! -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/7134#comment:45 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC