[GHC] #10126: Test framework should not assume that GHC tools are in the same directory as GHC itself
GHC
ghc-devs at haskell.org
Sun Mar 1 16:32:34 UTC 2015
#10126: Test framework should not assume that GHC tools are in the same directory
as GHC itself
-------------------------------------+-------------------------------------
Reporter: Rufflewind | Owner: Rufflewind
Type: feature | Status: new
request | Milestone:
Priority: normal | Version: 7.8.4
Component: Test Suite | Operating System: Unknown/Multiple
Keywords: test | Type of failure: Other
framework makefile | Blocked By:
Architecture: | Related Tickets:
Unknown/Multiple |
Test Case: |
Blocking: |
Differential Revisions: |
-------------------------------------+-------------------------------------
The GHC test framework assumes that the GHC tools (`ghc-pkg`, `runghc`,
`hsc2hs`, etc) are always in the same directory as `ghc` itself
While this is probably a safe assumption for "in-tree" compilers, it's not
necessarily true for "out-of-tree" compilers. For example, I currently
have a thin wrapper of `ghc` in `$HOME/bin/ghc`, which causes the test
framework to think that `ghc-pkg` is in `$HOME/bin/ghc-pkg`.
I think the restriction should be relaxed as long as `TEST_HC` is not
specified and an out-of-tree compiler is used.
I suggest changing `testsuite/mk/boilerplate.mk` in the following way:
{{{#!patch
@@ -56,6 +56,7 @@ TEST_HC := $(STAGE2_GHC)
endif
else
+implicit_compiler = YES
IN_TREE_COMPILER = NO
TEST_HC := $(shell which ghc)
endif
@@ -87,24 +88,30 @@ endif
# containing spaces
BIN_ROOT = $(shell dirname '$(TEST_HC)')
+ifeq "$(implicit_compiler)" "YES"
+find_tool = $(shell which $(1))
+else
+find_tool = $(BIN_ROOT)/$(1)
+endif
+
ifeq "$(GHC_PKG)" ""
-GHC_PKG := $(BIN_ROOT)/ghc-pkg
+GHC_PKG := $(call find_tool,ghc-pkg)
endif
ifeq "$(RUNGHC)" ""
-RUNGHC := $(BIN_ROOT)/runghc
+RUNGHC := $(call find_tool,runghc)
endif
ifeq "$(HSC2HS)" ""
-HSC2HS := $(BIN_ROOT)/hsc2hs
+HSC2HS := $(call find_tool,hsc2hs)
endif
ifeq "$(HP2PS_ABS)" ""
-HP2PS_ABS := $(BIN_ROOT)/hp2ps
+HP2PS_ABS := $(call find_tool,hp2ps)
endif
ifeq "$(HPC)" ""
-HPC := $(BIN_ROOT)/hpc
+HPC := $(call find_tool,hpc)
endif
$(eval $(call canonicaliseExecutable,TEST_HC))
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10126>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list