Opened 13 months ago

Last modified 9 months ago

#15913 new bug

ghc-8.6.2 fails to build on s390x (unregisterised): ‘stg_MUT_ARR_PTRS_FROZEN0_info’ undeclared (first use in this function); did you mean ‘stg_MUT_ARR_PTRS_FROZEN_DIRTY_info’?

Reported by: juhpetersen Owned by:
Priority: high Milestone: 8.8.1
Component: Build System (make) Version: 8.6.3
Keywords: Cc:
Operating System: Linux Architecture: Unknown/Multiple
Type of failure: Building GHC failed Test Case:
Blocked By: Blocking:
Related Tickets: Differential Rev(s):
Wiki Page:

Description

ghc-8.6 fails to build on s390x (likely any unregisterised build with ghc 8.2 or 8.4) apparently due to some mix up of include files between stage0 and stage1 compilers.

"/usr/bin/ghc" -hisuf hi -osuf  o -hcsuf hc -static  -H32m -O -Wall  -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header -package-db libraries/bootstrapping.conf  -this-unit-id ghc-8.6.2 -hide-all-packages -i -icompiler/backpack -icompiler/basicTypes -icompiler/cmm -icompiler/codeGen -icompiler/coreSyn -icompiler/deSugar -icompiler/ghci -icompiler/hsSyn -icompiler/iface -icompiler/llvmGen -icompiler/main -icompiler/nativeGen -icompiler/parser -icompiler/prelude -icompiler/profiling -icompiler/rename -icompiler/simplCore -icompiler/simplStg -icompiler/specialise -icompiler/stgSyn -icompiler/stranal -icompiler/typecheck -icompiler/types -icompiler/utils -icompiler/stage1/build -Icompiler/stage1/build -icompiler/stage1/build/./autogen -Icompiler/stage1/build/./autogen -Icompiler/. -Icompiler/parser -Icompiler/utils -Icompiler/stage1 -Icompiler/stage1/build/. -Icompiler/stage1/build/parser -Icompiler/stage1/build/utils -Icompiler/stage1/build/stage1    -optP-include -optPcompiler/stage1/build/./autogen/cabal_macros.h -package-id array-0.5.2.0 -package-id base-4.10.1.0 -package-id binary-0.8.6.0 -package-id bytestring-0.10.8.2 -package-id containers-0.5.10.2 -package-id deepseq-1.4.3.0 -package-id directory-1.3.0.2 -package-id filepath-1.4.1.2 -package-id ghc-boot-8.6.2 -package-id ghc-boot-th-8.6.2 -package-id ghc-heap-8.6.2 -package-id ghci-8.6.2 -package-id hpc-0.6.0.3 -package-id process-1.6.1.0 -package-id template-haskell-2.14.0.0 -package-id terminfo-0.4.1.2 -package-id time-1.8.0.2 -package-id transformers-0.5.5.0 -package-id unix-2.7.2.2 -Wall -Wno-name-shadowing -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances -Wnoncanonical-monoid-instances -this-unit-id ghc -XHaskell2010 -XNoImplicitPrelude -DNO_REGS -DNOSMP -optc-DNOSMP -DSTAGE=1 -Rghc-timing  -Wcpp-undef  -no-user-package-db -rtsopts        -odir compiler/stage1/build -hidir compiler/stage1/build -stubdir compiler/stage1/build    -c compiler/utils/Binary.hs -o compiler/stage1/build/Binary.o 
/tmp/ghc24ef_0/ghc_3.hc: In function ‘cNqW_entry’:
/tmp/ghc24ef_0/ghc_3.hc:50988:61: error:
     error: ‘stg_MUT_ARR_PTRS_FROZEN0_info’ undeclared (first use in this function); did you mean ‘stg_MUT_ARR_PTRS_FROZEN_DIRTY_info’?
     ((struct {W_ x;} __attribute__((packed))*) _sHcZ)->x = (W_)&stg_MUT_ARR_PTRS_FROZEN0_info;
                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                                 stg_MUT_ARR_PTRS_FROZEN_DIRTY_info
      |
50988 | ((struct {W_ x;} __attribute__((packed))*) _sHcZ)->x = (W_)&stg_MUT_ARR_PTRS_FROZEN0_info;
      |                                                             ^
/tmp/ghc24ef_0/ghc_3.hc:50988:61: error:
     note: each undeclared identifier is reported only once for each function it appears in
      |
50988 | ((struct {W_ x;} __attribute__((packed))*) _sHcZ)->x = (W_)&stg_MUT_ARR_PTRS_FROZEN0_info;
      |                                                             ^
