[petsc-dev] PTScotch problem on Mac

Barry Smith bsmith at petsc.dev
Tue Nov 23 11:08:15 CST 2021


$ flex --version
flex 2.6.4 Apple(flex-34)

I have no problem with c2html or ptscotch builds 

I even installed the brew flex and put it at the beginning of my path and both the c2html and ptscotch went builds went through fine.

We need configure.log



> On Nov 23, 2021, at 11:44 AM, Satish Balay via petsc-dev <petsc-dev 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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20211123/7157c4df/attachment.html>


More information about the petsc-dev mailing list