--- lld/ELF/Driver.cpp.orig +++ lld/ELF/Driver.cpp @@ -1723,6 +1723,10 @@ << arg->getValue() << "'"; parallel::strategy = hardware_concurrency(threads); ctx.arg.thinLTOJobs = v; + } else if (sizeof(size_t) < 8) { + // On 32-bit systems, cap the number of threads at 1. + Log(ctx) << "set maximum concurrency to 1, specify --threads= to change"; + parallel::strategy = hardware_concurrency(1); } else if (parallel::strategy.compute_thread_count() > 16) { Log(ctx) << "set maximum concurrency to 16, specify --threads= to change"; parallel::strategy = hardware_concurrency(16);