[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