diff options
author | Ben Gamari <bgamari.foss@gmail.com> | 2016-09-16 11:49:24 -0400 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2016-09-16 11:49:25 -0400 |
commit | ea310f9956179f91ca973bc747b0bc7b061bc174 (patch) | |
tree | 0f32a6b60091c6a53f9303cbce166ef81493e58a | |
parent | 97b47d277d6b0ced3ce73175f78b23ecff84cfa3 (diff) | |
download | haskell-ea310f9956179f91ca973bc747b0bc7b061bc174.tar.gz |
Remove directories from include paths
Previously this was a relative path which worked in the GHC tree, but
failed elsewhere. This caused trouble for out-of-tree users as well as
Hadrian, which wants to move build artifacts out of the working
directory. Fixes #8040.
Test Plan: Validate
Reviewers: thomie, austin, snowleopard, hvr
Reviewed By: snowleopard, hvr
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D2530
GHC Trac Issues: #8040
-rw-r--r-- | compiler/HsVersions.h | 2 | ||||
-rw-r--r-- | compiler/ghc.mk | 5 | ||||
-rw-r--r-- | compiler/main/DynFlags.hs | 3 | ||||
-rw-r--r-- | compiler/main/PlatformConstants.hs | 3 | ||||
-rw-r--r-- | rules/build-dependencies.mk | 1 |
5 files changed, 11 insertions, 3 deletions
diff --git a/compiler/HsVersions.h b/compiler/HsVersions.h index 6d5716db64..83cbcf15cb 100644 --- a/compiler/HsVersions.h +++ b/compiler/HsVersions.h @@ -20,7 +20,7 @@ you will screw up the layout where they are used in case expressions! * ghcconfig.h, because that will include ghcplatform.h which has the * wrong platform settings for the compiler (it has the platform * settings for the target plat instead). */ -#include "../includes/ghcautoconf.h" +#include "ghcautoconf.h" #define GLOBAL_VAR(name,value,ty) \ {-# NOINLINE name #-}; \ diff --git a/compiler/ghc.mk b/compiler/ghc.mk index 5aeda53d91..38eae0eee1 100644 --- a/compiler/ghc.mk +++ b/compiler/ghc.mk @@ -259,6 +259,11 @@ PRIMOP_BITS_STAGE3 = $(addprefix compiler/stage3/build/,$(PRIMOP_BITS_NAMES)) compiler_CPP_OPTS += $(addprefix -I,$(GHC_INCLUDE_DIRS)) compiler_CPP_OPTS += ${GhcCppOpts} +# We add these paths to the Haskell compiler's #include search path list since +# we must avoid #including files by paths relative to the source file as Hadrian +# moves the build artifacts out of the source tree. See #8040. +compiler_HC_OPTS += $(addprefix -I,$(GHC_INCLUDE_DIRS)) + define preprocessCompilerFiles # $0 = stage compiler/stage$1/build/primops.txt: compiler/prelude/primops.txt.pp compiler/stage$1/$$(PLATFORM_H) diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs index 7546936e4f..b642bead7b 100644 --- a/compiler/main/DynFlags.hs +++ b/compiler/main/DynFlags.hs @@ -4765,7 +4765,8 @@ compilerInfo dflags showBool False = "NO" isWindows = platformOS (targetPlatform dflags) == OSMinGW32 -#include "../includes/dist-derivedconstants/header/GHCConstantsHaskellWrappers.hs" +-- Produced by deriveConstants +#include "GHCConstantsHaskellWrappers.hs" bLOCK_SIZE_W :: DynFlags -> Int bLOCK_SIZE_W dflags = bLOCK_SIZE dflags `quot` wORD_SIZE dflags diff --git a/compiler/main/PlatformConstants.hs b/compiler/main/PlatformConstants.hs index b2ca32be68..c9a4072206 100644 --- a/compiler/main/PlatformConstants.hs +++ b/compiler/main/PlatformConstants.hs @@ -10,5 +10,6 @@ module PlatformConstants (PlatformConstants(..)) where -#include "../includes/dist-derivedconstants/header/GHCConstantsHaskellType.hs" +-- Produced by deriveConstants +#include "GHCConstantsHaskellType.hs" diff --git a/rules/build-dependencies.mk b/rules/build-dependencies.mk index 8152691c01..1905a0e4d6 100644 --- a/rules/build-dependencies.mk +++ b/rules/build-dependencies.mk @@ -24,6 +24,7 @@ $1_$2_C_FILES_DEPS = $$(filter-out $$($1_$2_C_FILES_NODEPS),$$($1_$2_C_FILES)) $1_$2_MKDEPENDHS_FLAGS = -dep-makefile $$($1_$2_depfile_haskell).tmp $$(foreach way,$$($1_$2_WAYS),-dep-suffix "$$(patsubst %o,%,$$($$(way)_osuf))") $1_$2_MKDEPENDHS_FLAGS += -include-pkg-deps +$1_$2_MKDEPENDHS_FLAGS += $(addprefix -I,$($1_INCLUDE_DIRS)) ifneq "$$(NO_GENERATED_MAKEFILE_RULES)" "YES" |