In the case of PGI compilers prior to 13, a workaround is to configure with --disable-oshmem-profile
On 2014/08/18 16:21, Gilles Gouaillardet wrote: > 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 > > > > _______________________________________________ > 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/15661.php