[petsc-dev] Configure problem on Titan

Barry Smith bsmith at mcs.anl.gov
Wed Mar 11 19:05:11 CDT 2015


   Satish,

    Please enhance 

  def checkFortranLinkingCxx(self):
    '''Check that Fortran can be linked against C++'''
    link = 0
    cinc, cfunc, ffunc = self.manglerFuncs[self.fortranMangling]
    cinc = 'extern "C" '+cinc+'\n'

    cxxCode = 'void foo(void){'+self.mangleFortranFunction('d1chk')+'();}'
    cxxobj  = os.path.join(self.tmpDir, 'cxxobj.o')
    self.pushLanguage('Cxx')
    if not self.checkCompile(cinc+cxxCode, None, cleanup = 0):

>>>  try again here with additional library.

      self.logPrint('Cannot compile Cxx function: '+cfunc, 3, 'compilers')
      raise RuntimeError('Fortran could not successfully link C++ objects')
    if not os.path.isfile(self.compilerObj):
      self.logPrint('Cannot locate object file: '+os.path.abspath(self.compilerObj), 3, 'compilers')
      raise RuntimeError('Fortran could not successfully link C++ objects')
    os.rename(self.compilerObj, cxxobj)
    self.popLanguage()

so that if the basic link fails it automatically tries again here after adding the -lstdc++ library.

   Thanks

    Barry

It is insane to expect users to know they have to add -lstdc++  themselves.



> On Mar 11, 2015, at 5:10 PM, Satish Balay <balay at mcs.anl.gov> wrote:
> 
> A more suitable way to specify -lstdc++ would be via option LIBS
> [this way  its used by clinker,cxxlinker,flinker - as required]
> 
> LIBS="-lstdc++"
> 
> Satish
> 
> On Wed, 11 Mar 2015, Eric Bavier wrote:
> 
>> It looks like you are building with the PGI compilers.  Try adding:
>> 
>> --CXX_LINKER_FLAGS="-Meh_frame -lstdc++"
>> 
>> to your petsc configure flags.
>> 
>> Hope that helps,
>> `~Eric Bavier, Scientific Libraries, Cray Inc.
>> ________________________________________
>> From: petsc-dev-bounces at mcs.anl.gov [petsc-dev-bounces at mcs.anl.gov] on behalf of Satish Balay [balay at mcs.anl.gov]
>> Sent: Wednesday, March 11, 2015 16:55
>> To: Mark Adams
>> Cc: For users of the development version of PETSc
>> Subject: Re: [petsc-dev] Configure problem on Titan
>> 
>>>>>>>>>>> 
>> Executing: ftn  -o /tmp/scratch/petsc-5_JlCR/config.compilers/conftest    -mp -fast  /tmp/scratch/petsc-5_JlCR/config.compilers/conftest.o /tmp/scratch/petsc-5_JlCR/config.compilers/cxxobj.o  /tmp/scratch/petsc-5_JlCR/config.compilers/confc.o  -ldl
>> Possible ERROR while running linker: exit code 512
>> stderr:
>> /tmp/scratch/petsc-5_JlCR/config.compilers/cxxobj.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
>> /tmp/scratch/petsc-5_JlCR/config.compilers/confc.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
>> /usr/bin/ld: link errors found, deleting executable `/tmp/scratch/petsc-5_JlCR/config.compilers/conftest'
>> <<<<<<
>> 
>> Perhaps the compilers are not setup correctly after the update?
>> 
>> If you don't need c++ - you can try building with --with-cxx=0 configure option..
>> 
>> satish
>> 
>> On Wed, 11 Mar 2015, Mark Adams wrote:
>> 
>>> I am getting this error on Titan.  They just had a big PM and it was
>>> recommended that we rebuild everything
>>> 
>> 
>> 
> 




More information about the petsc-dev mailing list