From owner-freebsd-current@FreeBSD.ORG Fri Aug 27 06:37:02 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2B8F816A4CE; Fri, 27 Aug 2004 06:37:02 +0000 (GMT) Received: from web.portaone.com (web.portaone.com [195.70.151.35]) by mx1.FreeBSD.org (Postfix) with ESMTP id 72F4643D49; Fri, 27 Aug 2004 06:37:01 +0000 (GMT) (envelope-from sobomax@portaone.com) Received: from [192.168.1.100] (xDSL-2-2.united.net.ua [193.111.9.226]) (authenticated bits=0) by web.portaone.com (8.12.8p2/8.12.8) with ESMTP id i7R6arCd087759 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 27 Aug 2004 08:36:56 +0200 (CEST) (envelope-from sobomax@portaone.com) Message-ID: <412ED681.5010404@portaone.com> Date: Fri, 27 Aug 2004 09:36:49 +0300 From: Maxim Sobolev User-Agent: Mozilla Thunderbird 0.7.3 (Windows/20040803) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Alexander Kabaev References: <412DF886.4030107@portaone.com> <20040826222542.GA95242@freefall.freebsd.org> In-Reply-To: <20040826222542.GA95242@freefall.freebsd.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: current@FreeBSD.org cc: iedowse@FreeBSD.org Subject: Re: [patch] bug in cpp's #ident handling in gcc 3.4 [Was: ccache with buildworld] X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Aug 2004 06:37:02 -0000 Alexander Kabaev wrote: > On Thu, Aug 26, 2004 at 05:49:42PM +0300, Maxim Sobolev wrote: > >>Hi there, >> >>I was looking into the problem with building world using ccache. It was >>failing with the following error message: >> >>/usr/src/lib/libc/rpc/key_call.c:33:10: extra tokens at end of #ident >>directive >> >>Further investigation revealed that pre-processor puts argument of >>#ident directive into additional quotes (""). That is, after >>pre-processor #ident "foo" becomes #ident ""foo"", so that compiler >>considers that in this example ident itself is empty string and foo"" is >>"extra tokens". Following script illustrates problem: >> >>-bash-2.05b$ echo '#ident "foo bar"' > /tmp/foo.c >>-bash-2.05b$ cc -E /tmp/foo.c >># 1 "/tmp/foo.c" >># 1 "" >># 1 "" >># 1 "/tmp/foo.c" >>#ident ""foo bar"" >>-bash-2.05b$ >> >>This problem doesn't hit when compilation is made without ccache, since >>in this case (for performance reasons probably) no intermediate >>pre-processed output is emitted. >> >>Attached please find small patch which fixes the problem for me. With >>it, I was able to do buildworld using ccache. >> >>It would be nice to get it committed before 5.3 is out. >> >>Regards, >> >>Maxim > > >>--- src/contrib/gcc/c-ppoutput.c 2004/08/26 14:10:04 1.1 >>+++ src/contrib/gcc/c-ppoutput.c 2004/08/26 14:10:32 >>@@ -292,7 +292,7 @@ >> const cpp_string *str) >> { >> maybe_print_line (print.map, line); >>- fprintf (print.outf, "#ident \"%s\"\n", str->text); >>+ fprintf (print.outf, "#ident %s\n", str->text); >> print.line++; >> } >> > > Not going to happen unless change is first accepted into FSF repository. > Have you submitted it to GCC folks through proper channel? Yes, bug 17206. -Maxim