Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 915197 - net-libs/webkit-gtk-2.40.5-r410[jumbo-build]: failed (compile phase): undefined reference to 'WebCore::FrameDestructionObserver::frame() const'
Summary: net-libs/webkit-gtk-2.40.5-r410[jumbo-build]: failed (compile phase): undefin...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Linux Gnome Desktop Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 914901
  Show dependency tree
 
Reported: 2023-10-05 07:39 UTC by Joonas Niilola
Modified: 2024-03-20 22:29 UTC (History)
2 users (show)

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


Attachments
build.log.xz (build.log.xz,330.43 KB, application/x-xz)
2023-10-05 07:47 UTC, Joonas Niilola
Details
emerge --info (amd64) (emerge-info.txt,6.57 KB, text/plain)
2023-10-15 14:16 UTC, Michał Górny
Details
net-libs:webkit-gtk-2.40.5-r410:20231014-082808.log.xz (amd64) (net-libs:webkit-gtk-2.40.5-r410:20231014-082808.log.xz,329.87 KB, application/x-xz)
2023-10-15 14:27 UTC, Michał Górny
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Joonas Niilola gentoo-dev 2023-10-05 07:39:55 UTC
Portage 3.0.49 (python 3.11.5-final-0, default/linux/x86/17.0/desktop/gnome, gcc-13, glibc-2.37-r7, 6.1.55-gentoo i686)
=================================================================
System uname: Linux-6.1.55-gentoo-i686-AMD_Ryzen_9_5950X_16-Core_Processor-with-glibc2.37
KiB Mem:   131792200 total, 127927440 free
KiB Swap:          0 total,         0 free
Timestamp of repository gentoo: Thu, 05 Oct 2023 05:16:52 +0000
Head commit of repository gentoo: b40b2e312c64e4807dcc8125ebe30fdaaba22e32

sh bash 5.1_p16-r6
ld GNU ld (Gentoo 2.40 p5) 2.40.0
app-misc/pax-utils:        1.3.7::gentoo
app-shells/bash:           5.1_p16-r6::gentoo
dev-lang/perl:             5.38.0-r1::gentoo
dev-lang/python:           3.11.5::gentoo
dev-util/cmake:            3.26.5-r2::gentoo
dev-util/meson:            1.2.1-r1::gentoo
sys-apps/baselayout:       2.14::gentoo
sys-apps/openrc:           0.48::gentoo
sys-apps/sandbox:          2.37::gentoo
sys-devel/autoconf:        2.71-r6::gentoo
sys-devel/automake:        1.16.5-r1::gentoo
sys-devel/binutils:        2.40-r5::gentoo
sys-devel/binutils-config: 5.5::gentoo
sys-devel/gcc:             13.2.1_p20230826::gentoo
sys-devel/gcc-config:      2.11::gentoo
sys-devel/libtool:         2.4.7-r1::gentoo
sys-devel/llvm:            16.0.6::gentoo
sys-devel/make:            4.4.1-r1::gentoo
sys-kernel/linux-headers:  6.1::gentoo (virtual/os-headers)
sys-libs/glibc:            2.37-r7::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/gentoo
    priority: -1000
    volatile: False

