Hello community,

here is the log from the commit of package systemtap.1416 for 
openSUSE:12.2:Update checked in at 2013-03-18 16:21:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.2:Update/systemtap.1416 (Old)
 and      /work/SRC/openSUSE:12.2:Update/.systemtap.1416.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "systemtap.1416", Maintainer is ""

Changes:
--------
New Changes file:

--- /dev/null   2013-02-26 18:15:11.936010755 +0100
+++ /work/SRC/openSUSE:12.2:Update/.systemtap.1416.new/systemtap-docs.changes   
2013-03-18 16:21:46.000000000 +0100
@@ -0,0 +1,430 @@
+-------------------------------------------------------------------
+Thu Jun 14 20:11:49 UTC 2012 - dims...@opensuse.org
+
+- Add systemtap-automake112.patch: Fix build with automake 1.12:
+  + Support for automatic de-ANSI-fication has been removed.
+  + Patch taken from upstream, git commit id 5b2bc70.
+
+-------------------------------------------------------------------
+Sat Feb 18 01:36:46 UTC 2012 - to...@suse.com
+
+- Update to version 1.7.  See systemtap.spec for changelog
+
+-------------------------------------------------------------------
+Sun Jan 29 06:34:11 UTC 2012 - co...@suse.com
+
+- add automake too
+
+-------------------------------------------------------------------
+Wed Dec 21 10:44:28 UTC 2011 - co...@suse.com
+
+- add autoconf as buildrequire to avoid implicit dependency
+
+-------------------------------------------------------------------
+Wed Nov  2 10:54:46 CET 2011 - jsl...@suse.de
+
+- update to 1.6
+
+-------------------------------------------------------------------
+Tue Jun  7 08:11:15 UTC 2011 - co...@novell.com
+
+- fix file dependencies of examples and testsuite
+
+-------------------------------------------------------------------
+Tue May 17 11:28:27 CEST 2011 - jsl...@suse.de
+
+- fix gcc 4.6 build
+
+-------------------------------------------------------------------
+Fri Jan 21 18:45:18 UTC 2011 - to...@novell.com
+
+- Update to version 1.4. See systemtap.changes for full changelog.
+
+-------------------------------------------------------------------
+Thu Aug 26 02:15:11 UTC 2010 - to...@novell.com
+
+- Update to version 1.3
+
+-------------------------------------------------------------------
+Thu Mar 11 22:49:52 UTC 2010 - to...@novell.com
+
+- Update to version 1.1. See systemtap.changes for full changelog.
+
+-------------------------------------------------------------------
+Wed Dec  2 23:52:10 UTC 2009 - to...@novell.com
+
+- Minor changes to spec file 
+
+-------------------------------------------------------------------
+Fri Oct  2 18:57:14 CEST 2009 - to...@suse.de
+
+- updated to version 1.0.  See systemtap.changes for full changelog.
+
+-------------------------------------------------------------------
+Tue Jul 21 08:47:33 CEST 2009 - ti...@suse.de
+
+- corrected to use libexecdir
+- fix summary and description
+
+-------------------------------------------------------------------
+Thu Jun 18 12:46:08 CEST 2009 - ti...@suse.de
+
+- change to noarch
+
+-------------------------------------------------------------------
+Tue Jun 16 16:26:52 CEST 2009 - ti...@suse.de
+
+- updated to version 0.9.8:
+  * Module signing support
+  * Debuginfo suggestions when a script fails
+  * Using %M in print formats for hex dumps can now print entire
+    buffers
+  * Dwarfless syscalls: The nd_syscalls tapset is now available to
+    probe system calls without requiring kernel debug info.
+  * sid() returns the session ID of the current process
+  * stringat() indexes a single character from a string.
+  * New script examples
+
+-------------------------------------------------------------------
+Fri May 22 09:38:19 CEST 2009 - ti...@suse.de
+
+- add missing examples installation in docs subpackage
+
+-------------------------------------------------------------------
+Wed May 20 13:02:00 CEST 2009 - ti...@suse.de
+
+- split docs and examples to docs subpackage and generate from its
+  own spec file to cut off the dependency loop
+
+-------------------------------------------------------------------
+Fri May 15 11:46:11 CEST 2009 - ti...@suse.de
+
+- split to several subpackages, systemtap-runtime, -client, -server
+  and -sdt-devel (bnc#503088).
+
+-------------------------------------------------------------------
+Fri May  8 16:43:08 CEST 2009 - ti...@suse.de
+
+- updated to released version 0.9.7:
+  * Lots of fixes, improvements, see NEWS file for details
+
+-------------------------------------------------------------------
+Thu Feb 19 16:55:48 CET 2009 - ti...@suse.de
+
+- updated to systemtap snashot 20090214:
+  * Version bump to 0.8
+  * Bunch of fixes and updates, see ChangeLog
+  * Fix for recent 2.6.29 kernels
+- fixed doc build, using fop instead of direct xmlto pdf
+
+-------------------------------------------------------------------
+Thu Feb 12 16:32:29 CET 2009 - ti...@suse.de
+
+- backport the blacklist additions from upstream to fix possible
+  system crash (bnc#459387, bnc#473277)
+
+-------------------------------------------------------------------
+Thu Feb  5 13:31:19 CET 2009 - ti...@suse.de
+
+- Backport tapset/signal.stp to fix the signal probe problem
+  (bnc#468321)
+
+-------------------------------------------------------------------
+Tue Feb  3 14:39:38 CET 2009 - ti...@suse.de
+
+- Fix debugpath.exp with $SYSTEMTAP_DEBUGINFO_PATH (bnc#471811)
+
+-------------------------------------------------------------------
+Thu Jan 29 12:58:42 CET 2009 - ti...@suse.de
+
+- Fix procfs dir_entry count warning (bnc#470526)
+- Improve the parsing of lineno checks (bnc#468247)
+
+-------------------------------------------------------------------
+Thu Jan 15 08:22:24 CET 2009 - ti...@suse.de
+
+- Fix quoting in Tcl scripts (bnc#461588)
+
+-------------------------------------------------------------------
+Mon Jan 12 12:55:06 CET 2009 - ti...@suse.de
+
+- Fix syntax errors with Tcl send_log (bnc#460886)
+
+-------------------------------------------------------------------
+Thu Dec 18 16:59:23 CET 2008 - ti...@suse.de
+
+- Fix stap failures with signal tapsets (bnc#459387)
+
+-------------------------------------------------------------------
+Tue Dec 16 13:50:32 CET 2008 - ti...@suse.de
+
+- Fix dependency on libebl1 (bnc#448331, #445783)
+- Fix stap for 2.6.28 kernels
+
+-------------------------------------------------------------------
+Fri Dec 12 16:32:35 CET 2008 - ti...@suse.de
+
+- Don't assert of dwarf_getsrcfiles().  This hits recent SUSE
+  kernels (bnc#455992)
+- Backport fix patches for stap-*-server scripts to run with
+  netcat (bnc#446686)
+
+-------------------------------------------------------------------
+Mon Dec  8 14:09:01 CET 2008 - ti...@suse.de
+
+- fixed unresolved path in man pages (bnc#457217)
+- fixed build for old distros on OBS
+
+-------------------------------------------------------------------
+Thu Dec  4 18:08:23 CET 2008 - ti...@suse.de
+
+- fix ioblock.stp for SUSE 2.6.27.x kernel (bnc#456175)
+
+-------------------------------------------------------------------
+Fri Nov 21 14:09:21 CET 2008 - ti...@suse.de
+
+- Add the bound check of parameters to fix segfault (bnc#447551)
+
+-------------------------------------------------------------------
+Tue Nov  4 13:57:24 CET 2008 - ti...@suse.de
+
+- Fix systemtap assertion with CONFIG_RELOCATABLE (bnc#440351)
+
+-------------------------------------------------------------------
+Thu Sep 11 17:14:47 CEST 2008 - ti...@suse.de
+
+- updated to snapshot 20080906
+  * Fix / clean up autotools stuff
++++ 233 more lines (skipped)
++++ between /dev/null
++++ and 
/work/SRC/openSUSE:12.2:Update/.systemtap.1416.new/systemtap-docs.changes
New Changes file:

--- /dev/null   2013-02-26 18:15:11.936010755 +0100
+++ /work/SRC/openSUSE:12.2:Update/.systemtap.1416.new/systemtap.changes        
2013-03-18 16:21:46.000000000 +0100
@@ -0,0 +1,521 @@
+-------------------------------------------------------------------
+Fri Mar  1 16:29:02 UTC 2013 - to...@suse.com
+
+- Fix kernel panic when processing malformed DWARF unwind data
+  (bnc#748564, new patch: systemtap-malformed-dwarf-unwind-data.patch
+
+-------------------------------------------------------------------
+Fri Feb 22 06:30:58 UTC 2013 - to...@suse.com
+
+- Change how systemtap looks for tracepoint header files
+  (bnc#796574, new patch: systemtap-build-source-dir.patch)
+- Add libebl1 dependancy. Systemtap manually loads libebl backends and
+  the manual Requires: was incorrectly removed in a previous revision
+  (bnc#800335)
+
+-------------------------------------------------------------------
+Tue Jan 15 08:10:33 UTC 2013 - b...@suse.com
+
+- Add systemtap-fix-cpu_possible_map.patch(bnc#798457).
+
+-------------------------------------------------------------------
+Sat Feb 18 01:33:56 UTC 2012 - to...@suse.com
+
+- Upgrade to version 1.7
+  Changelog: http://sourceware.org/ml/systemtap/2012-q1/msg00097.html
+
+-------------------------------------------------------------------
+Wed Nov 23 14:30:33 CET 2011 - a...@suse.de
+
+- Create tmpfiles during new install.
+
+-------------------------------------------------------------------
+Wed Nov  2 10:54:26 CET 2011 - jsl...@suse.de
+
+- update to 1.6
+  changes 1.5-1.6: http://sourceware.org/ml/systemtap/2011-q3/msg00105.html
+  changes 1.4-1.5: http://sourceware.org/ml/systemtap/2011-q2/msg00218.html
+
+-------------------------------------------------------------------
+Fri Aug 19 08:38:29 UTC 2011 - to...@novell.com
+
+- Fix for bnc#710291 - systemtap: fails rpmlint check non-ghost-in-var-run 
+
+-------------------------------------------------------------------
+Mon May  2 15:11:31 UTC 2011 - idoen...@novell.com
+
+- Add systemtap-1.4-gcc46.patch to fix compilation with gcc 4.6 
+
+-------------------------------------------------------------------
+Tue Mar 15 17:50:11 CET 2011 - jsl...@suse.de
+
+- add ifdef CLONE_STOPPED to fix compilation on newer kernels
+
+-------------------------------------------------------------------
+Fri Jan 21 18:46:18 UTC 2011 - to...@novell.com
+
+- Update to version 1.4
+  Changes in this release: https://lkml.org/lkml/2011/1/17/101
+  Drop patches: 
+       systemtap-hppa.diff
+       systemtap-support-2.6.36.diff
+       systemtap_fix_mod_vs_del_timer_race.patch
+       systemtap_improve_gettimeofday_stability.patch
+
+-------------------------------------------------------------------
+Fri Jan 14 14:32:11 UTC 2011 - tr...@novell.com
+
+- Hopefully fix bnc#664105:
+  Kernel segfault in kernel/timer.c - comm: stapio (process) - related to 
preloadtrace.ko
+
+-------------------------------------------------------------------
+Mon Sep 13 11:25:26 UTC 2010 - co...@novell.com
+
+- take fix for pr11940 from systemtap git
+
+-------------------------------------------------------------------
+Sun Sep  5 18:39:44 UTC 2010 - b...@novell.com
+
+- fix build for hppa
+
+-------------------------------------------------------------------
+Thu Aug 26 01:35:21 UTC 2010 - to...@novell.com
+
+- Update from version 1.1 to version 1.3 
+  Upstream release notes: 
+       1.3: http://sourceware.org/ml/systemtap/2010-q3/msg00098.html
+       1.2: http://sourceware.org/ml/systemtap/2010-q1/msg00740.html
+
+-------------------------------------------------------------------
+Wed Jul 21 12:51:32 CEST 2010 - vu...@opensuse.org
+
+- Add python Requires to sdt-devel subpackage since dtrace is a
+  python script.
+
+-------------------------------------------------------------------
+Thu Mar 11 23:56:17 UTC 2010 - to...@novell.com
+
+- Add dependancies for systemtap shell scripts (coreutils, zip, avahi)
+
+-------------------------------------------------------------------
+Thu Mar 11 22:47:15 UTC 2010 - to...@novell.com
+
+- Update to version 1.1
+- Fixes for CVE-2009-4273 (second part, also known as CVE-2010-0412) and
+  CVE-2010-0411.
+- Fix parsing error (systemtap-prevent-nested-arg.diff)
+
+-------------------------------------------------------------------
+Wed Dec  2 23:51:24 UTC 2009 - to...@novell.com
+
+- Fixes for CVE-2009-2911, BNC#548361
+
+-------------------------------------------------------------------
+Fri Oct  2 18:57:14 CEST 2009 - to...@suse.de
+
+- updated to version 1.0:
+ * SystemTap frontend (stap) changes
+   - EXPERIMENTAL support for unprivileged users.
+   - -a ARCH allows cross compiling of scripts, stap-start-server arguments
+     extended to support starting a cross compiling server
+   - Change notion of architecture to be same as kernels
+   - Support output file switching by SIGUSR2
+   - New experimental transport mechanism using ftrace's ring_buffer
+   - Reduction in memory consumption for scripts using many uprobes
+   - Support for recognizing DW_OP_{stack,implicit}_value DWARF expressions
+ * SystemTap script language changes
+   - Dwarf probes now support C++ scopes and so can be limited to classes or
+    namespaces.
+   - Preprocessor support for || and &&
+   - Probe alias names may be overloaded (multiple aliases of same name)
+ * SystemTap tapset changes
+   - Enabling semaphore now used to reduce computation overhead of dorman
+     process().mark() probes.
+   - Many functions marked as usable by unprivileged users (return global info
+     or specific to user process).
+   - New netdev tapset probe points for monitoring network traffic and device 
+     configurations.
+   - New task_backtrace function returns the current hex backtrace of any
+     arbitrary task in the system.
+   - Function is_myproc returns whether the current process is owned by user
+     which started systemtap script.
+
+-------------------------------------------------------------------
+Thu Aug 13 15:55:14 CEST 2009 - ti...@suse.de
+
+- updated to version 0.9.9:
+ * Systemwide kernel .function.return (kretprobe) maxactive overridden
+   with -DKRETACTIVE=nnn parameter.
+ * performance improvement in translation pass 2
+ * new DW_OP_call_frame_CFA handling with elfutils 0.142
+ * dwarf probes now show parameters and local variables in the verbose
+  listing mode (-L)
+ * symbol aliases are now resolved to their canonical dwarf names
+ * The syntax for dereferencing $target variables and @cast() gained new
+  capabilities
+ * For reading all probe variables, kernel.mark now supports $$vars and
+  $$parms, and process.syscall now supports $$vars.
+ * SNMP tapset for many network statistics
+ * dentry tapset to map kernel VFS directory entries to file or full
+  path names: d_path(), d_name() and reverse_path_walk().
+ * SystemTap now has userspace markers in its own binaries
+ * More to see in NEWS
+
+-------------------------------------------------------------------
+Tue Jul 21 08:47:11 CEST 2009 - ti...@suse.de
+
+- corrected to use libexecdir
+- fix summary and description
+
+-------------------------------------------------------------------
+Tue Jun 16 16:24:28 CEST 2009 - ti...@suse.de
+
+- updated to version 0.9.8:
+  * Module signing support
+  * Debuginfo suggestions when a script fails
+  * Using %M in print formats for hex dumps can now print entire
+    buffers
+  * Dwarfless syscalls: The nd_syscalls tapset is now available to
+    probe system calls without requiring kernel debug info.
+  * sid() returns the session ID of the current process
+  * stringat() indexes a single character from a string.
+  * New script examples
+
+-------------------------------------------------------------------
+Wed May 20 13:02:00 CEST 2009 - ti...@suse.de
+
+- split docs and examples to docs subpackage and generate from its
+  own spec file to cut off the dependency loop
+
+-------------------------------------------------------------------
+Fri May 15 11:46:11 CEST 2009 - ti...@suse.de
+
+- split to several subpackages, systemtap-runtime, -client, -server
+  and -sdt-devel (bnc#503088).
+
+-------------------------------------------------------------------
+Fri May  8 16:43:08 CEST 2009 - ti...@suse.de
++++ 324 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:12.2:Update/.systemtap.1416.new/systemtap.changes

New:
----
  README-BEFORE-ADDING-PATCHES
  stap-server.conf
  systemtap-1.7.tar.bz2
  systemtap-automake112.patch
  systemtap-build-source-dir.patch
  systemtap-docdir-fix.diff
  systemtap-docs-autoconf-version.diff
  systemtap-docs.changes
  systemtap-docs.spec
  systemtap-fix-cpu_possible_map.patch
  systemtap-malformed-dwarf-unwind-data.patch
  systemtap-xmlto-fop.diff
  systemtap.changes
  systemtap.spec

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ systemtap-docs.spec ++++++
#
# spec file for package systemtap-docs
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


Name:           systemtap-docs
BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  gcc-c++
BuildRequires:  libebl-devel
BuildRequires:  pkg-config
# for documents
BuildRequires:  fop
BuildRequires:  latex2html
BuildRequires:  xmlto
Version:        1.7
Release:        0
Summary:        Documents and examples for systemtap
License:        GPL-2.0+
Group:          Development/Tools/Debuggers
Url:            http://sourceware.org/systemtap/
Source:         systemtap-%{version}.tar.bz2
Source2:        README-BEFORE-ADDING-PATCHES
Patch1:         systemtap-docdir-fix.diff
Patch2:         systemtap-xmlto-fop.diff
Patch3:         systemtap-docs-autoconf-version.diff
Patch4:         systemtap-automake112.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
BuildArch:      noarch

%description
SystemTap is an instrumentation system for systems running Linux.
This package contains the documents and examples for systemtap.

%prep
%setup -n systemtap-%{version} -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1

%build
# fix interpreter
find testsuite examples -name "*.stp" | xargs -n1 sed -i -e 's, /bin/env, 
/usr/bin/env,'
find testsuite examples -type f | xargs chmod 644
autoreconf -fi
%configure --docdir=%{_docdir}/systemtap --disable-nls
make %{?jobs:-j %jobs}

%install
%makeinstall doc
# COPYING packaged by main spec
cp README AUTHORS NEWS $RPM_BUILD_ROOT%{_docdir}/systemtap/
# remove binaries and runtime stuff
rm -rf $RPM_BUILD_ROOT%{_bindir}
rm -rf $RPM_BUILD_ROOT%{_libexecdir}
rm -rf $RPM_BUILD_ROOT%{_datadir}/systemtap
rm -rf $RPM_BUILD_ROOT%{_includedir}
# these man pages are in each sub package
rm -rf $RPM_BUILD_ROOT%{_mandir}/man[178]

%clean
rm -rf ${RPM_BUILD_ROOT}

%files
%defattr(-,root,root)
%doc %{_docdir}/systemtap
%{_mandir}/man3/*

%changelog
++++++ systemtap.spec ++++++
#
# spec file for package systemtap
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


Name:           systemtap
BuildRequires:  gcc-c++
BuildRequires:  glib2-devel
BuildRequires:  libcap-devel
BuildRequires:  libebl-devel
BuildRequires:  mozilla-nspr-devel
BuildRequires:  mozilla-nss-devel
BuildRequires:  mozilla-nss-tools
BuildRequires:  pkg-config
BuildRequires:  sqlite-devel
BuildRequires:  systemd
Version:        1.7
Release:        0
Summary:        Instrumentation System
License:        GPL-2.0+
Group:          Development/Tools/Debuggers
Url:            http://sourceware.org/systemtap/
Source:         systemtap-%{version}.tar.bz2
Source2:        README-BEFORE-ADDING-PATCHES
Source3:        stap-server.conf
Patch0:         systemtap-fix-cpu_possible_map.patch
Patch1:         systemtap-build-source-dir.patch
Patch2:         systemtap-malformed-dwarf-unwind-data.patch
Obsoletes:      systemtap-client < 1.5
Requires:       %{name}-runtime = %{version}-%{release}
Requires:       libebl1
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
SystemTap is an instrumentation system for systems running Linux.
Developers can write instrumentation to collect data on the operation
of the system.

%package runtime
Summary:        Runtime environment for systemtap
Group:          Development/Tools/Debuggers

%description runtime
SystemTap is an instrumentation system for systems running Linux.
This package contains the runtime environment for systemtap programs.

%package server
Summary:        Systemtap server
Group:          Development/Tools/Debuggers
Requires:       %{name} = %{version}-%{release}
Requires(post): /bin/systemd-tmpfiles
# dependancies for systemtap shell scripts
Requires:       avahi
Requires:       avahi-utils
Requires:       coreutils
Requires:       mozilla-nss-tools
Requires:       unzip
Requires:       zip

%description server
SystemTap is an instrumentation system for systems running Linux.
This package contains the server component of systemtap.

%package sdt-devel
Summary:        Static probe support tools
Group:          Development/Tools/Debuggers
Requires:       %{name} = %{version}-%{release}
Requires:       python-base

%description sdt-devel
SystemTap is an instrumentation system for systems running Linux.
This package contains the support tools for static probes.

%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1

%build
%configure --disable-docs --docdir=%{_docdir}/systemtap
make %{?jobs:-j %jobs}

%install
%makeinstall
# XXX
rm -f $RPM_BUILD_ROOT/usr/lib/systemtap/stap-server-request
# README, AUTHORS, NEWS, man3 and all examples packaged by systemtap-docs
# COPYING needs to stay in main for GPL
rm -rf $RPM_BUILD_ROOT%{_docdir}/systemtap/
rm -rf $RPM_BUILD_ROOT%{_mandir}/man3
mkdir -p $RPM_BUILD_ROOT%{_docdir}/systemtap/
cp COPYING $RPM_BUILD_ROOT%{_docdir}/systemtap/
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/systemtap
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log
touch $RPM_BUILD_ROOT%{_localstatedir}/log/stap-server.log
# config file for stap-server (/var/run now on tmpfs)
mkdir -p $RPM_BUILD_ROOT/usr/lib/tmpfiles.d
install -m 644 %SOURCE3 $RPM_BUILD_ROOT/usr/lib/tmpfiles.d

%{find_lang} systemtap

%clean
rm -rf ${RPM_BUILD_ROOT}

%post server
# Create tmpfiles
/bin/systemd-tmpfiles --create /usr/lib/tmpfiles.d/stap-server.conf

%files
%defattr(-,root,root)
%{_bindir}/stap
%{_mandir}/man[17]/*
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/runtime
%{_datadir}/%{name}/tapset
#packaged by systemtap-initscript in upstream
%dir %{_localstatedir}/cache/systemtap

%files runtime -f systemtap.lang
%defattr(-,root,root)
%doc %{_docdir}/systemtap
%{_bindir}/staprun
%{_bindir}/stapsh
%{_bindir}/stap-merge
%{_bindir}/stap-report
%dir %{_libexecdir}/%{name}
%{_libexecdir}/%{name}/stapio
%{_libexecdir}/%{name}/stap-env
%{_libexecdir}/%{name}/stap-authorize-cert
%{_mandir}/man8/staprun.8*

%files server
%defattr(-,root,root)
%dir /usr/lib/tmpfiles.d
/usr/lib/tmpfiles.d/stap-server.conf
%{_bindir}/stap-server
%{_libexecdir}/%{name}/stap-gen-cert
%{_libexecdir}/%{name}/stap-serverd
%{_libexecdir}/%{name}/stap-sign-module
%{_libexecdir}/%{name}/stap-start-server
%{_libexecdir}/%{name}/stap-stop-server
%{_mandir}/man8/stap-server.8*
%ghost %{_localstatedir}/log/stap-server.log
%ghost %dir %{_localstatedir}/run/stap-server

%files sdt-devel
%defattr(-,root,root)
%{_bindir}/dtrace
%{_includedir}/sys/*.h

%changelog
++++++ README-BEFORE-ADDING-PATCHES ++++++
All patches need to have a patch description header similar to what is used in 
SuSE kernel git tree. Patches added without this will be reverted.  Thanks.

From: Name <email>
Subject: Summary of fix
Date: date
References: bnc#xxxxxx (bugzilla reference if applicable)
Upstream: yes (provide repo/commit-id in description) or no (provide reason)
Signed-Off-by: Name <email> (same as From: if committer is patch author)

Short paragraph describing problem/fix.

References to upstream repo-path/commit-id if applicable.
++++++ stap-server.conf ++++++
# Systemtap-server needs some files in /var/run
d /var/run/stap-server 0755 root root -
++++++ systemtap-automake112.patch ++++++
>From 5b2bc70bd7db920c50b90cea554ca93a02cdf0b2 Mon Sep 17 00:00:00 2001
From: Nitin A Kamble <nitin.a.kam...@intel.com>
Date: Tue, 8 May 2012 14:13:49 -0400
Subject: [PATCH] configury: automake 1.12 as deprecated automatic 
de-ANSI-fication support

Fix this issue with automake 1.12:

| configure.ac:23: error: automatic de-ANSI-fication support has been removed

[fche:] Note that the systemtap git repository and source releases include
autoconf- and automake-generated files, so this is only an issue for those
who have an unusual reason to regenerate them.

Signed-Off-by: Nitin A Kamble <nitin.a.kam...@intel.com>
---
 configure    |   39 ---------------------------------------
 configure.ac |    1 -
 2 files changed, 0 insertions(+), 40 deletions(-)

diff --git a/configure b/configure
index a6cd57c..89291f3 100755
--- a/configure
+++ b/configure
@@ -682,8 +682,6 @@ MSGFMT
 GETTEXT_MACRO_VERSION
 USE_NLS
 RANLIB
-ANSI2KNR
-U
 am__fastdepCXX_FALSE
 am__fastdepCXX_TRUE
 CXXDEPMODE
@@ -6449,43 +6447,6 @@ if test "$am_t" != yes; then
 fi
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for function prototypes" >&5
-$as_echo_n "checking for function prototypes... " >&6; }
-if test "$ac_cv_prog_cc_c89" != no; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-$as_echo "#define PROTOTYPES 1" >>confdefs.h
-
-
-$as_echo "#define __PROTOTYPES 1" >>confdefs.h
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-if test "$ac_cv_prog_cc_stdc" != no; then
-  U= ANSI2KNR=
-else
-  U=_ ANSI2KNR=./ansi2knr
-fi
-# Ensure some checks needed by ansi2knr itself.
-
-for ac_header in string.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "string.h" "ac_cv_header_string_h" 
"$ac_includes_default"
-if test "x$ac_cv_header_string_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_STRING_H 1
-_ACEOF
-
-fi
-
-done
-
-
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a 
program name with args.
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
diff --git a/configure.ac b/configure.ac
index 51d3960..93450d3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,7 +20,6 @@ AC_PROG_CXX
 AC_PROG_CPP
 AM_PROG_CC_STDC
 AM_PROG_CC_C_O
-AM_C_PROTOTYPES
 AC_PROG_RANLIB
 AC_OBJEXT
 AC_EXEEXT
-- 
1.7.3.4


++++++ systemtap-build-source-dir.patch ++++++
From: Tony Jones <to...@suse.de>
Subject: adjust build source dir for SuSE packaging
References: bnc#796574

kernel-$flavor:
    /lib/modules/$version-$flavor

kernel-$flavor-devel: requires kernel-source
   /usr/src/linux-$version-obj/$arch/$flavor
   /lib/modules/$version-$flavor/build -> 
/usr/src/linux-$version-obj/$arch/$flavor
   /lib/modules/$version-$flavor/source -> /usr/src/linux-$version 
[kernel-source]

kernel-flavor-debugsource:
   /usr/src/debug/kernel-$flavor/
      linux-obj/ {corresponds to /lib/modules/$version-$flavor/build}
      linux-3.0/ {mirrors kernel-source}

DW_AT_comp_dir points to debugsource/linux-obj directory but internal trace
headers are only found in linux-3.0.  Regardless, we don't want to require
debugsource as devel already requires kernel-source which provides the 
necessary headers.

---
 session.cxx |   28 ++++++++++++++++++++++++----
 1 file changed, 24 insertions(+), 4 deletions(-)

--- a/session.cxx
+++ b/session.cxx
@@ -86,6 +86,7 @@ systemtap_session::systemtap_session ():
   kernel_release = string (buf.release);
   release = kernel_release;
   kernel_build_tree = "/lib/modules/" + kernel_release + "/build";
+  kernel_source_tree = "/lib/modules/" + kernel_release + "/source";
   architecture = machine = normalize_machine(buf.machine);
 
   for (unsigned i=0; i<5; i++) perpass_verbose[i]=0;
@@ -249,6 +250,7 @@ systemtap_session::systemtap_session (co
 {
   release = kernel_release = kern;
   kernel_build_tree = "/lib/modules/" + kernel_release + "/build";
+  kernel_source_tree = "/lib/modules/" + kernel_release + "/source";
   architecture = machine = normalize_machine(arch);
   setup_kernel_release(kern.c_str());
   native_build = false; // assumed; XXX: could be computed as in 
check_options()
@@ -1375,20 +1377,38 @@ systemtap_session::setup_kernel_release
       // normal search in tapsets.cxx.  Without CONFIG_DEBUG_INFO, we'd
       // need heuristics such as this one:
 
-      string some_random_source_only_file = kernel_build_tree + "/COPYING";
+      // SUSE: if "build" link specified, attempt to determine "source" link
+      // N.B we won't match using above tapsets.cxx check
+      struct stat buf;
+      string source_tree = kernel_build_tree;
+
+      if (lstat(kernel_build_tree.c_str(), &buf) != -1 && 
S_ISLNK(buf.st_mode)) {
+       size_t pos = source_tree.find_last_of('/');
+       if (pos < source_tree.length() && source_tree.substr(pos+1, 
string::npos) == "build")
+          source_tree.replace(pos+1, string::npos, "source");
+      }
+
+retry:
+      string some_random_source_only_file = source_tree + "/COPYING";
       ifstream epic (some_random_source_only_file.c_str());
       if (! epic.fail())
         {
-          kernel_source_tree = kernel_build_tree;
+          kernel_source_tree = source_tree;
           if (verbose > 2)
             clog << _F("Located kernel source tree (COPYING) at '%s'", 
kernel_source_tree.c_str()) << endl;
-        }
+        } else if (source_tree != kernel_build_tree) {
+               // one last try using kernel_build_tree (local fs build)
+               source_tree = kernel_build_tree;
+               goto retry;
+       }
     }
   else
     {
       kernel_release = string (kstr);
-      if (!kernel_release.empty())
+      if (!kernel_release.empty()) {
         kernel_build_tree = "/lib/modules/" + kernel_release + "/build";
+        kernel_source_tree = "/lib/modules/" + kernel_release + "/source";
+      }
 
       // PR10745
       // Let's not look for the kernel_source_tree; it's definitely
++++++ systemtap-docdir-fix.diff ++++++
From: Tony Jones <to...@suse.de>
Subject: change doc install path
References: none
Upstream: never

SuSE %{_docdir} is /usr/share/doc/packages. Change install locations to match.

---
 Makefile.am                                |    2 +-
 doc/Makefile.am                            |    2 +-
 doc/SystemTap_Tapset_Reference/Makefile.am |    4 ++--
 stapex.3stap.in                            |    4 ++--
 4 files changed, 6 insertions(+), 6 deletions(-)

--- a/Makefile.am
+++ b/Makefile.am
@@ -257,7 +257,7 @@ install-data-local:
                | while read f; do if test -x $$f; then \
                        i_cmd="$(INSTALL_PROGRAM)"; else \
                        i_cmd="$(INSTALL_DATA)"; fi; \
-                       $$i_cmd -D $$f $(DESTDIR)$(docdir)/examples/$$f; done)
+                       $$i_cmd -D $$f 
$(DESTDIR)$(datadir)/doc/packages/systemtap/examples/$$f; done)
        test -e $(DESTDIR)$(sysconfdir)/systemtap || mkdir -p 
$(DESTDIR)$(sysconfdir)/systemtap
 if BUILD_SERVER
        test -e $(DESTDIR)$(localstatedir)/run/stap-server || mkdir -p 
$(DESTDIR)$(localstatedir)/run/stap-server
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -2,7 +2,7 @@
 ## process this file with automake to produce Makefile.in
 
 PDF_FILES = tutorial.pdf langref.pdf
-DOC_INSTALL_DIR = $(DESTDIR)$(datadir)/doc/systemtap
+DOC_INSTALL_DIR = $(DESTDIR)$(datadir)/doc/packages/systemtap
 SUBDIRS = SystemTap_Tapset_Reference beginners
 
 if BUILD_DOCS
--- a/doc/SystemTap_Tapset_Reference/Makefile.am
+++ b/doc/SystemTap_Tapset_Reference/Makefile.am
@@ -1,9 +1,9 @@
 # Makefile.am --- automake input file for systemtap tapset reference manual
 ## process this file with automake to produce Makefile.in
 
-DOC_INSTALL_DIR = $(DESTDIR)$(datadir)/doc/systemtap
+DOC_INSTALL_DIR = $(DESTDIR)$(datadir)/doc/packages/systemtap
 MAN_INSTALL_DIR = $(DESTDIR)$(mandir)/man3
-HTML_INSTALL_DIR = $(DESTDIR)$(datadir)/doc/systemtap/tapsets
+HTML_INSTALL_DIR = $(DOC_INSTALL_DIR)/tapsets
 
 
 ###
++++++ systemtap-docs-autoconf-version.diff ++++++
From: Tony Jones <to...@suse.de>
Subject: adjust autoconf version
References: none
Upstream: no
Signed-off-by: Tony Jones <to...@suse.de>

diff --git a/configure.ac b/configure.ac
index ce3121e..c8b90de 100644
--- a/configure.ac
+++ b/configure.ac
@@ -29,7 +29,7 @@ AC_PROG_MAKE_SET
 AC_SUBST(CFLAGS)
 AC_SUBST(CXXFLAGS)
 AM_GNU_GETTEXT(external)
-AM_GNU_GETTEXT_VERSION(0.17)
+AM_GNU_GETTEXT_VERSION(0.15)
 AC_CHECK_FUNCS(ppoll)
 
 dnl Handle the prologues option.
++++++ systemtap-fix-cpu_possible_map.patch ++++++
commit e14ac0e274c6de3fee1f74cd190ec6248f28e559
Author: David Smith <dsm...@redhat.com>
Date:   Wed Apr 11 15:01:02 2012 -0500

    Fix compile problem by changing 'stp_for_each_cpu' to 
'for_each_possible_cpu'.
    
    * runtime/runtime.h: Removed stp_for_each_cpu() macro definition, since no
      longer needed (and 'cpu_possible_map' has been removed from the upstream
      kernel).
    * runtime/map-stat.c: Replaced 'stp_for_each_cpu()' with
      'for_each_possible_cpu()'.
    * runtime/map.c: Ditto.
    * runtime/perf.c: Ditto.
    * runtime/pmap-gen.c: Ditto.
    * runtime/stat.c: Ditto.
    * runtime/transport/procfs.c: Ditto.
    * translate.cxx: Ditto.

Index: systemtap-1.7/runtime/map-stat.c
===================================================================
--- systemtap-1.7.orig/runtime/map-stat.c
+++ systemtap-1.7/runtime/map-stat.c
@@ -68,7 +68,7 @@ static PMAP _stp_pmap_new_hstat_linear (
        if (pmap) {
                int i;
                MAP m;
-               stp_for_each_cpu(i) {
+               for_each_possible_cpu(i) {
                        m = (MAP)per_cpu_ptr (pmap->map, i);
                        m->hist.type = HIST_LINEAR;
                        m->hist.start = start;
@@ -95,7 +95,7 @@ static PMAP _stp_pmap_new_hstat_log (uns
        if (pmap) {
                int i;
                MAP m;
-               stp_for_each_cpu(i) {
+               for_each_possible_cpu(i) {
                        m = (MAP)per_cpu_ptr (pmap->map, i);
                        m->hist.type = HIST_LOG;
                        m->hist.buckets = HIST_LOG_BUCKETS;
Index: systemtap-1.7/runtime/map.c
===================================================================
--- systemtap-1.7.orig/runtime/map.c
+++ systemtap-1.7/runtime/map.c
@@ -256,7 +256,7 @@ static PMAP _stp_pmap_new(unsigned max_e
 
        /* initialize the memory lists first so if allocations fail */
         /* at some point, it is easy to clean up. */
-       stp_for_each_cpu(i) {
+       for_each_possible_cpu(i) {
                m = per_cpu_ptr (map, i);
                INIT_LIST_HEAD(&m->pool);
                INIT_LIST_HEAD(&m->head);
@@ -264,7 +264,7 @@ static PMAP _stp_pmap_new(unsigned max_e
        INIT_LIST_HEAD(&pmap->agg.pool);
        INIT_LIST_HEAD(&pmap->agg.head);
 
-       stp_for_each_cpu(i) {
+       for_each_possible_cpu(i) {
                m = per_cpu_ptr (map, i);
                if (_stp_map_init(m, max_entries, type, key_size, data_size, 
i)) {
                        goto err1;
@@ -277,7 +277,7 @@ static PMAP _stp_pmap_new(unsigned max_e
        return pmap;
 
 err1:
-       stp_for_each_cpu(i) {
+       for_each_possible_cpu(i) {
                m = per_cpu_ptr (map, i);
                __stp_map_del(m);
        }
@@ -364,7 +364,7 @@ static void _stp_pmap_clear(PMAP pmap)
        if (pmap == NULL)
                return;
 
-       stp_for_each_cpu(i) {
+       for_each_possible_cpu(i) {
                MAP m = per_cpu_ptr (pmap->map, i);
 #if NEED_MAP_LOCKS
                spin_lock(&m->lock);
@@ -418,7 +418,7 @@ static void _stp_pmap_del(PMAP pmap)
        if (pmap == NULL)
                return;
 
-       stp_for_each_cpu(i) {
+       for_each_possible_cpu(i) {
                MAP m = per_cpu_ptr (pmap->map, i);
                __stp_map_del(m);
        }
@@ -748,7 +748,7 @@ static MAP _stp_pmap_agg (PMAP pmap)
        /* every time we aggregate. which would be best? */
        _stp_map_clear (agg);
 
-       stp_for_each_cpu(i) {
+       for_each_possible_cpu(i) {
                m = per_cpu_ptr (pmap->map, i);
 #if NEED_MAP_LOCKS
                spin_lock(&m->lock);
@@ -924,7 +924,7 @@ static int _stp_pmap_size (PMAP pmap)
 {
        int i, num = 0;
 
-       stp_for_each_cpu(i) {
+       for_each_possible_cpu(i) {
                MAP m = per_cpu_ptr (pmap->map, i);
                num += m->num;
        }
Index: systemtap-1.7/runtime/perf.c
===================================================================
--- systemtap-1.7.orig/runtime/perf.c
+++ systemtap-1.7/runtime/perf.c
@@ -37,7 +37,7 @@ static long _stp_perf_init (struct stap_
        }
 
        /* initialize event on each processor */
-       stp_for_each_cpu(cpu) {
+       for_each_possible_cpu(cpu) {
                struct perf_event **event = per_cpu_ptr (stp->events, cpu);
                if (cpu_is_offline(cpu)) {
                        *event = NULL;
@@ -76,7 +76,7 @@ static void _stp_perf_del (struct stap_p
        if (stp && stp->events) {
                int cpu;
                /* shut down performance event sampling */
-               stp_for_each_cpu(cpu) {
+               for_each_possible_cpu(cpu) {
                        struct perf_event **event = per_cpu_ptr (stp->events, 
cpu);
                        if (*event) {
                                perf_event_release_kernel(*event);
Index: systemtap-1.7/runtime/pmap-gen.c
===================================================================
--- systemtap-1.7.orig/runtime/pmap-gen.c
+++ systemtap-1.7/runtime/pmap-gen.c
@@ -661,7 +661,7 @@ static PMAP KEYSYM(_stp_pmap_new) (unsig
        if (pmap) {
                int i;
                MAP m;
-               stp_for_each_cpu(i) {
+               for_each_possible_cpu(i) {
                        m = (MAP)per_cpu_ptr (pmap->map, i);
                        m->get_key = KEYSYM(pmap_get_key);
                        m->copy = KEYSYM(pmap_copy_keys);
@@ -714,7 +714,7 @@ static PMAP KEYSYM(_stp_pmap_new) (unsig
        if (pmap) {
                int i;
                MAP m;
-               stp_for_each_cpu(i) {
+               for_each_possible_cpu(i) {
                        m = per_cpu_ptr (pmap->map, i);
                        m->get_key = KEYSYM(pmap_get_key);
                        m->copy = KEYSYM(pmap_copy_keys);
@@ -940,7 +940,7 @@ static VALTYPE KEYSYM(_stp_pmap_get) (PM
        }
 
        /* now total each cpu */
-       stp_for_each_cpu(cpu) {
+       for_each_possible_cpu(cpu) {
                map = per_cpu_ptr (pmap->map, cpu);
                head = &map->hashes[hv];
 
Index: systemtap-1.7/runtime/runtime.h
===================================================================
--- systemtap-1.7.orig/runtime/runtime.h
+++ systemtap-1.7/runtime/runtime.h
@@ -47,10 +47,6 @@
 #define STP_TRANSPORT_VERSION 1
 #endif
 
-#ifndef stp_for_each_cpu
-#define stp_for_each_cpu(cpu)  for_each_cpu_mask((cpu), cpu_possible_map)
-#endif
-
 #ifndef clamp
 #define clamp(val, low, high)     min(max(low, val), high)
 #endif
Index: systemtap-1.7/runtime/stat.c
===================================================================
--- systemtap-1.7.orig/runtime/stat.c
+++ systemtap-1.7/runtime/stat.c
@@ -110,7 +110,7 @@ static Stat _stp_stat_init (int type, ..
 #if NEED_STAT_LOCKS == 1
        {
                int i;
-               stp_for_each_cpu(i) {
+               for_each_possible_cpu(i) {
                        stat *sdp = per_cpu_ptr (sd, i);
                        spin_lock_init(sdp->lock);
                }
@@ -211,7 +211,7 @@ static stat *_stp_stat_get (Stat st, int
        STAT_LOCK(agg);
        _stp_stat_clear_data (st, agg);
 
-       stp_for_each_cpu(i) {
+       for_each_possible_cpu(i) {
                stat *sd = per_cpu_ptr (st->sd, i);
                STAT_LOCK(sd);
                if (sd->count) {
@@ -246,7 +246,7 @@ static stat *_stp_stat_get (Stat st, int
 static void _stp_stat_clear (Stat st)
 {
        int i;
-       stp_for_each_cpu(i) {
+       for_each_possible_cpu(i) {
                stat *sd = per_cpu_ptr (st->sd, i);
                STAT_LOCK(sd);
                _stp_stat_clear_data (st, sd);
Index: systemtap-1.7/runtime/transport/procfs.c
===================================================================
--- systemtap-1.7.orig/runtime/transport/procfs.c
+++ systemtap-1.7/runtime/transport/procfs.c
@@ -109,7 +109,7 @@ static int _stp_register_ctl_channel_fs(
 
 #ifdef STP_BULKMODE
        /* now for each cpu "n", create /proc/systemtap/module_name/n  */
-       stp_for_each_cpu(i) {
+       for_each_possible_cpu(i) {
                snprintf(buf, sizeof(buf), "%d", i);
                de = create_proc_entry(buf, 0600, _stp_proc_root);
                if (de == NULL)
@@ -141,7 +141,7 @@ err1:
 #ifdef STP_BULKMODE
        for (de = _stp_proc_root->subdir; de; de = de->next)
                _stp_kfree(de->data);
-       stp_for_each_cpu(j) {
+       for_each_possible_cpu(j) {
                if (j == i)
                        break;
                snprintf(buf, sizeof(buf), "%d", j);
@@ -167,7 +167,7 @@ static void _stp_unregister_ctl_channel_
        for (de = _stp_proc_root->subdir; de; de = de->next)
                _stp_kfree(de->data);
 
-       stp_for_each_cpu(i) {
+       for_each_possible_cpu(i) {
                snprintf(buf, sizeof(buf), "%d", i);
                remove_proc_entry(buf, _stp_proc_root);
        }
Index: systemtap-1.7/translate.cxx
===================================================================
--- systemtap-1.7.orig/translate.cxx
+++ systemtap-1.7/translate.cxx
@@ -732,7 +732,7 @@ struct mapvar
     if(wrap == true)
       {
         if(mtype == "pmap")
-          suffix = suffix + " else { stp_for_each_cpu(cpu) { MAP mp = 
per_cpu_ptr(" + value() + "->map, cpu); mp->wrap = 1; }} ";
+          suffix = suffix + " else { for_each_possible_cpu(cpu) { MAP mp = 
per_cpu_ptr(" + value() + "->map, cpu); mp->wrap = 1; }} ";
         else
           suffix = suffix + " else " + value() + "->wrap = 1;";
       }
++++++ systemtap-malformed-dwarf-unwind-data.patch ++++++
From: Mark Wielaard <m...@redhat.com>
Date: Tue Feb 21 15:08:58 2012 +0100
Subject: CVE-2012-0875: systemtap: kernel panic when processing malformed DWARF 
unwind data 
Git-commit: 64b0cff3bee6b00cb4193ed887439c66055f85b4
References: bnc#748564
Signed-off-by: Tony Jones <to...@suse.de>

    PR13714 - Make sure REG_STATE.cfa_is_expr is always set correctly.
    
    runtime/unwind.c (processCFI): Always set REG_STATE.cfa_is_expr and
    add new sanity checks to make sure the cfa definition rules are sane.
    
    Since the cfa expr pointer and cfa register/offset rule shared a union
    not setting REG_STATE.cfa_is_expr could result in compute_expr ()
    wrongly being called and using the register/offset as expr pointer.

diff --git a/runtime/unwind.c b/runtime/unwind.c
index c0fc9c2..e440177 100644
--- a/runtime/unwind.c
+++ b/runtime/unwind.c
@@ -385,6 +385,7 @@ static void set_expr_rule(uleb128_t reg, enum item_location 
where,
        uleb128_t len = get_uleb128(expr, end);
        dbug_unwind(1, "reg=%lx, where=%d, expr=%lu@%p\n",
                    reg, where, len, *expr);
+       /* Sanity check that expr falls completely inside known data. */
        if (end - *expr >= len && reg < ARRAY_SIZE(REG_STATE.regs)) {
                REG_STATE.regs[reg].where = where;
                REG_STATE.regs[reg].expr = start;
@@ -524,30 +525,46 @@ static int processCFI(const u8 *start, const u8 *end, 
unsigned long targetLoc,
                        case DW_CFA_def_cfa:
                                value = get_uleb128(&ptr.p8, end);
                                dbug_unwind(1, "map DW_CFA_def_cfa value %ld to 
reg_info idx %ld\n", value, DWARF_REG_MAP(value));
+                               REG_STATE.cfa_is_expr = 0;
                                REG_STATE.cfa.reg = value;
                                dbug_unwind(1, "DW_CFA_def_cfa reg=%ld\n", 
REG_STATE.cfa.reg);
                                /*nobreak */
                        case DW_CFA_def_cfa_offset:
-                               REG_STATE.cfa.offs = get_uleb128(&ptr.p8, end);
-                               dbug_unwind(1, "DW_CFA_def_cfa_offset 
offs=%lx\n", REG_STATE.cfa.offs);
+                               if (REG_STATE.cfa_is_expr != 0) {
+                                       _stp_warn("Unexpected 
DW_CFA_def_cfa_offset\n");
+                               } else {
+                                       REG_STATE.cfa.offs = 
get_uleb128(&ptr.p8, end);
+                                       dbug_unwind(1, "DW_CFA_def_cfa_offset 
offs=%lx\n", REG_STATE.cfa.offs);
+                               }
                                break;
                        case DW_CFA_def_cfa_sf:
                                value = get_uleb128(&ptr.p8, end);
                                dbug_unwind(1, "map DW_CFA_def_cfa_sf value %ld 
to reg_info idx %ld\n", value, DWARF_REG_MAP(value));
+                               REG_STATE.cfa_is_expr = 0;
                                REG_STATE.cfa.reg = value;
                                /*nobreak */
                        case DW_CFA_def_cfa_offset_sf:
-                               REG_STATE.cfa.offs = get_sleb128(&ptr.p8, end) 
* state->dataAlign;
-                               dbug_unwind(1, "DW_CFA_def_cfa_offset_sf 
offs=%lx\n", REG_STATE.cfa.offs);
+                               if (REG_STATE.cfa_is_expr != 0) {
+                                       _stp_warn("Unexpected 
DW_CFA_def_cfa_offset_sf\n");
+                               } else {
+                                       REG_STATE.cfa.offs = 
get_sleb128(&ptr.p8, end) * state->dataAlign;
+                                       dbug_unwind(1, 
"DW_CFA_def_cfa_offset_sf offs=%lx\n", REG_STATE.cfa.offs);
+                               }
                                break;
                        case DW_CFA_def_cfa_register:
-                               value = get_uleb128(&ptr.p8, end);
-                               dbug_unwind(1, "map DW_CFA_def_cfa_register 
value %ld to reg_info idx %ld\n", value, DWARF_REG_MAP(value));
-                               REG_STATE.cfa.reg = value;
+                               if (REG_STATE.cfa_is_expr != 0) {
+                                       _stp_warn("Unexpected 
DW_CFA_def_cfa_register\n");
+                               } else {
+                                       value = get_uleb128(&ptr.p8, end);
+                                       dbug_unwind(1, "map 
DW_CFA_def_cfa_register value %ld to reg_info idx %ld\n", value, 
DWARF_REG_MAP(value));
+                                       REG_STATE.cfa.reg = value;
+                               }
                                break;
                        case DW_CFA_def_cfa_expression: {
                                const u8 *cfa_expr = ptr.p8;
                                value = get_uleb128(&ptr.p8, end);
+                               /* Sanity check that cfa_expr falls completely
+                                  inside known data. */
                                if (ptr.p8 < end && end - ptr.p8 >= value) {
                                        REG_STATE.cfa_is_expr = 1;
                                        REG_STATE.cfa_expr = cfa_expr;
@@ -801,6 +818,7 @@ static int compute_expr(const u8 *expr, struct 
unwind_frame_info *frame,
 {
        /*
         * We previously validated the length, so we won't read off the end.
+        * See sanity checks in set_expr() and for DW_CFA_def_cfa_expression.
         */
        uleb128_t len = get_uleb128(&expr, (const u8 *) -1UL);
        const u8 *const start = expr;
++++++ systemtap-xmlto-fop.diff ++++++
---
 doc/SystemTap_Tapset_Reference/Makefile.am |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

--- a/doc/SystemTap_Tapset_Reference/Makefile.am
+++ b/doc/SystemTap_Tapset_Reference/Makefile.am
@@ -43,7 +43,9 @@ stamp-htmldocs: tapsets.xml
 
 # bump up the allocated space so "xmlto pdf" works
 tapsets.pdf: tapsets.xml
-       env pool_size=3000000 hash_extra=3000000 xmlto $(XMLTOPDFPARAMS) pdf 
tapsets.xml >/dev/null 2>&1
+#      env pool_size=3000000 hash_extra=3000000 xmlto $(XMLTOPDFPARAMS) pdf 
tapsets.xml >/dev/null 2>&1
+       xmlto fo tapsets.xml
+       fop tapsets.fo tapsets.pdf
 
 stamp-mandocs: tapsets.xml
        xmlto $(XMLTOMANPARAMS) man -o man3 tapsets.xml >/dev/null 2>&1
-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to