To clarify the relation between disabling TLS support and allowing to
dlopen Xenomai skin library, introduce an explicit configure switch.
This way we will also have a control to disable auto-shadowing in the
POSIX skin for dlopen scenarios.

Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>
---

 configure.in |   19 +++++++++++++++++--
 1 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/configure.in b/configure.in
index 1d7f5fa..679af96 100644
--- a/configure.in
+++ b/configure.in
@@ -758,15 +758,30 @@ LIBS="$LIBS -lrt"
 AC_CHECK_FUNCS([shm_open shm_unlink])
 LIBS="$save_LIBS"
 
+AC_MSG_CHECKING(whether to enable dlopen support for skin libraries)
+AC_ARG_ENABLE(dlopen-skins,
+       AC_HELP_STRING([--enable-dlopen-skins], [Disable TLS features and
+automatic main thread mapping by the POSIX skin to allows dlopen'ing Xenomai
+libs.]),
+       [case "$enableval" in
+       y | yes) CONFIG_XENO_LIBS_DLOPEN=y ;;
+       *) unset CONFIG_XENO_LIBS_DLOPEN ;;
+       esac])
+AC_MSG_RESULT(${CONFIG_XENO_LIBS_DLOPEN:-no})
+if test x$CONFIG_XENO_LIBS_DLOPEN = xy; then
+       AC_DEFINE(CONFIG_XENO_LIBS_DLOPEN,1,[config])
+fi
+
 XENO_DLOPEN_CONSTRAINT=
+
 AC_ARG_WITH([__thread],
            AC_HELP_STRING([--without-__thread],
-                          [do not use TLS features (allows for dlopen'ing 
Xenomai libs)]),
+                          [do not use TLS features]),
            [use__thread=$withval],
            [use__thread=yes])
 
 dnl Check whether the compiler supports the __thread keyword.
-if test "x$use__thread" != xno; then
+if test "x$use__thread" != xno -a "x$CONFIG_XENO_LIBS_DLOPEN" != xy; then
        AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread,
        [cat > conftest.c <<\EOF
 __thread int a __attribute__ ((tls_model ("initial-exec"))) = 42;


_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to