Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Sep 2010 05:41:39 +0400 (MSD)
From:      Dmitry Marakasov <amdmi3@FreeBSD.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/150609: [bsd.gcc.mk]: support overriding gcc/g++
Message-ID:  <20100916014139.D221CB833@hades.panopticon>
Resent-Message-ID: <201009160150.o8G1o1Vu005163@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         150609
>Category:       ports
>Synopsis:       [bsd.gcc.mk]: support overriding gcc/g++
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu Sep 16 01:50:01 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Dmitry Marakasov
>Release:        FreeBSD 8.1-RELEASE i386
>Organization:
>Environment:
System: FreeBSD hades.panopticon 8.1-RELEASE FreeBSD 8.1-RELEASE #0: Fri Jul 30 02:50:28 MSD 2010 root@hades.panopticon:/async/obj/usr/src/sys/HADES i386


>Description:
It's possible to override CC and CXX, and that's particularly useful for using ccache to build ports: one has to define CC=/usr/local/libexec/ccache/cc and CXX=/usr/local/libexec/ccache/c++ in the environement. However, that's not possible with ports that define USE_GCC >= 4.2, as gccNN and g++NN compilers are hardcoded. This change makes it possible to override these as well, e.g.

GCCNN_PREFIX=/usr/local/libexec/ccache/gcc
GXXNN_PREFIX=/usr/local/libexec/ccache/g++

for ccache, in which case /usr/local/libexec/ccache/g{cc,++}44 will be used for USE_GCC=4.4, etc.

The same thing works for at least distcc, possibly has other appliances.

>How-To-Repeat:
>Fix:

--- bsd.gcc.mk.patch begins here ---
Index: bsd.gcc.mk
===================================================================
RCS file: /home/amdmi3/projects/freebsd/FreeBSD.cvs/ports/Mk/bsd.gcc.mk,v
retrieving revision 1.46
diff -u -r1.46 bsd.gcc.mk
--- bsd.gcc.mk	4 Sep 2010 17:08:27 -0000	1.46
+++ bsd.gcc.mk	16 Sep 2010 01:24:54 -0000
@@ -48,6 +48,11 @@
 GCCVERSION_040500=	999999 999999 4.5
 GCCVERSION_040600=	999999 999999 4.6
 
+# User may override these to use wrappers for numbered gcc/g++, e.g
+# /usr/local/libexec/ccache/gcc and /usr/local/libexec/ccache/g++
+GCCNN_PREFIX?=	gcc
+GXXNN_PREFIX?=	g++
+
 #
 # No configurable parts below this.
 #
@@ -93,13 +98,13 @@
 RUN_DEPENDS+=	g77-34:${PORTSDIR}/lang/gcc34
 FC:=	g77-34
 F77:=	g77-34
-CC:=	gcc34
-CXX:=	g++34
+CC:=	${GCCNN_PREFIX}34
+CXX:=	${GXXNN_PREFIX}34
 .  else
 F77:=	f77
 FC:=	f77
-CC:=	gcc
-CXX:=	g++
+CC:=	${GCCNN_PREFIX}
+CXX:=	${GXXNN_PREFIX}
 .  endif
 
 . else
@@ -189,8 +194,8 @@
 V:=			${_GCCVERSION_${v}_V:S/.//}
 _GCC_BUILD_DEPENDS:=	gcc${V}
 _GCC_PORT_DEPENDS:=	gcc${V}
-CC:=			gcc${V}
-CXX:=			g++${V}
+CC:=			${GCCNN_PREFIX}${V}
+CXX:=			${GXXNN_PREFIX}${V}
 .   if ${_USE_GCC} != 3.4
 CFLAGS+=		-Wl,-rpath=${LOCALBASE}/lib/${_GCC_BUILD_DEPENDS}
 LDFLAGS+=		-Wl,-rpath=${LOCALBASE}/lib/${_GCC_BUILD_DEPENDS}
--- bsd.gcc.mk.patch ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100916014139.D221CB833>