From: Christian Rössel Date: Sun, 20 Feb 2011 17:24:23 +0000 (+0100) Subject: Fix OpenMP flag detection for various Fortran compilers. X-Git-Tag: v2.68b~101 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ce791e5a957f3bb7787a804423482f9c708a698e;p=thirdparty%2Fautoconf.git Fix OpenMP flag detection for various Fortran compilers. * lib/autoconf/c.m4 (_AC_LANG_OPENMP(Fortran 77)): Use '!$' OpenMP-conditional compilation construct, to force compile failure with missing OpenMP flag. (AC_OPENMP): Add flags for Cray CCE and NEC SX compilers. * THANKS: Update. Signed-off-by: Ralf Wildenhues --- diff --git a/ChangeLog b/ChangeLog index 0bd0b784..52d4cac9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2011-02-20 Christian Rössel (tiny change) + Markus Geimer (tiny change) + + Fix OpenMP flag detection for various Fortran compilers. + * lib/autoconf/c.m4 (_AC_LANG_OPENMP(Fortran 77)): Use '!$' + OpenMP-conditional compilation construct, to force compile + failure with missing OpenMP flag. + (AC_OPENMP): Add flags for Cray CCE and NEC SX compilers. + * THANKS: Update. + 2011-02-18 Eric Blake docs: document fourth argument of AC_RUN_IFELSE better diff --git a/THANKS b/THANKS index a3ee752c..d3973275 100644 --- a/THANKS +++ b/THANKS @@ -257,6 +257,7 @@ Mark Hessling mark@rexx.org Mark Kettenis kettenis@gnu.org Markku Savela msa@msa.tte.vtt.fi Markus Oberhumer markus.oberhumer@jk.uni-linz.ac.at +Markus Geimer m.geimer@fz-juelich.de Martin Buchholz martin@xemacs.org Martin Costabel costabel@wanadoo.fr Martin Frydl martin@systinet.com diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4 index 871e1c9c..89e6b493 100644 --- a/lib/autoconf/c.m4 +++ b/lib/autoconf/c.m4 @@ -1957,7 +1957,14 @@ m4_copy([_AC_LANG_OPENMP(C)], [_AC_LANG_OPENMP(C++)]) # _AC_LANG_OPENMP(Fortran 77) # --------------------------- m4_define([_AC_LANG_OPENMP(Fortran 77)], -[AC_LANG_FUNC_LINK_TRY([omp_get_num_threads])]) +[ + program main + implicit none +!$ integer tid + tid = 42 + call omp_set_num_threads(2) + end +]) # _AC_LANG_OPENMP(Fortran) # ------------------------ @@ -1992,12 +1999,14 @@ AC_DEFUN([AC_OPENMP], dnl SGI C, PGI C -mp dnl Tru64 Compaq C -omp dnl IBM C (AIX, Linux) -qsmp=omp + dnl Cray CCE -homp + dnl NEC SX -Popenmp dnl If in this loop a compiler is passed an option that it doesn't dnl understand or that it misinterprets, the AC_LINK_IFELSE test dnl will fail (since we know that it failed without the option), dnl therefore the loop will continue searching for an option, and dnl no output file called 'penmp' or 'mp' is created. - for ac_option in -fopenmp -xopenmp -openmp -mp -omp -qsmp=omp; do + for ac_option in -fopenmp -xopenmp -openmp -mp -omp -qsmp=omp -homp -Popenmp; do ac_save_[]_AC_LANG_PREFIX[]FLAGS=$[]_AC_LANG_PREFIX[]FLAGS _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $ac_option" AC_LINK_IFELSE([_AC_LANG_OPENMP],