Summary: | net-libs/webkit-gtk-2.40.0-r410 compile error on arm64 (ARM64/A64DOpcode.h:218:13: error: dataLogLn was not declared in this scope) | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Steve Arnold <nerdboy> |
Component: | Current packages | Assignee: | Gentoo Linux Gnome Desktop Team <gnome> |
Status: | RESOLVED OBSOLETE | ||
Severity: | normal | Keywords: | PATCH |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | ARM64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | compressed log file |
Description
Steve Arnold
![]() ![]() Please always include the full build.log. Created attachment 859049 [details]
compressed log file
FAILED: Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/disassembler/ARM64/A64DOpcode.cpp.o /usr/bin/aarch64-unknown-linux-gnu-g++ -DBUILDING_GTK__=1 -DBUILDING_JavaScriptCore -DBUILDING_WEBKIT=1 -DBUILDING_WITH_CMAKE=1 -DBWRAP_EXECUTABLE=\"/usr/bin/bwrap\" -DDBUS_PROXY_EXECUTABLE=\"/usr/bin/xdg-dbus-proxy\" -DGETTEXT_PACKAGE=\"WebKitGTK-4.1\" -DHAVE_CONFIG_H=1 -DJSC_GLIB_API_ENABLED -DJavaScriptCore_EXPORTS -DPAS_BMALLOC=1 -DSTATICALLY_LINKED_WITH_WTF -DSTATICALLY_LINKED_WITH_bmalloc -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0_build/JavaScriptCore/Headers -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0_build -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/API -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/assembler -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/b3 -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/b3/air -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/bindings -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/builtins -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/bytecode -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/bytecompiler -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/dfg -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/disassembler -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/disassembler/ARM64 -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/disassembler/zydis/Zydis -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/domjit -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/ftl -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/heap -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/debugger -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/inspector -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/inspector/agents -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/inspector/augmentable -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/inspector/remote -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/interpreter -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/jit -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/llint -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/parser -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/profiler -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/runtime -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/tools -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/wasm -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/wasm/js -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/yarr -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0_build/JavaScriptCore/DerivedSources -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0_build/JavaScriptCore/DerivedSources/inspector -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0_build/JavaScriptCore/DerivedSources/runtime -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0_build/JavaScriptCore/DerivedSources/yarr -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/API/glib -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0_build/JavaScriptCoreGLib/DerivedSources -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0_build/JavaScriptCoreGLib/DerivedSources/jsc -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0_build/JavaScriptCoreGLib/Headers -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/inspector/remote/glib -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0_build/WTF/Headers -I/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0_build/bmalloc/Headers -isystem /usr/include/glib-2.0 -isystem /usr/lib64/glib-2.0/include -DNDEBUG -fdiagnostics-color=always -Wextra -Wall -pipe -fmax-errors=20 -Wno-odr -Wno-stringop-overread -Wno-stringop-overflow -Wno-nonnull -Wno-array-bounds -Wno-expansion-to-defined -Wno-noexcept-type -Wno-psabi -Wno-misleading-indentation -Wno-maybe-uninitialized -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wno-tautological-compare -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=8 -fuse-linker-plugin -march=armv8-a+crc+crypto -pipe -Wl,-O1 -Wl,--as-needed -fno-strict-aliasing -fno-exceptions -fno-rtti -std=c++20 -fPIC -fvisibility=hidden -ffp-contract=off -MD -MT Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/disassembler/ARM64/A64DOpcode.cpp.o -MF Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/disassembler/ARM64/A64DOpcode.cpp.o.d -o Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/disassembler/ARM64/A64DOpcode.cpp.o -c /var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.cpp In file included from /var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.cpp:30: /var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.h: In member function void JSC::ARM64Disassembler::A64DOpcode::appendSIMDLaneIndexAndType(unsigned int): /var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0/Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.h:218:13: error: dataLogLn was not declared in this scope 218 | dataLogLn("Dissassembler saw invalid simd lane type ", imm6); | ^~~~~~~~~ <sigh> turns out this is not a flag/env issue since this fixes it with both gcc and clang: $ cat /etc/portage/patches/net-libs/webkit-gtk-2.40.0-r410/add-missing-header-in-arm64-disassembler.patch --- a/Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.h.orig 2023-03-26 16:18:08.116308682 -0700 +++ b/Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.h 2023-03-26 16:18:25.407279942 -0700 @@ -27,6 +27,7 @@ #include <wtf/Assertions.h> #include <stdint.h> +#include <wtf/DataLog.h> namespace JSC { namespace ARM64Disassembler { (In reply to Steve Arnold from comment #4) > <sigh> turns out this is not a flag/env issue since this fixes it with both > gcc and clang: > > $ cat > /etc/portage/patches/net-libs/webkit-gtk-2.40.0-r410/add-missing-header-in- > arm64-disassembler.patch > --- a/Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.h.orig > 2023-03-26 16:18:08.116308682 -0700 > +++ b/Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.h 2023-03-26 > 16:18:25.407279942 -0700 > @@ -27,6 +27,7 @@ > > #include <wtf/Assertions.h> > #include <stdint.h> > +#include <wtf/DataLog.h> > > namespace JSC { namespace ARM64Disassembler { Can you send it upstream? sadly the patch just leads to linker failures: [3195/12602] : && /usr/lib/llvm/16/bin/clang++ -fPIC -fdiagnostics-color=always -fcolor-diagnostics -Wextra -Wall -pipe -Wno-noexcept-type -Wno-psabi -Wno-misleading-indentation -Wno-parentheses-equality -Qunused-arguments -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wno-tautological-compare -O3 -pipe -flto=thin -fvectorize -Wno-deprecated -fuse-ld=lld -fno-strict-aliasing -fno-exceptions -fno-rtti -Wl,--no-undefined -O3 -pipe -flto=thin -fvectorize -Wno-deprecated -fuse-ld=lld -Wl,-O1 -Wl,--as-needed -Wl,--no-keep-memory -Wl,--disable-new-dtags -shared -Wl,-soname,libjavascriptcoregtk-4.1.so.0 -o lib/libjavascriptcoregtk-4.1.so.0.3.9 @CMakeFiles/JavaScriptCore.rsp && : FAILED: lib/libjavascriptcoregtk-4.1.so.0.3.9 : && /usr/lib/llvm/16/bin/clang++ -fPIC -fdiagnostics-color=always -fcolor-diagnostics -Wextra -Wall -pipe -Wno-noexcept-type -Wno-psabi -Wno-misleading-indentation -Wno-parentheses-equality -Qunused-arguments -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wno-tautological-compare -O3 -pipe -flto=thin -fvectorize -Wno-deprecated -fuse-ld=lld -fno-strict-aliasing -fno-exceptions -fno-rtti -Wl,--no-undefined -O3 -pipe -flto=thin -fvectorize -Wno-deprecated -fuse-ld=lld -Wl,-O1 -Wl,--as-needed -Wl,--no-keep-memory -Wl,--disable-new-dtags -shared -Wl,-soname,libjavascriptcoregtk-4.1.so.0 -o lib/libjavascriptcoregtk-4.1.so.0.3.9 @CMakeFiles/JavaScriptCore.rsp && : ld.lld: error: undefined symbol: JSC::B3::Value::hasV128() const >>> referenced by B3Const128Value.cpp >>> lto.tmp:(JSC::B3::Const128Value::vectorAndConstant(JSC::B3::Procedure&, JSC::B3::Value const*) const) >>> referenced by B3Const128Value.cpp >>> lto.tmp:(JSC::B3::Const128Value::vectorOrConstant(JSC::B3::Procedure&, JSC::B3::Value const*) const) >>> referenced by B3Const128Value.cpp >>> lto.tmp:(JSC::B3::Const128Value::vectorXorConstant(JSC::B3::Procedure&, JSC::B3::Value const*) const) ld.lld: error: undefined symbol: JSC::B3::Value::asV128() const >>> referenced by B3Const128Value.cpp >>> lto.tmp:(JSC::B3::Const128Value::vectorAndConstant(JSC::B3::Procedure&, JSC::B3::Value const*) const) >>> referenced by B3Const128Value.cpp >>> lto.tmp:(JSC::B3::Const128Value::vectorOrConstant(JSC::B3::Procedure&, JSC::B3::Value const*) const) >>> referenced by B3Const128Value.cpp >>> lto.tmp:(JSC::B3::Const128Value::vectorXorConstant(JSC::B3::Procedure&, JSC::B3::Value const*) const) clang-16: error: linker command failed with exit code 1 (use -v to see invocation) ninja: build stopped: subcommand failed. Hmm, with the header patch and USE=jumbo-build it installs fine: >>> Completed (1 of 1) net-libs/webkit-gtk-2.40.0-r410::gentoo * Messages for package net-libs/webkit-gtk-2.40.0-r410: * Log file: /var/log/portage/net-libs:webkit-gtk-2.40.0-r410:20230327-013311.log * Package: net-libs/webkit-gtk-2.40.0-r410:4.1/0 * Repository: gentoo * Maintainer: gnome@gentoo.org * USE: X arm64 elibc_glibc gnome-keyring gstreamer introspection jpeg2k jumbo-build kernel_linux lcms pdf seccomp spell userland_GNU wayland * FEATURES: network-sandbox preserve-libs sandbox userpriv usersandbox * Messages for package net-libs/webkit-gtk-2.40.0-r410: * Log file: /var/log/portage/net-libs:webkit-gtk-2.40.0-r410:20230327-013312.log * Package: net-libs/webkit-gtk-2.40.0-r410:4.1/0 * Repository: gentoo * Maintainer: gnome@gentoo.org * USE: X arm64 elibc_glibc gnome-keyring gstreamer introspection jpeg2k jumbo-build kernel_linux lcms pdf seccomp spell userland_GNU wayland * FEATURES: network-sandbox preserve-libs sandbox userpriv usersandbox * 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 pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms split-elog strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr' * CFLAGS='-O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=8 -fuse-linker-plugin -march=armv8-a+crc+crypto -pipe -Wl,-O1 -Wl,--as-needed' * CXXFLAGS='-O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=8 -fuse-linker-plugin -march=armv8-a+crc+crypto -pipe -Wl,-O1 -Wl,--as-needed' * FFLAGS='-O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=8 -fuse-linker-plugin -march=armv8-a+crc+crypto -pipe -Wl,-O1 -Wl,--as-needed' * FCFLAGS='-O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=8 -fuse-linker-plugin -march=armv8-a+crc+crypto -pipe -Wl,-O1 -Wl,--as-needed' * F77FLAGS='-O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=8 -fuse-linker-plugin -march=armv8-a+crc+crypto -pipe -Wl,-O1 -Wl,--as-needed' * LDFLAGS='-Wl,-O1 -Wl,--as-needed -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=8 -fuse-linker-plugin -march=armv8-a+crc+crypto -pipe' * MAKEOPTS='-j8' * gcc (Gentoo 12.2.1_p20230304 p13) 12.2.1 20230304 * g++ (Gentoo 12.2.1_p20230304 p13) 12.2.1 20230304 * GNU ld (Gentoo 2.40 p3) 2.40.0 * Linux tycho 6.3.0-rc2-x13s-r0 #1 SMP PREEMPT Sun Mar 19 12:55:47 PDT 2023 aarch64 GNU/Linux * Checking whether python3_11 is suitable ... * >=dev-lang/python-3.11.1-r1:3.11[xml(+)] ... * Using python3.11 to build (via PYTHON_COMPAT iteration) * Source directory (CMAKE_USE_DIR): "/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0" * Build directory (BUILD_DIR): "/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0_build" * ============================================================================= * Applying user patches from /etc/portage/patches ... * Applying add-missing-header-in-arm64-disassembler.patch ... * User patches applied. * ============================================================================= * Disabling deprecation warnings ... * Source directory (CMAKE_USE_DIR): "/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0" * Build directory (BUILD_DIR): "/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0_build" * Source directory (CMAKE_USE_DIR): "/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0" * Build directory (BUILD_DIR): "/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0_build" * Skipping make test/check due to ebuild restriction. * Source directory (CMAKE_USE_DIR): "/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0" * Build directory (BUILD_DIR): "/var/tmp/portage/net-libs/webkit-gtk-2.40.0-r410/work/webkitgtk-2.40.0_build" * Final size of build directory: 2481268 KiB ( 2.3 GiB) * Final size of installed tree: 154836 KiB (151.2 MiB) * removing unneeded *.la files * Install additional packages for optional runtime features: * media-plugins/gst-plugins-dash for (MPEG-)DASH support * media-plugins/gst-plugins-hls for HTTP-Live-Streaming support * GNU info directory index is up-to-date. It's been a while since I took a spelunking/patching trip through all that lovely WTF code, but this is where I am now: * new arm64 on EFI BIOS laptop * install is more-or-less brand new, rebuilt on hardened profile, then rebuilt again on desktop/gnome profile * just a straight profile/simple make.conf with lto-overlay * completed initial gnome install in one go (no build issues) * did not hit webkit failure until upgrade to 2.40.0-r410 I'm rebuilding again now without the disassembler patch but with jumbo-build enabled (which should complete shortly) so at this point my answer is "use unified build on anything that smells like a normal desktop-y thing". Seems like non-unified build still has frequent regressions, possibly needs patching and/or flag filtering, and just may or may not work on any given upgrade. One other note; lto-overlay filters flto flags for webkit-gtk but it currently misses :4.1/0 since it still uses :3 and :4 only. SO with 2.40.0-r410: * jumbo-build + full lto-overlay flags and gcc-12 does work * non-unified build with patch and filtering flto should also work * non-unified build with no patch and regardless of flags does not work The wtf/DataLog.h missing header was fixed up in upstream commit 464f082ed0 for v2.42. 2.42.1 still failed non-unified build on arm64 due to missing headers in ARM64 JIT code, but I just fixed that up in Gentoo and filed upstream PR https://github.com/WebKit/WebKit/pull/19242 For me ThinLTO webkit-gtk builds fine on arm64, but crashes at runtime when used by evolution for displaying half of my mails (including ALL github and gitlab automated e-mails). All crashes go away when built without LTO. I still have runtime issues outside evolution on my arm64 - the rendering is huge, as if I used 4x HiDPI scale instead of 2x or something, while mouse handling is at correct setting and off from the rendering; but I believe this is due to using simpledrm framebuffer forced to 4K + llvmpipe and specific to my system, where xdg-desktop-portal even tells me my 27" monitor is 46" instead, so I think webkit is making some wrong assumptions somewhere from bad data instead of just working like any GTK app works fine here re hidpi scale. For the lto-overlay, this bug entry isn't going to lead anywhere - that one needs a report to the appropriate place for that one. But good to know about such an overlay existing, I should peek and compare my package.env files with what's going on in there :) Marking this bug here as OBSOLETE on the premise of upstream having missed the particular missing header that was originally reported here as a build error. Please file a new issues with specifics on issues on current versions, if any. |