s390x builds flood with -Wunused-label warnings
This has been happening for major releases for some time already, but I am finally getting around to reporting this. On s390x when building ghc, huge numbers of -Wunused-label warnings flood gcc output.
For example this build: https://koji.fedoraproject.org/koji/taskinfo?taskID=29940997 (note the logs are only kept for 2 weeks) The build.log is 11MB and this is just for compiling less than half of ghc-cabal (270 modules), which generated around 50k unused-label warnings!! So you can imagine the size of a full build.
(Well ghc-8.2.2.69.fc29 full build.log was "only" 33MB for s390x vs 8.8MB for x86_64.)
For now I patched warnings.mk on s390x to workaround this, but it would be better to fix the root cause I suppose.
Here is a small part of the buildlog:
"/usr/bin/ghc" -H32m -O -Wall \
-optc-Wall -optc-fno-stack-protector \
\
-hide-all-packages \
-package ghc-prim -package base -package array -package transformers -package time -package containers -package bytestring -package deepseq -package process -package pretty -package directory -package unix \
--make utils/ghc-cabal/Main.hs -o utils/ghc-cabal/dist/build/tmp/ghc-cabal \
-no-user-package-db \
-Wall -fno-warn-unused-imports -fno-warn-warnings-deprecations \
-DCABAL_VERSION=2,2,0,1 \
-DCABAL_PARSEC \
-DBOOTSTRAPPING \
-odir bootstrapping \
-hidir bootstrapping \
libraries/Cabal/Cabal/Distribution/Parsec/Lexer.hs \
-ilibraries/Cabal/Cabal \
-ilibraries/binary/src \
-ilibraries/filepath \
-ilibraries/hpc \
-ilibraries/mtl \
-ilibraries/text \
libraries/text/cbits/cbits.c \
-Ilibraries/text/include \
-ilibraries/parsec/src \
\
"rm" -f compiler/stage1/build/Config.hs
Creating compiler/stage1/build/Config.hs ...
done.
"rm" -f utils/ghc-pkg/dist/build/Version.hs
echo "module Version where" >> utils/ghc-pkg/dist/build/Version.hs
echo "version, targetOS, targetARCH :: String" >> utils/ghc-pkg/dist/build/Version.hs
echo "version = \"8.4.3\"" >> utils/ghc-pkg/dist/build/Version.hs
echo "targetOS = \"linux\"" >> utils/ghc-pkg/dist/build/Version.hs
echo "targetARCH = \"s390x\"" >> utils/ghc-pkg/dist/build/Version.hs
[ 1 of 270] Compiling Control.Monad.Cont.Class ( libraries/mtl/Control/Monad/Cont/Class.hs, bootstrapping/Control/Monad/Cont/Class.o )
/tmp/ghc705e_0/ghc_130.hc: In function ‘ControlziMonadziContziClass_zdp1MonadCont_entry’:
/tmp/ghc705e_0/ghc_130.hc:16:1: error:
warning: label ‘_c3bA’ defined but not used [-Wunused-label]
_c3bA:
^~~~~
|
16 | _c3bA:
| ^
/tmp/ghc705e_0/ghc_130.hc: In function ‘c3bx_entry’:
/tmp/ghc705e_0/ghc_130.hc:34:1: error:
warning: label ‘_c3bx’ defined but not used [-Wunused-label]
_c3bx:
^~~~~
|
34 | _c3bx:
| ^
/tmp/ghc705e_0/ghc_130.hc: In function ‘ControlziMonadziContziClass_callCC_entry’:
/tmp/ghc705e_0/ghc_130.hc:54:1: error:
warning: label ‘_c3bO’ defined but not used [-Wunused-label]
_c3bO:
^~~~~
|
54 | _c3bO:
| ^
/tmp/ghc705e_0/ghc_130.hc: In function ‘c3bL_entry’:
/tmp/ghc705e_0/ghc_130.hc:72:1: error:
warning: label ‘_c3bL’ defined but not used [-Wunused-label]
_c3bL:
^~~~~
|
72 | _c3bL:
| ^
/tmp/ghc705e_0/ghc_130.hc: In function ‘s38I_entry’:
/tmp/ghc705e_0/ghc_130.hc:98:1: error:
warning: label ‘_c3ca’ defined but not used [-Wunused-label]
_c3ca:
^~~~~
|
98 | _c3ca:
| ^
/tmp/ghc705e_0/ghc_130.hc: In function ‘s38J_entry’:
/tmp/ghc705e_0/ghc_130.hc:125:1: error:
warning: label ‘_c3cf’ defined but not used [-Wunused-label]
_c3cf:
^~~~~
|
125 | _c3cf:
| ^
/tmp/ghc705e_0/ghc_130.hc: In function ‘ControlziMonadziContziClass_zdfMonadContErrorT1_entry’:
/tmp/ghc705e_0/ghc_130.hc:152:1: error:
warning: label ‘_c3ck’ defined but not used [-Wunused-label]
_c3ck:
^~~~~
|
152 | _c3ck:
| ^
/tmp/ghc705e_0/ghc_130.hc: In function ‘s38M_entry’:
/tmp/ghc705e_0/ghc_130.hc:181:1: error:
warning: label ‘_c3cx’ defined but not used [-Wunused-label]
_c3cx:
^~~~~
|
181 | _c3cx:
| ^
/tmp/ghc705e_0/ghc_130.hc: In function ‘ControlziMonadziContziClass_zdfMonadContErrorTzuzdcp1MonadCont_entry’:
/tmp/ghc705e_0/ghc_130.hc:206:1: error:
warning: label ‘_c3cA’ defined but not used [-Wunused-label]
_c3cA:
^~~~~
|
206 | _c3cA:
| ^
/tmp/ghc705e_0/ghc_130.hc: In function ‘s38Q_entry’:
/tmp/ghc705e_0/ghc_130.hc:235:1: error:
warning: label ‘_c3cO’ defined but not used [-Wunused-label]
_c3cO:
^~~~~
|
235 | _c3cO:
| ^
/tmp/ghc705e_0/ghc_130.hc: In function ‘s38P_entry’:
/tmp/ghc705e_0/ghc_130.hc:257:1: error:
warning: label ‘_c3cV’ defined but not used [-Wunused-label]
_c3cV:
^~~~~
|
257 | _c3cV:
| ^
/tmp/ghc705e_0/ghc_130.hc: In function ‘ControlziMonadziContziClass_zdfMonadContErrorT_entry’:
/tmp/ghc705e_0/ghc_130.hc:285:1: error:
warning: label ‘_c3cZ’ defined but not used [-Wunused-label]
_c3cZ:
^~~~~
|
285 | _c3cZ:
| ^
/tmp/ghc705e_0/ghc_130.hc: In function ‘s38W_entry’:
/tmp/ghc705e_0/ghc_130.hc:323:1: error:
warning: label ‘_c3dj’ defined but not used [-Wunused-label]
_c3dj:
^~~~~
|
323 | _c3dj:
| ^
/tmp/ghc705e_0/ghc_130.hc: In function ‘s38X_entry’:
/tmp/ghc705e_0/ghc_130.hc:350:1: error:
warning: label ‘_c3do’ defined but not used [-Wunused-label]
_c3do:
^~~~~
|
350 | _c3do:
| ^
/tmp/ghc705e_0/ghc_130.hc: In function ‘ControlziMonadziContziClass_zdfMonadContExceptT1_entry’:
/tmp/ghc705e_0/ghc_130.hc:377:1: error:
warning: label ‘_c3dt’ defined but not used [-Wunused-label]
_c3dt:
^~~~~
|
377 | _c3dt:
| ^
/tmp/ghc705e_0/ghc_130.hc: In function ‘s38Z_entry’:
/tmp/ghc705e_0/ghc_130.hc:411:1: error:
warning: label ‘_c3dG’ defined but not used [-Wunused-label]
_c3dG:
^~~~~
|
411 | _c3dG:
| ^
/tmp/ghc705e_0/ghc_130.hc: In function ‘ControlziMonadziContziClass_zdfMonadContExceptTzuzdcp1MonadCont_entry’:
/tmp/ghc705e_0/ghc_130.hc:435:1: error:
warning: label ‘_c3dJ’ defined but not used [-Wunused-label]
_c3dJ:
^~~~~
|
435 | _c3dJ:
| ^
/tmp/ghc705e_0/ghc_130.hc: In function ‘s392_entry’:
/tmp/ghc705e_0/ghc_130.hc:462:1: error:
warning: label ‘_c3dX’ defined but not used [-Wunused-label]
_c3dX:
^~~~~
|
Trac metadata
Trac field | Value |
---|---|
Version | 8.6.1 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler (CodeGen) |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |