[GHC] #9907: "Unknown PEi386 section name `.text$printf'" error in GHCi on Windows

GHC ghc-devs at haskell.org
Mon Feb 23 09:40:16 UTC 2015


#9907: "Unknown PEi386 section name `.text$printf'" error in GHCi on Windows
-------------------------------------+-------------------------------------
        Reporter:  mmikolajczyk      |                   Owner:  Phyx-
            Type:  bug               |                  Status:  patch
        Priority:  normal            |               Milestone:
       Component:  GHCi              |                 Version:  7.8.3
      Resolution:                    |                Keywords:
Operating System:  Windows           |            Architecture:  x86
 Type of failure:  GHCi crash        |               Test Case:
      Blocked By:                    |                Blocking:
 Related Tickets:  #7103, #10051,    |  Differential Revisions:  D671
  #7056, #8546                       |
-------------------------------------+-------------------------------------

Comment (by Austin Seipp <austin@…>):

 In [changeset:"a293925d810229fbea77d95f2b3068e78f8380cc/ghc"]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="a293925d810229fbea77d95f2b3068e78f8380cc"
 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
 }}}

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


More information about the ghc-tickets mailing list