ACCEPT_KEYWORDS="x86"
ACCEPT_LICENSE="*"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=i686 -O2 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=i686 -O2 -pipe"
DISTDIR="/var/cache/distfiles"
EMERGE_DEFAULT_OPTS="--autounmask=y --autounmask-continue --autounmask-use=y --autounmask-write --binpkg-changed-deps=y --buildpkg-exclude virtual/* --buildpkg-exclude acct-* --buildpkg-exclude sys-kernel/* --complete-graph --nospinner --jobs=12 --usepkg"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME"
FCFLAGS="-march=i686 -O2 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch parallel-install pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-march=i686 -O2 -pipe"
GENTOO_MIRRORS="https://distfiles.gentoo.org"
LANG="C.UTF8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LEX="flex"
LINGUAS=" en en_US en-US fi sv "
MAKEOPTS="-j32"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="X a52 aac acl acpi alsa bluetooth branding bzip2 cairo cdda cdr cli colord crypt cups dbus dri dts dvd dvdr eds elogind encode evo exif flac fortran gdbm gif gnome gnome-keyring gnome-online-accounts gpm gstreamer gtk gui iconv icu introspection ipv6 jpeg keyring lcms libnotify libtirpc mad mng mp3 mp4 mpeg nautilus ncurses networkmanager nptl ogg opengl openmp openrc pam pango pcre pdf png policykit ppds pulseaudio qt5 readline sdl seccomp sound spell split-usr ssl startup-notification svg sysprof test-rust tiff tracker truetype udev udisks unicode upower usb vorbis vulkan wayland wxwidgets x264 x86 xattr xcb xft xml xv xvid zlib" ABI_X86="32" ADA_TARGET="gnat_2021" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt rdrand sha sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev" KERNEL="linux" L10N="en en_US en-US fi sv" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LLVM_TARGETS="BPF NVPTX" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-1" POSTGRES_TARGETS="postgres15" PYTHON_SINGLE_TARGET="python3_11" PYTHON_TARGETS="python3_11" RUBY_TARGETS="ruby31" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RANLIB, READELF, RUSTFLAGS, SHELL, SIZE, STRINGS, STRIP, YACC, YFLAGS
Comment 1 Joonas Niilola gentoo-dev 2023-10-05 07:47:09 UTC
Created attachment 872147 [details]
build.log.xz
Comment 2 Joonas Niilola gentoo-dev 2023-10-05 07:48:07 UTC
Note I can compile this version on stable amd64. It always fails to this exact same place, so doubt it's MAKEOPTS related (and with -jumbo-build, memory shouldn't be an issue on x86 either).
Comment 3 Matthew Turnbull 2023-10-12 21:44:39 UTC
Are you sure this is a valid dependency of Bug 914901? I do not believe Cinnamon has any dependencies on webkit-gtk - I don't even have it installed.
Comment 4 Larry the Git Cow gentoo-dev 2023-10-13 07:42:31 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0e87dd5172bc97a6a7e18118e82aad3bbf737aa1

commit 0e87dd5172bc97a6a7e18118e82aad3bbf737aa1
Author:     Joonas Niilola <juippis@gentoo.org>
AuthorDate: 2023-10-13 07:41:03 +0000
Commit:     Joonas Niilola <juippis@gentoo.org>
CommitDate: 2023-10-13 07:41:03 +0000

    profiles/arch/x86: mask few cinnamon things pulling webkit-gtk on x86
    
    Closes: https://bugs.gentoo.org/915197
    Signed-off-by: Joonas Niilola <juippis@gentoo.org>

 profiles/arch/x86/package.use.mask | 6 ++++++
 1 file changed, 6 insertions(+)
Comment 5 Joonas Niilola gentoo-dev 2023-10-13 07:45:19 UTC
Reopening, the problem is still in this webkit-gtk.
Comment 6 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2023-10-15 14:16:04 UTC
Created attachment 872924 [details]
emerge --info (amd64)

I can reproduce it on amd64 as well.  Happens roughly after 30 hours of building it.
Comment 7 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2023-10-15 14:27:11 UTC
Created attachment 872925 [details]
net-libs:webkit-gtk-2.40.5-r410:20231014-082808.log.xz (amd64)

FWICS, the log's roughly the same but attaching for completeness.
Comment 8 Mart Raudsepp gentoo-dev 2023-10-15 15:13:46 UTC
Please do try 2.42.1 if you can. We need to stabilize that one ASAP for security and I don't have any success stories yet about it on an otherwise stable system
Comment 9 Mart Raudsepp gentoo-dev 2023-10-15 15:21:40 UTC
I'm pretty sure the issue comes from building with USE=-jumbo-build, not the architecture then.

