summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compiler/HsVersions.h2
-rw-r--r--compiler/ghc.mk5
-rw-r--r--compiler/main/DynFlags.hs3
-rw-r--r--compiler/main/PlatformConstants.hs3
-rw-r--r--rules/build-dependencies.mk1
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"