[petsc-dev] BuildSystem concerns

Satish Balay balay at mcs.anl.gov
Tue Mar 15 19:24:05 CDT 2011


On Tue, 15 Mar 2011, Barry Smith wrote:

> 
>   Stuff like this in BlasLapack.py 
> 
>  def getSharedFlag(self,cflags):
>     for flag in ['-PIC', '-fPIC', '-KPIC', '-qpic']:
>       if cflags.find(flag) >=0: return flag
>     return ''
> 
>   def getPrecisionFlag(self,cflags):
>     for flag in ['-m32', '-m64', '-xarch=v9','-q64']:
>       if cflags.find(flag) >=0: return flag
>     return ''
> 
>   def getWindowsNonOptFlags(self,cflags):
>     for flag in ['-MT','-MTd','-MD','-threads']:
>       if cflags.find(flag) >=0: return flag
>     return ''
> 
> 
> are of major concern. So someone adds a new "precision" flag in BuildSystem they have to know to go into BlasLapack.py and edit it?

Now there is another package that needs this stuff: tetgen.  Both
these packages need 'NOOPT'. [if we eliminate all options - then there
are compile breakages]

The above code developed adhoc - whenever there was breakage - we
hacked in a fix. But I'm not sure if there is a proper fix.

If we assume all optflags are in COPTFLAGS/FOPTFLAGS - then I guess
BuidSystem could do this automatically

instead of using:
 self.setCompilers.getCompilerFlags()
use a new function provided by buidsystem:
 self.setCompilers.getCompilerNOOPTFlags()

This one does the comparision between the current flags - and stripts
out the relavent C/F/CXX OPTFLAGS set by user [or the defaults set by
buildsystem]

If optflags creep in via some other configure option [thats users
problem]?

Satish




More information about the petsc-dev mailing list