Skip to content

LLVM backend miscompiles GHC stage2

Hello,

I've been hunting issue where ghc-stage2 fails with

"inplace/bin/ghc-stage2" -H32m -O -hide-all-packages -i -iutils/haddock/src -iutils/haddock/dist/build -iutils/haddock/dist/build/autogen -Iutils/haddock/dist/build -Iutils/haddock/dist/build/autogen -optP-DIN_GHC_TREE -optP-include -optPutils/haddock/dist/build/autogen/cabal_macros.h -package Cabal-1.15.0 -package array-0.3.0.3 -package base-4.6.0.0 -package containers-0.5.0.0 -package directory-1.1.0.1 -package filepath-1.2.0.1 -package ghc-7.5.20120703 -package pretty-1.1.1.0 -package xhtml-3000.2.0.5 -funbox-strict-fields -O2 -Wall -fwarn-tabs -XHaskell2010 -XCPP -XDeriveDataTypeable -XScopedTypeVariables -XMagicHash -no-user-package-db -rtsopts -odir utils/haddock/dist/build -hidir utils/haddock/dist/build -stubdir utils/haddock/dist/build -hisuf hi -osuf o -hcsuf hc -c utils/haddock/src/Haddock/GhcUtils.hs -o utils/haddock/dist/build/Haddock/GhcUtils.o
utils/haddock/src/Haddock/GhcUtils.hs:274:21:
Illegal record syntax (use -XTraditionalRecordSyntax): d {objectDir = Just
f}
make[1]: *** [utils/haddock/dist/build/Haddock/GhcUtils.o] Error 1

from time to time. It happens on ARM builder: http://darcs.haskell.org/ghcBuilder/builders/kgardas-linux-arm-head/ since build 9. Build 8 was OK. I've been trying to find the precise patch which causes the failure but so far not successful on this. I just suspect the set of patches which happens between those two builds on libraries/containers. Anyway, this is just an issue trigger. The real issue is not on ARM, but probably in LLVM or LLVM backend as I've been also able yesterday to duplicate exactly the same issue on my opensolaris/x86 host while performing perf-llvm build flavor. This is also probably the reason only ARM builder caught this issue as all others are using NCG for building GHC stage2 by default.

Last note: this is a regression from 7.4.x branch.

Trac metadata
Trac field Value
Version 7.5
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information