OSSystems / meta-browser

OpenEmbedded/Yocto BSP layer for Web Browsers
MIT License
184 stars 191 forks source link

Update to 108.0.5359.124 #674

Closed rwmacleod closed 1 year ago

rwmacleod commented 1 year ago

FYI, I'll be working on this update starting Nov 7th, 2022. I do the usual testing and try to also ensure that the musl patches work.

rwmacleod commented 1 year ago

I have a 107 draft update https://github.com/rwmacleod/meta-browser It works on qemux86-64 but not for qemuarm64 for both master and kirkstone. I confirmed that 106 works on kirkstone for qemuarm64.

I'll check if upstream knows about this and continue debugging.

rwmacleod commented 1 year ago

I just noticed 107.0.5304.110 : https://chromereleases.googleblog.com/2022/11/stable-channel-update-for-desktop.html so I'll try that next.

rwmacleod commented 1 year ago

Same problem with 107.0.5304.110 on qemuarm and kirkstone. :-(

rakuco commented 1 year ago

Are you having a build issue or is something crashing at runtime?

rwmacleod commented 1 year ago

It builds fine. The program loads, tries to talk to dbus, fails that as usual and then hangs. I have some strace data that I'll summarize later today and I've tried running chromium-bin under gdb but the result was inconclusive at least to me. I'll be doing that again today. I also just gather some logging data that I'll post in a minute from my desktop. Here's the default output:

IMG_20221110_084454.jpg

rwmacleod commented 1 year ago

and the log from /home/foo/.config/chromium/chrome_debug.log doesn't seem to be very helpful:

$ cat /folk/rmacleod/tmp/cr107//chrome_debug--qa64-kirkstone--107.0.5304.110.log
[637:637:1110/124421.267486:VERBOSE1:chrome_crash_reporter_client.cc(190)] GetCollectStatsConsent(): is_official_chrome_build is false so returning false
[637:637:1110/124421.323118:VERBOSE1:chrome_crash_reporter_client.cc(190)] GetCollectStatsConsent(): is_official_chrome_build is false so returning false
[1:1:1110/124423.345632:INFO:cpu_info.cc(53)] Available number of cores: 4
[646:646:1110/124423.346306:INFO:cpu_info.cc(53)] Available number of cores: 4
[646:646:1110/124423.351397:VERBOSE1:zygote_main_linux.cc(218)] ZygoteMain: initializing 0 fork delegates
[1:1:1110/124423.353255:VERBOSE1:zygote_main_linux.cc(218)] ZygoteMain: initializing 0 fork delegates
[637:637:1110/124427.143122:VERBOSE1:webrtc_event_log_manager.cc(96)] WebRTC remote-bound event logging enabled.
[637:637:1110/124427.333477:VERBOSE1:pref_proxy_config_tracker_impl.cc(187)] 0x2000326700: set chrome proxy config service to 0x2000313f00
[637:637:1110/124427.344898:VERBOSE1:google_api_keys.cc(314)] Using default value "invalid-client-id" for API key GOOGLE_CLIENT_ID_MAIN
[637:637:1110/124427.345466:VERBOSE1:google_api_keys.cc(314)] Using default value "invalid-client-secret" for API key GOOGLE_CLIENT_SECRET_MAIN
[637:637:1110/124427.345796:VERBOSE1:google_api_keys.cc(314)] Using default value "invalid-client-id" for API key GOOGLE_CLIENT_ID_REMOTING
[637:637:1110/124427.346119:VERBOSE1:google_api_keys.cc(314)] Using default value "invalid-client-secret" for API key GOOGLE_CLIENT_SECRET_REMOTING
[637:637:1110/124427.346440:VERBOSE1:google_api_keys.cc(314)] Using default value "invalid-client-id" for API key GOOGLE_CLIENT_ID_REMOTING_HOST
[637:637:1110/124427.346752:VERBOSE1:google_api_keys.cc(314)] Using default value "invalid-client-secret" for API key GOOGLE_CLIENT_SECRET_REMOTING_HOST
[637:662:1110/124427.849802:ERROR:bus.cc(399)] Failed to connect to the bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
[637:662:1110/124427.858921:ERROR:bus.cc(399)] Failed to connect to the bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
[637:662:1110/124427.859493:VERBOSE1:select_file_dialog_linux_portal.cc(248)] File chooser portal available: no
[637:665:1110/124500.097682:VERBOSE1:shutdown_signal_handlers_posix.cc(150)] Handling shutdown for signal 2.
rwmacleod commented 1 year ago

FYI: qemuarm and the raspberrypi4 (32bit) and from meta-raspberrypi with 107.0.5304.110 on kirkstone are fine BUT raspberrypi4-64 hangs just as qa64 does.

Should we do the update despite arm64 being broken? Any debugging tips? Today (Nov 11) is a holiday so I may not work on this again until Monday.

rakuco commented 1 year ago

@msisov does this ring a bell by any chance?

msisov commented 1 year ago

So you say it hangs, doesn't it? Can you please paste bt of all threads when it hanged?

rwmacleod commented 1 year ago

@msisov IMG_20221110_185234.jpg

msisov commented 1 year ago

@rwmacleod unfortunately, that's worthless without symbols :(

rwmacleod commented 1 year ago

@msisov kids these days need symbols! ? ;-)

