[petsc-dev] PTScotch problem on Mac

Barry Smith bsmith at petsc.dev
Tue Nov 23 14:02:08 CST 2021


  Ahh, it is the perl :-)


> On Nov 23, 2021, at 2:05 PM, 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 12:56 PM Matthew Knepley <knepley at gmail.com> wrote:
>> 
>>> On Tue, Nov 23, 2021 at 12:29 PM Satish Balay <balay at mcs.anl.gov> 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 <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
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>> 
>>>>> 
>>>> 
>>>> 
>>> 
>>> --
>>> 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/>
>>> 
>> 
>> 
>> 
> 



More information about the petsc-dev mailing list