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

Adam T. Moody moody20 at llnl.gov
Wed Nov 24 19:12:26 EST 2010


Hi Jonathan,
I'm using mvapich2-1.5.1p1, the zipped tarball from:

    http://mvapich.cse.ohio-state.edu/download/mvapich2/mvapich2-1.5.1p1.tgz

It looks like the failure symptom is the same described in the very 
first email below.  Basically, without the patch, at some point the 
build attempts to compile a file using "false" as the compiler name.  I 
have a makefile which wraps the configure and make used to build 
mvapich.  In there, I set the following values:

    REG_CACHE := --disable-registration-cache
    PTMALLOC := no
    CC      := pathcc
    CXX     := pathCC
    F77     := pathf90
    F90     := pathf90
    CNAME              := pathscale
    MPICH2LIB_CFLAGS   := -g -O2
    MPICH2LIB_CXXFLAGS := -g -O2
    MPICH2LIB_FFLAGS   := -g -O2 -fno-second-underscore
    MPICH2LIB_F90FLAGS := -g -O2 -fno-second-underscore
    CONFIG_FLAGS       := --enable-fast=O2 --enable-g=dbg 
--enable-error-checking=runtime --enable-error-messages=all 
--enable-nmpi-as-mpi
    DEVICE_FLAGS := --with-device=ch3:psm

Then my makefile invokes the configure command, which looks like the 
following:

           ./configure \
             --prefix=$(PREFIXDIR) \
             --enable-sharedlibs=gcc \
             --enable-f77 --enable-f90 --enable-cxx \
             $(CONFIG_FLAGS) \
             --enable-debuginfo \
             --with-pmi=slurm --with-pm=no \
             $(DEVICE_FLAGS) \
             $(REG_CACHE) \
             --enable-romio --with-file-system=lustre+nfs+ufs \
             --disable-mpe --without-mpe

Followed by

    make VERBOSE=1

Without the patch, the build fails with the following error:

    make[5]: Entering directory 
`/tmp/dpkg-mkdeb.cbBxc16362/src/build-mvapich-long-path-hack-enabled-psm-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[5]: *** [mpi.lo] Error 1

-Adam


Jonathan Perkins wrote:

>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
>>
>>
>>    
>>
>
>
>
>  
>



More information about the mvapich-discuss mailing list