Subject: Re: egcs problem on m68k with -m68060
To: Simon Burge <simonb@telstra.com.au>
From: Frederick Bruckman <fredb@fb.sa.enteract.com>
List: current-users
Date: 04/18/1998 21:33:13
On Sat, 18 Apr 1998, Simon Burge wrote:

> On Sat, 18 Apr 1998 01:46:19 -0500 (CDT)  Frederick Bruckman wrote:
> 
> > On problem I have when compiling libc is that "make" often runs out of
> > memory, at some point after sucking up nearly half of my 36M of real
> > memory as viewed with `ps -orss,vsz,command'. I set up a spare disk as a
> > whopping 500M swap partition, just to see if that would make a difference,
> > but it doesn't. It will pick up where it left off, more or less, if I set
> > UPDATE=1, and then go to completion. My ulimit is unlimited. "make" seems
> > to come up against some hard limit imposed by the kernel. Isn't 36M
> > supposed to be enough to build the tree? Any ideas?
> 
> You're probably running in to per-process limits.  It sounds like
> you're using sh.  The sh ulimit command talks about file sizes by
> default.  Try a 'ulimit -H -a', then a 'ulimit -d <maxdatasize>'
> or 'ulimit -s <maxstacksize>' (or both).  The man page for sh is
> helpful here.

That was it. I'm actually using bash, which has a ulimit with the same
syntax. make was evidently bumping into the soft limits for "data seg
size" and "max locked memory."  Here's the default on my machine for
`ulimit -S -a.'

	core file size (blocks)     unlimited
	data seg size (kbytes)      16384
	file size (blocks)          unlimited
	max locked memory (kbytes)  10505
	max memory size (kbytes)    31516
	open files                  64
	pipe size (512 bytes)       1
	stack size (kbytes)         512
	cpu time (seconds)          unlimited
	max user processes          80
	virtual memory (kbytes)     16896

and here's part of the output from the command 
`ps amx -orss,vsz,pid,ppid,uid,tty,command' just as `make build' was
finishing with libc

	 RSS   VSZ   PID  PPID   UID TTY      COMMAND
	 572 43540    78     1     0 ??       mount_mfs /dev/sd0b /tmp
	16076 17120 20084 20083     0 ttyp0    make _THISDIR_ all

I only got that far by bumping both to 24000. The max "virtual memory"  is
a bash extension. It can't be changed directly, but tracks "max data
size." All of the hard limits are much higher. From following along with
`ps', I figure I was coming up against the limit for "max locked memory," 
but would have ran into "max data seg size" as well. Thanks!