mirror of
https://git.yoctoproject.org/poky
synced 2026-04-20 00:32:13 +02:00
valgrind: Fix timerfd syscall test to be 64bit time_t safe
This helps compile the testcase with musl on 32bit arches (From OE-Core rev: ac5a65cb5fdb315df2cb016d0cc5c3389c7971f0) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
From 5d411fd147d652e9d7bb259f4048693c6e4742aa Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Mon, 9 Mar 2020 16:30:19 -0700
|
||||
Subject: [PATCH] memcheck/tests: Fix timerfd syscall test
|
||||
|
||||
modern libc provides these functions, moreover this also ensures that we
|
||||
are 64bit time_t safe. Fallback to existing definitions if libc does not
|
||||
have the implementation or syscall is not defined
|
||||
|
||||
Upstream-Status: Submitted [https://sourceforge.net/p/valgrind/mailman/message/36943897/]
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
config.h.in | 9 +++++++++
|
||||
configure.ac | 3 +++
|
||||
memcheck/tests/linux/timerfd-syscall.c | 10 ++++++++--
|
||||
5 files changed, 32 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/config.h.in
|
||||
+++ b/config.h.in
|
||||
@@ -301,6 +301,9 @@
|
||||
/* Define to 1 if you have the <sys/sysnvl.h> header file. */
|
||||
#undef HAVE_SYS_SYSNVL_H
|
||||
|
||||
+/* Define to 1 if you have the <sys/timerfd.h> header file. */
|
||||
+#undef HAVE_SYS_TIMERFD_H
|
||||
+
|
||||
/* Define to 1 if you have the <sys/time.h> header file. */
|
||||
#undef HAVE_SYS_TIME_H
|
||||
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -4098,6 +4098,7 @@ AC_CHECK_HEADERS([ \
|
||||
sys/syscall.h \
|
||||
sys/sysnvl.h \
|
||||
sys/time.h \
|
||||
+ sys/timerfd.h \
|
||||
sys/types.h \
|
||||
])
|
||||
|
||||
--- a/memcheck/tests/linux/timerfd-syscall.c
|
||||
+++ b/memcheck/tests/linux/timerfd-syscall.c
|
||||
@@ -45,6 +45,9 @@
|
||||
#if defined(HAVE_SYS_TIME_H)
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
+#if defined(HAVE_SYS_TIMERFD_H)
|
||||
+#include <sys/timerfd.h>
|
||||
+#endif
|
||||
#if defined(HAVE_SYS_TYPES_H)
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
@@ -54,7 +57,8 @@
|
||||
* timerfd_* system call numbers introduced in 2.6.23. These constants are
|
||||
* not yet in the glibc 2.7 headers, that is why they are defined here.
|
||||
*/
|
||||
-#ifndef __NR_timerfd_create
|
||||
+#if !defined(HAVE_SYS_TIMERFD_H)
|
||||
+#if !defined(__NR_timerfd_create)
|
||||
#if defined(__x86_64__)
|
||||
#define __NR_timerfd_create 283
|
||||
#elif defined(__i386__)
|
||||
@@ -67,8 +71,10 @@
|
||||
#error Cannot detect your architecture!
|
||||
#endif
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
-#ifndef __NR_timerfd_settime
|
||||
+#if !defined(HAVE_SYS_TIMERFD_H)
|
||||
+#if !defined(__NR_timerfd_settime)
|
||||
#if defined(__x86_64__)
|
||||
#define __NR_timerfd_settime 286
|
||||
#define __NR_timerfd_gettime 287
|
||||
@@ -85,7 +91,7 @@
|
||||
#error Cannot detect your architecture!
|
||||
#endif
|
||||
#endif
|
||||
-
|
||||
+#endif
|
||||
|
||||
|
||||
/* Definitions from include/linux/timerfd.h */
|
||||
@@ -127,6 +133,7 @@ void set_timespec(struct timespec *tmr,
|
||||
tmr->tv_nsec = (long) (1000ULL * (ustime % 1000000ULL));
|
||||
}
|
||||
|
||||
+#if !defined(HAVE_SYS_TIMERFD_H)
|
||||
int timerfd_create(int clockid, int flags)
|
||||
{
|
||||
return syscall(__NR_timerfd_create, clockid, flags);
|
||||
@@ -142,6 +149,7 @@ int timerfd_gettime(int ufc, struct itim
|
||||
{
|
||||
return syscall(__NR_timerfd_gettime, ufc, otmr);
|
||||
}
|
||||
+#endif
|
||||
|
||||
long waittmr(int tfd, int timeo)
|
||||
{
|
||||
@@ -41,6 +41,7 @@ SRC_URI = "https://sourceware.org/pub/valgrind/valgrind-${PV}.tar.bz2 \
|
||||
file://s390x_vec_op_t.patch \
|
||||
file://0001-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch \
|
||||
file://0001-tests-Make-pthread_detatch-call-portable-across-plat.patch \
|
||||
file://0001-memcheck-tests-Fix-timerfd-syscall-test.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "46e5fbdcbc3502a5976a317a0860a975"
|
||||
SRC_URI[sha256sum] = "417c7a9da8f60dd05698b3a7bc6002e4ef996f14c13f0ff96679a16873e78ab1"
|
||||
|
||||
Reference in New Issue
Block a user