[petsc-users] Cannot find a C preprocessor OSX

Satish Balay balay at mcs.anl.gov
Sat Mar 19 11:29:03 CDT 2016


This code is a bit convoluted..

There is CPP, CPPFLAGS, CXXCPP, CXXCPPFLAGS. But then no FPP or FPPFLAGS..

And then base.py has: [which is wrong for 'Cxx', 'FC'?]

  def getPreprocessorFlagsName(self, language):
    if language in ['C', 'Cxx', 'FC']:
      flagsArg = 'CPPFLAGS'
    elif language == 'CUDA':
      flagsArg = 'CUDAPPFLAGS'
    else:
      raise RuntimeError('Unknown language: '+language)
    return flagsArg

And config/compile/FC.py has [which reuses CPP,CPPFLAGS for FC]:

class Preprocessor(config.compile.C.Preprocessor):
  '''The Fortran preprocessor, which now is just the C preprocessor'''
  def __init__(self, argDB):
    config.compile.C.Preprocessor.__init__(self, argDB)

Matt - should we have FPP,FPPFLAGS supported here?

Perhaps using CPPFLAGS with FC is a bug? So we should atleast do:

diff --git a/config/BuildSystem/config/compile/FC.py b/config/BuildSystem/config/compile/FC.py
index 3d0bf74..7bae24d 100644
--- a/config/BuildSystem/config/compile/FC.py
+++ b/config/BuildSystem/config/compile/FC.py
@@ -13,6 +13,7 @@ class Preprocessor(config.compile.C.Preprocessor):
     config.compile.C.Preprocessor.__init__(self, argDB)
     self.language        = 'FC'
     self.targetExtension = '.F'
+    self.flagsName       = ''
     self.includeDirectories = sets.Set()
     return
 
