The issue is here in Scalapack.py

class Configure(config.package.Package):
  def __init__(self, framework):
    config.package.Package.__init__(self, framework)
    self.download         = 
['http://www.netlib.org/scalapack/scalapack-2.0.2.tgz',
                             
'http://ftp.mcs.anl.gov/pub/petsc/externalpackages/scalapack-2.0.2.tgz']
    self.includes         = []
    self.liblist          = [[],['libscalapack.a']]
                            ^^^^^^^^

we first check for scalapack in the "default system libraries" and then only 
check in libscalapack.a if it is not in the "default system libraries".

Cray has all kinds of crazy stuff like scalapack in the default system 
libraries and hence finds the symbol pssytrd before it ever checks in the 
location where we built it.  

Now the problem is even if we remove the []   from the [[],['libscalapack.a']] 
and thus explicitly list the downloaded library location when linking code the 
linker will find both libraries and we have no control over which one it 
actually uses so it could end up using the Cray one. 

If you really want to use the download one instead of the installed one you 
need to poke around the Cray documentation and figure out if you can remove the 
automatic linking of the Cray one. Perhaps turning off some module or something?

  Barry



> On Feb 25, 2015, at 1:58 PM, Stefano Zampini <[email protected]> 
> wrote:
> 
> I just configured on a Cray XC40 with downloading MUMPS and Scalapack , and 
> it seems that something is wrong  when creating petscvariables. SCALAPACK_LIB 
> is empty and -lscalapack does not appear in PETSC_EXTERNAL_LIB.
> Attached a configure.log
> 
> <configure.log>

Reply via email to