From 74958c3e341de713b596c8cfd35b2391d6c7bc09 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 7 Jan 2016 18:19:03 +0000 Subject: [PATCH] build: Add option to select libc implementation There are more than glibc for C library implementation available on linux now a days, uclibc cloaked like glibc but musl e.g. is very different and does not implement all GNU extensions. Disable tests specifically not building _yet_ on musl based systems Upstream-Status: Pending (pvorel: this is not going to be fixed, instead each test needs to be fixed) rt_tgsigqueueinfo fails with: rt_tgsigqueueinfo01.c: In function 'sigusr1_handler': rt_tgsigqueueinfo01.c:42:22: error: 'siginfo_t' {aka 'struct '} has no member named '_sifields'; did you mean '__si_fields'? 42 | sigval_rcv = uinfo->_sifields._rt.SI_SIGVAL.sival_ptr; | ^~~~~~~~~ | __si_fields Signed-off-by: Khem Raj [ pvorel: rebase for 20200515: enable pty, ioctl ] [ pvorel: rebase for 20200120: enable mallopt, profil, rpc016, rt_sigsuspend, sbrk_mutex, setdomainname, sethostname, sigsuspend, testpi-3, testpi-5, testpi-6, ustat; move rt_tgsigqueueinfo from 0006-rt_tgsigqueueinfo-disable-test-on-musl.patch ] Signed-off-by: Petr Vorel --- Makefile | 5 +++++ testcases/kernel/sched/Makefile | 4 +++- testcases/kernel/syscalls/Makefile | 4 ++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 768ca4606..e9d679a71 100644 --- a/Makefile +++ b/Makefile @@ -41,6 +41,11 @@ vpath %.mk $(top_srcdir)/mk:$(top_srcdir)/mk/include UCLINUX ?= 0 export UCLINUX +# System C library implementation (glibc,uclibc,musl etc.) +# default to glibc if not set +LIBC ?= glibc +export LIBC + # CLEAN_TARGETS: Targets which exist solely in clean. # COMMON_TARGETS: Targets which exist in all, clean, and install. # INSTALL_TARGETS: Targets which exist in clean and install (contains diff --git a/testcases/kernel/sched/Makefile b/testcases/kernel/sched/Makefile index 6a57d79ee..74bb93370 100644 --- a/testcases/kernel/sched/Makefile +++ b/testcases/kernel/sched/Makefile @@ -23,5 +23,7 @@ top_srcdir ?= ../../.. include $(top_srcdir)/include/mk/env_pre.mk - +ifeq ($(LIBC),musl) + FILTER_OUT_DIRS += process_stress +endif include $(top_srcdir)/include/mk/generic_trunk_target.mk diff --git a/testcases/kernel/syscalls/Makefile b/testcases/kernel/syscalls/Makefile index c6dc8d9e7..aa50761ea 100644 --- a/testcases/kernel/syscalls/Makefile +++ b/testcases/kernel/syscalls/Makefile @@ -15,6 +15,10 @@ FILTER_OUT_DIRS += capget capset chmod chown clone fork getcontext llseek \ mincore mprotect nftw profil remap_file_pages sbrk endif +ifeq ($(LIBC),musl) +FILTER_OUT_DIRS += confstr fmtmsg getcontext rt_tgsigqueueinfo +endif + ifeq ($(UCLIBC),1) FILTER_OUT_DIRS += profil endif -- 2.26.2