passing CFLAGS and LDFLAGS to ghc via Cabal?

Sergei Trofimovich slyich at gmail.com
Fri Oct 24 20:10:39 UTC 2014


On Fri, 24 Oct 2014 15:51:04 +0900
Jens Petersen <juhpetersen at gmail.com> wrote:

> Hi,
> 
> This may seem like a strange question since most ghc compilation uses the
> NCG or llvm backends, but I want to ask about how/if one can pass
> CFLAGS/LDFLAGS to gcc from Cabal?
> 
> So far I tried using --gcc-options="$RPM_OPT_FLAGS" (and also just
> exporting CFLAGS), but as far as I can tell (from --ghc-option=-v) the
> options are not passed by ghc to gcc. Is the problem that ghc first
> compiles C code to assembler before compiling the asm to an object file?
> 
> (This is in the context of adding of trying to add debuginfo for C files to
> Fedora's Haskell packages, though I am not even sure if it is useful. Maybe
> it is a futile experiment?)

I believe the proper way to pass them is via
    --ghc-option="-optc$EACH_CFLAG -optl$EACH_LDFLAG -opta$EACH_ASFLAG"
as Cabal uses ghc to compile .c/.cpp files.

At least it's how we do it in gentoo
    https://github.com/gentoo-haskell/gentoo-haskell/blob/master/eclass/haskell-cabal.eclass#L366
to preserve debug syms and play with
things like -Wl,--as-needed -Wl,--hash-style=gnu.

-- 

  Sergei
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://www.haskell.org/pipermail/cabal-devel/attachments/20141024/522b8643/attachment.sig>


More information about the cabal-devel mailing list