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