/tmp/ghc24ef_0/ghc_3.hc: In function ‘cNra_entry’:
/tmp/ghc24ef_0/ghc_3.hc:51045:61: error:
     error: ‘stg_MUT_ARR_PTRS_FROZEN0_info’ undeclared (first use in this function); did you mean ‘stg_MUT_ARR_PTRS_FROZEN_DIRTY_info’?
     ((struct {W_ x;} __attribute__((packed))*) _sHcZ)->x = (W_)&stg_MUT_ARR_PTRS_FROZEN0_info;
                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                                 stg_MUT_ARR_PTRS_FROZEN_DIRTY_info
      |
51045 | ((struct {W_ x;} __attribute__((packed))*) _sHcZ)->x = (W_)&stg_MUT_ARR_PTRS_FROZEN0_info;
      |                                                             ^
/tmp/ghc24ef_0/ghc_3.hc: In function ‘sHDG_entry’:
/tmp/ghc24ef_0/ghc_3.hc:56499:61: error:
     error: ‘stg_MUT_ARR_PTRS_FROZEN0_info’ undeclared (first use in this function); did you mean ‘stg_MUT_ARR_PTRS_FROZEN_DIRTY_info’?
     ((struct {W_ x;} __attribute__((packed))*) _sHDE)->x = (W_)&stg_MUT_ARR_PTRS_FROZEN0_info;
                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                                 stg_MUT_ARR_PTRS_FROZEN_DIRTY_info
      |
56499 | ((struct {W_ x;} __attribute__((packed))*) _sHDE)->x = (W_)&stg_MUT_ARR_PTRS_FROZEN0_info;
      |                                                             ^
/tmp/ghc24ef_0/ghc_3.hc: In function ‘cO9A_entry’:
/tmp/ghc24ef_0/ghc_3.hc:56819:61: error:
     error: ‘stg_MUT_ARR_PTRS_FROZEN0_info’ undeclared (first use in this function); did you mean ‘stg_MUT_ARR_PTRS_FROZEN_DIRTY_info’?
     ((struct {W_ x;} __attribute__((packed))*) _sHDE)->x = (W_)&stg_MUT_ARR_PTRS_FROZEN0_info;
                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                                 stg_MUT_ARR_PTRS_FROZEN_DIRTY_info
      |
56819 | ((struct {W_ x;} __attribute__((packed))*) _sHDE)->x = (W_)&stg_MUT_ARR_PTRS_FROZEN0_info;
      |                                                             ^
/tmp/ghc24ef_0/ghc_3.hc: In function ‘cOa5_entry’:
/tmp/ghc24ef_0/ghc_3.hc:56907:61: error:
     error: ‘stg_MUT_ARR_PTRS_FROZEN0_info’ undeclared (first use in this function); did you mean ‘stg_MUT_ARR_PTRS_FROZEN_DIRTY_info’?
     ((struct {W_ x;} __attribute__((packed))*) _sHDE)->x = (W_)&stg_MUT_ARR_PTRS_FROZEN0_info;
                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                                 stg_MUT_ARR_PTRS_FROZEN_DIRTY_info
      |
56907 | ((struct {W_ x;} __attribute__((packed))*) _sHDE)->x = (W_)&stg_MUT_ARR_PTRS_FROZEN0_info;
      |                                                             ^
`gcc' failed in phase `C Compiler'. (Exit code: 1)
<<ghc: 5594223368 bytes, 548 GCs, 37786228/65761936 avg/max bytes residency (14 samples), 177M in use, 0.001 INIT (0.001 elapsed), 6.007 MUT (6.639 elapsed), 2.510 GC (2.514 elapsed) :ghc>>
make[1]: *** [compiler/ghc.mk:446: compiler/stage1/build/Binary.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:125: all] Error 2

Change History (5)

comment:1 Changed 13 months ago by osa1

This renaming was done in 4075656e8bb2338d9857acfa54f8b9c5e0661f44. The changes:

SMALL_MUT_ARR_PTRS_FROZEN0 -> SMALL_MUT_ARR_PTRS_FROZEN_DIRTY
SMALL_MUT_ARR_PTRS_FROZEN  -> SMALL_MUT_ARR_PTRS_FROZEN_CLEAN
MUT_ARR_PTRS_FROZEN0       -> MUT_ARR_PTRS_FROZEN_DIRTY
MUT_ARR_PTRS_FROZEN        -> MUT_ARR_PTRS_FROZEN_CLEAN

It seems like somehow system GHC's tools or header files are used instead of in-tree ones. Not sure how this is possible though ...

comment:2 Changed 12 months ago by bgamari

Milestone: 8.6.3

Ticket retargeted after milestone closed

comment:3 Changed 9 months ago by juhpetersen

Milestone: 8.8.1

comment:4 Changed 9 months ago by juhpetersen

Version: 8.6.28.6.3

comment:5 Changed 9 months ago by bgamari

Priority: normalhigh

We should really get to the bottom of this header file issue.

Note: See TracTickets for help on using tickets.