From 985154eee6daf07e8fd5bcf4a76d2bc975aac513 Mon Sep 17 00:00:00 2001 From: Gilles Gouaillardet Date: Tue, 15 Dec 2015 09:23:27 +0900 Subject: [PATCH] configury: revamp the fortran_check_use_only test split the test into three source files in order to avoid a false positive when using old XCode version and gcc 5 --- config/ompi_fortran_check_use_only.m4 | 41 ++++++++++++++++++--------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/config/ompi_fortran_check_use_only.m4 b/config/ompi_fortran_check_use_only.m4 index 3a9d419b36..3028490756 100644 --- a/config/ompi_fortran_check_use_only.m4 +++ b/config/ompi_fortran_check_use_only.m4 @@ -11,6 +11,8 @@ dnl University of Stuttgart. All rights reserved. dnl Copyright (c) 2004-2005 The Regents of the University of California. dnl All rights reserved. dnl Copyright (c) 2010-2015 Cisco Systems, Inc. All rights reserved. +dnl Copyright (c) 2015 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. dnl $COPYRIGHT$ dnl dnl Additional copyrights may follow @@ -32,30 +34,41 @@ dnl [action if not supported]) dnl ---------------------------------------------------- AC_DEFUN([OMPI_FORTRAN_CHECK_USE_ONLY],[ AS_VAR_PUSHDEF([use_only_var], [ompi_cv_fortran_use_only]) + OPAL_VAR_SCOPE_PUSH([FCFLAGS_save]) + FCFLAGS="-I. $FCFLAGS" AC_CACHE_CHECK([if Fortran compiler supports USE...ONLY], use_only_var, [AC_LANG_PUSH([Fortran]) - AC_COMPILE_IFELSE([AC_LANG_SOURCE([[MODULE aaa -INTEGER :: aaa_unique -COMMON/common_to_both/COMMON_NAME_TO_BOTH + cat > aaa.f90 << EOF +MODULE aaa +INTEGER :: CMON(1) +COMMON/CMMON/CMON +INTEGER :: global_aaa END MODULE aaa - +EOF + cat > bbb.f90 << EOF MODULE bbb -INTEGER :: bbb_unique -INTEGER, BIND(C, name="common_to_both_") :: COMMON_NAME_TO_BOTH +integer, bind(C, name="cmmon_") :: CMON +INTEGER :: global_bbb END MODULE bbb - -PROGRAM test_proc - USE :: aaa, ONLY: aaa_unique - USE :: bbb, ONLY: bbb_unique +EOF + OPAL_LOG_COMMAND([$FC $FCFLAGS -c aaa.f90], + [OPAL_LOG_COMMAND([$FC $FCFLAGS -c bbb.f90], + [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[PROGRAM test +USE aaa, ONLY : global_aaa +USE bbb, ONLY : global_bbb +implicit none END PROGRAM]])], - [AS_VAR_SET(use_only_var, yes)], - [AS_VAR_SET(use_only_var, no)]) - touch conftest_foo.mod - rm -rf *.mod 2>/dev/null + [AS_VAR_SET(use_only_var, yes)], + [AS_VAR_SET(use_only_var, no)])], + [AS_VAR_SET(use_only_var, no)])], + [AS_VAR_SET(use_only_var, no)]) + rm -rf aaa.f90 aaa.o bbb.f90 bbb.o *.mod 2>/dev/null AC_LANG_POP([Fortran]) ]) AS_VAR_IF(use_only_var, [yes], [$1], [$2]) + FCFLAGS=$FCFLAGS_save + OPAL_VAR_SCOPE_POP AS_VAR_POPDEF([use_only_var])dnl ])