#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