From 53b0b651374ca78d95bf9474e5fa05270421460d Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 13 Feb 2020 00:21:57 -0800 Subject: ltp: Fix tescases with 64bit time_t using 32bit arches 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 (From OE-Core rev: 8b6c22a0dc61579d112161fd49da855a678cc58b) Signed-off-by: Khem Raj Signed-off-by: Richard Purdie --- ...eck-for-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 (limited to 'meta/recipes-extended/ltp') 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 +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 +--- + 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 + #include + ++#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" -- cgit v1.2.3-54-g00ecf