Bugzilla – Bug 1216908
libqt5-qtwebengine (i586): out of memory during linkage with new Binutils
Last modified: 2023-11-15 13:43:16 UTC
On 32bit (i586) systems, it is rather simple to run out of memory (max. 4 GB). Unfortunately, this happens when linking libqt5-qtwebengine with the new version of Binutils: See * (currently) https://build.opensuse.org/project/show/openSUSE:Factory:Staging:A * https://build.opensuse.org/request/show/1113885 (Binutils update to 2.41) I don't know what's the best solution, but one possibility, I see, is to disable LTO for i586, only.
Could be a regression in binutils as well. If the maintainers say it's not fixable and just the usual increase of resource demands, we can try disabling LTO.
Actually it _is_ a regression in binutils, but not one I can fix easily. The problem is the new faster string merging code of mine, needing more memory in this case. Before the patch it needed about 2.8GB RSS, now it needs about 3.8GB, pushing it right beyond the address space limit overall. I may or may not be able to do something about this, but even before it already was stretching the limits of i586, and now it's pushed over :-( If switching off LTO helps (which I can't guarantee) then maybe that's the better long-term workaround.
(In reply to Michael Matz from comment #2) > Actually it _is_ a regression in binutils, but not one I can fix easily. > The problem is the new faster string merging code of mine, needing more > memory in this > case. Before the patch it needed about 2.8GB RSS, now it needs about 3.8GB, > pushing it right beyond the address space limit overall. > > I may or may not be able to do something about this, but even before it > already > was stretching the limits of i586, and now it's pushed over :-( If > switching off > LTO helps (which I can't guarantee) then maybe that's the better long-term > workaround. Unfortunately it does not help: https://build.opensuse.org/package/live_build_log/home:Vogtinator:boo1216908/libqt5-qtwebengine/Staging_A/i586
(In reply to Fabian Vogt from comment #3) > > > If switching off > > LTO helps (which I can't guarantee) then maybe that's the better long-term > > workaround. > > Unfortunately it does not help: > https://build.opensuse.org/package/live_build_log/home:Vogtinator:boo1216908/ > libqt5-qtwebengine/Staging_A/i586 Bleh :-/ Thanks for trying, I had some hopes. I guess I need to prioritize the binutils thing then.
Also tried: disabling jumbo builds which gave a different error (ld: failed to set dynamic section sizes: memory exhausted.) and combining both tweaks with no better luck. Alternatively, we can switch to lld for qtwebengine on 32 bit archs, but it can't use the version script. Causes: '[10902s] ld.lld: error: version script assignment of 'Qt_5.15' to symbol 'qt_version_tag' failed: symbol not defined' The FreeBSD people had the same issue: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=273992 is reproducible
Meanwhile I have a fix for binutils. There's still some upstream discussion but it will get in in one or another form at which point I'll also update our package. https://sourceware.org/pipermail/binutils/2023-November/130417.html
This is an autogenerated message for OBS integration: This bug (1216908) was mentioned in https://build.opensuse.org/request/show/1124735 Factory / binutils
Fixed.