www-client/chromium-80.0.3970.5 fails to compile
Closed this issue · 7 comments
[9789/20285] x86_64-pc-linux-gnu-g++ -MMD -MF obj/net/net/quic_framer.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LAR
GEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_40 -DGLIB_VERSION_MIN_REQUIRED=
GLIB_VERSION_2_40 -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DHAVE_PTHREAD -DNET_IMPLEMENTATION -DENABLE_BUILT_IN_DNS -DUSE_GIO -DUSE_SYSTEM_ZLIB=1 -DUSING_SYSTEM_ICU
=1 -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC -DUCHAR_TYPE=uint16_t -DU_IMPORT=U_EXPORT -I../.. -Igen -Igen/shim_headers/zlib_shim -Igen/shim_headers/icui18n_shim -Igen/shim_headers/icuuc_shi
m -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/protobuf/src -I../../third_party/boringssl/src/include -I../../third_party/ced/src -I../../third_party/brotli/include
-fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pipe -pthread -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -Wno-unused-local-
typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -Wno-comments -Wno-packed-not-aligned -Wno-missing-field-initializers -Wno-unused-parameter -fno-omit-frame-pointer -fvisibilit
y=hidden -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/lib64/libffi/include -I/usr/include/nss -I/usr/include/nspr -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr
/lib64/libffi/include -I/usr/include/libmount -I/usr/include/blkid -std=gnu++14 -Wno-narrowing -Wno-class-memaccess -Wno-class-memaccess -fno-exceptions -fno-rtti -fvisibility-inlines-hidden
-O2 -march=znver1 -pipe -Wl,-O1 -Wl,--as-needed -c ../../net/third_party/quiche/src/quic/core/quic_framer.cc -o obj/net/net/quic_framer.o
In file included from /usr/include/unistd.h:226,
from ../../build/build_config.h:45,
from ../../base/compiler_specific.h:8,
from ../../base/logging.h:20,
from ../../net/quic/platform/impl/quic_logging_impl.h:8,
from ../../net/third_party/quiche/src/quic/platform/api/quic_logging.h:8,
from ../../net/third_party/quiche/src/quic/core/quic_packet_number.h:13,
from ../../net/third_party/quiche/src/quic/core/quic_types.h:16,
from ../../net/third_party/quiche/src/quic/core/quic_versions.h:22,
from ../../net/third_party/quiche/src/quic/core/crypto/quic_crypter.h:8,
from ../../net/third_party/quiche/src/quic/core/crypto/quic_decrypter.h:13,
from ../../net/third_party/quiche/src/quic/core/quic_framer.h:13,
from ../../net/third_party/quiche/src/quic/core/quic_framer.cc:5:
../../net/third_party/quiche/src/quic/core/frames/quic_frame.h:110:24: warning: offsetof within non-standard-layout type 'quic::QuicStreamFrame' is conditionally-supported [-Winvalid-offseto
f]
110 | static_assert(offsetof(QuicStreamFrame, type) == offsetof(QuicFrame, type),
| ^
../../net/third_party/quiche/src/quic/core/frames/quic_frame.h:110:59: warning: offsetof within non-standard-layout type 'quic::QuicFrame' is conditionally-supported [-Winvalid-offsetof]
110 | static_assert(offsetof(QuicStreamFrame, type) == offsetof(QuicFrame, type),
| ^
../../net/third_party/quiche/src/quic/core/frames/quic_inlined_frame.h: In instantiation of 'quic::QuicInlinedFrame<DerivedT>::QuicInlinedFrame(quic::QuicFrameType) [with DerivedT = quic::Qu
icPaddingFrame]':
../../net/third_party/quiche/src/quic/core/frames/quic_padding_frame.h:20:77: required from here
../../net/third_party/quiche/src/quic/core/frames/quic_inlined_frame.h:20:28: warning: offsetof within non-standard-layout type 'quic::QuicPaddingFrame' is conditionally-supported [-Winvalid
-offsetof]
20 | static_assert(offsetof(DerivedT, type) == 0,
| ^
ninja: build stopped: subcommand failed.
* ERROR: www-client/chromium-80.0.3970.5::FireBurn failed (compile phase):
* ninja -v -j7 -l0 -C out/Release v8_context_snapshot_generator failed
*
* Call stack:
* ebuild.sh, line 125: Called src_compile
* environment, line 5465: Called eninja '-C' 'out/Release' 'v8_context_snapshot_generator'
* environment, line 2964: Called die
* The specific snippet of code:
* "$@" || die "${nonfatal_args[@]}" "${*} failed"
This seems to be the root cause;
In file included from ../../net/third_party/quiche/src/quic/core/quic_crypto_stream.cc:5:
../../net/third_party/quiche/src/quic/core/quic_crypto_stream.h:158:30: note: 'quic::QuicCryptoStream::CryptoSubstream::CryptoSubstream(quic::QuicCryptoStream::CryptoSubstream&&)' is implicitly deleted because the default definition would be ill-formed:
158 | struct QUIC_EXPORT_PRIVATE CryptoSubstream {
| ^~~~~~~~~~~~~~~
../../net/third_party/quiche/src/quic/core/quic_crypto_stream.h:158:30: error: use of deleted function 'quic::QuicStreamSendBuffer::QuicStreamSendBuffer(quic::QuicStreamSendBuffer&&)'
In file included from ../../net/third_party/quiche/src/quic/core/quic_stream.h:27,
from ../../net/third_party/quiche/src/quic/core/quic_crypto_stream.h:15,
from ../../net/third_party/quiche/src/quic/core/quic_crypto_stream.cc:5:
../../net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h:65:3: note: declared here
65 | QuicStreamSendBuffer(QuicStreamSendBuffer&& other) = delete;
| ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/unistd.h:226,
from ../../build/build_config.h:45,
from ../../base/compiler_specific.h:8,
from ../../base/logging.h:20,
from ../../net/quic/platform/impl/quic_logging_impl.h:8,
from ../../net/third_party/quiche/src/quic/platform/api/quic_logging.h:8,
from ../../net/third_party/quiche/src/quic/core/quic_interval_set.h:63,
from ../../net/third_party/quiche/src/quic/core/frames/quic_ack_frame.h:11,
from ../../net/third_party/quiche/src/quic/core/frames/quic_frame.h:11,
from ../../net/third_party/quiche/src/quic/core/quic_packets.h:17,
from ../../net/third_party/quiche/src/quic/core/crypto/crypto_handshake_message.h:14,
from ../../net/third_party/quiche/src/quic/core/crypto/crypto_framer.h:15,
from ../../net/third_party/quiche/src/quic/core/quic_crypto_stream.h:11,
from ../../net/third_party/quiche/src/quic/core/quic_crypto_stream.cc:5:
../../net/third_party/quiche/src/quic/core/frames/quic_inlined_frame.h: In instantiation of 'quic::QuicInlinedFrame<DerivedT>::QuicInlinedFrame(quic::QuicFrameType) [with DerivedT = quic::QuicPaddingFrame]':
../../net/third_party/quiche/src/quic/core/frames/quic_padding_frame.h:20:77: required from here
../../net/third_party/quiche/src/quic/core/frames/quic_inlined_frame.h:20:28: warning: offsetof within non-standard-layout type 'quic::QuicPaddingFrame' is conditionally-supported [-Winvalid-offsetof]
I have already attempted to bump to a new chromium version, but for this the patches need more love and the compilation broke at another point.
I have also checked Chromium 80.0.3987.3 up to 81.0.3988.0. This required the following changes in order te start compilation. Sadly the errors in quic_crypto_stream.cc remain.
--- chromium-80.0.3970.5.ebuild 2019-12-07 19:18:06.088018221 +0100
+++ chromium-80.0.3987.3.ebuild 2019-12-08 11:31:33.619926645 +0100
@@ -252,6 +252,7 @@
third_party/catapult/third_party/html5lib-python
third_party/catapult/third_party/polymer
third_party/catapult/third_party/six
+ third_party/catapult/third_party/flot
third_party/catapult/tracing/third_party/d3
third_party/catapult/tracing/third_party/gl-matrix
third_party/catapult/tracing/third_party/jpeg-js
@@ -276,8 +277,8 @@
third_party/dom_distiller_js
third_party/emoji-segmenter
third_party/flatbuffers
- third_party/flot
third_party/freetype
+ third_party/libgifcodec
third_party/glslang
third_party/google_input_tools
third_party/google_input_tools/third_party/closure_library
@@ -345,7 +346,6 @@
third_party/skia
third_party/skia/include/third_party/skcms
third_party/skia/include/third_party/vulkan
- third_party/skia/third_party/gif
third_party/skia/third_party/skcms
third_party/skia/third_party/vulkan
third_party/smhasher
--- enable-vaapi.patch.old 2019-12-08 00:20:26.836765752 +0100
+++ enable-vaapi.patch.new 2019-12-07 21:47:06.216999698 +0100
@@ -62,34 +62,6 @@
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
#endif // OS_CHROMEOS
{"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName,
-Index: dev/chrome/browser/flag_descriptions.cc
-===================================================================
---- dev.orig/chrome/browser/flag_descriptions.cc
-+++ dev/chrome/browser/flag_descriptions.cc
-@@ -2789,9 +2789,7 @@ const char kMacSystemMediaPermissionsInf
-
- #endif
-
--// Chrome OS -------------------------------------------------------------------
--
--#if defined(OS_CHROMEOS)
-+#if defined(OS_LINUX) && !defined(OS_ANDROID)
-
- const char kAcceleratedMjpegDecodeName[] =
- "Hardware-accelerated mjpeg decode for captured frame";
-@@ -2799,6 +2797,12 @@ const char kAcceleratedMjpegDecodeDescri
- "Enable hardware-accelerated mjpeg decode for captured frame where "
- "available.";
-
-+#endif
-+
-+// Chrome OS -------------------------------------------------------------------
-+
-+#if defined(OS_CHROMEOS)
-+
- const char kAppServiceAshName[] = "App Service Ash";
- const char kAppServiceAshDescription[] =
- "Use the App Service to provide data to the Ash UI, such as the shelf and "
Index: dev/chrome/browser/flag_descriptions.h
===================================================================
--- dev.orig/chrome/browser/flag_descriptions.h
I've been working on a build for chromium-80.0.3983.2 when it was released
I got so far with the build but it failed with the attached errors
build.zip
I've not had time to look into it further
If you build the one in my overlay with clang it should build just fine
@FireBurn I think I am already a step further than that. I ended up with a linking error. I took the patches from the offical gentoo repository. Needed to modify your patches a bit. But I don't know if it does not like due a missing definition (which I fixed, but ebuild ... compile did not overcame it).
[622/622] x86_64-pc-linux-gnu-g++ -Wl,--version-script=../../build/linux/chrome.map -fPIC -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,-z,defs -Wl,--as-needed -rdynamic -pie -Wl,--disable-new-dtags -Wl,-O1 -Wl,--as-needed -o "./chrome" -Wl,--start-group @"./chrome.rsp" -Wl,--end-group -latomic -ldl -lpthread -lrt -lX11 -lX11-xcb -lxcb -lXcomposite -lXcursor -lXdamage -lXext -lXfixes -lXi -lXrender -lXtst -lgmodule-2.0 -lglib-2.0 -lgobject-2.0 -lgthread-2.0 -licui18n -licuuc -licudata -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -lva -lfontconfig -ldbus-1 -lXss -lresolv -lgio-2.0 -lz -lpng16 -lwebpdemux -lwebpmux -lwebp -lfreetype -ljpeg -lexpat -lharfbuzz-subset -lharfbuzz -ldrm -lXrandr -lm -lopus -lavcodec -lavformat -lavutil -lopenh264 -lre2 -lpci -lasound -lsnappy -latk-1.0 -latk-bridge-2.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lxml2 -lminizip -latspi -lFLAC -lgtk-3 -lgdk-3 -lcairo-gobject -lgdk_pixbuf-2.0 -lxslt
FAILED: chrome
x86_64-pc-linux-gnu-g++ -Wl,--version-script=../../build/linux/chrome.map -fPIC -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,-z,defs -Wl,--as-needed -rdynamic -pie -Wl,--disable-new-dtags -Wl,-O1 -Wl,--as-needed -o "./chrome" -Wl,--start-group @"./chrome.rsp" -Wl,--end-group -latomic -ldl -lpthread -lrt -lX11 -lX11-xcb -lxcb -lXcomposite -lXcursor -lXdamage -lXext -lXfixes -lXi -lXrender -lXtst -lgmodule-2.0 -lglib-2.0 -lgobject-2.0 -lgthread-2.0 -licui18n -licuuc -licudata -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -lva -lfontconfig -ldbus-1 -lXss -lresolv -lgio-2.0 -lz -lpng16 -lwebpdemux -lwebpmux -lwebp -lfreetype -ljpeg -lexpat -lharfbuzz-subset -lharfbuzz -ldrm -lXrandr -lm -lopus -lavcodec -lavformat -lavutil -lopenh264 -lre2 -lpci -lasound -lsnappy -latk-1.0 -latk-bridge-2.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lxml2 -lminizip -latspi -lFLAC -lgtk-3 -lgdk-3 -lcairo-gobject -lgdk_pixbuf-2.0 -lxslt
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: obj/chrome/browser/browser/about_flags.o:(.data.rel.ro+0x2d20): undefined reference to `flag_descriptions::kAcceleratedMjpegDecodeName'
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: obj/chrome/browser/browser/about_flags.o:(.data.rel.ro+0x2d28): undefined reference to `flag_descriptions::kAcceleratedMjpegDecodeDescription'
collect2: error: ld returned 1 exit status
If you build the one in my overlay with clang it should build just fine
Thanks for this pro tip! Typing this from a GPU enabled browser on Vega :-)
I've been working on getting Chromium 80.0.3987.7 working but its failing too
https://bugs.chromium.org/p/chromium/issues/detail?id=1034318
That's what I'm currently using
That's 81.0.4000.3 in my Overlay, tested with Clang-10