Date: Tue, 9 Sep 2003 02:49:35 EST-10EDT,10,-1,0,7200,3,-1,0,7200,3600 Subject: [Ux2bs_Archive] No. 197 ************************************************** Monday 08 September 2003 Number 197 ************************************************** Subjects for today 1 Re: Building db (sleepycat) : James Moe" 2 Re: Building db (sleepycat) : Andreas Buening **= Email 1 ==========================** Date: Tue, 09 Sep 2003 16:32:17 -0700 (MST) From: "James Moe" Subject: Re: Building db (sleepycat) -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Tue, 09 Sep 2003 22:56:30 +0200, Andreas Buening wrote: >> the equivalent to "IFS=;" is always used. I have to do something like >> this to fix it: >> >> ac_var=`echo $ac_var | tr ':' ';'` >> >> This has shown up in more than package. > >I don't undestand what you did. The portable solution of IFS=":" >(no matter which quotes are used) is to replace it by >IFS="${PATH_SEPARATOR-:}" >in the responsible .m4 file (usually _not_ aclocal.m4) and then >to rerun all the auto* stuff. > This is not something I have control over. It is in the distributed packages. The shell is simply ignoring the IFS=: statement, as though it were not there at all. What I am doing above is modifying the string to replace : with ;. The provided configure script does this (in part) to create config.status: # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in ac_file_in is sometimes a colon-delimited list of filenames. When config.status runs, the IFS=: is ignored. > >> 3. The showstopper. >> When make finally can run, it uses all 8000 file handles (emxopt=-c -n -h8192) and >> all 400 MB of RAM! It then proceeds to swap to disk. If I do not stop it, >> the computer crashes to an automatic re-boot. This, I feel, is not appropriate >> behavior. > >Of course, this shouldn't happen. :-( > I had the behavior with v3.76.1, v3.79.1 and v3.79.2a. >Please, update to http://unix.os2site.com/pub/binary/make/make-3_81rc1-r2-bin.zip. > And now v3.81r2. >If it still breaks and you have to much spare time, a debug output >(make -d) might be helpful (you can kill it at last after a few >dozens of MB ;-) ). > Using make -d I get lots of lines like this (ignoring all the Trying...): Finished prerequisites of target file `../DIST/../mutex/mut_tas.c'. No need to remake target `../DIST/../mutex/mut_tas.c'. Finished prerequisites of target file `mut_tas.lo'. Must remake target `mut_tas.lo'. g:/bin/sh.exe ./libtool --mode=compile gcc -c -I. -I../DIST/.. -I../DIST/../dbinc ../DIST/../mutex/mut_tas.c Putting child 0x022d6b20 (mut_tas.lo) PID 2780 on the chain. Live child 0x022d6b20 (mut_tas.lo) PID 2780 Reaping winning child 0x022d6b20 PID 2780 Removing child 0x022d6b20 PID 2780 from chain. Successfully remade target file `mut_tas.lo'. This is the last debug output when make goes insane: Finished prerequisites of target file `../DIST/../mp/mp_bh.c'. No need to remake target `../DIST/../mp/mp_bh.c'. Finished prerequisites of target file `mp_bh.lo'. Must remake target `mp_bh.lo'. g:/bin/sh.exe ./libtool --mode=compile gcc -c -I. -I../DIST/.. -I../DIST/../dbinc ../DIST/../mp/mp_bh.c Putting child 0x022f7ea0 (mp_bh.lo) PID 3221 on the chain. Live child 0x022f7ea0 (mp_bh.lo) PID 3221 ./libtool.: ./libtool.[499]: cannot fork - try again Reaping losing child 0x022f7ea0 PID 3221 make: *** [mp_bh.lo] Error 1 Removing child 0x022f7ea0 PID 3221 from chain. ?DB-E-make -d failed: 2 - --EOF-- Note the "cannot fork - try again" line. Sometimes, if I let the build continue, instead of crashing I get a great number of "cannot fork - try again" messages. This is with 8000 file handles, etc. So I do not see anything unusual before it goes crazy. - -- jimoe at sohnen-moe dot com pgp/gpg public key: http://www.keyserver.net/en/ -----BEGIN PGP SIGNATURE----- Version: PGPfreeware 5.0 OS/2 for non-commercial use Comment: PGP 5.0 for OS/2 Charset: cp850 wj8DBQE/XmMBsxxMki0foKoRAgLvAKCpwpQipxZxlEHDjF0WHu6BWoNuFwCgyW0Z wsOQFMlhKDFEZLm/Am7vBmQ= =PmBD -----END PGP SIGNATURE----- _______________________________________________ UX2BS mailing list UX2BS at os2ports.com http://os2ports.com/mailman/listinfo/ux2bs **= Email 2 ==========================** Date: Tue, 09 Sep 2003 22:56:30 +0200 From: Andreas Buening Subject: Re: Building db (sleepycat) James Moe wrote: > The build script has some problems: > 1. configure creates a config.status that has a line with "IFS=:". This is ignored and > the equivalent to "IFS=;" is always used. I have to do something like this to fix it: > > ac_var=`echo $ac_var | tr ':' ';'` > > This has shown up in more than package. I don't undestand what you did. The portable solution of IFS=":" (no matter which quotes are used) is to replace it by IFS="${PATH_SEPARATOR-:}" in the responsible .m4 file (usually _not_ aclocal.m4) and then to rerun all the auto* stuff. > 2. config.status creates a defective Makefile. There are a few cases where there is no > whitespace in the rules. A search and replace of "lo:$(" -> "lo: $(" is needed. No idea. > 3. The showstopper. > When make finally can run, it uses all 8000 file handles (emxopt=-c -n -h8192) and > all 400 MB of RAM! It then proceeds to swap to disk. If I do not stop it, the computer > crashes to an automatic re-boot. This, I feel, is not appropriate behavior. Of course, this shouldn't happen. :-( Please, update to http://unix.os2site.com/pub/binary/make/make-3_81rc1-r2-bin.zip. If it still breaks and you have to much spare time, a debug output (make -d) might be helpful (you can kill it at last after a few dozens of MB ;-) ). Bye, Andreas _______________________________________________ UX2BS mailing list UX2BS at os2ports.com http://os2ports.com/mailman/listinfo/ux2bs