Patchwork rt-tests: Make it available only when NPLT is selected

login
register
mail settings
Submitter Markos Chandras
Date April 2, 2012, 2:15 p.m.
Message ID <1333376154-20432-1-git-send-email-markos.chandras@imgtec.com>
Download mbox | patch
Permalink /patch/150161/
State Changes Requested
Headers show

Comments

Markos Chandras - April 2, 2012, 2:15 p.m.
rt-tests package requires some definitions (like PTHREAD_PRIO_INHERIT etc) which
are only available in Native Posix Linux Thread implementation.

Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
---
 package/rt-tests/Config.in |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
Thomas Petazzoni - April 2, 2012, 2:25 p.m.
Le Mon, 2 Apr 2012 15:15:54 +0100,
Markos Chandras <markos.chandras@imgtec.com> a écrit :

> rt-tests package requires some definitions (like PTHREAD_PRIO_INHERIT
> etc) which are only available in Native Posix Linux Thread
> implementation.
> 
> Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>

I agree there is a problem, but unfortunately this solution will break
external toolchains and crosstool-ng toolchains that use glibc or
eglibc. Those toolchains have NPTL support, but BR2_PTHREADS_NATIVE is
not defined when using such toolchains.

I guess the real solution would be something like:

config BR2_TOOLCHAIN_HAS_NPTL
	bool

and then for internal backend, select this option is
BR2_PTHREADS_NATIVE is enabled. For external backend, select this
option when glibc/eglibc is used, and add an option when the uClibc
library is used. Some similar solution must be found for the
crosstool-NG backend.

Regards,

Thomas
Peter Korsgaard - April 3, 2012, 9:33 p.m.
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Le Mon, 2 Apr 2012 15:15:54 +0100,
 Thomas> Markos Chandras <markos.chandras@imgtec.com> a écrit :

 >> rt-tests package requires some definitions (like PTHREAD_PRIO_INHERIT
 >> etc) which are only available in Native Posix Linux Thread
 >> implementation.
 >> 
 >> Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>

 Thomas> I agree there is a problem, but unfortunately this solution will break
 Thomas> external toolchains and crosstool-ng toolchains that use glibc or
 Thomas> eglibc. Those toolchains have NPTL support, but BR2_PTHREADS_NATIVE is
 Thomas> not defined when using such toolchains.

 Thomas> I guess the real solution would be something like:

 Thomas> config BR2_TOOLCHAIN_HAS_NPTL
 Thomas> 	bool

 Thomas> and then for internal backend, select this option is
 Thomas> BR2_PTHREADS_NATIVE is enabled. For external backend, select this
 Thomas> option when glibc/eglibc is used, and add an option when the uClibc
 Thomas> library is used. Some similar solution must be found for the
 Thomas> crosstool-NG backend.

Alternatively you can make it depend on !pthreads (ugly because it is so
verbose)

depends on !(BR2_TOOLCHAIN_CTNG_THREADS_NONE ||
         BR2_TOOLCHAIN_CTNG_THREADS_PTHREADS ||
         BR2_TOOLCHAIN_CTNG_THREADS_PTHREADS_OLD ||
         BR2_PTHREADS_NONE || BR2_PTHREADS || BR2_PTHREADS_OLD)

Patch

diff --git a/package/rt-tests/Config.in b/package/rt-tests/Config.in
index e645266..0043989 100644
--- a/package/rt-tests/Config.in
+++ b/package/rt-tests/Config.in
@@ -1,3 +1,4 @@ 
+if BR2_PTHREADS_NATIVE
 config BR2_PACKAGE_RT_TESTS
 	bool "rt-tests"
 	help
@@ -11,3 +12,4 @@  config BR2_PACKAGE_RT_TESTS
 	  Buildroot configuration.
 
 	  http://rt.wiki.kernel.org
+endif