bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#22087: Problem with stdbuf configure test for 8.24 on Solaris with S


From: Rich Burridge
Subject: bug#22087: Problem with stdbuf configure test for 8.24 on Solaris with Studio C compiler.
Date: Thu, 3 Dec 2015 11:42:59 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0

On 12/03/2015 11:30 AM, Pádraig Brady wrote:
On 03/12/15 18:58, Rich Burridge wrote:
Hi,

I'm finally getting around to integrating coreutils version 8.24
into Solaris 12 (and being built with the Studio C compiler rather
than gcc) and noticed that the test for whether we had stdbuf was
failing.

I've fixed it with the following patch. Looks like gcc just doesn't
trip over this, but hopefully the suggested change "just works" for
both compilers.

Thanks.



$ cat configure.ac.patch
The configure test for "whether this is system supports stdbuf" was
failing because the warning:

"conftest.c", line 731: warning: statement not reached

was being turned into an error with the Studio C compiler (ignored
with the GNU C compiler).

We want to adjust the -errwarn option so that it ignores
E_STATEMENT_NOT_REACHED errors.

--- configure.ac.orig   2015-12-03 09:46:42.381111611 -0800
+++ configure.ac        2015-12-03 10:27:48.938546667 -0800
@@ -459,7 +459,7 @@
   ac_save_LDFLAGS=$LDFLAGS
   # Detect warnings about ignored "constructor" attributes.
   gl_WARN_ADD([-Werror], [CFLAGS])
-gl_WARN_ADD([-errwarn], [CFLAGS])
+gl_WARN_ADD([-errwarn=no%E_STATEMENT_NOT_REACHED], [CFLAGS])
   # Put this message here, after gl_WARN_ADD's chatter.
   AC_MSG_CHECKING([whether this system supports stdbuf])
   CFLAGS="-fPIC $CFLAGS"
which statement isn't reached?
I presume it's a false positive from the compiler?

I isolated it into the following small conftest.c program:

  1     static int stdbuf = 0;
  2
  3     void __attribute__ ((constructor))
  4     stdbuf_init (void)
  5     {
  6       stdbuf = 1;
  7     }
  8 int
  9 main ()
 10 {
 11
 12     return !(stdbuf == 1);
 13   ;
 14   return 0;
 15 }
 16


and that fails with:

$ cc -o conftest -errwarn conftest.c
"conftest.c", line 14: statement not reached
cc: acomp failed for conftest.c

-errwarn was added to support AIX:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20733#112
I'm worried that we may break that.
Would it still work for you to add in addition? I.E.

+gl_WARN_ADD([-errwarn=no%E_STATEMENT_NOT_REACHED], [CFLAGS])

in addition to the existing -errwarn?

Yes, that works nicely. My patch is now:

--- configure.ac.orig   2015-12-03 09:46:42.381111611 -0800
+++ configure.ac        2015-12-03 11:38:42.733910645 -0800
@@ -460,6 +460,7 @@
 # Detect warnings about ignored "constructor" attributes.
 gl_WARN_ADD([-Werror], [CFLAGS])
 gl_WARN_ADD([-errwarn], [CFLAGS])
+gl_WARN_ADD([-errwarn=no%E_STATEMENT_NOT_REACHED], [CFLAGS])
 # Put this message here, after gl_WARN_ADD's chatter.
 AC_MSG_CHECKING([whether this system supports stdbuf])
 CFLAGS="-fPIC $CFLAGS"


Thanks.







reply via email to

[Prev in Thread] Current Thread [Next in Thread]