[GHC] #5139: Output ELF .size directives
GHC
cvs-ghc at haskell.org
Wed Apr 27 14:32:34 CEST 2011
#5139: Output ELF .size directives
------------------------------+---------------------------------------------
Reporter: tibbe | Owner: tibbe
Type: feature request | Status: new
Priority: normal | Milestone: 7.2.1
Component: Compiler | Version: 7.0.3
Resolution: | Keywords:
Testcase: | Blockedby:
Difficulty: | Os: Unknown/Multiple
Blocking: | Architecture: Unknown/Multiple
Failure: None/Unknown |
------------------------------+---------------------------------------------
Comment(by tibbe):
Replying to [comment:8 tibbe]:
> I've triaged the issue a bit further. Adding the `.size` directive is
enough to make `dynHelloWorld` fail:
>
> {{{
> diff --git a/compiler/nativeGen/X86/Ppr.hs
b/compiler/nativeGen/X86/Ppr.hs
> index 5fe78e1..f8f4cc1 100644
> --- a/compiler/nativeGen/X86/Ppr.hs
> +++ b/compiler/nativeGen/X86/Ppr.hs
> @@ -87,7 +87,17 @@ pprNatCmmTop (CmmProc info lbl (ListGraph blocks)) =
> <+> pprCLabel_asm (mkDeadStripPreventer $
entryLblToInfoLbl lbl)
> else empty
> #endif
> + $$ pprSizeDecl (if null info then lbl else entryLblToInfoLbl lbl)
>
> +-- | Output the ELF .size directive.
> +pprSizeDecl :: CLabel -> Doc
> +#if elf_OBJ_FORMAT
> +pprSizeDecl lbl =
> + ptext (sLit "\t.size") <+> pprCLabel_asm lbl
> + <> ptext (sLit ", .-") <> pprCLabel_asm lbl
> +#else
> +pprSizeDecl _ = empty
> +#endif
>
> pprBasicBlock :: NatBasicBlock Instr -> Doc
> pprBasicBlock (BasicBlock blockid instrs) =
> }}}
I take that back, I forgot to rebuild the stage 1 compiler before
rebuilding the RTS.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5139#comment:9>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the Glasgow-haskell-bugs
mailing list