RTS Linker doesn't recognize .text.unlikely section on Windows
|Reported by:||niklasl||Owned by:||simonmar|
|Type of failure:||GHC rejects valid program||Test Case:|
|Related Tickets:||Differential Rev(s):|
When trying to use a newer gcc with GHC 7.8.2, some .o files are rejected by the linker for containing a .text.unlikely section with the following message:
Loading package text-18.104.22.168 ... ghc.exe: panic! (the 'impossible' happened) (GHC version 7.8.2 for x86_64-unknown-mingw32): loadObj "C:\\Niklas\\src\\Idris-dev\\.cabal-sandbox\\x86_64-windows-ghc-7.8.2\\text-22.214.171.124\\HStext-126.96.36.199.o": failed Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug ghc.exe: Unknown PEi386 section name `.text.unlikely' (while processing: C:\Niklas\src\Idris-dev\.cabal-sandbox\x86_64-windows-ghc-7.8.2\text-188.8.131.52\HStext-184.108.40.206.o)
This comes from the ocGetNames_PEi386 function in rts/Linker.c. There is a list of section names recognized as code sections at line 4146- in that file. The fix is to add .text.unlikely there, or maybe the right solution is to cast the net wider and accept .text.* as code sections.