# will be built as HC files for the target system, and likely won't
# build on this host platform.
#
+# An important invariant is that for any piece of source code, the
+# platform on which the code is going to run is the HOST platform,
+# and the platform on which we are building is the BUILD platform.
+# Additionally for the compiler, the platform this compiler will
+# generate code for is the TARGET. TARGET is not meaningful outside
+# the compiler sources.
+#
# Guidelines for when to use HOST vs. TARGET:
#
# - In the build system (Makefile, foo.mk), normally we should test
#
# - In the compiler itself, we should test HOST or TARGET depending
# on whether the conditional relates to the code being generated, or
-# the platform on which the compiler is running. For stage 2,
-# HOSTPLATFORM should be reset to be TARGETPLATFORM (we currently
-# don't do this, but we should).
+# the platform on which the compiler is running. See the section
+# on "Coding Style" in the commentary for more details.
#
-# - In the RTS and library code, we should be testing TARGET only.
+# - In all other code, we should be testing HOST only.
#
# NOTE: cross-compiling is not well supported by the build system.
# You have to do a lot of work by hand to cross compile: see the
# thr_p : threaded profiled
# debug : debugging (compile with -g for the C compiler, and -DDEBUG)
# debug_p : debugging profiled
+# debug_u : debugging unregisterised
# thr_debug : debugging threaded
# thr_debug_p : debugging threaded profiled
#
SED = @SedCmd@
SHELL = /bin/sh
+LD = @LdCmd@
+
# Some ld's support the -x flag and some don't, so the configure
# script detects which we have and sets LdXFlag to "-x" or ""
# respectively.
-LD = @LdCmd@
LD_X = @LdXFlag@
+# GNU ld supports input via a linker script, which is useful to avoid
+# overflowing command-line length limits.
+LdIsGNULd = @LdIsGNULd@
+
#
# In emergency situations, REAL_SHELL is used to perform shell commands
# from within the ghc driver script, by scribbling the command line to
WAY_debug_p_NAME=debug profiled
WAY_debug_p_HC_OPTS=-optc-DDEBUG -prof
+# Way 'debug_u':
+WAY_debug_u_NAME=debug unregisterised
+WAY_debug_u_HC_OPTS=-optc-DDEBUG -unreg
+
# Way 'thr_debug':
WAY_thr_debug_NAME=threaded
WAY_thr_debug_HC_OPTS=-optc-DTHREADED_RTS -optc-DDEBUG