[08/10] ltp: Fix tescases with 64bit time_t using 32bit arches

Submitted by Khem Raj on Feb. 13, 2020, 8:21 a.m. | Patch ID: 170004

Details

Message ID 7c9d0ee973049010b4a49b2391f3da7ea75b29dc.1581580428.git.raj.khem@gmail.com
State New
Headers show

Commit Message

Khem Raj Feb. 13, 2020, 8:21 a.m.
This helps it compile on musl

Fixes
| tst_clocks.c:31:17: error: 'SYS_clock_getres' undeclared (first use in this function); did you mean 'tst_clock_getres

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 ...or-time64-unsafe-syscalls-before-usi.patch | 81 +++++++++++++++++++
 meta/recipes-extended/ltp/ltp_20190930.bb     |  1 +
 2 files changed, 82 insertions(+)
 create mode 100644 meta/recipes-extended/ltp/ltp/0001-syscalls-Check-for-time64-unsafe-syscalls-before-usi.patch

Patch hide | download patch | download mbox

diff --git a/meta/recipes-extended/ltp/ltp/0001-syscalls-Check-for-time64-unsafe-syscalls-before-usi.patch b/meta/recipes-extended/ltp/ltp/0001-syscalls-Check-for-time64-unsafe-syscalls-before-usi.patch
new file mode 100644
index 0000000000..92e5fdfe6e
--- /dev/null
+++ b/meta/recipes-extended/ltp/ltp/0001-syscalls-Check-for-time64-unsafe-syscalls-before-usi.patch
@@ -0,0 +1,81 @@ 
+From 09e631419d9763a4ff08b32d9801c12b475d8ec5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 12 Feb 2020 22:22:17 -0800
+Subject: [PATCH] syscalls: Check for time64 unsafe syscalls before using them
+
+musl is using 64bit time_t now on 32bit architectures and these syscalls
+no longer exist, therefore its better to check for them being available
+before using them
+
+Upstream-Status: Submitted [http://lists.linux.it/pipermail/ltp/2020-February/015400.html]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/tst_clocks.c                                        | 9 +++++++++
+ testcases/kernel/syscalls/gettimeofday/gettimeofday01.c | 4 ++++
+ testcases/kernel/syscalls/gettimeofday/gettimeofday02.c | 4 ++++
+ 3 files changed, 17 insertions(+)
+
+diff --git a/lib/tst_clocks.c b/lib/tst_clocks.c
+index 35798a4aaf..6a5b05c4ea 100644
+--- a/lib/tst_clocks.c
++++ b/lib/tst_clocks.c
+@@ -28,15 +28,24 @@
+ 
+ int tst_clock_getres(clockid_t clk_id, struct timespec *res)
+ {
++#if defined(__NR_clock_getres)
+ 	return syscall(SYS_clock_getres, clk_id, res);
++#endif
++	return -1;
+ }
+ 
+ int tst_clock_gettime(clockid_t clk_id, struct timespec *ts)
+ {
++#if defined(__NR_clock_gettime)
+ 	return syscall(SYS_clock_gettime, clk_id, ts);
++#endif
++	return -1;
+ }
+ 
+ int tst_clock_settime(clockid_t clk_id, struct timespec *ts)
+ {
++#if defined(__NR_clock_settime)
+ 	return syscall(SYS_clock_settime, clk_id, ts);
++#endif
++	return -1;
+ }
+diff --git a/testcases/kernel/syscalls/gettimeofday/gettimeofday01.c b/testcases/kernel/syscalls/gettimeofday/gettimeofday01.c
+index 583d8f7b9b..b498de5b68 100644
+--- a/testcases/kernel/syscalls/gettimeofday/gettimeofday01.c
++++ b/testcases/kernel/syscalls/gettimeofday/gettimeofday01.c
+@@ -41,7 +41,11 @@
+ #include <sys/syscall.h>
+ #include <unistd.h>
+ 
++#ifdef __NR_gettimeofday
+ #define gettimeofday(a,b)  syscall(__NR_gettimeofday,a,b)
++#else
++#define gettimeofday(a,b) (-1)
++#endif
+ 
+ char *TCID = "gettimeofday01";
+ int TST_TOTAL = 1;
+diff --git a/testcases/kernel/syscalls/gettimeofday/gettimeofday02.c b/testcases/kernel/syscalls/gettimeofday/gettimeofday02.c
+index 1d60f448e8..218e017df8 100644
+--- a/testcases/kernel/syscalls/gettimeofday/gettimeofday02.c
++++ b/testcases/kernel/syscalls/gettimeofday/gettimeofday02.c
+@@ -23,7 +23,11 @@
+ 
+ #include "tst_test.h"
+ 
++#ifdef __NR_gettimeofday
+ #define gettimeofday(a,b)  syscall(__NR_gettimeofday,a,b)
++#else
++#define gettimeofday(a,b) (-1)
++#endif
+ 
+ static volatile sig_atomic_t done;
+ static char *str_rtime;
+-- 
+2.25.0
+
diff --git a/meta/recipes-extended/ltp/ltp_20190930.bb b/meta/recipes-extended/ltp/ltp_20190930.bb
index 2853b1c819..19bd7bc9c6 100644
--- a/meta/recipes-extended/ltp/ltp_20190930.bb
+++ b/meta/recipes-extended/ltp/ltp_20190930.bb
@@ -42,6 +42,7 @@  SRC_URI = "git://github.com/linux-test-project/ltp.git \
            file://0001-testcases-fix-an-absent-format-string-issue.patch \
            file://0001-Add-more-musl-exclusions.patch \
            file://0001-nm01-Remove-prefix-zeros-of-the-addresses-output-by-.patch \
+           file://0001-syscalls-Check-for-time64-unsafe-syscalls-before-usi.patch \
            "
 
 S = "${WORKDIR}/git"