Can't pass extra arguments to c2hs #853

bos opened this Issue May 24, 2012 · 3 comments


None yet
3 participants

bos commented May 24, 2012

(Imported from Trac #863, reported by guest on 2011-07-16)

With cabal-install 0.10.2, I am no longer able to pass extra arguments to c2hs. When invoked as:

cabal install -O --c2hs-option=--cppopts=-U__BLOCKS__  --c2hs-options="--dump=trace" -v
c2hs is then called as
/Users/localuser/.cabal/bin/c2hs --cpp=/usr/bin/gcc --cppopts=-E --cppopts=-D__GLASGOW_HASKELL__=700 --cppopts=-Ddarwin_BUILD_OS --cppopts=-Ddarwin_HOST_OS --cppopts=-Dx86_64_BUILD_ARCH --cppopts=-Dx86_64_HOST_ARCH --cppopts=-Icbits --cppopts=-DUSE_SSE2 --include=dist/build --cppopts=-I/Users/localuser/.cabal/lib/vector- --cppopts=-I/Users/localuser/.cabal/lib/primitive-0.3.1/ghc-7.0.4/include --cppopts=-I/opt/local/include/ --cppopts=-I/usr/local/lib/ghc-7.0.4/base- --cppopts=-I/usr/local/lib/ghc-7.0.4/include --cppopts=-I/usr/local/lib/ghc-7.0.4/include --output-dir=dist/build --output=Sound/Barnet/BandedLib.hs src/Sound/Barnet/BandedLib.chs --cppopts=-U__BLOCKS__ --dump=trace
The extra arguments are appended to the end of the call, however c2hs (at least c2hs-0.16.3) requires that the .chs binding file come after all options.

bos commented May 24, 2012

(Imported comment by @dcoutts on 2011-07-16)

Mm, interesting. Yes, we changed it so that user-supplied arguments go at the end, because that way they override whatever other params that cabal passes.

We do also have internally a way to specify arguments that are prepended. We might need to expose this. Of course c2hs should also just be fixed so it's not so picky.


mietek commented Jun 3, 2014

This is still an issue with c2hs. (haskell/c2hs#86)


mietek commented Jun 5, 2014

As of 3728e1e5dce5cd116aa39209fea03aef90a90cd1, this is no longer an issue with c2hs.

@ttuegel ttuegel closed this Apr 23, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment