Currently the vDSO selftests use the time-related types from libc.
This works on glibc by chance today but will break with other libc
implementations or on distributions which switch to 64-bit times
everywhere.

The kernel's UAPI headers provide the proper types to use with the vDSO
(and raw syscalls) but are not necessarily compatible with libc types.
Introduce a new header which makes the UAPI headers compatible with the
libc.

Also contains some related cleanups.

Signed-off-by: Thomas Weißschuh <[email protected]>
---
Changes in v2:
- Use __kernel_old_time_t in vdso_time_t.
- Add vdso_syscalls.h.
- Add a test for the time() function.
- Validate return value of syscall(clock_getres) in vdso_test_abi
- Link to v1: 
https://lore.kernel.org/r/[email protected]

---
Thomas Weißschuh (14):
      Revert "selftests: vDSO: parse_vdso: Use UAPI headers instead of libc 
headers"
      selftests: vDSO: Introduce vdso_types.h
      selftests: vDSO: Introduce vdso_syscalls.h
      selftests: vDSO: vdso_test_gettimeofday: Remove nolibc checks
      selftests: vDSO: vdso_test_gettimeofday: Use types from vdso_types.h
      selftests: vDSO: vdso_test_abi: Use types from vdso_types.h
      selftests: vDSO: vdso_test_abi: Validate return value of 
syscall(clock_getres)
      selftests: vDSO: vdso_test_abi: Use system call wrappers from 
vdso_syscalls.h
      selftests: vDSO: vdso_test_correctness: Drop SYS_getcpu fallbacks
      selftests: vDSO: vdso_test_correctness: Make ts_leq() and tv_leq() more 
generic
      selftests: vDSO: vdso_test_correctness: Use types from vdso_types.h
      selftests: vDSO: vdso_test_correctness: Use system call wrappers from 
vdso_syscalls.h
      selftests: vDSO: vdso_test_correctness: Use facilities from parse_vdso.c
      selftests: vDSO: vdso_test_correctness: Add a test for time()

 tools/testing/selftests/vDSO/Makefile              |   6 +-
 tools/testing/selftests/vDSO/parse_vdso.c          |   3 +-
 tools/testing/selftests/vDSO/vdso_syscalls.h       |  93 ++++++++++
 tools/testing/selftests/vDSO/vdso_test_abi.c       |  46 +++--
 .../testing/selftests/vDSO/vdso_test_correctness.c | 190 +++++++++++----------
 .../selftests/vDSO/vdso_test_gettimeofday.c        |   9 +-
 tools/testing/selftests/vDSO/vdso_types.h          |  70 ++++++++
 7 files changed, 285 insertions(+), 132 deletions(-)
---
base-commit: 1b2eb8c1324859864f4aa79dc3cfbb2f7ef5c524
change-id: 20251110-vdso-test-types-68ce0c712b79

Best regards,
-- 
Thomas Weißschuh <[email protected]>


Reply via email to