Snippet from the build.log: [59/349] x86_64-pc-linux-gnu-g++ -MMD -MF obj/vendor/breakpad/src/client/linux/crash_generation/breakpad_client.crash_generation_client.o.d -DENABLE_WEBRTC -DNDEBUG -DV8_USE_EXTERNAL_STARTUP_DATA -DSK_SUPPORT_LEGACY_GETTOPDEVICE -DSK_SUPPORT_LEGACY_B$ ../../vendor/breakpad/src/client/linux/crash_generation/crash_generation_client.cc: In member function ‘virtual bool google_breakpad::{anonymous}::CrashGenerationClientImpl::RequestDump(const void*, size_t)’: ../../vendor/breakpad/src/client/linux/crash_generation/crash_generation_client.cc:61:36: warning: missing initializer for member ‘kernel_msghdr::msg_namelen’ [-Wmissing-field-initializers] struct kernel_msghdr msg = { 0 }; ^ ../../vendor/breakpad/src/client/linux/crash_generation/crash_generation_client.cc:61:36: warning: missing initializer for member ‘kernel_msghdr::msg_iov’ [-Wmissing-field-initializers] ../../vendor/breakpad/src/client/linux/crash_generation/crash_generation_client.cc:61:36: warning: missing initializer for member ‘kernel_msghdr::msg_iovlen’ [-Wmissing-field-initializers] ../../vendor/breakpad/src/client/linux/crash_generation/crash_generation_client.cc:61:36: warning: missing initializer for member ‘kernel_msghdr::msg_control’ [-Wmissing-field-initializers] ../../vendor/breakpad/src/client/linux/crash_generation/crash_generation_client.cc:61:36: warning: missing initializer for member ‘kernel_msghdr::msg_controllen’ [-Wmissing-field-initializers] ../../vendor/breakpad/src/client/linux/crash_generation/crash_generation_client.cc:61:36: warning: missing initializer for member ‘kernel_msghdr::msg_flags’ [-Wmissing-field-initializers] At global scope: cc1plus: warning: unrecognized command line option ‘-Wno-undefined-var-template’ cc1plus: warning: unrecognized command line option ‘-Wno-inconsistent-missing-override’ [60/349] x86_64-pc-linux-gnu-g++ -MMD -MF obj/vendor/breakpad/src/client/linux/handler/breakpad_client.exception_handler.o.d -DENABLE_WEBRTC -DNDEBUG -DV8_USE_EXTERNAL_STARTUP_DATA -DSK_SUPPORT_LEGACY_GETTOPDEVICE -DSK_SUPPORT_LEGACY_BITMAP_CONFIG -D$ FAILED: obj/vendor/breakpad/src/client/linux/handler/breakpad_client.exception_handler.o x86_64-pc-linux-gnu-g++ -MMD -MF obj/vendor/breakpad/src/client/linux/handler/breakpad_client.exception_handler.o.d -DENABLE_WEBRTC -DNDEBUG -DV8_USE_EXTERNAL_STARTUP_DATA -DSK_SUPPORT_LEGACY_GETTOPDEVICE -DSK_SUPPORT_LEGACY_BITMAP_CONFIG -DSK_SUPPOR$ In file included from ../../vendor/breakpad/src/client/linux/handler/exception_handler.cc:66:0: ../../vendor/breakpad/src/client/linux/handler/exception_handler.h:194:21: error: field ‘context’ has incomplete type ‘google_breakpad::ucontext’ struct ucontext context; ^~~~~~~ ../../vendor/breakpad/src/client/linux/handler/exception_handler.h:194:12: note: forward declaration of ‘struct google_breakpad::ucontext’ struct ucontext context; ^~~~~~~~ ../../vendor/breakpad/src/client/linux/handler/exception_handler.cc: In member function ‘bool google_breakpad::ExceptionHandler::HandleSignal(int, siginfo_t*, void*)’: ../../vendor/breakpad/src/client/linux/handler/exception_handler.cc:442:63: error: invalid application of ‘sizeof’ to incomplete type ‘google_breakpad::ucontext’ memcpy(&g_crash_context_.context, uc, sizeof(struct ucontext)); ^ ../../vendor/breakpad/src/client/linux/handler/exception_handler.cc:456:13: error: invalid use of incomplete type ‘struct google_breakpad::ucontext’ if (uc_ptr->uc_mcontext.fpregs) { ^~ In file included from ../../vendor/breakpad/src/client/linux/handler/exception_handler.cc:66:0: ../../vendor/breakpad/src/client/linux/handler/exception_handler.h:194:12: note: forward declaration of ‘struct google_breakpad::ucontext’ struct ucontext context; ^~~~~~~~ ../../vendor/breakpad/src/client/linux/handler/exception_handler.cc:457:49: error: invalid use of incomplete type ‘struct google_breakpad::ucontext’ memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs, ^~ In file included from ../../vendor/breakpad/src/client/linux/handler/exception_handler.cc:66:0: ../../vendor/breakpad/src/client/linux/handler/exception_handler.h:194:12: note: forward declaration of ‘struct google_breakpad::ucontext’ struct ucontext context; ^~~~~~~~ ../../vendor/breakpad/src/client/linux/handler/exception_handler.cc: In member function ‘bool google_breakpad::ExceptionHandler::SimulateSignalDelivery(int)’: ../../vendor/breakpad/src/client/linux/handler/exception_handler.cc:479:19: error: aggregate ‘google_breakpad::ucontext context’ has incomplete type and cannot be defined struct ucontext context; ^~~~~~~ At global scope: cc1plus: warning: unrecognized command line option ‘-Wno-undefined-var-template’ cc1plus: warning: unrecognized command line option ‘-Wno-inconsistent-missing-override’ emerge fails as a result. Complete build.log is attached. This was a repeat merge, and I successfully emerged it only a few days ago. In between a did a world update. So maybe it's a broken dependency? Cheers.
Addendum: can't add build.log, as it's too big. Is there some other place I can upload it?
Confirming, caused by glibc 2.26 breaking included old chromium. It is fixed by patch like: http://www.slackware.com/~alien/slackbuilds/chromium/build/patches/chromium_glibc226.patch
(In reply to Radoslaw Szkodzinski from comment #2) > Confirming, caused by glibc 2.26 breaking included old chromium. > > It is fixed by patch like: > http://www.slackware.com/~alien/slackbuilds/chromium/build/patches/ > chromium_glibc226.patch Thank you for the patch. After modifying it to patch electron's included old chromium, however, it still failed with the same error.
Created attachment 506546 [details, diff] Patch for /vendor subdirectory
Created attachment 506548 [details, diff] Patch for /chromium subdirectory
I've attached 2 modifications of mentioned patch. Applying both of them allows electron to build correctly (at least version from overlay, but should work the same). I think only /vendor patch is needed. but not tested with only this one.
Those patches resolved the issue for me. Thanks!
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=08f69fe500076c4ecd3291a4297eb6b392f69985 commit 08f69fe500076c4ecd3291a4297eb6b392f69985 Author: Elvis Pranskevichus <elvis@magic.io> AuthorDate: 2017-12-04 16:51:54 +0000 Commit: Patrice Clement <monsieurp@gentoo.org> CommitDate: 2017-12-08 22:22:06 +0000 dev-util/electron: version bump to 1.6.15. Closes: https://bugs.gentoo.org/633720 Closes: https://bugs.gentoo.org/635276 Closes: https://bugs.gentoo.org/638270 Closes: https://bugs.gentoo.org/638992 Closes: https://bugs.gentoo.org/640140 Closes: https://github.com/gentoo/gentoo/pull/6478 Signed-off-by: Elvis Pranskevichus <elvis@magic.io> Package-Manager: Portage-2.3.13, Repoman-2.3.3 dev-util/electron/Manifest | 49 +- ...ron-1.6.11-r1.ebuild => electron-1.6.15.ebuild} | 90 +++- dev-util/electron/files/chromium-gcc-7-r0.patch | 114 ++++ dev-util/electron/files/chromium-icu-59-r0.patch | 582 +++++++++++++++++++++ dev-util/electron/files/chromium-icu-60-r0.patch | 66 +++ .../files/chromium-python3-compat-r0.patch | 34 ++ .../electron/files/chromium-shared-v8-r2.patch | 94 +--- .../electron/files/chromium-system-icu-r0.patch | 140 +++++ .../electron/files/chromium-v8-icu-59-r0.patch | 83 +++ ...electron-1.6.11-vendor-libchromiumcontent.patch | 86 --- .../files/electron-1.6.15-vendor-breakpad.patch | 223 ++++++++ ...atch => electron-1.6.15-vendor-brightray.patch} | 74 ++- ...electron-1.6.15-vendor-libchromiumcontent.patch | 202 +++++++ ...ode.patch => electron-1.6.15-vendor-node.patch} | 44 +- ...electron-1.6.11.patch => electron-1.6.15.patch} | 124 +++-- .../electron/files/electron-system-icu-r0.patch | 34 ++ 16 files changed, 1744 insertions(+), 295 deletions(-)