diff options
| author | Tamar Christina <tamar@zhox.com> | 2015-02-23 03:40:43 -0600 |
|---|---|---|
| committer | Austin Seipp <austin@well-typed.com> | 2015-02-23 03:40:44 -0600 |
| commit | a293925d810229fbea77d95f2b3068e78f8380cc (patch) | |
| tree | 867f2774bb1d9f6d1faab471d6f101888ca04967 /compiler | |
| parent | a0ef626e8c51784cc0bf9b33e3c5b3e750b2786b (diff) | |
| download | haskell-a293925d810229fbea77d95f2b3068e78f8380cc.tar.gz | |
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
Diffstat (limited to 'compiler')
0 files changed, 0 insertions, 0 deletions
