Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 952059 - =dev-qt/qtwebengine-6.8.2-r1 fails compile: error: cannot tail-call: address of caller arguments taken
Summary: =dev-qt/qtwebengine-6.8.2-r1 fails compile: error: cannot tail-call: address ...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Qt Bug Alias
URL:
Whiteboard:
Keywords:
Depends on: 951997
Blocks: gcc-15
  Show dependency tree
 
Reported: 2025-03-25 15:43 UTC by tdr
Modified: 2025-03-26 13:36 UTC (History)
3 users (show)

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


Attachments
failed build log (qtwebengine-6.8.2-r1-build.lg,424.19 KB, text/plain)
2025-03-25 15:43 UTC, tdr
Details
emerge --info (emerge--info.txt,6.21 KB, text/plain)
2025-03-25 15:45 UTC, tdr
Details

Note You need to log in before you can comment on or make changes to this bug.
Description tdr 2025-03-25 15:43:39 UTC
Created attachment 922741 [details]
failed build log

FAILED: host/obj/third_party/protobuf/protobuf_lite/generated_message_tctable_lite.o 
/usr/bin/x86_64-pc-linux-gnu-g++ -MMD -MF host/obj/third_party/protobuf/protobuf_lite/generated_message_tctable_lite.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -DTOOLKIT_QT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0 -DHAVE_PTHREAD -Ihost/gen -I../../../../../qtwebengine-everywhere-src-6.8.2/src/3rdparty/chromium -I../../../../../qtwebengine-everywhere-src-6.8.2/src/3rdparty/chromium/third_party/protobuf/src -fno-ident -fno-strict-aliasing -fstack-protector -Wno-unknown-pragmas -Wno-address -Wno-parentheses -Wno-sign-compare -Wno-stringop-overflow -Wno-stringop-overread -Wno-psabi -Wno-multichar -Wno-format-zero-length -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pipe -pthread -m64 -msse3 -O2 -fdata-sections -ffunction-sections -fno-math-errno -fno-omit-frame-pointer -g0 -fvisibility=hidden -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-comments -Wno-packed-not-aligned -Wno-dangling-else -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wno-deprecated-copy -Wno-expansion-to-defined -std=gnu++20 -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -Wno-narrowing -Wno-class-memaccess -Wno-attributes -Wno-class-memaccess -Wno-subobject-linkage -Wno-invalid-offsetof -Wno-return-type -Wno-deprecated-copy -march=native -O3 -mprefer-vector-width=512 -fno-vect-cost-model -pipe -c ../../../../../qtwebengine-everywhere-src-6.8.2/src/3rdparty/chromium/third_party/protobuf/src/google/protobuf/generated_message_tctable_lite.cc -o host/obj/third_party/protobuf/protobuf_lite/generated_message_tctable_lite.o
../../../../../qtwebengine-everywhere-src-6.8.2/src/3rdparty/chromium/third_party/protobuf/src/google/protobuf/generated_message_tctable_lite.cc: In static member function ‘static const char* google::protobuf::internal::TcParser::MpPackedFixed(google::protobuf::MessageLite*, const char*, google::protobuf::internal::ParseContext*, const google::protobuf::internal::TcParseTableBase*, uint64_t, google::protobuf::internal::TcFieldData)’:
../../../../../qtwebengine-everywhere-src-6.8.2/src/3rdparty/chromium/third_party/protobuf/src/google/protobuf/generated_message_tctable_lite.cc:1438:45: error: cannot tail-call: address of caller arguments taken
 1438 |     PROTOBUF_MUSTTAIL return MpRepeatedFixed(PROTOBUF_TC_PARAM_PASS);
      |                              ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
In static member function ‘static const char* google::protobuf::internal::TcParser::TagDispatch(google::protobuf::MessageLite*, const char*, google::protobuf::internal::ParseContext*, const google::protobuf::internal::TcParseTableBase*, uint64_t, google::protobuf::internal::TcFieldData)’,
    inlined from ‘static const char* google::protobuf::internal::TcParser::ToTagDispatch(google::protobuf::MessageLite*, const char*, google::protobuf::internal::ParseContext*, const google::protobuf::internal::TcParseTableBase*, uint64_t, google::protobuf::internal::TcFieldData)’ at ../../../../../qtwebengine-everywhere-src-6.8.2/src/3rdparty/chromium/third_party/protobuf/src/google/protobuf/generated_message_tctable_lite.cc:121:39,
    inlined from ‘static const char* google::protobuf::internal::TcParser::MpPackedFixed(google::protobuf::MessageLite*, const char*, google::protobuf::internal::ParseContext*, const google::protobuf::internal::TcParseTableBase*, uint64_t, google::protobuf::internal::TcFieldData)’ at ../../../../../qtwebengine-everywhere-src-6.8.2/src/3rdparty/chromium/third_party/protobuf/src/google/protobuf/generated_message_tctable_lite.cc:1459:41:
