[GHC] #7134: ghc-7.6.0.20120810-x86_64-windows.exe -> internal error R_X86_64_PC32
GHC
ghc-devs at haskell.org
Wed Jan 22 09:05:35 UTC 2014
#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
More information about the ghc-tickets
mailing list