[Bug 272508] lang/gcc12: use --enable-link-serialization to avoid memory crunch on multi-core systems
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 14 Jul 2023 20:25:03 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=272508
Bug ID: 272508
Summary: lang/gcc12: use --enable-link-serialization to avoid
memory crunch on multi-core systems
Product: Ports & Packages
Version: Latest
Hardware: Any
OS: Any
Status: New
Severity: Affects Some People
Priority: ---
Component: Individual Port(s)
Assignee: salvadore@freebsd.org
Reporter: nicholas.e.taylor@gmail.com
Flags: maintainer-feedback?(salvadore@freebsd.org)
Assignee: salvadore@freebsd.org
Created attachment 243396
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=243396&action=edit
Add SERIAL_LINK option
lang/gcc12, particularly with an LTO bootstrap, can use up a lot of memory on
multi-core systems. A major contributor to the problem is that the slow,
memory-hungry LTO link jobs from multiple parallel compilations tend to occur
at the same time.
GCC 12 configure provides[1] an option, --enable-link-serialization, to set up
dependencies so that those link jobs will not occur in parallel. I found that
enabling it on my 16-core system[2] let me build lang/gcc12 with LTO_BOOTSTRAP,
without any visits from the OOM reaper: a novel experience for me.
The attached patch adds a SERIAL_LINK option to lang/gcc12; when enabled, it
sets the --enable-link-serialization configure option.
I admit the audience of "Builds lang/gcc12 with LTO_BOOTSTRAP, too many cores,
and not enough RAM" is pretty niche, but perhaps this will help someone else.
[1] https://gcc.gnu.org/install/configure.html
[2] 16 GB RAM and 40 GB swap
--
You are receiving this mail because:
You are the assignee for the bug.