
#14312: Head does not build on Windows with the default make config. -------------------------------------+------------------------------------- Reporter: AndreasK | Owner: (none) Type: bug | Status: patch Priority: normal | Milestone: Component: Build System | Version: 8.3 Resolution: | Keywords: Operating System: Windows | Architecture: Type of failure: Building GHC | Unknown/Multiple failed | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D4080 Wiki Page: | -------------------------------------+------------------------------------- Changes (by Phyx-): * cc: Phyx- (added) Comment: Replying to [comment:12 hvr]:
**Specification of Header Files** A C header specified in an import
declaration is always included by `#include "chname"`. There is no explicit support for `#include <chname>` style inclusion. The ISO C99 standard guarantees that any search path that would be used for a `#include <chname>` is also used for `#include "chname"` and it is guaranteed that these paths are searched after all paths that are unique to `#include "chname"`. Furthermore, we require that chname ends in .h to make parsing of the specification of external entities unambiguous.
So `capi` kinda adheres to that by using a `#include <chname>` and compensating via a `-I.` path included early.
Unless I'm mistaken, isn't that actually saying that `capi` doesn't follow the report? since your quote of the report says:
A C header specified in an import declaration is always included by `#include "chname"`.
So from this line it means we're not following it by generating `#include <chname>` doesn't it? Using `#include "..."` would solve this problem because it means we can avoid the `-I`, which I think it a very bad thing to add implicitly, as it overrides everything else. We're actually making correct programs break, which is unexpected... -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14312#comment:14 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler