Change how includes for input file directory works
authorTamar Christina <tamar@zhox.com>
Tue, 20 Feb 2018 03:13:46 +0000 (22:13 -0500)
committerBen Gamari <ben@smart-cactus.org>
Tue, 20 Feb 2018 04:02:10 +0000 (23:02 -0500)
commiteb2daa2b6a83412382aa0fcda598f8b3d40fde2c
treef38d8e287b7b5132cc456ebe0e2c73b47bf438b3
parent71294f30fa20ea9c4653f76da20a5f8170ee415b
Change how includes for input file directory works

GHC Used to only allow for one include mode, namely `-I`.  The problem
with `-I` includes is that it supercedes all other includes, including
the system include paths.

This is not a problem for paths requested by the user, but it is a
problem for the ones we implicitly derive and add.

In particular we add the source directory of the input file to the
include path. This is problematic because it causes any file with the
name of a system include, to inadvertently loop as the wrong file gets
included.

Since this is an implicitly include, and as far as I can tell, only done
so local includes are found (as the sources given to GCC reside in a
temp folder) then switch from `-I` to `-iquote`.

This requires a submodule update for haddock

Test Plan: ./validate

Reviewers: austin, bgamari, hvr

Reviewed By: bgamari

Subscribers: carter, rwbarton, thomie

GHC Trac Issues: #14312

Differential Revision: https://phabricator.haskell.org/D4080
compiler/deSugar/DsForeign.hs
compiler/iface/FlagChecker.hs
compiler/main/DriverPipeline.hs
compiler/main/DynFlags.hs
docs/users_guide/8.6.1-notes.rst
utils/haddock