Autoconf has recently seen some effort to robustify configure tests
against picky GCC warning settings.  There is quite a way to go yet, but
it may still be useful to move the OpenMPI configury in that direction,
too.  So below is a patch that picks some low-hanging fruit on the way
to make
  ../ompi-trunk/configure -C CFLAGS='-W -Wall -Werror' \
                             CXXFLAGS='-W -Wall -Werror'

work better with GCC.  Note that currently, the above will still produce
some wrong results, or may even fail one some systems; so it's really
just a first step in that direction.

Also please double-check the changes to Windows specific files -- I did
not test them in any way.

As a side effect, this patch fixes one typo in a comment, and one
underquoted pair of brackets that would make code from c_weak_symbols.m4
end up as
  int main(int argc, char *argv);

in the configure script.

Cheers,
Ralf

Index: config/ompi_check_pthread_pids.m4
===================================================================
--- config/ompi_check_pthread_pids.m4   (revision 11225)
+++ config/ompi_check_pthread_pids.m4   (working copy)
@@ -44,7 +44,7 @@
 #include <unistd.h>
 #include <stdlib.h>
 void *checkpid(void *arg);
-int main(int argc, char* argv[]) {
+int main() {
   pthread_t thr;
   int pid, retval;
   pid = getpid();
Index: config/ompi_microsoft.m4
===================================================================
--- config/ompi_microsoft.m4    (revision 11225)
+++ config/ompi_microsoft.m4    (working copy)
@@ -39,7 +39,7 @@

         AC_MSG_CHECKING(for working InterlockedCompareExchange)
         AC_TRY_RUN( [#include <windows.h>
-                     int main( int argc, char** argv ) {
+                     int main() {
                      LONG dest = 1, exchange = 0, comperand = 1;
                      SetErrorMode(SEM_FAILCRITICALERRORS);
                      InterlockedCompareExchange( &dest, exchange, comperand );
@@ -55,7 +55,7 @@

         AC_MSG_CHECKING(for working InterlockedCompareExchangeAcquire)
         AC_TRY_RUN( [#include <windows.h>
-                 int main( int argc, char** argv ) {
+                 int main() {
                      LONG dest = 1, exchange = 0, comperand = 1;
                      SetErrorMode(SEM_FAILCRITICALERRORS);
                      InterlockedCompareExchangeAcquire( &dest, exchange, 
comperand );
@@ -71,7 +71,7 @@

         AC_MSG_CHECKING(for working InterlockedCompareExchangeRelease)
         AC_TRY_RUN( [#include <windows.h>
-                 int main( int argc, char** argv ) {
+                 int main() {
                      LONG dest = 1, exchange = 0, comperand = 1;
                      SetErrorMode(SEM_FAILCRITICALERRORS);
                      InterlockedCompareExchangeRelease( &dest, exchange, 
comperand );
@@ -87,7 +87,7 @@

         AC_MSG_CHECKING(for working InterlockedCompareExchange64)
         AC_TRY_RUN( [#include <windows.h>
-                 int main( int argc, char** argv ) {
+                 int main() {
                      LONGLONG dest = 1, exchange = 0, comperand = 1;
                      SetErrorMode(SEM_FAILCRITICALERRORS);
                      InterlockedCompareExchange64( &dest, exchange, comperand 
);
Index: config/ompi_setup_libevent.m4
===================================================================
--- config/ompi_setup_libevent.m4       (revision 11225)
+++ config/ompi_setup_libevent.m4       (working copy)
@@ -225,7 +225,7 @@
 #include <stdlib.h>

 int
-main(int argc, char **argv)
+main()
 {
        int kq;
        int n;
@@ -289,7 +289,7 @@
 }

 int
-main(int argc, char **argv)
+main()
 {
        int epfd;

Index: config/f77_get_value_true.m4
===================================================================
--- config/f77_get_value_true.m4        (revision 11225)
+++ config/f77_get_value_true.m4        (working copy)
@@ -56,7 +56,6 @@

 void $ompi_print_logical_fn(ompi_fortran_logical_t * logical)
 {
-    int result = 0;
     FILE *f=fopen("conftestval", "w");
     if (!f) exit(1);

@@ -89,7 +88,7 @@
                  [happy=0])

              if test "$happy" = "0" ; then
-                 AC_MSG_ERROR([Could not determine value of Fotran .TRUE..  
Aborting.])
+                 AC_MSG_ERROR([Could not determine value of Fortran .TRUE..  
Aborting.])
              fi

              AS_IF([test "$cross_compiling" = "yes"],
Index: config/ompi_config_asm.m4
===================================================================
--- config/ompi_config_asm.m4   (revision 11225)
+++ config/ompi_config_asm.m4   (working copy)
@@ -211,7 +211,7 @@
 }
 #endif
 int
-main(int argc, char *argv[[]])
+main()
 {
     gsym_test_func();
     return 0;
Index: config/cxx_find_template_repository.m4
===================================================================
--- config/cxx_find_template_repository.m4      (revision 11225)
+++ config/cxx_find_template_repository.m4      (working copy)
@@ -91,7 +91,7 @@
 }

 int
-main(int argc, char *argv[])
+main()
 {
   foo<bar> var1(6);
   foo< foo<bar> > var2(var1);
Index: config/c_weak_symbols.m4
===================================================================
--- config/c_weak_symbols.m4    (revision 11225)
+++ config/c_weak_symbols.m4    (working copy)
@@ -33,7 +33,7 @@
     cat > conftest.c <<EOF
 extern int fake(int i);
 extern int real(int i);
-int main(int argc, char *argv[]) { return fake(3); }
+int main() { return fake(3); }
 EOF

 # Try the compile
Index: config/ompi_check_icc.m4
===================================================================
--- config/ompi_check_icc.m4    (revision 11225)
+++ config/ompi_check_icc.m4    (working copy)
@@ -36,7 +36,7 @@
   va_end (arglist);
 }

-int main (int argc, char * argv[])
+int main ()
 {
   FILE *f;
   func (4711, "Help %d [%s]\n", 10, "ten");
Index: config/c_get_alignment.m4
===================================================================
--- config/c_get_alignment.m4   (revision 11225)
+++ config/c_get_alignment.m4   (working copy)
@@ -29,7 +29,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 struct foo { char c; $1 x; };
-int main(int argc, char* argv[])
+int main()
 {
     struct foo *p = (struct foo *) malloc(sizeof(struct foo));
     int diff;

Reply via email to