Re: [LTP] [Buildroot] [Automated-testing] Call for nommu LTP maintainer [was: Re: [PATCH 00/36] Remove UCLINUX from LTP]

Waldemar Brodkorb
2024-01-15T14:15:37Z

Hi,

I want to clarify some things of the point of view of uClibc-ng
support.

There is support for following configurations for noMMU targets:
ARM:
- FLAT with Linuxthreads supported (for Qemu you need a Linux patch)
- FDPIC with NPTL supported (NPTL works only on real hardware not in Qemu)
- ELF with Thread support not working

M68k:
- FLAT with Linuxthreads supported
- ELF with Thread support not working

RISCV64:
- FLAT without Thread support
- ELF with Thread support not working

RISCV32:
- FLAT without Thread support, needs a small Linux Kernel patch

SH2/J2:
- FLAT with Linuxthreads supported

Xtensa:
- FLAT with Linuxthreads supported

There are some obsolete architectures supported by uClibc-ng, but
no longer supported by Linux:

Blackfin:
- FLAT with Linuxthreads supported
- FDPIC

H8300:
- FLAT with Linuxthreads supported

C6X:
- DSBT

LM32:
- FLAT

LTP requires NPTL to work, so the only testable platform is ARM with
FDPIC right now.
Unfortunately LTP 20230929 needs fork for some files:

RANLIB libltp.a
/home/wbx/arm/toolchain_st-stm32f746g_uclibc-ng_cortex_m7_soft_eabi_thumb_nommu/usr/lib/gcc/arm-openadk-uclinuxfdpiceabi/13.2.0/../../../../arm-openadk-uclinuxfdpiceabi/bin/ld: ../../lib/libltp.a(tst_res.o): in function `tst_fork':
/home/wbx/arm/build_st-stm32f746g_uclibc-ng_cortex_m7_soft_eabi_thumb_nommu/w-ltp-20230929-1/ltp-full-20230929/lib/tst_res.c:430:(.text+0x952): undefined reference to `fork'
/home/wbx/arm/toolchain_st-stm32f746g_uclibc-ng_cortex_m7_soft_eabi_thumb_nommu/usr/lib/gcc/arm-openadk-uclinuxfdpiceabi/13.2.0/../../../../arm-openadk-uclinuxfdpiceabi/bin/ld: ../../lib/libltp.a(tst_test.o): in function `fork_testrun':
/home/wbx/arm/build_st-stm32f746g_uclibc-ng_cortex_m7_soft_eabi_thumb_nommu/w-ltp-20230929-1/ltp-full-20230929/lib/tst_test.c:1597:(.text+0xf4e): undefined reference to `fork'
/home/wbx/arm/toolchain_st-stm32f746g_uclibc-ng_cortex_m7_soft_eabi_thumb_nommu/usr/lib/gcc/arm-openadk-uclinuxfdpiceabi/13.2.0/../../../../arm-openadk-uclinuxfdpiceabi/bin/ld: ../../lib/libltp.a(tst_test.o): in function `safe_fork':
/home/wbx/arm/build_st-stm32f746g_uclibc-ng_cortex_m7_soft_eabi_thumb_nommu/w-ltp-20230929-1/ltp-full-20230929/lib/tst_test.c:435:(.text+0x345c): undefined reference to `fork'
collect2: error: ld returned 1 exit status
gmake[8]: *** [../../include/mk/rules.mk:45: test01] Error 1
gmake[7]: *** [../include/mk/generic_trunk_target.inc:108: all] Error 2
gmake[6]: *** [Makefile:94: lib-all] Error 2
gmake[5]: *** [/home/wbx/arm/mk/pkg-bottom.mk:141: /home/wbx/arm/build_st-stm32f746g_uclibc-ng_cortex_m7_soft_eabi_thumb_nommu/w-ltp-20230929-1/ltp-full-20230929/.build_done] Error 2
gmake[4]: *** [Makefile:61: ltp-compile] Error 2
gmake[3]: *** [mk/build.mk:221: package/compile] Error 2
gmake[2]: *** [/home/wbx/arm/mk/build.mk:176: world] Error 2

So there is really work to be done to make the existing code work on noMMU.

best regards
Waldemar