Re: [PATCH v2 00/16] selftests: vDSO: parse_vdso: Make compatible with nolibc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2/26/25 04:44, Thomas Weißschuh wrote:
For testing the functionality of the vDSO, it is necessary to build
userspace programs for multiple different architectures.
It is additional work to acquire matching userspace cross-compilers with
full C libraries and then building root images out of those.
The kernel tree already contains nolibc, a small, header-only C library.
By using it, it is possible to build userspace programs without any
additional dependencies.
For example the kernel.org crosstools or multi-target clang can be used
to build test programs for a multitude of architectures.
While nolibc is very limited, it is enough for many selftests.
With some minor adjustments it is possible to make parse_vdso.c
compatible with nolibc.
As an example, vdso_standalone_test_x86 is now built from the same C
code as the regular vdso_test_gettimeofday, while still being completely
standalone.
Also drop the dependency of parse_vdso.c on the elf.h header from libc and only
use the one from the kernel's UAPI.

While this series is useful on its own now, it will also integrate with the
kunit UAPI framework currently under development:
https://lore.kernel.org/lkml/20250217-kunit-kselftests-v1-0-42b4524c3b0a@xxxxxxxxxxxxx/

Signed-off-by: Thomas Weißschuh <thomas.weissschuh@xxxxxxxxxxxxx>
---
Changes in v2:
- Provide a limits.h header in nolibc
- Pick up Reviewed-by tags from Kees
- Link to v1: https://lore.kernel.org/r/20250203-parse_vdso-nolibc-v1-0-9cb6268d77be@xxxxxxxxxxxxx

---
Thomas Weißschuh (16):
       MAINTAINERS: Add vDSO selftests
       elf, uapi: Add definition for STN_UNDEF
       elf, uapi: Add definition for DT_GNU_HASH
       elf, uapi: Add definitions for VER_FLG_BASE and VER_FLG_WEAK
       elf, uapi: Add type ElfXX_Versym
       elf, uapi: Add types ElfXX_Verdef and ElfXX_Veraux
       tools/include: Add uapi/linux/elf.h
       selftests: Add headers target
       tools/nolibc: add limits.h shim header
       selftests: vDSO: vdso_standalone_test_x86: Use vdso_init_form_sysinfo_ehdr
       selftests: vDSO: parse_vdso: Drop vdso_init_from_auxv()
       selftests: vDSO: parse_vdso: Use UAPI headers instead of libc headers
       selftests: vDSO: parse_vdso: Test __SIZEOF_LONG__ instead of ULONG_MAX
       selftests: vDSO: vdso_test_gettimeofday: Clean up includes
       selftests: vDSO: vdso_test_gettimeofday: Make compatible with nolibc
       selftests: vDSO: vdso_standalone_test_x86: Switch to nolibc

  MAINTAINERS                                        |   1 +
  include/uapi/linux/elf.h                           |  38 ++
  tools/include/nolibc/Makefile                      |   1 +
  tools/include/nolibc/limits.h                      |   7 +
  tools/include/uapi/linux/elf.h                     | 524 +++++++++++++++++++++
  tools/testing/selftests/lib.mk                     |   5 +-
  tools/testing/selftests/vDSO/Makefile              |  11 +-
  tools/testing/selftests/vDSO/parse_vdso.c          |  19 +-
  tools/testing/selftests/vDSO/parse_vdso.h          |   1 -
  .../selftests/vDSO/vdso_standalone_test_x86.c      | 143 +-----
  .../selftests/vDSO/vdso_test_gettimeofday.c        |   4 +-
  11 files changed, 590 insertions(+), 164 deletions(-)
---
base-commit: 2014c95afecee3e76ca4a56956a936e23283f05b
change-id: 20241017-parse_vdso-nolibc-e069baa7ff48

Best regards,

Here is my Ack for this series to go through vDSO or x86 tree

Acked-by: Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx>

thanks,
-- Shuah




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux