From nobody@FreeBSD.ORG Fri Apr  2 14:29:45 1999
Return-Path: <nobody@FreeBSD.ORG>
Received: by hub.freebsd.org (Postfix, from userid 32767)
	id 11A1B14E54; Fri,  2 Apr 1999 14:29:45 -0800 (PST)
Message-Id: <19990402222945.11A1B14E54@hub.freebsd.org>
Date: Fri,  2 Apr 1999 14:29:45 -0800 (PST)
From: tullmann@cs.utah.edu
Sender: nobody@FreeBSD.ORG
To: freebsd-gnats-submit@freebsd.org
Subject: /usr/bin/cpp is an out-of-date wrapper for cpp
X-Send-Pr-Version: www-1.0

>Number:         10923
>Category:       bin
>Synopsis:       /usr/bin/cpp is an out-of-date wrapper for cpp
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    obrien
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Apr  2 14:30:01 PST 1999
>Closed-Date:    Sat Jan 15 19:05:59 PST 2000
>Last-Modified:  Sat Jan 15 19:08:43 PST 2000
>Originator:     Patrick Tullmann
>Release:        3.0-CURRENT
>Organization:
University of Utah
>Environment:
FreeBSD alta.cs.utah.edu 3.0-CURRENT FreeBSD 3.0-CURRENT #7: Fri Dec  4 14:03:40 MST 1998     sclawson@ibapah.cs.utah.edu:/usr/src/sys/compile/SMP  i386
>Description:
/usr/bin/cpp does not match the semantics of the cpp described in 
the man pages.  /usr/bin/cpp is a front-end that tries to match 
the semantics of an old CPP---it treats each file as an input
stream, it inserts '-traditional' and '-nostdinc'.  /usr/libexec/cpp
is what /usr/bin/cpp should be.
>How-To-Repeat:
cpp foo.c bar
Should create bar from foo.c, but instead writes foo.c + bar to stdout

>Fix:
mv -f /usr/libexec/cpp /usr/bin/cpp

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->obrien 
Responsible-Changed-By: phantom 
Responsible-Changed-When: Sat Dec 25 09:50:30 PST 1999 
Responsible-Changed-Why:  
Over to gcc maintainer 
State-Changed-From-To: open->closed 
State-Changed-By: obrien 
State-Changed-When: Sat Jan 15 19:05:59 PST 2000 
State-Changed-Why:  
/usr/libexec/cpp should *not* be called directly.  This is a very bad haibt 
that for some reason the FreeBSD commuity has come into.  If you want a 
general CPP you use /usr/bin/cpp which is yes a traditional CPP.  If you want 
a CPP that is matched to the compiler, you use "cc -E". 

The GCC CPP maintainer agrees with this, and starting with GCC 2.95 
(which is the compiler in FreeBSD 4.0-CURRENT), there is a new CPP frontend 
based on gcc.c.  In FreeBSD 4.0-CURRENT, this new frontend has replaced 
/usr/bin/cpp. 
. 
>Unformatted:
