https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106328
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Keywords| |lto Last reconfirmed| |2022-07-18 Ever confirmed|0 |1 --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- That's the WPA LTRANS file generation which does not use the jobserver but parallelizes for I/O. There is --param lto-max-streaming-parallelism you can use to limit things but it's default is 32 (but that would be per actual parallel invoked LTO link step, so with -j8 it's 8 * 32 when there are 8 parallel invoked link steps). See gcc/lto/lto.{c,cc}:stream_out_partitions which indeed says #ifdef HAVE_WORKING_FORK ... /* Do not run more than LTO_PARALLELISM streamings FIXME: we ignore limits on jobserver. */ if (lto_parallelism > 0 && nruns >= lto_parallelism) { wait_for_child (); ... if (!cpid) { setproctitle ("lto1-wpa-streaming"); so "confirmed" - it doesn't honor the jobserver. Note without using -flto=auto or -flto=jobserver it would be all serial, note the above also does not honor a limit placed via -flto=8 I think.