We can't just edit binary wrappers in place because of a length
mismatch, so we have to parse the generating makeCWrapper call out of
the binary, extract wrapper arguments from it and add them to the
Firefox wrapper.
All these contortions are needed because Firefox looks for its runtime
in argv0, so the proper argv0 needs to be set by wrappers to always
point to the "final" runtime. I think this could be avoided by wrapping
/lib/$libName/firefox instead of /bin/firefox, and I'd like to look into
that in the future, but for now I'm just fixing the immediate problem.
LLVM 14 doesn't support those build flags yet
(-no-opaque-pointers is the argument for -Xclang):
error: unknown argument: '-no-opaque-pointers'
Those build flags were added in the following commit:
003067c130
This fixes the following error:
configuring
ERROR at //infra/orchestrator/BUILD.gn:38:17: Could not read file.
pydeps_file = "//third_party/blink/tools/merge_web_test_results.pydeps"
^--------------------------------------------------------
I resolved this to "/build/chromium-102.0.5005.27/third_party/blink/tools/merge_web_test_results.pydeps".
See //infra/orchestrator/BUILD.gn:37:1: whence it was called.
python_library("blink_merge_web_test_results_py") {
^--------------------------------------------------
See //BUILD.gn:89:5: which caused the file to be included.
"//infra/orchestrator:orchestrator_all",
^--------------------------------------
It's a known upstream issue when building from the generated tarballs:
- https://bugs.chromium.org/p/chromium/issues/detail?id=1313361
- https://chromium-review.googlesource.com/c/chromium/src/+/3457503
This fixes the following error during patchShebangs:
./third_party/dawn/third_party/webgpu-cts/tools/run_deno: unsupported interpreter directive "#!/usr/bin/env -S deno run --unstable --allow-read --allow-write --allow-env --allow-net=deno.land --no-check" (set dontPatchShebangs=1 and handle shebang patching yourself)
This fixes build errors like this:
error: Could not read profile ../../chrome/build/pgo_profiles/chrome-linux-4951-1649181099-528ef6669805f2d3db6f3ad7429cfa57a6078271.profdata: unsupported instrumentation profile format version
We already package the most recent stable LLVM version for Chromium but Google
relies on unreleased (Git) versions (thanks...). This isn't ideal but I
don't have the time to package yet another LLVM version so it'll have to
cut it for now.
See build/config/compiler/pgo/pgo.gni:
- 0 : Means that PGO is turned off.
- 1 : Used during the PGI (instrumentation) phase.
- 2 : Used during the PGO (optimization) phase.
With is_official_build the default is chrome_pgo_phase = 2.