From 15daa35d32c930aca2038586aae2d821d711b0bb Mon Sep 17 00:00:00 2001 From: Trent Nelson Date: Thu, 13 Dec 2012 06:46:39 +0000 Subject: IRIX: force MIPSpro to treat #errors as errors, not warnings. --- configure | 33 +++++++++++++++++++++++++++++++++ configure.ac | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) diff --git a/configure b/configure index b17097c..ac2d86e 100755 --- a/configure +++ b/configure @@ -3238,6 +3238,39 @@ then (it is also a good idea to do 'make clean' before compiling)" "$LINENO" 5 fi +if test "$MACHDEP" = "irix6" && test "$CC" != "gcc"; then + # Normally, MIPSpro CC treats #error directives as warnings, which means + # a successful exit code is returned (0). This is a problem because IRIX + # has a bunch of system headers with this guard at the top: + # + # #ifndef __c99 + # #error This header file is to be used only for c99 mode compilations + # #else + # + # When autoconf tests for such a header, like stdint.h, this happens: + # + # configure:4619: cc -c conftest.c >&5 + # cc-1035 cc: WARNING File = /usr/include/stdint.h, Line = 5 + # #error directive: This header file is to be used only for c99 mode + # compilations + # + # #error This header file is to be used only for c99 mode compilations + # ^ + # + # configure:4619: $? = 0 + # configure:4619: result: yes + # + # Therefore, we use `-diag_error 1035` to have the compiler treat the + # warning as an error, which causes cc to return a non-zero result, + # which autoconf can interpret correctly. + CFLAGS="$CFLAGS -diag_error 1035" + # Whilst we're here, we might as well make sure CXX defaults to something + # sensible if we're not using gcc. + if test -z "$CXX"; then + CXX="CC" + fi +fi + # If the user set CFLAGS, use this instead of the automatically # determined setting preset_cflags="$CFLAGS" diff --git a/configure.ac b/configure.ac index 7f12536..d7399eb 100644 --- a/configure.ac +++ b/configure.ac @@ -507,6 +507,39 @@ then (it is also a good idea to do 'make clean' before compiling)]) fi +if test "$MACHDEP" = "irix6" && test "$CC" != "gcc"; then + # Normally, MIPSpro CC treats #error directives as warnings, which means + # a successful exit code is returned (0). This is a problem because IRIX + # has a bunch of system headers with this guard at the top: + # + # #ifndef __c99 + # #error This header file is to be used only for c99 mode compilations + # #else + # + # When autoconf tests for such a header, like stdint.h, this happens: + # + # configure:4619: cc -c conftest.c >&5 + # cc-1035 cc: WARNING File = /usr/include/stdint.h, Line = 5 + # #error directive: This header file is to be used only for c99 mode + # compilations + # + # #error This header file is to be used only for c99 mode compilations + # ^ + # + # configure:4619: $? = 0 + # configure:4619: result: yes + # + # Therefore, we use `-diag_error 1035` to have the compiler treat the + # warning as an error, which causes cc to return a non-zero result, + # which autoconf can interpret correctly. + CFLAGS="$CFLAGS -diag_error 1035" + # Whilst we're here, we might as well make sure CXX defaults to something + # sensible if we're not using gcc. + if test -z "$CXX"; then + CXX="CC" + fi +fi + # If the user set CFLAGS, use this instead of the automatically # determined setting preset_cflags="$CFLAGS" -- cgit v0.12