../../../../../qtwebengine-everywhere-src-6.8.2/src/3rdparty/chromium/third_party/protobuf/src/google/protobuf/generated_message_tctable_lite.cc:107:46: error: cannot tail-call: address of caller arguments taken
  107 |   PROTOBUF_MUSTTAIL return fast_entry->target(PROTOBUF_TC_PARAM_PASS);
      |                            ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
Comment 1 tdr 2025-03-25 15:45:24 UTC
Created attachment 922743 [details]
emerge --info
Comment 2 tdr 2025-03-25 15:49:46 UTC
Last successful build was 2025-03-18T12:46:56, would have been using weekly snapshot gcc-15.0.1_pre20250316
Comment 3 Ionen Wolkens gentoo-dev 2025-03-25 17:00:17 UTC
(In reply to tdr from comment #2)
> Last successful build was 2025-03-18T12:46:56, would have been using weekly
> snapshot gcc-15.0.1_pre20250316
Haven't confirmed but that makes it sounds like a gcc15-specific issue that "could" be regression. CC'ing toolchain@.
Comment 4 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-03-26 08:17:11 UTC
The story here is that GCC 15 will support [[clang::musttail]], but it turns out that [[clang::musttail]] in Clang (and as it's a Clang-namespaced extension, they get to decide the semantics) takes a "UB on invalid input" approach rather than diagnosing.

The plan is to make [[clang::musttail]] relaxed (matching Clang) and to have [[gnu::musttail]] with diagnostics.

This shows up now in qtwebengine because __has_attribute sees musttail is available, so it automagically uses it (which is fine), just a GCC bug then gets in the way.

I'm probably going to backport a patch to just temporarily disable musttail again until next week, as various fixes are landing.
Comment 5 Larry the Git Cow gentoo-dev 2025-03-26 12:39:34 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=251f3a203f46d414fc28559b43614e0506291536

commit 251f3a203f46d414fc28559b43614e0506291536
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2025-03-26 12:36:39 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2025-03-26 12:39:03 +0000

    sys-devel/gcc: backport two fixes to 15.0.1_pre20250323
    
    See https://bugs.gentoo.org/952059#c4, quoting that:
    > The story here is that GCC 15 will support [[clang::musttail]], but it
    > turns out that [[clang::musttail]] in Clang (and as it's a Clang-namespaced
    > extension, they get to decide the semantics) takes a "UB on invalid input"
    > approach rather than diagnosing.
    >
    > The plan is to make [[clang::musttail]] relaxed (matching Clang) and to
    > have [[gnu::musttail]] with diagnostics.
    >
    > This shows up now in qtwebengine because __has_attribute sees musttail is
    > available, so it automagically uses it (which is fine), just a GCC bug
    > then gets in the way.
    >
    > I'm probably going to backport a patch to just temporarily disable musttail
    > again until next week, as various fixes are landing.
    
    I've also backported a fix to fix an e2fsprogs/sqlite miscompilation
    on x86.
    
    Closes: https://bugs.gentoo.org/951997
    Closes: https://bugs.gentoo.org/951999
    Closes: https://bugs.gentoo.org/952059
    Closes: https://bugs.gentoo.org/952085
    Signed-off-by: Sam James <sam@gentoo.org>

 .../gcc-15.0.1_pre20250323-disable-musttail.patch  | 199 +++++++++++++++++++++
 .../files/gcc-15.0.1_pre20250323-e2fsprogs.patch   | 112 ++++++++++++
 sys-devel/gcc/gcc-15.0.1_pre20250323-r1.ebuild     |  54 ++++++
 3 files changed, 365 insertions(+)
Comment 6 Ionen Wolkens gentoo-dev 2025-03-26 13:36:43 UTC
Thanks!