Skip to content

Build fails: error: no member named 'PhishingDetector' in namespace 'safe_browsing::mojom' #978

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
blackteahamburger opened this issue Mar 22, 2025 · 39 comments

Comments

@blackteahamburger
Copy link

build.log.gz

I'm near the final goal of #357, but I meet a build failure:

[40106/47704] x86_64-pc-linux-gnu-clang++-19 -MD -MF obj/components/safe_browsing/content/browser/client_side_detection/client_side_detection_host.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICI>
FAILED: obj/components/safe_browsing/content/browser/client_side_detection/client_side_detection_host.o 
x86_64-pc-linux-gnu-clang++-19 -MD -MF obj/components/safe_browsing/content/browser/client_side_detection/client_side_detection_host.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -D__S>
In file included from ../../components/safe_browsing/content/browser/client_side_detection_host.cc:5:
../../components/safe_browsing/content/browser/client_side_detection_host.h:312:33: error: no member named 'PhishingDetector' in namespace 'safe_browsing::mojom'
  312 |   mojo::AssociatedRemote<mojom::PhishingDetector> phishing_detector_;
      |                          ~~~~~~~^
../../components/safe_browsing/content/browser/client_side_detection_host.h:315:33: error: no member named 'PhishingImageEmbedderDetector' in namespace 'safe_browsing::mojom'
  315 |   mojo::AssociatedRemote<mojom::PhishingImageEmbedderDetector>
      |                          ~~~~~~~^
...

Not seen when building ungoogled-chromium, electron. Not sure what caused the failure.

The ebuild and patches: thorium.tar.gz

@gz83
Copy link
Collaborator

gz83 commented Mar 22, 2025

I don't know what version you are compiling? Can you please specify here? Also, if you are trying to compile version 132, it is not ready yet.

@blackteahamburger
Copy link
Author

blackteahamburger commented Mar 22, 2025

I don't know what version you are compiling? Can you please specify here? Also, if you are trying to compile version 132, it is not ready yet.

130.0.6723.174

By the way, I think the build.log is detailed enough.

@gz83
Copy link
Collaborator

gz83 commented Mar 22, 2025

Thanks for specifying the version numbers here. From the files you provided, I noticed some patches that seem to come from outside the Thorium repository. Maybe you need to search which patches modified the relevant files.

@blackteahamburger
Copy link
Author

There is only one I can find that relates to safe_browsing: fix-building-without-safebrowsing.patch. But I didn't use it in the failed build. And ungoogled-chromium, electron in PF4Public use same patches and don't fail.

@gz83
Copy link
Collaborator

gz83 commented Mar 23, 2025

Thorium is not and does not intend to be ungoogled.

@gz83 gz83 closed this as not planned Won't fix, can't repro, duplicate, stale Mar 23, 2025
@blackteahamburger
Copy link
Author

blackteahamburger commented Mar 23, 2025

Why close this issue? It's not caused by ungoogled. ungoogled is just an option provided but I didn't enable it in the failed build. You can see in the build.log that the line start with USE: doesn't include ungoogled. It's pure optional. I don’t think it’s a sin to simply offer this option. But sorry, I didn't explain the mechanism of Gentoo to you.

@gz83 gz83 reopened this Mar 23, 2025
@gz83
Copy link
Collaborator

gz83 commented Mar 23, 2025

Have you tried compiling without the Safe Browsing patch?

Also, I need to confirm which commit of Thorium you are currently using?

@blackteahamburger
Copy link
Author

Have you tried compiling without the Safe Browsing patch?

Say it again, I didn't build with that patch.

Also, I need to confirm which commit of Thorium you are currently using?

I'm using the tarball in the release: ec81a00

@gz83
Copy link
Collaborator

gz83 commented Mar 23, 2025

Okay, try updating Thorium's commit to 6a89d88

Also, since I'm not very familiar with ebuilds, and in the normal workflow of Thorium, neither Alex, midzer, nor I seem to have encountered the problem you described above.

In the worst-case scenario, I'd probably have you try turning off safe browsing completely, perhaps in //components/safe_browsing/buildflags.gni, with safe_browsing_mode = 0 receiving is_linux.

There may be more areas that need to be modified.

@blackteahamburger
Copy link
Author

In the worst-case scenario, I'd probably have you try turning off safe browsing completely, perhaps in //components/safe_browsing/buildflags.gni, with safe_browsing_mode = 0 receiving is_linux.

