Thanks for rallying everyone! I made a bit of a breakthrough while trying to pinpoint where the linker is invoked.
Here's the situation: * If I use nofib's "make" command to build the text, the executable does not have the function symbols in its .text section. The .o files do have them. * If I use ghc --make instead, the symbols survive in the executable. I'm not up to sleuthing out the details at the moment. Should I open a Trac ticket? On Fri, Feb 15, 2013 at 7:55 PM, Geoffrey Mainland <gmain...@microsoft.com>wrote: > Try invoking ghc with -optl-g?**** > > ** ** > > Geoff**** > > ** ** > > *From:* ghc-devs-boun...@haskell.org [mailto:ghc-devs-boun...@haskell.org] > *On Behalf Of *Nicolas Frisby > *Sent:* Friday, February 15, 2013 7:41 PM > *To:* Johan Tibell > *Cc:* ghc-devs@haskell.org > *Subject:* Re: low-level profiling**** > > ** ** > > Ah, looks like the symbol information exists in the .o files, but not in > my actual executable. Could I invoke ld manually with some incantation to > preserve the function symbols?**** > > **** > > **** > > ** ** > > On Fri, Feb 15, 2013 at 7:18 PM, Nicolas Frisby <nicolas.fri...@gmail.com> > wrote:**** > > No, nothing fancy. It's just a nofib program.**** > > **** > > I am seeing the .size directives in the .s files. And objdump -S gives > output like this:**** > > **** > > 0000000000000368 <c2hw_info>: > 368: 48 83 e3 07 and $0x7,%rbx > 36c: 48 83 fb 02 cmp $0x2,%rbx > 370: 0f 83 96 00 00 00 jae 40c <c2hA_info+0x5c> > 376: 48 8b 45 08 mov 0x8(%rbp),%rax**** > > ...**** > > **** > > so it's just perf that's going awry? **** > > **** > > ... investigating perf ...**** > > **** > > This might be my issue:**** > > **** > > > http://us.generation-nt.com/answer/tip-perf-urgent-perf-symbols-handle-proc-sys-kernel-kptr-restrict-help-203499422.html > **** > > **** > > Now I just have to decode all of that!**** > > ** ** > > On Fri, Feb 15, 2013 at 6:48 PM, Johan Tibell <johan.tib...@gmail.com> > wrote:**** > > On Fri, Feb 15, 2013 at 10:24 AM, Nicolas Frisby <nicolas.fri...@gmail.com> > wrote:**** > > I'm not passing any flags related to code generation, I don't think.**** > > **** > > $HC -H64m -O -Rghc-timing -package array -H32m -hisuf hi -O1 -rtsopts -c > Main.hs -o Main.o**** > > **** > > So that'd just be the native code generator, right?.**** > > **** > > $ uname -a > Linux cam-05-unx 3.2.0-35-generic #55-Ubuntu SMP Wed Dec 5 17:42:16 UTC > 2012 x86_64 x86_64 x86_64 GNU/Linux**** > > **** > > Is there a objdump-ish way to directly look for these .size directives?*** > * > > **** > > Thanks Johan.**** > > ** ** > > If you tell GHC to keep all temporary file you could look in the .S files > for the .size directive. It could be that I missed some place where we > ought to put a .size directive. Are you doing dynamic linking? **** > > ** ** > > ** ** >
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs