[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 20 04:31:27 UTC 2016


#12504: Windows: Using hsc2hs in combination with inline-c generates the .c files
with invalid paths
----------------------------------------+----------------------------
           Reporter:  rcook             |             Owner:
               Type:  bug               |            Status:  new
           Priority:  normal            |         Milestone:
          Component:  hsc2hs            |           Version:  8.0.1
           Keywords:                    |  Operating System:  Windows
       Architecture:  Unknown/Multiple  |   Type of failure:  Other
          Test Case:                    |        Blocked By:
           Blocking:                    |   Related Tickets:
Differential Rev(s):                    |         Wiki Page:
----------------------------------------+----------------------------
 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-source-files: 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>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list