Issue compiling on snow leopard

David Colignon David.Colignon at ulg.ac.be
Fri Sep 18 04:21:51 CDT 2009


Hi,

I already have had the same kind of problem and here is the answer I got from Barry Smith :


    This happens because the BuildSystem inherits the bad feature of autoconf that checks for functions
using the C compiler even when the C++ compiler will be used to actually compile the package.

Edit $PETSC_ARCH/include/petscconf.h and remove the lines


#ifndef PETSC_HAVE_ISINF
#define PETSC_HAVE_ISINF 1
#endif


#ifndef PETSC_HAVE_ISNAN
#define PETSC_HAVE_ISNAN 1
#endif

DO NOT rerun config/configure.py just do the make all again.

    Barry


-- 
David Colignon, Ph.D.
Collaborateur Logistique du F.R.S.-FNRS
CÉCI - Consortium des Équipements de Calcul Intensif
ACE - Applied & Computational Electromagnetics
Sart-Tilman B28
Université de Liège
4000 Liège - BELGIQUE
Tél: +32 (0)4 366 37 32
Fax: +32 (0)4 366 29 10
WWW:    http://hpc.montefiore.ulg.ac.be/
Agenda: http://www.google.com/calendar/embed?src=david.colignon%40gmail.com



Niall Moran wrote:
> Hi,
> 
> I am trying to compile petsc on snow leopard. I need to have complex 
> support and support for C++. I am using the gcc and g++ compilers that 
> come packaged with the developers tools
> 
> i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5646)
> Copyright (C) 2007 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> 
> and the gfortran compiler from http://hpc.sourceforge.net/. The 
> configuration file I am using is
> 
> #!/usr/bin/env python
> 
> configure_options = [
>   '--FFLAGS=-m64',
>   '--CFLAGS=-m64',
>   '--CXXFLAGS=-m64',
>   '--LDFLAGS=-L/usr/lib',
>   '--with-python=0',
>   '--with-shared=0',
>   '--with-dynamic=0',
>   '--with-mpi-dir=/Users/nmoran/local/openmpi',
>   '--with-clanguage=C++',
>   '--with-scalar-type=complex',
>   '--with-debugging=yes',
>   '--with-gcov=0'
>   ]
> 
> if __name__ == '__main__':
>   import sys,os
>   sys.path.insert(0,os.path.abspath('config'))
>   import configure
>   configure.petsc_configure(configure_options)
> 
> 
> I am getting errors that the macros isinf and isnan cannot be found in 
> the scope for various files. The first one listed is 
> src/sys/ftn-custom/zutils.c on the lines
> 
>  return (PetscTruth) PetscIsInfOrNanScalar(*v);
> and
>  return (PetscTruth) PetscIsInfOrNanReal(*v);
> 
> These macros are defined in /usr/include/architecture/i386/math.h. No 
> errors are found if scalar-type is real. It seems the #include<complex> 
> somehow undefines these macros. I have got petsc to compile by 
> redefining these macros at the top of each of the problem files but this 
> is not a very elegant solution.
> 
> Regards.
> 
> Niall.



More information about the petsc-users mailing list