With the switch over to nolibc the source file vdso_standalone_test_x86.c
was intended to be replaced with a symlink to vdso_test_gettimeofday.c.
This was the patch that was submitted to LKML, but during application the
symlink was replaced by a textual copy of the linked-to file.

Having two copies introduces the possibility of divergence and increases
maintenance burden, switch back to a symlink.

Link: 
https://lore.kernel.org/lkml/20250226-parse_vdso-nolibc-v2-16-28e14e031...@linutronix.de/
Fixes: 8770a9183fe1 ("selftests: vDSO: vdso_standalone_test_x86: Switch to 
nolibc")
Signed-off-by: Thomas Weißschuh <thomas.weisssc...@linutronix.de>
---
If symlinks are problematic an #include shim would also work.
These are not handled really well by the kselftests build system though,
as #include dependencies are not tracked by it.
---
 .../selftests/vDSO/vdso_standalone_test_x86.c      | 59 +---------------------
 1 file changed, 1 insertion(+), 58 deletions(-)

diff --git a/tools/testing/selftests/vDSO/vdso_standalone_test_x86.c 
b/tools/testing/selftests/vDSO/vdso_standalone_test_x86.c
deleted file mode 100644
index 
9ce795b806f0992b83cef78c7e16fac0e54750da..0000000000000000000000000000000000000000
--- a/tools/testing/selftests/vDSO/vdso_standalone_test_x86.c
+++ /dev/null
@@ -1,58 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * vdso_test_gettimeofday.c: Sample code to test parse_vdso.c and
- *                           vDSO gettimeofday()
- * Copyright (c) 2014 Andy Lutomirski
- *
- * Compile with:
- * gcc -std=gnu99 vdso_test_gettimeofday.c parse_vdso_gettimeofday.c
- *
- * Tested on x86, 32-bit and 64-bit.  It may work on other architectures, too.
- */
-
-#include <stdio.h>
-#ifndef NOLIBC
-#include <sys/auxv.h>
-#include <sys/time.h>
-#endif
-
-#include "../kselftest.h"
-#include "parse_vdso.h"
-#include "vdso_config.h"
-#include "vdso_call.h"
-
-int main(int argc, char **argv)
-{
-       const char *version = versions[VDSO_VERSION];
-       const char **name = (const char **)&names[VDSO_NAMES];
-
-       unsigned long sysinfo_ehdr = getauxval(AT_SYSINFO_EHDR);
-       if (!sysinfo_ehdr) {
-               printf("AT_SYSINFO_EHDR is not present!\n");
-               return KSFT_SKIP;
-       }
-
-       vdso_init_from_sysinfo_ehdr(getauxval(AT_SYSINFO_EHDR));
-
-       /* Find gettimeofday. */
-       typedef long (*gtod_t)(struct timeval *tv, struct timezone *tz);
-       gtod_t gtod = (gtod_t)vdso_sym(version, name[0]);
-
-       if (!gtod) {
-               printf("Could not find %s\n", name[0]);
-               return KSFT_SKIP;
-       }
-
-       struct timeval tv;
-       long ret = VDSO_CALL(gtod, 2, &tv, 0);
-
-       if (ret == 0) {
-               printf("The time is %lld.%06lld\n",
-                      (long long)tv.tv_sec, (long long)tv.tv_usec);
-       } else {
-               printf("%s failed\n", name[0]);
-               return KSFT_FAIL;
-       }
-
-       return 0;
-}
diff --git a/tools/testing/selftests/vDSO/vdso_standalone_test_x86.c 
b/tools/testing/selftests/vDSO/vdso_standalone_test_x86.c
new file mode 120000
index 
0000000000000000000000000000000000000000..4d3d96f1e440c965474681a6f35375a60b3921be
--- /dev/null
+++ b/tools/testing/selftests/vDSO/vdso_standalone_test_x86.c
@@ -0,0 +1 @@
+vdso_test_gettimeofday.c
\ No newline at end of file

---
base-commit: 1e26c5e28ca5821a824e90dd359556f5e9e7b89f
change-id: 20250326-vdso-selftests-fix-vdso_standalone_test_x86-c3a77b57ccbd

Best regards,
-- 
Thomas Weißschuh <thomas.weisssc...@linutronix.de>


Reply via email to