
#12186: GHC compiled executable incompatible with 3rd party software -------------------------------------+------------------------------------- Reporter: tim-m89 | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 (Linking) | Keywords: | Operating System: Windows Architecture: x86_64 | Type of failure: Incorrect result (amd64) | at runtime Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- I've been trying to work on a library that allows Haskell to call into .Net code, but there's a major show stopper in that the .Net runtime starting with version 4.0, doesn't like the executable files that GHC produces. I've managed to reduce a test case to not actually depend on using Haskell, but just using GHC to compile a C file, and that C file being nothing but a dumb wrapper around a small dll. The resulting executable exhibits the incorrect behaviour: {{{
stack exec ghc -- main.c -no-hs-main main 1 2 3 4 5 6 ICLRRuntimeHost Start failed w/hr 0x80004005 }}}
Then I can also use GCC on the intermediate object file that was created, and produce an executable that exhibits the correct behaviour: {{{
stack exec gcc -- main.o -o main2.exe main2 1 2 3 4 5 6 7 8 }}}
I've put a copy of the test case here: https://gitlab.com/tim-m89/DotNetHostingTest -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12186 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler