I just emerged sci-libs/scipy. I was unpleasantly surprised that the job only loaded one of my cpus most of the time, resulting in a longish wait (15-20 minutes).
I investigated a bit. Originally, I had this in make.conf: MAKEOPTS="-j5" Then I had a look at the ebuild. I saw that it inherits multiprocessing.eclass and uses the makeopts_jobs function from it. Here is the function: makeopts_jobs() { [[ $# -eq 0 ]] && set -- "${MAKEOPTS}" # This assumes the first .* will be more greedy than the second .* # since POSIX doesn't specify a non-greedy match (i.e. ".*?"). local jobs=$(echo " $* " | sed -r -n \ -e 's:.*[[:space:]](-[a-z]*j|--jobs[=[:space:]])[[:space:]]*([0-9]+).*:\2:p' \ -e "s:.*[[:space:]](-[a-z]*j|--jobs)[[:space:]].*:${2:-999}:p") echo ${jobs:-1} } Looking at this it seems to require at least one space between the -j and the number! Isn't that an unwarranted assumption? So, I changed my make.conf to MAKEOPTS="-j 5" and rerun the build, but no joy - still no parallelization! Another closer look at the ebuild and I see this: python_compile() { ${EPYTHON} tools/cythonize.py || die distutils-r1_python_compile \ $(usex python_targets_python3_5 "" "-j $(makeopts_jobs)") \ ${SCIPY_FCONFIG} } and sure enough, I'm building for python3.5, so I guess makeopts_jobs is not even called and my MAKEOPTS are just ignored. Why - what is so special with python3.5 in the respect? Would it help to switch to python3.6? -- Please don't Cc: me privately on mailing lists and Usenet, if you also post the followup to the list or newsgroup. To reply privately _only_ on Usenet and on broken lists which rewrite From, fetch the TXT record for no-use.mooo.com.