There is already myconf_gn+=" safe_browsing_mode=0" in the ebuild. Then I'll try updating the commit.

@gz83
Copy link
Collaborator

gz83 commented Mar 23, 2025

You need to confirm whether safe_browsing_mode=0 is really effective. You may need to collect gn args/gn gen and other commands to see if they are executed normally (ideally there should be no errors or warnings).

@blackteahamburger
Copy link
Author

I can see the lines:

gn gen --args=... safe_browsing_mode=0
Done. Made 22036 targets from 3652 files in 6143ms

Should indicate that safe_browsing_mode=0 is effective.

If the build still fails, maybe I should try safe_browsing_mode=0 and the fix-building-without-safebrowsing.patch.

@blackteahamburger
Copy link
Author

Okay, try updating Thorium's commit to 6a89d88

The error remains.

@gz83
Copy link
Collaborator

gz83 commented Mar 24, 2025

Since Thorium's normal workflow does not include making ebuild files, you may need to refer to www-client/chromium to rewrite the ebuild file or seek community support.

@blackteahamburger
Copy link
Author

Since Thorium's normal workflow does not include making ebuild files, you may need to refer to www-client/chromium to rewrite the ebuild file or seek community support.

The ebuild is with refererence to ungoogled-chromium::pf4public and I have made some sync with www-client/chromium before (see PF4Public/gentoo-overlay#402). It's really a weird failure since ungoogled-chromium and electron both build fine (basically the same as my thorium ebuild) and I cannot find it on the Internet anywhere.

@gz83
Copy link
Collaborator

gz83 commented Mar 24, 2025

Have you tried manually fixing all the code paths that have errors?

@blackteahamburger
Copy link
Author

blackteahamburger commented Mar 26, 2025

I'm not familiar with Chromium's code, but I took a look at components/safe_browsing/content/common/safe_browsing.mojom:

[EnableIf=full_safe_browsing]
interface PhishingDetector {
  // Tells the renderer to begin phishing detection for the given toplevel URL
  // which it has started loading. Returns the serialized request proto and a
  // `result` enum to indicate failure. If the URL is phishing the `request`
  // ClientPhishingRequest will have `is_phishing()` set to true.
  StartPhishingDetection(url.mojom.Url url)
      => (PhishingDetectorResult result,
          mojo_base.mojom.ProtoWrapper? request);
};

I guess that gn flag safe_browsing_mode=0 causes full_safe_browsing to be false, so PhishingDetector is not enabled, then the defination of mojom::PhishingDetector is missing. If so, I don't know why the build of ungoogled-chromium, electron do not fail because of this (of course with safe_browsing_mode=0). I would be grateful if you could tell me some way to test.

@blackteahamburger
Copy link
Author

The error is not seen with safe_browsing_mode=1 but serveral "no member named xxx" errors occur due to the lack of inclusion of the corresponding headers (unrelated to this, I will open a new issue after getting the complete error list).

@blackteahamburger
Copy link
Author

blackteahamburger commented Apr 12, 2025

This should be the last error I meet:

FAILED: obj/chrome/renderer/renderer/chrome_render_frame_observer.o 
x86_64-pc-linux-gnu-clang++-19 -MD -MF obj/chrome/renderer/renderer/chrome_render_frame_observer.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE -D_GLIBCXX_ASSERTIONS=1 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_56 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_56 -DSK_ENABLE_SKSL -DSK_UNTIL_CRBUG_1187654_IS_FIXED -DSK_USER_CONFIG_HEADER=\"../../skia/config/SkUserConfig.h\" -DSK_WIN_FONTMGR_NO_SIMULATIONS -DSK_DISABLE_LEGACY_INIT_DECODERS -DSK_DISABLE_LEGACY_BACKEND_TEXTURE_FUNCS -DSK_DISABLE_LEGACY_TEXTURE_INFO_FUNCS -DSK_DISABLE_LEGACY_BACKEND_SEMAPHORE_FUNCS -DSK_DISABLE_LEGACY_GRAPHITE_IMAGES -DSK_DISABLE_LEGACY_DAWN_TEXTURE_INFO_FUNCS -DSK_DISABLE_LEGACY_DAWN_BACKEND_TEXTURE_FUNCS -DSK_CODEC_DECODES_JPEG -DSK_ENCODE_JPEG -DSK_ENCODE_PNG -DSK_ENCODE_WEBP -DSK_GANESH -DSK_GPU_WORKAROUNDS_HEADER=\"gpu/config/gpu_driver_bug_workaround_autogen.h\" -DSK_GL -DSK_VULKAN=1 -DSK_GRAPHITE -DSK_DAWN -DVK_USE_PLATFORM_XCB_KHR -DCHROMIUM -DLIBYUV_DISABLE_NEON -DLIBYUV_DISABLE_SVE -DLIBYUV_DISABLE_SME -DLIBYUV_DISABLE_LSX -DLIBYUV_DISABLE_LASX -DTOOLKIT_VIEWS=1 -DUSING_SYSTEM_ICU=1 -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC -DU_IMPORT=U_EXPORT -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0 -DHAVE_PTHREAD -DV8_USE_EXTERNAL_STARTUP_DATA -DWEBRTC_ENABLE_AVX2 -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_POSIX -DWEBRTC_LINUX -DABSL_ALLOCATOR_NOTHROW=1 -DWEBRTC_USE_X11 -DLOGGING_INSIDE_WEBRTC -DLEVELDB_PLATFORM_CHROMIUM=1 -DCRASHPAD_ZLIB_SOURCE_EXTERNAL -DUSE_SYSTEM_ZLIB=1 -DV8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT=0 -DV8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT=0 -DV8_PROMISE_INTERNAL_FIELD_COUNT=0 -DV8_COMPRESS_POINTERS -DV8_COMPRESS_POINTERS_IN_SHARED_CAGE -DV8_31BIT_SMIS_ON_64BIT_ARCH -DV8_ENABLE_SANDBOX -DV8_DEPRECATION_WARNINGS -DV8_USE_PERFETTO -DV8_HAVE_TARGET_OS -DV8_TARGET_OS_LINUX -DCPPGC_CAGED_HEAP -DCPPGC_YOUNG_GENERATION -DCPPGC_POINTER_COMPRESSION -DCPPGC_ENABLE_LARGER_CAGE -DCPPGC_SLIM_WRITE_BARRIER -DATK_LIB_DIR=\"/usr/lib64\" -DUSE_ATK_BRIDGE -DFLATBUFFERS_LOCALE_INDEPENDENT=0 -I../.. -Igen -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -Igen/shim_headers/zlib_shim -Igen/shim_headers/jsoncpp_shim -Igen/shim_headers/double_conversion_shim -Igen/shim_headers/icui18n_shim -Igen/shim_headers/icuuc_shim -I../../net/third_party/quiche/overrides -I../../net/third_party/quiche/src/quiche/common/platform/default -I../../net/third_party/quiche/src -Igen/shim_headers/zstd_headers -I../../third_party/skia -Igen/third_party/skia -I../../third_party/wuffs/src/release/c -I../../third_party/vulkan/include -I../../third_party/vulkan-headers/src/include -Igen/third_party/dawn/include -I../../third_party/dawn/include -Igen/shim_headers/libpng_shim -Igen/shim_headers/libwebp_shim -Igen/third_party/private_membership/src -Igen/third_party/shell-encryption/src -Igen/components/policy/proto -I../../third_party/libyuv/include -Igen/shim_headers/opus_shim -Igen/shim_headers/libevent_shim -Igen/shim_headers/ffmpeg_shim -Igen/shim_headers/openh264_shim -Igen/shim_headers/crc32c_shim -Igen/shim_headers/snappy_shim -I../../third_party/khronos -I../../gpu -Igen/shim_headers/flac_shim -Igen/shim_headers/minizip_shim -Igen/shim_headers/woff2_shim -Igen/shim_headers/jxl_shim -I../../base/allocator/partition_allocator/src -Igen/base/allocator/partition_allocator/src -I../../third_party/abseil-cpp -I../../third_party/boringssl/src/include -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/ipcz/include -I../../third_party/ced/src -Igen/net/third_party/quiche/src -I../../third_party/webrtc_overrides -I../../third_party/webrtc -Igen/third_party/webrtc -I../../third_party/libwebm/source -I../../third_party/angle/include -I../../third_party/mesa_headers -I../../third_party/leveldatabase -I../../third_party/leveldatabase/src -I../../third_party/leveldatabase/src/include -I../../third_party/crashpad/crashpad -I../../third_party/crashpad/crashpad/compat/linux -I../../third_party/crashpad/crashpad/compat/non_win -I../../third_party/libaom/source/libaom -I../../third_party/libaom/source/config/linux/x64 -I../../v8/include -Igen/third_party/metrics_proto -I../../third_party/re2/src -I../../third_party/flatbuffers/src/include -I../../third_party/flatbuffers/src/src -I../../third_party/flatbuffers/src -I../../third_party/flatbuffers/generated -Igen/v8/include -I../../third_party/fp16/src/include -Wimplicit-fallthrough -Wextra-semi -Wunreachable-code-aggressive -Wthread-safety -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wno-cast-function-type -Wno-vla-extension -Wno-thread-safety-reference-return -Wshadow -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fsized-deallocation -flto=thin -fsplit-lto-unit -mllvm -inlinehint-threshold=360 -fwhole-program-vtables -no-canonical-prefixes -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -fprofile-use=../../chrome/build/pgo_profiles/chrome-linux-6723-1733159130-a5a2dc303855ef5efd9183eeebc68f04932f3097-d101f8bd9ceed464c1d066b8bffa18d791485d3e.profdata -Wno-profile-instr-unprofiled -Wno-profile-instr-out-of-date -Wno-backend-plugin -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wexit-time-destructors -isystem/usr/lib64/libffi/include -isystem/usr/include/glib-2.0 -isystem/usr/lib64/glib-2.0/include -Wno-redundant-parens -Wno-redundant-parens -DPROTOBUF_ALLOW_DEPRECATED=1 -isystem/usr/include/nss -isystem/usr/include/nspr -isystem/usr/include/at-spi2-atk/2.0 -isystem/usr/include/at-spi-2.0 -isystem/usr/include/libmount -isystem/usr/include/blkid -isystem/usr/include/atk-1.0 -isystem/usr/include/dbus-1.0 -isystem/usr/lib64/dbus-1.0/include -isystem/usr/lib64/libffi/include -isystem/usr/include/glib-2.0 -isystem/usr/lib64/glib-2.0/include -Wno-constant-conversion -Wno-shorten-64-to-32 -Wno-invalid-offsetof -Wenum-compare-conditional -Wno-c++11-narrowing-const-reference -Wno-missing-template-arg-list-after-template-kw -Wno-dangling-assignment-gsl -std=c++20 -Wno-trigraphs -gsimple-template-names -fno-exceptions -fno-rtti -fvisibility-inlines-hidden  -U_GLIBCXX_ASSERTIONS -march=native -O3 -fno-semantic-interposition -pipe -Wno-unknown-warning-option -c ../../chrome/renderer/chrome_render_frame_observer.cc -o obj/chrome/renderer/renderer/chrome_render_frame_observer.o
In file included from ../../chrome/renderer/chrome_render_frame_observer.cc:72:
In file included from ../../chrome/renderer/accessibility/read_anything_app_controller.h:17:
In file included from ../../chrome/renderer/accessibility/read_aloud_app_model.h:12:
In file included from ../../chrome/renderer/accessibility/phrase_segmentation/dependency_parser_model.h:9:
../../third_party/tflite/src/tensorflow/lite/core/interpreter.h:43:10: fatal error: 'tensorflow/compiler/mlir/lite/experimental/remat/metadata_util.h' file not found
   43 | #include "tensorflow/compiler/mlir/lite/experimental/remat/metadata_util.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

I guess it may relate to the visibility. So I applied tensorflow/tensorflow@c1bdbb3. But the error still occurrs. Any way to fix this?

Any update on this? If not, I have to give up Thorium in Gentoo.

@gz83
Copy link
Collaborator

gz83 commented Apr 12, 2025

Sorry, neither I nor any other team members have encountered these problems, and no one in the team seems to be using Gentoo, so we may not be able to give you more accurate help.

If one day I or other team members get a chance to use Gentoo, things might change.

@blackteahamburger
Copy link
Author

blackteahamburger commented Apr 12, 2025

Can you try building with build_with_tflite_lib=false?

@gz83
Copy link
Collaborator

gz83 commented Apr 13, 2025

Under normal circumstances, you shouldn't run into any of the problems you mention, and there's no need to pass those extra args parameters.

@blackteahamburger
Copy link
Author

blackteahamburger commented Apr 13, 2025

I commented build_with_tflite_lib=false then there's another failure!

FAILED: obj/third_party/blink/renderer/platform/platform/color_data.o 
x86_64-pc-linux-gnu-clang++-19 -MD -MF obj/third_party/blink/renderer/platform/platform/color_data.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE -D_GLIBCXX_ASSERTIONS=1 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DBLINK_IMPLEMENTATION=1 -DINSIDE_BLINK -DBLINK_PLATFORM_IMPLEMENTATION=1 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_56 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_56 -DSK_ENABLE_SKSL -DSK_UNTIL_CRBUG_1187654_IS_FIXED -DSK_USER_CONFIG_HEADER=\"../../skia/config/SkUserConfig.h\" -DSK_WIN_FONTMGR_NO_SIMULATIONS -DSK_DISABLE_LEGACY_INIT_DECODERS -DSK_DISABLE_LEGACY_BACKEND_TEXTURE_FUNCS -DSK_DISABLE_LEGACY_TEXTURE_INFO_FUNCS -DSK_DISABLE_LEGACY_BACKEND_SEMAPHORE_FUNCS -DSK_DISABLE_LEGACY_GRAPHITE_IMAGES -DSK_DISABLE_LEGACY_DAWN_TEXTURE_INFO_FUNCS -DSK_DISABLE_LEGACY_DAWN_BACKEND_TEXTURE_FUNCS -DSK_CODEC_DECODES_JPEG -DSK_ENCODE_JPEG -DSK_ENCODE_PNG -DSK_ENCODE_WEBP -DSK_GANESH -DSK_GPU_WORKAROUNDS_HEADER=\"gpu/config/gpu_driver_bug_workaround_autogen.h\" -DSK_GL -DSK_VULKAN=1 -DSK_GRAPHITE -DSK_DAWN -DVK_USE_PLATFORM_XCB_KHR -DCHROMIUM -DLIBYUV_DISABLE_NEON -DLIBYUV_DISABLE_SVE -DLIBYUV_DISABLE_SME -DLIBYUV_DISABLE_LSX -DLIBYUV_DISABLE_LASX -DWTF_USE_WEBAUDIO_PFFFT=1 -DUSING_SYSTEM_ICU=1 -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC -DU_IMPORT=U_EXPORT -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0 -DHAVE_PTHREAD -DV8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT=0 -DV8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT=0 -DV8_PROMISE_INTERNAL_FIELD_COUNT=0 -DV8_COMPRESS_POINTERS -DV8_COMPRESS_POINTERS_IN_SHARED_CAGE -DV8_31BIT_SMIS_ON_64BIT_ARCH -DV8_ENABLE_SANDBOX -DV8_DEPRECATION_WARNINGS -DV8_USE_PERFETTO -DV8_HAVE_TARGET_OS -DV8_TARGET_OS_LINUX -DCPPGC_CAGED_HEAP -DCPPGC_YOUNG_GENERATION -DCPPGC_POINTER_COMPRESSION -DCPPGC_ENABLE_LARGER_CAGE -DCPPGC_SLIM_WRITE_BARRIER -DWEBRTC_ENABLE_AVX2 -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_POSIX -DWEBRTC_LINUX -DABSL_ALLOCATOR_NOTHROW=1 -DWEBRTC_USE_X11 -DLOGGING_INSIDE_WEBRTC -DLEVELDB_PLATFORM_CHROMIUM=1 -DCRASHPAD_ZLIB_SOURCE_EXTERNAL -DUSE_SYSTEM_ZLIB=1 -DUSE_SYSTEM_LIBJPEG -DLIBGAV1_MAX_BITDEPTH=10 -DLIBGAV1_THREADPOOL_USE_STD_MUTEX -DLIBGAV1_ENABLE_LOGGING=0 -DLIBGAV1_PUBLIC= -I../../third_party/pffft/src -I../.. -Igen -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -Igen/shim_headers/zlib_shim -Igen/shim_headers/jsoncpp_shim -Igen/shim_headers/double_conversion_shim -Igen/shim_headers/icui18n_shim -Igen/shim_headers/icuuc_shim -I../../third_party/skia -Igen/third_party/skia -I../../third_party/wuffs/src/release/c -I../../third_party/vulkan/include -I../../third_party/vulkan-headers/src/include -Igen/third_party/dawn/include -I../../third_party/dawn/include -Igen/shim_headers/libpng_shim -Igen/shim_headers/libwebp_shim -I../../net/third_party/quiche/overrides -I../../net/third_party/quiche/src/quiche/common/platform/default -I../../net/third_party/quiche/src -Igen/shim_headers/zstd_headers -I../../third_party/khronos -I../../gpu -I../../third_party/libyuv/include -Igen/shim_headers/ffmpeg_shim -Igen/shim_headers/flac_shim -Igen/shim_headers/opus_shim -Igen/shim_headers/crc32c_shim -Igen/shim_headers/snappy_shim -Igen/shim_headers/openh264_shim -Igen/shim_headers/libevent_shim -Igen/shim_headers/woff2_shim -Igen/shim_headers/jxl_shim -Igen/shim_headers/minizip_shim -I../../base/allocator/partition_allocator/src -Igen/base/allocator/partition_allocator/src -I../../third_party/abseil-cpp -I../../third_party/boringssl/src/include -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/ipcz/include -I../../third_party/ced/src -Igen/net/third_party/quiche/src -I../../v8/include -I../../third_party/webrtc_overrides -I../../third_party/webrtc -Igen/third_party/webrtc -I../../third_party/libwebm/source -I../../third_party/angle/include -I../../third_party/mesa_headers -I../../third_party/leveldatabase -I../../third_party/leveldatabase/src -I../../third_party/leveldatabase/src/include -I../../third_party/crashpad/crashpad -I../../third_party/crashpad/crashpad/compat/linux -I../../third_party/crashpad/crashpad/compat/non_win -I../../third_party/libaom/source/libaom -I../../third_party/libaom/source/config/linux/x64 -I../../third_party/ots/src/include -Igen/v8/include -I../../third_party/fp16/src/include -I../../third_party/emoji-segmenter/src -I../../third_party/libgav1/src -I../../third_party/libgav1/src/src -I../../third_party/one_euro_filter/src -Wimplicit-fallthrough -Wextra-semi -Wunreachable-code-aggressive -Wthread-safety -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wno-cast-function-type -Wno-vla-extension -Wno-thread-safety-reference-return -Wshadow -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fsized-deallocation -flto=thin -fsplit-lto-unit -mllvm -inlinehint-threshold=360 -fwhole-program-vtables -no-canonical-prefixes -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -fprofile-use=../../chrome/build/pgo_profiles/chrome-linux-6723-1733159130-a5a2dc303855ef5efd9183eeebc68f04932f3097-d101f8bd9ceed464c1d066b8bffa18d791485d3e.profdata -Wno-profile-instr-unprofiled -Wno-profile-instr-out-of-date -Wno-backend-plugin -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wconversion -Wno-float-conversion -Wno-sign-conversion -Wno-implicit-float-conversion -Wno-implicit-int-conversion -Wexit-time-destructors -Wglobal-constructors -isystem/usr/lib64/libffi/include -isystem/usr/include/glib-2.0 -isystem/usr/lib64/glib-2.0/include -Wno-redundant-parens -Wno-redundant-parens -DPROTOBUF_ALLOW_DEPRECATED=1 -isystem/usr/include/nss -isystem/usr/include/nspr -isystem/usr/include/libpng16 -isystem/usr/include/freetype2 -isystem/usr/include/harfbuzz -isystem/usr/include/freetype2 -isystem/usr/include/glib-2.0 -isystem/usr/lib64/glib-2.0/include -DHWY_SHARED_DEFINE -Wno-invalid-offsetof -Wenum-compare-conditional -Wno-c++11-narrowing-const-reference -Wno-missing-template-arg-list-after-template-kw -Wno-dangling-assignment-gsl -std=c++20 -Wno-trigraphs -gsimple-template-names -fno-exceptions -fno-rtti -fvisibility-inlines-hidden  -U_GLIBCXX_ASSERTIONS -march=native -O3 -fno-semantic-interposition -pipe -Wno-unknown-warning-option -c gen/third_party/blink/renderer/platform/color_data.cc -o obj/third_party/blink/renderer/platform/platform/color_data.o
gen/third_party/blink/renderer/platform/color_data.cc:186:7: error: fallthrough annotation does not directly precede switch label
  186 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/platform/color_data.cc:162:7: error: fallthrough annotation does not directly precede switch label
  162 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/platform/color_data.cc:210:7: error: fallthrough annotation does not directly precede switch label
  210 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/platform/color_data.cc:106:7: error: fallthrough annotation does not directly precede switch label
  106 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/platform/color_data.cc:226:7: error: fallthrough annotation does not directly precede switch label
  226 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/platform/color_data.cc:202:7: error: fallthrough annotation does not directly precede switch label
  202 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/platform/color_data.cc:114:7: error: fallthrough annotation does not directly precede switch label
  114 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/platform/color_data.cc:138:7: error: fallthrough annotation does not directly precede switch label
  138 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/platform/color_data.cc:178:7: error: fallthrough annotation does not directly precede switch label
  178 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/platform/color_data.cc:242:7: error: fallthrough annotation does not directly precede switch label
  242 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/platform/color_data.cc:218:7: error: fallthrough annotation does not directly precede switch label
  218 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/platform/color_data.cc:194:7: error: fallthrough annotation does not directly precede switch label
  194 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/platform/color_data.cc:154:7: error: fallthrough annotation does not directly precede switch label
  154 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/platform/color_data.cc:130:7: error: fallthrough annotation does not directly precede switch label
  130 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/platform/color_data.cc:146:7: error: fallthrough annotation does not directly precede switch label
  146 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/platform/color_data.cc:98:7: error: fallthrough annotation does not directly precede switch label
   98 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/platform/color_data.cc:170:7: error: fallthrough annotation does not directly precede switch label
  170 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/platform/color_data.cc:122:7: error: fallthrough annotation does not directly precede switch label
  122 |       [[fallthrough]];
      |       ^
gen/third_party/blink/renderer/platform/color_data.cc:234:7: error: fallthrough annotation does not directly precede switch label
  234 |       [[fallthrough]];
      |       ^
19 errors generated.

Code snippet:

switch (hval)
    {
      default:
        hval += asso_values[static_cast<unsigned char>(str[19])];
#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
      [[fallthrough]];
#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
      __attribute__ ((__fallthrough__));
#endif
        [[fallthrough]];
      case 19:
        hval += asso_values[static_cast<unsigned char>(str[18])];
#if (defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang__ && __clang_major__ + (__clang_minor__ >= 9) > 3))) || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 202000L && ((defined __GNUC__ && __GNUC__ >= 10) || (defined __clang__ && __clang_major__ >= 9)))
      [[fallthrough]];
#elif (defined __GNUC__ && __GNUC__ >= 7) || (defined __clang__ && __clang_major__ >= 10)
      __attribute__ ((__fallthrough__));
#endif
        [[fallthrough]];

So my journey to Thorium has come to an end! Bye!

@gz83
Copy link
Collaborator

gz83 commented Apr 13, 2025

No problem, it's your freedom.

@gz83 gz83 closed this as not planned Won't fix, can't repro, duplicate, stale Apr 13, 2025
@blackteahamburger
Copy link
Author

Maybe I can pin my hopes on version 132 coming out in a few years :D, but before that I need to give my computer a rest.

@gz83
Copy link
Collaborator

gz83 commented Apr 16, 2025

I'm trying to install a Gentoo system, and once I'm done with it I'll probably try to compile Thorium.

Could you please share the latest ebuild file on your machine? Like the one you sent with the issue?

@gz83 gz83 reopened this Apr 16, 2025
@blackteahamburger
Copy link
Author

After recognizing that the last build failure is PF4Public/gentoo-overlay#420, I'm rebuilding Thorium with gperf-3.1. Let me see if it succeeds this time first.

@blackteahamburger
Copy link
Author

blackteahamburger commented Apr 18, 2025

Let's celebrate the successful build of Thorium after the battle lasting for months! I have uploaded the ebuild to https://github.com/blackteahamburger/blackteahamburger-overlay. To build Thorium, you need to emerge app-eselect/eselect-repository, eselect repository add my-overlay git https://github.com/blackteahamburger/my-overlay, emerge --sync then emerge www-client/thorium.

There are some notifications:

USE flags: you need to set proper USE flags. If you don't know how, just follow the default. system-av1 system-libvpx system-re2 probably won't build. system-ffmpeg requires the media-video/ffmpeg ebuild in my-overlay, with the ebuild in the main tree won't compile. ungoogled is totally untested. cpu_flags_x86_* is used only to control the behavior of setup.sh instead of the compiler flags (e.g. not used to set gn flags for more flexibility). Enable custom-cflags to override Thorium's default compiler flags.

Reproducing the failures mentioned above:

  • chromium-130-fix-includes.patch is used to fix the undefined symbols errors due to the lack of inclusion of the corresponding headers. Comment ebuild line 539 to reproduce them.
  • safe_browsing_mode=0 causes no member named 'PhishingDetector' in namespace 'safe_browsing::mojom, uncomment line 1452 to reproduce.
  • build_with_tflite_lib=false causes fatal error: 'tensorflow/compiler/mlir/lite/experimental/remat/metadata_util.h' file not found, uncomment line 1439 to reproduce.
  • Another slight failure: safe_browsing_mode=1 causes an error (prior to the compile) related to third_party/unrar, comment line 1170 to reproduce.

Good luck!

@gz83
Copy link
Collaborator

gz83 commented Apr 18, 2025

I'm sorry, due to some glitches and it seems that I didn't find a way to correctly set up dual graphics card switching and compiling the Gentoo system and its packages took me a lot of time, I had to fall back to the Debian system.

Also, I'm glad to see the progress you're making, and it would be even better if we could eliminate some of the non-Thorium-related stuff from it and follow the Thorium workflow more closely.

You can check the trunk+version+setup+build sh scripts for more information.

@blackteahamburger
Copy link
Author

Due to restriction of network access in the ebuild, it is impossible to build Thorium the way described in BUILDING.md (or at least, inconvenient and ugly). And I don't want to sacrifice the flexibility and options provided by the current ebuild.

@gz83
Copy link
Collaborator

gz83 commented Apr 19, 2025

Alex, this user managed to get Thorium compiling and working on Gentoo, could you take a look?

@Alex313031

@blackteahamburger
Copy link
Author

blackteahamburger commented Apr 19, 2025

I still don't understand the mechanism that causes these errors. I'm sure I don't change the files involved in these errors. Is it a problem with the Chromium code itself? You can find the process of fetching the Chromium code here (following https://wiki.gentoo.org/wiki/Project:Chromium/How_to_make_a_Chromium_tarball) and have a check. I still find the workarounds ugly.

@blackteahamburger
Copy link
Author

blackteahamburger commented Apr 19, 2025

Alex, this user managed to get Thorium compiling and working on Gentoo, could you take a look?

@Alex313031

It's still not ready yet because I still need to make sure every USE flag work (or remove them if they really don't). And it is definitely not where the ebuild will ultimately be placed.

@gz83
Copy link
Collaborator

gz83 commented Apr 19, 2025

I haven't figured out the root cause of the errors you mentioned, maybe some flags in the ebuild? Maybe some dependency issues in the system? Or even problems in the toolchain?

You may need to check them one by one, but this process may be painful if you don't have a powerful device or are not using a distributed compiler (and similar compiler acceleration).

Alex is the project owner and his opinions need to be heard. Also, I am aware that the ebuild files are not optimal yet, but I appreciate your contribution anyway.

@blackteahamburger
Copy link
Author

I got some fix inspiration from ungoogled patches, testing if they can work.

@blackteahamburger
Copy link
Author

blackteahamburger commented Apr 25, 2025

Even though I knew I would be able to fix it if I kept doing it, I still felt tired. Let me summarize the whole process:

  • A large number of unreproducible failures
  • No valid feedback
  • Extremely long time (even more interestingly, the next version has not been released yet)
  • It would be a nightmare if I had to do these things for every new version
  • ...

@blackteahamburger
Copy link
Author

blackteahamburger commented May 25, 2025

Now all build failures and other minor bugs of all use flags are eliminated! Let's congratulate (pretty late though :) )!

One downside is that it lacks polly support, because Gentoo's polly support starts from clang-20, but this version is not buildable with it. Waiting for the update!

And given the success I've had with ungoogling Thorium, would you consider making ungoogled an option?

@gz83
Copy link
Collaborator

gz83 commented May 25, 2025

Very good! But I think you still need to refer to the linux version args to further tweak the ebuild file and try to make it able to compile multiple different version variants.

As for Polly, Thorium isn't using it right now, so you can probably put it aside for now.

In addition, Thorium does not want to be ungoogled, which goes against Alex's ideas.

@blackteahamburger

@blackteahamburger
Copy link
Author

Very good! But I think you still need to refer to the linux version args to further tweak the ebuild file and try to make it able to compile multiple different version variants.

Users can set "-march=native" or something similar in CFLAGS in make.conf to control compilation, which provides more flexibility.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants