[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.0.3-47-g0cca71f

mysql vizuser noreply at mpich.org
Tue Apr 23 16:24:04 CDT 2013


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".

The branch, master has been updated
       via  0cca71f8e0cc0bbce77783f27b12aed1e4aa204e (commit)
       via  00275e470873cd27b6366964233c16d7a19a1b45 (commit)
       via  9309120a2da4ba8da826437589490e1b7a538259 (commit)
      from  1a1ff11ed57a670118e7209c65d3ec7bdc8244c4 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/0cca71f8e0cc0bbce77783f27b12aed1e4aa204e

commit 0cca71f8e0cc0bbce77783f27b12aed1e4aa204e
Author: Dave Goodell <goodell at mcs.anl.gov>
Date:   Tue Apr 23 14:13:40 2013 -0500

    tt#1817: move configure subdir exports earlier
    
    We already were exporting these variables for the "main" subdirs, such
    as the configured device/channel/netmod.  The bug was that we weren't
    setting these exports in time for OPA or MPL to pick them up.  When
    [1a1ff11e] came along and reordered the compiler search list, this
    caused MPICH to choose `cc` and OPA to choose `gcc`, which don't agree
    on the validity of certain warning flags.  So `--enable-strict=c99`
    causes OPA's configure to fail because of a bad compiler flag exported
    by the top level.
    
    An alternative "fix" to this commit is to ensure that every single
    subdir package uses exactly the same logic in order to select compilers
    and compiler options.  This seems much more difficult to ensure.
    
    Reviewed-by: balaji

diff --git a/configure.ac b/configure.ac
index d135372..35dc573 100644
--- a/configure.ac
+++ b/configure.ac
@@ -740,6 +740,37 @@ export master_top_builddir
 export master_top_srcdir
 
 # ----------------------------------------------------------------------------
+dnl Export important "precious" variables so that any directories configured via
+dnl PAC_CONFIG_SUBDIR will agree with the top-level configure about these
+dnl critical variables (esp. compiler selection).  These exports should come
+dnl before any subconfigures in this script.
+dnl
+dnl This list is arguably incomplete, and should possibly be automatically
+dnl generated from "$ac_precious_vars" using code similar to the implementation
+dnl of PAC_CONFIG_SUBDIR.
+dnl
+dnl To be clear, without these exports any variable values determined by this
+dnl configure script will not be seen by child scripts.  Instead they will dnl
+dnl receive the only the original inherited environment and configure args used
+dnl when this configure script was invoked.
+export AR
+export AR_FLAGS
+export CC
+export CFLAGS
+export CPPFLAGS
+export CXX
+export CXXFLAGS
+export F77
+export FC
+export FCFLAGS
+export FFLAGS
+export LDFLAGS
+export LIBS
+export MPILIBNAME
+export PMPILIBNAME
+export RANLIB
+
+# ----------------------------------------------------------------------------
 # with-device
 if test "$with_device" = "default" ; then
     # Pick the device.  For now, always choose ch3
@@ -5170,7 +5201,6 @@ fi
 
 dnl Configure any subdirectories.  Note that config.status will *not* 
 dnl reexecute these!
-dnl Export any important variables first:
 dnl 
 dnl Gastly problem.  CONFIG_SUBDIRS only adds the directories to the
 dnl list of directories to be configured.  It does NOT control the
@@ -5181,25 +5211,7 @@ dnl uses to handle the subdir configure.  However, later versions of
 dnl autoconf did this in a way that caused problems, paritcularly with 
 dnl errors reported as inconsistent cache files.  Instead, we simply
 dnl invoke the configure scripts (if present) directly.
-export AR
-export AR_FLAGS
-export RANLIB
-export MPILIBNAME
-export PMPILIBNAME
-export CC
-export CPPFLAGS
-export LIBS
-export CXX
-export CXXFLAGS
-export FFLAGS
-export CFLAGS
-export FCFLAGS
-export LDFLAGS
-# Make sure that any Fortran 77 and Fortran 90 compilers are exported to 
-# the subdir builds (in particular, ROMIO may try to use the Fortran 90
-# compiler to determine the Fortran 90 KINDS for MPI_OFFSET_KIND).
-export F77
-export FC
+
 #
 # -----------------------------------------------------------------------------
 # Configure threads first.  This is necessary to obtain all required

http://git.mpich.org/mpich.git/commitdiff/00275e470873cd27b6366964233c16d7a19a1b45

commit 00275e470873cd27b6366964233c16d7a19a1b45
Author: Dave Goodell <goodell at mcs.anl.gov>
Date:   Tue Apr 23 13:37:34 2013 -0500

    fix PAC_PROG_CC ordering in configure.ac scripts
    
    If you get a message like this:
    
    ```
    configure.ac:30: warning: AC_PROG_CC was called before PAC_PROG_CC
    confdb/aclocal_cc.m4:10: PAC_PROG_CC is expanded from...
    configure.ac:30: the top level
    ```
    
    but can't seem to figure out where the earlier AC_PROG_CC macro is
    coming from, then you can run autoconf directly with the
    `--trace=AC_PROG_CC` argument for more information.
    
    Reviewed-by: balaji

diff --git a/src/mpi/romio/configure.ac b/src/mpi/romio/configure.ac
index 2ee57b0..e68f08a 100644
--- a/src/mpi/romio/configure.ac
+++ b/src/mpi/romio/configure.ac
@@ -25,6 +25,9 @@ AC_CONFIG_MACRO_DIR([confdb])
 AM_INIT_AUTOMAKE([-Wall -Werror -Wno-portability-recursive foreign 1.12.3 silent-rules subdir-objects])
 AM_MAINTAINER_MODE([enable])
 
+dnl must come before LT_INIT, which AC_REQUIREs AC_PROG_CC
+PAC_PROG_CC
+
 AM_PROG_AR
 
 LT_INIT([])
@@ -425,8 +428,6 @@ case $ARCH in
     ;;
 esac
 
-PAC_PROG_CC
-
 dnl AC_PROG_{CXX,F77,FC} must come early in configure.ac in order to control
 dnl compiler search order and avoid some esoteric autoconf macro expansion
 dnl errors
diff --git a/src/mpl/configure.ac b/src/mpl/configure.ac
index b147649..d048814 100644
--- a/src/mpl/configure.ac
+++ b/src/mpl/configure.ac
@@ -13,6 +13,9 @@ AC_CONFIG_AUX_DIR(confdb)
 AC_CONFIG_MACRO_DIR(confdb)
 AM_INIT_AUTOMAKE([-Wall -Werror foreign 1.12.3])
 
+dnl must come before LT_INIT, which AC_REQUIREs AC_PROG_CC
+PAC_PROG_CC
+
 AM_PROG_AR
 
 LT_PREREQ([2.2.6])
@@ -35,7 +38,6 @@ AX_PREFIX_CONFIG_H([include/mplconfig.h],[MPL])
 # Non-verbose make
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 
-PAC_PROG_CC
 AC_C_CONST
 AC_C_RESTRICT
 
diff --git a/src/pm/hydra/configure.ac b/src/pm/hydra/configure.ac
index 1398dcc..892363f 100644
--- a/src/pm/hydra/configure.ac
+++ b/src/pm/hydra/configure.ac
@@ -14,7 +14,15 @@ AC_CONFIG_MACRO_DIR(confdb)
 # bizarre expansion ordering warnings
 AC_CANONICAL_TARGET
 AC_ARG_PROGRAM
+
+dnl must come before LT_INIT, which AC_REQUIREs AC_PROG_CC
+dnl must also come before AC_USE_SYSTEM_EXTENSIONS
+PAC_PROG_CC
+
+# also needed by hwloc in embedded mode, must also come early for expansion
+# ordering reasons
 AC_USE_SYSTEM_EXTENSIONS
+
 # Define -D_DARWIN_C_SOURCE on OS/X to ensure that hwloc will build even if we
 # are building under MPICH with --enable-strict that defined _POSIX_C_SOURCE.
 # Some standard Darwin headers don't build correctly under a strict posix
@@ -36,7 +44,6 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 # Reset link flags
 PAC_RESET_LINK_FLAGS()
 
-PAC_PROG_CC
 AM_PROG_CC_C_O
 
 PAC_ARG_STRICT

http://git.mpich.org/mpich.git/commitdiff/9309120a2da4ba8da826437589490e1b7a538259

commit 9309120a2da4ba8da826437589490e1b7a538259
Author: Dave Goodell <goodell at mcs.anl.gov>
Date:   Tue Apr 23 13:04:41 2013 -0500

    tt#1817: ensure dependencies for PAC_PROG_CC
    
    `PAC_PROG_CC` should always come before `AC_PROG_CC` if the former is
    used anywhere in a configure script.  Otherwise one of the many (often
    standard) macros which `AC_REQUIRE([AC_PROG_CC])` might inadvertently
    bypass the user's desired logic.  The `AC_BEFORE` call here will cause
    an autogen-time warning to be emitted if the order is accidentally
    interchanged.
    
    Reviewed-by: balaji

diff --git a/confdb/aclocal_cc.m4 b/confdb/aclocal_cc.m4
index 07b5548..08439e4 100644
--- a/confdb/aclocal_cc.m4
+++ b/confdb/aclocal_cc.m4
@@ -3,6 +3,13 @@ ifdef([AC_PROG_CC_GNU],,[AC_DEFUN([AC_PROG_CC_GNU],)])
 
 dnl PAC_PROG_CC - reprioritize the C compiler search order
 AC_DEFUN([PAC_PROG_CC],[
+        dnl Many standard autoconf/automake/libtool macros, such as LT_INIT,
+        dnl perform an AC_REQUIRE([AC_PROG_CC]).  If this macro (PAC_PROG_CC)
+        dnl comes after LT_INIT (or similar) then the default compiler search
+        dnl path will be used instead.  This AC_BEFORE macro ensures that a
+        dnl warning will be emitted at autoconf-time (autogen.sh-time) to help
+        dnl developers notice this case.
+        AC_BEFORE([$0],[AC_PROG_CC])
 	PAC_PUSH_FLAG([CFLAGS])
 	AC_PROG_CC([icc pgcc xlc xlC pathcc cc gcc])
 	PAC_POP_FLAG([CFLAGS])

-----------------------------------------------------------------------

Summary of changes:
 confdb/aclocal_cc.m4       |    7 ++++++
 configure.ac               |   52 +++++++++++++++++++++++++++-----------------
 src/mpi/romio/configure.ac |    5 ++-
 src/mpl/configure.ac       |    4 ++-
 src/pm/hydra/configure.ac  |    9 ++++++-
 5 files changed, 53 insertions(+), 24 deletions(-)


hooks/post-receive
-- 
MPICH primary repository


More information about the commits mailing list