Re: git: c8c2d4f22536 - main - lang/python3: allow using LTO on powerpc64
- In reply to: Alexey Dokuchaev : "Re: git: c8c2d4f22536 - main - lang/python3: allow using LTO on powerpc64"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 26 Feb 2023 13:10:58 UTC
Am 26.02.23 um 13:26 schrieb Alexey Dokuchaev: > On Sun, Feb 26, 2023 at 01:00:19PM +0100, Matthias Andree wrote: >> Am 24.02.23 um 16:48 schrieb Piotr Kubaj: >>> commit c8c2d4f2253694802ef720f098c57800570ad2fc >>> >>> lang/python3: allow using LTO on powerpc64 >>> >>> It was recently fixed and will be available in 13.2-RELEASE. >>> Since LTO is not enabled by default, it's ok to make it available. >> >> Careful. LTO causes EXCESSIVE memory use for the build. >> I've had to disable it for a low-memory server I operate (amd64 based, >> but that's the LTO feature itself, not the CPU). > > I think most people just disable LTO because they don't have 256GB+ or > whatever amount of RAM it demands for arguably rather little gain. > > Putting OPTIONS_UNSET+=LTO in your /etc/make.conf makes the ports tree > much more usable. It depends how well software is written, and LTO can make a considerable difference. But it is extremely expensive currently, so it's probably easier to enable only on certain ports that really benefit at run-time. We would require something like a resource scheduler for poudriere or the ports build system, which tracks how much RAM and disk space we need on a certain port, architecture, possibly FreeBSD version, and with certain specific options. My builder has 16 GB RAM (virtually, it's normally in a virtual machine, but can boot natively) and building compilers in parallel usually fails. I have limited JOBS to like 6 or so. If the builds framework could track how much memory and disk space a certain build needed, and possibly the expected build time, it could make better decisions, for instance, if it dispatched a rust or llvm build, it would hold off on other compiler builds and instead build several dozen Perl or Python ports in parallel to rust.