Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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?

share|improve this question

1 Answer 1

up vote 0 down vote accepted

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.

share|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. –  Vitamini 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
    
3 years later - Thank you for your response. Reading my response, it seems that I didn't quite understand what the -j* option did, but it makes perfect sense now (although it's been more than two years since I last compiled a kernel). I completely forgot about my SuperUser account, sorry for the delay. –  Vitamini Jul 1 '13 at 19:41

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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