Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Aug 2012 18:49:34 GMT
From:      Dan McGregor <dan.mcgregor@usask.ca>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   misc/171120: GCC incorrectly identified in base when CLANG_IS_CC and WITHOUT_GCC are set
Message-ID:  <201208271849.q7RInYTD034750@red.freebsd.org>
Resent-Message-ID: <201208271850.q7RIoBjV070233@freefall.freebsd.org>

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

>Number:         171120
>Category:       misc
>Synopsis:       GCC incorrectly identified in base when CLANG_IS_CC and WITHOUT_GCC are set
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Aug 27 18:50:11 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Dan McGregor
>Release:        10-CURRENT
>Organization:
>Environment:
FreeBSD nebuchadnezzar.local 10.0-CURRENT FreeBSD 10.0-CURRENT #0 r+5a7bf35: Wed Aug 22 13:23:02 CST 2012     dan@nebuchadnezzar.local:/home/dan/freebsd-obj/usr/home/dan/freebsd/sys/GENERIC  amd64
>Description:
I have both WITH_CLANG_IS_CC and WITHOUT_GCC set in /etc/src.conf, so gcc does not exist in the base system.

Any port that has USE_GCC=4.2+ set incorrectly assumes that GCC 4.2 is in base.  I think the expected behaviour should be to identify that it could be in base, then check, rather than simply taking it on faith that /usr/bin/gcc exists.
>How-To-Repeat:
Build a release WITHOUT_GCC and WITH_CLANG_IS_CC and then try to build a port with USE_GCC=4.2+ (for example audio/clementine-player).
>Fix:
wrap setting _GCCVERSION and _GCC_FOUND${v} in .if directives and remove the error condition if _GCCVERSION is undefined.

I attached a patch.

Patch attached with submission follows:

Index: bsd.gcc.mk
===================================================================
--- bsd.gcc.mk  (revision 303050)
+++ bsd.gcc.mk  (working copy)
@@ -129,13 +129,12 @@
 _GCC_FOUND${v}=	port
 . endif
 . if ${OSVERSION} >= ${_GCCVERSION_${v}_L} && ${OSVERSION} < ${_GCCVERSION_${v}_R}
+.  if exists(/usr/bin/gcc)
 _GCCVERSION:=		${v}
 _GCC_FOUND${v}:=	base
+.  endif
 . endif
 .endfor
-.if !defined(_GCCVERSION)
-IGNORE=		Couldn't find your current GCCVERSION (OSVERSION=${OSVERSION})
-.endif
 
 #
 # If the GCC package defined in USE_GCC does not exist, but a later


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



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