Closed p5pRT closed 20 years ago
Hi\,
I'm trying to build Perl 5.6 from source on a Concurrent Maxion 9500\, single processor machine with 64MB memory running Maxion/OS 1.2v5 using the native compiler.
The current Perl installed is revision 4.0.1.8 which won't run anything new.
At first\, I just tried to build it within my normal login shell. It would always hang after a large number of the errors described below. After three failed attempts I went to root and setup the shell environment like my login shell. As root it doesn't hang\, but still spawns several hundred processes that multiply until errors are generated. once the makedepend is done\, the remainder of the build is nothing but errors.
Everything seems to be going okay until it gets to the "make dependencies" part. After a few minutes I start getting the error: "UX:sh (./makedepend): ERROR: fork() failed: too many processes". I check how many are open and I get a count of 381. They are all shells opened for each shell script and none of them appear to close so another process can run. Following this\, I get a bunch of "cannot create" and "cannot open" errors when Configure tries to continue. I suspect this is a result of the failed scripts waiting to run. Eventually the number of processes diminishes. When Configure is done I don't get any fatal errors\, but when I try to run "make" I get "UX:make: ERROR: line 217: Syntax error.". This is one of the errors displayed during Configure.
It looks like the problem is the large number of processes produced by configure without giving them a chance to complete. Is there any way to slow it down? Is there a Configure option I should look at changing?
TIA for your help. I've written several Perl utilities on a Linux box that I need to run on the Maxion. I'd appreciate any help you can offer or pointers to where I may find relevant information.
Here's the output from the ./myconfig script:
Summary of my perl5 (revision 5.0 version 6 subversion 0) configuration: Platform: osname=svr4\, osvers=\, archname=maxion-svr4 uname='unix_sv maxion_devel 4.2mp 1.2v17 maxion mips ' config_args='' hint=recommended\, useposix=true\, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=unde f useperlio=undef d_sfio=undef uselargefiles=define use64bitint=undef use64bitall=undef uselongdouble=undef usesocks=undef Compiler: cc='cc'\, optimize='-g'\, gccversion= cppflags='-DDEBUGGING -DLANGUAGE_C' ccflags ='-DDEBUGGING -DLANGUAGE_C' stdchar='unsigned char'\, d_stdstdio=define\, usevfork=false intsize=4\, longsize=4\, ptrsize=4\, doublesize=8 d_longlong=undef\, longlongsize=\, d_longdbl=define\, longdblsize=8 ivtype='long'\, ivsize=4\, nvtype='double'\, nvsize=8\, Off_t='off_t'\, lseeksize =4 alignbytes=8\, usemymalloc=y\, prototype=define Linker and Libraries: ld='cc'\, ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /usr/lib /usr/ccs/lib /usr/ucblib /usr/share/lib libs=-lsocket -lnsl -ldbm -ldl -lld -lm -lc -lcrypt -lucb -lx libc=/lib/libc.so\, so=so\, useshrplib=true\, libperl=libperl.so Dynamic Linking: dlsrc=dl_dlopen.xs\, dlext=so\, d_dlsymun=undef\, ccdlflags=' ' cccdlflags='-KPIC'\, lddlflags='-G -L/usr/local/lib'
At 14:12 -0500 2000-06-30\, Cal Webster wrote:
Everything seems to be going okay until it gets to the "make
dependencies" part. After a few minutes I start getting the error: "UX:sh (./makedepend): ERROR: fork() failed: too many processes". I check how many are open and I get a count of 381.
This Should Not Happen (to state the obvious). My first (really my only) thought is that you have a parallelized make program which tries to do as much as possible simultaneously (usually to take advantage of multi-processor systems) and either it's broken\, or the shells it's spawning are broken.
Try to see if the problem goes away if you say
sh makedepend MAKE='make\ -j\ 1'
If it doesn't\, look at the documentation for make to see how to stop it from spawning multiple processes (some option other than j\, presumably)\, and try that. If some option or another works\, you can arrange that the build process uses that option by editing the file config.sh by adding the necessary arguments and backslashed spaces to the line
make='make'
then saying
sh Configure -S
before going on to run makedepend and plain make.
If flags bring you no joy\, look around the system for another version of make\, and try that:
sh makedepend MAKE=/some/other/make
If that works\, you can arrange that the build process uses that make by editing the file config.sh so that the line
make='make'
points instead to the working make -- and so on: see above.
If none of that works\, I'm out of ideas.
In any case\, it's probably worth reporting the problem and fix (if you have one) to Concurrent. Indeed\, if you're supported\, it might be a good move to bounce the problem off them before trying anything else.
If you do come up with a fix\, and can cook up a Concurrent/Maxion hints file which makes building Perl Just Work\, you'll be helping to save the world. (See README\, point 3.)
Migrated from rt.perl.org#3452 (status was 'resolved')
Searchable as RT3452$