Skip to content

Fix name mangling for chkstk.

Seems that ___chkstk_ms is handwritten assembly and so doesn't adhere to the C name mangling.

Tamar@Rage ~/ghc> nm -g "inplace\mingw\lib\gcc\x86_64-w64-mingw32\7.2.0\libgcc.a" | grep chkstk
_chkstk.o:
0000000000000004 T ___chkstk
_chkstk_ms.o:
0000000000000000 T ___chkstk_ms

Tamar@Rage ~/ghc> nm -g "inplace\mingw\lib\gcc\i686-w64-mingw32\7.2.0\libgcc.a" | grep chkstk
_chkstk.o:
00000000 T ___chkstk
_chkstk_ms.o:
00000000 T ___chkstk_ms

Before when doing checks on x86_64 it seems that the expansion that was there was generated by the stack allocation code that uses alloca expansion and not from the register allocator's spilling.

This fixes the case where even on x86_64 we spill (mostly happens with profiling builds).

Fixes https://ghc.haskell.org/trac/ghc/ticket/16166

Edited by Andreas Klebinger

Merge request reports