Yeah, it's what I had on hand. Debugging in between meetings today so I'll post what I have later.

rwmacleod commented 1 year ago

IMG_20221116_114251~2.jpg

rakuco commented 1 year ago

Hmm, there's still something wrong with the stack traces. If you launch Chromium with --v=10 --single-process --no-sandbox do you get anything else in the console?

msisov commented 1 year ago

IMG_20221116_114251~2.jpg

it's maybe the very top frame that doesn't a have a symbol (an external lib?). Can you please check the stack trace of that particular thread for the "chromium-bin"? Thanks.

rwmacleod commented 1 year ago

No news; I'm busy with other work. :-( It might be a while so should I clean-up what I have now so that folks who aren't targeting arm64 will at least have a more secure version?

rwmacleod commented 1 year ago

Updating to 107.0.5304.121 https://chromereleases.googleblog.com/2022/11/stable-channel-update-for-desktop_24.html

rwmacleod commented 1 year ago

108.x is out, I'll try that next: https://chromereleases.googleblog.com/2022/12/stable-channel-update-for-desktop.html

rwmacleod commented 1 year ago

108 works for qemuarm64 on master. Next stop, clean-up things and start testing other targets/branches. There were some interesting warnings / errors:

sh-5.2$ chromium 1.1.1.1 [639:665:1205/215218.611180:ERROR:bus.cc(399)] Failed to connect to the bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocke. [639:665:1205/215218.629744:ERROR:bus.cc(399)] Failed to connect to the bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocke. [671:671:1205/215218.988891:ERROR:egl_util.cc(44)] Failed to load GLES library: libGLESv2.so.2: libGLESv2.so.2: cannot open shared object file: No such file or directory [671:671:1205/215219.192908:ERROR:viz_main_impl.cc(186)] Exiting GPU process due to errors during initialization [639:665:1205/215219.618340:ERROR:bus.cc(399)] Failed to connect to the bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocke. [639:665:1205/215219.629415:ERROR:bus.cc(399)] Failed to connect to the bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocke. [639:669:1205/215220.524145:ERROR:component_installer.cc(356)] Failed to read manifest or verify installation for Safety Tips (/home/foo/.config/chromium/SafetyTips/2896).: Success (0) [639:665:1205/215220.926777:ERROR:bus.cc(399)] Failed to connect to the bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocke. [639:665:1205/215220.934264:ERROR:bus.cc(399)] Failed to connect to the bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocke. [724:724:1205/215223.135889:ERROR:egl_util.cc(44)] Failed to load GLES library: libGLESv2.so.2: libGLESv2.so.2: cannot open shared object file: No such file or directory [724:724:1205/215223.178632:ERROR:viz_main_impl.cc(186)] Exiting GPU process due to errors during initialization [732:732:1205/215223.842483:ERROR:egl_util.cc(44)] Failed to load GLES library: libGLESv2.so.2: libGLESv2.so.2: cannot open shared object file: No such file or directory [732:732:1205/215223.909438:ERROR:viz_main_impl.cc(186)] Exiting GPU process due to errors during initialization [741:741:1205/215224.158145:ERROR:egl_util.cc(44)] Failed to load GLES library: libGLESv2.so.2: libGLESv2.so.2: cannot open shared object file: No such file or directory [741:741:1205/215224.200429:ERROR:viz_main_impl.cc(186)] Exiting GPU process due to errors during initialization [757:757:1205/215224.508435:ERROR:egl_util.cc(44)] Failed to load GLES library: libGLESv2.so.2: libGLESv2.so.2: cannot open shared object file: No such file or directory [757:757:1205/215224.551739:ERROR:viz_main_impl.cc(186)] Exiting GPU process due to errors during initialization [774:774:1205/215225.087104:ERROR:angle_platform_impl.cc(43)] Display.cpp:1004 (initialize): ANGLE Display::initialize error 0: Internal Vulkan error (-3): Initialization of an object could not be completed for. ERR: Display.cpp:1004 (initialize): ANGLE Display::initialize error 0: Internal Vulkan error (-3): Initialization of an object could not be completed for implementation-specific reasons, in ../../third_party/an. [774:774:1205/215225.102436:ERROR:gl_display.cc(508)] EGL Driver message (Critical) eglInitialize: Internal Vulkan error (-3): Initialization of an object could not be completed for implementation-specific reas. [774:774:1205/215225.104767:ERROR:gl_display.cc(920)] eglInitialize SwANGLE failed with error EGL_NOT_INITIALIZED [774:774:1205/215225.108715:ERROR:gl_ozone_egl.cc(23)] GLDisplayEGL::Initialize failed. [774:774:1205/215225.169366:ERROR:viz_main_impl.cc(186)] Exiting GPU process due to errors during initialization [783:783:1205/215225.741616:ERROR:angle_platform_impl.cc(43)] Display.cpp:1004 (initialize): ANGLE Display::initialize error 0: Internal Vulkan error (-3): Initialization of an object could not be completed for. ERR: Display.cpp:1004 (initialize): ANGLE Display::initialize error 0: Internal Vulkan error (-3): Initialization of an object could not be completed for implementation-specific reasons, in ../../third_party/an. [783:783:1205/215225.745317:ERROR:gl_display.cc(508)] EGL Driver message (Critical) eglInitialize: Internal Vulkan error (-3): Initialization of an object could not be completed for implementation-specific reas. [783:783:1205/215225.747003:ERROR:gl_display.cc(920)] eglInitialize SwANGLE failed with error EGL_NOT_INITIALIZED [783:783:1205/215225.748941:ERROR:gl_ozone_egl.cc(23)] GLDisplayEGL::Initialize failed. [783:783:1205/215225.781855:ERROR:viz_main_impl.cc(186)] Exiting GPU process due to errors during initialization [790:790:1205/215226.031817:ERROR:angle_platform_impl.cc(43)] Display.cpp:1004 (initialize): ANGLE Display::initialize error 0: Internal Vulkan error (-3): Initialization of an object could not be completed for. ERR: Display.cpp:1004 (initialize): ANGLE Display::initialize error 0: Internal Vulkan error (-3): Initialization of an object could not be completed for implementation-specific reasons, in ../../third_party/an. [790:790:1205/215226.036127:ERROR:gl_display.cc(508)] EGL Driver message (Critical) eglInitialize: Internal Vulkan error (-3): Initialization of an object could not be completed for implementation-specific reas. [790:790:1205/215226.038048:ERROR:gl_display.cc(920)] eglInitialize SwANGLE failed with error EGL_NOT_INITIALIZED [790:790:1205/215226.039674:ERROR:gl_ozone_egl.cc(23)] GLDisplayEGL::Initialize failed. [790:790:1205/215226.085626:ERROR:viz_main_impl.cc(186)] Exiting GPU process due to errors during initialization [797:797:1205/215226.270946:ERROR:gpu_init.cc(523)] Passthrough is not supported, GL is disabled, ANGLE is sh-5.2$

