Guillaume Le Vaillant skribis: > Leo Famulari skribis: > >> On Mon, Sep 06, 2021 at 03:39:52PM +0000, Guillaume Le Vaillant wrote: >>> There's a bug in binutils 1.37, which we are using on the >>> core-updates-frozen branch. >> >> 2.37, right? :) >> > > Indeed. :) > > >>> It's a file descriptor leak that can lead to 'malformed archive' errors >>> when linking libraries. We get this problem at least when building >>> qtwekbit and qtwebengine. A workaround allows us to compile qtwebkit >>> (see [1]), but it doesn't work for qtwebengine. >>> >>> The bug was discussed at [2] and upstream has a patch to fix it at [3]. >>> However, adding this patch to our binutils rebuilds the world. >>> I'm currently trying to build things with the patched binutils. >>> If everything works, should I push this fix on core-updates-frozen, or >>> does someone have an idea that would lead to less rebuilds? >> >> There are a few options: >> >> 1) Apply the patch in the normal way and rebuild the world. If the >> changes in the patch are limited to fixing this bug, then we can be >> confident that changing binutils will not break other packages, which is >> the main goal behind "freezing" the core-updates branch. Do you think >> that expectation is reasonable? Otherwise, the branch is frozen except >> for bug fixes; we'd like to avoid rebuilding the world but it's not a >> problem if we have to. >> 2) Create a binutils-fixed package and only use it for qtwebkit and >> qtwebengine >> 3) Try to work around the bug in the qtwebkit and qtwebengine packages >> >> 2 and 3 are not great because maybe the bug affects other packages in >> some situations. Do you know if it manifests deterministically? > > The problem happens when linking a library with a lot of members (I > don't know exactly how many), which is the case at least for qtwebkit > and qtwebengine. Users creating such libraries in their projects will > also have the problem. > > Increasing the maximum number of open file descriptors seems not be > a very robust workaround. Setting it at 4096 for qtwebkit works, > but I tried 4096, 8192 and 16384 for qtwebengine and it didn't work. > > I have built many packages with the patched binutils and I didn't get > any new failure so far. I'm not yet at qtwebkit and qtwebengine though > (compiling the 20 versions of rust took a while). > So when I get there, and if the patch really solves the issue, pushing > it looks like the best solution. > > Do you know if there are other world-rebuilding pending fixes that could > go in at the same time? I confirm that the patch fixed the compilation issues for qtwebkit and qtwebengine, and it didn't cause new build failures, so I pushed it as de8e2a699c0219f5ea86f6bbfff4d5ee35104738.