[meta-freescale] [meta-qt5] QtWebengine SIGBUS alignment exception
Peter Fink
ub4_clb at yahoo.de
Wed Mar 14 02:11:32 PDT 2018
Hi!
I made some progress investigating my problem, but still have some
questions.
When I remove "thumb" from my TUNE_FEATURES qtwebengine runs without any
issues.
Can somebody acknowledge this behavior? Just to be sure it's not an
issue of some other part of my setup.
#1) Why could this be an issue? Should we insert a warning or does
anybody have a clue on how I/we could possibly fix this?
Is it possible to override thumb/arm mode setting for a
single package in yocto?
#2) Which TUNE_FEATURES are recommended for i.mx6q/dl?
I based our distro on fslc-base/framebuffer and our board
on sabresd which uses "thumb".
#3) What advatages/disadvantages does the (not) using of thumb mode
cause for my whole system?
I already discovered, that e.g.
libQt5WebEngineCore.so.5.9.4 grew from ~50mb to ~120mb.
#4) Do I need -mcpu=cortex-a9 for i.mx6? Or is -march=armv7-a enough?
GCC doc state it is used to further optimize code for the
target. Is there a reason why is it not set for imx6q/dl on sabresd?
Thanks in advance,
Peter
On 2018/03/12 at 08:55 Peter wrote:
> Hi!
>
> Did anybody successfully run a qtwebengine application built with
> qt5.9 or 5.10 on rocko?
>
> I'm building for i.mx6 (eglfs) and getting more or less the same
> errors on 5.9 and 5.10.
>
> The problem seems to lie somewhere in
> qtwebengine/3rdparty/chromium/thirdparty/boringssl which makes it
> quite an easy target to debug...
>
> On 5.10 I get a bus errror (SIGBUS) because of an unaligned access:
>
> ./quicknanobrowser -platform eglfs http://heise.de/security
> Alignment trap: not handling instruction ecd6cb04 at [<734fd3b8>]
> Unhandled fault: alignment exception (0x001) at 0x734fcce1
> pgd = d9a70000
> [734fcce1] *pgd=69a75831, *pte=61c6359f, *ppte=61c63e7e
> Received signal 7 BUS_ADRALN 0000734fcce1
> #0 0x00007401b66a <unknown>
> #1 0x00007401b4e6 <unknown>
> #2 0x00007347ae48 <unknown>
> #3 0x00007401b8e2 <unknown>
> #4 0x00007635bbc0 <unknown>
> [end of stack trace]
> Calling _exit(1). Core file will not be generated.
>
> If I use https qtwebengine simply complains about the webpage not
> being available and throws the following error on the command line:
>
> [503:523:0309/095037.841842:ERROR:ssl_client_socket_impl.cc(1129)]
> handshake failed; returned -1, SSL error code 1, net_error -126
>
> So I traced the error down to bsaes_ctr32_encrypt_blocks inside the
> boringSSL implementation:
>
>
> Starting program: ./quicknanobrowser -platform eglfs
> http://heise.de/security
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/libthread_db.so.1".
> QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to
> '/tmp/runtime-root'
> QEglFSVivIntegration will set environment variable FB_MULTI_BUFFER=2
> to enable double buffering and vsync.
> If this is not desired, you can override this via: export
> QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER=1
> [New Thread 0x681d53c0 (LWP 565)]
> Unable to query physical screen size, defaulting to 100 dpi.
> To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and
> QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).
> qt.qpa.input: X-less xkbcommon not available, not performing key mapping
> [New Thread 0x673603c0 (LWP 566)]
> [New Thread 0x64a523c0 (LWP 567)]
> [New Thread 0x640ff3c0 (LWP 569)]
> [New Thread 0x638ff3c0 (LWP 570)]
> [New Thread 0x630ff3c0 (LWP 571)]
> [New Thread 0x628ff3c0 (LWP 572)]
> [New Thread 0x620ff3c0 (LWP 573)]
> [New Thread 0x618ff3c0 (LWP 574)]
> [New Thread 0x610ff3c0 (LWP 575)]
> [New Thread 0x608ff3c0 (LWP 576)]
> [New Thread 0x600ff3c0 (LWP 577)]
> [New Thread 0x5f8ff3c0 (LWP 578)]
> [New Thread 0x5f0ff3c0 (LWP 579)]
> [New Thread 0x5e8ff3c0 (LWP 580)]
> [New Thread 0x5e0ff3c0 (LWP 581)]
> [New Thread 0x5d8ff3c0 (LWP 582)]
> [New Thread 0x5d0ff3c0 (LWP 583)]
> [New Thread 0x5c8ff3c0 (LWP 584)]
> [New Thread 0x5c0ff3c0 (LWP 585)]
> [New Thread 0x5b8ff3c0 (LWP 586)]
> [New Thread 0x5b0ff3c0 (LWP 587)]
> [New Thread 0x5a81d3c0 (LWP 588)]
> [New Thread 0x597ff3c0 (LWP 597)]
> [Thread 0x597ff3c0 (LWP 597) exited]
> Alignment trap: not handling instruction ecd6cb04 at [<7349b5f8>]
> Unhandled fault: alignment exception (0x001) at 0x7349af21
> pgd = d8d50000
> [7349af21] *pgd=68a4e831, *pte=67c3059f, *ppte=67c30e7e
>
> Thread 19 "Chrome_IOThread" received signal SIGBUS, Bus error.
> [Switching to Thread 0x5d0ff3c0 (LWP 583)]
> 0x7349b5fc in _bsaes_key_convert () from
> /usr/lib/libQt5WebEngineCore.so.5
> (gdb) backtrace
> #0 0x7349b5fc in _bsaes_key_convert () from
> /usr/lib/libQt5WebEngineCore.so.5
> #1 0x7349b98e in bsaes_ctr32_encrypt_blocks () from
> /usr/lib/libQt5WebEngineCore.so.5
> Backtrace stopped: previous frame identical to this frame (corrupt
> stack?)
>
> I couldn't find an option to use system ssl libs instead of chromium's
> own libs or is there one hidden I'm not aware of?
>
> One possible problem I could imagine is boringssl being built for the
> wrong architecture, as there are multiple asm files for armv4, x86 and
> so on... do you think that's a likely cause or might my toolchain be
> broken somehow?
>
> Thanks in advance & best regards,
> Peter
More information about the meta-freescale
mailing list