Zum Inhalt springen

Mainlining-Aktivitäten September '19

| community

The emlix team has continued its work and has been carrying out some cleanups for the benefit of all members of the free software ecosystem.

The Linux kernel has seen two cleanups that removed unused barrier defines on RISC-V and H8300. Our chroot-based build process installs additional components into a custom position. The kernel now tries to query pkg-config for the location of libelf, so it also works in this situation. We also found a condition where bluetooth frequency settings could be applied earlier, resulting in a faster firmware upload. Ongoing work is to find OpenSSL during build through pkg-config.

Qt has received optimizations to QTimeZone that avoid needless memory allocations when parsing the timezone settings (will be part of Qt 5.14). A compile failure on Windows was found and fixed for Qt 5.13.1. A problem in QNetworkAccessManager already fixed for newer branches was backported for Qt 5.9. QtMultimedia also received typecleanups and the Windows backend code now uses new connect syntax, all changes are part of Qt 5.13.1.

Several additional issues were identified and reported. One of our current projects involves the QtQuickControls2 dialogs where we found that they do not work on eglfs platforms and show a strange behavior when preselecting files. QtMultimedia is one other area where a current customer project resulted in bug reports, like a build failure of DirectShow plugin with MinGW which is fixed in Qt 5.12.5 as we were able to point to the fix and a build regression in Qt 5.12.4 where we helped to test the fix that has reached Qt 5.12.5. The upcoming Qt 5.13.2 release will see a crash fix for QMediaPlayer when it is used in a secondary thread. We also rediscovered a scaling issue in video playback that is also fixed with Qt 5.12.5. Other issues like QtMediaPlayer being stuck are not yet fixed, as well as an issue probably coming from the underlying GStreamer code where some videos only show black frames.

While tslib already offers to use CMake as build system, this results in an installation that lacks several functions when compared with the autotools build even in version 1.20. These issues have been corrected for the next version. Similarly curl was checking the wrong library for the dlopen symbol on some platforms. A patch has been integrated in BusyBox to print the correct filename in the default DHCP script.

As mentioned above, CMake is a build system used in many places by us as well as several internal and customer projects created by emlix. As such it receives regular attention, including cleanups of CMakes internal module tests, codecleanups in FindMatlab, and build fixes for the CMake internal FindIconv test when the compiler supports C++11 but has not set this as standard language. Users of FindProtobuf in conjunction with Protobuf 3.6 or later will now get the correct C++ standard selected automatically. The test infrastructure for Debian packaging with CPack has receivedmultiplecleanups while searching for a failure in these tests on non-Debian systems. Another test error on systems with non-English locale has also been reported.

The Qt project announced that CMake will be used to build Qt 6, which resulted in Qt engineers to also improve CMake at places where it was not as powerful as wished. Two particular issues were support for precompiled headers as well as unity builds, where several source files are compiled at once. Both features aim to reduce the build time for large projects as Qt itself. One of our developers assisted in reviewing both of these features, as well as a related merge request that aims at less memory allocations being done during CMake execution, resulting in a speedup in this area. Based on these discussions, he also provided a follow-up patch for another string allocation. Additionally, a new CMake-internal interface to move files instead of copying them has been created and the potential users being converted to use it, which makes the callers now faster and more failure-safe at the same time.