From nalitoja@gmail.com  Fri Oct  7 09:27:28 2011
Return-Path: <nalitoja@gmail.com>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 686D41065670
	for <FreeBSD-gnats-submit@freebsd.org>; Fri,  7 Oct 2011 09:27:28 +0000 (UTC)
	(envelope-from nalitoja@gmail.com)
Received: from mail-ey0-f182.google.com (mail-ey0-f182.google.com [209.85.215.182])
	by mx1.freebsd.org (Postfix) with ESMTP id EBCDF8FC16
	for <FreeBSD-gnats-submit@freebsd.org>; Fri,  7 Oct 2011 09:27:27 +0000 (UTC)
Received: by eyz10 with SMTP id 10so1811599eyz.13
        for <FreeBSD-gnats-submit@freebsd.org>; Fri, 07 Oct 2011 02:27:26 -0700 (PDT)
Received: by 10.223.15.25 with SMTP id i25mr9564153faa.31.1317979646459;
        Fri, 07 Oct 2011 02:27:26 -0700 (PDT)
Received: from nil (rainbowwarrior.torservers.net. [77.247.181.164])
        by mx.google.com with ESMTPS id m26sm11758288fac.6.2011.10.07.02.27.22
        (version=SSLv3 cipher=OTHER);
        Fri, 07 Oct 2011 02:27:25 -0700 (PDT)
Message-Id: <86ehypxic1.fsf@gmail.com>
Date: Fri, 07 Oct 2011 09:27:10 +0000
From: Nali Toja <nalitoja@gmail.com>
To: FreeBSD-gnats-submit@freebsd.org
Subject: lang/ghc: bootstrap assumes `gcc', ignoring CC

>Number:         161356
>Category:       ports
>Synopsis:       lang/ghc: bootstrap assumes `gcc', ignoring CC
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    haskell
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Oct 07 09:30:06 UTC 2011
>Closed-Date:    Tue Jan 22 11:06:28 UTC 2013
>Last-Modified:  Tue Jan 22 11:06:28 UTC 2013
>Originator:     Nali Toja
>Release:        FreeBSD 10.0-CURRENT amd64
>Organization:
>Environment:
WITHOUT_DOCS=
WITHOUT_PROFILE=

$ export PATH=~/.bin:$PATH
$ for cc in CC cc c++ gcc g++ cpp; do ln -s /usr/bin/false ~/.bin/${cc}; done
>Description:
ghc-boot build wants CC being set in environment, not in a makefile
(e.g. make.conf). And when set its runtime still uses `gcc' compiler
ignoring CC unlike, say, ghc/ghc.wrapper.
>How-To-Repeat:
||| replace only `gcc' with symlink to `false'

# use default `CC = cc' from sys.mk
# or define `CC = clang' in make.conf
$ make 
[...]
checking for ar... /usr/bin/ar
checking whether /usr/bin/ar is GNU ar... no
checking for ar arguments... clqs
checking for gcc... gcc
checking for C compiler default output file name...
configure: error: C compiler cannot create executables

$ CC=clang make
[...]
checking for nhc... no
checking for nhc98... no
checking for hbc... no
configure: Building in-tree ghc-pwd
configure: error: Building ghc-pwd failed

WRKDIR/ghc-6.10.4-boot/bin/ghc -v0 -no-user-package-conf -hidir utils/ghc-pwd/dist-boot -odir utils/ghc-pwd/dist-boot -stubdir utils/ghc-pwd/dist-boot --make utils/ghc-pwd/Main.hs -o utils/ghc-pwd/dist-boot/ghc-pwd

~/.bin/gcc -Iutils/ghc-pwd -Iutils/ghc-pwd/dist-boot -c WRKDIR/ghc-7.0.3/tmp/ghc55829_0/ghc55829_0.s -o utils/ghc-pwd/dist-boot/Main.o

