What is the effect of "MAKE_JOBS_UNSAFE=yes" in make.conf ?

By default, it uses -j1. With that set to yes, it uses more.

Exactly the other way, I stand corrected.
 
cd /usr/ports/Mk
find . -type f|xargs grep -A2 MAKE_JOBS_UNSAFE
Code:
./bsd.gecko.mk:.    if defined(DISABLE_MAKE_JOBS) || defined(MAKE_JOBS_UNSAFE)
./bsd.gecko.mk-MAKE_JOBS_NUMBER=        1
./bsd.gecko.mk-.    endif
--
./bsd.port.mk:# MAKE_JOBS_UNSAFE
./bsd.port.mk-#                         - Disallow multiple jobs even when user set a global override.
./bsd.port.mk-#                           To be used with known bad ports.
--
./bsd.port.mk:.    if defined(DISABLE_MAKE_JOBS) || defined(MAKE_JOBS_UNSAFE)
./bsd.port.mk-_MAKE_JOBS?=              #
./bsd.port.mk-MAKE_JOBS_NUMBER= 1
--
./bsd.port.mk:BUILD_FAIL_MESSAGE+=      Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to the maintainer.
./bsd.port.mk-.    endif
./bsd.port.mk-
find . -type f|xargs grep -l MAKE_JOBS_NUMBER
Code:
./Uses/cabal.mk
./Uses/cargo.mk
./Uses/go.mk
./Uses/ninja.mk
./Uses/pyqt.mk
./Uses/waf.mk
./Uses/ocaml.mk
./bsd.gecko.mk
./bsd.port.mk
 
The "effect" is no single build will ever use parallel build jobs, as long as the ports framework can prevent it.

You should probably ask about the meaning instead, and the answer is, for make.conf, it doesn't have any sensible meaning. It is intended for individual port Makefiles, when the upstream build system is broken with parallel jobs (therefore it's "unsafe" to enable them). It ignores any other user configuration and disables parallel jobs.
 
If i'm correct you can still build ports in parallel. But each individual port build will only use a single thread or process.
 
Electron compiles fine here with make jobs. If it doesn't for you, it's most likely a resource issue (too many parallel jobs consume more resources than your machine can provide). This is not a case for MAKE_JOBS_UNSAFE. It's meant for build systems that are just broken with make jobs.
 
Back
Top