
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
Try invoking ghc with -optl-g?****
** **
Geoff****
** **
*From:* ghc-devs-bounces@haskell.org [mailto:ghc-devs-bounces@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
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
: 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 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-... ****
****
Now I just have to decode all of that!****
** **
On Fri, Feb 15, 2013 at 6:48 PM, Johan Tibell
wrote:**** On Fri, Feb 15, 2013 at 10:24 AM, Nicolas Frisby
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? ****
** **
** **