[mvapich-discuss] Trouble building MVAPICH2-1.5 shared libraries with Pathscale compiler

Jonathan Perkins perkinjo at cse.ohio-state.edu
Wed Nov 24 18:54:38 EST 2010


Hello Adam, did you try mvapich2-1.5.1p1 or did you try an earlier
version?  If this is not working for you we will need to see what is
going wrong so that 1.6 won't suffer from this as well.  Happy
Thanksgiving to you as well.

On Wed, Nov 24, 2010 at 6:11 PM, Adam T. Moody <moody20 at llnl.gov> wrote:
> Hello all,
> I finally got around to trying out mvapich2-1.5.1 today.  I see in the
> changelog that this version has a bullet noting that "- Shared libraries can
> be generated with unknown compilers", so I was hopeful this might address
> the Pathscale issue noted in the email chain below.  However, I found that I
> still needed to apply the attached patch to get shared libraries to build
> with the Pathscale compiler.  Any hope of integrating this patch (or
> something better) into mvapich2-1.6?
>
> Happy Thanksgiving!
> -Adam
>
>
> Adam T. Moody wrote:
>
>> Hi Pavan,
>> Sounds good.  In my patch, I just copied the existing pattern in the
>> config file and applied it to cover the PathScale case.
>>
>> Looking at the diff on the link you sent, it looks like FC_SHL is set by
>> testing various options, but it's not clear to me that F90_SHL is set in a
>> similar way.  In fact, it still looks like there is a case statement based
>> on the compiler vendor (gnu vs absoft vs intel vs pgi).  So long as some
>> mechanism lets PathScale builds work, I'm happy.
>> -Adam
>>
>> Pavan Balaji wrote:
>>
>>
>>>
>>> Adam,
>>>
>>> It's probably not a good idea to check specifically for the pathscale
>>> compiler. Instead, doing a feature test on the compiler on what it accepts
>>> and what it doesn't might be better.
>>>
>>> We had encountered this bug recently, and it was fixed in r6604 in
>>> MPICH2: https://**trac.mcs.anl.gov/projects/mpich2/changeset/6604
>>>
>>> This patch should directly apply for MVAPICH2 as well.
>>>
>>> -- Pavan
>>>
>>> On 07/22/2010 07:21 PM, Adam T. Moody wrote:
>>>
>>>
>>>
>>>>
>>>> Hello MVAPICH team,
>>>> I've attached a patch to get MVAPICH2-1.5 to build shared libraries
>>>> using the Pathscale 3.2.99 compiler.  I patched 'configure', so you'll
>>>> probably have to port this to 'configure.in' or something else.  Also, I'd
>>>> recommend changing the configure warning for an "unknown" F90 shared library
>>>> compile command to a fatal error for users who want to build shared
>>>> libraries.  I haven't tested a run, but at least the MPI builds, and I can
>>>> apparently link to the resulting shared library via a simple MPI F90
>>>> program.  Here is the background:
>>>>
>>>> I'm trying to get a build of MVAPICH2-1.5 with shared libraries using
>>>> the Pathscale 3.2.99 compiler, but I get the following error during the
>>>> build.
>>>>
>>>> make[5]: Entering directory
>>>> `/tmp/dpkg-mkdeb.QmhTI32413/src/build-mvapich-long-path-hack-enabled-ofa-pathscale-debug/src/binding/f90'
>>>> CC              create_f90_int.c
>>>> CC              create_f90_real.c
>>>> CC              create_f90_complex.c
>>>> CC              typef90cmplxf.c
>>>> CC              typef90realf.c
>>>> CC              typef90intf.c
>>>> CC              create_f90_util.c
>>>> AR cr ../../../lib/libmpich.la create_f90_int.lo create_f90_real.lo
>>>> create_f90_complex.lo typef90cmplxf.lo typef90realf.lo typef90intf.lo
>>>> create_f90_util.lo
>>>> date > .libstamp1
>>>> make[5]: Leaving directory
>>>> `/tmp/dpkg-mkdeb.QmhTI32413/src/build-mvapich-long-path-hack-enabled-ofa-pathscale-debug/src/binding/f90'
>>>> make[5]: Entering directory
>>>> `/tmp/dpkg-mkdeb.QmhTI32413/src/build-mvapich-long-path-hack-enabled-ofa-pathscale-debug/src/binding/f90'
>>>> F90             mpi.f90
>>>> make[5]: *** [mpi.lo] Error 1
>>>>
>>>> When I cd into the build directory and run "make VERBOSE=1", I see the
>>>> following:
>>>>
>>>> zeus286<73>: make VERBOSE=1
>>>> make[1]: Entering directory
>>>> `/tmp/dpkg-mkdeb.QmhTI32413/src/build-mvapich-long-path-hack-enabled-ofa-pathscale-debug/src/binding/f90'
>>>> make[1]: `.libstamp1' is up to date.
>>>> make[1]: Leaving directory
>>>> `/tmp/dpkg-mkdeb.QmhTI32413/src/build-mvapich-long-path-hack-enabled-ofa-pathscale-debug/src/binding/f90'
>>>> make[1]: Entering directory
>>>> `/tmp/dpkg-mkdeb.QmhTI32413/src/build-mvapich-long-path-hack-enabled-ofa-pathscale-debug/src/binding/f90'
>>>> false -g -O0 -fno-second-underscore -g -O0 -I. -c mpi.f90 -o _smpi.o
>>>> mv -f _smpi.o mpi.lo
>>>> make[1]: *** [mpi.lo] Error 1
>>>> make[1]: Leaving directory
>>>> `/tmp/dpkg-mkdeb.QmhTI32413/src/build-mvapich-long-path-hack-enabled-ofa-pathscale-debug/src/binding/f90'
>>>> make: *** [all-redirect] Error 1
>>>>
>>>> Apparently, it's trying to use "false" as the name of the Fortran
>>>> compiler.  Looking at the Makefile in this directory, I see the F90_SHL
>>>> macro is set to "false" instead of something like "pathf90 -shared -fpic",
>>>> which is what I suspect it should be.  (In fact, if I hard code this in,
>>>> then the make works.)
>>>>
>>>> CC              = pathcc
>>>> CFLAGS          =  -g -O0 -g -O0 $(MPICH2_MAKE_CFLAGS)
>>>> C_COMPILE       = $(CC) $(DEFS) $(INCLUDES) $(CFLAGS) $(CPPFLAGS)
>>>> LIBTOOL         =
>>>> CC_SHL          = ${CC} -fpic
>>>> C_COMPILE_SHL   = $(CC_SHL) $(DEFS) $(INCLUDES) $(CFLAGS) $(CPPFLAGS)
>>>> F90              = pathf90
>>>> F90FLAGS        =  -g -O0 -fno-second-underscore -g -O0
>>>> F90_COMPILE     = $(F90) $(F90FLAGS) $(F90INCLUDES)
>>>> F90_SHL          = false
>>>> F90_COMPILE_SHL = $(F90_SHL) $(F90FLAGS) $(F90INCLUDES)
>>>>
>>>> Looking at the main configure file around line 13287, I see tests for
>>>> various compilers, but none specifically for Pathscale.  These tests
>>>> apparently look for strings in the verion output of the F90 compiler.  For
>>>> reference, here is what I get with "pathf90 --version":
>>>>
>>>> zeus286<94>: pathf90 --version
>>>> PathScale(TM) Compiler Suite: Version 3.2.99
>>>> Built on: 2009-08-21 13:23:57 -0500
>>>> Thread model: posix
>>>> GNU gcc version 4.2.0 (PathScale 3.2.99 driver)
>>>>
>>>> Copyright 2000, 2001 Silicon Graphics, Inc.  All Rights Reserved.
>>>> Copyright 2002, 2003, 2004, 2005, 2006 PathScale, Inc.  All Rights
>>>> Reserved.
>>>> Copyright 2006, 2007 QLogic Corporation.  All Rights Reserved.
>>>> Copyright 2007, 2008 PathScale LLC.  All Rights Reserved.
>>>> See complete copyright, patent and legal notices in the
>>>>
>>>> /usr/local/tools/pathscale-3.2.99/share/doc/pathscale-compilers-3.2.99/LEGAL.pdf
>>>> file.
>>>>
>>>> In order to support the Pathscale compiler for shared libraries, I
>>>> suppose a test should be added to look for "PathScale" and then set "F90_SHL
>>>> = $(F90) -fpic".  This is what the included patch does.  In addition, it may
>>>> be good to assume "F90_SHL = $(F90) -fpic" if the compiler is unknown or
>>>> otherwise throw a fatal error during the configure.  I'd be happy to help
>>>> test out a fix.
>>>> Thanks,
>>>> -Adam
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------------
>>>>
>>>> _______________________________________________
>>>> mvapich-discuss mailing list
>>>> mvapich-discuss at cse.ohio-state.edu
>>>> http://**mail.cse.ohio-state.edu/mailman/listinfo/mvapich-discuss
>>>>
>>>>
>>>
>>>
>>>
>>
>> _______________________________________________
>> mvapich-discuss mailing list
>> mvapich-discuss at cse.ohio-state.edu
>> http://*mail.cse.ohio-state.edu/mailman/listinfo/mvapich-discuss
>>
>>
>
>
> _______________________________________________
> mvapich-discuss mailing list
> mvapich-discuss at cse.ohio-state.edu
> http://mail.cse.ohio-state.edu/mailman/listinfo/mvapich-discuss
>
>



-- 
Jonathan Perkins
http://www.cse.ohio-state.edu/~perkinjo



More information about the mvapich-discuss mailing list