Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 945808 - dev-qt/qtwebengine-6.8.1 build failed on "error: ISO C++ forbids declaration of ‘USING_PRE_FINALIZER’ with no type [-fpermissive]"
Summary: dev-qt/qtwebengine-6.8.1 build failed on "error: ISO C++ forbids declaration ...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal normal
Assignee: Qt Bug Alias
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-12-03 08:39 UTC by Pavol Cvengros
Modified: 2024-12-03 17:15 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
eclass-debug.log (eclass-debug.log,10.06 KB, text/x-log)
2024-12-03 08:40 UTC, Pavol Cvengros
Details
enviroment (environment,152.29 KB, text/plain)
2024-12-03 08:40 UTC, Pavol Cvengros
Details
build.log part 1 (build.log_part1.xz,708.82 KB, application/x-xz)
2024-12-03 08:43 UTC, Pavol Cvengros
Details
build.log part 2 (build.log_part2.xz,357.31 KB, application/x-xz)
2024-12-03 08:44 UTC, Pavol Cvengros
Details
emerge --info (emerge_info.txt,8.57 KB, text/plain)
2024-12-03 08:45 UTC, Pavol Cvengros
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Pavol Cvengros 2024-12-03 08:39:35 UTC
Build will fail with error on:

../../../../../qtwebengine-everywhere-src-6.8.1/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/text/string_concatenate.h:178:43: note: remove the ‘< >’
../../../../../qtwebengine-everywhere-src-6.8.1/src/3rdparty/chromium/third_party/blink/renderer/modules/serial/serial_port_underlying_sink.h:23:49: error: ‘Dispose’ has not been declared
   23 |   USING_PRE_FINALIZER(SerialPortUnderlyingSink, Dispose);
      |                                                 ^~~~~~~
../../../../../qtwebengine-everywhere-src-6.8.1/src/3rdparty/chromium/third_party/blink/renderer/modules/serial/serial_port_underlying_sink.h:23:3: error: ISO C++ forbids declaration of ‘USING_PRE_FINALIZER’ with no type [-fpermissive]
   23 |   USING_PRE_FINALIZER(SerialPortUnderlyingSink, Dispose);
      |   ^~~~~~~~~~~~~~~~~~~
Comment 1 Pavol Cvengros 2024-12-03 08:40:16 UTC
Created attachment 913206 [details]
eclass-debug.log
Comment 2 Pavol Cvengros 2024-12-03 08:40:29 UTC
Created attachment 913207 [details]
enviroment
Comment 3 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-12-03 08:42:57 UTC
Please include build.log and emerge --info too (assume it's coming but just saying in case).
Comment 4 Pavol Cvengros 2024-12-03 08:43:56 UTC
Created attachment 913208 [details]
build.log part 1
Comment 5 Pavol Cvengros 2024-12-03 08:44:18 UTC
Created attachment 913209 [details]
build.log part 2
Comment 6 Pavol Cvengros 2024-12-03 08:45:27 UTC
Created attachment 913210 [details]
emerge --info
Comment 7 Ionen Wolkens gentoo-dev 2024-12-03 08:52:23 UTC
Haven't tried but almost certainly only happens with USE=-jumbo-build (I almost never test that given how much longer it takes to build).

I'll have a look but it'll probably take a while (maybe not today), I'd suggest to just enable it in the interim. It's default so it shouldn't affect too many users thankfully.
Comment 8 Pavol Cvengros 2024-12-03 08:55:59 UTC
ok, I will run the build with "jumbo-build" enabled
Comment 9 Ionen Wolkens gentoo-dev 2024-12-03 10:02:32 UTC
Hm, haven't looked too in-depth yet, but this line actually shouldn't be in chromium-122 that Qt is using, so I'm guessing [1] was used in a security backport and it probably missed another commit that adds prefinalizer.h somewhere (works by accident by combining files w/ jumbo-build).

[1] https://github.com/chromium/chromium/commit/8ecbee8becf25733afa6dde28c3fde6a1ee2498e
Comment 10 Ionen Wolkens gentoo-dev 2024-12-03 10:05:49 UTC
(6.8.1 specific given 6.8.0 does not have this)
Comment 11 Pavol Cvengros 2024-12-03 10:11:49 UTC
I can confirm jumbo-build works fine
Comment 12 Ionen Wolkens gentoo-dev 2024-12-03 11:07:04 UTC
(In reply to Pavol Cvengros from comment #11)
> I can confirm jumbo-build works fine
Thanks, I'll fix -jumbo once these test builds finish assuming I'm still there by then (otherwise it'll be tomorrow).

(In reply to Ionen Wolkens from comment #9)
> it probably missed another commit that adds prefinalizer.h somewhere
It should probably be included in the file that uses it but upstream chromium isn't broken because of [1] adding:

    +#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"

Which itself has the needed:

    #include "third_party/blink/renderer/platform/heap/prefinalizer.h"

So.. this is technically fixed in Qt dev branch already which has chromium-126 or so.

[1] https://github.com/chromium/chromium/commit/dc046dfad1eff473e0ec946b9412ee6cd3c07ac4
Comment 13 Larry the Git Cow gentoo-dev 2024-12-03 17:15:28 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=70dc2b7dc6859ab2ce177f259ccaccf145d886b5

commit 70dc2b7dc6859ab2ce177f259ccaccf145d886b5
Author:     Ionen Wolkens <ionen@gentoo.org>
AuthorDate: 2024-12-03 11:32:27 +0000
Commit:     Ionen Wolkens <ionen@gentoo.org>
CommitDate: 2024-12-03 17:14:39 +0000

    dev-qt/qtwebengine: update patchset for >=6.8.1 again
    
    6.8-6 -> 6.8-7 changes:
      Added:
      * gcc-ICE-workaround.patch (imported from files/)
      * missing-prefinalizer.patch (bug #945808)
    
    Hopefully no more patches for a while (at least none of
    these needed revbumps).
    
    Closes: https://bugs.gentoo.org/945808
    Signed-off-by: Ionen Wolkens <ionen@gentoo.org>

 dev-qt/qtwebengine/Manifest                        |  2 +-
 .../qtwebengine-6.8.1-gcc-ICE-workaround.patch     | 36 ----------------------
 dev-qt/qtwebengine/qtwebengine-6.8.1.ebuild        |  3 +-
 dev-qt/qtwebengine/qtwebengine-6.8.9999.ebuild     |  3 +-
 dev-qt/qtwebengine/qtwebengine-6.9999.ebuild       |  3 +-
 5 files changed, 4 insertions(+), 43 deletions(-)