
Hi, I'm trying to validate GHC head with GCC 4.7 on FreeBSD. I run "validate" without any modifications: % config_args="--prefix=/ghc-head --with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib --with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --with-gcc=/usr/local/bin/gcc47 --with-gcc-4.2=/usr/local/bin/gcc47 --with-system-libffi --with-ffi-includes=/usr/local/include --with-ffi-libraries=/usr/local/lib" THREADS=10 sh validate This caused an error: Configuring terminfo-0.3.2.5... configure: WARNING: unrecognized options: --with-compiler, --with-iconv-includes, --with-iconv-libraries, --with-gmp-includes, --with-gmp-libraries, --with-gcc checking for gcc... cc checking whether the C compiler works... no configure: error: in `/usr/home/kazu/work/ghc/libraries/terminfo': configure: error: C compiler cannot create executables For GCC, "cc" is guessed. This is because "mk/config.mk.in" does not use "gcc47" to CC_STAGE0. I don't know this is a correct way but I patched as follows: diff --git a/mk/config.mk.in b/mk/config.mk.in index 55f5756..51d3e96 100644 --- a/mk/config.mk.in +++ b/mk/config.mk.in @@ -487,13 +487,13 @@ GccLT34 = @GccLT34@ GccLT46 = @GccLT46@ CC = $(WhatGccIsCalled) -CC_STAGE0 = @CC_STAGE0@ +CC_STAGE0 = $(CC) CC_STAGE1 = $(CC) CC_STAGE2 = $(CC) CC_STAGE3 = $(CC) AS = $(WhatGccIsCalled) -AS_STAGE0 = @CC_STAGE0@ +AS_STAGE0 = $(AS) AS_STAGE1 = $(AS) AS_STAGE2 = $(AS) AS_STAGE3 = $(AS) After that, "validate" caused this error: gcc -E -DMAKING_GHC_BUILD_SYSTEM_DEPENDENCIES -fno-stack-protector -Werror -Wall -Icompiler/stage1 -Icompiler/. -Icompiler/parser ... -Werror=unused-but-set-variable -Wno-error=inline -MM compiler/ghci/keepCAFsForGHCi.c -MF compiler/stage1/build/.depend-v.c_asm.bit cc1: error: -Werror=unused-but-set-variable: No option -Wunused-but-set-variable "gcc" is used instead of "gcc47". Note "gcc" is GCC 4.2 which does not accept -Wunused-but-set-variable. This is because that CPP is defined independently on --with-gcc. So, I had to specify CPP to configure: % config_args="--prefix=/ghc-head --with-gcc=/usr/local/bin/gcc47 ... CPP=cpp47 THREADS=10 sh validate Unfortunately, this also caused another error: "/usr/local/bin/ghc" -optc-Werror -optc-Wall -optc-isystem'/usr/home/kazu/work/ghc/compiler/stage1' ... -Wall -XHaskell98 -XNondecreasingIndentation -XCPP -XPatternGuards -fwarn-tabs -O -no-user-package-conf -rtsopts -c ghc/hschooks.c -o ghc/stage1/build/hschooks.o cc1: error: -Werror=unused-but-set-variable: No option -Wunused-but-set-variable Since I don't know how to pass "-pgmc gcc47", I gave up here. I think that the --with-gcc option for "configure" does not work well and we need to fix this. --Kazu