[project @ 2004-09-30 10:31:58 by simonmar]
authorsimonmar <unknown>
Thu, 30 Sep 2004 10:31:58 +0000 (10:31 +0000)
committersimonmar <unknown>
Thu, 30 Sep 2004 10:31:58 +0000 (10:31 +0000)
Add -I- after the include paths when running gcc.  This prevents
accidental shadowing of system includes by putting a file called
eg. stdint.h in the current directory.

ghc/compiler/main/DriverPipeline.hs

index 0116aee..c3ad556 100644 (file)
@@ -688,6 +688,14 @@ runPhase cc_phase basename suff input_fn get_output_fn maybe_loc
         pkg_include_dirs <- getPackageIncludePath pkgs
         let include_paths = foldr (\ x xs -> "-I" : x : xs) []
                              (cmdline_include_paths ++ pkg_include_dirs)
+                           ++ ["-I-"]
+               -- We add the flag -I- after all the include paths.
+               -- According to the gcc docs, this causes all -I paths
+               -- up to this point apply only to #include "..."
+               -- style includes.  This prevents accidentally
+               -- shadowing a system include (eg. #include <stdio.h>)
+               -- by putting a file of the same name in the current
+               -- directory, for example.
 
        mangle <- readIORef v_Do_asm_mangling
        (md_c_flags, md_regd_c_flags) <- machdepCCOpts