blob: 29b2bf7e41dc29515e95ac50dc68abd265df0bc4 [file] [log] [blame]
From 74958c3e341de713b596c8cfd35b2391d6c7bc09 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
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 <anonymous>'} 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 <raj.khem@gmail.com>
[ 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 <petr.vorel@gmail.com>
---
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