Opened 14 months ago

Last modified 14 months ago

#15689 new bug

s390x builds flood with -Wunused-label warnings

Reported by: juhpetersen Owned by:
Priority: normal Milestone: 8.6.1
Component: Compiler (CodeGen) Version: 8.4.3
Keywords: Cc:
Operating System: Linux Architecture: Other
Type of failure: None/Unknown Test Case:
Blocked By: Blocking:
Related Tickets: Differential Rev(s):
Wiki Page:

Description

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:
     ^~~~~
    |

Change History (1)

comment:1 Changed 14 months ago by juhpetersen

Version: 8.6.18.4.3

(I haven't tested yet on 8.6.1 - that will be my next step (after hopefully having finally gotten 8.4.3 to build on s390x now with Debian's Stg.h patch). But I think this probably happens for all 8.x releases - I can check more carefully later, so I would be surprised if 8.6 is not affected too.)

Note: See TracTickets for help on using tickets.