[GHC] #8974: 64 bit windows executable built with ghc-7.9.20140405+LLVM segfaults

GHC ghc-devs at haskell.org
Tue Feb 10 20:50:57 UTC 2015


#8974: 64 bit windows executable built with ghc-7.9.20140405+LLVM segfaults
-------------------------------------+-------------------------------------
        Reporter:  awson             |                   Owner:
            Type:  bug               |                  Status:  infoneeded
        Priority:  high              |               Milestone:  7.12.1
       Component:  Compiler (LLVM)   |                 Version:  7.9
      Resolution:                    |                Keywords:
Operating System:  Windows           |            Architecture:  x86_64
 Type of failure:  Runtime crash     |  (amd64)
      Blocked By:                    |               Test Case:
 Related Tickets:                    |                Blocking:
                                     |  Differential Revisions:
-------------------------------------+-------------------------------------

Comment (by Fanael):

 It's not Windows, it's binutils being broken (nothing new).

 For example, LLVM emits this:

 {{{
         .quad   S1kt_srt$def-Main_main1_info$def # @"Main_main1_info$def"
         .quad   4294967299              # 0x100000003
         .quad   0                       # 0x0
         .quad   64424509455             # 0xf0000000f
 Main_main1_info$def:
 }}}

 With GDB, we can learn that this value should equal
 {{{
 (gdb) p ((char*)&S1kt_srt$def - (char*)&Main_main1_info$def)
 $1 = 3062336
 }}}

 But what actually lands in the executable is
 {{{
 (gdb) x/d Main_main1_info$def - 32
 0x4015b0 <Main_main2_info$def+96>:      3062340
 }}}

 Makes me wonder if binutils devs are aware of the problem.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8974#comment:27>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list