This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Patch: PR preprocessor/15185
- From: Tom Tromey <tromey at redhat dot com>
- To: Gcc Patch List <gcc-patches at gcc dot gnu dot org>
- Date: 10 Jan 2007 09:02:00 -0700
- Subject: Re: Patch: PR preprocessor/15185
- References: <m3tzz2v2n0.fsf@localhost.localdomain>
- Reply-to: tromey at redhat dot com
>>>>> "Tom" == Tom Tromey <tromey@redhat.com> writes:
Tom> This patch fixes PR preprocessor/15185.
Tom> The bug is that the -M and -MT documentation differ in their
Tom> descriptions of how the default target is chosen for dependency
Tom> output.
I'd like to withdraw this patch in favor of the appended.
I noticed that PR 20989 concerns the same parts of the cpp
documentation as PR 15185. This patch fixes both.
PR 20989 says that the use of "basename" is confusing, since GNU
make's basename function does something different. This didn't seem
too unreasonable to me, and it was easy to reword the text to be
unambiguous.
Built on x86 FC5.
Ok?
Tom
:ADDPATCH documentation:
Index: ChangeLog
from Tom Tromey <tromey@redhat.com>
PR preprocessor/15185, PR preprocessor/20989:
* doc/cppopts.texi <-MT>: Update description of algorithm for
computing default target.
<-M, -MD>: Reword "basename" text.
Index: doc/cppopts.texi
===================================================================
--- doc/cppopts.texi (revision 120621)
+++ doc/cppopts.texi (working copy)
@@ -1,4 +1,4 @@
-@c Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+@c Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
@c Free Software Foundation, Inc.
@c This is part of the CPP and GCC manuals.
@c For copying conditions, see the file gcc.texi.
@@ -200,10 +200,11 @@
@option{-imacros} command line options.
Unless specified explicitly (with @option{-MT} or @option{-MQ}), the
-object file name consists of the basename of the source file with any
-suffix replaced with object file suffix. If there are many included
-files then the rule is split into several lines using @samp{\}-newline.
-The rule has no commands.
+object file name consists of the name of the source file with any
+suffix replaced with object file suffix and with any leading directory
+parts removed. If there are many included files then the rule is
+split into several lines using @samp{\}-newline. The rule has no
+commands.
This option does not suppress the preprocessor's debug output, such as
@option{-dM}. To avoid mixing such debug output with the dependency
@@ -268,9 +269,9 @@
@opindex MT
Change the target of the rule emitted by dependency generation. By
-default CPP takes the name of the main input file, including any path,
-deletes any file suffix such as @samp{.c}, and appends the platform's
-usual object suffix. The result is the target.
+default CPP takes the name of the main input file, deletes any
+directory components and any file suffix such as @samp{.c}, and
+appends the platform's usual object suffix. The result is the target.
An @option{-MT} option will set the target to be exactly the string you
specify. If you want multiple targets, you can specify them as a single
@@ -300,8 +301,9 @@
@option{-MD} is equivalent to @option{-M -MF @var{file}}, except that
@option{-E} is not implied. The driver determines @var{file} based on
whether an @option{-o} option is given. If it is, the driver uses its
-argument but with a suffix of @file{.d}, otherwise it take the
-basename of the input file and applies a @file{.d} suffix.
+argument but with a suffix of @file{.d}, otherwise it takes the name
+of the input file, removes any directory components and suffix, and
+applies a @file{.d} suffix.
If @option{-MD} is used in conjunction with @option{-E}, any
@option{-o} switch is understood to specify the dependency output file