From f6ad80f95ae9951fc8830dcf2cdec6430fb2d910 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 25 Nov 2019 09:15:38 -0800 Subject: qtbase: Fix build on 32bit arches with 64bit time_t time element is deprecated on new input_event structure in kernel's input.h Signed-off-by: Khem Raj --- recipes-qt/qt5/nativesdk-qtbase_git.bb | 1 + recipes-qt/qt5/qtbase-native_git.bb | 1 + ...-use-of-timeval-portable-for-64bit-time_t.patch | 62 ++++++++++++++++++++++ recipes-qt/qt5/qtbase_git.bb | 1 + 4 files changed, 65 insertions(+) create mode 100644 recipes-qt/qt5/qtbase/0018-input-Make-use-of-timeval-portable-for-64bit-time_t.patch diff --git a/recipes-qt/qt5/nativesdk-qtbase_git.bb b/recipes-qt/qt5/nativesdk-qtbase_git.bb index 8a4b471b..1b18f7c2 100644 --- a/recipes-qt/qt5/nativesdk-qtbase_git.bb +++ b/recipes-qt/qt5/nativesdk-qtbase_git.bb @@ -42,6 +42,7 @@ SRC_URI += "\ file://0015-corelib-Include-sys-types.h-for-uint32_t.patch \ file://0016-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch \ file://0017-qfloat16-check-for-__ARM_FP-2.patch \ + file://0018-input-Make-use-of-timeval-portable-for-64bit-time_t.patch \ " # common for qtbase-native and nativesdk-qtbase diff --git a/recipes-qt/qt5/qtbase-native_git.bb b/recipes-qt/qt5/qtbase-native_git.bb index 4af7f8c0..083e5306 100644 --- a/recipes-qt/qt5/qtbase-native_git.bb +++ b/recipes-qt/qt5/qtbase-native_git.bb @@ -37,6 +37,7 @@ SRC_URI += "\ file://0015-corelib-Include-sys-types.h-for-uint32_t.patch \ file://0016-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch \ file://0017-qfloat16-check-for-__ARM_FP-2.patch \ + file://0018-input-Make-use-of-timeval-portable-for-64bit-time_t.patch \ " # common for qtbase-native and nativesdk-qtbase diff --git a/recipes-qt/qt5/qtbase/0018-input-Make-use-of-timeval-portable-for-64bit-time_t.patch b/recipes-qt/qt5/qtbase/0018-input-Make-use-of-timeval-portable-for-64bit-time_t.patch new file mode 100644 index 00000000..76b4671c --- /dev/null +++ b/recipes-qt/qt5/qtbase/0018-input-Make-use-of-timeval-portable-for-64bit-time_t.patch @@ -0,0 +1,62 @@ +From e06ac2e26c8490a7b8702e9462d1f38244ac3f0f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 25 Nov 2019 08:27:39 -0800 +Subject: [PATCH] input: Make use of timeval portable for 64bit time_t + +This patch avoids using time field of input_event structure which is not available +on 32bit arches supporting 64bit time_t structs, Patch makes it compatible with new +and keeps old input.h implementation functional as well. + +See https://sourceware.org/glibc/wiki/Y2038ProofnessDesign + +Upstream-Status: Submitted [https://codereview.qt-project.org/c/qt/qtbase/+/282610] +Signed-off-by: Khem Raj +--- + .../input/evdevkeyboard/qevdevkeyboardhandler.cpp | 10 +++++++++- + .../input/evdevtouch/qevdevtouchhandler.cpp | 2 +- + 2 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/src/platformsupport/input/evdevkeyboard/qevdevkeyboardhandler.cpp b/src/platformsupport/input/evdevkeyboard/qevdevkeyboardhandler.cpp +index 666613f09d..0e3e0ea0de 100644 +--- a/src/platformsupport/input/evdevkeyboard/qevdevkeyboardhandler.cpp ++++ b/src/platformsupport/input/evdevkeyboard/qevdevkeyboardhandler.cpp +@@ -58,6 +58,11 @@ + #include + #endif + ++#ifndef input_event_sec ++#define input_event_sec time.tv_sec ++#define input_event_usec time.tv_usec ++#endif ++ + QT_BEGIN_NAMESPACE + + Q_LOGGING_CATEGORY(qLcEvdevKey, "qt.qpa.input") +@@ -149,7 +154,10 @@ void QEvdevKeyboardHandler::switchLed(int led, bool state) + qCDebug(qLcEvdevKey) << "switchLed" << led << state; + + struct ::input_event led_ie; +- ::gettimeofday(&led_ie.time, 0); ++ struct timeval tval; ++ ::gettimeofday(&tval, 0); ++ led_ie.input_event_sec = tval.tv_sec; ++ led_ie.input_event_usec = tval.tv_usec; + led_ie.type = EV_LED; + led_ie.code = led; + led_ie.value = state; +diff --git a/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp b/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp +index f86f80785e..3914698f2a 100644 +--- a/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp ++++ b/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp +@@ -568,7 +568,7 @@ void QEvdevTouchScreenData::processInputEvent(input_event *data) + + // update timestamps + m_lastTimeStamp = m_timeStamp; +- m_timeStamp = data->time.tv_sec + data->time.tv_usec / 1000000.0; ++ m_timeStamp = data->input_event_sec + data->input_event_usec / 1000000.0; + + m_lastTouchPoints = m_touchPoints; + m_touchPoints.clear(); +-- +2.24.0 + diff --git a/recipes-qt/qt5/qtbase_git.bb b/recipes-qt/qt5/qtbase_git.bb index 05bc716d..1b9bb0a9 100644 --- a/recipes-qt/qt5/qtbase_git.bb +++ b/recipes-qt/qt5/qtbase_git.bb @@ -33,6 +33,7 @@ SRC_URI += "\ file://0015-corelib-Include-sys-types.h-for-uint32_t.patch \ file://0016-Define-QMAKE_CXX.COMPILER_MACROS-for-clang-on-linux.patch \ file://0017-qfloat16-check-for-__ARM_FP-2.patch \ + file://0018-input-Make-use-of-timeval-portable-for-64bit-time_t.patch \ " # for syncqt -- cgit v1.2.3