[petsc-dev] different compiler behavior in make libfast and make all

Satish Balay balay at mcs.anl.gov
Thu Sep 5 21:44:03 CDT 2013


I can't imagine cygwin triggering an internal compiler error with MS
'cl' It could perhaps result in a different memory layout [due to the
numerous processes creatred during 'make all'] for the process that
might be the trigger.

There were some issues with cygwin fork with huge argument list that
was fixed in one of the updates.

If its indeed cygwin related - perhaps you could make sure you have
the latest cygwin tools [there were quiet a few updates in the past
couple of months - due to the 64bit cygwin release]

The other check would be 'memtest' :)

Satish

On Thu, 5 Sep 2013, Barry Smith wrote:

> 
>   cygwin is a temperamental beast. I don't think the compiler is to blame but rather cygwin mis-providing something when many files are being dealt with quickly.
> 
>    make all simply calls make ACTION=libfast tree 
> 
>    When make all fails you can go down to the place it crashes and run make ACTION=libfast tree and it will finish compiles in all the directories under that current directory. So you can get everything compiled with hopefully not too many manual makes needed.  I know this is not particularly satisfactory by we still dream about a knight coming along in shining armor with lots of Windows experience figuring out a clean and simple way to avoid cygwin completely in the build process.
> 
>    Barry
> 
> 
> On Sep 5, 2013, at 6:16 PM, Chetan Jhurani <chetan.jhurani at gmail.com> wrote:
> 
> > I'm looking for suggestions on how to understand different compiler
> > behavior in make "libfast" in a sub-directory and make "all" in
> > top-level petsc directory.
> > 
> > The reason is that make all leads to an internal compiler error, seen
> > in make.log.  But doing make libfast for the same arch in the corresponding
> > subdirectory works fine.  So it is hard to work around the internal
> > compiler error via some simplification.  This is with cygwin and visual
> > studio 2012.  The same petsc code compiles fine with an older visual studio.
> > 
> > Here is an example of the error from make.log, which
> > consistently happens here for a particular arch.
> > 
> > petsc34\src\mat\impls\sbaij\seq\sbaij2.c(854) : fatal error C1001: An internal error has occurred in the compiler.
> > (compiler file 'f:\dd\vctools\compiler\utc\src\p2\main.c', line 211)
> > To work around this problem, try simplifying or changing the program near the locations listed above.
> > Please choose the Technical Support command on the Visual C++ 
> > Help menu, or open the Technical Support help file for more information
> > INTERNAL COMPILER ERROR in 'C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\BIN\amd64\cl.exe'
> > 
> > The error happens in a different location (again consistently)
> > for a different arch.
> > 
> > petsc34\src\mat\impls\sbaij\seq\sbstream\sbstrmfact.c(434)
> > 
> > Both errors don't get reproduced if I do a make libfast in these
> > directories.  I also invoked the compiler via cl and win32fe
> > and both these ways also work fine and generate object files of
> > non-zero sizes.
> > 
> > Thanks,
> > 
> > Chetan
> > 
> > 
> 
> 




More information about the petsc-dev mailing list