Module: xenomai-3
Branch: next
Commit: ebc039b62c40e8fe9bac2f1892f630515f2f09de
URL:    
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=ebc039b62c40e8fe9bac2f1892f630515f2f09de

Author: Henning Schild <henning.sch...@siemens.com>
Date:   Wed Jan 25 16:08:00 2017 +0100

scripts/xeno-config: apply the assert_nrt wrappers on all skins

There are basically two classes of wrappers. Those that actually change
the implementation, and those that just assert that certain calls are
not made from a realtime context. The latter are usefull for all skins
and should always be applied.

Signed-off-by: Henning Schild <henning.sch...@siemens.com>

---

 configure.ac                  |   12 +++++++-----
 debian/libxenomai-dev.install |    1 +
 lib/cobalt/Makefile.am        |    4 +++-
 lib/cobalt/assert.wrappers    |    2 ++
 lib/cobalt/cobalt.wrappers    |    2 --
 scripts/xeno-config-cobalt.in |    4 ++--
 6 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/configure.ac b/configure.ac
index 1308f8b..83bc809 100644
--- a/configure.ac
+++ b/configure.ac
@@ -796,17 +796,19 @@ dnl Build wrapping information. XENO_POSIX_WRAPPERS lists 
all wrapping
 dnl directives in a format the linker understands, for building the
 dnl in-tree executables which require POSIX symbol wrapping.
 
+   assert_wrappers="$topdir/lib/cobalt/assert.wrappers"
    cobalt_wrappers="$topdir/lib/cobalt/cobalt.wrappers"
    if [[ $ac_cv_ld_file_option = yes ]]; then
-       XENO_POSIX_WRAPPERS="-Wl,@$cobalt_wrappers"
+       XENO_POSIX_WRAPPERS="-Wl,@$assert_wrappers -Wl,@$cobalt_wrappers"
    else
-       XENO_POSIX_WRAPPERS=`while read wrap_option symbol ; do \
-                       echo -n "-Wl,$wrap_option,$symbol " ; \
-               done < $cobalt_wrappers`
+       XENO_POSIX_WRAPPERS=`cat $assert_wrappers $cobalt_wrappers | \
+                       while read wrap_option symbol ; do \
+                               echo -n "-Wl,$wrap_option,$symbol " ; \
+                       done`
    fi
 
    AC_SUBST(XENO_POSIX_WRAPPERS)
-   AC_SUBST([CONFIG_STATUS_DEPENDENCIES], ["$cobalt_wrappers"])
+   AC_SUBST([CONFIG_STATUS_DEPENDENCIES], ["$assert_wrappers 
$cobalt_wrappers"])
 fi
 
 dnl
diff --git a/debian/libxenomai-dev.install b/debian/libxenomai-dev.install
index 7b107cb..6d7eb7b 100644
--- a/debian/libxenomai-dev.install
+++ b/debian/libxenomai-dev.install
@@ -2,5 +2,6 @@ usr/include
 usr/lib/*.la
 usr/lib/*.a
 usr/lib/*.so
+usr/lib/assert.wrappers
 usr/lib/cobalt.wrappers
 usr/lib/dynlist.ld
diff --git a/lib/cobalt/Makefile.am b/lib/cobalt/Makefile.am
index 576122d..459b207 100644
--- a/lib/cobalt/Makefile.am
+++ b/lib/cobalt/Makefile.am
@@ -46,10 +46,12 @@ libcobalt_la_CPPFLAGS =                     \
 install-data-local:
        $(mkinstalldirs) $(DESTDIR)$(libdir)
        $(INSTALL_DATA) $(srcdir)/cobalt.wrappers $(DESTDIR)$(libdir)
+       $(INSTALL_DATA) $(srcdir)/assert.wrappers $(DESTDIR)$(libdir)
 
 uninstall-local:
        $(RM) $(DESTDIR)$(libdir)/cobalt.wrappers
+       $(RM) $(DESTDIR)$(libdir)/assert.wrappers
 
-EXTRA_DIST = cobalt.wrappers
+EXTRA_DIST = cobalt.wrappers assert.wrappers
 
 SUBDIRS = arch
diff --git a/lib/cobalt/assert.wrappers b/lib/cobalt/assert.wrappers
new file mode 100644
index 0000000..7164858
--- /dev/null
+++ b/lib/cobalt/assert.wrappers
@@ -0,0 +1,2 @@
+--wrap malloc
+--wrap free
diff --git a/lib/cobalt/cobalt.wrappers b/lib/cobalt/cobalt.wrappers
index 9480f34..0378abf 100644
--- a/lib/cobalt/cobalt.wrappers
+++ b/lib/cobalt/cobalt.wrappers
@@ -91,8 +91,6 @@
 --wrap fclose
 --wrap syslog
 --wrap vsyslog
---wrap malloc
---wrap free
 --wrap gettimeofday
 --wrap __vfprintf_chk
 --wrap __vprintf_chk
diff --git a/scripts/xeno-config-cobalt.in b/scripts/xeno-config-cobalt.in
index d102d04..3e1f64c 100644
--- a/scripts/xeno-config-cobalt.in
+++ b/scripts/xeno-config-cobalt.in
@@ -235,8 +235,8 @@ if test x$do_ldflags = xy; then
        echo "no API specified, missing --skin before --ldflags" 1>&2
        exit 1
     fi
-    ldflags=
-    test x$compat = xy && ldflags="-ltrank "
+    ldflags="`dump_wrappers assert.wrappers`"
+    test x$compat = xy && ldflags="-ltrank $ldflags"
     copperplate=
     for skin in $skin_list; do
        case "$skin" in


_______________________________________________
Xenomai-git mailing list
Xenomai-git@xenomai.org
https://xenomai.org/mailman/listinfo/xenomai-git

Reply via email to