> On Wed, Sep 09, 2009 at 07:11:07PM +0200, Pavel Troller wrote:
> > Yes, we know. It's simple. OOM means "Out Of Memory". Your machine runs out
> > of memory during compilation (you don't have swap, it's also visible from the
> > dump), so your system is simply too small to compile this. Add either RAM or
> > a swap device.
> > With regards, Pavel Troller
> The SheevaPlug has 512MB RAM. It should be good enough.
> An extra swap can indeed help, even if it is on an external USB storage
> I still suspect a gcc bug. What software platform is it? What gcc?
Yes, it can be a gcc bug, but if it is, it causes that gcc consumes so much
memory, that it gets killed by the oom-killer. The killer is here because of a
kernel feature called "overcommit". It, simply speaking, allows an app to
allocate more virtual memory than is physically available, in the hope that the
app will not use it for real. And when the app really wants to, the kernel
cannot say "sorry, we don't have so much memory, I was lying before", and
because it cannot really get any physical memory to satisfy the app (no swap),
it should kill the app, because it cannot continue to run.
dahdi-base.c is a relatively big file, it has about 230kB here. I've tried to
check the amount of memory needed to compile it and for my platform (x86,
gcc-4.3.3) it took about 50MB of RAM. So, it would compile on a 512M system
without problems (in the case that no more memory-hungry application is running
concurrently). It seems that the particular ARM version of gcc is either really
buggy, or it is abnormally memory-hungry. Are you sure, that you don't have
a parallel make in progress (used on a multi-CPU/multicore systems, using make
-j <number of concurrent processes>), it would easily eat all your RAM.