On Fri, Apr 27, 2018 at 09:48:17AM +0800, Drew Parsons wrote: > Source: petsc > Version: 3.9.0+dfsg1-1exp4 > Severity: normal > > PETSc 3.9 Fails To Build From Source on mips. PETSC 3.8 continues to build > fine. > > Build logs are at > https://buildd.debian.org/status/logs.php?pkg=petsc&arch=mips > e.g. > > https://buildd.debian.org/status/fetch.php?pkg=petsc&arch=mips&ver=3.9.0%2Bdfsg1-1exp4&stamp=1524789882&raw=0 > > The build log reports > -==== > ... > CXX > mips-linux-gnu-real-debug/obj/tao/linesearch/interface/dlregis_taolinesearch.o > CXX > mips-linux-gnu-real-debug/obj/tao/linesearch/impls/gpcglinesearch/gpcglinesearch.o > CXX > mips-linux-gnu-real-debug/obj/tao/linesearch/interface/ftn-auto/taolinesearchf.o > CXX > mips-linux-gnu-real-debug/obj/tao/linesearch/interface/ftn-custom/ztaolinesearchf.o > CXX > mips-linux-gnu-real-debug/obj/tao/linesearch/interface/taolinesearch.o > CXX > mips-linux-gnu-real-debug/obj/tao/leastsquares/impls/pounders/gqt.o > CXX > mips-linux-gnu-real-debug/obj/tao/leastsquares/impls/pounders/pounders.o > FC mips-linux-gnu-real-debug/obj/mat/f90-mod/petscmatmod.o > FC mips-linux-gnu-real-debug/obj/dm/f90-mod/petscdmmod.o > > f951: out of memory allocating 2097152 bytes after a total of 1844178944 bytes > make[4]: *** [gmakefile:164: > mips-linux-gnu-real-debug/obj/dm/f90-mod/petscdmmod.o] Error 1 > -==== > > Looks like the fortran module for petscdm has gotten bigger than it > used to be. > > Nevertheless, on amd64 the 3.9 library is 15539008 bytes, while 3.8 was > 14727872, > not much smaller. The amd64 3.9 debug library is 86882368 bytes where 3.8 > was 84142848. > > On mips the 3.8 debug library is 68622188 bytes, smaller than amd64. > Is this out-of-memory error a problem with the mips buildds? Are there > buildd memory constraints we're hitting against? Or is there a problem with > fortran95 on mips? >...
mips and mipsel are the only architectures where we have only 2 GB address space for userspace, so when the compiler needs more than 2 GB of memory you are getting this error. On other 32bit buildds you have 3 GB or even 4 GB address space, mips/mipsel is the canary for huge memory usage. gcc sometimes has huge memory usage compiling C++ hitting this 2 GB limit, it is possible that there are also problems with Fortran code. It is very annoying that the buildd log hides the compiler flags, if you fix that I'll take a look regarding a workaround. cu Adrian -- "Is there not promise of rain?" Ling Tan asked suddenly out of the darkness. There had been need of rain for many days. "Only a promise," Lao Er said. Pearl S. Buck - Dragon Seed