This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[google] Work around build system bug in handling of -MD (issue3981053)
- From: dnovillo at google dot com
- To: gcc-patches at gcc dot gnu dot org, simonb at google dot com
- Cc: reply at codereview dot appspotmail dot com
- Date: Wed, 02 Feb 2011 14:41:48 +0000
- Subject: [google] Work around build system bug in handling of -MD (issue3981053)
- Reply-to: dnovillo at google dot com, gcc-patches at gcc dot gnu dot org, simonb at google dot com, reply at codereview dot appspotmail dot com
Reviewers: gcc-patches_gcc.gnu.org, simonb_google.com,
Description:
Google's build system has always assumed that -MD always produces
output. This is an outstanding bug that for now is easier to work
around with this hack.
Tested on x86_64. Committed on google/integration.
2011-02-02 Diego Novillo <dnovillo@google.com>
* c-family/c-opts.c (c_common_finish): Emit deps even if
the file has syntax errors.
diff --git a/gcc/c-family/c-opts.c b/gcc/c-family/c-opts.c
index befd644..e116921 100644
--- a/gcc/c-family/c-opts.c
+++ b/gcc/c-family/c-opts.c
@@ -1093,7 +1093,11 @@ c_common_finish (void)
FILE *deps_stream = NULL;
/* Don't write the deps file if there are errors. */
- if (cpp_opts->deps.style != DEPS_NONE && !seen_error ())
+ /* FIXME. We are emitting the deps file even if there were errors.
+ This is a temporary workaround to avoid confusing Google's build
+ system. It assumes that deps files are always emitted even
+ in the presence of errors. */
+ if (cpp_opts->deps.style != DEPS_NONE /*&& !seen_error ()*/)
{
/* If -M or -MM was seen without -MF, default output to the
output stream. */
Please review this at http://codereview.appspot.com/3981053/
Affected files:
M gcc/c-family/c-opts.c
Index: gcc/c-family/c-opts.c
diff --git a/gcc/c-family/c-opts.c b/gcc/c-family/c-opts.c
index
befd64498a4bc87400a8d5e4d2001512f6ac2154..e11692116fecac0842809d820049bd6c08f81e4e
100644
--- a/gcc/c-family/c-opts.c
+++ b/gcc/c-family/c-opts.c
@@ -1093,7 +1093,11 @@ c_common_finish (void)
FILE *deps_stream = NULL;
/* Don't write the deps file if there are errors. */
- if (cpp_opts->deps.style != DEPS_NONE && !seen_error ())
+ /* FIXME. We are emitting the deps file even if there were errors.
+ This is a temporary workaround to avoid confusing Google's build
+ system. It assumes that deps files are always emitted even
+ in the presence of errors. */
+ if (cpp_opts->deps.style != DEPS_NONE /*&& !seen_error ()*/)
{
/* If -M or -MM was seen without -MF, default output to the
output stream. */