Re: [petsc-dev] PTScotch problem on Mac
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? And what errors do you get? Perhaps CI is using older xcode (command line tools) - and you are using newer? Or something else? Barry - do you have this issue on your machine? balay@ypro ~ % which flex /usr/bin/flex balay@ypro ~ % /usr/bin/flex --version flex 2.5.35 Apple(flex-32) balay@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@ypro ~ % balay@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
participants (1)
-
Satish Balay