#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
- # Generated by GNU Autoconf 2.69 for systemtap 2.9.
+ # Generated by GNU Autoconf 2.69 for systemtap 3.0.
#
# Report bugs to <systemtap@sourceware.org>.
#
# Identity of this package.
PACKAGE_NAME='systemtap'
PACKAGE_TARNAME='systemtap'
- PACKAGE_VERSION='2.9'
- PACKAGE_STRING='systemtap 2.9'
+ PACKAGE_VERSION='3.0'
+ PACKAGE_STRING='systemtap 3.0'
PACKAGE_BUGREPORT='systemtap@sourceware.org'
PACKAGE_URL=''
BUILD_ELFUTILS_FALSE
BUILD_ELFUTILS_TRUE
python
+HAVE_LIBREADLINE_FALSE
+HAVE_LIBREADLINE_TRUE
+READLINE_LIBS
HAVE_AVAHI_FALSE
HAVE_AVAHI_TRUE
avahi_LIBS
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
- \`configure' configures systemtap 2.9 to adapt to many kinds of systems.
+ \`configure' configures systemtap 3.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of systemtap 2.9:";;
+ short | recursive ) echo "Configuration of systemtap 3.0:";;
esac
cat <<\_ACEOF
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
- systemtap configure 2.9
+ systemtap configure 3.0
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
- It was created by systemtap $as_me 2.9, which was
+ It was created by systemtap $as_me 3.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
# Define the identity of the package.
PACKAGE='systemtap'
- VERSION='2.9'
+ VERSION='3.0'
cat >>confdefs.h <<_ACEOF
fi
fi
+LIBS_no_readline=$LIBS
+
+have_libreadline="no"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link readline libs" >&5
+$as_echo_n "checking how to link readline libs... " >&6; }
+for libtermcap in "" tinfo ncursesw ncurses curses termcap; do
+ if test -z "$libtermcap"; then
+ READLINE_LIBS="-lreadline"
+ else
+ READLINE_LIBS="-lreadline -l$libtermcap"
+ fi
+ LIBS="$READLINE_LIBS $LIBS_no_readline"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char readline ();
+int
+main ()
+{
+return readline ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ have_libreadline="yes"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test "$have_libreadline" = "yes"; then
+ break
+ fi
+done
+if test "$have_libreadline" = "no"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
+ READLINE_LIBS=""
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READLINE_LIBS" >&5
+$as_echo "$READLINE_LIBS" >&6; }
+
+$as_echo "#define HAVE_LIBREADLINE 1" >>confdefs.h
+
+fi
+
+ if test "$have_libreadline" == "yes"; then
+ HAVE_LIBREADLINE_TRUE=
+ HAVE_LIBREADLINE_FALSE='#'
+else
+ HAVE_LIBREADLINE_TRUE='#'
+ HAVE_LIBREADLINE_FALSE=
+fi
+
+
+LIBS=$LIBS_no_readline
# Check whether --with-python3 was given.
as_fn_error $? "conditional \"HAVE_AVAHI\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${HAVE_LIBREADLINE_TRUE}" && test -z "${HAVE_LIBREADLINE_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_LIBREADLINE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${BUILD_ELFUTILS_TRUE}" && test -z "${BUILD_ELFUTILS_FALSE}"; then
as_fn_error $? "conditional \"BUILD_ELFUTILS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
- This file was extended by systemtap $as_me 2.9, which was
+ This file was extended by systemtap $as_me 3.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
- systemtap config.status 2.9
+ systemtap config.status 3.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
dnl configure.ac --- autoconf input file for systemtap
dnl Process this file with autoconf to produce a configure script.
- AC_INIT([systemtap], 2.9, systemtap@sourceware.org, systemtap)
+ AC_INIT([systemtap], 3.0, systemtap@sourceware.org, systemtap)
dnl ^^^ see also NEWS, systemtap.spec, testsuite/configure.ac
dnl doc/SystemTap_Beginners_Guide/en-US/Book_Info.xml
fi
fi
+dnl Look for readline.
+dnl
+dnl First save the orignal value of LIBS.
+LIBS_no_readline=$LIBS
+
+dnl Check how for readline presence and how to link with it. On some
+dnl systems you need to add a termcap compatible library.
+have_libreadline="no"
+AC_MSG_CHECKING([how to link readline libs])
+for libtermcap in "" tinfo ncursesw ncurses curses termcap; do
+ if test -z "$libtermcap"; then
+ READLINE_LIBS="-lreadline"
+ else
+ READLINE_LIBS="-lreadline -l$libtermcap"
+ fi
+ LIBS="$READLINE_LIBS $LIBS_no_readline"
+ AC_LINK_IFELSE(
+ [AC_LANG_CALL([],[readline])],
+ [have_libreadline="yes"])
+ if test "$have_libreadline" = "yes"; then
+ break
+ fi
+done
+if test "$have_libreadline" = "no"; then
+ AC_MSG_RESULT([none])
+ READLINE_LIBS=""
+else
+ AC_MSG_RESULT([$READLINE_LIBS])
+ AC_DEFINE(HAVE_LIBREADLINE, [1],
+ [Define if you have the readline library (-lreadline).])
+fi
+AC_SUBST([READLINE_LIBS])
+AM_CONDITIONAL([HAVE_LIBREADLINE], [test "$have_libreadline" == "yes"])
+
+dnl End of readline checks: restore LIBS
+LIBS=$LIBS_no_readline
dnl Allow user to choose python3 for /usr/bin/dtrace
AC_ARG_WITH([python3],
string
- derived_probe::derived_locations ()
+ derived_probe::derived_locations (bool firstFrom)
{
ostringstream o;
vector<probe_point*> reference_point;
collect_derivation_pp_chain(reference_point);
if (reference_point.size() > 0)
for(unsigned i=1; i<reference_point.size(); ++i)
- o << " from: " << reference_point[i]->str(false); // no ?,!,etc
+ {
+ if (firstFrom || i>1)
+ o << " from: ";
+ o << reference_point[i]->str(false); // no ?,!,etc
+ }
return o.str();
}
try
{
+ // FIXME: interactive mode, register_library_aliases handles
+ // both aliases from library files *and* user scripts. It would
+ // be nice to have them in separate lists and register them
+ // separately.
s.register_library_aliases();
register_standard_tapsets(s);
}
ti.assert_resolvability = false;
- // XXX: maybe convert to exception-based error signalling
while (1)
{
assert_no_interrupts();
for (map<string,functiondecl*>::iterator it = s.functions.begin();
it != s.functions.end(); it++)
- {
- assert_no_interrupts();
-
- functiondecl* fd = it->second;
- ti.current_probe = 0;
- ti.current_function = fd;
- ti.t = pe_unknown;
- fd->body->visit (& ti);
- // NB: we don't have to assert a known type for
- // functions here, to permit a "void" function.
- // The translator phase will omit the "retvalue".
- //
- // if (fd->type == pe_unknown)
- // ti.unresolved (fd->tok);
- for (unsigned i=0; i < fd->locals.size(); ++i)
- ti.check_local (fd->locals[i]);
-
- // Check and run the autocast expanding visitor.
- if (ti.num_available_autocasts > 0)
- {
- autocast_expanding_visitor aev (ti);
- aev.replace (fd->body);
- ti.num_available_autocasts = 0;
- }
- }
-
+ try
+ {
+ assert_no_interrupts();
+
+ functiondecl* fd = it->second;
+ ti.current_probe = 0;
+ ti.current_function = fd;
+ ti.t = pe_unknown;
+ fd->body->visit (& ti);
+ // NB: we don't have to assert a known type for
+ // functions here, to permit a "void" function.
+ // The translator phase will omit the "retvalue".
+ //
+ // if (fd->type == pe_unknown)
+ // ti.unresolved (fd->tok);
+ for (unsigned i=0; i < fd->locals.size(); ++i)
+ ti.check_local (fd->locals[i]);
+
+ // Check and run the autocast expanding visitor.
+ if (ti.num_available_autocasts > 0)
+ {
+ autocast_expanding_visitor aev (ti);
+ aev.replace (fd->body);
+ ti.num_available_autocasts = 0;
+ }
+ }
+ catch (const semantic_error& e)
+ {
+ throw SEMANTIC_ERROR(_F("while processing function %s",
+ it->second->name.c_str())).set_chain(e);
+ }
+
for (unsigned j=0; j<s.probes.size(); j++)
- {
- assert_no_interrupts();
-
- derived_probe* pn = s.probes[j];
- ti.current_function = 0;
- ti.current_probe = pn;
- ti.t = pe_unknown;
- pn->body->visit (& ti);
- for (unsigned i=0; i < pn->locals.size(); ++i)
- ti.check_local (pn->locals[i]);
-
- // Check and run the autocast expanding visitor.
- if (ti.num_available_autocasts > 0)
- {
- autocast_expanding_visitor aev (ti);
- aev.replace (pn->body);
- ti.num_available_autocasts = 0;
- }
-
- probe_point* pp = pn->sole_location();
- if (pp->condition)
- {
- ti.current_function = 0;
- ti.current_probe = 0;
- ti.t = pe_long; // NB: expected type
- pp->condition->visit (& ti);
- }
- }
-
+ try
+ {
+ assert_no_interrupts();
+
+ derived_probe* pn = s.probes[j];
+ ti.current_function = 0;
+ ti.current_probe = pn;
+ ti.t = pe_unknown;
+ pn->body->visit (& ti);
+ for (unsigned i=0; i < pn->locals.size(); ++i)
+ ti.check_local (pn->locals[i]);
+
+ // Check and run the autocast expanding visitor.
+ if (ti.num_available_autocasts > 0)
+ {
+ autocast_expanding_visitor aev (ti);
+ aev.replace (pn->body);
+ ti.num_available_autocasts = 0;
+ }
+
+ probe_point* pp = pn->sole_location();
+ if (pp->condition)
+ {
+ ti.current_function = 0;
+ ti.current_probe = 0;
+ ti.t = pe_long; // NB: expected type
+ pp->condition->visit (& ti);
+ }
+ }
+ catch (const semantic_error& e)
+ {
+ throw SEMANTIC_ERROR(_F("while processing probe %s",
+ s.probes[j]->derived_locations(false).c_str())).set_chain(e);
+ }
+
for (unsigned j=0; j<s.globals.size(); j++)
{
vardecl* gd = s.globals[j];
ti.unresolved (gd->tok);
if(gd->arity == 0 && gd->wrap == true)
{
- throw SEMANTIC_ERROR (_("wrapping not supported for scalars"), gd->tok);
+ throw SEMANTIC_ERROR(_("wrapping not supported for scalars"), gd->tok);
}
}
%define dracutstap %{_prefix}/lib/dracut/modules.d/99stap
Name: systemtap
- Version: 2.9
+ Version: 3.0
Release: 1%{?dist}
# for version, see also configure.ac
BuildRequires: libvirt-devel >= 1.0.2
BuildRequires: libxml2-devel
%endif
+BuildRequires: readline-devel
+%if 0%{?rhel} <= 5
+BuildRequires: ncurses-devel
+%endif
# Install requirements
Requires: systemtap-client = %{version}-%{release}
# http://sourceware.org/systemtap/wiki/SystemTapReleases
%changelog
- * Wed Sep 30 2015 Felix Lu <flu@redhat.com> - 2.9-1
+ * Thu Oct 08 2015 Frank Ch. Eigler <fche@redhat.com> - 2.9-1
- Upstream release.
* Wed Jun 17 2015 Abegail Jakop <ajakop@redhat.com> - 2.8-1