Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 638270 - dev-util/electron-1.16.11-r1 fails on breakpad_client.exception_handler.o
Summary: dev-util/electron-1.16.11-r1 fails on breakpad_client.exception_handler.o
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Elvis Pranskevichus
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-11-20 19:55 UTC by N. Andrew Walsh
Modified: 2017-12-08 22:22 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Patch for /vendor subdirectory (chromium_glibc226_vendor.patch,10.24 KB, patch)
2017-11-25 12:03 UTC, Jakub Caban
Details | Diff
Patch for /chromium subdirectory (chromium_glibc226.patch,10.29 KB, patch)
2017-11-25 12:04 UTC, Jakub Caban
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description N. Andrew Walsh 2017-11-20 19:55:07 UTC
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.
Comment 1 N. Andrew Walsh 2017-11-20 20:10:10 UTC
Addendum: can't add build.log, as it's too big. Is there some other place I can upload it?
Comment 2 Radoslaw Szkodzinski 2017-11-22 01:23:12 UTC
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
Comment 3 N. Andrew Walsh 2017-11-24 19:03:02 UTC
(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.
Comment 4 Jakub Caban 2017-11-25 12:03:43 UTC
Created attachment 506546 [details, diff]
Patch for /vendor subdirectory
Comment 5 Jakub Caban 2017-11-25 12:04:07 UTC
Created attachment 506548 [details, diff]
Patch for /chromium subdirectory
Comment 6 Jakub Caban 2017-11-25 12:04:50 UTC
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.
Comment 7 N. Andrew Walsh 2017-11-25 13:55:27 UTC
Those patches resolved the issue for me. Thanks!
Comment 8 Larry the Git Cow gentoo-dev 2017-12-08 22:22:56 UTC
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(-)