Josh, Paul, the problem with old PGI compilers comes from the preprocessor (!)
with pgi 12.10 : oshmem/shmem/fortran/start_pes_f.c SHMEM_GENERATE_WEAK_BINDINGS(START_PES, start_pes) gets expanded as #pragma weak START_PES = PSTART_PES SHMEM_GENERATE_WEAK_PRAGMA ( weak start_pes_ = pstart_pes_ ) whereas with pgi 14.7, it gets expanded as #pragma weak START_PES = PSTART_PES #pragma weak start_pes_ = pstart_pes_ #pragma weak start_pes__ = pstart_pes__ from oshmem/shmem/fortran/profile/pbindings.h : #define SHMEM_GENERATE_WEAK_PRAGMA(x) _Pragma(#x) #define SHMEM_GENERATE_WEAK_BINDINGS(UPPER_NAME, lower_name) \ SHMEM_GENERATE_WEAK_PRAGMA(weak UPPER_NAME = P ## UPPER_NAME) \ SHMEM_GENERATE_WEAK_PRAGMA(weak lower_name ## _ = p ## lower_name ## _) \ SHMEM_GENERATE_WEAK_PRAGMA(weak lower_name ## __ = p ## lower_name ## __) a workaround is to manually expand the SHMEM_GENERATE_WEAK_BINDINGS macro and replace SHMEM_GENERATE_WEAK_BINDINGS(START_PES, start_pes) with SHMEM_GENERATE_WEAK_PRAGMA(weak START_PES = PSTART_PES) SHMEM_GENERATE_WEAK_PRAGMA(weak start_pes_ = pstart_pes_) SHMEM_GENERATE_WEAK_PRAGMA(weak start_pes__ = pstart_pes__) /* i was unable to get something that works by simply replacing the definition of the SHMEM_GENERATE_WEAK_BINDINGS macro */ of course, this would have to be repeated in all the source files ... Cheers, Gilles On 2014/08/15 3:44, Paul Hargrove wrote: > Josh, > > The specific compilers that caused the most problems are the older PGI > compilers (any before 13.x). > In this case the user has the option to update their compiler to 13.10 or > newer. > > There are also issues with IBM's xlf. > For the IBM compiler I have never found a version that builds/links the MPI > f08 bindings, and now also find no version that can link the OSHMEM fortran > bindings. > > -Paul > > -Paul > > > On Thu, Aug 14, 2014 at 11:30 AM, Joshua Ladd <jladd.m...@gmail.com> wrote: > >> We will update the README accordingly. Thank you, Paul. >> >> Josh >> >> >> On Thu, Aug 14, 2014 at 10:00 AM, Jeff Squyres (jsquyres) < >> jsquy...@cisco.com> wrote: >> >>> Good points. >>> >>> Mellanox -- can you update per Paul's suggestions? >>> >>> >>> On Aug 13, 2014, at 8:26 PM, Paul Hargrove <phhargr...@lbl.gov> wrote: >>> >>>> The following is NOT a bug report. >>>> This is just an observation that may deserve some text in the README. >>>> >>>> I've reported issues in the past with some Fortran compilers (mostly >>> older XLC and PGI) which either cannot build the "use mpi_f08" module, or >>> cannot correctly link to it (and sometimes this fails only if configured >>> with --enable-debug). >>>> Testing the OSHMEM Fortran bindings (enabled by default on Linux) I >>> have found several compilers which fail to link the examples >>> (hello_oshmemfh and ring_oshmemfh). I reported one specific instance (with >>> xlc-11/xlf-13) back in February: >>> http://www.open-mpi.org/community/lists/devel/2014/02/14057.php >>>> So far I have these failures only on platforms where the Fortran >>> compiler is *known* to be broken for the MPI f90 and/or f08 bindings. >>> Specifically, all the failing platforms are ones on which either: >>>> + Configure determines (without my help) that FC cannot build the F90 >>> and/or F08 modules. >>>> OR >>>> + I must pass --enable-mpi-fortran=usempi or --enable-mpi-fortran=mpifh >>> for cases configure cannot detect. >>>> So, I do *not* believe there is anything wrong with the OSHMEM code, >>> which is why I started this post with "The following is NOT a bug report". >>> However, I have two recommendations to make: >>>> 1) Documentation >>>> >>>> The README says just: >>>> >>>> --disable-oshmem-fortran >>>> Disable building only the Fortran OSHMEM bindings. >>>> >>>> So, I recommend adding a sentence there referencing the "Compiler >>> Notes" section of the README which has details on some known bad Fortran >>> compilers. >>>> 2) Configure: >>>> >>>> As I noted above, at least some of the failures are on platforms where >>> configure has determined it cannot build the f08 MPI bindings. So, maybe >>> there is something that could be done at configure time to disqualify some >>> Fortran compilers from building the OSHMEM fotran bindings, too. >>>> -Paul >>>> >>>> -- >>>> Paul H. Hargrove phhargr...@lbl.gov >>>> Future Technologies Group >>>> Computer and Data Sciences Department Tel: +1-510-495-2352 >>>> Lawrence Berkeley National Laboratory Fax: +1-510-486-6900 >>>> _______________________________________________ >>>> devel mailing list >>>> de...@open-mpi.org >>>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >>>> Link to this post: >>> http://www.open-mpi.org/community/lists/devel/2014/08/15643.php >>> >>> >>> -- >>> Jeff Squyres >>> jsquy...@cisco.com >>> For corporate legal information go to: >>> http://www.cisco.com/web/about/doing_business/legal/cri/ >>> >>> _______________________________________________ >>> devel mailing list >>> de...@open-mpi.org >>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >>> Link to this post: >>> http://www.open-mpi.org/community/lists/devel/2014/08/15650.php >>> >> >> _______________________________________________ >> devel mailing list >> de...@open-mpi.org >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >> Link to this post: >> http://www.open-mpi.org/community/lists/devel/2014/08/15653.php >> > > > > > _______________________________________________ > devel mailing list > de...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel > Link to this post: > http://www.open-mpi.org/community/lists/devel/2014/08/15654.php