addCStub doesn't allow control over compiler flags or source file file
Currently if you pass a C source file on the GHC command line you can control whether the compiler treats it as C or C++ via the it's extension: GCC will treat a file ending in .c as C, whereas .cpp is treated as C++.
However, we currently have no means of controlling what language a stub added with in Template Haskell with addCStub will be treated as. Consequently it is currently impossible to compile a C++ source file with addCStub without using -optc. Moreover, you can't have mixed C/C++ stubs at all.
It really seems like this interface should be amended to fix this before we release it in 8.2. Perhaps addCStub should accept both the source and a set of compiler flags which will be added to the usual flags (allowing one to pass -x c++ to the compiler when compiling C++ files)?
Trac metadata
| Trac field | Value |
|---|---|
| Version | 8.0.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | high |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | facundo.dominguez, mboes |
| Operating system | |
| Architecture |