I think this is good idea since it is consistent with env var GCC_COLORS -- the color support will be disabled even with -fdiagnostics-color=always, if GCC_COLORS is set to empty. And I has experienced more serious problem when I ssh(1) to the remote machine from a even older terminal, GNOME Terminal 2.30.2. The terminal bells made noticeable delays; The whole terminal window would hang for several seconds when gcc(1) emits too many warnings in at a time...
2019-12-20 4:48 GMT+08:00, Jakub Jelinek <ja...@redhat.com>: > On Thu, Dec 19, 2019 at 03:24:19PM -0500, David Malcolm wrote: >> Currently -fdiagnostics-urls defaults to "auto" and this works >> (e.g. for recent gnome-terminal, and is gracefully discarded by >> konsole5), but there have been reports of incompatibilities of the >> feature with various other terminals. >> >> This patch adds a configuration option to change this default, based >> on Jakub's analogous change to -fdiagnostics-color (r217540). One >> possible configure-time option is --with-diagnostics-urls=auto-if-env, >> which adds support for a GCC_URLS environment variable to control >> the default (again by analogy with the --with-diagnostics-color >> configure-time support for changing -fdiagnostics-color). > > I think it would be better to have GCC_URLS env var to be be more > consistent > with GCC_COLORS, so yes, have the never,auto,auto-if-env,always > configure possibilities like for colors and for auto-if-env don't print > URLS if the env var is not present, but on top of that, parse also the > value > of the env var like parse_gcc_colors does, and have a way to disable urls > even with -fdiagnostics-urls=always (like GCC_COLORS= disables colors), > and perhaps use the env var to select between the ST and BEL terminator > as apparently some terminals like one or the other more. > So perhaps accept GCC_URLS= and GCC_URLS=no as disabling, GCC_URLS=bel > as the (default) case for BEL termination and GCC_URLS=st for the ST > termination? > E.g. have a way even for a compiler configured that it will work with new > terminals most of them time and thus --with-diagnostics-urls=always that > if somebody sshs to some machine from some old host, GCC_URLS=no (or none?) > can be still used to disable it, without the need to tweak build system to > inject there some flags. > >> Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu; I >> tested the --with-diagnostics-urls=auto-if-env and GCC_URLS behavior >> manually. >> >> Jakub: does this look sane to you? (given that this is heavily based >> on your 2014 patches for --with-diagnostics-color). > > Jakub > >