aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2014-11-14 07:30:27 +0000
committerJakub Jelinek <jakub@redhat.com>2014-11-14 07:30:27 +0000
commit4777f9bd4823ff630c79a5bb27d6f2501e6f9883 (patch)
treee7f3963d5df9a9efb868270660b28d10c7507bca
parentf7aae05043a55055bfd7e3bd8e75af31c862854a (diff)
* configure.ac (--with-diagnostics-color): New configure
option, default to --with-diagnostics-color=auto. * toplev.c (process_options): Use DIAGNOSTICS_COLOR_DEFAULT to determine -fdiagnostics-color= option default. * doc/invoke.texi (-fdiagnostics-color=): Document new default. * configure: Regenerated. * config.in: Regenerated. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@217540 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/config.in18
-rwxr-xr-xgcc/configure41
-rw-r--r--gcc/configure.ac28
-rw-r--r--gcc/doc/invoke.texi6
-rw-r--r--gcc/toplev.c28
6 files changed, 116 insertions, 16 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b7b72dabccf..682f6fd1e33 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2014-11-14 Jakub Jelinek <jakub@redhat.com>
+
+ * configure.ac (--with-diagnostics-color): New configure
+ option, default to --with-diagnostics-color=auto.
+ * toplev.c (process_options): Use DIAGNOSTICS_COLOR_DEFAULT
+ to determine -fdiagnostics-color= option default.
+ * doc/invoke.texi (-fdiagnostics-color=): Document new
+ default.
+ * configure: Regenerated.
+ * config.in: Regenerated.
+
2014-11-13 Teresa Johnson <tejohnson@google.com>
PR tree-optimization/63841
diff --git a/gcc/config.in b/gcc/config.in
index 9d1ad863b5f..6cfda75b0b3 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -57,6 +57,12 @@
#endif
+/* The default for -fdiagnostics-color option */
+#ifndef USED_FOR_TARGET
+#undef DIAGNOSTICS_COLOR_DEFAULT
+#endif
+
+
/* Define if you want assertions enabled. This is a cheap check. */
#ifndef USED_FOR_TARGET
#undef ENABLE_ASSERT_CHECKING
@@ -272,6 +278,12 @@
#endif
+/* Define if your assembler supports .module. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_AS_DOT_MODULE
+#endif
+
+
/* Define if your assembler supports DSPR1 mult. */
#ifndef USED_FOR_TARGET
#undef HAVE_AS_DSPR1_MULT
@@ -484,12 +496,6 @@
#endif
-/* Define if the assembler understands .module. */
-#ifndef USED_FOR_TARGET
-#undef HAVE_AS_DOT_MODULE
-#endif
-
-
/* Define if your assembler supports the -no-mul-bug-abort option. */
#ifndef USED_FOR_TARGET
#undef HAVE_AS_NO_MUL_BUG_ABORT_OPTION
diff --git a/gcc/configure b/gcc/configure
index ebc314965a7..8e62ee7233f 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -936,6 +936,7 @@ enable_plugin
enable_host_shared
enable_libquadmath_support
with_linker_hash_style
+with_diagnostics_color
'
ac_precious_vars='build_alias
host_alias
@@ -1708,6 +1709,11 @@ Optional Packages:
--with-system-zlib use installed libz
--with-linker-hash-style={sysv,gnu,both}
specify the linker hash style
+ --with-diagnostics-color={never,auto,auto-if-env,always}
+ specify the default of -fdiagnostics-color option
+ auto-if-env stands for -fdiagnostics-color=auto if
+ GCC_COLOR environment variable is present and
+ -fdiagnostics-color=never otherwise
Some influential environment variables:
CC C compiler command
@@ -18140,7 +18146,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 18143 "configure"
+#line 18149 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -18246,7 +18252,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 18249 "configure"
+#line 18255 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -28294,6 +28300,37 @@ _ACEOF
fi
+# Specify what should be the default of -fdiagnostics-color option.
+
+# Check whether --with-diagnostics-color was given.
+if test "${with_diagnostics_color+set}" = set; then :
+ withval=$with_diagnostics_color; case x"$withval" in
+ xnever)
+ DIAGNOSTICS_COLOR_DEFAULT=DIAGNOSTICS_COLOR_NO
+ ;;
+ xauto)
+ DIAGNOSTICS_COLOR_DEFAULT=DIAGNOSTICS_COLOR_AUTO
+ ;;
+ xauto-if-env)
+ DIAGNOSTICS_COLOR_DEFAULT=-1
+ ;;
+ xalways)
+ DIAGNOSTICS_COLOR_DEFAULT=DIAGNOSTICS_COLOR_YES
+ ;;
+ *)
+ as_fn_error "$withval is an invalid option to --with-diagnostics-color" "$LINENO" 5
+ ;;
+ esac
+else
+ DIAGNOSTICS_COLOR_DEFAULT=DIAGNOSTICS_COLOR_AUTO
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+#define DIAGNOSTICS_COLOR_DEFAULT $DIAGNOSTICS_COLOR_DEFAULT
+_ACEOF
+
+
# Generate gcc-driver-name.h containing GCC_DRIVER_NAME for the benefit
# of jit/jit-playback.c.
cat > gcc-driver-name.h <<EOF
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 0f7ab894ec5..f6e7ec3529e 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -5651,6 +5651,34 @@ if test x"${LINKER_HASH_STYLE}" != x; then
[The linker hash style])
fi
+# Specify what should be the default of -fdiagnostics-color option.
+AC_ARG_WITH([diagnostics-color],
+[AC_HELP_STRING([--with-diagnostics-color={never,auto,auto-if-env,always}],
+ [specify the default of -fdiagnostics-color option
+ auto-if-env stands for -fdiagnostics-color=auto if
+ GCC_COLOR environment variable is present and
+ -fdiagnostics-color=never otherwise])],
+[case x"$withval" in
+ xnever)
+ DIAGNOSTICS_COLOR_DEFAULT=DIAGNOSTICS_COLOR_NO
+ ;;
+ xauto)
+ DIAGNOSTICS_COLOR_DEFAULT=DIAGNOSTICS_COLOR_AUTO
+ ;;
+ xauto-if-env)
+ DIAGNOSTICS_COLOR_DEFAULT=-1
+ ;;
+ xalways)
+ DIAGNOSTICS_COLOR_DEFAULT=DIAGNOSTICS_COLOR_YES
+ ;;
+ *)
+ AC_MSG_ERROR([$withval is an invalid option to --with-diagnostics-color])
+ ;;
+ esac],
+[DIAGNOSTICS_COLOR_DEFAULT=DIAGNOSTICS_COLOR_AUTO])
+AC_DEFINE_UNQUOTED(DIAGNOSTICS_COLOR_DEFAULT, $DIAGNOSTICS_COLOR_DEFAULT,
+ [The default for -fdiagnostics-color option])
+
# Generate gcc-driver-name.h containing GCC_DRIVER_NAME for the benefit
# of jit/jit-playback.c.
cat > gcc-driver-name.h <<EOF
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index b7049d827e9..93943cb58c6 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -3104,8 +3104,10 @@ a message which is too long to fit on a single line.
@cindex highlight, color, colour
@vindex GCC_COLORS @r{environment variable}
Use color in diagnostics. @var{WHEN} is @samp{never}, @samp{always},
-or @samp{auto}. The default is @samp{never} if @env{GCC_COLORS} environment
-variable isn't present in the environment, and @samp{auto} otherwise.
+or @samp{auto}. The default depends on how the compiler has been configured,
+it can be any of the above @var{WHEN} options or also @samp{never}
+if @env{GCC_COLORS} environment variable isn't present in the environment,
+and @samp{auto} otherwise.
@samp{auto} means to use color only when the standard error is a terminal.
The forms @option{-fdiagnostics-color} and @option{-fno-diagnostics-color} are
aliases for @option{-fdiagnostics-color=always} and
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 80fb4ceb4c6..2ed76bc610d 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -1267,12 +1267,28 @@ process_options (void)
maximum_field_alignment = initial_max_fld_align * BITS_PER_UNIT;
- /* Default to -fdiagnostics-color=auto if GCC_COLORS is in the environment,
- otherwise default to -fdiagnostics-color=never. */
- if (!global_options_set.x_flag_diagnostics_show_color
- && getenv ("GCC_COLORS"))
- pp_show_color (global_dc->printer)
- = colorize_init (DIAGNOSTICS_COLOR_AUTO);
+ /* If DIAGNOSTICS_COLOR_DEFAULT is -1, default to -fdiagnostics-color=auto
+ if GCC_COLORS is in the environment, otherwise default to
+ -fdiagnostics-color=never, for other values default to that
+ -fdiagnostics-color={never,auto,always}. */
+ if (!global_options_set.x_flag_diagnostics_show_color)
+ switch ((int) DIAGNOSTICS_COLOR_DEFAULT)
+ {
+ case -1:
+ if (!getenv ("GCC_COLORS"))
+ break;
+ /* FALLTHRU */
+ case DIAGNOSTICS_COLOR_AUTO:
+ pp_show_color (global_dc->printer)
+ = colorize_init (DIAGNOSTICS_COLOR_AUTO);
+ break;
+ case DIAGNOSTICS_COLOR_YES:
+ pp_show_color (global_dc->printer)
+ = colorize_init (DIAGNOSTICS_COLOR_YES);
+ break;
+ default:
+ break;
+ }
/* Allow the front end to perform consistency checks and do further
initialization based on the command line options. This hook also