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

Adam T. Moody moody20 at llnl.gov
Thu Jul 22 21:15:16 EDT 2010


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



More information about the mvapich-discuss mailing list