With USE=jumbo-build, a bunch of source files are combined together and it's prone to end up having some source *.cpp file be happy and not fail to compile due to a missing header, because another *.cpp file included in the jumbo file (essentially e.g. `cat 1.cpp 2.cpp 3.cpp > jumbo.cpp`) includes the necessary header.

There's a bunch of changes in this area in 2.42, so I suspect it might work better in this regard, but can't be sure it doesn't hit some other issue with -jumbo-build. I'll run some USE=-jumbo-build compile tests and report back.
Comment 10 Mart Raudsepp gentoo-dev 2023-10-15 16:19:25 UTC
Unfortunately I don't even get that far here due to actual different arch issues, albeit this is only with disabled jumbo-build as well:

/tmp/portage/net-libs/webkit-gtk-2.40.5-r410/work/webkitgtk-2.40.5/Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.h:218:13: error: use of undeclared identifier 'dataLogLn'

2.42.1 USE=-jumbo-build also fails, so probably don't waste 30 hours on that quite yet, unless you can USE=jumbo-build it; this looks more common code:

/tmp/portage/net-libs/webkit-gtk-2.42.1-r410/work/webkitgtk-2.42.1/Source/JavaScriptCore/b3/air/AirOptimizePairedLoadStore.cpp:129:37: error: incomplete type 'JSC::CCallHelpers' named in nested name specifier
  129 |                 if ((argBase == Tmp(CCallHelpers::stackPointerRegister) || argBase == Tmp(GPRInfo::callFrameRegister)) && (inst.args[1].base() == Tmp(CCallHelpers::stackPointerRegister) || inst.args[1].base() == Tmp(GPRInfo::callFrameRegister))) {
      |                                     ^~~~~~~~~~~~~~
/tmp/portage/net-libs/webkit-gtk-2.42.1-r410/work/webkitgtk-2.42.1/Source/JavaScriptCore/b3/air/AirInst.h:37:7: note: forward declaration of 'JSC::CCallHelpers'
   37 | class CCallHelpers;
      |       ^
/tmp/portage/net-libs/webkit-gtk-2.42.1-r410/work/webkitgtk-2.42.1/Source/JavaScriptCore/b3/air/AirOptimizePairedLoadStore.cpp:129:151: error: incomplete type 'JSC::CCallHelpers' named in nested name specifier
  129 |                 if ((argBase == Tmp(CCallHelpers::stackPointerRegister) || argBase == Tmp(GPRInfo::callFrameRegister)) && (inst.args[1].base() == Tmp(CCallHelpers::stackPointerRegister) || inst.args[1].base() == Tmp(GPRInfo::callFrameRegister))) {
      |                                                                                                                                                       ^~~~~~~~~~~~~~
/tmp/portage/net-libs/webkit-gtk-2.42.1-r410/work/webkitgtk-2.42.1/Source/JavaScriptCore/b3/air/AirInst.h:37:7: note: forward declaration of 'JSC::CCallHelpers'
   37 | class CCallHelpers;
      |       ^
/tmp/portage/net-libs/webkit-gtk-2.42.1-r410/work/webkitgtk-2.42.1/Source/JavaScriptCore/b3/air/AirOptimizePairedLoadStore.cpp:131:52: error: incomplete type 'JSC::CCallHelpers' named in nested name specifier
  131 |                     if (inst.args[1].base() == Tmp(CCallHelpers::stackPointerRegister))
      |                                                    ^~~~~~~~~~~~~~
/tmp/portage/net-libs/webkit-gtk-2.42.1-r410/work/webkitgtk-2.42.1/Source/JavaScriptCore/b3/air/AirInst.h:37:7: note: forward declaration of 'JSC::CCallHelpers'
   37 | class CCallHelpers;
      |       ^
/tmp/portage/net-libs/webkit-gtk-2.42.1-r410/work/webkitgtk-2.42.1/Source/JavaScriptCore/b3/air/AirOptimizePairedLoadStore.cpp:135:40: error: incomplete type 'JSC::CCallHelpers' named in nested name specifier
  135 |                     if (argBase == Tmp(CCallHelpers::stackPointerRegister))
      |                                        ^~~~~~~~~~~~~~
/tmp/portage/net-libs/webkit-gtk-2.42.1-r410/work/webkitgtk-2.42.1/Source/JavaScriptCore/b3/air/AirInst.h:37:7: note: forward declaration of 'JSC::CCallHelpers'
   37 | class CCallHelpers;
      |       ^
/tmp/portage/net-libs/webkit-gtk-2.42.1-r410/work/webkitgtk-2.42.1/Source/JavaScriptCore/b3/air/AirOptimizePairedLoadStore.cpp:237:42: error: incomplete type 'JSC::CCallHelpers' named in nested name specifier
  237 |         if (target.args[1].base() == Tmp(CCallHelpers::stackPointerRegister)) {
      |                                          ^~~~~~~~~~~~~~
/tmp/portage/net-libs/webkit-gtk-2.42.1-r410/work/webkitgtk-2.42.1/Source/JavaScriptCore/b3/air/AirInst.h:37:7: note: forward declaration of 'JSC::CCallHelpers'
   37 | class CCallHelpers;
      |       ^
/tmp/portage/net-libs/webkit-gtk-2.42.1-r410/work/webkitgtk-2.42.1/Source/JavaScriptCore/b3/air/AirOptimizePairedLoadStore.cpp:288:53: error: incomplete type 'JSC::CCallHelpers' named in nested name specifier
  288 |                     if ((inst.args[1].base() == Tmp(CCallHelpers::stackPointerRegister) || inst.args[1].base() == Tmp(CCallHelpers::framePointerRegister)) && !inst.kind.spill)
      |                                                     ^~~~~~~~~~~~~~
/tmp/portage/net-libs/webkit-gtk-2.42.1-r410/work/webkitgtk-2.42.1/Source/JavaScriptCore/b3/air/AirInst.h:37:7: note: forward declaration of 'JSC::CCallHelpers'
   37 | class CCallHelpers;
      |       ^
/tmp/portage/net-libs/webkit-gtk-2.42.1-r410/work/webkitgtk-2.42.1/Source/JavaScriptCore/b3/air/AirOptimizePairedLoadStore.cpp:288:119: error: incomplete type 'JSC::CCallHelpers' named in nested name specifier
  288 |                     if ((inst.args[1].base() == Tmp(CCallHelpers::stackPointerRegister) || inst.args[1].base() == Tmp(CCallHelpers::framePointerRegister)) && !inst.kind.spill)
      |                                                                                                                       ^~~~~~~~~~~~~~
/tmp/portage/net-libs/webkit-gtk-2.42.1-r410/work/webkitgtk-2.42.1/Source/JavaScriptCore/b3/air/AirInst.h:37:7: note: forward declaration of 'JSC::CCallHelpers'
   37 | class CCallHelpers;
      |       ^
7 errors generated.
Comment 11 Joonas Niilola gentoo-dev 2023-10-15 17:16:16 UTC
(In reply to Mart Raudsepp from comment #9)
> I'm pretty sure the issue comes from building with USE=-jumbo-build, not the
> architecture then.
> 

Sounds plausible as I can build this version on amd64. I have jumbo-build enabled there, disabled on x86.
Comment 12 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2023-10-15 17:31:35 UTC
(In reply to Mart Raudsepp from comment #9)
> I'm pretty sure the issue comes from building with USE=-jumbo-build, not the
> architecture then.

Is jumbo-build likely to work on 4G of RAM?
Comment 13 Mart Raudsepp gentoo-dev 2023-10-15 21:07:56 UTC
4GB is probably sketchy, not sure.

I suggest you package.accept_keyword 2.42.1 specifically and go with that, we'll security stable that soon, so you'd need another 30 hours otherwise again as well.

I've tried 2.42.1 here without jumbo-build, and you should hopefully be good - it only fails in ARM64 specifics with USE=-jumbo-build and the rest went well for me. I'll patch that tomorrow or so (working locally, need to formalize commits, but it's late now), but those failures and fixes are for stuff wrapped in
#if ENABLE(B3_JIT)
#if CPU(ARM64)

.. so you should be good with 2.42.1 revisions.
Can't guarantee there aren't some issues with other USE flag differences though. USE=-gstreamer has been historically fun.
Comment 14 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2023-10-16 03:15:09 UTC
Here's what I'm trying:

[ebuild  N    ~] net-libs/webkit-gtk-2.42.1-r410:4.1/0::gentoo  USE="X avif (gstreamer) introspection jpeg2k jpegxl keyring lcms pdf (seccomp) spell systemd wayland (-aqua) -examples -gamepad -jumbo-build" 0 KiB

See you tomorrow xP.
Comment 15 Joonas Niilola gentoo-dev 2023-10-16 13:06:20 UTC
(In reply to Michał Górny from comment #12)
> 
> Is jumbo-build likely to work on 4G of RAM?

Chromium and Firefox had/has a way to fine-tune the amount of parallel files, I wonder if webkit-gtk has something similar to that? I couldn't find anything obvious while quickly browsing the source code.
Comment 16 Mart Raudsepp gentoo-dev 2023-10-16 13:39:06 UTC
My impression was that they have some cmake dark magic to automatically figure something out for that based on the environment, but it was from reading what someone else was saying, not personal research into it.
At least in the past I'm pretty sure I've seen different total number of files to compile reported by ninja across different machines with the same version/revision and roughly the same USE flags.

To me the main issue on lower-end machines has been the linking step, where swap tended to not even help due to some kind of linker memory access types - that's a case for per-package -Wl,--no-keep-memory in LDFLAGS to help against that a bit.

In my build test I had all USE flags except example and jumbo-build, so I think it ought to go well for mgorny, unless there's any x86(_64)-specific issues. gamepad should be very low impact and not the kind of code that would be prone to missing headers.
Comment 17 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2023-10-17 11:01:33 UTC
Thanks.  I can confirm that 2.42.1-r410 built successfully.
Comment 18 Mart Raudsepp gentoo-dev 2023-10-18 20:34:40 UTC
@juippis - want to drop the profile tweaks you did now, or keep them due to the heavy compile on x86 systems or something? If keeping, the explanation should at least be tweaked to the current reason (plus the problem was non-unified build, not x86).
Comment 19 Larry the Git Cow gentoo-dev 2023-10-22 06:10:17 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2aa9fb4a62890b875e5654141fa02e647d04ef8c

commit 2aa9fb4a62890b875e5654141fa02e647d04ef8c
Author:     Joonas Niilola <juippis@gentoo.org>
AuthorDate: 2023-10-22 06:08:42 +0000
Commit:     Joonas Niilola <juippis@gentoo.org>
CommitDate: 2023-10-22 06:08:42 +0000

    profiles/arch/x86: allow webkit-gtk to be pulled by cinnamon on x86
    
     - the problem on x86-stable was webkit-gtk[-jumbo-build], which will
       be fixed on next webkit-gtk stable.
    
    Bug: https://bugs.gentoo.org/915197
    Signed-off-by: Joonas Niilola <juippis@gentoo.org>

 profiles/arch/x86/package.use.mask | 6 ------
 1 file changed, 6 deletions(-)
Comment 20 Mart Raudsepp gentoo-dev 2024-03-20 22:29:00 UTC
I guess all is good here then. At least for now until the next webkit-gtk series :)