And then [I'm not sure where this gets used..]

$ git diff config/BuildSystem/config/base.py |cat
diff --git a/config/BuildSystem/config/base.py b/config/BuildSystem/config/base.py
index b18a173..8b1129d 100644
--- a/config/BuildSystem/config/base.py
+++ b/config/BuildSystem/config/base.py
@@ -454,8 +454,12 @@ class Configure(script.Script):
 
   # Should be static
   def getPreprocessorFlagsName(self, language):
-    if language in ['C', 'Cxx', 'FC']:
+    if language == 'C':
       flagsArg = 'CPPFLAGS'
+    elif language == 'Cxx':
+      flagsArg = 'CXXCPPFLAGS'
+    elif language == 'FC':
+      flagsArg = ''
     elif language == 'CUDA':
       flagsArg = 'CUDAPPFLAGS'
     else:


Satish

On Sat, 19 Mar 2016, Denis Davydov wrote:

> Hi Satish,
> 
> I think you have a bug in you config system as "CPPFLAGS=-Qunused-arguments" propagate to fortran compiler even when I try to explicitly specify "FPPFLAGS=" to nothing :
> 
> TEST checkFortranCompiler from config.setCompilers(/private/var/folders/5k/sqpp24tx3ylds4fgm13pfht00000gn/T/davydden/spack-stage/spack-stage-jNBTET/petsc-3.6.3/config/BuildSystem/config/setCompilers.py:919)
> TESTING: checkFortranCompiler from config.setCompilers(/private/var/folders/5k/sqpp24tx3ylds4fgm13pfht00000gn/T/davydden/spack-stage/spack-stage-jNBTET/petsc-3.6.3/config/BuildSystem/config/setCompilers.py:919)
>   Locate a functional Fortran compiler
> Checking for program /Users/davydden/spack/opt/spack/darwin-x86_64/clang-7.0.2-apple/openmpi-1.10.2-37xieeupgsteaq6btru6wmhxfi44xqtn/bin/mpif90...found
>                 Defined make macro "FC" to "/Users/davydden/spack/opt/spack/darwin-x86_64/clang-7.0.2-apple/openmpi-1.10.2-37xieeupgsteaq6btru6wmhxfi44xqtn/bin/mpif90"
>                 Pushing language FC
> Executing: /Users/davydden/spack/opt/spack/darwin-x86_64/clang-7.0.2-apple/openmpi-1.10.2-37xieeupgsteaq6btru6wmhxfi44xqtn/bin/mpif90 -c -o /var/folders/5k/sqpp24tx3ylds4fgm13pfht00000gn/T/petsc-zwyqnZ/config.setCompilers/conftest.o -I/var/folders/5k/sqpp24tx3ylds4fgm13pfht00000gn/T/petsc-zwyqnZ/config.setCompilers  -Qunused-arguments /var/folders/5k/sqpp24tx3ylds4fgm13pfht00000gn/T/petsc-zwyqnZ/config.setCompilers/conftest.F 
> Possible ERROR while running compiler: exit code 256
> stderr:
> gfortran: error: unrecognized command line option '-Qunused-arguments’
> 
> Kind regards,
> Denis 
> 
> > On 18 Mar 2016, at 19:13, Satish Balay <balay at mcs.anl.gov> wrote:
> > 
> > Or you can workarround by using additional PETSc configure option:
> > 
> > CPPFLAGS=-Qunused-arguments
> > [or CFLAGS?]
> > 
> > Satish
> > 
> > 
> > On Fri, 18 Mar 2016, Satish Balay wrote:
> > 
> >> your mpicc is barfing stuff on stderr - thus confusing petsc configure.
> >> 
> >> I don't see this issue with the old openmpi I have access to..
> >> 
> >> What do you have for:
> >> 
> >> /Users/davydden/spack/opt/spack/darwin-x86_64/clang-7.0.2-apple/openmpi-1.10.2-37xieeupgsteaq6btru6wmhxfi44xqtn/bin/mpicc -show
> >> touch foo.c
> >> /Users/davydden/spack/opt/spack/darwin-x86_64/clang-7.0.2-apple/openmpi-1.10.2-37xieeupgsteaq6btru6wmhxfi44xqtn/bin/mpicc -c foo.c -show
> >> 
> >> I'm not sure what to suggest.. Perhaps you can use --download-mpich
> >> [or --download-openmpi] - but then I see you are building all these
> >> packages using spack - so perhaps you should check with 'spack' folk..
> >> 
> >> Satish
> >> 
> >> ---------
> >> 
> >> Executing: /Users/davydden/spack/opt/spack/darwin-x86_64/clang-7.0.2-apple/openmpi-1.10.2-37xieeupgsteaq6btru6wmhxfi44xqtn/bin/mpicc -c -o /var/folders/5k/sqpp24tx3ylds4fgm13pfht00000gn/T/petsc-8RPaEA/config.setCompilers/conftest.o -I/var/folders/5k/sqpp24tx3ylds4fgm13pfht00000gn/T/petsc-8RPaEA/config.setCompilers   /var/folders/5k/sqpp24tx3ylds4fgm13pfht00000gn/T/petsc-8RPaEA/config.setCompilers/conftest.c
> >> Possible ERROR while running compiler:
> >> stderr:
> >> clang: warning: argument unused during compilation: '-L/Users/davydden/spack/opt/spack/darwin-x86_64/clang-7.0.2-apple/boost-1.60.0-eo7nn3v27nxa7lxqv5tttjzikshwt56i/lib'
> >> clang: warning: argument unused during compilation: '-L/Users/davydden/spack/opt/spack/darwin-x86_64/clang-7.0.2-apple/bzip2-1.0.6-leelnsg3humpngfeofkrdpgtsofrm5ya/lib'
> >> clang: warning: argument unused during compilation: '-L/Users/davydden/spack/opt/spack/darwin-x86_64/clang-7.0.2-apple/openmpi-1.10.2-37xieeupgsteaq6btru6wmhxfi44xqtn/lib'
> >> clang: warning: argument unused during compilation: '-L/Users/davydden/spack/opt/spack/darwin-x86_64/clang-7.0.2-apple/hwloc-1.11.2-pxsmp4nhfdjc3jb7odj5lhppu7wqna5b/lib'
> >> clang: warning: argument unused during compilation: '-L/Users/davydden/spack/opt/spack/darwin-x86_64/clang-7.0.2-apple/libpciaccess-0.13.4-erc6tr3ghndi5ed3gbj6wtvw6zl4vobf/lib'
> >> clang: warning: argument unused during compilation: '-L/Users/davydden/spack/opt/spack/darwin-x86_64/clang-7.0.2-apple/zlib-1.2.8-cyvcqvrzlgurne424y55hxvfucvz2354/lib'
> >> clang: warning: argument unused during compilation: '-L/Users/davydden/spack/opt/spack/darwin-x86_64/clang-7.0.2-apple/hdf5-1.8.16-diujq2w7ew4qviquh67b3lkcqsxtf77y/lib'
> >> clang: warning: argument unused during compilation: '-L/Users/davydden/spack/opt/spack/darwin-x86_64/clang-7.0.2-apple/hypre-2.10.1-4kql32qmjpp7ict2qczkyyv6a4mbrgbl/lib'
> >> clang: warning: argument unused during compilation: '-L/Users/davydden/spack/opt/spack/darwin-x86_64/clang-7.0.2-apple/openblas-0.2.16-qplsxnxlbaqnz2iltdo7fdhlayvuaxel/lib'
> >> clang: warning: argument unused during compilation: '-L/Users/davydden/spack/opt/spack/darwin-x86_64/clang-7.0.2-apple/metis-5.1.0-i5y5b6r5ca4f77u5tketagpkn6joxasp/lib'
> >> clang: warning: argument unused during compilation: '-L/Users/davydden/spack/opt/spack/darwin-x86_64/clang-7.0.2-apple/ncurses-6.0-sabhdwxbdbbapfo6wodglfmyo6u3c3hj/lib'
> >> clang: warning: argument unused during compilation: '-L/Users/davydden/spack/opt/spack/darwin-x86_64/clang-7.0.2-apple/openssl-1.0.2g-answvmhu3lodpmgulgzryygkkimmsn34/lib'
> >> clang: warning: argument unused during compilation: '-L/Users/davydden/spack/opt/spack/darwin-x86_64/clang-7.0.2-apple/parmetis-4.0.3-auubrjcwhqmqnpoqjwgwgz4bcjnxzunx/lib'
> >> 
> >> On Fri, 18 Mar 2016, Denis Davydov wrote:
> >> 
> >>> Dear all, 
> >>> 
> >>> Although I saw this issue on the mailing list, that was related to broken compilers, i don’t think it’s the case here as `mpicc -E` seems to be ok.
> >>> Log is attached.
> >>> 
> >>> Kind regards,
> >>> Denis 
> >>> 
> >>> 
> >> 
> 
> 


More information about the petsc-users mailing list