Adding a "release" setting in (and some other build system questions)

Thomas Miedema thomasmiedema at
Fri Jan 29 00:23:27 UTC 2016

On Fri, Jan 29, 2016 at 12:50 AM, Ömer Sinan Ağacan <omeragacan at>

> I'm trying to figure out how to generate a release build. I thought it
> should
> be "perf" setting, but then I realized ghc-stage1 is called with -O
> (instead of
> -O2) when building stage2 with perf setting. So either perf is not the
> release
> setting, or I need stage3 which is probably compiled with stage2 using -O2?
> In any case, it'd be great to document this process of generating a release
> build in If it's "perf" setting, then maybe we can rename
> it
> to "release" or at least add a comment saying that that's the release
> build and
> you should wait until stage3 is done.
> Another thing that always confuses me is these settings:
>     SRC_HC_OPTS        = -O -H64m
>     GhcStage1HcOpts    = -O
>     GhcStage2HcOpts    = -O2
>     GhcLibHcOpts       = -O2
> As far as I can see, there's no documentation about these in the source
> tree. I
> figured that `GhcStage1HcOpts` is passed to system GHC when compiling
> stage1,
> and `GhcStage2Hcopts` is passed to ghc-stage1 when compiling stage 2. The
> lib
> one is obvious, and it's passed to stage 1 as libs are built using stage
> 1. But
> I still don't understand how is `SRC_HC_OPTS` is used, and what is used
> when
> building stage 3.
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the ghc-devs mailing list