I've noticed quite a while ago that compiling a kernel with the parameter -j set to 1 or more doesn't produce a bzImage. Instead, it ends prematurely without any advice. I have reproduced the same behavior in both my netbook and home server.

As far as I'm aware, the point where the compilation stops is random - Compiling twice with the same parameters will probably stop at different files. However, when I run make with no -j* parameter the compilation ends just fine and outputs a working bzImage.

Both machines run Intel Atom (N270 on the netbook and 330 on the server) and I've compiled for these processors. If I recall correctly, I've tried compiling both with Atom and with generic x86_64 options.

The kernel version I'm building is 2.6.34.1

I've always compiled normally with those options in my Core2Duo and Pentium Dual Core machines.

Has anyone experienced this issue? Any ideas why does this happens? Is there a fix or workaround?

link|improve this question
feedback

1 Answer

Premature termination of a parallelized make is almost always caused by insufficient specification of dependencies. Unfortunately the only ways to fix it are to either analyze all the dependencies listed in the Makefile, or to pore over the make output looking for the causes of termination.

link|improve this answer
The kernel compiles just fine without -j*. I don't belive this is due missing dependencies or anything like it. Maybe some bug in gcc or make, I don't know... No log message is issued - the compiling just stops before finishing. Also, it seems to be intermitent. Today I was able to compile successfully twice with the -j4 option. After the first success, I tried it again and the compiling stopped prematurely and went fine after I removed the -j4 parameter, as usual. – Minix Jul 19 '10 at 13:39
Of course it's intermittent. How far it gets overall depends on the exact timing between the job runners. – Ignacio Vazquez-Abrams Jul 19 '10 at 14:25
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.