[GHC] #8237: checkProddableBlock: invalid fixup in runtime linker (Windows)
GHC
ghc-devs at haskell.org
Fri Sep 6 06:02:17 CEST 2013
#8237: checkProddableBlock: invalid fixup in runtime linker (Windows)
----------------------------------+---------------------------------
Reporter: ezyang | Owner:
Type: bug | Status: new
Priority: normal | Milestone: 7.8.1
Component: Runtime System | Version: 7.7
Keywords: | Operating System: Windows
Architecture: x86_64 (amd64) | Type of failure: None/Unknown
Difficulty: Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: |
----------------------------------+---------------------------------
I attempted to load a very simple C file into GHC using the linker and got
this error. The C file is:
{{{
#include <stdio.h>
static void f(void); // __attribute__((constructor));
static void f(void)
{
printf("Hooray!");
}
}}}
and the test program:
{{{
{-# LANGUAGE ForeignFunctionInterface #-}
import Foreign.C.String
main = do
initLinker
withCWString "test.o" $ \s -> loadObj s
resolveObjs
foreign import ccall "initLinker" initLinker :: IO ()
foreign import ccall "loadObj" loadObj :: CWString -> IO Int
foreign import ccall "resolveObjs" resolveObjs :: IO ()
}}}
Test is run as:
{{{
bash.exe-3.1$ gcc -c test.c
bash.exe-3.1$ ../ghc-init/inplace/bin/ghc-stage2 --make foo.hs -debug
-fforce-recomp
[1 of 1] Compiling Main ( foo.hs, foo.o )
Linking foo.exe ...
bash.exe-3.1$ ./foo
foo.exe: Unknown PEi386 section name `.eh_frame' (while processing:
test.o)
foo.exe: internal error: checkProddableBlock: invalid fixup in runtime
linker: 002c0154
(GHC version 7.7.20130905 for i386_unknown_mingw32)
Please report this as a GHC bug:
http://www.haskell.org/ghc/reportabug
This application has requested the Runtime to terminate it in an unusual
way.
Please contact the application's support team for more information.
}}}
More useful info:
{{{
bash.exe-3.1$ objdump -s -j .text test.o
test.o: file format pe-i386
Contents of section .text:
0000 5589e583 ec18c704 24000000 00e80000 U.......$.......
0010 0000c9c3 ....
bash.exe-3.1$ objdump -r -j .text test.o
test.o: file format pe-i386
RELOCATION RECORDS FOR [.text]:
OFFSET TYPE VALUE
00000009 dir32 .rdata
0000000e DISP32 _printf
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8237>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list