From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12837 invoked by alias); 8 May 2002 21:26:04 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 12814 invoked by uid 71); 8 May 2002 21:26:03 -0000 Date: Wed, 08 May 2002 14:26:00 -0000 Message-ID: <20020508212603.12810.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Neil Booth Subject: Re: preprocessor/6521: -MG creates dependency with wrong path Reply-To: Neil Booth X-SW-Source: 2002-05/txt/msg00247.txt.bz2 List-Id: The following reply was made to PR preprocessor/6521; it has been noted by GNATS. From: Neil Booth To: Zack Weinberg Cc: Robert Spier , gcc-gnats@gcc.gnu.org, gcc-bugs@gcc.gnu.org Subject: Re: preprocessor/6521: -MG creates dependency with wrong path Date: Wed, 8 May 2002 22:25:03 +0100 Zack Weinberg wrote:- > > > Robert, would you be willing to clarify the documentation? > > > > OK, I'll apply Robert's patch. What do you feel is unclear about > > the docs? The fact that it refers to "current directory"? > > Precisely. > > I'm not sure how best to clarify it, without rewriting all the stuff > about dependency output (which needs doing, but I don't have time > now). OK, I've applied this. Neil. 2002-05-08 Robert Spier Neil Booth PR preprocessor/6521 * cppfiles.c (handle_missing_header): Don't do anything different for <> includes. doc: * cppopts.texi: Update documentation for -MG. Index: cppfiles.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/cppfiles.c,v retrieving revision 1.147 diff -u -p -r1.147 cppfiles.c --- cppfiles.c 22 Apr 2002 17:48:01 -0000 1.147 +++ cppfiles.c 8 May 2002 21:15:19 -0000 @@ -658,30 +658,7 @@ handle_missing_header (pfile, fname, ang int print_dep = CPP_PRINT_DEPS(pfile) > (angle_brackets || pfile->map->sysp); if (CPP_OPTION (pfile, print_deps_missing_files) && print_dep) - { - if (!angle_brackets || IS_ABSOLUTE_PATHNAME (fname)) - deps_add_dep (pfile->deps, fname); - else - { - /* If requested as a system header, assume it belongs in - the first system header directory. */ - struct search_path *ptr = CPP_OPTION (pfile, bracket_include); - char *p; - int len = 0, fname_len = strlen (fname); - - if (ptr) - len = ptr->len; - - p = (char *) alloca (len + fname_len + 2); - if (len) - { - memcpy (p, ptr->name, len); - p[len++] = '/'; - } - memcpy (p + len, fname, fname_len + 1); - deps_add_dep (pfile->deps, p); - } - } + deps_add_dep (pfile->deps, fname); /* If -M was specified, then don't count this as an error, because we can still produce correct output. Otherwise, we can't produce correct output, because there may be dependencies we need inside Index: doc/cppopts.texi =================================================================== RCS file: /cvs/gcc/gcc/gcc/doc/cppopts.texi,v retrieving revision 1.5 diff -u -p -r1.5 cppopts.texi --- doc/cppopts.texi 7 Apr 2002 03:12:23 -0000 1.5 +++ doc/cppopts.texi 8 May 2002 21:15:22 -0000 @@ -204,10 +204,13 @@ When used with the driver options @optio @item -MG @opindex MG -When used with @option{-M} or @option{-MM}, @option{-MG} says to treat missing -header files as generated files and assume they live in the same -directory as the source file. It suppresses preprocessed output, as a -missing header file is ordinarily an error. +In conjunction with an option such as @option{-M} requesting +dependency generation, @option{-MG} assumes missing header files are +generated files and adds them to the dependency list without raising +an error. The dependency filename is taken directly from the +@code{#include} directive without prepending any path. @option{-MG} +also suppresses preprocessed output, as a missing header file renders +this useless. This feature is used in automatic updating of makefiles.