
#13366: addCStub doesn't allow control over compiler flags or source file file -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: feature request | Status: closed Priority: high | Milestone: 8.2.1 Component: Compiler | Version: 8.0.1 Resolution: fixed | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D3280 Wiki Page: | -------------------------------------+------------------------------------- Comment (by alpmestan): The `T13366` test fails on master from yesterday, when executed with the `ghci` way: {{{ =====> T13366(ghci) 1 of 1 [0, 0, 0] cd "./th/T13366.run" && "/home/alp/ghc/inplace/test spaces/ghc-stage2" T13366.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn- missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output -XTemplateHaskell -package template-haskell --interactive -v0 -ignore-dot-ghci -fno-ghci-history +RTS -I0.1 -RTS -lstdc++ -v0< T13366.genscript Actual stderr output differs from expected: diff -uw "/dev/null" "./th/T13366.run/T13366.run.stderr.normalised" --- /dev/null 2018-03-07 13:03:27.344000000 +0100 +++ ./th/T13366.run/T13366.run.stderr.normalised 2018-03-08 14:49:20.583965000 +0100 @@ -0,0 +1,13 @@ +ghc: ^^ Could not load 'fcxx', dependency unresolved. See top entry above. + + +ByteCodeLink: can't find label +During interactive linking, GHCi couldn't find the following symbol: + fcxx +This may be due to you not asking GHCi to load extra object files, +archives or DLLs needed by your current session. Restart GHCi, specifying +the missing library using the -L/path/to/object/dir and -lmissinglibname +flags, or simply by naming the relevant files on the GHCi command line. +Alternatively, this link failure might indicate a bug in GHCi. +If you suspect the latter, please send a bug report to: + glasgow-haskell-bugs@haskell.org *** unexpected failure for T13366(ghci) }}} where the aforementionned symbol is defined in a snippet of C++ code that TH adds to the build through `addForeignFile`: {{{#!hs foreign import ccall fcxx :: Int -> IO Int do addForeignFile LangCxx $ unlines [ "#include <iostream>" , "extern \"C\" {" , " int fcxx(int x) {" , " std::cout << \"calling fcxx(\" << x << \")\" << std::endl;" , " std::cout.flush();" , " return A_MACRO + x;" , " }" , "}" ] return [] }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13366#comment:14 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler