This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: preprocessor/6521: -MG creates dependency with wrong path


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 <rspier@pobox.com>
	    Neil Booth  <neil@daikokuya.demon.co.uk>

	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.
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]