Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP


Can't pass extra arguments to c2hs #853

bos opened this Issue · 3 comments

2 participants


(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.

(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.


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


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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.