[GHC] #8965: bootstrapping failure on Linux/ppc64el

GHC ghc-devs at haskell.org
Sat Apr 12 10:48:08 UTC 2014


#8965: bootstrapping failure on Linux/ppc64el
--------------------------------------------+-----------------------------
        Reporter:  cjwatson                 |            Owner:
            Type:  bug                      |           Status:  patch
        Priority:  normal                   |        Milestone:  7.8.3
       Component:  Compiler                 |          Version:  7.8.1-rc2
      Resolution:                           |         Keywords:
Operating System:  Linux                    |     Architecture:  powerpc64
 Type of failure:  GHC doesn't work at all  |       Difficulty:  Unknown
       Test Case:                           |       Blocked By:
        Blocking:                           |  Related Tickets:
--------------------------------------------+-----------------------------

Comment (by cjwatson):

 Replying to [comment:2 ezyang]:
 > Wow, nice catch! Are there any other places where we are improperly
 declaring null argument lists?

 I wouldn't like to categorically say no, because I don't know GHC anywhere
 near well enough for that. :-)  The best I can do is to say that nothing
 else impeded the bootstrap on this architecture ...

 I did find a couple of related problems:

 * While using an empty parameter list is better than a wrong parameter
 list, it's technically an obsolescent feature in C11, and the proper fix
 is to generate a correct prototype.  The compiler hacking for this is
 beyond me.

 * There are a couple of uses of (at least) `debugBelch` in `rts/*.cmm`,
 which have a similar problem: if you try to run the compiler on ppc64el
 with `-Da`, for instance, it crashes because the call to `debugBelch` in
 `stg_ap_0_fast` corrupts the caller's stack, as it didn't realise it was
 calling a varargs function and so didn't allocate enough stack space.
 There's a `debugBelch2` workaround in `libraries/base` for the same kind
 of problem; the RTS probably needs to do something similar.  Generating
 correct prototypes in the compiler would fix this problem too.

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


More information about the ghc-tickets mailing list