[GHC] #12504: Windows: Using hsc2hs in combination with inline-c generates the .c files with invalid paths
GHC
ghc-devs at haskell.org
Sat Aug 27 15:58:59 UTC 2016
#12504: Windows: Using hsc2hs in combination with inline-c generates the .c files
with invalid paths
-------------------------------------+-------------------------------------
Reporter: rcook | Owner:
Type: bug | Status: patch
Priority: normal | Milestone:
Component: hsc2hs | Version: 8.0.1
Resolution: | Keywords:
Operating System: Windows | Architecture:
| Unknown/Multiple
Type of failure: Other | Test Case:
| /testsuite/tests/hsc2hs/T12504/path/to/T12504.hsc
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s): Phab:D2477
Wiki Page: | Phab:D2478
-------------------------------------+-------------------------------------
Description changed by rcook:
@@ -25,1 +25,1 @@
- * Add the line `c-source-files: src/Main.c` to the `executable inlinecbug`
+ * Add the line `c-sources: src/Main.c` to the `executable inlinecbug`
New description:
Repro steps:
* Install Stack on a ''Windows'' development machine.
* Create new simple project with `stack new inlinecbug simple`.
* Rename `src/Main.hs` to `src/Main.hsc` in the `inlinecbug` project
directory.
* Build project with `stack build` and run with `stack exec inlinecbug` to
verify that hsc2hs works correctly.
* Replace content of `src/Main.hsc` with following:
{{{#!hs
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TemplateHaskell #-}
import qualified Language.C.Inline as C
C.include "<math.h>"
main :: IO ()
main = do
x <- [C.exp| double{ cos(1) } |]
print x
}}}
* In `inlinecbug.cabal` add `inline-c` to the `build-depends` section of
`executable inlinecbug`.
* Add the line `c-sources: src/Main.c` to the `executable inlinecbug`
section.
* Rebuild with `stack build`.
Build will fail with a linker error referring to a undefined reference to
an `inline_c_main...` function. List the files in the root directory of
the project and you'll see that inline-c has generated a file with the
name `srcMain.c`: i.e. the backslashes in the Windows path have been
removed.
Building under Linux generates the C output file with the correct,
expected path of `src/Main.c` and the program will compile, link and run
as expected.
See also: https://github.com/fpco/inline-c/issues/50
--
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12504#comment:7>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list