Implement ordering comparisons for type-level naturals and symbols.

This is done with two built-in type families: `CmpNat and `CmpSymbol`.
Both of these return a promoted `Ordering` type (EQ, LT, or GT).

(cherry picked from commit 5e4bdb5fc5e741522cbb787731422da3f12aa398)
Use the correct callClobberedRegs on Windows/x64 (#8834)

Signed-off-by: Austin Seipp <austin@well-typed.com>
(cherry picked from commit c4eeacdfdf4578eb6e75bbf2e067bfe70ec94ab0)
rts: remove unused functions, fix validate on OS X

After a toolchain update, Clang is no longer appreciative of the fact
these are unused, thanks to -Werror during validate.

Signed-off-by: Austin Seipp <austin@well-typed.com>
(cherry picked from commit 7ef3f0d6dbd54d9e58fb6ab1f2db322bc8fac37a)
Temporarily fight off build bogons on OS X

Right now there's a bug with Clang that prevents 'cabal haddock' from
working nicely. But there's an easy fix for now.

Signed-off-by: Austin Seipp <austin@well-typed.com>
(cherry picked from commit 52c6dc970272437aa83a936fc1fe63977fa6178d)
Adding CPP and CPP-Flags to configure step, ghc settings file, and associated dyn flags support
Still not quite right, CPP flags work in progress
fix check if gcc is actually clang

New macro FP_CHECK_GCC_IS_CLANG checks to see if the compiler given
with the argument --with-gcc is actually clang.
simplify FP_CPP_FLAGS_WITH_VAL_DEFAULTED

The only value for the second parameter is "cpp-flags" so
we might as well substitute that for $2.
Adding CPP and CPP-Flags to configure step, ghc settings file, and associated dyn flags support
now automatically sets cpp-flags correctly when cpp it set to one of gcc, clang, or cpphs.
for unknow cpp, issues warning if —with-cpp-flags=FLAGS isn’t set explictly
remove redundant spaces at start of flags
apply hvr's patch

fixes clang 3.1 segfault
adding more descriptive names for flags --with-hs-cpp --with-hs-cpp-flags
Revert "apply hvr's patch"

This reverts commit a09cf3d1e6bbebdc2ad53561b0acd51d2283047e.
fixed up the CPPHS case for auto setting the haskell CPP flags in configure.ac
dumb cpp contrib/configure.ac.in setup