Re: [oe] [meta-qt5] QtWebengine SIGBUS alignment exception

2018-03-14 Thread Peter Fink

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

2018-03-14 Thread Koen Kooi
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

2018-03-14 Thread Andreas Müller
* 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-qt5][PATCH] qtbase: Fix the qt5 linuxfb ratation problem

2018-03-14 Thread Huang Qiyu
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 )
+-: 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, ))
+ fbDevice = match.captured(1);
++else if (arg.contains(rotationRx, ))
++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  : 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);

[oe] [meta-oe][PATCH] smartmontools: 6.5 -> 6.6

2018-03-14 Thread Huang Qiyu
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