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.

Reply via email to