Bug 1216908 - libqt5-qtwebengine (i586): out of memory during linkage with new Binutils
Summary: libqt5-qtwebengine (i586): out of memory during linkage with new Binutils
Status: RESOLVED FIXED
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Basesystem (show other bugs)
Version: Current
Hardware: Other Other
: P5 - None : Normal (vote)
Target Milestone: ---
Assignee: Michael Matz
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-11-06 13:27 UTC by Tobias Burnus
Modified: 2023-11-15 13:43 UTC (History)
4 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tobias Burnus 2023-11-06 13:27:27 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.
Comment 1 Fabian Vogt 2023-11-06 13:42:18 UTC
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.
Comment 2 Michael Matz 2023-11-06 13:54:58 UTC
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.
Comment 3 Fabian Vogt 2023-11-07 09:06:39 UTC
(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
Comment 4 Michael Matz 2023-11-07 13:20:21 UTC
(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.
Comment 5 Christophe Marin 2023-11-08 08:54:55 UTC
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
Comment 6 Michael Matz 2023-11-08 14:33:58 UTC
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
Comment 7 OBSbugzilla Bot 2023-11-09 17:45:03 UTC
This is an autogenerated message for OBS integration:
This bug (1216908) was mentioned in
https://build.opensuse.org/request/show/1124735 Factory / binutils
Comment 9 Michael Matz 2023-11-15 13:43:16 UTC
Fixed.