Re: [oe] [meta-qt5] QtWebengine SIGBUS alignment exception
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 = d9a7 [734fcce1] *pgd=69a75831, *pte=61c6359f, *ppte=61c63e7e Received signal 7 BUS_ADRALN 734fcce1 #0 0x7401b66a #1 0x7401b4e6 #2 0x7347ae48 #3 0x7401b8e2 #4 0x7635bbc0 [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 = d8d5 [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 -- __
Re: [oe] [meta-oe][PATCH] sysdig: don't build for aarch64
Op 13-03-18 om 18:03 schreef Armin Kuster: > this package depends on luajit which is not supported on aarch64 FWIW, luajit upstream supports it, it just isn't in an official release. Both fedora and debian are now using a snapshot to get luajit working on aarch64. > > Signed-off-by: Armin Kuster > --- > meta-oe/recipes-extended/sysdig/sysdig_git.bb | 4 > 1 file changed, 4 insertions(+) > > diff --git a/meta-oe/recipes-extended/sysdig/sysdig_git.bb > b/meta-oe/recipes-extended/sysdig/sysdig_git.bb > index 67d06dc..4f58281 100644 > --- a/meta-oe/recipes-extended/sysdig/sysdig_git.bb > +++ b/meta-oe/recipes-extended/sysdig/sysdig_git.bb > @@ -35,3 +35,7 @@ FILES_${PN} += " \ > ${datadir}/zsh/* \ > ${prefix}/src/* \ > " > + > +# luajit not supported on Aarch64 > +COMPATIBLE_HOST = "^(?!aarch64).*" > + > -- ___ Openembedded-devel mailing list Openembedded-devel@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-devel
[oe] [PATCH] glm: update 0.9.8.5 -> 0.9.9-a2 to fix x86_64 (sse-simd) build
* Commit log shows many commints fixing sse e.g. [1-3]. Instead of creating a heavy patch series here let's move to the latest version tagged. * License file 'copying.txt' was removed in [4]. License information is now found in 'readme.md'. License is still MIT. [1] https://github.com/g-truc/glm/commit/8bcf9b5ae791fce37a86764b8acfd68424ac544b [2] https://github.com/g-truc/glm/commit/1bbf2dafb9f67b14507dc37e4ee885464c5ffc78 [3] https://github.com/g-truc/glm/commit/fdfd03ffaf0e312ce0bab604982f50790e71b09f [4] https://github.com/g-truc/glm/commit/a23911a5e9d8c631023c62be6f0cf0bf855ca482 Signed-off-by: Andreas Müller --- meta-oe/recipes-graphics/glm/{glm_0.9.8.5.bb => glm_0.9.9-a2.bb} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename meta-oe/recipes-graphics/glm/{glm_0.9.8.5.bb => glm_0.9.9-a2.bb} (68%) diff --git a/meta-oe/recipes-graphics/glm/glm_0.9.8.5.bb b/meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb similarity index 68% rename from meta-oe/recipes-graphics/glm/glm_0.9.8.5.bb rename to meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb index a174f2af0..ed050a148 100644 --- a/meta-oe/recipes-graphics/glm/glm_0.9.8.5.bb +++ b/meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb @@ -8,10 +8,10 @@ BUGTRACKER = "https://github.com/g-truc/glm/issues"; SECTION = "libs" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://copying.txt;md5=4431606d144252143c9c3df384a74cad" +LIC_FILES_CHKSUM = "file://readme.md;beginline=21;endline=22;md5=3075b5727d36f29edccf97b93e72b790" -SRC_URI = "git://github.com/g-truc/glm;branch=0.9.8" -SRCREV = "6fa203eeb7fbcbb6f620501fad40359c8a456049" +SRC_URI = "git://github.com/g-truc/glm;branch=master" +SRCREV = "fcbedf5058ef8613dd02aac62ef00d55dcfeadd7" S = "${WORKDIR}/git" inherit cmake -- 2.14.3 -- ___ Openembedded-devel mailing list Openembedded-devel@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-devel
[oe] [meta-oe][PATCH] smartmontools: 6.5 -> 6.6
Upgrade smartmontools from 6.5 to 6.6. Signed-off-by: Huang Qiyu --- .../smartmontools/{smartmontools_6.5.bb => smartmontools_6.6.bb} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename meta-oe/recipes-extended/smartmontools/{smartmontools_6.5.bb => smartmontools_6.6.bb} (93%) diff --git a/meta-oe/recipes-extended/smartmontools/smartmontools_6.5.bb b/meta-oe/recipes-extended/smartmontools/smartmontools_6.6.bb similarity index 93% rename from meta-oe/recipes-extended/smartmontools/smartmontools_6.5.bb rename to meta-oe/recipes-extended/smartmontools/smartmontools_6.6.bb index 0970d2a..1a1767e 100644 --- a/meta-oe/recipes-extended/smartmontools/smartmontools_6.5.bb +++ b/meta-oe/recipes-extended/smartmontools/smartmontools_6.6.bb @@ -22,8 +22,8 @@ PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'libcap-ng selinux', d) PACKAGECONFIG[libcap-ng] = "--with-libcap-ng=yes,--with-libcap-ng=no,libcap-ng" PACKAGECONFIG[selinux] = "--with-selinux=yes,--with-selinux=no,libselinux" -SRC_URI[md5sum] = "093aeec3f8f39fa9a37593c4012d3156" -SRC_URI[sha256sum] = "89e8bb080130bc6ce148573ba5bb91bfe30236b64b1b5bbca26515d4b5c945bc" +SRC_URI[md5sum] = "9ae2c6e7131cd2813edcc65cbe5f223f" +SRC_URI[sha256sum] = "51f43d0fb064fccaf823bbe68cf0d317d0895ff895aa353b3339a3b316a53054" inherit autotools update-rc.d systemd -- 2.7.4 -- ___ Openembedded-devel mailing list Openembedded-devel@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-devel
[oe] [meta-qt5][PATCH] qtbase: Fix the qt5 linuxfb ratation problem
This patch fix the qt5 linuxfb ratation problem, create an mrotation option which can rotate the display by 90,180 and 270 degrees. Use tslib as a touch plugin to make rotation of touch coordinates effective. Signed-off-by: Huang Qiyu --- ...01-Fix-the-qt5.6-linuxfb-ratation-problem.patch | 120 + recipes-qt/qt5/qtbase/0012-Fix-rotate-tslib.patch | 75 + recipes-qt/qt5/qtbase_git.bb | 10 ++ 3 files changed, 205 insertions(+) create mode 100644 recipes-qt/qt5/qtbase/0001-Fix-the-qt5.6-linuxfb-ratation-problem.patch create mode 100644 recipes-qt/qt5/qtbase/0012-Fix-rotate-tslib.patch diff --git a/recipes-qt/qt5/qtbase/0001-Fix-the-qt5.6-linuxfb-ratation-problem.patch b/recipes-qt/qt5/qtbase/0001-Fix-the-qt5.6-linuxfb-ratation-problem.patch new file mode 100644 index 000..12ba9fa --- /dev/null +++ b/recipes-qt/qt5/qtbase/0001-Fix-the-qt5.6-linuxfb-ratation-problem.patch @@ -0,0 +1,120 @@ +From 8b4e54674a248fda7f1b72e01f429f495e4054e0 Mon Sep 17 00:00:00 2001 +From: Fan Xin +Date: Wed, 6 Dec 2017 18:47:53 +0900 +Subject: [PATCH] Fix the qt5.6 linuxfb ratation problem + +This patch is backported from +https://borkedlabs.com/blog/2015/06-01-qt5-linuxfb-rotation-for-lcds/ + +Signed-off-by: Fan Xin +Signed-off-by: Huang Qiyu +--- + src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp | 38 +--- + src/plugins/platforms/linuxfb/qlinuxfbscreen.h | 1 + + 2 files changed, 35 insertions(+), 4 deletions(-) + +diff --git a/src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp b/src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp +index 91708c0..0bf64db 100644 +--- a/src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp b/src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp +@@ -280,7 +280,7 @@ static void blankScreen(int fd, bool on) + } + + QLinuxFbScreen::QLinuxFbScreen(const QStringList &args) +-: mArgs(args), mFbFd(-1), mTtyFd(-1), mBlitter(0) ++: mArgs(args), mFbFd(-1), mTtyFd(-1), mBlitter(0), mRotation(90) + { + mMmap.data = 0; + } +@@ -306,6 +306,7 @@ bool QLinuxFbScreen::initialize() + QRegularExpression mmSizeRx(QLatin1String("mmsize=(\\d+)x(\\d+)")); + QRegularExpression sizeRx(QLatin1String("size=(\\d+)x(\\d+)")); + QRegularExpression offsetRx(QLatin1String("offset=(\\d+)x(\\d+)")); ++QRegularExpression rotationRx(QLatin1String("rotation=(0|90|180|270)")); + + QString fbDevice, ttyDevice; + QSize userMmSize; +@@ -327,6 +328,8 @@ bool QLinuxFbScreen::initialize() + ttyDevice = match.captured(1); + else if (arg.contains(fbRx, &match)) + fbDevice = match.captured(1); ++else if (arg.contains(rotationRx, &match)) ++mRotation = match.captured(1).toInt(); + } + + if (fbDevice.isEmpty()) { +@@ -365,9 +368,17 @@ bool QLinuxFbScreen::initialize() + mDepth = determineDepth(vinfo); + mBytesPerLine = finfo.line_length; + QRect geometry = determineGeometry(vinfo, userGeometry); ++QRect originalGeometry = geometry; ++if( mRotation == 90 || mRotation == 270 ) ++{ ++int tmp = geometry.width(); ++geometry.setWidth(geometry.height()); ++geometry.setHeight(tmp); ++} ++ + mGeometry = QRect(QPoint(0, 0), geometry.size()); + mFormat = determineFormat(vinfo, mDepth); +-mPhysicalSize = determinePhysicalSize(vinfo, userMmSize, geometry.size()); ++mPhysicalSize = determinePhysicalSize(vinfo, userMmSize, originalGeometry.size()); + + // mmap the framebuffer + mMmap.size = finfo.smem_len; +@@ -377,11 +388,11 @@ bool QLinuxFbScreen::initialize() + return false; + } + +-mMmap.offset = geometry.y() * mBytesPerLine + geometry.x() * mDepth / 8; ++mMmap.offset = originalGeometry.y() * mBytesPerLine + originalGeometry.x() * mDepth / 8; + mMmap.data = data + mMmap.offset; + + QFbScreen::initializeCompositor(); +-mFbScreenImage = QImage(mMmap.data, geometry.width(), geometry.height(), mBytesPerLine, mFormat); ++mFbScreenImage = QImage(mMmap.data, originalGeometry.width(), originalGeometry.height(), mBytesPerLine, mFormat); + + mCursor = new QFbCursor(this); + +@@ -411,7 +422,26 @@ QRegion QLinuxFbScreen::doRedraw() + + mBlitter->setCompositionMode(QPainter::CompositionMode_Source); + for (const QRect &rect : touched) ++{ ++if( mRotation == 90 || mRotation == 270 ) ++{ ++mBlitter->translate(mGeometry.height()/2, mGeometry.width()/2); ++} ++else if( mRotation == 180 ) ++{ ++mBlitter->translate(mGeometry.width()/2, mGeometry.height()/2); ++} ++ ++if( mRotation != 0 ) ++{ ++mBlitter->rotate(mRotation); ++mBlitter->translate(-mGeometry.width()/2, -mGeometry.height()/2); ++} ++ + mBlitter->drawImage(rect, mScreenImage, rect); ++ ++mBlitter->resetTransform(); ++} + + return touched; + } +diff