>Fix:
The first part seems trivial. As for `-pgmc ${CC}' not sure yet.

--- pass_CC_from_environment_always.diff begins here ---
Index: lang/ghc/Makefile
===================================================================
RCS file: /a/.csup/ports/lang/ghc/Makefile,v
retrieving revision 1.93
diff -u -p -r1.93 Makefile
--- lang/ghc/Makefile	23 Sep 2011 22:23:43 -0000	1.93
+++ lang/ghc/Makefile	7 Oct 2011 09:18:38 -0000
@@ -106,7 +106,7 @@ BOOT_HSC2HS=	${BOOT_DIR}/bin/hsc2hs
 HACKAGE_SITE?=		http://hackage.haskell.org/
 HACKAGE_ARCH?=		packages/archive/
 
-CONFIGURE_ARGS_BOOT=	--prefix=${BOOT_DIR})
+CONFIGURE_ARGS_BOOT=	--prefix=${BOOT_DIR} CC=${CC}
 CONFIGURE_ARGS+=	--with-ghc=${BOOT_GHC} --with-gcc=${CC} \
 			--with-gmp-includes=${LOCALBASE}/include \
 			--with-gmp-libraries=${LOCALBASE}/lib \
@@ -228,7 +228,7 @@ post-patch:
 
 pre-configure:
 	@${MKDIR} ${TMPDIR}
-	@(cd ${BOOT_DIR} && ${CONFIGURE_ENV} ./${CONFIGURE_SCRIPT} ${CONFIGURE_ARGS_BOOT}
+	@(cd ${BOOT_DIR} && ${CONFIGURE_ENV} ./${CONFIGURE_SCRIPT} ${CONFIGURE_ARGS_BOOT})
 	@(cd ${BOOT_DIR} && PACKAGES='' ${GMAKE} install)
 #	@(${BOOT_GHC-PKG} unregister haddock-${BOOT_HADDOCK_VERSION})
 #	@(cd ${BOOT_DIR} && ${RM} -rf utils/haddock && ${RM} -f bin/haddock \
--- pass_CC_from_environment_always.diff ends here ---
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->haskell 
Responsible-Changed-By: edwin 
Responsible-Changed-When: Fri Oct 7 09:30:17 UTC 2011 
Responsible-Changed-Why:  
Over to maintainer (via the GNATS Auto Assign Tool) 

http://www.freebsd.org/cgi/query-pr.cgi?pr=161356 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/161356: commit references a PR
Date: Tue, 22 Jan 2013 10:52:50 +0000 (UTC)

 Author: pgj
 Date: Tue Jan 22 10:52:37 2013
 New Revision: 310825
 URL: http://svnweb.freebsd.org/changeset/ports/310825
 
 Log:
   - Fix configure flags for the bootstrap compiler, so now it works for
     clang-only base systems too [1]
   - Allow to use GCC 4.6 and later (requested by: gerald)
   - Add USE_NCURSES, so now it can pick up ports ncurses when installed
   - Fix COMMENT to comply with the Porter's Handbook
   
   PR:		ports/161356 [1]
   Submitted by:	David Marker <dmarker@freedave.net> (reworked by: ashish) [1]
   Obtained from:	FreeBSD Haskell
 
 Modified:
   head/lang/ghc/Makefile
   head/lang/ghc/bsd.cabal.mk
 
 Modified: head/lang/ghc/Makefile
 ==============================================================================
 --- head/lang/ghc/Makefile	Tue Jan 22 10:51:18 2013	(r310824)
 +++ head/lang/ghc/Makefile	Tue Jan 22 10:52:37 2013	(r310825)
 @@ -10,7 +10,7 @@ MASTER_SITE_SUBDIR=	pgj/:boot
  DISTFILES=	ghc-${PORTVERSION}-src${EXTRACT_SUFX}:source
  
  MAINTAINER=	haskell@FreeBSD.org
 -COMMENT=	A Compiler for the functional language Haskell
 +COMMENT=	Compiler for the functional language Haskell
  
  ONLY_FOR_ARCHS=	i386 amd64
  
 @@ -30,7 +30,8 @@ USE_PERL5_BUILD=	yes
  USE_GMAKE=		yes
  USE_ICONV=		yes
  USE_BINUTILS=		yes
 -USE_GCC=		4.6
 +USE_GCC=		4.6+
 +USE_NCURSES=		yes
  
  LICENSE=	BSD
  LICENSE_FILE=	${WRKSRC}/LICENSE
 @@ -121,7 +122,7 @@ BOOT_HSC2HS=	${BOOT_DIR}/bin/hsc2hs
  
  SLAVE_CMD=	${SETENV} PATH=${BOOT_DIR}/bin:${PATH}
  
 -CONFIGURE_ARGS_BOOT=	--prefix=${BOOT_DIR} CC=${CC}
 +CONFIGURE_ARGS_BOOT=	--prefix=${BOOT_DIR} --with-gcc=${CC}
  CONFIGURE_ARGS+=	--with-ghc=${BOOT_GHC}
  
  .else # MBOOT
 @@ -201,13 +202,13 @@ post-extract:
  .else
  	@${ECHO} >> ${WRKSRC}/mk/build.mk "BSD_PATH_TO_HSC2HS = ${BOOT_HSC2HS}"
  .endif
 -	@${ECHO} >> ${WRKSRC}/mk/build.mk "SRC_HC_OPTS += -I/usr/include -L/usr/lib -I${LOCALBASE}/include -L${LOCALBASE}/lib"
 +	@${ECHO} >> ${WRKSRC}/mk/build.mk "SRC_HC_OPTS += -I${NCURSESINC} -L${NCURSESLIB} -I${LOCALBASE}/include -L${LOCALBASE}/lib"
  	@${ECHO} >> ${WRKSRC}/mk/build.mk "SRC_CC_OPTS += ${CFLAGS}"
  	@${ECHO} >> ${WRKSRC}/mk/build.mk "EXTRA_HSC2HS_OPTS += -I${LOCALBASE}/include --lflag=-L${LOCALBASE}/lib"
  	@${ECHO} >> ${WRKSRC}/mk/build.mk "EXTRA_LD_OPTS += -L${LOCALBASE}/lib"
  	@${ECHO} >> ${WRKSRC}/mk/build.mk "EXTRA_CABAL_CONFIGURE_FLAGS += --extra-include-dirs=${LOCALBASE}/include"
  	@${ECHO} >> ${WRKSRC}/mk/build.mk "EXTRA_CABAL_CONFIGURE_FLAGS += --extra-lib-dirs=${LOCALBASE}/lib"
 -	@${ECHO} >> ${WRKSRC}/mk/build.mk "libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes=/usr/include --configure-option=--with-curses-libraries=/usr/lib"
 +	@${ECHO} >> ${WRKSRC}/mk/build.mk "libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes=${NCURSESINC} --configure-option=--with-curses-libraries=${NCURSESLIB}"
  #	@${ECHO} >> ${WRKSRC}/mk/build.mk "BIN_DIST_NAME = ghc-\$$(ProjectVersion)-boot"
  #	@${ECHO} >> ${WRKSRC}/mk/build.mk "BIN_DIST_TAR  = ghc-\$$(ProjectVersion)-amd64-ash0-freebsd8-boot.tar"
  
 
 Modified: head/lang/ghc/bsd.cabal.mk
 ==============================================================================
 --- head/lang/ghc/bsd.cabal.mk	Tue Jan 22 10:51:18 2013	(r310824)
 +++ head/lang/ghc/bsd.cabal.mk	Tue Jan 22 10:52:37 2013	(r310825)
 @@ -81,7 +81,7 @@ BUILD_DEPENDS+=	ghc>=${GHC_VERSION}:${PO
  .endif
  
  USE_BINUTILS=	yes
 -USE_GCC=	4.6
 +USE_GCC=	4.6+
  
  .if ${PORT_OPTIONS:MDYNAMIC}
  LIB_DEPENDS+=	ffi.5:${PORTSDIR}/devel/libffi
 _______________________________________________
 svn-ports-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-ports-all
 To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: open->closed 
State-Changed-By: pgj 
State-Changed-When: Tue Jan 22 11:02:54 UTC 2013 
State-Changed-Why:  
We have added ports GCC as an explicit dependency to the port and now we 
have fixed to make the bootstrap compiler work with that correctly. 
Note that clang is not supported by the port yet this way, but enables 
to build when GCC is not used for the base system. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=161356 
>Unformatted:
