[oe] [meta-qt5][PATCH 2/2] qtbase: Add packageconfigs for renameat2 and getentropy use

Martin Jansa martin.jansa at gmail.com
Fri Feb 23 01:27:57 UTC 2018


On Wed, Feb 21, 2018 at 08:29:40PM -0800, Khem Raj wrote:
> These features depend on underlying syscall support in kernel
> and if older kernels are in use, then we can have a knob to
> turn them off.
> 
> Signed-off-by: Khem Raj <raj.khem at gmail.com>
> ---
>  recipes-qt/qt5/qtbase_git.bb | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/recipes-qt/qt5/qtbase_git.bb b/recipes-qt/qt5/qtbase_git.bb
> index e495b8c..843648f 100644
> --- a/recipes-qt/qt5/qtbase_git.bb
> +++ b/recipes-qt/qt5/qtbase_git.bb
> @@ -71,7 +71,7 @@ PACKAGECONFIG_DISTRO ?= ""
>  PACKAGECONFIG_RELEASE ?= "release"
>  # This is in qt5.inc, because qtwebkit-examples are using it to enable ca-certificates dependency
>  # PACKAGECONFIG_OPENSSL ?= "openssl"
> -PACKAGECONFIG_DEFAULT ?= "dbus udev evdev widgets tools libs freetype tests"
> +PACKAGECONFIG_DEFAULT ?= "dbus udev evdev widgets tools libs freetype tests renameat2 getentropy"

Should renameat2 be enabled by default?

Either the test for it is broken in 5.11 or it's not available in
default setup.

In 2 very different builds it currently fail for me with:
| ERROR: Feature 'renameat2' was enabled, but the pre-condition 'config.linux && tests.renameat2' failed.

| Checking for renameat2()...
| + cd /OE/build/owpb/webos-ports/tmp-glibc/work/aarch64-webos-linux/qtbase/5.10.1+5.11-alpha+gitAUTOINC+17b73b0d2b-r0/build/config.tests/renameat2 && PKG_CONFIG_SYSROOT_DIR=/OE/build/owpb/webos-ports/tmp-glibc/work/aarch64-webos-linux/qtbase/5.10.1+5.11-alpha+gitAUTOINC+17b73b0d2b-r0/recipe-sysroot PKG_CONFIG_LIBDIR=/OE/build/owpb/webos-ports/tmp-glibc/work/aarch64-webos-linux/qtbase/5.10.1+5.11-alpha+gitAUTOINC+17b73b0d2b-r0/recipe-sysroot/usr/lib/pkgconfig /OE/build/owpb/webos-ports/tmp-glibc/work/aarch64-webos-linux/qtbase/5.10.1+5.11-alpha+gitAUTOINC+17b73b0d2b-r0/recipe-sysroot-native/usr/bin/qt5/qmake -qtconf /OE/build/owpb/webos-ports/tmp-glibc/work/aarch64-webos-linux/qtbase/5.10.1+5.11-alpha+gitAUTOINC+17b73b0d2b-r0/build/bin/qt.conf "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared use_gold_linker warn_off console single_arch" "QMAKE_CFLAGS += --sysroot=/OE/build/owpb/webos-ports/tmp-glibc/work/aarch64-webos-linux/qtbase/5.10.1+5.11-alpha+gitAUTOINC+17b73b0d2b-r0/recipe-sysroot" "QMAKE_CXXFLAGS += --sysroot=/OE/build/owpb/webos-ports/tmp-glibc/work/aarch64-webos-linux/qtbase/5.10.1+5.11-alpha+gitAUTOINC+17b73b0d2b-r0/recipe-sysroot" "QMAKE_LFLAGS += --sysroot=/OE/build/owpb/webos-ports/tmp-glibc/work/aarch64-webos-linux/qtbase/5.10.1+5.11-alpha+gitAUTOINC+17b73b0d2b-r0/recipe-sysroot" -early "CONFIG += cross_compile" /OE/build/owpb/webos-ports/tmp-glibc/work/aarch64-webos-linux/qtbase/5.10.1+5.11-alpha+gitAUTOINC+17b73b0d2b-r0/build/config.tests/renameat2
| + cd /OE/build/owpb/webos-ports/tmp-glibc/work/aarch64-webos-linux/qtbase/5.10.1+5.11-alpha+gitAUTOINC+17b73b0d2b-r0/build/config.tests/renameat2 && MAKEFLAGS= make
| > aarch64-webos-linux-g++  --sysroot=/OE/build/owpb/webos-ports/tmp-glibc/work/aarch64-webos-linux/qtbase/5.10.1+5.11-alpha+gitAUTOINC+17b73b0d2b-r0/recipe-sysroot -c -pipe  -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/OE/build/owpb/webos-ports/tmp-glibc/work/aarch64-webos-linux/qtbase/5.10.1+5.11-alpha+gitAUTOINC+17b73b0d2b-r0=/usr/src/debug/qtbase/5.10.1+5.11-alpha+gitAUTOINC+17b73b0d2b-r0 -fdebug-prefix-map=/OE/build/owpb/webos-ports/tmp-glibc/work/aarch64-webos-linux/qtbase/5.10.1+5.11-alpha+gitAUTOINC+17b73b0d2b-r0/recipe-sysroot-native= -fdebug-prefix-map=/OE/build/owpb/webos-ports/tmp-glibc/work/aarch64-webos-linux/qtbase/5.10.1+5.11-alpha+gitAUTOINC+17b73b0d2b-r0/recipe-sysroot=  -fvisibility-inlines-hidden --sysroot=/OE/build/owpb/webos-ports/tmp-glibc/work/aarch64-webos-linux/qtbase/5.10.1+5.11-alpha+gitAUTOINC+17b73b0d2b-r0/recipe-sysroot --sysroot=/OE/build/owpb/webos-ports/tmp-glibc/work/aarch64-webos-linux/qtbase/5.10.1+5.11-alpha+gitAUTOINC+17b73b0d2b-r0/recipe-sysroot -O2 -w -fPIC  -I. -I/OE/build/owpb/webos-ports/tmp-glibc/work/aarch64-webos-linux/qtbase/5.10.1+5.11-alpha+gitAUTOINC+17b73b0d2b-r0/git/mkspecs/linux-oe-g++ -o main.o main.cpp
| > main.cpp: In function 'int main(int, char**)':
| > main.cpp:9:53: error: 'RENAME_NOREPLACE' was not declared in this scope
| >      renameat2(AT_FDCWD, argv[1], AT_FDCWD, argv[2], RENAME_NOREPLACE | RENAME_WHITEOUT);
| >                                                      ^~~~~~~~~~~~~~~~
| > main.cpp:9:53: note: suggested alternative: '_IOS_NOREPLACE'
| >      renameat2(AT_FDCWD, argv[1], AT_FDCWD, argv[2], RENAME_NOREPLACE | RENAME_WHITEOUT);
| >                                                      ^~~~~~~~~~~~~~~~
| >                                                      _IOS_NOREPLACE
| > main.cpp:9:72: error: 'RENAME_WHITEOUT' was not declared in this scope
| >      renameat2(AT_FDCWD, argv[1], AT_FDCWD, argv[2], RENAME_NOREPLACE | RENAME_WHITEOUT);
| >                                                                         ^~~~~~~~~~~~~~~
| > main.cpp:9:5: error: 'renameat2' was not declared in this scope
| >      renameat2(AT_FDCWD, argv[1], AT_FDCWD, argv[2], RENAME_NOREPLACE | RENAME_WHITEOUT);
| >      ^~~~~~~~~
| > main.cpp:9:5: note: suggested alternative: 'renameat'
| >      renameat2(AT_FDCWD, argv[1], AT_FDCWD, argv[2], RENAME_NOREPLACE | RENAME_WHITEOUT);
| >      ^~~~~~~~~
| >      renameat
| > Makefile:174: recipe for target 'main.o' failed  
| > make: *** [main.o] Error 1
| test config.corelib.tests.renameat2 FAILED
|

I'll retry with 5.10(.1) soon.

>  
>  PACKAGECONFIG ?= " \
>      ${PACKAGECONFIG_RELEASE} \
> @@ -146,6 +146,10 @@ PACKAGECONFIG[widgets] = "-widgets,-no-widgets"
>  PACKAGECONFIG[libproxy] = "-libproxy,-no-libproxy,libproxy"
>  PACKAGECONFIG[libinput] = "-libinput,-no-libinput,libinput"
>  PACKAGECONFIG[journald] = "-journald,-no-journald,systemd"
> +# needs kernel 3.16+
> +PACKAGECONFIG[renameat2] = "-feature-renameat2,-no-feature-renameat2,"
> +# needs kernel 3.17+
> +PACKAGECONFIG[getentropy] = "-feature-getentropy,-no-feature-getentropy,"
>  
>  QT_CONFIG_FLAGS_GOLD = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '-use-gold-linker', '-no-use-gold-linker', d)}"
>  QT_CONFIG_FLAGS += " \
> -- 
> 2.16.2
> 
> -- 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20180223/1e3c927d/attachment-0002.sig>


More information about the Openembedded-devel mailing list