Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#10051 closed bug (duplicate)

panic - the 'impossible' happened

Reported by: jpw1991 Owned by:
Priority: normal Milestone: 7.10.1
Component: GHCi Version: 7.8.4
Keywords: Cc: hvr
Operating System: Windows Architecture: x86_64 (amd64)
Type of failure: GHCi crash Test Case:
Blocked By: Blocking:
Related Tickets: #9907, #7103, #7056, #8546 Differential Rev(s):
Wiki Page:

Description

Hi there,

I'm new to Haskell and I'm loving it so far. I finished a learning project in Haskell and it works fine on Linux. I'm bringing it over to Windows and I got the following error while running it:

C:\Repositories\HaskellPong>ghci Main.hs -LC:\SDL\lib -lSDL2 GHCi, version 7.8.3: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. Loading object (static archive) C:\SDL\lib\libSDL2.a ... ghc.exe: Unknown PEi386

section name `.rdata$.refptr.DUMMYAUD_bootstrap' (while processing: C:\SDL\lib\

libSDL2.a) ghc.exe: panic! (the 'impossible' happened)

(GHC version 7.8.3 for x86_64-unknown-mingw32):

loadArchive "C:
SDL
lib
libSDL2.a": failed

Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug

The repository is public, so you can go and get it from here: https://jwoodss@bitbucket.org/jwoodss/haskellpong.git

Change History (6)

comment:1 Changed 5 years ago by jpw1991

Operating System: Unknown/MultipleWindows

comment:2 Changed 5 years ago by archblob

This looks like the same problem reported in #7103.

comment:3 Changed 5 years ago by rwbarton

Or #9907. I don't know enough about Windows to be sure whether these are duplicates, but they all look related at least.

comment:4 Changed 5 years ago by Austin Seipp <austin@…>

In a293925d810229fbea77d95f2b3068e78f8380cc/ghc:

rts/linker: ignore unknown PE sections

Summary: Currently the linker tries to see if it understands/knows every section in the PE file before it continues. If it encounters a section it doesn't know about it errors out. Every time there's a change in MinGW compiler that adds a new section to the PE file this will break the ghc linker. The new sections don't need to be understood by `ghc` to continue so instead of erroring out the section is just ignored. When running with `-debug` the sections that are ignored will be printed.

Test Plan:
See the file `ghcilinkerbug.zip` in #9907.

 1) unzip file content.
 2) open examplecpp.cabal and change base <4.8 to <4.9.
 3) execute cabal file with cabal repl.

Applying the patch makes `cabal repl` in step 3) work.

Note that the file will fail on a `___mingw_vprintf` not being found. This is because of the `cc-options` specifying `-std=c++0x`, which will also require `libmingwex.a` to be linked in but wasn't specified in the cabal file. To fix this, remove the `cc-options` which defaults to c99.

Reviewers: austin

Reviewed By: austin

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D671

GHC Trac Issues: #9907, #7103, #10051, #7056, #8546

comment:5 Changed 5 years ago by thoughtpolice

Resolution: duplicate
Status: newclosed

Duplicate of #9907, which will be merged to 7.10.1.

comment:6 Changed 5 years ago by thoughtpolice

Milestone: 7.10.1
Note: See TracTickets for help on using tickets.