Re: [petsc-dev] PTScotch problem on Mac
perhaps "dtruss -f" ? https://stackoverflow.com/questions/1925978/equivalent-of-strace-feopen-comm... balay@ypro petsc % dtruss -f ./configure dtrace: system integrity protection is on, some features will not be available dtrace: failed to initialize dtrace: DTrace requires additional privileges Oh well.. Satish On Tue, 23 Nov 2021, Barry Smith wrote:
Hmm, I cannot figure out how to do that. Developer tools on Mac are embarrassing.
I think you are probably looking in the wrong place. The GUI based Xcode Instruments tools likely have this type of capability but it may not be accessible from the command line.
On Nov 23, 2021, at 3:02 PM, Matthew Knepley <[email protected]> wrote:
On Tue, Nov 23, 2021 at 2:05 PM Satish Balay <[email protected] <mailto:[email protected]>> wrote: On Tue, 23 Nov 2021, Matthew Knepley wrote:
On Tue, Nov 23, 2021 at 12:56 PM Matthew Knepley <[email protected] <mailto:[email protected]>> wrote:
On Tue, Nov 23, 2021 at 12:29 PM Satish Balay <[email protected] <mailto:[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/
Hmm, I cannot figure out how to do that. Developer tools on Mac are embarrassing.
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]
I do not use MacPorts. I edited my .profile years ago and I missed that when abandoning it.
Or a brute force bisection by moving binaries out of (and back into) this location.
That sounds like something for "grad student time"
Thanks,
Matt
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] <mailto:[email protected]>> wrote:
On Tue, 23 Nov 2021, Matthew Knepley wrote:
On Tue, Nov 23, 2021 at 11:28 AM Satish Balay <[email protected] <mailto:[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/ <https://www.cse.buffalo.edu/~knepley/> <http://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>>
-- 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)
-
Satish Balay