[GHC] #15689: s390x builds flood with -Wunused-label warnings

GHC ghc-devs at haskell.org
Sat Sep 29 11:29:25 UTC 2018


#15689: s390x builds flood with -Wunused-label warnings
-------------------------------------+-------------------------------------
           Reporter:  juhpetersen    |             Owner:  (none)
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:  8.6.1
          Component:  Compiler       |           Version:  8.6.1
  (CodeGen)                          |
           Keywords:                 |  Operating System:  Linux
       Architecture:  Other          |   Type of failure:  None/Unknown
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 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:
      ^~~~~
     |
 }}}

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15689>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list