Testsuite with profiling

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Testsuite with profiling

Jan Stolarek
I need to run testsuite with profiling turned on. When I run

  make WAY=normal EXTRA_HC_OPTS="-prof -fprof-auto -rtsopts"

lots of tests are failing with:

      Dynamic linking required, but this is a non-standard build (eg. prof).
      You need to build the program twice: once the dynamic way, and then
      in the desired way using -osuf to set the object file suffix.

I only added "GhcLibWays     += p" to "quick" section of my build.mk. I guess this error message has something to do with DYNAMIC_BY_DEFAULT - I could probably get this right with a trial and error approach, but I'd rather know what I'm doing. Can anyone tell me what is going on and what do I need to do to make this work?

Janek


Reply | Threaded
Open this post in threaded view
|

Testsuite with profiling

Edward Z. Yang
That's to be expected, because unfortunately, profiling is not
a "transparent" operation; you have to compile things differently
and certain features don't work.

You might have better luck doing a slow test run, with WAY=prof
(there are actually a number of other cases too, such as prof_hc_hb,
etc, see testsuite/config/ghc)

Edward

Excerpts from Jan Stolarek's message of Thu Sep 19 02:30:53 -0700 2013:

> I need to run testsuite with profiling turned on. When I run
>
>   make WAY=normal EXTRA_HC_OPTS="-prof -fprof-auto -rtsopts"
>
> lots of tests are failing with:
>
>       Dynamic linking required, but this is a non-standard build (eg. prof).
>       You need to build the program twice: once the dynamic way, and then
>       in the desired way using -osuf to set the object file suffix.
>
> I only added "GhcLibWays     += p" to "quick" section of my build.mk. I guess this error message has something to do with DYNAMIC_BY_DEFAULT - I could probably get this right with a trial and error approach, but I'd rather know what I'm doing. Can anyone tell me what is going on and what do I need to do to make this work?
>
> Janek