From e5525ad5f8c2a906e893719349e600c8d34e29b5 Mon Sep 17 00:00:00 2001 From: Brian Barrett <brbarret@open-mpi.org> Date: Fri, 18 Nov 2005 20:55:38 +0000 Subject: [PATCH] fix for issue found by Dries Kimpe -- if a user specifies two identical options as part of the --with-wrapper-{*flags,libs} options to configure, we'll eat one of them, which can have unintended issues. For example, --with-wrapper-ldflags="-Wl,-rpath -Wl,pathA -Wl,-rpath -Wl,pathB" will result in us removing the second -Wl,-rpath, which will result in wrapper ldflags of -Wl,-rpath -Wl,pathA -Wl,pathB which doesn't really do what the user intended. We now always pass the user- specified flags completely unmodified, bypassing the OMPI_UNIQ routine This commit was SVN r8193. --- config/ompi_setup_wrappers.m4 | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/config/ompi_setup_wrappers.m4 b/config/ompi_setup_wrappers.m4 index 33a8e354e2..c910269bb4 100644 --- a/config/ompi_setup_wrappers.m4 +++ b/config/ompi_setup_wrappers.m4 @@ -18,6 +18,14 @@ dnl $HEADER$ dnl +# OMPI_SETUP_WRAPPER_INIT() +# ------------------------- +# Setup wrapper compiler configuration information - should be called +# before the bulk of the tests that can affect the wrapper compilers +# +# Note that we keep the user-specified flags seperately because we +# don't want them to go through OMPI_UNIQ because that has resulted in +# unexpected behavior for the user in the past. AC_DEFUN([OMPI_SETUP_WRAPPER_INIT],[ WRAPPER_EXTRA_CFLAGS= WRAPPER_EXTRA_CXXFLAGS= @@ -26,13 +34,20 @@ AC_DEFUN([OMPI_SETUP_WRAPPER_INIT],[ WRAPPER_EXTRA_LDFLAGS= WRAPPER_EXTRA_LIBS= + USER_WRAPPER_EXTRA_CFLAGS= + USER_WRAPPER_EXTRA_CXXFLAGS= + USER_WRAPPER_EXTRA_FFLAGS= + USER_WRAPPER_EXTRA_FCFLAGS= + USER_WRAPPER_EXTRA_LDFLAGS= + USER_WRAPPER_EXTRA_LIBS= + AC_ARG_WITH([wrapper-cflags], [AC_HELP_STRING([--with-wrapper-cflags], [Extra flags to add to CFLAGS when using mpicc])]) if test "$with_wrapper_cflags" = "yes" -o "$with_wrapper_cflags" = "no"; then AC_MSG_ERROR([--with-wrapper-cflags must have an argument. Aborting]) elif test ! -z "$with_wrapper_cflags" ; then - WRAPPER_EXTRA_CFLAGS="$with_wrapper_cflags" + USER_WRAPPER_EXTRA_CFLAGS="$with_wrapper_cflags" fi AC_ARG_WITH([wrapper-cxxflags], @@ -41,7 +56,7 @@ AC_DEFUN([OMPI_SETUP_WRAPPER_INIT],[ if test "$with_wrapper_cxxflags" = "yes" -o "$with_wrapper_cxxflags" = "no"; then AC_MSG_ERROR([--with-wrapper-cxxflags must have an argument. Aborting]) elif test ! -z "$with_wrapper_cxxflags" ; then - WRAPPER_EXTRA_CXXFLAGS="$with_wrapper_cxxflags" + USER_WRAPPER_EXTRA_CXXFLAGS="$with_wrapper_cxxflags" fi AC_ARG_WITH([wrapper-fflags], @@ -50,7 +65,7 @@ AC_DEFUN([OMPI_SETUP_WRAPPER_INIT],[ if test "$with_wrapper_fflags" = "yes" -o "$with_wrapper_fflags" = "no"; then AC_MSG_ERROR([--with-wrapper-fflags must have an argument. Aborting]) elif test ! -z "$with_wrapper_fflags" ; then - WRAPPER_EXTRA_FFLAGS="$with_wrapper_fflags" + USER_WRAPPER_EXTRA_FFLAGS="$with_wrapper_fflags" fi AC_ARG_WITH([wrapper-fcflags], @@ -59,7 +74,7 @@ AC_DEFUN([OMPI_SETUP_WRAPPER_INIT],[ if test "$with_wrapper_fcflags" = "yes" -o "$with_wrapper_fcflags" = "no"; then AC_MSG_ERROR([--with-wrapper-fcflags must have an argument. Aborting]) elif test ! -z "$with_wrapper_fcflags" ; then - WRAPPER_EXTRA_FCFLAGS="$with_wrapper_fcflags" + USER_WRAPPER_EXTRA_FCFLAGS="$with_wrapper_fcflags" fi AC_ARG_WITH([wrapper-ldflags], @@ -68,7 +83,7 @@ AC_DEFUN([OMPI_SETUP_WRAPPER_INIT],[ if test "$with_wrapper_ldflags" = "yes" -o "$with_wrapper_ldflags" = "no"; then AC_MSG_ERROR([--with-wrapper-ldflags must have an argument. Aborting]) elif test ! -z "$with_wrapper_ldflags" ; then - WRAPPER_EXTRA_LDFLAGS="$with_wrapper_ldflags" + USER_WRAPPER_EXTRA_LDFLAGS="$with_wrapper_ldflags" fi AC_ARG_WITH([wrapper-libs], @@ -77,7 +92,7 @@ AC_DEFUN([OMPI_SETUP_WRAPPER_INIT],[ if test "$with_wrapper_libs" = "yes" -o "$with_wrapper_libs" = "no"; then AC_MSG_ERROR([--with-wrapper-libs must have an argument. Aborting]) elif test ! -z "$with_wrapper_libs" ; then - WRAPPER_EXTRA_LIBS="$with_wrapper_libs" + USER_WRAPPER_EXTRA_LIBS="$with_wrapper_libs" fi ]) @@ -90,6 +105,7 @@ AC_DEFUN([OMPI_SETUP_WRAPPER_FINAL],[ # AC_MSG_CHECKING([for mpicc CFLAGS]) OMPI_UNIQ(WRAPPER_EXTRA_CFLAGS) + WRAPPER_EXTRA_CFLAGS="$WRAPPER_EXTRA_CFLAGS $USER_WRAPPER_EXTRA_CFLAGS" AC_SUBST(WRAPPER_EXTRA_CFLAGS) AC_DEFINE_UNQUOTED(WRAPPER_EXTRA_CFLAGS, "$WRAPPER_EXTRA_CFLAGS", [Additional CFLAGS to pass through the wrapper compilers]) @@ -100,6 +116,7 @@ AC_DEFUN([OMPI_SETUP_WRAPPER_FINAL],[ # AC_MSG_CHECKING([for mpiCC CXXFLAGS]) OMPI_UNIQ(WRAPPER_EXTRA_CXXFLAGS) + WRAPPER_EXTRA_CXXFLAGS="$WRAPPER_EXTRA_CXXFLAGS $USER_WRAPPER_EXTRA_CXXFLAGS" AC_SUBST(WRAPPER_EXTRA_CXXFLAGS) AC_DEFINE_UNQUOTED(WRAPPER_EXTRA_CXXFLAGS, "$WRAPPER_EXTRA_CXXFLAGS", [Additional CXXFLAGS to pass through the wrapper compilers]) @@ -110,6 +127,7 @@ AC_DEFUN([OMPI_SETUP_WRAPPER_FINAL],[ # AC_MSG_CHECKING([for mpif77/mpif90 FFLAGS]) OMPI_UNIQ(WRAPPER_EXTRA_FFLAGS) + WRAPPER_EXTRA_FFLAGS="$WRAPPER_EXTRA_FFLAGS $USER_WRAPPER_EXTRA_FFLAGS" AC_SUBST(WRAPPER_EXTRA_FFLAGS) AC_DEFINE_UNQUOTED(WRAPPER_EXTRA_FFLAGS, "$WRAPPER_EXTRA_FFLAGS", [Additional FFLAGS to pass through the wrapper compilers]) @@ -120,6 +138,7 @@ AC_DEFUN([OMPI_SETUP_WRAPPER_FINAL],[ # AC_MSG_CHECKING([for mpif77/mpif90 FCFLAGS]) OMPI_UNIQ(WRAPPER_EXTRA_FCFLAGS) + WRAPPER_EXTRA_FCFLAGS="$WRAPPER_EXTRA_FCFLAGS $USER_WRAPPER_EXTRA_FCFLAGS" AC_SUBST(WRAPPER_EXTRA_FCFLAGS) AC_DEFINE_UNQUOTED(WRAPPER_EXTRA_FCFLAGS, "$WRAPPER_EXTRA_FCFLAGS", [Additional FCFLAGS to pass through the wrapper compilers]) @@ -130,6 +149,7 @@ AC_DEFUN([OMPI_SETUP_WRAPPER_FINAL],[ # AC_MSG_CHECKING([for wrapper compiler LDFLAGS]) OMPI_UNIQ(WRAPPER_EXTRA_LDFLAGS) + WRAPPER_EXTRA_LDFLAGS="$WRAPPER_EXTRA_LDFLAGS $USER_WRAPPER_EXTRA_LDFLAGS" AC_SUBST(WRAPPER_EXTRA_LDFLAGS) AC_DEFINE_UNQUOTED(WRAPPER_EXTRA_LDFLAGS, "$WRAPPER_EXTRA_LDFLAGS", [Additional LDFLAGS to pass through the wrapper compilers]) @@ -139,6 +159,7 @@ AC_DEFUN([OMPI_SETUP_WRAPPER_FINAL],[ # WRAPPER_EXTRA_LIBS # AC_MSG_CHECKING([for wrapper compiler LIBS]) + WRAPPER_EXTRA_LIBS="$WRAPPER_EXTRA_LIBS $USER_WRAPPER_EXTRA_LIBS" AC_SUBST(WRAPPER_EXTRA_LIBS) AC_DEFINE_UNQUOTED(WRAPPER_EXTRA_LIBS, "$WRAPPER_EXTRA_LIBS", [Additional LIBS to pass through the wrapper compilers])