Skip to content

Commit

Permalink
Remove directories from include paths
Browse files Browse the repository at this point in the history
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
  • Loading branch information
bgamari committed Sep 16, 2016
1 parent 97b47d2 commit ea310f9
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 3 deletions.
2 changes: 1 addition & 1 deletion compiler/HsVersions.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 #-}; \
Expand Down
5 changes: 5 additions & 0 deletions compiler/ghc.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
3 changes: 2 additions & 1 deletion compiler/main/DynFlags.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 2 additions & 1 deletion compiler/main/PlatformConstants.hs
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@

module PlatformConstants (PlatformConstants(..)) where

#include "../includes/dist-derivedconstants/header/GHCConstantsHaskellType.hs"
-- Produced by deriveConstants
#include "GHCConstantsHaskellType.hs"

1 change: 1 addition & 0 deletions rules/build-dependencies.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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"

Expand Down

0 comments on commit ea310f9

Please sign in to comment.