Ticket #2241 (closed bug: fixed)

Opened 5 years ago

Last modified 5 years ago

unknown epilogue mangling, WARNING: Epilogue junk

Reported by: igloo Owned by:
Priority: high Milestone: 6.10 branch
Component: Compiler Version: 6.9
Keywords: Cc:
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: Difficulty: Unknown
Test Case: Blocked By:
Blocking: Related Tickets:

Description

At some point (before the 10th Apr) we started getting epilogue junk in the HEAD, e.g.:

../compiler/ghc-inplace -Werror -H64m -Onot -fasm -optc-O2 -I../includes -I. -Iparallel -Ism -DCOMPILING_RTS -package-name rts -fvia-C -static  -I../gmp/gmpbuild -I../libffi/build/include -I. -dcmm-lint     -c Apply.cmm -o Apply.o
ghc-asm: unknown epilogue mangling? x86_64-unknown-linux
WARNING: Epilogue junk?:
    addq    $8, %rsp
    ret
    .size   stg_PAP_entry, .-stg_PAP_entry
    .p2align 4,,15
.globl stg_PAP_apply
    .type   stg_PAP_apply, @function

Change History

Changed 5 years ago by igloo

  • status changed from new to closed
  • resolution set to fixed

This was fixed by

Mon May 12 12:06:43 BST 2008  Simon Marlow <simonmar@microsoft.com>
  * Fixes to via-C prototype generation (FIX BUILD on Windows)
    
  Previously we declared all external labels with type StgWord[],
  because the same label might be used at different types in the same
  file, e.g. if there are multiple foreign import declarations for the
  same function.  However, we have to declare called functions with the
  right type on Windows, because this is the only way to make the
  compiler add the appropriate '@n' suffix for stdcall functions.
  
  Related to this is the reason we were getting mangler complaints
  (epilogue mangling) when compiling the RTS with -fvia-C.  The function
  barf() doesn't return, but we had lost that information by declaring
  our own prototypes, and so gcc was generating extra code after the
  call to barf().
  
  For more details see
  http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/Backends/PprC

Changed 5 years ago by simonmar

  • architecture changed from Unknown to Unknown/Multiple

Changed 5 years ago by simonmar

  • os changed from Unknown to Unknown/Multiple
Note: See TracTickets for help on using tickets.