From Bugzilla Helper: User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7b) Gecko/20040421 Description of problem: I'm compiling glibc-2.3.3 on a dual CPU box. _Some_ of the make commands run don't get the -j2 command because that has to passed through the PARALLELMFLAGS option. This appears in loads of places in the SPEC file. All the top level make commands called directly from the SPEC are ok but I assume that this arguement exists because the value cannot be passed down to child make commands Could the -j<#cpus> be added to the PARALLELMFLAGS command. Also it would be much easier to alter and enable -j<#cpus> on the PARALLELMFLAGS flag if it was set once at the top of the spec. It would make it easier to turn off the silent (-s) command when debugging. Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1.compile on dual cpu box and look at the make commands run 2. 3. Expected Results: define the value for PARALLELMFLAGS at the top of the SPEC file to include the -j<num cpus> Additional info:
Can you tell me where do you think build is not parallelized where it actually matters? The only things which are not parallelized is make install (passes -j1 on purpose) and building linuxthreads/man (where it really doesn't matter).
The testing phase. During the testing part, I'm seeing longish periods of 1 cpu idling while the other is 100% busy. Curiously there are also periods of time when both are used. eg with more careful watching, I've seen both cpu's used when it is testing all the character sets in iconvdata. The first time I watched it, it always seemed to only use 1 cpu, but I think it depends on which part of the testing is being running. I get the following log output... The -j2 is passed to the outer make command, but I guess that because it is not included in PARALLELMFLAGS, it does not get included a lower levels. + make -j2 -k check PARALLELMFLAGS=-s + tee check.log make -r PARALLELMFLAGS="-s" CVSOPTS="" -C .. objdir=`pwd` check make[1]: Entering directory `/usr/src/redhat/BUILD/glibc-2.3.3-200405070341' make -s -C csu tests make[2]: Entering directory `/usr/src/redhat/BUILD/glibc-2.3.3-200405070341/csu' make[2]: Leaving directory `/usr/src/redhat/BUILD/glibc-2.3.3-200405070341/csu' make -s -C iconv tests I'm going to try and do some timings of the testing session on its own and see if adding -j2 to PARALLELMFLAGS makes any difference. This is definately a low priority issue though :)
The testing phase is parallelized just fine in my eyes (well, in rawhide glibc it was on purpose .NOTPARALLELized in nptl make check, as several tests create really many threads and are timing critical).
There is no bug. THe -j parameter of make works fine, for building and testing. I use it all the time.