@rakuco @msisov What do you make of this log? I'm not concerned about the d-bus error: "Failed to connect to the bus:" but they rest seems new or at least more verbose than it used to be.

rwmacleod commented 1 year ago

s/94/98/ Not sure if I misread the number or if it changed here: https://chromereleases.googleblog.com/2022/12/stable-channel-update-for-desktop_7.html

rwmacleod commented 1 year ago

Finally back to this work. The license script is broken so I'll work on that first.

MastaG commented 1 year ago

Hi, any update on this?

rwmacleod commented 1 year ago

I'm sorry that this update is dragging on so long but I am getting closer. I pushed a series of commits, that I will likely merge into one large, to: https://github.com/rwmacleod/meta-browser/commits/chromium-108-2023-01-11

I've only tested on master so far. glibc / x86-64 is fine.

@kraj There's a build issue for TCLIBC=musl, shown below, that I'll look at tomorrow. Tips welcome.

[106/57783] x86_64-poky-linux-musl-clang++ -target x86_64-poky-linux-musl  -m64 -march=x86-64-v3 -mlittle-endian -Qunused-arguments -fstack-protector-strong  -O2 -D_FORTIFY_SOURCE=2 -Wformat
 -Wformat-security -Werror=format-security --sysroot=/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108/tmp/work/x86-64-v3-poky-linux-musl/chromium-x11/108.0.5359.124-r0/recipe-sysroot -MMD -MF 
obj/base/third_party/symbolize/symbolize/symbolize.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D
NO_UNWIND_TABLES -D_GNU_SOURCE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLOG_EXPORT= -I../.. -Igen -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing --param=ssp-b
uffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/crashrepo
rts -mllvm -instcombine-lower-dbg-declare=0 -ffp-contract=off -flto=thin -fsplit-lto-unit -fwhole-program-vtables -m64 -msse3 -Xclang -fdebug-compilation-dir -Xclang . -ftrivial-auto-var-ini
t=pattern -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-omit-frame-pointer -g0 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compar
e -Wall -Wno-unused-variable -Wno-c++11-narrowing -Wno-unused-but-set-variable -Wno-misleading-indentation -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -W
no-unneeded-internal-declaration -Wenum-compare-conditional -Wno-unknown-warning-option -Wno-ignored-pragma-optimize -Wno-deprecated-builtins -Wno-bitfield-constant-conversion -std=c++20 -Wn
o-trigraphs -fno-exceptions -fno-rtti -fvisibility-inlines-hidden  -O2 -pipe  -feliminate-unused-debug-types -fmacro-prefix-map=/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108/tmp/work/x86-64
-v3-poky-linux-musl/chromium-x11/108.0.5359.124-r0/chromium-108.0.5359.124=/usr/src/debug/chromium-x11/108.0.5359.124-r0  -fdebug-prefix-map=/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108/tm
p/work/x86-64-v3-poky-linux-musl/chromium-x11/108.0.5359.124-r0/chromium-108.0.5359.124=/usr/src/debug/chromium-x11/108.0.5359.124-r0  -fmacro-prefix-map=/ala-lpggp31/rmacleod/src/distro/yoc
to/b/ch108/tmp/work/x86-64-v3-poky-linux-musl/chromium-x11/108.0.5359.124-r0/chromium-108.0.5359.124/out/Release=/usr/src/debug/chromium-x11/108.0.5359.124-r0  -fdebug-prefix-map=/ala-lpggp3
1/rmacleod/src/distro/yocto/b/ch108/tmp/work/x86-64-v3-poky-linux-musl/chromium-x11/108.0.5359.124-r0/chromium-108.0.5359.124/out/Release=/usr/src/debug/chromium-x11/108.0.5359.124-r0  -fdeb
ug-prefix-map=/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108/tmp/work/x86-64-v3-poky-linux-musl/chromium-x11/108.0.5359.124-r0/recipe-sysroot=  -fmacro-prefix-map=/ala-lpggp31/rmacleod/src/d
istro/yocto/b/ch108/tmp/work/x86-64-v3-poky-linux-musl/chromium-x11/108.0.5359.124-r0/recipe-sysroot=  -fdebug-prefix-map=/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108/tmp/work/x86-64-v3-po
ky-linux-musl/chromium-x11/108.0.5359.124-r0/recipe-sysroot-native= -g1 -fvisibility-inlines-hidden -stdlib=libc++ -c ../../base/third_party/symbolize/symbolize.cc -o obj/base/third_party/sy
mbolize/symbolize/symbolize.o
FAILED: obj/base/third_party/symbolize/symbolize/symbolize.o 
x86_64-poky-linux-musl-clang++ -target x86_64-poky-linux-musl  -m64 -march=x86-64-v3 -mlittle-endian -Qunused-arguments -fstack-protector-strong  -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-se
curity -Werror=format-security --sysroot=/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108/tmp/work/x86-64-v3-poky-linux-musl/chromium-x11/108.0.5359.124-r0/recipe-sysroot -MMD -MF obj/base/thi
rd_party/symbolize/symbolize/symbolize.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TA
BLES -D_GNU_SOURCE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLOG_EXPORT= -I../.. -Igen -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing --param=ssp-buffer-size=4
 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/crashreports -mllvm -
instcombine-lower-dbg-declare=0 -ffp-contract=off -flto=thin -fsplit-lto-unit -fwhole-program-vtables -m64 -msse3 -Xclang -fdebug-compilation-dir -Xclang . -ftrivial-auto-var-init=pattern -O
2 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-omit-frame-pointer -g0 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wall -Wno
-unused-variable -Wno-c++11-narrowing -Wno-unused-but-set-variable -Wno-misleading-indentation -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-
internal-declaration -Wenum-compare-conditional -Wno-unknown-warning-option -Wno-ignored-pragma-optimize -Wno-deprecated-builtins -Wno-bitfield-constant-conversion -std=c++20 -Wno-trigraphs 
-fno-exceptions -fno-rtti -fvisibility-inlines-hidden  -O2 -pipe  -feliminate-unused-debug-types -fmacro-prefix-map=/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108/tmp/work/x86-64-v3-poky-lin
ux-musl/chromium-x11/108.0.5359.124-r0/chromium-108.0.5359.124=/usr/src/debug/chromium-x11/108.0.5359.124-r0  -fdebug-prefix-map=/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108/tmp/work/x86-6
4-v3-poky-linux-musl/chromium-x11/108.0.5359.124-r0/chromium-108.0.5359.124=/usr/src/debug/chromium-x11/108.0.5359.124-r0  -fmacro-prefix-map=/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108/t
mp/work/x86-64-v3-poky-linux-musl/chromium-x11/108.0.5359.124-r0/chromium-108.0.5359.124/out/Release=/usr/src/debug/chromium-x11/108.0.5359.124-r0  -fdebug-prefix-map=/ala-lpggp31/rmacleod/s
rc/distro/yocto/b/ch108/tmp/work/x86-64-v3-poky-linux-musl/chromium-x11/108.0.5359.124-r0/chromium-108.0.5359.124/out/Release=/usr/src/debug/chromium-x11/108.0.5359.124-r0  -fdebug-prefix-ma
p=/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108/tmp/work/x86-64-v3-poky-linux-musl/chromium-x11/108.0.5359.124-r0/recipe-sysroot=  -fmacro-prefix-map=/ala-lpggp31/rmacleod/src/distro/yocto/
b/ch108/tmp/work/x86-64-v3-poky-linux-musl/chromium-x11/108.0.5359.124-r0/recipe-sysroot=  -fdebug-prefix-map=/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108/tmp/work/x86-64-v3-poky-linux-mus
l/chromium-x11/108.0.5359.124-r0/recipe-sysroot-native= -g1 -fvisibility-inlines-hidden -stdlib=libc++ -c ../../base/third_party/symbolize/symbolize.cc -o obj/base/third_party/symbolize/symb
olize/symbolize.o
In file included from ../../base/third_party/symbolize/symbolize.cc:55:
../../base/third_party/symbolize/symbolize.h:101:1: error: unknown type name 'ssize_t'; did you mean 'size_t'?
ssize_t ReadFromOffset(const int fd,
^~~~~~~
size_t
/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108/tmp/work/x86-64-v3-poky-linux-musl/chromium-x11/108.0.5359.124-r0/recipe-sysroot/usr/include/bits/alltypes.h:50:24: note: 'size_t' declared here
typedef unsigned _Addr size_t;
                       ^
../../base/third_party/symbolize/symbolize.cc:150:9: error: functions that differ only in their return type cannot be overloaded
ssize_t ReadFromOffset(const int fd,
~~~~~~~ ^
../../base/third_party/symbolize/symbolize.h:101:9: note: previous declaration is here
ssize_t ReadFromOffset(const int fd,
~~~~~~~ ^
rakuco commented 1 year ago

@rwmacleod Thank you for working on this update!

@kraj There's a build issue for TCLIBC=musl, shown below, that I'll look at tomorrow. Tips welcome.

You need the change to symbolize.h from https://chromium-review.googlesource.com/c/chromium/src/+/3997878

rwmacleod commented 1 year ago

@kraj Thanks, that was the last issue for musl.

Chromium-108.x now builds and works well on master for both qemux86-64 with either glibc or musl. I'll test dunfell next and if that works, I'll go on to squashing patches, trying to write a sane commit log and then build testing for all the branches.

rwmacleod commented 1 year ago

Well, qemux86-64 with glibc on dunfell (dunfell-clang12 for meta-clang), blows up with:

x86_64-poky-linux-clang++ -target x86_64-poky-linux -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -rtlib=compiler-rt --unwindlib=libgcc -stdlib=libc++ -mlittle-endian -Qunused-arguments -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108-dunfell/tmp/work/core2-64-poky-linux/chromium-x11/108.0.5359.124-r0/recipe-sysroot -MMD -MF obj/chrome/common/common_lib/chrome_manifest_url_handlers.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -DSTDC_CONSTANT_MACROS -DSTDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_40 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_40 -DWEBP_EXTERN=extern -DLIBYUV_DISABLE_NEON -DGL_GLEXT_PROTOTYPES -DUSE_GLX -DUSE_EGL -DVK_USE_PLATFORM_XCB_KHR -DON_FOCUS_PING_ENABLED -DTOOLKIT_VIEWS=1 -D_WTL_NO_AUTOMATIC_NAMESPACE -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DUSE_CHROMIUM_ICU=1 -DU_ENABLE_TRACING=1 -DU_ENABLE_RESOURCE_TRACING=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0 -DHAVE_PTHREAD -DSK_CODEC_DECODES_PNG -DSK_CODEC_DECODES_WEBP -DSK_ENCODE_PNG -DSK_ENCODE_WEBP -DSK_ENABLE_SKSL -DSK_UNTIL_CRBUG_1187654_IS_FIXED -DSK_USER_CONFIG_HEADER=\"../../skia/config/SkUserConfig.h\" -DSK_WIN_FONTMGR_NO_SIMULATIONS -DSK_GL -DSK_CODEC_DECODES_JPEG -DSK_ENCODE_JPEG -DSK_HAS_WUFFS_LIBRARY -DSK_VULKAN=1 -DSK_SUPPORT_GPU=1 -DSK_GPU_WORKAROUNDS_HEADER=\"gpu/config/gpu_driver_bug_workaround_autogen.h\" -DV8_USE_EXTERNAL_STARTUP_DATA -DUSE_V8_CONTEXT_SNAPSHOT -DV8_CONTEXT_SNAPSHOT_FILENAME=\"v8_context_snapshot.bin\" -DWEBRTC_ENABLE_AVX2 -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0 -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_POSIX -DWEBRTC_LINUX -DABSL_ALLOCATOR_NOTHROW=1 -DWEBRTC_USE_BUILTIN_ISAC_FIX=0 -DWEBRTC_USE_BUILTIN_ISAC_FLOAT=1 -DWEBRTC_USE_X11 -DLOGGING_INSIDE_WEBRTC -DLEVELDB_PLATFORM_CHROMIUM=1 -DATK_LIB_DIR=\"/usr/lib\" -DUSE_ATK_BRIDGE -DV8_COMPRESS_POINTERS -DV8_COMPRESS_POINTERS_IN_SHARED_CAGE -DV8_31BIT_SMIS_ON_64BIT_ARCH -DV8_ENABLE_SANDBOX -DV8_DEPRECATION_WARNINGS -DCPPGC_CAGED_HEAP -DCPPGC_YOUNG_GENERATION -DCPPGC_POINTER_COMPRESSION -DOPENSCREEN_TEST_DATA_DIR=\"third_party/openscreen/src/test/data/\" -I../.. -Igen -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -I../../third_party/libwebp/src/src -I../../third_party/libyuv/include -I../../third_party/jsoncpp/source/include -I../../third_party/vulkan-deps/vulkan-headers/src/include -I../../third_party/khronos -I../../gpu -Igen/third_party/dawn/include -I../../third_party/dawn/include -Igen/third_party/private_membership/src -Igen/third_party/shell-encryption/src -Igen/components/policy/proto -I../../third_party/wtl/include -Igen/shim_headers/flac_shim -I../../third_party/abseil-cpp -I../../third_party/boringssl/src/include -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/ced/src -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n -I../../net/third_party/quiche/overrides -I../../net/third_party/quiche/src/quiche/common/platform/default -I../../net/third_party/quiche/src -Igen/net/third_party/quiche/src -I../../third_party/skia -I../../third_party/wuffs/src/release/c -I../../third_party/vulkan/include -I../../third_party/webrtc_overrides -I../../third_party/webrtc -Igen/third_party/webrtc -I../../third_party/libwebm/source -I../../third_party/mesa_headers -I../../third_party/leveldatabase -I../../third_party/leveldatabase/src -I../../third_party/leveldatabase/src/include -I../../third_party/libaom/source/libaom -I../../v8/include -Igen/v8/include -Igen/third_party/metrics_proto -I../../third_party/zlib -I../../third_party/re2/src -I../../third_party/openscreen/src -Igen/third_party/openscreen/src -Wall -Wextra -Wimplicit-fallthrough -Wextra-semi -Wunreachable-code-aggressive -Wthread-safety -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-unknown-warning-option -Wno-ignored-pragma-optimize -Wno-deprecated-builtins -Wno-bitfield-constant-conversion -Wshadow -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/crashreports -mllvm -instcombine-lower-dbg-declare=0 -ffp-contract=off -flto=thin -fsplit-lto-unit -fwhole-program-vtables -m64 -msse3 -Xclang -fdebug-compilation-dir -Xclang . -ftrivial-auto-var-init=pattern -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-omit-frame-pointer -g0 -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wexit-time-destructors -I/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108-dunfell/tmp/work/core2-64-poky-linux/chromium-x11/108.0.5359.124-r0/recipe-sysroot/usr/include/glib-2.0 -I/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108-dunfell/tmp/work/core2-64-poky-linux/chromium-x11/108.0.5359.124-r0/recipe-sysroot/usr/lib/glib-2.0/include -Wno-null-pointer-subtraction -DPROTOBUF_ALLOW_DEPRECATED=1 -I/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108-dunfell/tmp/work/core2-64-poky-linux/chromium-x11/108.0.5359.124-r0/recipe-sysroot/usr/include/nss3 -I/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108-dunfell/tmp/work/core2-64-poky-linux/chromium-x11/108.0.5359.124-r0/recipe-sysroot/usr/include/nspr -I/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108-dunfell/tmp/work/core2-64-poky-linux/chromium-x11/108.0.5359.124-r0/recipe-sysroot/usr/include/atk-1.0 -I/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108-dunfell/tmp/work/core2-64-poky-linux/chromium-x11/108.0.5359.124-r0/recipe-sysroot/usr/include/at-spi2-atk/2.0 -I/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108-dunfell/tmp/work/core2-64-poky-linux/chromium-x11/108.0.5359.124-r0/recipe-sysroot/usr/include/at-spi-2.0 -I/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108-dunfell/tmp/work/core2-64-poky-linux/chromium-x11/108.0.5359.124-r0/recipe-sysroot/usr/include/dbus-1.0 -I/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108-dunfell/tmp/work/core2-64-poky-linux/chromium-x11/108.0.5359.124-r0/recipe-sysroot/usr/lib/dbus-1.0/include -I/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108-dunfell/tmp/work/core2-64-poky-linux/chromium-x11/108.0.5359.124-r0/recipe-sysroot/usr/include/glib-2.0 -I/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108-dunfell/tmp/work/core2-64-poky-linux/chromium-x11/108.0.5359.124-r0/recipe-sysroot/usr/lib/glib-2.0/include -std=c++20 -Wno-trigraphs -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -Wno-deprecated-declarations -O2 -pipe -feliminate-unused-debug-types -fmacro-prefix-map=/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108-dunfell/tmp/work/core2-64-poky-linux/chromium-x11/108.0.5359.124-r0=/usr/src/debug/chromium-x11/108.0.5359.124-r0 -fdebug-prefix-map=/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108-dunfell/tmp/work/core2-64-poky-linux/chromium-x11/108.0.5359.124-r0=/usr/src/debug/chromium-x11/108.0.5359.124-r0 -fdebug-prefix-map=/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108-dunfell/tmp/work/core2-64-poky-linux/chromium-x11/108.0.5359.124-r0/recipe-sysroot= -fdebug-prefix-map=/ala-lpggp31/rmacleod/src/distro/yocto/b/ch108-dunfell/tmp/work/core2-64-poky-linux/chromium-x11/108.0.5359.124-r0/recipe-sysroot-native= -g1 -stdlib=libc++ -fvisibility-inlines-hidden -c ../../chrome/common/extensions/chrome_manifest_url_handlers.cc -o obj/chrome/common/common_lib/chrome_manifest_url_handlers.o ../../chrome/common/extensions/chrome_manifest_url_handlers.cc:101:7: error: no matching constructor for initialization of 'std::map<const char , std::reference_wrapper<const absl::optional>>' (aka 'map<const char , reference_wrapper<const optional<basic_string>>>') std::map<const char*, ^ /ala-lpggp31/rmacleod/src/distro/yocto/b/ch108-dunfell/tmp/work/core2-64-poky-linux/chromium-x11/108.0.5359.124-r0/recipe-sysroot/usr/include/c++/v1/map:991:9: note: candidate constructor template not viable: requires 4 arguments, but 5 were provided map(_InputIterator f, _InputIterator __l, ^ /ala-lpggp31/rmacleod/src/distro/yocto/b/ch108-dunfell/tmp/work/core2-64-poky-linux/chromium-x11/108.0.5359.124-r0/recipe-sysroot/usr/include/c++/v1/map:982:9: note: candidate constructor template not viable: requires at most 3 arguments, but 5 were provided map(_InputIterator f, _InputIterator __l, ^

I don't see a fix for that upstream and I left my c++ error secret decoder at my last job! ;-) I have to do some other things for a bit so I've added that last musl update to: https://github.com/rwmacleod/meta-browser/commits/chromium-108-2023-01-11 in case anyone wants to take a look or has their decoder ring handy.

kraj commented 1 year ago

I wonder if chromium has started using some c++20 features from latest clang. Can you build it with kirkstone ?

rwmacleod commented 1 year ago

I had already started that build so for a change, I was half a step ahead of you @kraj ;-) .

For kirkstone, chromium/glibc builds fine. I've just successfully built "TCLIBC=musl bitbake chromium-ozone-wayland" on kirkstone. I'll check back later this evening.

rwmacleod commented 1 year ago

It seems like we'll need a new dunfell branch: dunfell-clang1X in meta-clang, right @kraj ? Do you need me to do anything else?

The commits that are associated with the error we're seeing on dunfell were not trivial but not huge either and while reverting it might work out, it's a risk and will take time. Since all branches other than dunfell-clang12 are working, this really points to the compiler version or default flags.

chromium.git on  main via 🐍 v2.7.18 
❯ git log --oneline -2 chrome/common/extensions/chrome_manifest_url_handlers.cc
cc15203c13bf7 Rename Manifest::available_values_dict() to available_values()
13306f0cb2d15 Migrate uses of Manifest::available_values() to available_values_dict()
❯ git log -1 --stat cc15203c13bf7053d943cb6015e2b2070eef6cd3
commit cc15203c13bf7053d943cb6015e2b2070eef6cd3
Author: Alex Turner <alexmt@chromium.org>
Date:   Tue Dec 20 20:54:06 2022

    Rename Manifest::available_values_dict() to available_values()

    Now that the deprecated available_values() has been fully removed, we
    can rename its replacmeent. Also migrates Manifest::available_values_ to
    base::Value::Dict.

    Bug: 1366865
    Change-Id: Ic9de64f98a7401629ca37d1f9df43c9d2bd9de3b
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4098253
    Reviewed-by: David Bertoni <dbertoni@chromium.org>
    Reviewed-by: Devlin Cronin <rdevlin.cronin@chromium.org>
    Commit-Queue: Alex Turner <alexmt@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1085765}

 chrome/browser/extensions/webstore_installer.cc                           |  3 +--
 chrome/browser/ui/extensions/extensions_overrides/simple_overrides.cc     |  3 +--
 chrome/common/extensions/api/omnibox/omnibox_handler.cc                   |  3 +--
 chrome/common/extensions/api/side_panel/side_panel_info.cc                |  3 +--
 chrome/common/extensions/api/speech/tts_engine_manifest_handler.cc        |  2 +-
 chrome/common/extensions/api/system_indicator/system_indicator_handler.cc |  2 +-
 chrome/common/extensions/api/url_handlers/url_handlers_parser.cc          |  3 +--
 chrome/common/extensions/chrome_manifest_url_handlers.cc                  |  3 +--
 extensions/common/api/commands/commands_handler.cc                        |  2 +-
 extensions/common/api/declarative_net_request/dnr_manifest_handler.cc     |  3 +--
 extensions/common/extension.cc                                            |  2 +-
 extensions/common/manifest.cc                                             | 31 ++++++++++---------------------
 extensions/common/manifest.h                                              | 11 +++--------
 extensions/common/manifest_handlers/content_scripts_handler.cc            |  3 +--
 extensions/common/manifest_handlers/cross_origin_isolation_info.cc        |  3 +--
 extensions/common/manifest_handlers/extension_action_handler.cc           |  2 +-
 extensions/common/manifest_handlers/file_handler_info.cc                  |  3 +--
 extensions/common/manifest_handlers/file_handler_info_mv3.cc              |  3 +--
 extensions/common/manifest_handlers/icons_handler.cc                      |  2 +-
 extensions/common/manifest_handlers/incognito_info.cc                     |  3 +--
 extensions/common/manifest_handlers/oauth2_manifest_handler.cc            |  3 +--
 extensions/common/manifest_handlers/requirements_info.cc                  |  3 +--
 extensions/common/manifest_handlers/shared_module_info.cc                 |  3 +--
 extensions/common/manifest_handlers/web_accessible_resources_info.cc      |  6 ++----
 extensions/common/manifest_handlers/webview_info.cc                       |  2 +-
 extensions/common/manifest_unittest.cc                                    |  4 ++--
 26 files changed, 39 insertions(+), 72 deletions(-)

chromium.git on  main via 🐍 v2.7.18 
❯ git log -1 --stat 13306f0cb2d1547d3950c27844321a3e3fb21efd
commit 13306f0cb2d1547d3950c27844321a3e3fb21efd
Author: Alex Turner <alexmt@chromium.org>
Date:   Tue Dec 20 17:13:56 2022

    Migrate uses of Manifest::available_values() to available_values_dict()

    base::DictionaryValue is deprecated and should be replaced with
    base::Value::Dict. Two follow-ups are required: renaming
    available_values_dict() to available_values() and changing the type of
    available_values_.

    Bug: 1366865
    Change-Id: I85bdf49aa24f3c0ff7b487291923ead7f175aa04
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4098989
    Auto-Submit: Alex Turner <alexmt@chromium.org>
    Reviewed-by: David Bertoni <dbertoni@chromium.org>
    Reviewed-by: Devlin Cronin <rdevlin.cronin@chromium.org>
    Commit-Queue: Devlin Cronin <rdevlin.cronin@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1085665}

 chrome/browser/extensions/webstore_installer.cc                       | 2 +-
 chrome/browser/ui/extensions/extensions_overrides/simple_overrides.cc | 2 +-
 chrome/common/extensions/api/omnibox/omnibox_handler.cc               | 8 +++-----
 chrome/common/extensions/api/side_panel/side_panel_info.cc            | 2 +-
 chrome/common/extensions/chrome_manifest_url_handlers.cc              | 2 +-
 extensions/common/api/declarative_net_request/dnr_manifest_handler.cc | 2 +-
 extensions/common/extension.cc                                        | 2 +-
 extensions/common/manifest.h                                          | 8 ++------
 extensions/common/manifest_handlers/content_scripts_handler.cc        | 6 +++---
 extensions/common/manifest_handlers/cross_origin_isolation_info.cc    | 2 +-
 extensions/common/manifest_handlers/file_handler_info_mv3.cc          | 2 +-
 extensions/common/manifest_handlers/incognito_info.cc                 | 2 +-
 extensions/common/manifest_handlers/oauth2_manifest_handler.cc        | 2 +-
 extensions/common/manifest_handlers/requirements_info.cc              | 2 +-
 extensions/common/manifest_handlers/shared_module_info.cc             | 2 +-
 extensions/common/manifest_handlers/web_accessible_resources_info.cc  | 4 ++--
 extensions/common/manifest_unittest.cc                                | 8 ++++----
 17 files changed, 26 insertions(+), 32 deletions(-)
rakuco commented 1 year ago

Note that neither of these commits is part of Chromium 108 though. You can use e.g. https://chromiumdash.appspot.com/commits?commit=13306f0cb2d1547d3950c27844321a3e3fb21efd to check it.

git blame says the lines causing the failures were introduced in https://chromium-review.googlesource.com/c/chromium/src/+/3843307 instead.

My uninformed guess is that this needs some bug fix in libc++ and, in the worst case, clang itself to recognize the new construct correctly.

rwmacleod commented 1 year ago

@rakuco Right, I was looking for potential fixes and clearly the coffee hadn't quite kicked in!

rwmacleod commented 1 year ago

I updated to 109 because it needs to be done eventually and I wanted to see if perhaps the new language features had been reverted (unlikely, I know!). That built fine on kirkstone. I tried dunfell only to see: ... -o obj/base/third_party/symbolize/symbolize/symbolize.o clang-12: error: unknown argument: '-gsimple-template-names'

patched that out, built dunfell and we're back to the previous error. :-(

  .../chrome_manifest_url_handlers.cc -o obj/chrome/common/common_lib/chrome_manifest_url_handlers.o
  ../../chrome/common/extensions/chrome_manifest_url_handlers.cc:101:7: 
  error: no matching constructor for initialization of 
  'std::map<const char *, std::reference_wrapper<const absl::optional<std::string>>>' (aka 'map<const char *, reference_wrapper<const optional<basic_string<char>>>>')
  std::map<const char*,
  ^
rakuco commented 1 year ago

It looks like a bug in libc++. I've tried building the file with upstream clang 12 and 13 with Chromium's libc++ and both worked. If I try to use upstream libc++ 13, it also works. If I try libc++ 12 instead, I get the same error.

MastaG commented 1 year ago

A lot of work goes into maintaining this layer as it's a massive code base. Perhaps it would be an idea to forget about older clang releases and force users to use the latest instead.

rakuco commented 1 year ago

I'd love to do that too, but if we do it means we'll stop supporting dunfell.

rakuco commented 1 year ago

I've done some bisecting here, and this is the libc++ commit that is not present in the 12.x releases: https://github.com/llvm/llvm-project/commit/eec04092d67b94f47439a9065b6bd4cd60165be2

I just have no idea if it's safe to cherry-pick it into meta-clang's dunfell-clang12 branch, or if it's worth creating a dunfell-clang13 there instead.

@kraj any ideas?

rwmacleod commented 1 year ago

Well, I'm not an uber compiler geek but I back-ported the patch and it avoided the error!

Next up was a complaint that the expression in third_party/blink/renderer/platform/media/web_media_player_impl.cc on this line: if constexpr (Flags & kEncrypted) { wasn't a bool, so I cast it to such: if constexpr (bool(Flags & kEncrypted)) { and that builds fine on dunfell/dunfell-clang12+patch. After I build sato and test it, it'll be onwards to kirkstone/master.

@rakuco Thanks for finding the libc patch. Was your bisecting outside of YP and done manually or via a magic script that you'd like to share?

kraj commented 1 year ago

I've done some bisecting here, and this is the libc++ commit that is not present in the 12.x releases: llvm/llvm-project@eec0409

I just have no idea if it's safe to cherry-pick it into meta-clang's dunfell-clang12 branch, or if it's worth creating a dunfell-clang13 there instead.

@kraj any ideas?

It seems fine to backport, although one thing I worry about is that it got into llvm 13 during RC stages which is pretty late that it might cause runtime side-effects with llvm-12, however, lets backport it for immediate concern. I think doing a dunfell-clang13 might be a better solution but it has its own work to do.

rakuco commented 1 year ago

@rakuco Thanks for finding the libc patch. Was your bisecting outside of YP and done manually or via a magic script that you'd like to share?

I did it manually:

rwmacleod commented 1 year ago

Morning update: kirkstone and master both work fine for qemux86-64/glibc, as does rpi4-64 from meta-raspberrrypi. Next up: check the musl patches, clean-up the commit and finally send a freaking PR! ;-)

rwmacleod commented 1 year ago

PR: https://github.com/OSSystems/meta-browser/pull/688