hsc2hs puts linker flags before object file, causes linker errors
I'm trying to write a Haskell wrapper for a C library (called unibilium) using hsc2hs. In one of my files I have custom macros that reference functions from the C library (and #include "unibilium.h").
When I run hsc2hs -I.. foo.hsc, I get linker errors for those functions, as expected. However:
% hsc2hs -I.. foo.hsc -L-L.. -L-lunibilium
foo_hsc_make.o: In function `main':
foo_hsc_make.c:(.text+0x1a0): undefined reference to `unibi_name_bool'
foo_hsc_make.c:(.text+0x23b): undefined reference to `unibi_name_bool'
collect2: ld returned 1 exit status
linking foo_hsc_make.o failed
command was: gcc -L.. -lunibilium foo_hsc_make.o -o foo_hsc_make
Same error. This is because hsc2hs calls gcc with the -l option before the filename, at which point there are no unresolved references, so the library is simply discarded.
hsc2hs should leave my linker options where I put them, at the end of the command line.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 6.10.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | hsc2hs |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |