All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/4] mtdev: Fix build when using 64bit time_t on 32bit machines
@ 2019-11-25  8:44 Khem Raj
  2019-11-25  8:44 ` [PATCH 2/4] libinput: " Khem Raj
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Khem Raj @ 2019-11-25  8:44 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 ...64bit-time_t-for-32bit-architectures.patch | 77 +++++++++++++++++++
 meta/recipes-graphics/wayland/mtdev_1.1.5.bb  |  4 +-
 2 files changed, 80 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-graphics/wayland/mtdev/0001-adjust-for-64bit-time_t-for-32bit-architectures.patch

diff --git a/meta/recipes-graphics/wayland/mtdev/0001-adjust-for-64bit-time_t-for-32bit-architectures.patch b/meta/recipes-graphics/wayland/mtdev/0001-adjust-for-64bit-time_t-for-32bit-architectures.patch
new file mode 100644
index 0000000000..a0cebe5283
--- /dev/null
+++ b/meta/recipes-graphics/wayland/mtdev/0001-adjust-for-64bit-time_t-for-32bit-architectures.patch
@@ -0,0 +1,77 @@
+From af75e8ee3d12a493b758421b2feed0351fdcbbf0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 23 Nov 2019 13:44:32 -0800
+Subject: [PATCH] adjust for 64bit time_t for 32bit architectures
+
+libc that has support for 32 bit applications to use 64 bit
+time_t supplies __USE_TIME_BITS64 define [1]
+
+[1] https://sourceware.org/glibc/wiki/Y2038ProofnessDesign
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/core.c        |  8 +++++++-
+ test/mtdev-test.c | 10 ++++++++--
+ 2 files changed, 15 insertions(+), 3 deletions(-)
+
+diff --git a/src/core.c b/src/core.c
+index 87ef420..0d91c0b 100644
+--- a/src/core.c
++++ b/src/core.c
+@@ -31,6 +31,11 @@
+ #include "evbuf.h"
+ #include "match.h"
+ 
++#ifndef input_event_sec
++#define input_event_sec time.tv_sec
++#define input_event_usec time.tv_usec
++#endif
++
+ static inline int istouch(const struct mtdev_slot *data,
+ 			  const struct mtdev *dev)
+ {
+@@ -251,7 +256,8 @@ static void push_slot_changes(struct mtdev_state *state,
+ 			count++;
+ 	if (!count)
+ 		return;
+-	ev.time = syn->time;
++	ev.input_event_sec = syn->input_event_sec;
++	ev.input_event_usec = syn->input_event_usec;
+ 	ev.type = EV_ABS;
+ 	ev.code = ABS_MT_SLOT;
+ 	ev.value = slot;
+diff --git a/test/mtdev-test.c b/test/mtdev-test.c
+index 1b3e4f2..773f86a 100644
+--- a/test/mtdev-test.c
++++ b/test/mtdev-test.c
+@@ -30,9 +30,15 @@
+ #include <stdio.h>
+ #include <unistd.h>
+ #include <fcntl.h>
++#include <stdint.h>
++
++#ifndef input_event_sec
++#define input_event_sec time.tv_sec
++#define input_event_usec time.tv_usec
++#endif
+ 
+ /* year-proof millisecond event time */
+-typedef __u64 mstime_t;
++typedef uint64_t mstime_t;
+ 
+ static int use_event(const struct input_event *ev)
+ {
+@@ -47,7 +53,7 @@ static void print_event(const struct input_event *ev)
+ {
+ 	static const mstime_t ms = 1000;
+ 	static int slot;
+-	mstime_t evtime = ev->time.tv_usec / ms + ev->time.tv_sec * ms;
++	mstime_t evtime = ev->input_event_usec / ms + ev->input_event_sec * ms;
+ 	if (ev->type == EV_ABS && ev->code == ABS_MT_SLOT)
+ 		slot = ev->value;
+ 	fprintf(stderr, "%012llx %02d %01d %04x %d\n",
+-- 
+2.24.0
+
diff --git a/meta/recipes-graphics/wayland/mtdev_1.1.5.bb b/meta/recipes-graphics/wayland/mtdev_1.1.5.bb
index ccd0ebbfce..aa8bb69966 100644
--- a/meta/recipes-graphics/wayland/mtdev_1.1.5.bb
+++ b/meta/recipes-graphics/wayland/mtdev_1.1.5.bb
@@ -11,7 +11,9 @@ SECTION = "libs"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://COPYING;md5=ea6bd0268bb0fcd6b27698616ceee5d6"
 
-SRC_URI = "http://bitmath.org/code/${BPN}/${BP}.tar.bz2"
+SRC_URI = "http://bitmath.org/code/${BPN}/${BP}.tar.bz2 \
+           file://0001-adjust-for-64bit-time_t-for-32bit-architectures.patch \
+"
 SRC_URI[md5sum] = "52c9610b6002f71d1642dc1a1cca5ec1"
 SRC_URI[sha256sum] = "6677d5708a7948840de734d8b4675d5980d4561171c5a8e89e54adf7a13eba7f"
 
-- 
2.24.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/4] libinput: Fix build when using 64bit time_t on 32bit machines
  2019-11-25  8:44 [PATCH 1/4] mtdev: Fix build when using 64bit time_t on 32bit machines Khem Raj
@ 2019-11-25  8:44 ` Khem Raj
  2019-11-25  8:44 ` [PATCH 3/4] xf86-input-synaptics: Fix build on 32bit arches when using 64bit time_t Khem Raj
  2019-11-25  8:44 ` [PATCH 4/4] gcc-runtime: Package libstdc++.a-gdb.py Khem Raj
  2 siblings, 0 replies; 4+ messages in thread
From: Khem Raj @ 2019-11-25  8:44 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 ...64bit-time_t-for-32bit-architectures.patch | 386 ++++++++++++++++++
 .../wayland/libinput_1.14.3.bb                |   4 +-
 2 files changed, 389 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-graphics/wayland/libinput/0001-adjust-for-64bit-time_t-for-32bit-architectures.patch

diff --git a/meta/recipes-graphics/wayland/libinput/0001-adjust-for-64bit-time_t-for-32bit-architectures.patch b/meta/recipes-graphics/wayland/libinput/0001-adjust-for-64bit-time_t-for-32bit-architectures.patch
new file mode 100644
index 0000000000..344e6aaf8f
--- /dev/null
+++ b/meta/recipes-graphics/wayland/libinput/0001-adjust-for-64bit-time_t-for-32bit-architectures.patch
@@ -0,0 +1,386 @@
+From ab6ce09bfb669177c90cc5c10155eec44e9fc34b Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Sat, 23 Nov 2019 17:23:56 -0800
+Subject: [PATCH] Adjust for 64bit time_t for 32bit architectures
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/libinput/libinput/merge_requests/346]
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+---
+ meson.build                     |  1 +
+ src/evdev-mt-touchpad-buttons.c | 15 ++++---
+ src/evdev.c                     |  5 ++-
+ src/util-input-event.h          | 69 +++++++++++++++++++++++++++++++++
+ tools/libinput-record.c         | 16 +++++---
+ 5 files changed, 90 insertions(+), 16 deletions(-)
+ create mode 100644 src/util-input-event.h
+
+--- a/meson.build
++++ b/meson.build
+@@ -220,7 +220,8 @@ endif
+ ############ libinput-util.a ############
+ src_libinput_util = [
+ 		'src/libinput-util.c',
+-		'src/libinput-util.h'
++		'src/libinput-util.h',
++		'src/util-input-event.h'
+ ]
+ libinput_util = static_library('libinput-util',
+ 			       src_libinput_util,
+--- a/src/evdev-mt-touchpad-buttons.c
++++ b/src/evdev-mt-touchpad-buttons.c
+@@ -30,6 +30,7 @@
+ #include <unistd.h>
+ #include "linux/input.h"
+ 
++#include "util-input-event.h"
+ #include "evdev-mt-touchpad.h"
+ 
+ #define DEFAULT_BUTTON_ENTER_TIMEOUT ms2us(100)
+@@ -1145,14 +1146,12 @@ tp_notify_clickpadbutton(struct tp_dispa
+ 	if (tp->buttons.trackpoint) {
+ 		if (is_topbutton) {
+ 			struct evdev_dispatch *dispatch = tp->buttons.trackpoint->dispatch;
+-			struct input_event event;
+-			struct input_event syn_report = {{ 0, 0 }, EV_SYN, SYN_REPORT, 0 };
++			struct input_event event, syn_report;
++			int value;
+ 
+-			event.time = us2tv(time);
+-			event.type = EV_KEY;
+-			event.code = button;
+-			event.value = (state == LIBINPUT_BUTTON_STATE_PRESSED) ? 1 : 0;
+-			syn_report.time = event.time;
++			value = (state == LIBINPUT_BUTTON_STATE_PRESSED) ? 1 : 0;
++			event = input_event_init(time, EV_KEY, button, value);
++			syn_report = input_event_init(time, EV_SYN, SYN_REPORT, 0);
+ 			dispatch->interface->process(dispatch,
+ 						     tp->buttons.trackpoint,
+ 						     &event,
+--- a/src/evdev.c
++++ b/src/evdev.c
+@@ -44,6 +44,7 @@
+ #include "filter.h"
+ #include "libinput-private.h"
+ #include "quirks.h"
++#include "util-input-event.h"
+ 
+ #if HAVE_LIBWACOM
+ #include <libwacom/libwacom.h>
+@@ -859,7 +860,7 @@ evdev_print_event(struct evdev_device *d
+ {
+ 	static uint32_t offset = 0;
+ 	static uint32_t last_time = 0;
+-	uint32_t time = us2ms(tv2us(&e->time));
++	uint32_t time = us2ms(input_event_time(e));
+ 
+ 	if (offset == 0) {
+ 		offset = time;
+@@ -891,7 +892,7 @@ static inline void
+ evdev_process_event(struct evdev_device *device, struct input_event *e)
+ {
+ 	struct evdev_dispatch *dispatch = device->dispatch;
+-	uint64_t time = tv2us(&e->time);
++	uint64_t time = input_event_time(e);
+ 
+ #if 0
+ 	evdev_print_event(device, e);
+--- /dev/null
++++ b/src/util-input-event.h
+@@ -0,0 +1,69 @@
++/*
++ * Copyright © 2019 Red Hat, Inc.
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the "Software"),
++ * to deal in the Software without restriction, including without limitation
++ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
++ * and/or sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice (including the next
++ * paragraph) shall be included in all copies or substantial portions of the
++ * Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
++ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++ * DEALINGS IN THE SOFTWARE.
++ */
++
++#pragma once
++
++#include "config.h"
++
++#include "util-time.h"
++#include <linux/input.h>
++
++static inline struct input_event
++input_event_init(uint64_t time,
++		 unsigned int code,
++		 unsigned int type,
++		 int value)
++{
++	struct input_event ev;
++	struct timeval tval = us2tv(time);
++
++	ev.input_event_sec = tval.tv_sec;
++	ev.input_event_usec = tval.tv_usec;
++	ev.type = type;
++	ev.code = code;
++	ev.value = value;
++
++	return ev;
++}
++
++static inline uint64_t
++input_event_time(const struct input_event *e)
++{
++	struct timeval tval;
++
++	tval.tv_sec = e->input_event_sec;
++	tval.tv_usec = e->input_event_usec;
++
++	return tv2us(&tval);
++}
++
++
++static inline void
++input_event_set_time(struct input_event *e,
++		     uint64_t time)
++{
++	struct timeval tval = us2tv(time);
++
++	e->input_event_sec = tval.tv_sec;
++	e->input_event_usec = tval.tv_usec;
++}
+--- a/tools/libinput-record.c
++++ b/tools/libinput-record.c
+@@ -41,6 +41,7 @@
+ #include <stdbool.h>
+ 
+ #include "libinput-versionsort.h"
++#include "util-input-event.h"
+ #include "libinput-util.h"
+ #include "libinput-version.h"
+ #include "libinput-git-version.h"
+@@ -196,8 +197,9 @@ print_evdev_event(struct record_context
+ 	const char *cname;
+ 	bool was_modified = false;
+ 	char desc[1024];
++	uint64_t time = input_event_time(ev) - ctx->offset;
+ 
+-	ev->time = us2tv(tv2us(&ev->time) - ctx->offset);
++	input_event_set_time(ev, time);
+ 
+ 	/* Don't leak passwords unless the user wants to */
+ 	if (!ctx->show_keycodes)
+@@ -215,7 +217,7 @@ print_evdev_event(struct record_context
+ 		static unsigned long last_ms = 0;
+ 		unsigned long time, dt;
+ 
+-		time = us2ms(tv2us(&ev->time));
++		time = us2ms(input_event_time(ev));
+ 		dt = time - last_ms;
+ 		last_ms = time;
+ 
+@@ -239,8 +241,8 @@ print_evdev_event(struct record_context
+ 
+ 	iprintf(ctx,
+ 		"- [%3lu, %6u, %3d, %3d, %6d] # %s\n",
+-		ev->time.tv_sec,
+-		(unsigned int)ev->time.tv_usec,
++		ev->input_event_sec,
++		(unsigned int)ev->input_event_usec,
+ 		ev->type,
+ 		ev->code,
+ 		ev->value,
+@@ -268,16 +270,18 @@ handle_evdev_frame(struct record_context
+ 	while (libevdev_next_event(evdev,
+ 				   LIBEVDEV_READ_FLAG_NORMAL,
+ 				   &e) == LIBEVDEV_READ_STATUS_SUCCESS) {
++		uint64_t time;
+ 
+ 		if (ctx->offset == 0)
+-			ctx->offset = tv2us(&e.time);
++			ctx->offset = input_event_time(&e);
+ 
+ 		if (d->nevents == d->events_sz)
+ 			resize(d->events, d->events_sz);
+ 
+ 		event = &d->events[d->nevents++];
+ 		event->type = EVDEV;
+-		event->time = tv2us(&e.time) - ctx->offset;
++		time = input_event_time(&e);
++		input_event_set_time(&e, time - ctx->offset);
+ 		event->u.evdev = e;
+ 		count++;
+ 
+--- a/src/libinput-private.h
++++ b/src/libinput-private.h
+@@ -39,6 +39,7 @@
+ 
+ #include "libinput.h"
+ #include "libinput-util.h"
++#include "util-time.h"
+ #include "libinput-version.h"
+ 
+ #if LIBINPUT_VERSION_MICRO >= 90
+--- a/src/libinput-util.h
++++ b/src/libinput-util.h
+@@ -206,12 +206,6 @@ clear_bit(unsigned char *array, int bit)
+ 	array[bit / 8] &= ~(1 << (bit % 8));
+ }
+ 
+-static inline void
+-msleep(unsigned int ms)
+-{
+-	usleep(ms * 1000);
+-}
+-
+ static inline bool
+ long_bit_is_set(const unsigned long *array, int bit)
+ {
+@@ -453,53 +447,6 @@ bool
+ parse_switch_reliability_property(const char *prop,
+ 				  enum switch_reliability *reliability);
+ 
+-static inline uint64_t
+-us(uint64_t us)
+-{
+-	return us;
+-}
+-
+-static inline uint64_t
+-ns2us(uint64_t ns)
+-{
+-	return us(ns / 1000);
+-}
+-
+-static inline uint64_t
+-ms2us(uint64_t ms)
+-{
+-	return us(ms * 1000);
+-}
+-
+-static inline uint64_t
+-s2us(uint64_t s)
+-{
+-	return ms2us(s * 1000);
+-}
+-
+-static inline uint32_t
+-us2ms(uint64_t us)
+-{
+-	return (uint32_t)(us / 1000);
+-}
+-
+-static inline uint64_t
+-tv2us(const struct timeval *tv)
+-{
+-	return s2us(tv->tv_sec) + tv->tv_usec;
+-}
+-
+-static inline struct timeval
+-us2tv(uint64_t time)
+-{
+-	struct timeval tv;
+-
+-	tv.tv_sec = time / ms2us(1000);
+-	tv.tv_usec = time % ms2us(1000);
+-
+-	return tv;
+-}
+-
+ static inline bool
+ safe_atoi_base(const char *str, int *val, int base)
+ {
+--- /dev/null
++++ b/src/util-time.h
+@@ -0,0 +1,84 @@
++/*
++ * Copyright © 2013-2019 Red Hat, Inc.
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the "Software"),
++ * to deal in the Software without restriction, including without limitation
++ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
++ * and/or sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice (including the next
++ * paragraph) shall be included in all copies or substantial portions of the
++ * Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
++ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++ * DEALINGS IN THE SOFTWARE.
++ */
++
++#pragma once
++
++#include "config.h"
++
++#include <time.h>
++#include <stdint.h>
++#include <unistd.h>
++#include <linux/input.h>
++
++static inline void
++msleep(unsigned int ms)
++{
++	usleep(ms * 1000);
++}
++
++static inline uint64_t
++us(uint64_t us)
++{
++	return us;
++}
++
++static inline uint64_t
++ns2us(uint64_t ns)
++{
++	return us(ns / 1000);
++}
++
++static inline uint64_t
++ms2us(uint64_t ms)
++{
++	return us(ms * 1000);
++}
++
++static inline uint64_t
++s2us(uint64_t s)
++{
++	return ms2us(s * 1000);
++}
++
++static inline uint32_t
++us2ms(uint64_t us)
++{
++	return (uint32_t)(us / 1000);
++}
++
++static inline uint64_t
++tv2us(const struct timeval *tv)
++{
++	return s2us(tv->tv_sec) + tv->tv_usec;
++}
++
++static inline struct timeval
++us2tv(uint64_t time)
++{
++	struct timeval tv;
++
++	tv.tv_sec = time / ms2us(1000);
++	tv.tv_usec = time % ms2us(1000);
++
++	return tv;
++}
diff --git a/meta/recipes-graphics/wayland/libinput_1.14.3.bb b/meta/recipes-graphics/wayland/libinput_1.14.3.bb
index f06a8d28f8..46d46c54ee 100644
--- a/meta/recipes-graphics/wayland/libinput_1.14.3.bb
+++ b/meta/recipes-graphics/wayland/libinput_1.14.3.bb
@@ -12,7 +12,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=1f2ea9ebff3a2c6d458faf58492efb63"
 
 DEPENDS = "libevdev udev mtdev"
 
-SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz"
+SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz \
+           file://0001-adjust-for-64bit-time_t-for-32bit-architectures.patch \
+"
 SRC_URI[md5sum] = "d052faa64eb6d2e649e582cc0fcf6e32"
 SRC_URI[sha256sum] = "0feb3a0589709cc1032893bfaf4c49150d5360bd9782bec888f9e4dd9044c5b7"
 
-- 
2.24.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 3/4] xf86-input-synaptics: Fix build on 32bit arches when using 64bit time_t
  2019-11-25  8:44 [PATCH 1/4] mtdev: Fix build when using 64bit time_t on 32bit machines Khem Raj
  2019-11-25  8:44 ` [PATCH 2/4] libinput: " Khem Raj
@ 2019-11-25  8:44 ` Khem Raj
  2019-11-25  8:44 ` [PATCH 4/4] gcc-runtime: Package libstdc++.a-gdb.py Khem Raj
  2 siblings, 0 replies; 4+ messages in thread
From: Khem Raj @ 2019-11-25  8:44 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../64bit_time_t_support.patch                | 51 +++++++++++++++++++
 .../xorg-driver/xf86-input-synaptics_1.9.1.bb |  2 +
 2 files changed, 53 insertions(+)
 create mode 100644 meta/recipes-graphics/xorg-driver/xf86-input-synaptics/64bit_time_t_support.patch

diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-synaptics/64bit_time_t_support.patch b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics/64bit_time_t_support.patch
new file mode 100644
index 0000000000..4bb7fb3e23
--- /dev/null
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics/64bit_time_t_support.patch
@@ -0,0 +1,51 @@
+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: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/src/eventcomm.c
++++ b/src/eventcomm.c
+@@ -575,10 +575,12 @@ SynapticsReadEvent(InputInfoPtr pInfo, s
+         ev->type = EV_SYN;
+         ev->code = SYN_REPORT;
+         ev->value = 0;
+-        ev->time = last_event_time;
+-    } else if (ev->type == EV_SYN)
+-        last_event_time = ev->time;
+-
++	ev->input_event_sec = last_event_time.tv_sec;
++	ev->input_event_usec = last_event_time.tv_usec;
++    } else if (ev->type == EV_SYN) {
++        last_event_time.tv_sec = ev->input_event_sec;
++        last_event_time.tv_usec = ev->input_event_usec;
++    }
+     return TRUE;
+ }
+ 
+@@ -725,7 +727,7 @@ EventReadHwState(InputInfoPtr pInfo,
+             case SYN_REPORT:
+                 hw->numFingers = count_fingers(pInfo, comm);
+                 if (proto_data->have_monotonic_clock)
+-                    hw->millis = 1000 * ev.time.tv_sec + ev.time.tv_usec / 1000;
++                    hw->millis = 1000 * ev.input_event_sec + ev.input_event_usec / 1000;
+                 else
+                     hw->millis = GetTimeInMillis();
+                 SynapticsCopyHwState(hwRet, hw);
+--- a/src/eventcomm.h
++++ b/src/eventcomm.h
+@@ -34,6 +34,11 @@
+ #include <xf86Xinput.h>
+ #include "synproto.h"
+ 
++#ifndef input_event_sec
++#define input_event_sec time.tv_sec
++#define input_event_usec time.tv_usec
++#endif
++
+ /* for auto-dev: */
+ #define DEV_INPUT_EVENT "/dev/input"
+ #define EVENT_DEV_NAME "event"
diff --git a/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.1.bb b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.1.bb
index dc31890f69..388350c96e 100644
--- a/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.1.bb
+++ b/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.1.bb
@@ -10,6 +10,8 @@ advanced features of the touchpad to become available."
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=55aacd3535a741824955c5eb8f061398"
 
+SRC_URI += "file://64bit_time_t_support.patch"
+
 SRC_URI[md5sum] = "cfb79d3c975151f9bbf30b727c260cb9"
 SRC_URI[sha256sum] = "7af83526eff1c76e8b9e1553b34245c203d029028d8044dd9dcf71eef1001576"
 
-- 
2.24.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 4/4] gcc-runtime: Package libstdc++.a-gdb.py
  2019-11-25  8:44 [PATCH 1/4] mtdev: Fix build when using 64bit time_t on 32bit machines Khem Raj
  2019-11-25  8:44 ` [PATCH 2/4] libinput: " Khem Raj
  2019-11-25  8:44 ` [PATCH 3/4] xf86-input-synaptics: Fix build on 32bit arches when using 64bit time_t Khem Raj
@ 2019-11-25  8:44 ` Khem Raj
  2 siblings, 0 replies; 4+ messages in thread
From: Khem Raj @ 2019-11-25  8:44 UTC (permalink / raw)
  To: openembedded-core

There is python gdb script for static libstdc++ archives as well
fixes
ERROR: gcc-runtime-9.2.0-r0 do_package: QA Issue: gcc-runtime: Files/directories were installed but not shipped in any package:
/usr/lib/libstdc++.a-gdb.py

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/recipes-devtools/gcc/gcc-runtime.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc b/meta/recipes-devtools/gcc/gcc-runtime.inc
index 2da3c02ef0..437a9df08a 100644
--- a/meta/recipes-devtools/gcc/gcc-runtime.inc
+++ b/meta/recipes-devtools/gcc/gcc-runtime.inc
@@ -179,7 +179,7 @@ RRECOMMENDS_${PN}-dbg = ""
 
 # include python debugging scripts
 FILES_${PN}-dbg += "\
-    ${libdir}/libstdc++.so.*-gdb.py \
+    ${libdir}/libstdc++.*-gdb.py \
     ${datadir}/gcc-${BINV}/python/libstdcxx \
 "
 
-- 
2.24.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-11-25  8:45 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-25  8:44 [PATCH 1/4] mtdev: Fix build when using 64bit time_t on 32bit machines Khem Raj
2019-11-25  8:44 ` [PATCH 2/4] libinput: " Khem Raj
2019-11-25  8:44 ` [PATCH 3/4] xf86-input-synaptics: Fix build on 32bit arches when using 64bit time_t Khem Raj
2019-11-25  8:44 ` [PATCH 4/4] gcc-runtime: Package libstdc++.a-gdb.py Khem Raj

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.