[SV 63981] Don't warn on explicit -j1

If -j1 is given explicitly on the command line don't warn about it.

* src/main.c (main): Skip the warning if -j1.
* tests/scripts/features/jobserver: Add a test for this behavior.
This commit is contained in:
Paul Smith
2023-04-02 10:29:37 -04:00
parent 5111087e12
commit 54b3202f8d
2 changed files with 15 additions and 3 deletions

View File

@@ -1830,7 +1830,7 @@ main (int argc, char **argv, char **envp)
/* The user provided a -j setting on the command line so use it: we're
the master make of a new jobserver group. */
else if (!restarts)
else if (!restarts && argv_slots != 1)
ON (error, NILF,
_("warning: -j%d forced in submake: resetting jobserver mode"),
argv_slots);

View File

@@ -110,7 +110,7 @@ default: ; @ #MAKEPATH# -f Makefile2
rmfiles('Makefile2');
}
# Ensure enter/leave directory messages appear before jobserver warnings
# SV 63981: Don't generat warnings if the user specifically disabled -j
run_make_test(q!
all: ; @$(MAKE) -C . -f #MAKEFILE# recurse -j1
@@ -118,7 +118,19 @@ recurse: ; @echo hi
!,
'-w -j2', "#MAKE#: Entering directory '#PWD#'
#MAKE#[1]: Entering directory '#PWD#'
#MAKE#[1]: warning: -j1 forced in submake: resetting jobserver mode
hi
#MAKE#[1]: Leaving directory '#PWD#'
#MAKE#: Leaving directory '#PWD#'");
# Ensure enter/leave directory messages appear before jobserver warnings
run_make_test(q!
all: ; @$(MAKE) -C . -f #MAKEFILE# recurse -j10
recurse: ; @echo hi
!,
'-w -j2', "#MAKE#: Entering directory '#PWD#'
#MAKE#[1]: Entering directory '#PWD#'
#MAKE#[1]: warning: -j10 forced in submake: resetting jobserver mode
hi
#MAKE#[1]: Leaving directory '#PWD#'
#MAKE#: Leaving directory '#PWD#'\n");