-
-
Save AlainODea/98141991849093285c52 to your computer and use it in GitHub Desktop.
/* DO NOT EDIT: This file is automatically generated by Cabal */ | |
/* package rts-1.0 */ | |
#define VERSION_rts "1.0" | |
#define MIN_VERSION_rts(major1,major2,minor) (\ | |
(major1) < 1 || \ | |
(major1) == 1 && (major2) < 0 || \ | |
(major1) == 1 && (major2) == 0 && (minor) <= 0) | |
/* package ghc-prim-0.4.0.0 */ | |
#define VERSION_ghc_prim "0.4.0.0" | |
#define MIN_VERSION_ghc_prim(major1,major2,minor) (\ | |
(major1) < 0 || \ | |
(major1) == 0 && (major2) < 4 || \ | |
(major1) == 0 && (major2) == 4 && (minor) <= 0) | |
/* package integer-gmp-1.0.0.0 */ | |
#define VERSION_integer_gmp "1.0.0.0" | |
#define MIN_VERSION_integer_gmp(major1,major2,minor) (\ | |
(major1) < 1 || \ | |
(major1) == 1 && (major2) < 0 || \ | |
(major1) == 1 && (major2) == 0 && (minor) <= 0) | |
/* tool cpphs-1.19.3 */ | |
#define TOOL_VERSION_cpphs "1.19.3" | |
#define MIN_TOOL_VERSION_cpphs(major1,major2,minor) (\ | |
(major1) < 1 || \ | |
(major1) == 1 && (major2) < 19 || \ | |
(major1) == 1 && (major2) == 19 && (minor) <= 3) | |
/* tool gcc-4.8 */ | |
#define TOOL_VERSION_gcc "4.8" | |
#define MIN_TOOL_VERSION_gcc(major1,major2,minor) (\ | |
(major1) < 4 || \ | |
(major1) == 4 && (major2) < 8 || \ | |
(major1) == 4 && (major2) == 8 && (minor) <= 0) | |
/* tool ghc-7.10.3 */ | |
#define TOOL_VERSION_ghc "7.10.3" | |
#define MIN_TOOL_VERSION_ghc(major1,major2,minor) (\ | |
(major1) < 7 || \ | |
(major1) == 7 && (major2) < 10 || \ | |
(major1) == 7 && (major2) == 10 && (minor) <= 3) | |
/* tool ghc-pkg-7.10.3 */ | |
#define TOOL_VERSION_ghc_pkg "7.10.3" | |
#define MIN_TOOL_VERSION_ghc_pkg(major1,major2,minor) (\ | |
(major1) < 7 || \ | |
(major1) == 7 && (major2) < 10 || \ | |
(major1) == 7 && (major2) == 10 && (minor) <= 3) | |
/* tool haddock-2.14.3 */ | |
#define TOOL_VERSION_haddock "2.14.3" | |
#define MIN_TOOL_VERSION_haddock(major1,major2,minor) (\ | |
(major1) < 2 || \ | |
(major1) == 2 && (major2) < 14 || \ | |
(major1) == 2 && (major2) == 14 && (minor) <= 3) | |
/* tool hpc-0.67 */ | |
#define TOOL_VERSION_hpc "0.67" | |
#define MIN_TOOL_VERSION_hpc(major1,major2,minor) (\ | |
(major1) < 0 || \ | |
(major1) == 0 && (major2) < 67 || \ | |
(major1) == 0 && (major2) == 67 && (minor) <= 0) | |
/* tool hsc2hs-0.67 */ | |
#define TOOL_VERSION_hsc2hs "0.67" | |
#define MIN_TOOL_VERSION_hsc2hs(major1,major2,minor) (\ | |
(major1) < 0 || \ | |
(major1) == 0 && (major2) < 67 || \ | |
(major1) == 0 && (major2) == 67 && (minor) <= 0) | |
/* tool pkg-config-0.26 */ | |
#define TOOL_VERSION_pkg_config "0.26" | |
#define MIN_TOOL_VERSION_pkg_config(major1,major2,minor) (\ | |
(major1) < 0 || \ | |
(major1) == 0 && (major2) < 26 || \ | |
(major1) == 0 && (major2) == 26 && (minor) <= 0) | |
/* tool strip-2.24 */ | |
#define TOOL_VERSION_strip "2.24" | |
#define MIN_TOOL_VERSION_strip(major1,major2,minor) (\ | |
(major1) < 2 || \ | |
(major1) == 2 && (major2) < 24 || \ | |
(major1) == 2 && (major2) == 24 && (minor) <= 0) | |
#define CURRENT_PACKAGE_KEY "base_HQfYBxpPvuw8OunzQu6JGM" | |
Unexpected results from: | |
TEST="print020 process010 posix005 T2464 T9878 T9878b T9032 T7145b recomp011 T7354 processGroup002 T2276_ghci T5321FD T5030 T4801 T6048 T5631 T5837 T5642 T9020 T3064 parsing001 T1969 T9675 T5321Fun T783 T3294 T9961" | |
OVERALL SUMMARY for test run started at Wed Dec 30 19:16:15 2015 UTC | |
0:12:19 spent to go through | |
4491 total tests, which gave rise to | |
14487 test cases, of which | |
10351 were skipped | |
55 had missing libraries | |
3989 expected passes | |
64 expected failures | |
6 caused framework failures | |
0 unexpected passes | |
12 unexpected failures | |
16 unexpected stat failures | |
Unexpected failures: | |
../../libraries/process/tests process010 [bad stdout] (normal) | |
../../libraries/unix/tests processGroup002 [bad exit code] (normal) | |
../../libraries/unix/tests/libposix posix005 [bad stdout] (normal) | |
driver T2464 [stderr mismatch] (normal) | |
driver/recomp011 recomp011 [bad stdout] (normal) | |
ffi/should_run T2276_ghci [bad exit code] (ghci) | |
ghci.debugger/scripts print020 [bad stdout] (ghci) | |
ghci/scripts T9878 [bad stderr] (ghci) | |
ghci/scripts T9878b [bad stderr] (ghci) | |
indexed-types/should_fail T7354 [stderr mismatch] (normal) | |
rename/should_compile T7145b [stderr mismatch] (normal) | |
rename/should_fail T9032 [bad stderr] (normal) | |
Unexpected stat failures: | |
perf/compiler T1969 [stat not good enough] (normal) | |
perf/compiler T3064 [stat not good enough] (normal) | |
perf/compiler T3294 [stat not good enough] (normal) | |
perf/compiler T4801 [stat not good enough] (normal) | |
perf/compiler T5030 [stat not good enough] (normal) | |
perf/compiler T5321FD [stat not good enough] (normal) | |
perf/compiler T5321Fun [stat not good enough] (normal) | |
perf/compiler T5631 [stat not good enough] (normal) | |
perf/compiler T5642 [stat not good enough] (normal) | |
perf/compiler T5837 [stat not good enough] (normal) | |
perf/compiler T6048 [stat not good enough] (optasm) | |
perf/compiler T783 [stat not good enough] (normal) | |
perf/compiler T9020 [stat not good enough] (optasm) | |
perf/compiler T9675 [stat not good enough] (optasm) | |
perf/compiler T9961 [stat not good enough] (normal) | |
perf/compiler parsing001 [stat not good enough] (normal) |
GHC 7.10.3's build fails when cpphs is the configured hs-cpp. It runs into an error when preprocessing libraries/base/GHC/Natural.hs.
Prep on either SmartOS or Ubuntu:
tar xf ghc-7.10.3-src.tar.bz2
cd ghc-7.10.3/
./configure --with-hs-cpp=$(which cpphs) --with-hs-cpp-flags="--cpp"
make -j8
On SmartOS:
tempdir=$(mktemp --tmpdir --directory ghcXXXXX_0)
tempfile="$tempdir/ghc_1.hscpp"
touch $tempfile
/opt/local/bin/cpphs --cpp -DOPTIMISE_INTEGER_GCD_LCM -include libraries/base/dist-install/build/autogen/cabal_macros.h -I libraries/base/dist-install/build -I libraries/base/dist-install/build -I libraries/base/dist-install/build/autogen -I libraries/base/include -I /root/ghc-7.10.3/libraries/integer-gmp2/include -I /root/ghc-7.10.3/rts/dist/build -I /root/ghc-7.10.3/includes -I /root/ghc-7.10.3/includes/dist-derivedconstants/header -D__GLASGOW_HASKELL__=710 -include /root/ghc-7.10.3/includes/ghcversion.h -Dsolaris2_BUILD_OS=1 -Di386_BUILD_ARCH=1 -Dsolaris2_HOST_OS=1 -Di386_HOST_ARCH=1 -D__GLASGOW_HASKELL_TH__=NO -x assembler-with-cpp libraries/base/GHC/Natural.hs -o $tempfile
On Ubuntu:
tempdir=$(mktemp --tmpdir --directory ghcXXXXX_0)
tempfile="$tempdir/ghc_1.hscpp"
touch $tempfile
~/.cabal/bin/cpphs --cpp -DOPTIMISE_INTEGER_GCD_LCM -include libraries/base/dist-install/build/autogen/cabal_macros.h -I libraries/base/dist-install/build -I libraries/base/dist-install/build -I libraries/base/dist-install/build/autogen -I libraries/base/include -I /home/alain_odea/Documents/haskell/ghc-7.10.3/libraries/integer-gmp2/include -I /home/alain_odea/Documents/haskell/ghc-7.10.3/rts/dist/build -I /home/alain_odea/Documents/haskell/ghc-7.10.3/includes -I /home/alain_odea/Documents/haskell/ghc-7.10.3/includes/dist-derivedconstants/header -D__GLASGOW_HASKELL__=710 -include /home/alain_odea/Documents/haskell/ghc-7.10.3/includes/ghcversion.h -Dlinux_BUILD_OS=1 -Di386_BUILD_ARCH=1 -Dlinux_HOST_OS=1 -Di386_HOST_ARCH=1 -D__GLASGOW_HASKELL_TH__=NO -x assembler-with-cpp libraries/base/GHC/Natural.hs -o $tempfile
Both result in this error:
cpphs: macro MIN_VERSION_integer_gmp expected 3 arguments, but was given 0
In either case removing "-include libraries/base/dist-install/build/autogen/cabal_macros.h" from the cpphs arguments makes the error go away.
cabal-macros.h is now in this gist. Using cpphs on it alone has no error messages.
cpphs --cpp libraries/base/dist-install/build/autogen/cabal_macros.h
outofmem passes when run individually.
First pass at using specs failed:
--with-hs-cpp-flag="-specs=/opt/local/etc/ghc/overridecpp.spec"
It doesn't configure the C preprocessor properly and cannot compile GHC 7.10.3 successfully.
Using --with-hs-cpp-flags appears to remove the other arguments GHC needs for GCC's preprocessor so I'm trying this:
--with-hs-cpp-flag="-specs=/opt/local/etc/ghc/overridecpp.spec -E -undef -traditional -x assembler-with-cpp"
Using this as overridecpp.spec:
*cpp:
%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}
Configuring GHC with modified hs-cpp-flags works to fix the tests:
./configure --with-hs-cpp-flags="-specs=/opt/local/etc/ghc/overridecpp.spec -E -undef -traditional -x assembler-with-cpp"
overridecpp.spec:
*cpp:
%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}
The challenge now is how to integrate this extra file and new default hs-cpp-flags cleanly into the GHC build and install. I'll spin that by the ghc-devs mailing list.
Build with cpphs fails in final phase with this error:
MIN_VERSION_integer_gmp is used in at least three files in the GHC source:
I cannot reproduce the cpphs error with Bits.hs:
Using pargs.d to debug I get this: