Closed CaptainTyphoo closed 1 year ago
PGO is disabled as the build kept failing with PGO enabled and I could not figure out why.
Do you build with clang-16? PGO needs clang-16 and higher.
No, I did the first builds on Fedora 37 which provides only clang-15 and older. If clang-16 is needed, I'm wondering how the builds for ungoogled-chromium-98.0.4758.80 on Fedora 34 and Fedora 35 were done as they don't provide clang-16 either.
clang-16 is needed since approximately 110. 98 is too old.
Thanks the info! I enabled PGO for Fedora 38 and also fixed some issues when building on OBS.
Have you tried updating to 113?
No, not yet. I'm waiting for the release of the fedora37 RPM, it's still in testing.
The branch includes now the update to 113.0.5672.126. The build on OBS works and I have manually tested the Fedora 37 build.
@CaptainTyphoo Will you be willing to further update it to the latest version?
I'm in the process of updating the branch to 114.0.5735.106. The Fedora 37 build looks good so far, but the Fedora 38 build failed because PGO is enabled:
[ 284s] [gen/components/feed/core/proto/v2/wire/chrome_feed_response_metadata.pb.h:6/181] CXX obj/third_party/protobuf/protobuf_full/any_lite.o
[ 284s] FAILED: obj/third_party/protobuf/protobuf_full/any_lite.o
[ 284s] clang++ -MMD -MF obj/third_party/protobuf/protobuf_full/any_lite.o.d -DHAVE_ZLIB -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_TABLES -D_GNU_SOURCE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0 -DHAVE_PTHREAD -DUSE_SYSTEM_ZLIB=1 -I../.. -Igen -I../../third_party/protobuf/src -Igen/shim_headers/zlib_shim -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 -m64 -msse3 -ffile-compilation-dir=. -no-canonical-prefixes -ftrivial-auto-var-init=pattern -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-omit-frame-pointer -g0 -fprofile-use=../../chrome/build/pgo_profiles/chrome-linux-5735-1685113972-6d147d8b86f0b3738d3578feacebd344e1e0402a.profdata -Wno-profile-instr-unprofiled -Wno-profile-instr-out-of-date -Wno-backend-plugin -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-ignored-pragma-optimize -Wno-deprecated-builtins -Wno-bitfield-constant-conversion -Wno-deprecated-this-capture -Wno-unused-function -std=c++20 -Wno-trigraphs -gsimple-template-names -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -Wno-deprecated-declarations -Wno-unknown-warning-option -Wno-unused-command-line-argument -Wno-unused-but-set-variable -Wno-unused-result -Wno-unused-function -Wno-unused-variable -Wno-unused-const-variable -Wno-unneeded-internal-declaration -Wno-unknown-attributes -c ../../third_party/protobuf/src/google/protobuf/any_lite.cc -o obj/third_party/protobuf/protobuf_full/any_lite.o
[ 284s] error: Error in reading profile ../../chrome/build/pgo_profiles/chrome-linux-5735-1685113972-6d147d8b86f0b3738d3578feacebd344e1e0402a.profdata: unsupported instrumentation profile format version
As the Fedora 38 build worked with PGO enabled for version 113.0.5672.126, I'm wondering if the requirements for enabling PGO changed between 113.0.5672.126 and 114.0.5735.106. I'm still building with clang 16.0.0 on Fedora 38.
@CaptainTyphoo You need clang-17 for PGO starting with 114.
Ok, thanks! I will try another build on Fedora 38 with PGO disabled.
I'm curious to know, from where do you get the required clang version for PGO?
I'm curious to know, from where do you get the required clang version for PGO?
From error message unsupported instrumentation profile format version
one could conclude that currently installed clang version $n$ cannot read profdata, which is easy to verify by installing $n+1$ version and trying again :D
I'm curious to know, from where do you get the required clang version for PGO?
From error message
unsupported instrumentation profile format version
one could conclude that currently installed clang version n cannot read profdata, which is easy to verify by installing n+1 version and trying again :D
I see, thanks!
The branch includes now the update to 114.0.5735.106. I did a build on OBS and tested the Fedora 37 build output.
Does it run?
Yes. I installed the RPM, started ungoogled-chromium and opened a couple of web pages.
@networkException We are good to merge then?
Sure yes, I'm not familiar with any workflows, etc. (if any) that runs though 🤷
I have never used Fedora, So I guess we just merge and tag.
Thanks @CaptainTyphoo.
PS: I disabled workflow since it fails anyway.
The update is based on the chromium-112.0.5615.165-1.fc37 package from Fedora.
I did a build on copr and the package works fine on Fedora 37.
PGO is disabled as the build kept failing with PGO enabled and I could not figure out why.