[Bug lto/98275] New: -flto=auto fails if nthreads_var is zero, must not pass -j0
pexu@gcc-bugzilla.mail.kapsi.fi
gcc-bugzilla@gcc.gnu.org
Mon Dec 14 13:55:32 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98275
Bug ID: 98275
Summary: -flto=auto fails if nthreads_var is zero, must not
pass -j0
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: lto
Assignee: unassigned at gcc dot gnu.org
Reporter: pexu@gcc-bugzilla.mail.kapsi.fi
CC: marxin at gcc dot gnu.org
Target Milestone: ---
Host: mingw64
Hi.
When using `-flto=auto' if the number of threads is not detected, i.e.
`nthreads_var' equals to zero, lto-wrapper must not pass -j0 to GNU make as -j
expects a positive, non-zero integer (if any given).
>From GNU make manual: ``If the ‘-j’ option is followed by an integer, this is
the number of recipes to execute at once; this is called the number of job
slots. If there is nothing looking like an integer after the ‘-j’ option, there
is no limit on the number of job slots.''.
gcc/lto-wrapper.c:
2001 snprintf (jobs, 31, "-j%ld",
2002 auto_parallel ? nthreads_var : parallel);
$ make -j0
make: the '-j' option requires a positive integer argument
Tried GNU make 4.2.1 (2016 vintage) and 4.2.93 (2020). For the latest trunk
argument parsing happens at src/main.c around line 2961 [1]; It basically does
``int i = atoi(arg); if (i < 1 || not-all-chars-are-digits) { handle-bad-arg
}''.
[1] https://git.savannah.gnu.org/cgit/make.git/tree/src/main.c#n2961
More information about the Gcc-bugs
mailing list