Properly externalise codegen identifiers (#8166)
authorAustin Seipp <aseipp@pobox.com>
Tue, 27 Aug 2013 01:12:02 +0000 (20:12 -0500)
committerAustin Seipp <aseipp@pobox.com>
Tue, 27 Aug 2013 02:18:07 +0000 (21:18 -0500)
commit776cfe28cf089c24a56a288f2f0c49494f7d9e47
treecc6042ea3ae3ad573dea32d527663eb28e42d2f1
parent795fe083e59fa22055cca53fadc36ebd26b0d2a5
Properly externalise codegen identifiers (#8166)

388e14e2 unfortunately broke a subtle invariant in the code generator:
when generating code for an application, names may need to be
externalised, in case you're building against something external with
was built with -split-objs.

We were never externalising the ids of the applied functions. This means
if the libraries are split and we call into them, then the compiler
won't may not generate correct ids when making references to functions
in the library (causing linker failure).

I'm not entirely sure how this didn't break everything, but it certainly
caused several failures for a bunch of people. I had to fiddle with my
tree a little to make this occur.

This should fix #8166.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
compiler/codeGen/StgCmmExpr.hs