
#9268: internal error: evacuate(static): strange closure type -385875968 -------------------------------------+------------------------------------- Reporter: brbr | Owner: Type: bug | Status: new Priority: high | Milestone: 7.10.1 Component: Compiler | Version: 7.8.2 Resolution: | Keywords: Operating System: Linux | Architecture: Unknown/Multiple Type of failure: Building | Difficulty: Unknown GHC failed | Blocked By: Test Case: | Related Tickets: Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Comment (by rwbarton): Aaaaaaaaa. So whatever changes I made to `mk/build.mk` didn't have the expected effect, for some reason, and the stage1 compiler was still being built with `-fllvm`. And of course the bootstrapping compiler has an LLVM mangler too, which goes about replacing `@function` with `@object` in the assembly output from LLVM. But I was building the mangler for the stage1 compiler with `-fllvm`, and of course it contains the string constant `@function` so that it knows what to replace with `@object`. So when the bootstrapping mangler mangled the stage1 mangler it also replaced that ''string constant'' `@function` by `@object` meaning the stage1 mangler was actually replacing `@object` with `@object`! So various things such as `ghczmprim_GHCziTypes_Czh_static_info` still had type `@function` after being mangled by the stage1 compiler, which led to this crash. Maybe we can tell LLVM to output `@object`s in the first place somehow? Or be more selective about our mangling... -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9268#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler