[petsc-dev] PTScotch problem on Mac

Satish Balay balay at mcs.anl.gov
Tue Nov 23 11:29:11 CST 2021


The primary difference I can spot [as you say] is the older xcode you have. Eventhough it says the same version of flex - perhaps its buggy?

Apple clang version 11.0.3 (clang-1103.0.32.59)
vs
Apple clang version 12.0.0 (clang-1200.0.32.2)


> PATH=/PETSc3/cig/bin:/PETSc3/petsc/petsc-pylith/arch-pylith-debug/bin:/PETSc3/petsc/apple/bin:/Library/Frameworks/Python.framework/Versions/3.8/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/texbin:/opt/X11/bin:/usr/local/git/bin:/Library/Frameworks/Python.framework/Versions/3.8/bin:/opt/local/bin:/opt/local/sbin:/usr/X11/bin:/usr/local/texlive/2019/bin/x86_64-darwin:/usr/local/cuda/bin:/usr/local/gmt/bin:/usr/local/bin:/usr/X11/bin:/usr/local/texlive/2019/bin/x86_64-darwin:/usr/local/cuda/bin:/usr/local/gmt/bin

BTW: Can you try a build with the following and see if it makes a difference?

PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin ./configure PETSC_ARCH=arch-test --with-mpi-dir=/PETSc3/petsc/apple --download-c2html --download-ptscotch

Satish


On Tue, 23 Nov 2021, Matthew Knepley wrote:

> Here it is.
> 
>   Matt
> 
> On Tue, Nov 23, 2021 at 11:44 AM Satish Balay <balay at mcs.anl.gov> wrote:
> 
> > On Tue, 23 Nov 2021, Matthew Knepley wrote:
> >
> > > On Tue, Nov 23, 2021 at 11:28 AM Satish Balay <balay at mcs.anl.gov> wrote:
> > >
> > > > Well we don't have this issue on our (macos) CI boxes where both c2html
> > > > and scotch build and run daily [in CI]
> > > >
> > > > what 'flex' are you using? And why does it behave differently on your
> > box?
> > > >
> > >
> > > main *$:/PETSc3/petsc/petsc-dev$ which flex
> > > /usr/bin/flex
> > > main *$:/PETSc3/petsc/petsc-dev$ flex --version
> > > flex 2.5.35 Apple(flex-32)
> > >
> > >
> > > > And what errors do you get?
> > > >
> > >
> > > Without the extra input define in PTScotch.py, I get the yylval symbol
> > > undefined and the lexer symbol. When I give
> > > that define as input, only the lexer symbol is undefined.
> >
> > BTW: Can you send the log?
> >
> > Satish
> >
> > >
> > >
> > > > Perhaps CI is using older xcode (command line tools) - and you are
> > using
> > > > newer? Or something else?
> > > >
> > >
> > > Probably the other way around. I am on Catalina 10.15.6
> > >
> > >    Matt
> > >
> > >
> > > > Barry - do you have this issue on your machine?
> > > >
> > > > balay at ypro ~ % which flex
> > > > /usr/bin/flex
> > > > balay at ypro ~ % /usr/bin/flex --version
> > > > flex 2.5.35 Apple(flex-32)
> > > > balay at ypro petsc % clang -v
> > > > Apple clang version 12.0.0 (clang-1200.0.32.2)
> > > > Target: x86_64-apple-darwin19.6.0
> > > > Thread model: posix
> > > > InstalledDir: /Library/Developer/CommandLineTools/usr/bin
> > > > balay at ypro ~ % balay at ypro petsc % ./configure
> > > > --with-mpi-dir=$HOME/mpich-3.4.2 --download-c2html --download-ptscotch
> > > >
> > > > <log attached>
> > > >
> > > >
> > > > Satish
> > > >
> > > > On Tue, 23 Nov 2021, Matthew Knepley wrote:
> > > >
> > > > > This is the same flex problem as I had for c2html, but I was more
> > > > > determined tracking it down this time. The first problem is that we
> > were
> > > > > not renaming in the parser,
> > > > >
> > > > > main *$:/PETSc3/petsc/petsc-dev$ git diff
> > > > > diff --git a/config/BuildSystem/config/packages/PTScotch.py
> > > > > b/config/BuildSystem/config/packages/PTScotch.py
> > > > > index d1c277b6e9f..e046804c17f 100644
> > > > > --- a/config/BuildSystem/config/packages/PTScotch.py
> > > > > +++ b/config/BuildSystem/config/packages/PTScotch.py
> > > > > @@ -70,7 +70,7 @@ class Configure(config.package.Package):
> > > > >      if self.libraries.add('-lrt','timer_create'): ldflags += ' -lrt'
> > > > >      self.cflags = self.cflags + ' -DCOMMON_RANDOM_FIXED_SEED'
> > > > >      # do not use -DSCOTCH_PTHREAD because requires MPI built for
> > > > threads.
> > > > > -    self.cflags = self.cflags + ' -DSCOTCH_RENAME
> > > > > -Drestrict="'+self.compilers.cRestrict+'"'
> > > > > +    self.cflags = self.cflags + ' -DSCOTCH_RENAME
> > -DSCOTCH_RENAME_PARSER
> > > > > -Drestrict="'+self.compilers.cRestrict+'"'
> > > > >      # this is needed on the Mac, because common2.c includes common.h
> > > > which
> > > > > DOES NOT include mpi.h because
> > > > >      # SCOTCH_PTSCOTCH is NOT defined above Mac does not know what
> > > > > clock_gettime() is!
> > > > >      if self.setCompilers.isDarwin(self.log):
> > > > >
> > > > > Second, they were not treating this case completely correctly:
> > > > >
> > > > >
> > > >
> > (93454e8...):/PETSc3/petsc/petsc-dev/arch-master-debug/externalpackages/git.ptscotch/src/libscotch$
> > > > > git diff HEAD~1
> > > > > diff --git a/src/libscotch/parser_yy.h b/src/libscotch/parser_yy.h
> > > > > index 931315d..95b8160 100644
> > > > > --- a/src/libscotch/parser_yy.h
> > > > > +++ b/src/libscotch/parser_yy.h
> > > > > @@ -62,6 +62,9 @@
> > > > >
> > > > >  #if ((defined SCOTCH_RENAME_PARSER) || (defined yylex)) /* If prefix
> > > > > renaming    */
> > > > >  #define scotchyyparse               stratParserParse2 /* Parser
> > function
> > > > > name    */
> > > > > +#if !defined(yylex)
> > > > > +#define yylex                       scotchyylex
> > > > > +#endif
> > > > >  #ifndef yylval
> > > > >  #define yylval                      SCOTCH_NAME_MACRO3 (scotchyy,
> > > > > SCOTCH_NAME_SUFFIXC, lval) /* It should be Yacc/Bison's job to
> > redefine
> > > > it!
> > > > >  */
> > > > >  #endif /* yylval              */
> > > > >
> > > > > How should we go about getting this fix in? Do you need to have our
> > own
> > > > > branch of PTScotch?
> > > > >
> > > > >   Thanks,
> > > > >
> > > > >      Matt
> > > > >
> > > > >
> > > >
> > >
> > >
> > >
> >
> >
> 
> 



More information about the petsc-dev mailing list