Re: [petsc-dev] PTScotch problem on Mac
Ahh, it is the perl :-)
On Nov 23, 2021, at 2:05 PM, Satish Balay via petsc-dev <[email protected]> wrote:
On Tue, 23 Nov 2021, Matthew Knepley wrote:
On Tue, Nov 23, 2021 at 12:56 PM Matthew Knepley <[email protected]> wrote:
On Tue, Nov 23, 2021 at 12:29 PM Satish Balay <[email protected]> wrote:
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
Damn damn damn damn. Now I have to bisect the PATH to see how in the world that can make a difference.
Okay, the configure succeeds by taking out /opt/local/bin:/opt/local/sbin, but I cannot figure out why this would be the case?
If you can do 'strace --follow-forks' or equivalent on Mac - you might be able to see what gets used from /opt/local/bin/
Also you might be better off using brew instead of what you currently have.. [likely you don't need most of the binaries below. 'brew leaves' gives a nice way to keep track of whats really needed]
Or a brute force bisection by moving binaries out of (and back into) this location.
Satish
knepley/feature-plex-multiple-hybrid *$:/PETSc3/petsc/petsc-pylith$ ls /opt/local/sbin/ knepley/feature-plex-multiple-hybrid *$:/PETSc3/petsc/petsc-pylith$ ls /opt/local/bin/ a2p envsubst libnetcfg-5.12 perlivp-5.8 prove a2p-5.12 find2perl libnetcfg-5.8 perlthanks prove-5.12 a2p-5.8 find2perl-5.12 msgattrib perlthanks-5.12 prove-5.8 autoconf263 find2perl-5.8 msgcat perlthanks-5.8 psed
autoheader263 gettext msgcmp piconv psed-5.12 autom4te263 gettext.sh msgcomm piconv-5.12 psed-5.8 autopoint gettextize msgconv piconv-5.8 pstruct autoreconf263 ghc msgen pl2pm pstruct-5.12 autoscan263 ghc-6.10.4 msgexec pl2pm-5.12 pstruct-5.8 autoupdate263 ghc-pkg msgfilter pl2pm-5.8 ptar-5.12 c2ph ghc-pkg-6.10.4 msgfmt pod2html ptardiff-5.12 c2ph-5.12 ghci msggrep pod2html-5.12 recode-sr-latin c2ph-5.8 ghci-6.10.4 msginit pod2html-5.8 reset c_rehash gm4 msgmerge pod2latex runghc captoinfo gperf msgunfmt pod2latex-5.12 runhaskell clear h2ph msguniq pod2latex-5.8 s2p config_data-5.12 h2ph-5.12 ncurses5-config pod2man s2p-5.12 corelist-5.12 h2ph-5.8 ncursesw5-config pod2man-5.12 s2p-5.8 corelist-5.8 h2xs ngettext pod2man-5.8 shasum-5.12 cpan h2xs-5.12 openssl pod2text splain cpan-5.12 h2xs-5.8 perl pod2text-5.12 splain-5.12 cpan-5.8 haddock perl5 pod2text-5.8 splain-5.8 cpan2dist hasktags perl5.12 pod2usage tabs cpan2dist-5.12 help2man perl5.12.3 pod2usage-5.12 tic cpanp hp2ps perl5.8 pod2usage-5.8 toe cpanp-5.12 hpc perl5.8.9 podchecker tput cpanp-run-perl hsc2hs perlbug podchecker-5.12 tset cpanp-run-perl-5.12 iconv perlbug-5.12 podchecker-5.8 wget daemondo idn perlbug-5.8 podselect xgettext dprofpp ifnames263 perlcc-5.8 podselect-5.12 xmlwf dprofpp-5.12 infocmp perldoc podselect-5.8 xsubpp dprofpp-5.8 infotocap perldoc-5.12 port xsubpp-5.12 enc2xs instmodsh-5.12 perldoc-5.8 portf xsubpp-5.8 enc2xs-5.12 instmodsh-5.8 perlivp portindex enc2xs-5.8 libnetcfg perlivp-5.12 portmirror
Thanks,
Matt
Thanks,
Matt
Satish
On Tue, 23 Nov 2021, Matthew Knepley wrote:
Here it is.
Matt
On Tue, Nov 23, 2021 at 11:44 AM Satish Balay <[email protected]> wrote:
On Tue, 23 Nov 2021, Matthew Knepley wrote:
On Tue, Nov 23, 2021 at 11:28 AM Satish Balay <[email protected]> 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@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
-- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener
https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
participants (1)
-
Barry Smith