diff mbox

[4/4] rt-tests: allow building subset of tests with non-NPTL toolchains

Message ID 1415613549-2886-5-git-send-email-abrodkin@synopsys.com
State Superseded
Headers show

Commit Message

Alexey Brodkin Nov. 10, 2014, 9:59 a.m. UTC
Some architectures are still stuck with non-NPTL toolchains.
These are for example ARC, Blackfin, Xtensa etc.

Still rt-tests are very good benchmarks and it would be good to enable use of
at least selected (those that will be built) tests on those architectures.

This change makes it possible to only build subset of tests that don't require
NPTL calls.

Following tests will be built with non-NPTL toolchain:
 * signaltest
 * ptsematest
 * sigwaittest
 * svsematest
 * sendme
 * hackbench

03-fix-non-nptl-buil.patch was submitted upstream:
https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg762958.html
so as soon as it is accepted with the next version bump this patch should be
removed.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Cc: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
 package/rt-tests/03-fix-non-nptl-buil.patch | 55 +++++++++++++++++++++++++++++
 package/rt-tests/Config.in                  |  4 ---
 package/rt-tests/rt-tests.mk                |  6 ++++
 3 files changed, 61 insertions(+), 4 deletions(-)
 create mode 100644 package/rt-tests/03-fix-non-nptl-buil.patch

Comments

Thomas Petazzoni Nov. 10, 2014, 10:06 a.m. UTC | #1
Dear Alexey Brodkin,

On Mon, 10 Nov 2014 12:59:09 +0300, Alexey Brodkin wrote:

> diff --git a/package/rt-tests/Config.in b/package/rt-tests/Config.in
> index 81e5d06..23cc284 100644
> --- a/package/rt-tests/Config.in
> +++ b/package/rt-tests/Config.in
> @@ -1,7 +1,5 @@
>  config BR2_PACKAGE_RT_TESTS
>  	bool "rt-tests"
> -	# no _tid field in 'struct sigevent'
> -	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL

And it doesn't need thread support at all?

Thomas
Alexey Brodkin Nov. 10, 2014, 10:24 a.m. UTC | #2
Hi Thomas,

On Mon, 2014-11-10 at 11:06 +0100, Thomas Petazzoni wrote:
> Dear Alexey Brodkin,
> 
> On Mon, 10 Nov 2014 12:59:09 +0300, Alexey Brodkin wrote:
> 
> > diff --git a/package/rt-tests/Config.in b/package/rt-tests/Config.in
> > index 81e5d06..23cc284 100644
> > --- a/package/rt-tests/Config.in
> > +++ b/package/rt-tests/Config.in
> > @@ -1,7 +1,5 @@
> >  config BR2_PACKAGE_RT_TESTS
> >  	bool "rt-tests"
> > -	# no _tid field in 'struct sigevent'
> > -	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
> 
> And it doesn't need thread support at all?

Indeed, threads are required.
So I should have put dependency on BR2_TOOLCHAIN_HAS_THREADS.

Thanks for pointing to this mistake.

If other patches for rt-tests are OK then I'll re-submit only the last
one.

-Alexey
diff mbox

Patch

diff --git a/package/rt-tests/03-fix-non-nptl-buil.patch b/package/rt-tests/03-fix-non-nptl-buil.patch
new file mode 100644
index 0000000..5c65018
--- /dev/null
+++ b/package/rt-tests/03-fix-non-nptl-buil.patch
@@ -0,0 +1,55 @@ 
+From c6920f97be02ca3fba9320b043acd578ce4c62d8 Mon Sep 17 00:00:00 2001
+From: Alexey Brodkin <abrodkin@synopsys.com>
+Date: Mon, 10 Nov 2014 10:00:13 +0300
+Subject: [PATCH] Makefile: allow building selected tests with non-NPTL
+ toolchain
+
+Some architectures are still stuck with non-NPTL toolchains.
+These are for example ARC, Blackfin, Xtensa etc.
+
+Still rt-tests are very good benchmarks and it would be good to enable use of
+at least selected (those that will be built) tests on those architectures.
+
+This change makes it possible to only build subset of tests that don't require
+NPTL calls.
+
+By default behavior is not modified - all tests are built, but if one wants
+to build with non-NPTL toolchain just add "HAVE_NPTL=no" in command line
+or modify "HAVE_NPTL" variable right in Makefile and execute "make".
+
+This patch was submitted upstream:
+https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg762958.html
+so as soon as it is accepted with the next version bump this patch should be
+removed.
+
+Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
+Cc: Vineet Gupta <vgupta@synopsys.com>
+Cc: Clark Williams <clark.williams@gmail.com>
+---
+ Makefile | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 318a5c6..675edf7 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,8 +1,13 @@
+ VERSION_STRING = 0.89
+ 
+-sources = cyclictest.c signaltest.c pi_stress.c rt-migrate-test.c	\
+-	  ptsematest.c sigwaittest.c svsematest.c pmqtest.c sendme.c 	\
+-	  pip_stress.c hackbench.c
++HAVE_NPTL ?= yes
++
++ifeq ($(HAVE_NPTL),yes)
++sources = cyclictest.c pi_stress.c pip_stress.c pmqtest.c rt-migrate-test.c
++endif
++
++sources += signaltest.c ptsematest.c sigwaittest.c svsematest.c sendme.c \
++	  hackbench.c
+ 
+ TARGETS = $(sources:.c=)
+ 
+-- 
+1.9.3
+
diff --git a/package/rt-tests/Config.in b/package/rt-tests/Config.in
index 81e5d06..23cc284 100644
--- a/package/rt-tests/Config.in
+++ b/package/rt-tests/Config.in
@@ -1,7 +1,5 @@ 
 config BR2_PACKAGE_RT_TESTS
 	bool "rt-tests"
-	# no _tid field in 'struct sigevent'
-	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
 	help
 	  Set of utilities for testing the real-time behaviour of a
 	  Linux system.
@@ -26,5 +24,3 @@  comment "rt-tests may not work on MIPS with an external uClibc toolchain"
 	depends on BR2_TOOLCHAIN_EXTERNAL_UCLIBC
 	depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
 
-comment "rt-tests needs a toolchain w/ NPTL"
-	depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
diff --git a/package/rt-tests/rt-tests.mk b/package/rt-tests/rt-tests.mk
index 4cd99c0..1980556 100644
--- a/package/rt-tests/rt-tests.mk
+++ b/package/rt-tests/rt-tests.mk
@@ -13,15 +13,21 @@  ifeq ($(BR2_PACKAGE_PYTHON),y)
 RT_TESTS_DEPENDENCIES = python
 endif
 
+ifneq ($(BR2_TOOLCHAIN_HAS_THREADS_NPTL),y)
+RT_TESTS_HAVE_NPTL=no
+endif
+
 define RT_TESTS_BUILD_CMDS
 	$(MAKE) -C $(@D) 			\
 		CC="$(TARGET_CC)" 		\
+		HAVE_NPTL=$(RT_TESTS_HAVE_NPTL)	\
 		CFLAGS="$(TARGET_CFLAGS)"	\
 		prefix=/usr
 endef
 
 define RT_TESTS_INSTALL_TARGET_CMDS
 	$(MAKE) -C $(@D) 				\
+		HAVE_NPTL=$(RT_TESTS_HAVE_NPTL)		\
 		DESTDIR="$(TARGET_DIR)" 		\
 		prefix=/usr 				\
 		$(if $(BR2_PACKAGE_PYTHON),HASPYTHON=1 PYLIB=/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages/) \