Skip to contentSkip to conversation

build: Do not force diagnostics-color flag

PATCH In review Mike Auty 2 participants 4 messages Dec 5, 2014 – Dec 17, 2014 Kbuild

lore
Share & tools
lore

Mike Auty

author
#0 lore raw

PATCH 1/1 build: Do not force diagnostics-color flag

The -fdiagnostics-color flag is only available on GCC >= 4.9, for older versions this could raise an error in certain circumstances (such as when using ccache). Instead, since -fdiagnostic-color=auto by default in gcc-4.9, simply set the required environment variable to the default one if it's undefined.

Based mostly on the systemd commit f44541bc by Michal Schmidt.

---
 Makefile.am  | 3 +++
 configure.ac | 1 -
 2 files changed, 3 insertions(+), 1 deletion(-)
Makefile.am +1 -0
index ea5cbac..51825f0 100644
@@ -11,6 +11,9 @@ BUILT_FILES =
 ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
 AM_MAKEFLAGS = --no-print-directory
 
+GCC_COLORS ?=

'error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' +export GCC_COLORS
+
AM_CPPFLAGS = \
-include $(top_builddir)/config.h \
-I$(top_srcdir)/libkmod \

configure.ac +0 -1
index 2709f08..f28bfed 100644
@@ -201,7 +201,6 @@ CC_CHECK_FLAGS_APPEND(with_cflags, [CFLAGS], [\
 		       -Wuninitialized \
 		       -fno-common \
 		       -fdiagnostics-show-option \
-		       -fdiagnostics-color=auto \
 		       -fvisibility=hidden \
 		       -ffunction-sections \
 		       -fdata-sections])
Signature · 1 line
2.2.0
#1 lore raw
Quoted 21 lines · Mike Auty

The -fdiagnostics-color flag is only available on GCC >= 4.9, for older versions this could raise an error in certain circumstances (such as when using ccache). Instead, since -fdiagnostic-color=auto by default in gcc-4.9, simply set the required environment variable to the default one if it's undefined.

Based mostly on the systemd commit f44541bc by Michal Schmidt.

---
 Makefile.am  | 3 +++
 configure.ac | 1 -
 2 files changed, 3 insertions(+), 1 deletion(-)
Makefile.am +1 -0
index ea5cbac..51825f0 100644
@@ -11,6 +11,9 @@ BUILT_FILES =
 ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
 AM_MAKEFLAGS = --no-print-directory
 
+GCC_COLORS ?=
Quoted 2 lines

'error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' +export GCC_COLORS

Do we really need to specify the colors ourselves? Systemd's commit seems to only export any value in the variable to get the default ones.

I'm fine with this approach for compatibility with gcc < 4.9, but the patch is corrupted by your mail client.
Could you send it with git-send-email or attach it.

Thanks.

Lucas De Marchi

author
#2 lore raw

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hiya,

Quoted 3 lines · Lucas De Marchi

Do we really need to specify the colors ourselves? Systemd's commit seems to only export any value in the variable to get the default ones.

No, but if the data isn't important anyway, I figured we might as well load it with the default value as something useful for anyone that happens to read the line. Submitting what was in the systemd patch seemed embarrassing, but if you think it's more confusing then I'm happy to include some bogus text of your choosing.

Quoted 3 lines

I'm fine with this approach for compatibility with gcc < 4.9, but the patch is corrupted by your mail client. Could you send it with git-send-email or attach it.

Sorry about the mail client! Attached as requested...

Mike 5:)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iEYEARECAAYFAlSQv9YACgkQu7rWomwgFXqZ8wCgqoHf5FBMg5Q+4puOD97uoRBa EqMAnjQOnTvmIUy8GELFPP8OT+LhtW5S
=sFB/
-----END PGP SIGNATURE-----

Quoted 1 line

From f14018096ea11757ac783089837d75ef25ac5191 Mon Sep 17 00:00:00 2001

From: Mike Auty <[email protected]>
Date: Fri, 5 Dec 2014 00:49:13 +0000
Subject: [PATCH] build: Do not force diagnostics-color flag

The -fdiagnostics-color flag is only available on GCC >= 4.9, for older versions this could raise an error in certain circumstances (such as when using ccache). Instead, since -fdiagnostic-color=auto by default in gcc-4.9, simply set the required environment variable to the default one if it's undefined.

Based mostly on the systemd commit f44541bc by Michal Schmidt.

---
 Makefile.am  | 3 +++
 configure.ac | 1 -
 2 files changed, 3 insertions(+), 1 deletion(-)
Makefile.am +3 -0
index ea5cbac..51825f0 100644
@@ -11,6 +11,9 @@ BUILT_FILES =
 ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
 AM_MAKEFLAGS = --no-print-directory
 
+GCC_COLORS ?= 'error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
+export GCC_COLORS
+
 AM_CPPFLAGS = \
 	-include $(top_builddir)/config.h \
 	-I$(top_srcdir)/libkmod \
configure.ac +0 -1
index 2709f08..f28bfed 100644
@@ -201,7 +201,6 @@ CC_CHECK_FLAGS_APPEND(with_cflags, [CFLAGS], [\
 		       -Wuninitialized \
 		       -fno-common \
 		       -fdiagnostics-show-option \
-		       -fdiagnostics-color=auto \
 		       -fvisibility=hidden \
 		       -ffunction-sections \
 		       -fdata-sections])
Signature · 1 line
2.2.0
#3 lore raw
Quoted 10 lines · Mike Auty

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hiya,

Quoted 3 lines · Lucas De Marchi

Do we really need to specify the colors ourselves? Systemd's commit seems to only export any value in the variable to get the default ones.

Quoted 5 lines

No, but if the data isn't important anyway, I figured we might as well load it with the default value as something useful for anyone that happens to read the line. Submitting what was in the systemd patch seemed embarrassing, but if you think it's more confusing then I'm happy to include some bogus text of your choosing.

The problem is that then we don't follow whatever the default becomes when a new gcc is released. A simple "yes" instead of "oh, shiny" would do the job, too :-)

I'm amending it to your patch and applying.

Thanks
Lucas De Marchi