Project import
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..490e7c9
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,134 @@
+#
+#    Copyright (c) 2012 Nest Labs, Inc.
+#    All rights reserved.
+#
+#    This document is the property of Nest. It is considered
+#    confidential and proprietary information.
+#
+#    This document may not be reproduced or transmitted in any form,
+#    in whole or in part, without the express written permission of
+#    Nest.
+#
+#    Description:
+#      This file is the make file for oprofile, a performance
+#      profiling tool for Linux systems, capable of profiling all
+#      running code at low overhead.
+#
+
+BuildConfigSpecialized	:= No
+BuildProductSpecialized	:= No
+
+include pre.mak
+
+PackageName		:= oprofile
+
+PackageExtension	:= tar.gz
+PackageSeparator	:= -
+
+PackagePatchArgs	:= -p1
+
+PackageArchive		:= $(PackageName).$(PackageExtension)
+PackageSourceDir	:= $(PackageName)$(PackageSeparator)$(PackageVersion)
+
+PackageBuildMakefile	= $(call GenerateBuildPaths,Makefile)
+
+LicenseSourceFile	:= $(PackageSourceDir)/COPYING
+
+CleanPaths		+= $(PackageLicenseFile)
+
+BinutilsDir		:= sw/tps/binutils
+BinutilsIncDir		:= $(call GenerateResultPaths,$(BinutilsDir),usr/include)
+BinutilsLibDir		:= $(call GenerateResultPaths,$(BinutilsDir),usr/lib)
+
+LinuxDir		:= sw/tps/linux
+LinuxIncDir		:= $(call GenerateResultPaths,$(LinuxDir),include)
+
+PoptDir			:= sw/tps/popt
+PoptIncDir		:= $(call GenerateResultPaths,$(PoptDir),usr/include)
+PoptLibDir		:= $(call GenerateResultPaths,$(PoptDir),usr/lib)
+
+ZlibDir			:= sw/tps/zlib
+ZlibIncDir      	:= $(call GenerateResultPaths,$(ZlibDir),usr/include)
+ZlibLibDir      	:= $(call GenerateResultPaths,$(ZlibDir),usr/lib)
+
+all: $(PackageDefaultGoal)
+
+# Generate the package license contents.
+
+$(LicenseSourceFile): source
+
+$(PackageLicenseFile): $(LicenseSourceFile)
+	$(copy-result)
+
+# Extract the source from the archive and apply patches, if any.
+
+$(PackageSourceDir): $(PackageArchive) $(PackagePatchPaths)
+	$(expand-and-patch-package)
+
+# Prepare the sources.
+
+.PHONY: source
+source: | $(PackageSourceDir)
+
+# Patch the sources, if necessary.
+
+.PHONY: patch
+patch: source
+
+# Generate the package build makefile.
+
+$(PackageBuildMakefile): | $(PackageSourceDir) $(BuildDirectory) $(ResultDirectory)
+	$(Verbose)cd $(BuildDirectory) && \
+	$(CURDIR)/$(PackageSourceDir)/configure \
+	CC="$(CC)" CXX="$(CXX)" AR=$(AR) NM=$(NM) RANLIB=$(RANLIB) STRIP=$(STRIP) \
+	CPPFLAGS="$(call ToolGenerateIncludeArgument,$(BinutilsIncDir)) \
+	$(call ToolGenerateIncludeArgument,$(LinuxIncDir)) \
+	$(call ToolGenerateIncludeArgument,$(PoptIncDir)) \
+	$(call ToolGenerateIncludeArgument,$(ZlibIncDir)) \
+	$(OprofileCFlags)" \
+	LDFLAGS="$(call ToolGenerateLibraryPathArgument,$(BinutilsLibDir)) \
+	$(call ToolGenerateLibraryPathArgument,$(PoptLibDir)) \
+	$(call ToolGenerateLibraryPathArgument,$(ZlibLibDir))" \
+	INSTALL="$(INSTALL) $(INSTALLFLAGS)" \
+	--build=$(HostTuple) \
+	--host=$(TargetTuple) \
+	--prefix=/usr \
+	--sysconfdir=/etc \
+	--localstatedir=/var \
+	--disable-gui \
+	--with-kernel-support \
+	--without-x \
+	--disable-static
+
+# Configure the source for building.
+
+.PHONY: configure
+configure: source $(PackageBuildMakefile)
+
+# Build the source.
+#
+# We have to unset MAKEFLAGS since they confuse the package build otherwise.
+
+.PHONY: build
+build: configure
+	$(Verbose)unset MAKEFLAGS && \
+	$(MAKE) $(JOBSFLAG) -C $(BuildDirectory) \
+	all
+
+# Stage the build to a temporary installation area.
+#
+# We have to unset MAKEFLAGS since they confuse the package build otherwise.
+
+.PHONY: stage
+stage: build | $(ResultDirectory)
+	$(Verbose)unset MAKEFLAGS && \
+	$(MAKE) $(JOBSFLAG) -C $(BuildDirectory) \
+	DESTDIR=$(ResultDirectory) \
+	install
+
+clean:
+	$(Verbose)$(RM) $(RMFLAGS) -r $(PackageSourceDir)
+	$(Verbose)$(RM) $(RMFLAGS) -r $(BuildDirectory)
+	$(Verbose)$(RM) $(RMFLAGS) -r $(ResultDirectory)
+
+include post.mak
diff --git a/oprofile-0.9.7/COPYING b/oprofile-0.9.7/COPYING
new file mode 100644
index 0000000..d60c31a
--- /dev/null
+++ b/oprofile-0.9.7/COPYING
@@ -0,0 +1,340 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/oprofile-0.9.7/ChangeLog-2001 b/oprofile-0.9.7/ChangeLog-2001
new file mode 100644
index 0000000..acc5be4
--- /dev/null
+++ b/oprofile-0.9.7/ChangeLog-2001
@@ -0,0 +1,2327 @@
+2001-12-31  Philippe Elie  <ph_e@club-internet.fr>
+
+	* module/op_init.c:
+	* module/oprofile.c: export cpu type preparing for user space
+	  cpu detection change
+	* module/oprofile.h: preparatory work to add support for
+	  preempt patch
+
+	* pp/oprofpp.cpp: cleanup #if 0 ... #else ... #endif
+	* pp/orofpp_util.cpp: allow to deduce image name from
+	  shared lib samples files name produced with
+	  --separate-samples
+
+	* gui/oprof_start.cpp: minor fix
+
+2001-12-31  John Levon  <moz@compsoc.man.ac.uk>
+
+	* various files: use op_cpu enum for cpu type
+ 
+	* all .cvsignore:
+	* Rules.make.in:
+	* all Makefile.in: hide .d files in .deps directories
+
+2001-12-31  John Levon  <moz@compsoc.man.ac.uk>
+
+	* Makefile.in: move config.h.in to maintainerclean - it is included
+	in a tarball so a distclean shouldn't remove it
+ 
+2001-12-31  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+ 
+	* gui/ui/oprof_start.base.ui:
+	* doc/oprofile.sgml:
+	* doc/oprofile.1.in: small updates
+ 
+	* oprofile.c: more detail on locking requirements for wake_up
+ 
+2001-12-31  Michel Dagenais  <michel.dagenais@polymtl.ca>
+
+	* gui/oprof_start.cpp:
+	* gui/oprof_start.h: show total samples so far
+ 
+2001-12-29  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/oprofiled.c:
+	* dae/op_start: --separate-samples is working
+
+	* gui/oprof_start.cpp:
+	* gui/oprof_start_config.cpp:
+	* gui/oprof_start_config.h:
+	* gui/ui/oprof_start.base.ui: handle separating for
+	  shared libs, off by default.
+
+	* doc/oprofile.sgml:
+	* doc/oprofile.1.in: document --show-shared-libs
+
+	* pp/opf_filter.h:
+	* pp/opf_container.cpp: new class samples_files_t
+	  to easier access to subset of symbols/samples or
+	  source filename from multiple image
+
+	* pp/Makefile.in:
+	* pp/op_time.cpp:
+	* pp/opf_filter.cpp:
+	* pp/oprofpp.cpp:
+	* pp/oprofpp.h:
+	* pp/oprofpp_util.cpp: implement --show-shared-libs except
+	  for opf_filter
+
+	* util/file_manip.h:
+	* util/file_manip.cpp: new function to manipulate sample
+	  file name and list of sample file name.
+
+2001-12-27  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/op_stop: always do an op_dump before stopping
+	* gui/oprof_start.cpp: op_dump before op_stop
+	  no longer required
+
+2001-12-26  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/opf_filter.cpp:
+	* pp/opf_filter.h:
+	* pp/oprofpp.h:
+	* pp/opf_filter.cpp:	
+	* pp/oprofpp_util.cpp:
+	* pp/oprofpp.cpp:
+	* pp/op_time.c: remove some use of global var
+	  samplefile and imagefile
+
+	* pp/oprofpp.cpp: do_dump_gprof() free memory
+	  too soon. (was bugged from 2001-12-05)
+
+	* doc/oprofile.sgml: remove mention about oprof-thread
+
+2001-12-23  Philippe Elie  <ph_e@club-internet.fr>
+
+	* util/string_manip.h:
+	* util/string_manip.cpp: separate_token() new function
+
+	* pp/opf_filter.cpp:
+	* pp/oprofpp.cpp:
+	* pp/oprofpp.h:
+	* pp/oprofpp_util.cpp:
+	* doc/oprofil.1.in:
+	* doc/oprofile.sgml: add support for --exclude-symbol
+
+	* TODO: update
+
+2001-12-22  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/op_start: add --separate-samples
+	* dae/oprofiled.c: ditto
+	* dae/opd_proc.c:
+	* dae/opd_util.h:
+	* dae/opd_util.c:
+	* dae/oprofiled.h: implementation of above
+	* pp/op_time.cpp: 
+	* doc/oprofile.1.in:
+	* doc/oprfile.sgml: handle and document above
+	* pp/oprofpp_util.cpp: minor change related
+
+	* dae/oprofiled.c: bug fix while blocking signal
+
+	* doc/Makefile.in: avoid unecessary build of html doc
+
+2001-12-22  Dave Jones <davej@suse.de>
+
+	* config.h.in: Readd to CVS.
+
+2001-12-18  Dave Jones <davej@suse.de>
+
+	* Makefile.in: Make documentation build again.
+
+2001-12-14  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/opd_proc.c: memory leak fix in opd_init_images()
+
+2001-12-12  Philippe Elie  <ph_e@club-internet.fr>
+
+	* module/oprofile.h: change slightly op_hash()
+
+	* util/file_manip.h:
+	* util/file_manip.cpp:
+	* util/string_manip.h:
+	* util/string_manip.cpp:
+	* util/child_reader.h:
+	* util/child_reader.cpp: cleanup John's FIXME
+
+	* dae/opd_util.h:
+	* dae/opd_util.c: move libiberty things to ...
+	* util/misc.h:
+	* util/misc.c: here
+	* util/Makefile.in: update
+	* dae/Makefile.in:
+	* pp/Makefile.in:
+
+	* doc/Makefile.in: install the html doc
+
+2001-12-10  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/oprofiled.c: fix sigprocmask() blooper
+ 
+2001-12-09  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update again
+ 
+	* util/child_reader.h:
+	* util/child_reader.cpp: 
+	* util/file_manip.cpp:
+	* util/string_manip.cpp: pedantic cleanup + FIXMEs
+
+2001-12-09  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: add FIXME comment
+
+	* util/file_manip.h: add FIXME comment, 
+	  avoid warning with //
+ 
+2001-12-09  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+2001-12-09  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/opd_proc.c: verbprintf() what cause the
+	  deletion of a sample file + minor cleanup
+	* doc/oprofile.sgml: document samples files backup
+
+2001-12-07  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/oprofiled.h:
+	* dae/opd_proc.c: handle an accessed field of
+	  deleted of deleted procs to defer deleting
+	  the procs. This greatly reduce the Nr of lost
+	  samples due to no proc information.
+
+2001-12-06  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/oprofiled.h:
+	* dae/opd_proc.c: separate stats for kernel
+	  and modules address space and minor cleanup
+
+2001-12-05  Philippe Elie  <ph_e@club-internet.fr>
+
+	* Rules.make.in:
+	* dae/Makefile.in:
+	* events/Makefile.in:
+	* pp/Makefile.in: 
+	* util/Makefile.in: tidy
+	* module/Makefile.in:
+	* gui/Makefile.in: use auto-deps
+
+	* util/child_reader.h: allow to compile with -ansi
+	* util/child_reader.cpp: fix memory leak fix
+	* pp/oprofpp.cpp: fix memory leak
+
+	* TODO: update
+
+2001-12-05  Philippe Elie  <ph_e@club-internet.fr>
+
+	* autogen.sh: use autoheader to create config.h
+	* configure.in: handle missing libiberty.h and
+	  missing xcalloc in libiberty.a
+	* dae/opd_util.cpp:
+	* dae/opd_proc.c: 
+	* dae/opd_util.h:
+	* dae/oprofiled.c:
+	* evets/Makefile.in
+	* pp/oprof_convert.c:
+	* pp/oprofpp.cpp:
+	* pp/oprofpp_util.cpp: replace opd_malloc() and related
+	  by xmalloc.
+	* util/op_popt.c: add call to xmalloc_set_program_name()
+	* ./cvsignore: add config.h, config.h.in
+
+2001-12-04  Dave Jones <davej@suse.de>
+
+	* events/op_events_desc.c:
+	  Add recognition for alternative PIII string.
+	  Reported by Lev Iserovich <lev@ciprico.com>
+	
+2001-12-04  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/opd_util.c:
+	* dae/opd_util.c: move common fuctionnality to ...
+	* util/file_manip.h
+	* util/file_manip.c: here
+	* pp/oprof_convert.c: reflect above change
+	* pp/oprof_convert.c:
+	* pp/opf_filter.cpp: ditto + minor cleanup
+	* gui/Makefile.in:
+	* pp/Makefile.in: reflect above change
+
+2001-12-02  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/oprofpp.h:
+	* pp/oprofpp.cpp:
+	* pp/oprofpp_util.cpp:
+	* pp/opf_filter.cpp: small tidies
+
+2001-12-01  Philippe Elie  <ph_e@club-internet.fr>
+
+	* Makefile.in: build util sub-dir first
+
+	* dae/opd_util.h:
+	* dae/opd_util.c: move opd_GetContext() ...
+	* util/opd_popt.h:
+	* util/opd_popt.c: in these new files
+
+	* pp/oprofpp.cpp:
+	* pp/opf_filter.cpp:
+	* pp/op_time.cpp:
+	* dae/oprofiled.c: free the poptContext + cleanup popt
+
+	* events/op_help.c:
+	* events/Makefile.in: use the popt library
+
+	* pp/oprofpp.cpp: allow to use --output-linenr-info with
+	  --list-symbols.
+	* doc/oprofile.1.in:
+	* doc/oprofile.sgml: reflect it
+
+2001-12-01  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/opd_proc.c:
+	* dae/opd_util.c:
+	* dae/opd_util.h:
+	* dae/oprofiled.c: backup if needed old samples files
+	  in a separate directory
+
+	* pp/oprofpp.h:
+	* pp/oprofpp_util.cpp: cleanup + minor buglet fix
+
+	* util/file_manip.h:
+	* util/file_manip.cpp: create_file_list() new to create
+	  a list of all the file in a directory
+
+	* pp/op_time.cpp: new utility
+	* pp/Makefile.in: handle op_time
+
+	* doc/oprofile.sgml: 
+	* doc/oprofile.1.in: Document op_time
+
+2001-11-30  Philippe Elie  <ph_e@club-internet.fr>
+
+	* configure.in: cvs add Rules.make.in.
+
+2001-11-30  Dave Jones <davej@suse.de>
+
+	* configure.in: suppress reference to an inexistant
+	  Rules.make.in
+
+2001-11-29  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/oprofpp_util.cpp: do not remove leading underscore to
+	  avoid C++ demangling failure
+
+2001-11-27  Philippe Elie  <ph_e@club-internet.fr>
+
+	* configure.in:
+	* pp/Makefile.in: work-around for gcc 3.0 and bfd pre-1998
+
+	* doc/oprofile.sgml: typo
+
+2001-11-26  Philippe Elie  <ph_e@club-internet.fr>
+
+	* Rules.make.in: new to add autodeps and share commons
+	  definitions
+	* all Makefile.in except module, gui: use autodeps
+
+	* doc/oprofile.1.in: typo
+
+	* util/filemanip.h: missing std::
+
+2001-11-25  Philippe Elie  <ph_e@club-internet.fr>
+
+	* oprofile-tests/understanding/persistent.cpp: new
+	* util/persistent.h: new. An attempt to provide a better
+	  configuration saving/restoring library. Not yet linked to
+	  oprof_start.
+
+2001-11-22  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/oprofpp_util.cpp: take care than get_linenr() get
+	  line nr and filename info from bfd for the right symbol
+	  and not for the nearest symbol with debug info (#484660)
+
+2001-11-15  Philippe Elie  <ph_e@club-internet.fr>
+
+	* module/oprofile.h: work around against a gcc
+	  2.91.66 code generation bug in oprof_exit()
+
+2001-11-14  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/op_start: do not pass bufsize, note_bufsize and
+	  kernel_only as option to the daemon but ...
+	* dae/oprofiled.c: read them from sysctl
+
+	* dae/opd_proc.c: in opd_handle_old_sample_file() do not
+	  delete sample file if mtime differ but backup it.
+
+	* doc/oprofile.sgml:
+	* pp/oprof_convert.c:
+	* pp/oprofpp_util.cpp: replace session number by
+	  backup number
+
+	* util/string_manip.cpp: fix stupid bug in rtrim()
+
+2001-11-13  Philippe Elie  <ph_e@club-internet.fr>
+
+	* gui/oprof_start.h:
+	* gui/oprof_start.cpp:
+	* dae/opd_util.h:
+	* dae/opd_util.cpp: small cleanup
+
+	* module/oprofile.c: simplify a little what the
+	  nmi handler
+
+	* doc/oprofile.sgml: clarify op_to_source options
+
+	* pp/child_reader.cpp:
+	* pp/child_reader.h: move these ...
+	* util/child_reader.cpp:
+	* util/child_reader.h: here
+	* util/file_manip.h:
+	* util/file_manip.cpp: new
+	* gui/Makefile.in:
+	* gui/oprof_start_util.h:
+	* gui/oprof_start_util.cpp:
+	* pp/Makefile.in:
+	* pp/opf_filter.cpp: use child_reader and file_manip
+
+	* pp/oprofpp_util.cpp: change ordering of opening in
+	  opp_bfd ctr to avoid cryptic error message
+
+	* TODO: update
+
+2001-11-12  Philippe Elie  <ph_e@club-internet.fr>
+
+	* events: new directory
+
+	* events/Makefile.in:
+	* events/op_events.c:
+	* events/op_events_desc.c:
+	* events/op_help.c: new, splitted from op_events.c
+
+	* pp/oprofpp_util.cpp: new, splitted from oprofpp.cpp
+
+	* pp/oprofpp.h:
+	* pp/oprofpp.c:
+	* op_user.h:
+	* all Makefile.in: update
+	* op_events.c: remove
+
+2001-11-12  Philippe Elie  <ph_e@club-internet.fr>
+
+	* op_events.c: last commit was bad
+	
+	* pp/oprofpp.c: use sstream
+
+2001-11-12  Philippe Elie  <ph_e@club-internet.fr>
+
+	* util: new directory
+	* util/string_manip.cpp:
+	* util/string_manip.h: new
+	* Makefile.in: handle util directory
+	* pp/Makefile.in:
+	* pp/opf_filter.h:
+	* pp/opf_filter.cpp:
+	* gui/Makefile.in:
+	* gui/oprof_start_util.cpp:
+	* gui/oprof_start_util.h: update to use string_manip.cpp
+
+	* op_events.c:
+	* op_user.h:
+	* pp/opf_filter.h:
+	* pp/opf_filter.cpp:
+	* pp/opf_container.cpp: remove dead code
+
+2001-11-11  Dave Jones <davej@suse.de>
+
+	* module/oprofile.[c|h]: Change MSR defines from
+	  MSR_IA32_xxx from MSR_P6_xxx, based on info on
+	  Linux kernel from Mikael Pettersson that these MSRs
+	  don't exist on Pentium 4.
+
+2001-11-11  Philippe Elie  <ph_e@club-internet.fr>
+
+	* gui/oprof_start.cpp: fix record_config()
+
+	* op_user.h: fix one comment
+
+2001-11-10  Bob Montgomery  <bob_montgomery@hp.com>
+
+	* module/oprofile.c: fix pid/pgrp filter to reset counter 
+
+2001-11-08  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* configure.in: bump to 0.0.8cvs
+ 
+2001-11-07  John Levon  <moz@compsoc.man.ac.uk>
+
+	* acinclude.m4:
+	* configure.in: fixes for configuration when Qt2 not found
+
+	* child_reader.h:
+	* child_reader.cpp: compile with gcc 3.0
+ 
+2001-11-07  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: bump to 0.0.7
+ 
+2001-11-07  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in:
+	* module/oprofile.h:
+	* module/oprofile.c: fail if hard_get_current() exists
+	  - this won't work
+ 
+2001-11-06  Philippe Elie  <ph_e@club-internet.fr>
+
+	* doc/oprofile.1.in: reformat options
+	* doc/oprofile.sgml: clarify options that require argument.
+	  Document short option
+
+	* gui/oprof_start_util.cpp: fix basename()
+
+	* pp/oprofpp.cpp:
+	* pp/oprofpp.h:
+	* pp/opf_filter.cpp: better options handling
+
+	* module/oprofile.c: update one comment
+
+	* TODO: update
+
+2001-11-06  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in:
+	* module/oprofile.h:
+	* module/oprofile.c: support for hard_get_current()
+ 
+2001-11-06  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/oprofile.h:
+	* module/oprofile.c: make allow_unload exist for UP
+	  too (default to 1)
+ 
+2001-11-05  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* module/oprofile.c: fix nr_interrupts sysctl
+
+2001-11-04  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/op_start:
+	* gui/oprof_start.cpp:
+	* gui/oprof_start_config.cpp:
+	* gui/oprof_start_config.h:
+	* gui/ui/oprof_start.base.ui: handle note table size sysctl
+
+	* module/op_syscalls.c: handle dname hash coding collision with
+	  a linear search.
+
+	* module/oprofile.c:
+	* module/oprofile.h:
+	* module/op_syscalls.c: Use a struct to hold the whole
+	  sysctl settable things rather global var.
+
+2001-11-03  Philippe Elie  <ph_e@club-internet.fr>
+
+	* modules/oprofile.h: add a sysctl struct to hold
+	  all sysctl set-able variable
+	
+	* modules/oprofile.c: two bugs fixes.
+
+2001-11-02  Philippe Elie  <ph_e@club-internet.fr>
+
+	* modules/oprofile.h: minor cleanup
+	* modules/oprofile.c: better handling of irq statistics
+
+2001-10-31  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/oprofile.c: add comment about unfixable
+	  races.
+ 
+2001-10-30  John Levon  <moz@compsoc.man.ac.uk>
+
+	* Move module code into module/ subdir. Bye
+	  bye CVS history :/
+ 
+2001-10-30  John Levon  <moz@compsoc.man.ac.uk>
+
+	* op_x86.c: complain properly about lAPIC-less
+	  machines
+ 
+2001-10-26  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+ 
+2001-10-26  H. J. Lu <hjl@users.sf.net>
+
+	* Makefile.in: use $(LD) not ld
+ 
+2001-10-25  Philippe Elie  <ph_e@club-internet.fr>
+
+	* configure.in: fix version.h checking for gcc 2.91.66
+
+2001-10-25  John Levon  <moz@compsoc.man.ac.uk>
+
+	* Makefile.in:
+	* doc/Makefile.in:
+	* dae/Makefile.in:
+	* pp/Makefile.in:
+	* gui/Makefile.in: add $DESTDIR to prefix (part from
+	  H.J. Lu)
+
+2001-10-25  H. J. Lu  <hjl@users.sf.net>
+
+	* configure.in: better version.h workaround
+
+	* doc/*.1:
+	* doc/Makefile.in: better .so manpage install
+
+2001-10-25  Philippe Elie  <ph_e@club-internet.fr>
+
+	* doc/oprofile.sgml: minor change.
+	* pp/opf_filter.cpp: repair short option -a and -s
+
+2001-10-24  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/op_to_source: remove from cvs
+	* pp/Makefile.in: opf_filter application renamed to op_to_source
+	* pp/child_reader.h: new
+	* pp/child_reader.cpp: new, allow to fork a child and read
+	  its stdout/stderr
+	* pp/opf_filter.h:
+	* pp/opf_filter.cpp: use child_reader to launch objdump.
+	  op_to_source -a and -s must be specified with long
+	  form --assembly and --source-with-assembly. This also
+	  speed-up assembly output. Doc not updated.
+
+2001-10-18  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: workaround #2, hopefully fixing
+	  Mandrake (bug #471448)
+ 
+2001-10-17  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.c: don't mask when restoring MSR values
+ 
+	* doc/Makefile.in: don't use man symlinks
+ 
+2001-10-17  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.c: save original counter setup
+	  and restore on unload (bug #464094)
+
+2001-10-16  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in:
+	* oprofile.h: workaround for Mandrake randomly
+	  back-porting things.
+ 
+2001-10-16  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/opd_proc.c:
+	* gui/oprof_start.cpp:
+	* gui/oprof_start_config.cpp:
+	* gui/oprof_start_config.h:
+	* gui/oprof_start_util.cpp:
+	* pp/opf_container.cpp:
+	* pp/opf_filter.h:
+	* pp/opf_filter.cpp:
+	* pp/oprof_convert.cpp: add note device to gui,
+	  general cleanup
+	 
+2001-10-16  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.h: fix likely() macro
+ 
+2001-10-14  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+ 
+	* op_syscalls.c:
+	* op_user.h:
+	* oprofile.h:
+	* oprofile.c:
+	* dae/op_start:
+	* dae/opd_proc.c:
+	* dae/oprofiled.h:
+	* dae/oprofiled.c: use a separate map buffer.
+ 
+2001-10-14  John Levon  <moz@compsoc.man.ac.uk>
+
+	* acinclude.m4: don't give up if we can't find moc
+ 
+2001-10-14  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.c: merge no-thread code
+ 
+2001-10-14  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/opd_proc.c:
+	* dae/oprofiled.c:
+	* op_user.h:
+	* oprofile.h:
+	* op_syscalls.c: use string pool. Prime hash table
+	  with common entries. Consider parent in name_hash.
+ 
+2001-10-13  Philippe Elie  <ph_e@club-internet.fr>
+
+	* doc/oprofile.sgml: minor change
+	* pp/opf_filter.cpp: better warning
+
+2001-10-13  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: 0.0.6 has been released -> 0.0.7cvs
+ 
+2001-10-12  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* doc/oprofile.sgml: new docs for annotation filter
+ 
+2001-10-12  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/opf_filter.cpp: make output filters more like diff (needs doc),
+	  briefer info message
+ 
+2001-10-12  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/Makefile.in: add FIXME
+
+	* gui/oprof_start.cpp: fix std::
+
+	* acinclude.m4: more fixes
+ 
+2001-10-12  Philippe Elie  <ph_e@club-internet.fr>
+
+	* gui/oprof_start_util.cpp: use select() rather non-blocking
+	  mode to read output from the child process
+
+2001-10-11  Philippe Elie  <ph_e@club-internet.fr>
+
+	* doc/oprofile.sgml:
+	* doc/oprofile.1.in:
+	* pp/opf_filter: make --output and --no-output more intuitive
+
+2001-10-09  Philippe Elie  <ph_e@club-internet.fr>
+
+	* doc/oprofile.sgml:
+	* doc/oprofile.1.in: clarify doc
+	* pp/opf_filter.cpp: corner case fix in --output-dir and
+	  --source-dir handling.
+
+2001-10-08  John Levon  <moz@compsoc.man.ac.uk>
+
+	* acinclude.m4:
+	* configure.in:
+	* gui/Makefile.in: fix idiot config bug of mine
+ 
+2001-10-06  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/opf_filter.cpp:
+	* pp/op_to_source: small cleanup
+
+2001-10-05  Philippe Elie  <ph_e@club-internet.fr>
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.sgml:
+	* pp/op_to_source:
+	* pp/opf_filter.cpp: implement --output and --no-output to
+ 	  allow output file generation filtering
+
+2001-10-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+ 
+2001-10-03  Philippe Elie  <ph_e@club-internet.fr>
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.sgml:
+	* pp/op_to_source:
+	* pp/opf_filter.cpp: implement --source-dir and --output-dir
+	  to generated separated annoted source file.
+
+2001-10-03  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/oprofpp.cpp
+	* pp/oprofpp.h
+	* pp/opf_filter.cpp: minor cleanup
+
+2001-10-03  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* Makefile.in: remove generated files on make distclean
+
+	* acinclude.m4: update from source
+ 
+2001-10-02  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/oprofpp.cpp: fix a silly bug in do_list_symbols (oprofpp -l)
+
+2001-10-02  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/oprofile.sgml: fix
+
+	* Makefile.in: dist fix
+ 
+2001-10-02  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* configure.in: -> 0.0.5 for release
+ 
+2001-10-01  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/opf_container.cpp:
+	* pp/opf_filter.h: comment
+	* pp/opf_filter.cpp: speed-up
+
+2001-09-30  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/opf_container.cpp:
+	* pp/opf_filter.cpp:
+	* pp/oprofpp.cpp:
+	* pp/oprofpp.h: cleanup
+
+2001-09-30  Philippe Elie  <ph_e@club-internet.fr>
+
+	* gui/oprof_start.cpp:
+	* gui/oprof_start.h:
+	* gui/ui/oprof_start.base.ui: cleanup
+
+2001-09-29  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/opf_filter.cpp: check if we need debug info to work.
+
+	* gui/oprof_start.cpp: use one config file by counter. Store
+	  selected counter in oprof_start_config
+
+	* gui/oprof_start.cpp:
+	* gui/persistent_config.h: remove dirty flag in 
+	  persistent_config_t template class
+
+2001-09-29  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+ 
+	* gui/oprof_start.cpp:
+	* gui/ui/oprof_start_base.ui:
+	* gui/oprof_start_config.h:
+	* gui/oprof_start_config.cpp: add verbose option
+ 
+	* pp/opf_container.cpp:
+	* pp/opf_filter.cpp: some FIXMEs and little cleanups
+ 
+2001-09-29  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/oprofpp.cpp: bug fix when calling the bfd lib.
+
+2001-09-29  Philippe Elie  <ph_e@club-internet.fr>
+
+	* gui/oprof_start.cpp: two minor fixes.
+
+2001-09-28  John Levon  <moz@compsoc.man.ac.uk>
+
+	* various files: the footer is now a header !
+
+	* dae/opd_start.c: fix msync !!
+
+	* gui/oprof_start.cpp:
+	* gui/oprof_start_util.h:
+	* gui/oprof_start_util.cpp: better default event count
+	  value. Save CPU type to oprofile file.
+
+2001-09-28  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/opf_filter.c: fix op_to_source [-a] [-s]
+
+2001-09-28  Philippe Elie  <ph_e@club-internet.fr>
+
+	* doc/oprofile.sgml: oops, correct bad merging with
+ 	  John's last update.
+
+2001-09-27  Philippe Elie  <ph_e@club-internet.fr>
+
+	* doc/oprofile.1.in: minor change
+	* op_events.c: remove --gui-description stuff
+	* pp/opf_filter.cpp: remove use of temporary array to
+	  pass argument to the popt library
+
+2001-09-27  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/oprofile.sgml: updates
+
+	* gui/oprof_start_util.cpp: fix compile, revert
+	  g++ extension (different on g++ 3.0) 
+
+2001-09-27  John Levon  <moz@compsoc.man.ac.uk>
+
+	* gui/oprof_start_util.cpp: use g++ extension to
+	  avoid using temporary files
+ 
+2001-09-27  John Levon  <moz@compsoc.man.ac.uk>
+
+	* gui/oprof_start_util.cpp: fix crasher bug
+ 
+2001-09-27  John Levon  <moz@compsoc.man.ac.uk>
+
+	* gui/oprof_start.h:
+	* gui/oprof_start.cpp: get per-counter config working
+ 
+2001-09-27  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/Makefile.in:
+	* pp/oprofpp.c:
+	* pp/oprofpp.cpp: rename file
+ 
+2001-09-27  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/opf_container.cpp:
+	* pp/oprofpp.h:
+	* pp/oprofpp.c: speed improvements
+ 
+2001-09-26  Philippe Elie  <ph_e@club-internet.fr>
+
+	* configure.in: typo
+
+	* pp/oprofpp.c: fix oprofpp -s.
+	  Use std::string (work not yet finish)
+	* pp/oprofpp.h:	ditto
+	* pp/opf_filter.cpp: ditto
+
+2001-09-26  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.c: add nr_interrupts
+ 
+	* gui/oprof_start.h:
+	* gui/oprof_start.cpp:
+	* gui/oprof_start_util.h:
+	* gui/oprof_start_util.cpp:
+	* gui/oprof_start_config.h:
+	* gui/oprof_start_config.cpp:
+	* gui/ui/oprof_start_base.ui: add daemon status
+	  display, fix basename()
+	 
+2001-09-26  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: remove broken bit
+
+	* pp/Makefile.in: fix options
+ 
+	* doc/oprofile.sgml: minor changes
+ 
+2001-09-26  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/Makefile.in: increase level of warning
+	* pp/oprof_convert.c: minor fix to avoid warning
+	* dae/opd_util.c: ditto
+	* pp/oprofpp.c: get_linenr() never return null in
+	  filename  (fix bug #464482). symcomp() ensure
+	  correct vma comparison (fix #464093)
+	* dae/opd_util.c: minor fixe in op_poptGetContext()
+	* gui/oprof_start.cpp: minor cleanup
+
+2001-09-25  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/op_stop:
+	* gui/oprof_start_config.cpp: use pidof instead
+
+2001-09-25  John Levon  <moz@compsoc.man.ac.uk>
+
+	* gui/oprof_start_config.cpp: fix is_profiler_started() too 
+ 
+2001-09-25  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/op_stop: fix terribly stupid error
+ 
+2001-09-25  John Levon  <moz@compsoc.man.ac.uk>
+
+	* op_event.c: whooops
+ 
+2001-09-25  John Levon  <moz@compsoc.man.ac.uk>
+
+	* gui/oprof_start.cpp: std:: fix
+ 
+	* dae/op_start:
+	* op_events.c: robustness fix
+
+2001-09-25  John Levon  <moz@compsoc.man.ac.uk>
+
+	* gui/oprof_start.cpp: fix silly bug
+ 
+2001-09-24  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/opf_filter.cpp: "fix" compile error
+ 
+2001-09-24  John Levon  <moz@compsoc.man.ac.uk>
+
+	* gui/oprofile:
+	* gui/Makefile.in: remove old gui
+ 
+2001-09-24  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/op_start: make a little more robust
+ 
+2001-09-24  John Levon  <moz@compsoc.man.ac.uk>
+
+	* include/sstream:
+	* Makefile.in:
+	* configure.in:
+	* pp/Makefile.in:
+	* gui/Makefile.in: configure/make fixes
+
+	* op_events.c: re-order for Athlon 
+	 
+2001-09-23  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/oprofpp.c: small cleanup
+ 
+2001-09-23  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.h:
+	* op_x86.c: support for 2.4.10
+ 
+2001-09-23  John Levon  <moz@compsoc.man.ac.uk>
+
+	* gui/oprof_start.h:
+	* gui/oprof_start.cpp: rework validator stuff a bit
+ 
+2001-09-23  John Levon  <moz@compsoc.man.ac.uk>
+
+	* gui/oprof_start.cpp: use std::find_if
+ 
+	* gui/oprof_start_config.cpp:
+	* gui/oprof_start_util.cpp: minor tidies
+ 
+2001-09-23  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/op_dump:
+	* dae/op_start: echo errors to stderr
+ 
+	* gui/oprof_start_util.h:
+	* gui/oprof_start_util.cpp:
+	* gui/oprof_start.cpp: use fork/exec to spawn children
+
+2001-09-23  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* gui/Makefile.in:
+	* gui/oprof_start_config.h: 
+	* gui/oprof_start_config.cpp: 
+	* gui/oprof_start_util.h: 
+	* gui/oprof_start_util.cpp: 
+	* gui/oprof_start.h: 
+	* gui/oprof_start.cpp: new file for util functions
+ 
+2001-09-23  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/opd_util.c:
+	* dae/opd_util.h:
+	* dae/oprofiled.c: 
+	* pp/oprofpp.c: 
+	* pp/opf_filter.cpp: 
+	* configure.in: enable __builtin_expect, fix popt problem
+
+	* pp/oprof_convert.c: small fixes
+ 
+	* op_events.c: shorten event descriptions for GUI 
+
+	* gui/*: many more updates
+ 
+	* pp/Makefile.in: fix
+ 
+2001-09-21  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/opd_proc.c: removed over-verbose line
+
+	* configure.in:
+	* oprofile.h:
+	* oprofile.c: add likely/unlikely, take note lock on dump
+ 
+2001-09-21  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/opf_filter.h: move declaration of counter_array_t to
+	* pp/oprofpp.h: here
+	* pp/oprofpp.c: define and use counter_array_t + minor cleanup
+	* pp/opf_filter.cpp: remove definition of counter_array_t
+
+2001-09-21  Philippe Elie  <ph_e@club-internet.fr>
+
+	* Makefile.in: remove aclocal.m4 in distclean
+	* pp/Makefile.in: use $(CXX) and $(CXXFLAGS)
+
+	* pp/opf_container.cpp:
+	* pp/opf_filter.cpp:
+	* pp/opf_filter.h:
+	* pp/oprofpp.c:
+	* pp/oprofpp.h: cleanup
+
+2001-09-20  Philippe Elie  <ph_e@club-internet.fr>
+
+	* Makefile.in: minor change in module building
+	* pp/Makefile.in: link oprofpp with opf_filter
+	* pp/op_to_source: avoid pipe from oprofpp to opf_filter
+	* pp/opf_filter.h: remove a few member function
+	* pp/opf_container.cpp: ditto + minor cleanup
+	* pp/opf_filter.cpp: oprofpp is no longer piped to opf_filter
+	  but linked with it. Many change, needs additional cleanup
+	* pp/oprofpp.c: group all stuff in two class. Rather a
+	  a C with class than a full C++ file for now. Fix a bug
+	  in filename handling.
+	* pp/oprofpp.h: add opp_bfd and opp_samples_files class.
+	
+	* dae/opd_util.c: add a few explicit cast for C++ compile
+	* dae/opd_util.h: wrap function declaratio with extern "C"
+
+2001-09-19  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.c: fix silly read valid bug
+ 
+2001-09-19  John Levon  <moz@compsoc.man.ac.uk>
+
+	* Makefile.in: whoops, missed op_util.o from build
+ 
+2001-09-19  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/oprofiled.c: fix little bug, tidy a bit
+
+	* TODO: update
+ 
+2001-09-18  John Levon  <moz@compsoc.man.ac.uk>
+
+	* Makefile.in:
+	* op_syscalls.c:
+	* op_util.c:
+	* oprofile.h: move some code around
+
+	* oprofile.c: fix a tiny bug
+
+2001-09-18  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/opd_proc.c:
+	* dae/oprofiled.h: implement hashing of images
+
+	* doc/oprofile.sgml: fix -- issue and use <screen>
+ 
+2001-09-18  John Levon  <moz@compsoc.man.ac.uk>
+
+	* .cvsignore:
+	* README: update
+ 
+	* configure.in: small cleanup
+ 
+	* op_init.c: add comment
+
+	* oprofile.h: 
+	* op_syscalls.c:
+	* op_x86.c: move fixmap stuff, remove disable APIC
+
+	* oprofile.c: init failure fix 
+ 
+	* doc/oprofile.sgml:
+	* dae/opd_proc.c: fix handle_old_sample_files() bug,
+	  check mtime hasn't changed on a new map
+ 
+2001-09-16  John Levon  <moz@compsoc.man.ac.uk>
+
+	* acinclude.m4:
+	* autogen.sh:
+	* configure.in:
+	* gui/Makefile.in:
+	* gui/ui/Makefile.in:
+	* gui/ui/oprof_start.base.ui:
+	* gui/oprof_start.h: autoconfiscation for Qt2
+
+	* gui/oprof_start_config.cpp: add comments
+ 
+2001-09-16  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/opf_filter.cpp: fix unrecognized input
+	* pp/opf_container.cpp: better error messages. put
+	  op_nr_counters in the global namespace (gcc 2.91
+	  work around)
+
+2001-09-16  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/oprofpp.cpp: small tidy
+ 
+2001-09-16  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/opf_filter.cpp: minor tidy
+
+	* gui/oprof_start.base.ui: new oprof_start gui
+	* gui/oprof_start.cpp: new, derived class of oprof_start_base
+	* gui/oprof_start.h: ditto
+	* gui/oprof_start_impl.cpp: implementation of oprof_start class
+	* gui/oprof_start_config.cpp: utilities function for oprof_start
+	* gui/oprof_start_config.h: ditto
+	* gui/persistent_config.h: utility template
+	* gui/oprof_start_main.cpp: main() for oprof_start
+	* gui/Makefile.in: handle this stuff
+
+2001-09-15  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/oprofpp.c: some cleanup
+
+2001-09-15  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/oprofpp.c: allow non-matching mtimes in order
+	  to allow pp on different machines. Make conflicting
+	  counter specifications a fatal error
+
+2001-09-15  John Levon  <moz@compsoc.man.ac.uk>
+
+	* all Makefile.in: install should depend on all
+
+	* pp/oprofpp.c: fixes for Athlon 4 counters. Enable debug info
+	  for list-symbol. Some stricter checking
+
+2001-09-15  Philippe Elie  <ph_e@club-internet.fr>
+
+	* op_events.c: some static variable to global
+	* op_user.h: export these
+
+	* oprofile.c: typo in comment
+
+	* dae/opd_proc.c: fix size of samples files
+
+2001-09-13  Dave Jones  <davej@suse.de>
+
+	* doc/oprofile.1.in:
+	  Update so it doesn't say 'Intel only'
+	* dae/op_start:
+	  Fix output so that it prints [0-3] instead of [0-4[
+
+2001-09-12  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/oprofpp.c: fix cpu type output for opf_filter
+
+	* dae/op_stop: return error code properly
+
+2001-09-12  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/oprofpp.c: print name of cpu type
+ 
+	* dae/op_stop:
+	* dae/op_start: re-organise, tidy
+ 
+2001-09-12  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.c: fix small but triggerable
+	  SMP dump race
+ 
+2001-09-12  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.h:
+	* oprofile.c:
+	* op_x86.c: move some code about
+ 
+	* op_syscalls.c: add comment
+ 
+2001-09-12  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: remove warning
+ 
+	* op_user.h: 
+	* op_events.c: fix and clean up cpu type detection
+ 
+	* op_init.c: fix email
+ 
+	* oprofile.c: add IRQ stats. Not sure whether to keep...
+ 
+2001-09-12  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.h:
+	* oprofile.c: use cpu_number_map (pedantry thing)
+ 
+2001-09-07  Philippe Elie  <ph_e@club-internet.fr>
+
+	* oprofile.c: remove /proc/.../cpu_type. Check if user
+	  mode cpu type detection is identical to module cpu type
+	* op_events.h:
+	* op_events.c: add op_get_cpu_type(). script can get cpu_type
+	  by op_help --get-cpu-type
+	* gui/oprofile: use it	
+	* dae/oprofiled.c: ditto
+	* dae/op_start: ditto, pass expected_cpu_type to module
+	* doc/oprofile.sgml: update
+	* doc/oprofile.1.in: update
+	* pp/oprofpp.c: get cpu_type from samples file
+	* pp/opf_filter.cpp: get cpu type from stdin
+
+2001-09-06  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/opd_proc.c: use j not i in msync !
+ 
+2001-09-06  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/op_start: more sanity checking of options
+ 
+2001-09-06  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/oprofile.sgml: update a bit
+ 
+2001-09-06  John Levon  <moz@compsoc.man.ac.uk>
+
+	* <most files>: make op_nr_counters a var (no pp support for > 2 yet)
+	 
+	* dae/oprofiled.c: don't print help when counter event etc. are wrong
+ 
+2001-09-06  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.h:
+	* oprofile.c: use MODULE_LICENSE
+ 
+2001-09-06  John Levon  <moz@compsoc.man.ac.uk>
+
+	* op_user.h: add missing prototype
+
+	* dae/op_start: fix counter extraction
+ 
+2001-09-05  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/oprofpp.c: fix a few corner case, cleanup.
+	* dae/opd_proc: ditto.	
+
+	* dae/op_start: better handling of counter number
+
+	* dae/opd_proc: minor change.
+
+	* op_user.h: enable support for four counters
+	* oprofile.c: ditto. Split functions
+
+	* op_events.c: expose op_get_cpu_type_str(int) to world.
+
+2001-09-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.h:
+	* oprofile.c: don't restore delivery mode to LVTPC (causes
+	APIC error on SMP). Fix for silly sem hang with do_dump
+ 
+2001-09-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/op_start: fix typo bug
+ 
+2001-09-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/oprofile.sgml: some small tidies
+ 
+2001-09-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.c: change lvtpc_apic_restore to be more careful !
+ 
+2001-09-02  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.c: don't allow unload on SMP unless allow_unload
+	  is set. Still needs docs (no point till SMP works).
+ 
+2001-09-02  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/op_dump: complain if not root more clearly.
+ 
+2001-09-02  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.c: remove bogus setting for NMI oopser.
+	  smp_apic_restore() -> lvtpc_apic_restore()
+
+2001-09-01  Philippe Elie  <ph_e@club-internet.fr>
+
+	* oprofile.c: fix pmc_setup()
+
+	* pp/Makefile.in:
+	* dae/Makefile.in: fix uninstall problem
+
+2001-08-31  Philippe Elie  <ph_e@club-internet.fr>
+
+	* oprofile.h:
+	* dae/oprofiled.h:
+	* op_user.h:
+	* oprofpp.h:
+	* dae/opd_util.h: share commmon declarations, put it in
+	  op_user.h, include op_user.h in other .h when necessary.
+	* op_events.c:
+	* all Makefile.in: update dependancies.
+ 
+2001-08-30  Philippe Elie  <ph_e@club-internet.fr>
+
+	* oprofile.c: use loop instead of fixed counter number
+ 
+2001-08-26  Philippe Elie  <ph_e@club-internet.fr>
+
+	* op_events.c: add option to op_help for the gui
+	* gui/oprofile: use op_help to build description
+	  of events, accept Athlon (only 2 counters)
+ 
+2001-08-25  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/oprofpp.c:
+	* dae/op_start: use loop instead of fixed number of counter.
+ 
+2001-08-24  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/oprof_convert.c: add v4 --> v5 conversion
+ 
+2001-08-23  Philippe Elie  <ph_e@club-internet.fr>
+
+	* oprofile.c: correct some comment.
+ 
+2001-08-22  Philippe Elie  <ph_e@club-internet.fr>
+
+	* op_user.h:
+	* dae/opd_proc.c:
+	* dae/opd_util.c:
+	* dae/opd_util.h:
+	* dae/oprofiled.h:
+	* dae/oprofiled.c:
+	* dae/oprofiled.c: row to column file format, lot of changes.
+ 
+2001-08-21  Philippe Elie  <ph_e@club-internet.fr>
+
+	* op_events.c: Add Athlon string/unit maks description
+ 
+2001-08-20  Philippe Elie  <ph_e@club-internet.fr>
+
+	* op_events.c: change in handling of search/check events
+	* dae/oprofiled.c:
+	* dae/oprofiled.h:
+	* oprofile.c:
+	* oprofile.h:
+	* pp/oprofpp.c:
+	* pp/oprofpp.h:	reflects caller/prototype, lot of changes.
+
+2001-08-31  John Levon  <moz@compsoc.man.ac.uk>
+  
+	* Makefile.in:
+	* op_x86.c:
+	* oprofile.h:
+	* oprofile.c: a prototype detector for SMP hardware,
+	  some small cleanup
+ 
+2001-08-20  Dave Jones  <davej@suse.de>
+
+	* doc/oprofile.sgml:
+	  Updated to reflect new Athlon/Duron capabilities.
+	* pp/oprof_convert.c:
+	* pp/oprofpp.c: use EXIT_FAILURE | EXIT_SUCCESS
+	  in exit() calls.
+	* oprofile.c: Make non-exported functions static
+	  and remove duplicate definitions.
+
+2001-08-19  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/op_start: handle celeries in cpu type
+
+2001-08-19  John Levon  <moz@compsoc.man.ac.uk>
+
+	* op_init.c:
+	* oprofile.h:
+	* oprofile.c: small tidies of the Athlon support
+
+2001-08-19  Dave Jones  <davej@suse.de>
+
+	* op_events.c:
+	* op_init.c: 
+	* oprofile.h:
+	* oprofile.c:
+	* dae/op_start:
+	* dae/oprofiled.h:
+	* dae/oprofiled.c: initial Athlon support
+
+2001-08-19  Philippe Elie  <ph_e@club-internet.fr>
+
+	* oprofile.c: use symbolic constant for all apic setup, no generated
+	  code change
+
+2001-08-18  Philippe Elie  <ph_e@club-internet.fr>
+ 
+	* Makefile.in:
+	* dae/Makefile.in:
+	* pp/Makefile.in:
+	* doc/Makefile.in:
+	* gui/Makefile.in: add uninstall target
+ 
+2001-08-18  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/opd_proc.c: tiny cleanup
+ 
+2001-08-17  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/opd_proc.c:
+	* TODO: minor cleanup.
+
+2001-08-16  Philippe Elie  <ph_e@club-internet.fr>
+
+	* gui/oprofile:
+	* dae/op_start:
+	* doc/oprofile.1.in: document and use op_dump
+
+2001-08-16  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: bump version to 0.0.5cvs
+ 
+2001-08-16  John Levon  <moz@compsoc.man.ac.uk>
+
+	* all Makefile.in: mkdir install files
+
+2001-08-15  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/opd_proc.c: fix a FILE* leak in opd_get_ascii_maps()
+
+2001-08-14  John Levon  <moz@compsoc.man.ac.uk>
+
+	* op_syscalls.c: don't return negative hashes !
+	  revert dname len "fix"
+	  use a much better hash function
+
+	* dae/opd_proc.c: protect against negative hashes
+ 
+2001-08-14  John Levon  <moz@compsoc.man.ac.uk>
+
+	* op_syscalls.c: some small fixes
+
+	* oprofile.c: add back unmasking code during set_gate, but only
+	  LVTPC
+ 
+2001-08-11  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.h: 2.4.8 doesn't either. *sigh*. looks like we need
+	  some autoconfery :(
+ 
+2001-08-11  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.h: 2.4.7-linus doesn't include the Andrew Morton
+	  complete_and_exit(). Hopefully this will make it into 2.4.8,
+	  I'm banking on this.
+
+2001-08-11  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/op_dump:
+	* doc/oprofile.sgml:
+	* dae/Makefile.in: a little utility for dumping
+
+2001-08-11  Dave Jones  <davej@suse.de>
+
+	* oprofile.h:
+	* oprofile.c: back-compat code and use of new struct completion
+	  for the thread
+
+2001-08-11  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.c: corner case where an a miss against a full count,
+	  we were attributing wrong (reported by Bob Montgomery)
+
+2001-08-11  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.c: use a simple cli/sti when installing the NMI
+	  handler. It should work and avoids the unmasking problem.
+
+2001-08-10  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/oprofiled.h: fix header include (from Dave Jones)
+
+	* op_syscalls.c:
+	* oprofile.c: fix undefined symbol (from Dave Jones)
+
+2001-08-10  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.c: small tidy in apic setup
+ 
+2001-08-02  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.c: fix mod unload race, small fixes
+ 
+	* dae/op_start: make sysctl error actually appear
+ 
+	* doc/oprofile.sgml: document need for modutils 2.4.6
+
+	* op_syscalls.c: fix stupid mod use count problem
+ 
+2001-07-28  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/opd_proc.c: d'oh, fat-fingered a slow memleak in the
+	  a-ksymoops modules fix
+ 
+2001-07-27  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/oprof_convert.c: fix bug when conversion skip more than one
+	  version.
+
+2001-07-27  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/Makefile.in: ln -s -> ln -sf
+
+	* dae/opd_util.c: actually include the right header
+ 
+	* dae/opd_util.h: compile freestanding from oprofiled.h
+
+2001-07-26  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.c: fix comment
+ 
+	* doc/oprofile.sgml: document symbolless modules not working
+
+	* dae/Makefile.in:
+	* dae/opd_proc.c:
+	* dae/oprofiled.h: catch modules with no symbols via query_module()
+	  and ignore samples for them quickly
+ 
+2001-07-25  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/op_start: beautify the output of op_start --help
+	* pp/op_to_source: ditto. better argument checking.
+
+	* pp/oprof_convert.c:
+	* pp/oprofpp.h:
+	* dae/oprofiled.h: fix problem with opd_footer, don't bump 
+	  opd_footer version number !
+
+2001-07-25  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/Makefile.in:
+	* pp/oprof_convert.c: convert to v4
+ 
+	* pp/oprofpp.c: use opd_strdup
+	 
+2001-07-25  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/opd_util.c: small tidy
+ 
+2001-07-24  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/opd_util.c:
+	* dae/opd_util.h: add relative path name to absolute path name stuff
+	* pp/oprofpp.c: use it.
+	* pp/op_to_source: simplify code to reflect above change.
+
+2001-07-25  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/opd_proc.c: fix uninitialised pointer access (reported by
+	<bobm@fc.hp.com>) that could segfault oprofile in case of
+	module load/unload activity
+
+	* Makefile.in:
+	* dae/opd_proc.c:
+	* dae/opd_util.c:
+	* dae/opd_util.h:
+	* dae/oprofiled.c:
+	* dae/oprofiled.h:
+	* pp/Makefile.in:
+	* pp/oprofpp.c:
+	* pp/oprofpp.h: use mtime() instead of md5sum(). Still doesn't handle
+	  "./a; gcc -o a a.c; ./a"
+ 
+2001-07-22  Philippe Elie  <ph_e@club-internet.fr>
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.sgml:
+	* pp/opf_filter.h:
+	* pp/opf_filter.cpp:
+	* pp/opf_container.cpp: implement and document filtering for assembly
+	  output.
+
+2001-07-21  Philippe Elie  <ph_e@club-internet.fr>
+ 
+	* doc/oprofile.sgml:
+	* gui/oprofile:
+	* oprofile.c: remove edge_detect support.
+ 
+	* pp/oprofpp.c: check counter range for each event type.
+	* oprofile.c: ditto.
+	* gui/oprofile: ditto and save setup for each event type.
+	* oprofile.h: op_check_range() : display the allowed range.
+
+2001-07-18  Philippe Elie  <ph_e@club-internet.fr>
+ 
+	* dae/op_start: disable all counters before starting the setup.
+
+2001-07-18  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/oprofile.sgml: add in bit I forgot about not profiling ring 0 
+ 
+2001-07-18  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/oprofile.sgml: added a warning about very low counter values
+	  (from Philippe, modified)
+ 
+2001-07-15  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.c:
+	* oprofile.h:
+	* dae/op_start:
+	* dae/oprofiled.c:
+	* doc/oprofile.sgml: remove ability to set different values on
+	  different CPUs
+ 
+2001-07-15  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: remove done thing
+ 
+2001-07-15  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/opd_proc.c: backup old sample files if the profiling
+	  details (count, unit mask etc.) disagree. Fixes #435245
+ 
+2001-07-15  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/oprofiled.c: fix oprofiled --version to work even if the
+	  profiler is not already started.
+
+	* gui/oprofile: many cleanup. Fix bug track #435248. Make the gui more
+	  independant on the number of counter.
+
+	* pp/op_to_source: fix bug in command line arguments handling.
+	
+	* pp/opf_filter.h:
+	* pp/opf_filter.cpp:
+	* pp/opf_container.cpp: Apply some cleanup suggested by John, principally
+	  change few inheritance to composition.
+
+	* pp/oprof_convert.c: fix --version.
+
+2001-07-14  Philippe Elie  <ph_e@club-internet.fr>
+
+	* doc/oprofile.sgml:
+	* doc/oprofile.1.in: minor doc fix.
+
+2001-07-14  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/oprofile.sgml: small tidies
+ 
+2001-07-01  Philippe Elie  <ph_e@club-internet.fr>
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.sgml: document op_to_source, oprof_convert and the
+	  oprofile gui
+
+	* gui/oprofile: onStartProfiling() check that count is in the allowed
+	  range. onStopProfiling() flush the samples
+ 
+2001-07-14  John Levon  <moz@compsoc.man.ac.uk>
+
+	* Makefile.in: dist fix
+
+2001-07-14  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/oprofile.sgml: make it clear we want vmlinux not vmlinuz
+
+	* doc/html/: remove generated files from CVS
+
+	* Makefile.in: changes to create HTML files on dist 
+ 
+2001-06-30  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/Makefile.in: fix the fix
+
+	* pp/opf_filter.h: very minor changes
+ 
+2001-06-29  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/Makefile.in: fix up for opf_filter
+
+	* configure.in: add AC_PROG_CXX
+
+2001-06-29  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/opf_filter.cpp:
+	* pp/opf_container.cpp:
+	* pp/opf_filter.h:
+	* pp/op_to_source: new file which provide a source annotation utility.
+	* pp/Makefile.in: build and install opf_filter / op_to_source
+
+2001-06-29  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in:
+	* dae/opd_util.h: hide __attribute__((malloc)) warnings
+	  when necessary. Document --with-cc bug.
+ 
+2001-06-29  Philippe Elie  <ph_e@club-internet.fr>
+
+	* gui/oprofile: more saving of the user setup.
+
+2001-06-27  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/opd_util.c: document get_line() restriction
+ 
+2001-06-27  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/oprofiled.c: fix cpu_speed_str/cpu_speed variable setup logic.
+
+	* gui/oprofile: save advanced setup form to persistent storage.
+	  Add many validation.
+
+2001-06-25  John Levon  <moz@compsoc.man.ac.uk>
+
+	* op_events.c:
+	* pp/oprof_convert.c: add missing headers, remove CVS blip
+ 
+	* dae/opd_util.h: specify malloc attribute. gives warnings on
+	  older compilers, who cares. I doubt this will help but it can't
+	  harm
+ 
+2001-06-25  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/oprof_convert.c: continue if an error with one file occurs
+ 
+	* dae/op_stop: remove rmmod again - it is user's choice on when/whether
+	  to unload
+ 
+2001-06-23  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/op_start: add missing support for specifying the log filename.
+	  Get correct cpu speed information for smp as suggested by John.
+
+	* dae/oprofiled.c: Correct a warning with some older version of the
+	  popt library.
+	* pp/oprofpp: as above.
+
+	* gui/oprofile: advanced setup form added.
+
+	* pp/oprof_convert.c: version and help option support.
+
+2001-06-23  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/.cvsignore: add oprof_convert
+ 
+2001-06-23  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/oprof_convert.c: new utility to convert samples files when the opd_footer
+	  struct is changed.
+	* pp/Makefile.in: reflect the above change. Tidy some unnecessary blank.
+	* Makefile.in: Tidy some unnecessary blank/tabulation.
+
+2001-06-23  John Levon  <moz@compsoc.man.ac.uk>
+
+	* README: update
+ 
+2001-06-22  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.c: always have smp_apic_restore()
+ 
+2001-06-22  John Levon  <moz@compsoc.man.ac.uk>
+
+	* various: made spacing more consistent in C source,
+	  removed unused utility functions.
+ 
+2001-06-22  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.c: actually call smp_apic_restore() on UP
+
+	* dae/op_start: don't remove the module immediately after
+	  inserting it !
+ 
+2001-06-22  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/oprofiled.h, pp/oprofpp.h: change the opd_footer struct.
+	  Bump OPD_VERSION to reflect the file format change.
+	* pp/oprofpp.c: reflect the above change
+	* dae/oprofiled.c: reflect the above change, many options supressed
+	  because setup is read from the /proc/sys/dev/oprofile files.
+	* dae/opd_proc: suppress some "extern variable" which no longer exist.
+	* dae/op_start: reflect the above change
+
+2001-06-22  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/op_start: add --ctr[0|1]-edge-detect
+	* gui/oprofile: add edge detect stuff
+	* oprofile.c: add edge-detect stuff, the edge-detect is an
+	  experimental feature which do not work actually (no effect for now).
+	  Because this is experimental no documentation are provided on this
+	  option.
+
+2001-06-22  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in:
+	* dae/op_stop:
+	* doc/oprofile.sgml:
+	* op_init.c:
+	* op_syscalls.c:
+	* oprofile.h:
+	* oprofile.c: add and document the ability 
+	  to make the module unloadable. Not well tested
+	  (but seems to work).
+ 
+	* doc/oprofile.sgml: document compile-time options
+	  better, thank Philippe
+ 
+2001-06-21  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.c: remove stale comments. fix theoretical
+	  memory leaks when setting up the sysctls fails, small tidy
+ 
+2001-06-19  John Levon  <moz@compsoc.man.ac.uk>
+
+	* README: 
+	* doc/oprofile.sgml:
+	* doc/html/: s/sourceforge/sf/
+ 
+2001-06-16  Philippe Elie  <ph_e@club-internet.fr>
+
+	* op_events.c: op_check_events() fix two bad use of 
+	  op_check_unit_mask(). op_get_um_desc() fix a typo.
+
+2001-06-14  Philippe Elie  <ph_e@club-internet.fr>
+
+	* op_events.c: struct op_unit_mask, struct op_unit_desc allow up to
+	  seven unit masks. Reflect this change in data, op_check_unit_mask()
+	  and callers of op_check_unit_mask().
+
+2001-06-12  John Levon  <moz@compsoc.man.ac.uk>
+
+	* results/intro: tidy up
+
+	* results/kernel-compile/time-aves.pl: fix regexps
+ 
+	* results/latex/: results from the LaTeX runs
+ 
+2001-06-09  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/op_start: avoid chmod to a non existing directory and setup access
+	  mode from 700 to 755. Replace use of the sysctl utility by a
+	  do_sysctl() function.
+
+	* gui/oprofile: some cleanup and bugfix.
+
+	* pp/oprofpp.c: add new output options --list-all-symbols-details,
+	  --output-linenr-info
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.sgml: update documentation about the new oprofpp
+	  option
+
+2001-06-09  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: fix build with CONFIG_MODVERSIONS
+	  enabled.
+ 
+2001-06-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/oprofiled.c: move logfile message to
+	  before close(1) to not need to use stderr
+ 
+2001-06-03  John Levon  <moz@compsoc.man.ac.uk>
+
+	* gui/: new directory
+
+	* Makefile.in:
+	* configure.in:
+	* gui/.cvsignore:
+	* gui/Makefile.in:
+	* gui/oprofile: Philippe's prototype tcl/tk startup
+	  script. Requires more work.
+ 
+2001-06-03  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/oprofpp.h: remove libiberty header that was
+	  apparently breaking install on slackware
+ 
+2001-06-03  John Levon  <moz@compsoc.man.ac.uk>
+
+	* README: update
+ 
+2001-06-03  Philippe Elie  <ph_e@club-internet.fr>
+
+	* op_events.c: allow unit mask option to be bit mask
+
+2001-06-01  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/opd_proc.c: actually use opd_get_count -
+	  fix bug with counter 1 reported results
+
+	* dae/op_start: fix broken shell scripting
+
+	* dae/oprofpp.c: fix list-symbols output
+
+2001-04-30  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/op_start: better error reporting
+
+	* dae/opd_proc.c: fix indentation
+ 
+2001-04-08  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: 0.0.3 has been released. Bump cvs version
+	  to 0.0.4
+
+2001-04-05  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/opd_proc.c: remove forced dumping. It was
+	causing overhead spikes
+
+	* doc/html/results.html:
+	* doc/oprofile.sgml:
+	* dae/op_start: Hopefully document dump clearly enough
+
+2001-04-05  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.h:
+	* op_syscalls.c: 2.4.3 and above have a rw mmap_sem
+
+2001-04-05  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/html/: added missing files
+
+2001-04-05  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/oprofile.sgml:
+	* doc/html/resources.html: add URLs
+
+2001-04-05  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/oprofpp.c: fix gprof output bug. It works OK now,
+	  but MULTIPLIER == 1 will break for some reason
+
+2001-04-05  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/oprofile.sgml:
+	* doc/html/: finish SGML documentation (for now)
+
+2001-04-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/Makefile.in:
+	* doc/oprofile.sgml:
+	* doc/oprofile: start SGML documentation
+
+2001-04-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in:
+	* Makefile.in:
+	* doc/Makefile.in:
+	* doc/oprofile.1.in: add a manpage
+ 
+2001-04-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/oprofpp.c: get some sort of half-working output
+	in gprof format. Currently the numbers are screwed up,
+	need a major trawl through gprof source to see what's
+	going on. 
+
+2001-04-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/Makefile.in:
+	* dae/md5.c:
+	* dae/md5.h:
+	* dae/opd_proc.c:
+	* dae/oprofiled.h:
+	* pp/Makefile.in:
+	* pp/oprofpp.c:
+	* pp/oprofpp.h: use md5sums to verify sample file
+	  integrity. Stored in each sample file footer are
+	  md5sums of the binary. These are checked by the daemon
+	  when re-using an old file, and by the post-processor.
+	  Bump OPD_VERSION to reflect the file format change.
+
+	* dae/oprofiled.c: make start up more friendly 
+	
+	* dae/op_start: make script more friendly
+
+2001-03-10  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/opd_proc.c: fixed some error messages
+
+	* results/kernel-compile/raw/ccu.gnuplot: add
+ 
+2001-02-05  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* results/intro: update
+
+	* results/kernel-compile/: update, add FIG files
+
+	* results/lmbench: lmbench results
+
+	* results/output/kernel-ac12-output: add readprofile output
+
+2001-02-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* op_syscalls.c: small re-org, some micro-optimisations
+	  to do_hash()
+
+	* pp/oprofpp.c: clean up --list-symbol output a little
+
+	* results/kernel-compile/overhead: update with results
+
+	* results/kernel-compile/time-aves.pl: add gnuplot output
+
+	* results/kernel-compile/raw/ : raw output files
+
+	* results/output/ : new dir for example output
+
+	* results/output/libc-2.1.92.so: output from libc profile
+
+	* results/output/kernel-ac12-output: output from kernel profile
+
+	* results/output/do_anonymous_page: detailed symbol profile
+
+	* results/output/oprofile.module: output for oprofile module
+
+2001-02-03  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* oprofile.h:
+	* op_syscalls.c: make do_hash() non-recursive
+
+	* oprofile.c: make thread wake up half as often
+
+	* dae/opd_proc.c: quiesce dump sysctl
+	  make resilient against broken sample (don't exceed mmap)
+
+	* pp/oprofpp.c: --gcc-demangle -> --demangle, just too
+	  annoying to live
+ 
+2001-02-01  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.h: add op_save_syscalls()
+
+	* oprofile.c: let interrupt_sleep_on() die
+	  add kernel_only option
+	  sysctl dumps everything it can now
+ 
+	* op_syscalls.c: add op_save_syscalls() 
+
+	* dae/opd_proc.c:
+	* dae/oprofiled.c:
+	* dae/op_start: add --kernel-only
+ 
+	* doc/guide.lyx: mention --kernel-only
+ 
+	* TODO: update
+ 
+2001-02-01  John Levon  <moz@compsoc.man.ac.uk>
+
+	* Makefile.in: split out op_init.c
+
+	* autogen.sh: new file
+
+	* configure.in: fix --with-cc. Split out op_init.c
+	
+	* op_init.c: new file, to allow rest -march=i686
+
+	* oprofile.c: cut out init stuff to op_init.c 
+
+	* opd_proc.c: more verbose
+
+	* results/kernel-compile/time-aves.pl: work with other
+	  time format too 
+	 
+2001-01-25  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: add --with-cc option
+
+	* pp/oprofpp.c: fix const discard warnings
+
+2001-01-25  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: must check for liberty *after*
+	  libdl
+
+2001-01-24  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.c: we're not using op_check_ctr()
+		return value, so don't have one
+
+2001-01-23  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in:
+	* op_syscalls.c:
+	* oprofile.c:
+	* oprofile.h: stripped the NMI error handling stuff
+
+	* op_events.c: fixed silly bug in the other place too :P
+	
+	* dae/oprofiled.c: improved error messages
+
+2001-01-22  John Levon  <moz@compsoc.man.ac.uk>
+
+	* op_events.c: fix silly bug so you can set both
+		counters at once
+
+	* oprofile.c: don't disable/enable counters in
+		the interrupt handler. It's expensive and
+		doesn't really buy anything.
+		Fix a silly EBUSY bug when open fails once.
+
+	* dae/op_start: don't remove old sample files
+		pass correct event to daemon for ctr1
+
+2001-01-22  John Levon  <moz@compsoc.man.ac.uk>
+
+	* op_syscalls.c:do_hash(): use strcpy not strncpy. 
+		It's probably faster, and if d_name.len is corrupted
+		the kernel has bigger things to worry about.
+
+2001-01-22  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/guide.lyx:
+	* dae/guide.html: update docs a little
+
+2001-01-22  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/op_start:
+	* op_user.h: bump up hash table size
+
+	* results/kernel-compile/overhead: intro to kernel
+		compile tests
+
+	* results/kernel-compile/time-aves.pl: script
+		to generate averages + overheads
+
+	* op_syscalls.c: three fixes to do_hash(). It's
+		going to be a pain to make iterative :(
+
+2001-01-21  John Levon  <moz@compsoc.man.ac.uk>
+
+	* results/: Started a collection of results
+
+2001-01-20  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* configure.in: add comment
+
+	* Makefile.in: moved oprofile_k.c to op_syscalls.c, op_user.h added
+
+	* op_syscalls.c: rename of oprofile_k.c
+		map buffer is dead now
+		use vmalloc() and friends for hash map
+		Reworking of hash_map stuff into abb's linked
+		hash map structure
+
+	* op_user.h: new file representing shared structs etc.
+		between daemon and kernel module
+		Reworked OP_ flags in count.
+		Reworked hash map structure
+
+	* oprofile.c: get along with the new UP APIC stuff in 2.4.0ac9
+		remove extraneous lock_kernel()
+		default buffer size added
+		map buffer died
+		Use up_and_exit() in kernel thread to fix zombies :P
+		Set diethreaddie = 0 in start_thread()
+		oprof_put_mapping() added
+		we weren't turning OFF kernel/user counting when asked to
+
+	* oprofile.h: move shared stuff to op_user.h
+		increase the watermark to a much safer 768
+
+	* dae/Makefile.in: dependencies on op_user.h and version.h 
+
+	* dae/op_start: hide confusing output of op_stop
+		--verbose option
+		map buffer died
+
+	* dae/opd_proc.c: --verbose option
+		don't insist on new sample files
+		Rework mapping code
+		Be a little more forgiving with unstattable images 
+
+	* dae/opd_util.h:
+	* dae/opd_util.c: add fatal flag to opd_get_fsize().
+
+	* dae/oprofiled.h: --verbose option
+		move common code to op_user.h
+
+	* dae/oprofiled.c: add --verbose option (very verbose !)
+		map buffer died
+		Add code for unpacking mapping notifications, rework
+		mapping recognition
+
+	* doc/guide.html:
+	* doc/guide.lyx: some small updates
+
+	* pp/oprofpp.c: fix segfault on failure to open binary.
+		add --verbose option
+
+	* pp/oprofpp.h: add --verbose option
+
+2000-01-12  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.c: use standard kernel names for MSRs.
+		Don't re-do fixmap if UP oopser patch is installed.
+		Allow UP oopser to work if patches enabled, disable
+		otherwise
+
+	* oprofile.h: use standard kernel names for MSRs.
+
+	* oprofile_k.c: only include fixmap code if necessary
+
+	* configure.in: bump minor version
+
+2000-12-15  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: default to /lib/modules/`uname -r`/build
+		as kernel source directory
+
+	* doc/guide.lyx:
+	* doc/guide.html: update documentation
+
+2000-12-13  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: bump minor version
+
+	* oprofile.c: added KERN_<whatever> where needed,
+		exclude the Pentium IV	
+
+	* pp/oprofpp.c: allow "oprofpp -l /bin/mv" and friends,
+		some minor fixes
+
+2000-12-12  John Levon  <moz@compsoc.man.ac.uk>
+
+	* Makefile.in:
+	* configure.in: approximate working modversions
+		a little more
+
+	* op_events.c: op_help INST_RETIRED will print out
+		the value now
+
+	* op_ioctl.h:
+	* oprofile.c:
+	* oprofile.h:
+	* oprofile_k.c:
+	* dae/Makefile.in:
+	* dae/op_start:
+	* dae/op_stop:
+	* dae/opd_proc.c:
+	* dae/oprofctl.c:
+	* dae/oprofctl.h:
+	* dae/oprofiled.h: ioctl() didn't last long. Replaced with
+		sysctls. This has had a knock-on effect of moving the
+		start/stop mechanism into the driver open/close routines
+	 
+	* dae/oprofiled.c: must open devices in "reverse" order now
+	 
+	* oprofile_k.c: fix X86_FEATURE_PGE testing
+	 
+	* oprofile.c: use daemonize()
+	
+	* pp/oprofpp.c: fix working on constant argv
+
+2000-11-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.c: what if signal happens later ?
+	* dae/opd_util.c: clarify opd_read_device() API
+
+2000-11-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* ChangeLog: started ChangeLog (cue gc koan)
+	* op_ioctl.h: added FIXME comment
+	* oprofile.c: slight cleanup 
+	* oprofile.h: cleanups, use u16 for data->ctrs,
+		data->next
+	
+	* pp/oprofpp.c: added comments
+	* pp/oprofpp.h: fixed #defines
diff --git a/oprofile-0.9.7/ChangeLog-2002 b/oprofile-0.9.7/ChangeLog-2002
new file mode 100644
index 0000000..edb20ea
--- /dev/null
+++ b/oprofile-0.9.7/ChangeLog-2002
@@ -0,0 +1,4416 @@
+2002-12-21  John Levon  <levon@movementarian.org>
+
+	* Makefile.am: list module files explicitly, needed
+	  for make dist from separate objdir
+
+	* configure.in: make both x86/ and ia64/ changelogs
+
+2002-12-21  John Levon  <levon@movementarian.org>
+
+	* module/Makefile.am:
+	* configure.in: remove the ln -s arch in favour of
+	  using -I and AC_SUBST
+
+	* module/ia64/arch.h:
+	* module/x86/arch.h: rename to op_arch.h
+
+	* utils/Makefile.am: fix make uninstall
+
+2002-12-21  John Levon  <levon@movementarian.org>
+
+	* utils/Makefile.am: fix back-compat scripts install
+	  for 2.5 kernel
+
+2002-12-19  Will Cohen  <wcohen@redhat.com>
+
+	* utils/opcontrol: Revise kernel range computation.
+	
+2002-12-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/op_time.cpp: minor formating fix
+	* pp/oprofpp.cpp: fix #656123 corner case with --separate-sample
+
+2002-12-17  John Levon  <levon@movementarian.org>
+
+	* configure.in: remove oprof_report - breaks make dist
+
+2002-12-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/*.c *.h:
+	* libutil/op_fileio.c:
+	* dae/opd_proc.c: doxygen comment fix
+
+2002-12-16  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* module/ia64/op_syscalls.c:
+	* module/x86/hammer_op_syscalls.c:
+	* module/x86/op_syscalls.c: u16 pid to u32, tested/compiled only with
+	  32 bits x86
+
+2002-12-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/string_manip.cpp: minor fix
+	* pp/derive_files.cpp: comment
+
+2002-12-14  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/format_output.cpp:
+	* pp/format_output.h:
+	* pp/outsymbflag.h:
+	* pp/opp_symbol.h: add an app_name field in file_location and
+	  formater options for this field.
+
+	* pp/profile_container.cpp:
+	* pp/profile_container.h: add_samples() add app_name parameter
+
+	* pp/oprofpp.cpp:
+	* pp/op_to_source.cpp:
+	* pp/op_time.cpp:
+	* pp/op_time_options.cpp:
+	* pp/op_time_options.h: honor app_name parameter. No user visible
+	  change except for op_time -l when profiling with --separate-samples
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml: update doc
+
+2002-12-13  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: lots of fixes. Remove sysctl documentation
+	  as its really an internal feature and was cluttering up
+	  the user manual.
+ 
+2002-12-13  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: some clarifications on timer interrupt 
+ 
+2002-12-12  John Levon  <levon@movementarian.org>
+
+	* opcontrol: set one_enabled if timer interrupt. No
+	  behaviour change, but "safer"
+ 
+2002-12-11  John Levon  <levon@movementarian.org>
+
+	* pp/derive_files.h:
+	* pp/op_time.cpp:
+	* pp/op_time_options.cpp:
+	* pp/op_to_source.cpp:
+	* pp/opp_symbol.h:
+	* pp/profile.h:
+	* pp/profile_container.h:
+	* utils/Makefile.am: small pedantries
+ 
+2002-12-10  Will Cohen  <wcohen@redhat.com>
+
+	* utils/op_dump_25: 
+	* utils/opcontrol (do_dump): Correct TMPFILE.
+
+2002-12-10  Will Cohen  <wcohen@redhat.com>
+
+	* daemon/opd_image.c (complete_dump): New.
+	* libop/op_config.h (OP_DUMP_STATUS): New.
+	* utils/op_dump_25: New file.
+	* utils/Makefile.am: Add op_dump_25.
+	* utils/opcontrol (do_dump): Revise how dump performed.
+
+2002-12-10  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/profile.cpp : oprofpp reported incorrectly counter setting when
+	  using multiple counter. Fix #651183
+
+2002-12-10  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/op_time.cpp: honor --excude-symbols. Fix #651165
+
+2002-12-09  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.cpp: stupid segfault when filtering included symbols
+
+2002-12-09  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp: replace a 0(N²) by a 0(N) behavior
+
+	* pp/output_format.cpp: actualize comment
+
+2002-12-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/profile.cpp: use scoped_ptr<counter_profile_t>
+
+	* libopt++/popt_options.h:
+	* pp/counter_profile.cpp: minor cleanup
+
+2002-12-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/counter_profile.cpp:
+	* pp/counter_profile.h: use scoped_ptr
+
+2002-12-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/counter_profile.h:
+	* pp/counter_profile.cpp: relax samples_db_t sooner
+
+2002-12-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opp_samples_files.cpp:
+	* pp/opp_samples_files.h:
+	* pp/samples_container.cpp:
+	* pp/samples_container.h:
+	* pp/samples_file.cpp:
+	* pp/samples_file.h: rename class samples_file_t to counter_profile_t
+	  rename class opp_samples_files to profile_t
+	  rename class samples_container_t to profile_container_t
+	  rename file using the new class name as filename w/o _t suffix
+
+	* pp/format_output.cpp:
+	* pp/format_output.h:
+	* pp/op_merge.cpp:
+	* pp/op_time.cpp:
+	* pp/op_to_source.cpp:
+	* pp/oprofpp.cpp:
+	* pp/symbol_container_imp.cpp:
+	* pp/symbol_container_imp.h:
+	* pp/Makefile.am: reflect above class/file name change
+
+2002-12-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/db_manage.c:
+	* libdb/db_hash.h: db_init() new to properly initialize a samples_db_t
+
+	* dae/opd_image.c:
+	* daemon/opd_imge.c: earlier init a samples_db_t object using
+	  db_init() rather a memset. This fix a potential bogosity cause we
+	  closed a lot of time file descriptor 0
+
+2002-12-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_image.c:
+	* dae/opd_image.h:
+	* dae/opd_kernel.c: use hash table entry 0 for kernel and module image
+
+2002-12-04  John Levon  <levon@movementarian.org>
+
+	* pp/opp_symbol.h:
+	* pp/opp_symbol.cpp:
+	* pp/format_output.h:
+	* pp/format_output.cpp:
+	* others from above: create format_output namespace, some
+	  clean up
+ 
+2002-12-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_image.c: revert last change, it break daemon...
+	
+2002-12-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_image.c: re-enable opd_check_image_mtime() it's not
+	  perfect but better than nothing
+
+	* libutil++/cverb.cpp: comment fix
+
+2002-12-04  Will Cohen  <wcohen@redhat.com>
+
+	* utils/opcontrol: Revised checking to determine kernel
+	  interface.
+
+
+2002-12-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/db_test.c: measure system + user time
+
+	* dae/oprofiled.c: better error message
+	* daemon/oprofiled.c: write_abi() is static
+
+2002-12-03  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/db_stat.c:
+	* libdb/db_debug.c: Alex whisp me than a few code was not 64 bits
+	  size_t safe.
+
+2002-12-03  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml:
+	* doc/oprofile.1.in:
+	* doc/Makefile.am: remove references to deprecated stuff
+ 
+2002-12-03  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: add --version
+ 
+2002-12-03  John Levon  <levon@movementarian.org>
+
+	* utils/op_start:
+	* utils/op_start_25:
+	* utils/op_stop_25:
+	* utils/op_stop: print deprecation notice
+ 
+2002-12-03  John Levon  <levon@movementarian.org>
+
+	* utils/op_session.c:
+	* utils/op_dump: print deprecation notice
+ 
+2002-12-03  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: do not shutdown on --reset. Send
+	  signal on --reset/--save like op_session. Try to dump
+	  like op_session to hack race "fix"
+ 
+2002-12-03  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: complain on opcontrol --save 
+ 
+2002-12-03  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_kernel.c:
+	* daemon/opd_kernel.h: minor cleanup
+
+	* libabi/abi.cpp:
+	* libabi/abi_test.cpp:
+	* libabi/op_import.cpp: fix bad include filename.
+
+2002-12-03  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/.cvsignore:
+	* libdb/Makefile.am:
+	* libdb/*.c --> db-hash-name.c to db_name.c
+
+	* dae/opd_image.h:
+	* daemon/opd_image.h:
+	* pp/samples_file.h: include db_hash.h
+
+2002-12-03  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start_config.cpp: allow default value change w/o
+	  breaking actual user.
+
+2002-12-03  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* dae/opd_image.h:
+	* dae/opd_kernel.c:
+	* dae/opd_kernel.h:
+	* dae/opd_parse_proc.c:
+	* dae/opd_proc.c:
+	* dae/opd_proc.h:
+	* dae/opd_sample_files.c:
+	* dae/oprofiled.c:
+	* daemon/opd_image.h:
+	* pp/op_merge.cpp:
+	* pp/samples_file.h:
+	* pp/samples_file.cpp:
+	* pp/Makefile.am:
+	* libabi/Makefile.am:
+	* libabi/abi.cpp:
+	* libabi/abi_test.cpp:
+	* libabi/op_import.cpp: use hash table implementation of libdb
+
+	* gui/oprof_start.cpp:
+	* gui/oprof_start_config.cpp:
+	* gui/oprof_start_config.h:
+	* gui/ui/oprof_start.base.ui:
+	* utils/op_start:
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml: remove module hash table size
+
+	* libdb/.cvsignore: update
+	* libdb/Makefile.am: build libdb-hash.a
+	* libdb/db-hash.h:
+	* libdb/db-hash-debug.c:
+	* libdb/db-hash-manage.c:
+	* libdb/db-hash-test.c:
+	* libdb/db-hash-insert.c:
+	* libdb/db-hash-stat.c:
+	* libdb/db-hash-travel.c: new files implementing a growable hash table
+	* libdb/Makefile.am: update
+
+	* libop/op_config_24.h: remove module hash table. Increase
+	  OP_PRE_WATERMARK, OP_DEFAULT_BUF_SIZE.
+	* libop/op_interface.h: struct op_sample update.
+
+	* module/oprofile.h:
+	* module/oprofile.c: remove hash table
+
+2002-12-02  John Levon  <levon@movementarian.org>
+
+	* configure.in: remove annoying AC_REVISION()
+ 
+2002-12-02  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: couple of minor cleanups
+ 
+2002-12-02  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: fix --deinit, complain on missing
+	  argument
+ 
+2002-12-02  Will Cohen  <wcohen@redhat.com>
+
+	* doc/Makefile.am: Generate opcontrol.
+	* doc/oprofile.1.in: Add opcontrol information.
+	* doc/oprofile.xml: Add opcontrol information.
+
+2002-12-01  Will Cohen  <wcohen@redhat.com>
+
+	* utils/Makefile.am: Add opcontrol.
+	* utils/opcontrol: New.
+
+2002-12-01  John Levon  <levon@movementarian.org>
+
+	* various files: don't use db_tree name outside of libdb,
+	  it's implementation detail for most case
+ 
+2002-11-29  Graydon Hoare  <graydon@redhat.com>
+
+	* module/x86/op_model_p4.c: fix dropped overflows.
+
+2002-11-26  Graydon Hoare  <graydon@redhat.com>
+
+	* module/x86/op_model_p4.c: fix CCCR-clearing logic.
+	* module/x86/cpu_type.c: re-enable Pentium IV.
+
+2002-11-25  John Levon  <levon@movementarian.org>
+
+	* module/x86/cpu_type.c: disable Pentium IV till it works
+ 
+2002-11-23  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/oprofile.xml: start a FAQ. Clarify debug information vs
+	  symbol information. Explain why we don't use dynamic symbol
+
+2002-11-20  John Levon  <levon@movementarian.org>
+
+	* daemon/oprofiled.c:
+	* utils/op_start_25: kernel_only is a no-op on 2.5, no point
+	  in it existing
+ 
+2002-11-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/oprofiled.c: /dev/oprofile/kernel_only doesn't exists
+	  in timer int mode (second pass to fix #637804 ...)
+
+2002-11-17  Graydon Hoare  <graydon@redhat.com>
+
+	* module/x86/op_apic.h:
+	* module/x86/op_apic.c: revert, use copy of kernel code.
+
+2002-11-16  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_kernel.c:
+	* dae/opd_mapping.c:
+	* dae/opd_proc.c:
+	* daemon/opd_image.c:
+	* daemon/opd_kernel.c:
+	* libop++/op_mangling.h:
+	* libutil++/cverb.h:
+	* pp/opp_samples_files.cpp:
+	* pp/samples_file.cpp: doxygen fix
+	* doc/srcdoc/Doxyfile: bump to 0.5 cvs
+
+2002-11-14  Will Cohen  <wcohen@redhat.com>
+
+	* gui/Makefile.am: Use $(bindir).
+	* oprof_report/Makefile.am: Use $(bindir).
+
+2002-11-15  Dave Jones <davej@suse.de>
+
+	* module/x86/cputype.c: Make the AMD case a bit simpler.
+
+2002-11-14  John Levon  <levon@movementarian.org>
+
+	* dae/Makefile.am:
+	* daemon/Makefile.am: proper fix for c++ link
+	  as suggested by Alexandre Duret-Lutz
+ 
+2002-11-14  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* Makefile.am: we installed module in the wrong directory.
+
+2002-11-14  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil/op_file.c: op_simplify_path_name(): strip leading '/'
+	* daemon/oprofiled.c:
+	* dae/oprofiled.c: fix incorrect specification of vmlinux file
+	  through --vmlinux=/foo//bar fixing #637805
+
+2002-11-14  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/op_start_25: /dev/oprofile/kernel_only doesn't exists
+	  in timer int mode. fix #637804
+
+2002-11-14  John Levon  <levon@movementarian.org>
+
+	* dae/*:
+	* daemon/*:
+	* libutil++/op_bfd.h:
+	* pp/samples_container.cpp:
+	* pp/samples_container.h: doxygen anality
+ 
+2002-11-14  John Levon  <levon@movementarian.org>
+
+	* libopt++/popt_options.h:
+	* libopt++/popt_options.cpp: place in popt
+	namespace to avoid clash with getopt.h
+
+	* libabi/abi_test.cpp:
+	* libabi/op_import.cpp:
+	* pp/op_merge.cpp:
+	* pp/op_time_options.cpp:
+	* pp/op_to_source_options.cpp:
+	* pp/oprofpp_options.cpp:
+	* pp/session.cpp: fix for above
+ 
+	* libabi/abi.cpp:
+	* libabi/abi.h: g++ 3.2 fixes
+
+	* libabi/op_import.cpp: uninline extract
+
+	* dae/Makefile.am:
+	* daemon/Makefile.am: fix c++ link hack for -Werror
+ 
+2002-11-13  Graydon Hoare  <graydon@redhat.com>
+
+	( this changeset is mostly Dave Jones' work )
+
+	* README:
+	* TODO:
+	* configure.in:
+	* doc/oprofile.xml:
+	* libop/op_cpu_type.c:
+	* libop/op_cpu_type.h:
+	* libop/op_events.c:
+	* utils/op_help.c:
+	* module/compat.h:
+	* module/compat24.h:
+	* module/op_util.c:
+	* module/x86/Makefile.in:
+	* module/x86/apic_compat.h:
+	* module/x86/arch.h:
+	* module/x86/cpu_type.c:
+	* module/x86/op_fixmap.c:
+	* module/x86/op_nmi.c: minor additions for hammer support.
+
+	* module/x86/op_apic.c:
+	* module/x86/op_apic.h: major cleanup; add hammer support.
+	
+	* module/x86/hammer_entry.S:
+	* module/x86/hammer_ia32entry.S:
+	* module/x86/hammer_op_syscalls.c:
+	* module/x86/hammer_oprofile_nmi.S: new hammer support files.
+
+2002-11-14  John Levon  <levon@movementarian.org>
+
+	* configure.in: hack around case where clean checkout
+	  then ./configure --with-kernel-support
+ 
+2002-11-12  Graydon Hoare  <graydon@redhat.com>
+
+	* autogen.sh: support overriding autotool binary names.
+
+2002-11-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* configure.in: honor --with-extra-libs
+
+2002-11-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* configure.in: add -W -Wall and optionnaly -Werror to user space
+	  compilation
+
+2002-11-11  John Levon  <levon@movementarian.org>
+
+	* dae/Makefile.am:
+	* daemon/Makefile.am: don't dist dummy.cpp
+ 
+2002-11-11  John Levon  <levon@movementarian.org>
+
+	* dae/Makefile.am:
+	* daemon/Makefile.am: hack to fix --enable-abi
+ 
+2002-11-10  John Levon  <levon@movementarian.org>
+
+	* configure.in:
+	* gui/Makefile.am:
+	* oprof_report/Makefile.am: only use X libs where
+	  they're actually wanted
+ 
+2002-11-10  John Levon  <levon@movementarian.org>
+
+	* configure.in: make included sstream work again
+ 
+2002-11-08  Will Cohen  <wcohen@redhat.com>
+
+	* doc/oprofile.xml: Update with IA64 information.
+
+2002-11-10  John Levon  <levon@movementarian.org>
+
+	* Makefile.am: remove oprof_report from SUBDIRS to
+	  avoid separate objdir problem
+ 
+2002-11-10  John Levon  <levon@movementarian.org>
+
+	* most Makefile.am: do the dist_sources trick
+	  properly
+ 
+2002-11-10  John Levon  <levon@movementarian.org>
+
+	* Makefile.am:
+	* configure.in:
+	* dae/Makefile.am:
+	* daemon/Makefile.am:
+	* utils/Makefile.am: s/WITH_KERNEL_SUPPORT/kernel_support
+
+	* configure.in:
+	* dae/Makefile.am:
+	* dae/oprofiled.c:
+	* daemon/Makefile.am:
+	* daemon/oprofiled.c:
+	* libabi/Makefile.am: approximate working --enable-abi more
+
+2002-11-10  John Levon  <levon@movementarian.org>
+
+	* dae/oprofiled.c:
+	* daemon/oprofiled.c: abi tidy
+ 
+2002-11-10  John Levon  <levon@movementarian.org>
+
+	* autogen.sh: be verbose
+ 
+	* gui/Makefile.am:
+	* gui/ui/Makefile.am:
+	* oprof_report/Makefile.am:
+	* oprof_report/ui/Makefile.am: remove duplicate
+	  set MOC/UIC
+ 
+2002-11-10  John Levon  <levon@movementarian.org>
+
+	* Makefile.am: add comment
+
+	* configure.in: no need to subst OPROFILE_25
+ 
+2002-11-09  John Levon  <levon@movementarian.org>
+
+	* TODO: update
+ 
+	* configure.in:
+	* most Makefile.am: make separate objdir work,
+	  except for module (impossible I suppose)
+
+2002-11-09  John Levon  <levon@movementarian.org>
+
+	* autogen.sh: use --foreign
+ 
+2002-11-09  John Levon  <levon@movementarian.org>
+
+	* configure.in: fix --with-kernel-support
+ 
+	* doc/.cvsignore: add *.1
+
+	* libabi/Makefile.am: don't install abi_test
+ 
+2002-11-09  John Levon  <levon@movementarian.org>
+
+	* all cvsignore: add Makefile.in
+ 
+	* gui/Makefile.am: move EXTRA_DIST out of qt check
+
+	* gui/ui/Makefile.am:
+	* oprof_report/ui/Makefile.am: fix AM_CPPFLAGS typo
+ 
+2002-11-09  John Levon  <levon@movementarian.org>
+
+	* all build files: use automake, written by Phil
+ 
+2002-11-09  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/samples_file.cpp: check than samples files version
+	  match expected version fixing #635759
+
+2002-11-07  John Levon  <levon@movementarian.org>
+
+	* configure.in:
+	* module/compat.h: 
+	* module/compat24.h:
+	* module/op_dname.c: 
+	* module/oprofile.c: 
+	* module/x86/op_fixmap.c: 
+	* module/x86/op_nmi.c: remove 2.5 support from old
+	  module code
+ 
+2002-11-06  Will Cohen  <wcohen@redhat.com>
+
+	* configure.in: Tests for ia64 architecture.
+	* dae/opd_mapping.c: Added includes.
+	* oprofile/dae/oprofiled.c (opd_do_samples): Typecast.
+	* libop/op_cpu_type.c (cpu_names, cpu_nr_counters): Add IA64 info.
+	* libop/op_cpu_type.h (op_cpu): Add IA64 enums.
+	* libop/op_events.c: Add defines for IA64 and IA64 events.
+	* libop++/op_print_event.cpp: Change include order to work on IA64.
+	* module/oprofile.c: Include "arch.h" file.
+	(evict_op_entry): Use IRQ_ENABLED macro.
+	(op_do_profile): Use INST_PTR and STATUS macros.
+	(oprof_init_data): Factor out computation.
+	* module/op_util.c (rvmalloc, rvfree): Typecasts.
+	* module/x86/arch.h: New.
+	* README: Update.
+	* utils/op_help.c (main): Add IA64 information.
+
+	* module/ia64/arch.h:
+	* module/ia64/cpu_type.c:
+	* module/ia64/IA64entry.h:
+	* module/ia64/IA64minstate.h:
+	* module/ia64/IA64syscallstub.h:
+	* module/ia64/Makefile.in:
+	* module/ia64/op_ia64_model.h: 
+	* module/ia64/op_pmu.c:
+	* module/ia64/oprofile_stubs.S:
+	* module/ia64/op_syscalls.c: New.
+
+2002-11-06  John Levon  <levon@movementarian.org>
+ 
+	* configure.in: 0.5cvs
+
+	* Makefile.in: mention doxyfile in release steps
+ 
+2002-11-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/op_to_source.cpp: op_to_source --source-with-assembly: avoid
+	  to be confused by source line which look like an asm line and
+	  stop incorrectly the output. This change go in 0.4 release
+
+2002-11-06  John Levon  <levon@movementarian.org>
+
+	* configure.in: bump to 0.4 in prep for release
+
+2002-11-06  John Levon  <levon@movementarian.org>
+
+	* module/x86/cpu_type.c: detect if we actually are
+	  using HT (from Alex T)
+ 
+2002-11-05  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: manual fixes from Will Cohen
+ 
+2002-11-01  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_image.c: fix lookup_dcookie usage
+ 
+	* libabi/.cvsignore: add
+ 
+2002-11-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* module/x86/op_apic.c: restore correctly the lvtpc register
+
+2002-11-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_hw_config.h: define DCOOKIE_SHIFT
+	* daemon/opd_image.c: use it
+
+2002-11-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/Makefile.in: cleanup, build and use libpp.a
+
+2002-10-31  John Levon  <levon@movementarian.org>
+
+	* pp/counter_array.cpp: using namespace std
+ 
+2002-10-31  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/.cvsignore:
+	* dae/opd_image.c:
+	* dae/opd_kernel.c:
+	* dae/opd_sample_files.c:
+	* dae/opd_stats.c:
+	* dae/oprofiled.c:
+	* daemon/opd_image.c:
+	* daemon/opd_sample_files.c:
+	* libop/op_config_24.h: cleanup, including some little merging
+	  from daemon to dae
+
+	* daemon/opd_image.c: change dcookie hashing function
+	
+	* doc/oprofile.xml: typo
+
+2002-10-26  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/file_manip.cpp:
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp: cleanup
+
+	* pp/counter_array.h:
+	* pp/counter_array.cpp: add a bool empty() member to counter_array_t
+	* pp/sample_container_imp.cpp: use it
+
+2002-10-26  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* configure.in: minor cleanup. Use config.h rather than gcc -D option
+
+	* libutil/op_libiberty.h:
+	* libutil++/op_bfd.h:
+	* pp/opp_symbol.h: #include <config.h>
+
+	* libutil/Makefile.in:
+	* pp/Makefile.in: remove BFD_CXXFLAGS
+
+2002-10-24  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.cpp:
+	* libutil++/op_bfd.h: allow to specify explicetly on which symbol we
+	  want to work.
+
+	* pp/op_to_source_options.h:
+	* pp/op_to_source_options.cpp:
+	* pp/op_to_source.cpp: handle --include-symbol, for asm output only
+	  output for symbols with samplels or selected symbols.
+
+	* pp/oprofp.cpp:
+	* pp/samplesc_ontainer.cpp: minor change to reflect op_bfd api change
+
+2002-10-24  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_image.c: revert 64 bit dcookie patch commited
+	  accidentally with 2002-10-18 abi patch.
+
+2002-10-21  Graydon Hoare  <graydon@redhat.com>
+
+	* doc/oprofile.xml: Describe op_import and --enable-abi.
+
+2002-10-20  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/Makefile.in:
+	* pp/session.cpp:
+	* pp/session.h:
+	* pp/op_time_options.cpp:
+	* pp/op_to_source.cpp:
+	* pp/oprofpp.cpp:
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml: handle --session options
+
+2002-10-19  John Levon  <levon@movementarian.org>
+
+	* configure.in: AC_HELP_STRING is too new for my autoconf
+ 
+2002-10-18  Graydon Hoare  <graydon@redhat.com>
+
+	* libabi/*: Add support for abi descriptions, for portability.
+	* daemon/oprofiled.c:
+	* dae/oprofiled.c: Emit abi description on startup.
+	* configure.in: Add --enable-abi option.
+	* make.common.in:
+	* Makefile.in: Support building libabi/
+ 
+2002-10-19  John Levon  <levon@movementarian.org>
+ 
+	* utils/op_start_25: grep -o does not exist on any of
+	  my systems - fix
+ 
+2002-10-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.cpp: calculate symbol size after removing duplicate
+	  symbol. Fix #625678
+
+2002-10-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/op_to_source.cpp:
+	* pp/op_to_source_options.cpp:
+	* pp/op_to_source_options.h:
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml:  allow to pass multiple options to objdump
+
+	* pp/opp_symbol.h:
+	* pp/samples_container.cpp: store symbol size in symbol_entry object.
+
+2002-10-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/child_reader.cpp: In some pathological case getline()
+	  finished too early when child process write on stderr.
+
+2002-10-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutill++/child_reader.cpp: read_block() : cumulate stderr
+	  output rather to overwrite always the same buffer space ...
+
+2002-10-16  John Levon  <levon@movementarian.org>
+
+	* utils/op_start_25: check if mounted, from Will Cohen
+	Also mkdir the mountpoint 
+ 
+2002-10-16  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* configure.in: get linux include path earlier
+
+2002-10-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/oprofiled.c:
+	* daemon/oprofiled: strerrno --> strerror
+
+2002-10-14  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_events.c: typo in L2_DBUS_BUSY_RD PPro event name
+
+2002-10-13  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* README: update contrib
+	* TODO: update
+
+	* gui/oprof_start.cpp: better error message, fixme removal
+
+	* libdb/db-insert.c: fix samples count overflow.
+
+	* libdb/db.h:
+	* libdb/db-manage.c:
+	* libdb/db-debug.c: don't use page zero, use this value as nil page
+	  number, avoid to touch mmaped memory when growing the samples file.
+	* libop/op_config.h: bump OPD_VERSION
+
+2002-10-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/samples_file.h:
+	* pp/samples_file.cpp: move class opp_samples_files ...
+	* pp/opp_samples_files.h:
+	* pp/opp_samples_files.cpp: to these new files
+
+	* pp/Makefile.in:
+	* pp/op_to_source.cpp:
+	* pp/oprofpp.cpp: reflect above change
+
+2002-10-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_sample_files.c: fixme remove
+	* dae/oprofiled.c:
+	* daemon/oprofiled.c: minor error message improvement
+
+	* pp/op_time.cpp:
+	* pp/symbol_container.cpp: fixme remove
+	
+	* pp/samples_file.cpp:
+	* pp/sample_file.h: privatize more data members
+
+2002-10-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/utility.h: op_ratio() new
+	* pp/op_time.cpp:
+	* pp/op_to_source.cpp:
+	* pp/opp_symbol.cpp:
+	* pp/samples_container.cpp: use op_ratio()
+
+2002-10-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/file_manip.cpp:
+	* libutil++/filename_match.cpp:
+	* libutil++/string_manip.cpp:
+	* libutil++/string_manip.h: fix dirname(), basename(), remove rtrim()
+
+2002-10-07  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_image.h:
+	* daemon/opd_image.c:
+	* daemon/oprofiled.c:
+	* libop/op_interface_25.h: update to latest interface
+
+2002-10-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_image.c: allow to free(image->app_name)
+
+2002-10-05  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_image.c:
+	* dae/opd_image.c: spacing
+
+	* dae/opd_mapping.c:
+	* dae/opd_mapping.h: kill op_grow_maps() simplify adding map path
+	* dae/opd_parse_proc.c: use opd_add_mapping()
+
+2002-10-05  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* doc/oprofile.xml: more doc in interpreting results
+
+2002-10-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opp_symbols.cpp:
+	* pp/opp_symbols.h:
+	* pp/outsymbflag.h: implement 'q' 'Q' format flags. Fix #618165
+	* pp/op_time_options.cpp: reject these formats for op_time
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml: document them
+
+2002-10-02  John Levon  <levon@movementarian.org>
+
+	* Makefile.in: use -P to strip dead dirs on dist
+ 
+	* dae/opd_parse_proc.c: spacing
+
+2002-10-02  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/db-*.c/*.h: typedef tweaking for 64 bits arch (signaled
+	  by Dave Jones)
+
+	* remove libdb/ChangeLog, old entries are:
+
+	2002-04-20  Philippe Elie  <phil.el@wanadoo.fr>
+	* db-insert.c: check for count overflow
+
+	2002-04-20  Philippe Elie  <phil.el@wanadoo.fr>
+	* db-manage.c: properly handle already existing db file
+	* db.h: extern "C" wrapper
+
+	2002-04-19  Philippe Elie  <phil.el@wanadoo.fr>
+	* *.c;*.h: make plugin db in oprofile more easy.
+
+	2002-04-18  Philippe Elie  <phil.el@wanadoo.fr>
+	* *.c;*.h: prefix all public identifier with db_.
+	  Use typedef as much I can rather than plain unsigned int.
+
+	2002-04-17  Philippe Elie  <phil.el@wanadoo.fr>
+	* db-debug.c:
+	* db-insert.c:
+	* db-manage.c:
+	* dbtest.c:
+	* db-travel.c:
+	* db.h: add file locking and necessary stuff to allow
+	  plugging db in an imbedded file format like oprofile
+	  samples files.
+
+	2002-04-16  Philippe Elie  <phil.el@wanadoo.fr>
+	* db-manage.c: silly bug fix, db works now with
+	  malloc/realloc or mmap/mremap memory allocation
+	  selected at compile time.
+
+	2002-04-14  Philippe Elie  <phil.el@wanadoo.fr>
+	* first import standalone code to test btree samples files
+
+2002-10-02  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* module/x86/op_msr.h: Hyper threading #define
+	* module/x86/cpu_type.c: include op_msr.h
+
+2002-10-02  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* */*.cpp: using std::xxx; --> using namespace std;
+
+2002-10-01  Will Cohen  <wcohen@redhat.com>
+ 
+	* module/x86/cpu_type.c (p4_threads): New.
+	  (get_cpu_type): Use p4_threads().
+	* doc/oprofile.xml: Add comment about P4 HT support.
+
+2002-10-01  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_image.c: fix non --separate-samples. Still broke.
+ 
+2002-10-01  John Levon  <levon@movementarian.org>
+
+	* libop/op_cpu_type.h:
+	* libop/op_cpu_type.c: make this work on 2.5/normal both.
+	  Does not respect different mounted oprofilefs (yet)
+ 
+2002-10-01  John Levon  <levon@movementarian.org>
+
+	* daemon/.cvsignore: add
+ 
+	* libop/op_interface_25.h: 
+	* daemon/opd_image.h:
+	* daemon/opd_image.c:
+	* daemon/oprofiled.c: fixups for new encoded interface. Fix
+	  --separate-samples
+
+	* utils/op_start_25: startup fixes
+ 
+2002-09-26  Will Cohen  <wcohen@redhat.com>
+
+	* module/x86/op_model_p4.c: Correct TC_DELIVER_MODE cccr select.
+ 
+2002-09-23  Graydon Hoare  <graydon@redhat.com>
+
+	* dae/oprofiled.c:
+	* daemon/op_sample_files.c:
+	* daemon/oprofiled.c:
+	* pp/op_to_source.c:
+	* utils/op_help.c: u8 unit mask -> u16 unit-mask. I'm not sure this
+	  catches *all* the instances, but it does appear to be an improvement
+
+2002-09-30  William Cohen  <wcohen@redhat.com>
+
+	* libutil++/string_manip.cpp (sample_filename): Correct declaration.
+	* pp/samples_container.h: Correct add_samples() declaration. 
+
+2002-09-29  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/string_manip.cpp:
+	* libutil++/string_manip.h: sample_filename() new
+	
+	* pp/samples_container.cpp:
+	* pp/samples_container.h: add_samples() new
+	
+	* pp/op_merge.cpp:
+	* pp/op_time.cpp:
+	* pp/oprofpp.cpp:
+	* pp/samples_file.cpp: use them + minor cleanup
+
+2002-09-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libopt++/popt_options.cpp: fix #615760, in rare case
+	  oprofpp called with lot of invalid arguments segfault
+	  during the help printing. All post-profile tools are
+	  concerned by this fix.
+
+	* doc/oprofile.xml: small improvements
+
+	* libutil++/op_bfd.cpp: improve error message when bfd_openr() fails.
+	
+	* TODO: update
+
+2002-09-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_image.c:
+	* dae/opd_kernel.c:
+	* dae/opd_parse_proc.c:
+	* dae/opd_parse_parse.h:
+	* dae/opd_proc.c:
+	* dae/opd_sample_files.c:
+	* daemon/opd_image.c:
+	* daemon/opd_kernel.c:
+	* daemon/opd_sample_files.c:
+	* libop/op_cpu_type.c:
+	* libop/op_events.c:
+	* libop/op_events_desc.c:
+	* libopt++/popt_options.cpp:
+	* libutil/op_deviceio.c:
+	* libutil/op_file.c:
+	* libutil++/file_manip.cpp:
+	* libutil++/file_manip.h:
+	* libutil++/string_manip.h:
+	* pp/op_to_source.cpp: doxygen fix
+
+2002-09-27  John Levon  <levon@movementarian.org>
+
+	* configure.in: add --with-kernel-support for 2.5
+ 
+	* daemon/oprofiled.c: fix comment, give exit message on sig
+
+	* utils/Makefile.in:
+	* utils/op_stop_25: add 2.5 op_stop, no 2.5 op_dump
+
+	* utils/op_start_25: use enable
+ 
+2002-09-25  Bob Montgomery  <bobm@fc.hp.com>
+
+	* module/oprofile.c: avoid to dump zero samples count, fix #615087
+
+2002-09-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_image.c: fix #615166, ensure we recognize an
+	  existing image struct so we don't try to create db_tree_t
+	  object for the same samples files.
+	* db/db-debug.c: display page index when something goes wrong
+	* db/db-insert.c: be more strict on assertion
+
+2002-09-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/Makefile.in: remove dependencies for doc/html.xsl
+
+2002-09-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/xsl/.cvsignore: new
+	* doc/oprofile.xml: document watchdog problem
+
+2002-09-25  John Levon  <levon@movementarian.org>
+
+	* module/x86/op_nmi.c: OP_MAX_CPUS is not necessarily
+	  static so use NR_CPUS for array instead. Fix a prototype.
+ 
+2002-09-23  Graydon Hoare  <graydon@redhat.com>
+ 
+	* doc/oprofile.xml: Add some P4 documentation.
+	* configure.in: Add detection of different stylesheet paths.
+	* doc/xsl/xhtml.xsl.in: Parameterize by configure's result.
+	* doc/xsl/xhtml.xsl: Remove.
+	* dae/opd_sample_files.c: Change unit mask from 8 to 16 bits.
+	* gui/oprof_start.cpp: Change number of unit masks from 7 to 16.
+	* gui/ui/oprof_start.base.ui: Likewise.
+	* libop/op_cpu_type.c: Add P4 CPU type.
+	* libop/op_events.h: Change unit mask bit width, number.
+	* libop/op_events.c: Add P4 events, unit masks.
+	* libop_op_hw_config.h: Set OP_MAX_COUNTERS to 8.
+	* libop++/op_print_event.cpp: Change unit mask bit width.
+	* libop++/op_print_event.h: Likewise.
+	* module/oprofile.c: Add extra sysctls for counters 5-8.
+	* module/x86/Makefile.in: Add op_model_p4.o to obj list.
+	* module/x86/cpu_type.c: Change CPU identification to handle P4.
+	* module/x86/op_apic.c: (enable_apic): APIC_MAXLVT < 4, not != 4.
+	(check_cpu_ok): Accept CPU_P4.
+	* module/x86/op_model_p4.c: New file.
+	* module/x86/op_nmi.c: (get_model): Handle CPU_P4.
+	Add sysctl names for counters 5-8.
+	* module/x86/op_x86_model.h: Declare extern op_p4_spec.
+
+2002-09-24  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_image.c:
+	* dae/opd_image.h:
+	* dae/opd_kernel.c:
+	* dae/oprofiled.c:
+	* dae/p_module.h:
+	* dae/opd_image.c:
+	* dae/opd_kernel.c:
+	* dae/oprofiled.c:
+	* dae/p_module.h: small blank/comment change to minimize
+	  diff between daemon and dae dir.
+
+2002-09-23  John Levon  <levon@movementarian.org>
+
+	* configure.in: fix for 2.5 patch to build
+ 
+2002-09-23  John Levon  <levon@movementarian.org>
+
+	* utils/Makefile.in:
+	* utils/op_start_25: 2.5 patch start script
+ 
+2002-09-23  John Levon  <levon@movementarian.org>
+  
+  	* dae/opd_image.c:
+
+	* libop/op_cpu_type.c: fix arrays
+ 
+2002-09-23  John Levon  <levon@movementarian.org>
+
+	* utils/op_start: use right value for RTC CPU
+ 
+2002-09-23  John Levon  <levon@movementarian.org>
+
+	* libop/op_config.h:
+	* libop/op_config_24.h:
+	* libop/op_config_25.h: split config file up
+ 
+	* daemon/opd_kernel.c:
+	* daemon/oprofiled.c: include op_config_25.h
+
+	* dae/oprofiled.c:
+	* dae/opd_image.c:
+	* dae/opd_kernel.c:
+	* dae/opd_mapping.c: include op_config_24.h
+
+	* module/oprofile.h: include op_config_24.h
+ 
+	* gui/oprof_start.cpp:
+	* gui/oprof_start_config.cpp: fix from above
+	  (old support only right now)
+
+	* libop/op_cpu_type.h: introduce 2.5-patch CPU_TIMER_INT
+
+2002-09-23  John Levon  <levon@movementarian.org>
+
+	* libop/op_interface_25.h: 2.5 interface
+
+	* daemon/opd_image.c:
+	* daemon/opd_sample_files.c:
+	* daemon/oprofiled.c:
+
+	* libop++/op_print_event.h: fix header
+
+	* pp/op_to_source.cpp: change from above
+
+2002-09-23  John Levon  <levon@movementarian.org>
+
+	* daemon/: new 2.5 patch daemon code. WIP
+
+	* configure.in:
+	* Makefile.in: detect 2.5 patch and build appropriately
+ 
+2002-09-23  John Levon  <levon@movementarian.org>
+
+	* module/x86/op_msr.h: match kernel naming
+
+	* module/x86/op_model_athlon.c: from above
+ 
+2002-09-22  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/db-insert.c: bad cut&paste. Shame on me, I broke the build...
+
+2002-09-22  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/db-insert.c: handle samples count overflow.
+	
+	* libdb/Makefile.in: db-test new target not built by default.
+	* libdb/db-debug.c: more strict checking
+	* libdb/db-test.c: allow db-test to be used as "db-test samples_dir/*"
+
+2002-09-22  John Levon  <levon@movementarian.org>
+
+	* dae/opd_stats.c: nicify
+ 
+	* module/x86/op_model_pproc.c:
+	* module/x86/op_model_athlon.c: drop macro prefixes, ws fixes
+
+	* module/x86/op_nmi.c: fix save/restore possible crash, init
+	  possible leak
+ 
+2002-09-22  Philippe Elie <phil.el@wanadoo.fr>
+
+	* module/x86/op_model_pproc.c: fix p6_start()
+	* module/x86/op_model_athlon.c: fix athlon_start()
+	* module/x86/op_nmi.c: pmc_save_registers() typo when checking
+	  null for kmalloc return value
+ 
+2002-09-20  Graydon Hoare  <graydon@redhat.com>
+
+	* module/x86/op_x86_model.h: New interface for MSRs.
+	* module/x86/op_nmi.c: Use interface.
+	* module/x86/op_model_ppro.c: New, code from op_nmi.c.
+	* module/x86/op_model_athlon.c: New, code from op_nmi.c.
+	* module/x86/Makefile.in: Reflect new files.
+
+2002-09-20  John Levon  <levon@movementarian.org>
+
+	* libutil++/op_bfd.cpp: fix a bug where we broke
+	  with multiple executable sections due to sorting
+	  the symbols wrongly. Fix #617288 and the duplicated
+	  #617264
+
+	* libutil++/op_bfd.h: fix an outdated comment
+
+	* dae/opd_image.c: fix comment
+ 
+2002-09-19  Graydon Hoare  <graydon@redhat.com>
+
+	* libop/op_events.h:
+	* libop/op_events_desc.c: Move descriptions from here.
+	* libop/op_events_desc.h:
+	* libop/op_events.c: To here.
+	(um_*): Add new static unit masks.
+	(op_events): Use pointers to static unit masks.	
+	* libop++/op_print_event.h:
+	* libop++/op_print_event.cpp:
+	* gui/oprof_start.h:
+	* gui/oprof_start.cpp: 
+	* utils/op_help.c: Make compatible with struct changes.
+
+2002-09-18  John Levon  <levon@movementarian.org>
+
+	* utils/op_start: give an example for unit mask.
+ 
+2002-09-18  Will Cohen  <wcohen@redhat.com>
+
+	* libop/op_mangle.c: (op_mangle_filename): Correct logic for
+	  generating mangled name. Fix #611107
+	
+2002-09-15  John Levon  <levon@movementarian.org>
+
+	* libop/op_event.c: fix comment
+ 
+2002-09-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* module/x86/cpu_type.c: allow to force RTC mode.
+	* dae/oprofiled.c: checking when we need to backup samples
+	  dir in RTC mode was broken.
+
+2002-09-14  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_config.h: remove OP_MIN/MAX_PID, OP_MIN/MAX_PGRP
+	* gui/oprof_start.cpp: pid_filter/pgrp_filter accept all integer
+
+2002-09-13  John Levon  <levon@movementarian.org>
+
+	* acinclude.m4: another tweak
+ 
+2002-09-13  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* Makefile.in: never remove doc/oprofile.html.
+	* acinclude.m4: small work-around for sed-related problem
+
+2002-09-12  Will Cohen  <wcohen@redhat.com>
+
+	* Makefile.in: Separate kernel and user code build rules.
+
+2002-09-12  Will Cohen  <wcohen@redhat.com>
+ 
+	* libutil++/child_reader.h (child_reader): Add missing "std::".
+	* libutil++/child_reader.cpp (error_str): Ditto.
+ 
+2002-09-12  John Levon  <levon@movementarian.org>
+
+	* acinclude.m4: update from upstream
+ 
+2002-09-12  John Levon  <levon@movementarian.org>
+
+	* acinclude.m4: fix moc2/moc conflict, cache val
+ 
+2002-09-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/child_reader.cpp:
+	* libutil++/child_reader.h: fix for child terminated by a signal
+	* gui/oprof_start_util.cpp:
+	* pp/op_to_source.cpp: use the the new child_reader interface
+
+2002-09-11  John Levon  <levon@movementarian.org>
+
+	* acinclude.m4:
+	* configure.in:
+	* gui/Makefile.in: replace with new Qt configure script
+ 
+2002-09-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* acinclude.m4: fix qt3 detection in some corner case.
+
+2002-09-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/samples_container.cpp:
+	* pp/samples_container.h: Check at run time we don't try to use an
+	  unitialized samples_container_t.
+
+2002-09-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/op_time.cpp: exit sooner when no samples files are available.
+
+2002-09-09  Will Cohen  <wcohen@redhat.com>
+
+	* dae/opd_kernel.c (struct opd_module): 
+	  (kernel_start, kernel_end):
+	  (opd_parse_kernel_range):
+	  (opd_drop_module_sample):
+	  (opd_find_module_by_eip):
+	  (opd_handle_module_sample):
+	  (opd_handle_kernel_sample):
+	  (opd_eip_is_kernel):
+	* dae/opd_kernel.h (opd_handle_kernel_sample):
+	  (opd_eip_is_kernel):
+	* dae/opd_mapping.c (opd_put_mapping):
+	* dae/opd_mapping.h (struct opd_map):
+	  (opd_is_in_map):
+	  (opd_map_offset):
+	* dae/opd_parse_proc.c (opd_add_ascii_map):
+	* dae/opd_proc.c(verb_show_sample):
+	  (opd_put_image_sample):
+	* dae/opd_proc.h (opd_put_image_sample): Change things referring
+	  to addresses to unsigned long for operation on 64-bit machines.
+ 
+2002-09-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* all source file : remove email address from @author
+
+2002-09-05  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_interface.h: (op_sample, op_note): Make compatible with
+	  64-bit targets.
+	* dae/opd_proc.c: (opd_put_sample): Adjust verbprintf arguments.
+	  (opd_handle_fork): Ditto.
+	* dae/oprofiled.c: (opd_do_samples): Ditto.
+
+2002-09-04    Will Cohen  <wcohen@redhat.com>
+
+	* module/op_rtc.c: move to ...
+	* module/x86/op_rtc.c: here
+	* module/Makefile.in:
+	* module/x86/Makefile.in: reflect file move
+
+2002-09-03  Will Cohen  <wcohen@redhat.com>
+
+	* module/oprofile.h: (regparm3): remove, use FASTCALL instead.
+	* module/oprofile.c: (op_do_profile): Eliminate regparm3.
+
+2002-09-03  Will Cohen  <wcohen@redhat.com>
+
+	* module/oprofile.c: (oprof_read, oprof_note_read): Return ssize_t.
+
+2002-08-30  Will Cohen <wcohen@nc.rr.com>
+
+	* Makefile.in:
+	* make.common.in: more DESTDIR change
+
+2002-09-02  Dave Jones <davej@suse.de>
+
+	* module/x86/cpu_type.c: support hammer in ia32 mode
+
+2002-09-02  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: mention Qt 3
+ 
+2002-08-30  Will Cohen <wcohen@nc.rr.com>
+
+	* doc/Makefile.in: Set MANDIR and CATDIR based on DESTDIR.
+
+2002-08-16  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_kernel.c:
+	* dae/opd_kernel.h:
+	* dae/opd_proc.c:
+	* dae/opd_proc.h:
+	* dae/oprofiled.c:
+	* libop/op_hw_config.h:
+	* libop/op_interface.h:
+	* module/oprofile.c:
+	* module/oprofile.h: change the layout of data used between
+	  daemon/module (32 bits pid fix for 2.5.31)
+
+	* gui/oprof_start_config.h: use pid_t
+
+	* libutil/op_fileio.c: op_read_file(), op_write_file(), use %lu
+	  and cast, uglier solution but more portable than last fix
+
+	* utils/op_start: typo
+
+2002-08-14  William Cohen  <wcohen@nc.rr.com>
+ 
+	* libutil/op_fileio.c (op_read_file): Change fprintf specifier.
+	(op_write_file): Ditto.
+
+2002-08-08  Will Cohen  <wcohen@nc.rr.com>
+
+	* utils/op_start: Do not compute quantity of counters from
+	  CPUTYPE. Get counter names directly from /proc/sys/dev/oprofile.
+
+2002-08-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* Makefile.in:
+	* doc/Makefile.in: delete generated doc only on a make maintainerclean
+
+	* pp/opp_symbol.cpp: small cleanup
+
+2002-08-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_parse.c:
+	* dae/opd_proc.c:
+	* dae/opd_proc.h: fix #591275 which is a re-hash of #584723 we can
+	  now safely assume than proc->maps[0] is the primary image.
+	  Problem reported by William cohen
+
+2002-08-03  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/string_manip.h:
+	* libutil++/string_manip.cpp: separate_token() treat escape sequence
+
+2002-07-30  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start.cpp: apply misssing part from this patch
+	  2002-07-27  Will Cohen  <wcohen@nc.rr.com>
+
+	* dae/oprofiled.c:
+	* doc/oprofile.1.in:
+	* util/oprof_start:
+	* doc/oprofile.xml: clarify than pgrp filter is the tty program
+	  group id
+
+2002-07-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_cpu_type.c:
+	* libop/op_cpu_type.h:
+	* libop/op_events.h:
+	* pp/samples_file.cpp: op_get_cpu_nr_counters() / op_get_nr_counters()
+	  merge
+
+	* module/compat22.h:
+	* module/x68/op_apic.c: __cli()/__sti() removal, this fix build up
+	  to 2.5.29
+
+	* module/op_fixmap.c: fix test_bit() warning
+
+2002-07-27  Will Cohen  <wcohen@nc.rr.com>
+ 
+	* gui/oprof_start_config.cpp: config_setting::config_setting()
+	  uses uname to guess path to vmlinux. 
+
+2002-07-27  John Levon  <levon@movementarian.org>
+
+	* dae/opd_stats.h:
+	* dae/opd_stats.c: 
+	* dae/opd_proc.c: log unique samples vs. sample entries
+ 
+2002-07-27  Will Cohen  <wcohen@nc.rr.com>
+ 
+	* dae/oprofiled.c:
+	* gui/oprof_start.cpp:
+	* libop/op_cpu_type.h:
+	* libop/op_cpu_type.c: op_get_nr_counter() new, localize
+	  op_nr_counter computations.
+
+2002-07-26  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* utils/op_start: fix #587093, some option of op_start
+	  was incorrectly checked
+
+2002-07-26  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/op_time_options.cpp:
+	* pp/oprofpp_options.cpp: output format header or details are illegal
+	  if not combined with other output format flag
+
+	* pp/opp_symbol.cpp:
+	* pp/opp_symbol.h:
+	* pp/oprofpp.cpp:
+	* pp/outsymbflag.h: minor cleanup
+
+2002-07-25  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: bump to 0.4cvs
+ 
+2002-07-24  Kevin Puetz  <puetzk@iastate.edu>
+
+	* gui/ui/oprof_start.base.ui: fix resize
+ 
+2002-07-22  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil/op_fileio.c:
+	* libutil/op_fileio.h: opd_get_link() new, read a symlink filename
+	* libutil++/file_manip.cpp:
+	* libutil++/file_manip.h: opd_read_link() use the above function
+
+	* dae/opd_image.c:
+	* dae/opd_parse_proc.c: fix #584723 we can not assume than the first
+	  map in /proc/pid/maps is the the map for the binary image
+
+2002-07-21  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: bump to 0.3
+ 
+2002-07-17  William Cohen  <wcohen@nc.rr.com>
+ 
+	* gui/oprof_start_util.cpp: get HZ from sysconf
+
+2002-07-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start.base.ui: revert patch 2002-07-13, reapply
+	  the same modification with QT2 designer rather QT3 designer
+
+2002-07-14  John Levon  <moz@compsoc.man.ac.uk>
+
+	* Makefile.in: set KVERS properly
+ 
+	* dae/oprofiled.c: remove eip == 0 checking
+ 
+	* module/oprofile.c: do check in evict_op_entry() instead,
+	  as suggested by Philippe
+ 
+2002-07-13  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* make.deps:
+	* gui/Makefile.in: fix include search path for dependencies generation
+
+2002-07-13  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/oprofiled.c: don't throw away last samples on shutdown
+	  notification
+ 
+2002-07-13  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml:
+	* gui/oprof_start.cpp:
+	* gui/oprof_start_config.cpp:
+	* gui/oprof_start_config.h:
+	* gui/oprof_start.base.ui: remove kernel-range specification UI
+
+2002-07-12  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+ 
+	* dae/oprofiled.c:
+	* libop/op_interface.h: 
+	* module/oprofile.c: 
+	* module/oprofile.h:
+	* module/x86/op_nmi.c: 
+	* module/x86/op_syscalls.c: replace partial_stop,quitting,prof_on
+	  with single state variable, and clean up how shutdown is triggered.
+ 
+	* module/oprofile.c: always init data->entries etc. for every CPU
+ 
+2002-07-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* Makefile.in: typo in clean target
+
+	* module/compat.h:
+	* module/compat24.h:
+	* module/oprofile.c:
+	* module/x86/op_nmi.c: support for online/offline cpu for 2.5.23+
+
+2002-07-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* Makefile.in:
+	* module/Makefile.in:
+	* module/x86/Makefile.in: move all goal to the topdir Makefile
+
+2002-07-10  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* pp/op_time.cpp:  errno for file permission problem is
+	  EACCES not EPERM ...
+
+	* module/x86/op_apic.c:
+	* module/x86/op_fixmap.c:
+	* module/x86/op_nmi.c: revert partially the 2002-06-26 patch, preempt
+	  need rather to be fixed before/after calling the
+	  op_int_operation functions pointer.
+
+2002-07-09  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start.cpp: use <ctime> not <time.h>
+	* libutil/op_libiberty.c: don't assume than string.h is included
+	   by libiberty.h as in old gcc release
+
+2002-07-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp: pass vector by const reference rather
+	  than by value
+
+	* pp/op_to_source.cpp: always output file even if the corresponding
+	  source file does not exist
+
+2002-07-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libopt++/popt_options.cpp: provide a dtor in derived class
+
+	* doc/oprofile.1.in:
+	* pp/op_to_source.cpp: --output --no-output are meaningfull
+	  in all case.
+
+2002-07-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start.cpp:
+	* pp/sample_container_imp.cpp:
+	* pp/symbol_container_imp.cpp:
+	* pp/op_to_source.cpp: fix an ISO corner case (3.4.2 #2)
+
+2002-07-05  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/filename_match.h:
+	* libutil++/filename_match.cpp: constify
+
+	* module/Makefile.in: small typo
+	* Makefile.in: do not make uninstall in module/arch
+
+	* pp/op_to_source_options.h:
+	* pp/op_to_source_options.cpp:
+	* pp/op_to_source.cpp: general cleanup, remove the output class and
+	  use free function instead, doxygen'ize them.
+
+2002-07-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_events.cpp:
+	* libop/op_events.h:
+	* module/x86/op_nmi.c:
+	* dae/oprofiled.c: op_check_events() no longer accept 0 as valid events
+
+	* pp/opp_symbol.cpp: small dead code removal
+	* pp/opp_symbol.h: doxygen comment fix
+
+	* configure.in: do not use AC_CHECK_FILE: this macro generate
+	  spurious warning with autoconf 2.2.13
+
+	* pp/op_to_source_options.h:
+	* pp/op_to_source_options.cpp:
+	* pp/op_to_source.cpp:
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml: implement --objdump-params='params_strings'
+	  allowing to pass additional parameters to objdump.
+
+2002-07-03  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil/op_fileio.c: remove a FIXME, it's not worthwhile to try to
+	  use GNU getline() instead of op_get_line()
+
+	* pp/op_time.cpp:
+	* pp/op_time_options.cpp:
+	* pp/op_time_options.h:
+	* pp/oprofpp.cpp: remove minor FIXME
+
+	* pp/opp_symbol.h: class outut_symbol: clarify why, with the current
+	  design, some function are public member rather private.
+
+2002-07-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* configure.in:
+	* module/compat.h: fix compile error with kernel <= 2.2.17
+
+2002-07-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: minor upadte
+
+	* configure.in: support 2.5.20
+
+	* dae/opd_image.c:
+	* dae/opd_proc.c:
+	* libop++/op_print_event.h:
+	* libutil/op_popt.c:
+	* pp/op_merge.cpp:
+	* pp/samples_container.cpp:
+	* pp/symbol_container_imp.cpp:
+	* pp/symbol_functors.h: minor #include tweak
+
+2002-06-30  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/db.h:
+	* libdb/db-manage.c: constify db_sync() parameter.
+
+	* dae/opd_image.c: fix #574459 "vmlinux samples file not backed up
+	  by op_session". Small cleanup by adding opd_for_each_image()
+
+2002-06-29  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* libutil++/filename_match.cpp:
+	* libutil++/filename_match.h: add a convenience ctor.
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml:
+	* op_time.cpp: better error message for EPERM problem
+	* op_time_options.h:
+	* op_time_options.cpp: allow the user to specify explicitely on which
+	  filename he want to work
+
+2002-06-29  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* acinclude.m4:
+	* configure.in:
+	* make.common.in:
+	* gui/Makefile.in:
+	* gui/ui/Makefile.in: better qt3 handling
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml: fix oprof_start --option=blah
+
+2002-06-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* .cvsignore: minor fix
+
+	* configure.in:
+	* acinclude.m4: ugly temporary hack to compile with kde3/qt3
+	* oprof_start.cpp:
+	* oprof_start_config.cpp: gcc-3.1 and qt3 fix (qt3 have an
+	  hex() somewhere ...)
+
+	* module/x86/op_fixmap.c: minor comment fix
+
+2002-06-26  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* module/compat.h:
+	* module/x86/op_apic.c:
+	* module/x86/op_fixmap.c:
+	* module/x86/op_nmi.c: preemptible kernel support. This fix point
+	  #2 of kernel_src/Documentation/preempt-locking.txt
+
+2002-06-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml: document op_start --kernel-range option
+	* gui/oprf_start.cpp:
+	* gui/oprof_start.h:
+	* gui/oprof_start_config.cpp:
+	* gui/oprof_start_config.h: 
+	* gui/ui/oprof_start_base.ui:
+	* utils/op_start: implement --kernel-range
+
+	* gui/Makefile.in: force ui sub-dir build
+	
+2002-06-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* configure.in: new AX_KERNEL_VERSION()  to allow kernel version check,
+	  use it to check minimal kernel version and fix 2.5.19 breakage
+	* module/.cvsignore:
+	* module/x86/.cvsignore: add .*.cmd
+	* module/Makefile.in:
+	* module/x86/Makefile.in: fix 2.5.19 make through EXTRA_CFLAGS_MODULE
+	* module/compat22.h: fix missing BUG() definition in 2.2 kernel
+	* module/x86/oprofile_nmi.S: fix minor 2.2 compile problem
+
+	* pp/op_to_source.cpp: minor comment fix
+
+2002-06-18  John Levon  <moz@compsoc.man.ac.uk>
+
+	* utils/op_start:
+	* pp/samples_file.h:
+	* libop/op_config.h:
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml:
+	* dae/oprofiled.c:
+	* dae/opd_kernel.h:
+	* dae/opd_kernel.c: don't parse System.map any more,
+	  now we work based off vmlinux alone
+	 
+	* dae/opd_proc.c: move eip_is_kernel() into opd_kernel.c
+ 
+2002-06-18  John Levon  <moz@compsoc.man.ac.uk>
+
+	* README:
+	* doc/oprofile.xml: update credits
+ 
+2002-06-16  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/op_time_options.h:
+	* pp/op_time_options.cpp: move private stuff out of
+	  options namespace
+ 
+2002-06-16  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/counter_util.cpp: stop when we reach the first
+	  available counter for sorting
+
+	* pp/op_to_source.cpp: use absolute sample file name 
+
+	* pp/samples_file.cpp: better error message
+
+2002-06-16  John Levon  <moz@compsoc.man.ac.uk>
+
+	* various: remove spurious == false, == true
+ 
+2002-06-15  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/oprofiled.c:
+	* libop/op_interface.h:
+	* libop++/op_print_event.h:
+	* module/oprofile.c: define a buffer head for the module
+	  buffer interface, and use it
+ 
+	* module/Makefile.in: oops, install the module properly
+ 
+2002-06-15  John Levon  <moz@compsoc.man.ac.uk>
+
+	* libop/Makefile.in:
+	* libop/op_cpu_type.h:
+	* libop/op_cpu_type.c: new files split out, defines
+	  changed
+
+	* dae/opd_proc.c:
+	* dae/opd_sample_files.c:
+	* dae/oprofiled.c:
+	* gui/oprof_start.cpp:
+	* libop/op_events.h: 
+	* libop/op_events.c: 
+	* libop/op_events_desc.h:
+	* libop/op_events_desc.c: 
+	* libop/op_interface.h:
+	* libop++/op_print_event.h: 
+	* module/oprofile.h:
+	* module/x86/op_nmi.c: changes from above
+ 
+2002-06-15  John Levon  <moz@compsoc.man.ac.uk>
+
+	* Makefile.in: compile module early as it's most
+	  likely to fail
+ 
+	* TODO: update
+ 
+	* doc/oprofile.xml:
+	* configure.in: remove unneeded --with-cc
+ 
+	* module/x86/Makefile.in: use USE_STANDARD_AS_RULE
+ 
+	* module/x86/op_nmi.c: add preemption exclusion
+
+2002-06-15  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/opd_parse_proc.c: remove FIXME. We are fine to
+	  assume first entry in maps is the executable, because
+	  this is exactly what the kernel does (see /proc/pid/exe)
+ 
+2002-06-15  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/oprofpp.cpp: call check_mtime() correctly
+	  for shared libraries
+ 
+2002-06-14  John Levon  <moz@compsoc.man.ac.uk>
+
+	* libop/op_events.c: add warning
+ 
+	* module/Makefile.in: link against libop.a like I meant to
+ 
+	* module/oprofile.h:
+	* module/oprofile.c: readability cleanup
+ 
+2002-06-11  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/compat.h:
+	* module/x86/arch_compat.h: remove arch_compat.h,
+	  add BUG_ON()
+
+	* module/op_util.c: return -EINVAL not 1 from check_range() 
+
+	* module/oprofile.c: use BUG_ON() in release functions,
+	  fix use of check_range, remove spurious check for malloc
+	  failure (already checked)
+
+	* module/oprofile.h: clarify API 
+
+	* module/x86/op_msr.h: new file, MSR back-compat
+
+	* module/x86/op_nmi.c:
+	* module/x86/op_apic.c: use it
+ 
+2002-06-10  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+ 
+	* configure.in: remove old checks we don't need.
+	  Add to EXTRA_CFLAGS not KCFLAGS 
+
+	* module/Makefile.in: update to use Rules.make and
+	  kernel rules.
+ 
+	* module/op_init.c: make this one include kernel modversion
+	  stuff for 2.2
+ 
+	* module/oprofile.h: remove __cacheline_aligned in wrong place
+
+	* module/x86/Makefile.in: use Rules.make (hacky)
+
+	* module/x86/arch.mak: remove
+ 
+	* module/x86/op_fixmap.c: add missing header
+ 
+	* module/x86/op_syscalls.c: my_sys_exit is not static
+ 
+2002-06-09  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/cverb.h:
+	* libutil++/cverb.cpp: cverb ostream initializations
+	* pp/op_merge.cpp:
+	* pp/op_time_options.cpp:
+	* pp/op_to_source_options.cpp:
+	* pp/oprofpp_options.cpp: use it
+
+	* utils/Makefile.in: fix a typo in lib dependencies
+
+2002-06-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* pp/samples_container.cpp:
+	* pp/samples_container.h: add an hint parameter to add()
+	  used to avoid recording all samples.
+	* pp/oprofpp.cpp: use it for the -s option. This change
+	  slightly behavior of oprofpp -s, now percent are relative
+	  to the selected symbol, not to the whole samples file.
+	  Performance of oprofpp -s are improved a lot (40 times on vmlinux)
+
+	* utils/Makefile.in: missing libs dependencies
+
+2002-06-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/Makefile.in:
+	* dae/Makefile.in:
+	* gui/Makefile.in: update dependencies for library
+
+2002-06-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libopt++/popt_options.cpp:
+	* libopt++/popt_options.h: memory leak fix
+
+2002-06-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/Makefile.in: fix bfd compilation problem
+	  with gcc >= 3.0 and old bfd.h
+	* module/Makefile.in:
+	* module/x86/Makefile.in: fix -Werror typo
+	* pp/op_merge.cpp:
+	* pp/op_time_options.cpp:
+	* pp/op_to_source_options.cpp:
+	* pp/oprofpp_options.cpp: work around for cverb
+	  initialisations and gcc 2.91.
+	* pp/op_to_source.cpp: use the right comand line argument.
+
+2002-06-07  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* libutil++/utility.h: fix stupid bug, add scoped_array
+
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp: use it
+
+2002-06-07  John Levon  <moz@compsoc.man.ac.uk>
+
+	* libutil++/utility.h: add a scoped_ptr
+
+	* pp/op_to_source.cpp:
+	* pp/samples_container.h:
+	* pp/samples_container.cpp: use it
+
+2002-06-07  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/opd_kernel.c: remove some duplicate code
+ 
+2002-06-07  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/opp_symbol.cpp: kill last of the accursed char
+	  arrays
+
+2002-06-07  John Levon  <moz@compsoc.man.ac.uk>
+
+	* libutil++/op_bfd.cpp:
+	* libutil++/op_bfd.h:
+	* libutil++/verbose_ostream.h:
+	* pp/op_merge.cpp:
+	* pp/op_time_options.cpp:
+	* pp/oprofpp_options.cpp:
+	* pp/op_to_source_options.cpp: remove verbose_ostream
+	  in favour of a much simpler solution
+ 
+	* module/oprofile.h: remove dead prototype
+ 
+2002-06-06  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/x86/Makefile.in:
+	* module/Makefile.in: remove 2.91 check, add 2.5 check
+ 
+	* module/compat22.h:
+	* module/compat24.h:
+	* module/apic_up_compat.h: move to ...
+
+	* module/x86/op_apic.h:
+	* module/x86/apic_compat.h: ... here
+ 
+	* module/compat.h: move arch stuff to ...
+
+	* module/x86/arch_compat.h: ... here
+ 
+2002-06-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* configure.in: remove gcc 2.91 check
+	* make.common.in: use -Werror even for gcc 2.91
+	* gui/oprof_start.cpp:
+	* libutil++/op_bfd.cpp:
+	* pp/derive_files.cpp:
+	* pp/op_to_source.cpp: small tweak for gcc 2.91 and -Werror
+
+2002-06-06  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/op_rtc.c: use check_range
+ 
+2002-06-06  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: fix typo so non-2.91 is detected
+ 
+	* module/Makefile.in:
+	* module/x86/Makefile.in: enable -Werror
+
+	* module/op_dname.c:
+	* module/oprofile.h:
+	* module/oprofile.c:
+	* module/op_util.h:
+	* module/op_util.c:
+	* module/x86/op_nmi.c: add op_util.h, make
+	  op_check_range a function check_range
+ 
+2002-06-06  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/Makefile.in: use @CC@, add clean for x86
+
+	* module/compat24.h: add path_hash prototype 
+ 
+	* module/x86/Makefile.in: use @CC@, make sure
+	  options get picked up
+ 
+2002-06-06  John Levon  <moz@compsoc.man.ac.uk>
+
+	* libutil/op_get_time.c: return "" not NULL
+	  on failure, so we don't try to printf NULL
+ 
+	* module/op_dname.c: do_path_hash_2_4 should not be static now 
+
+	* module/oprofile.c: add const
+ 
+2002-06-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* module/x86: new directory, for now some small portion
+	  of x86 dependant code remains in module/* mainly in
+	  oprofile.[ch]. This patch also don't take care about
+	  libop/* which are architecture dependant
+
+	* module/op_apic.c:
+	* module/op_nmi.c:
+	* module/op_syscalls.c:
+	* module/oprofile_nmi.S:
+	* module/op_fixmap.c: move this file to ...
+	* module/x86/op_apic.c:
+	* module/x86/op_nmi.c:
+	* module/x86/op_syscalls.c:
+	* module/x86/oprofile_nmi.S:
+	* module/x86/op_fixmap.c: these new files
+	* module/x86/op_apic.c: x86 stuff
+	* module/x86/arch.mak: specific arch makefile fragment
+	* module/op_init.c: move cpu detection code ...
+	* module/x86/cpu_type.c: here
+	* module/Makefile: handle arch sub-dir
+	* module/x86/.cvsignore: new
+	* module/oprofile.h: declare the interface to the
+	  architecture dependant code
+
+	* Makefile.in:
+	* configure.in: handle module/arch
+	* make.common.in: avoid -Werror with gcc 2.91
+	* make.deps: small tweak allowing to use it in module
+
+2002-06-06  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: use CXXINCLUDES not CXXFLAGS
+	for including sstream
+ 
+	* make.common.in: remove duplicate -g -O2
+ 
+	* include/sstream: fix compiler warning to
+	  allow -Werror
+ 
+	* libutil/op_file.c:
+	* libutil/op_fileio.h:
+	* libutil/op_fileio.c: more API fixage
+
+	* libutil++/file_manip.cpp: add missing header
+ 
+2002-06-06  John Levon  <moz@compsoc.man.ac.uk>
+
+	* make.common.in: enable -Werror for CVS builds
+	(not in module/)
+ 
+	* dae/opd_image.c:
+	* dae/oprofiled.c:
+	* libutil/op_deviceio.h:
+	* libutil/op_deviceio.c: API fixes
+
+	* libutil++/file_manip.h:
+	* libutil++/file_manip.cpp: 
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp:
+	* pp/op_time.cpp:
+	* pp/oprofpp.cpp: 
+	* libutil/op_lockfile.c: 
+	* libutil/op_file.h:
+	* libutil/op_file.c: add op_file_readable(),
+	  API fixes 
+ 
+2002-06-06  John Levon  <moz@compsoc.man.ac.uk>
+
+	* utils/op_stop: fail early if ! root
+ 
+2002-06-05  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/*: s/OutputSymbol/output_symbol/,
+	  s/OutSymbFlag/outsymbflag/
+ 
+2002-06-05  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/op_time_options.cpp:
+	* pp/op_time_options.h:
+	* pp/op_to_source_options.h:
+	* pp/oprofpp_options.h: document
+
+2002-06-05  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/Makefile.in:
+	* pp/counter_util.h:
+	* pp/counter_util.cpp: move from ...
+
+	* pp/oprofpp.h:
+	* pp/oprofpp_util.cpp: ... here (removed)
+
+	* pp/op_time.cpp:
+	* pp/op_time_options.cpp: 
+	* pp/op_to_source.cpp: 
+	* pp/opp_symbol.h: 
+	* pp/oprofpp.cpp:
+	* pp/oprofpp_options.h: 
+	* pp/oprofpp_options.cpp: 
+	* pp/samples_container.h: 
+	* pp/samples_container.cpp: 
+	* pp/samples_file.h:
+	* pp/samples_file.cpp: changes from above
+
+2002-06-05  John Levon  <moz@compsoc.man.ac.uk>
+
+	* libutil++/file_manip.h:
+	* libutil++/file_manip.cpp: move oprofile specific stuff
+	  to ...
+ 
+	* libop++/op_mangling.h:
+	* libop++/op_mangling.cpp: ... here
+
+	* pp/Makefile.in:
+	* pp/op_bfd.h:
+	* pp/op_bfd.cpp: move to ...
+ 
+	* libutil++/Makefile.in:
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp: ... here 
+ 
+	* libutil++/verbose_ostream.h: add
+ 
+	* pp/op_merge.cpp:
+	* pp/op_time.cpp: 
+	* pp/op_time_options.h:
+	* pp/op_time_options.cpp:
+	* pp/op_to_source.cpp: 
+	* pp/op_to_source_options.h:
+	* pp/op_to_source_options.cpp:
+	* pp/oprofpp.h: 
+	* pp/oprofpp.cpp: 
+	* pp/oprofpp_options.h:
+	* pp/oprofpp_options.cpp:
+	* pp/oprofpp_util.cpp:
+	* pp/samples_file.h: various changes and
+	  cleanups from above
+ 
+	* pp/derive_files.cpp: remove now duplicate code
+ 
+2002-06-05  John Levon  <moz@compsoc.man.ac.uk>
+
+	* libutil++/file_manip.h:
+	* libutil++/file_manip.cpp: simplify but don't
+	  break already absolute paths, remove dead code
+ 
+	* pp/op_time_options.h:
+	* pp/op_time_options.cpp:
+	* pp/op_time.cpp: remove dead code
+ 
+	* pp/op_to_source_options.h: 
+	* pp/op_to_source_options.cpp:
+	* pp/oprofpp_options.h:
+	* pp/oprofpp_options.cpp: variable name tweaks
+
+	* pp/Makefile.in:
+	* pp/op_to_source.cpp: 
+	* pp/oprofpp.cpp:
+	* pp/oprofpp.h:
+	* pp/oprofpp_util.cpp:
+	* pp/derive_files.h:
+	* pp/derive_files.cpp: factor command-line file
+	  derivation guessing out
+ 
+2002-06-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* libop++/op_print_event.cpp:
+	* pp/op_bfd.h: 
+	* pp/op_time_options.cpp: 
+	* pp/op_to_source_options.cpp: 
+	* pp/oprofpp_options.cpp: fixes for std
+ 
+	* pp/Makefile.in:
+	* pp/oprofpp.h:
+	* pp/oprofpp_util.cpp:
+	* pp/samples_file.cpp:
+	* pp/opp_symbol.h:
+	* pp/counter_array.h:
+	* pp/counter_array.cpp: factor out counter_array
+ 
+2002-06-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/oprofpp.h:
+	* pp/samples_file.cpp:
+	* pp/oprofpp_util.cpp: remove a sanity check
+	  that wasn't particularly useful
+ 
+2002-06-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* libop++/Makefile.in:
+	* libop++/op_mangling.h:
+	* libop++/op_mangling.cpp:
+	* pp/op_merge.cpp:
+	* pp/op_time.cpp:
+	* pp/oprofpp.cpp: 
+	* pp/oprofpp.h: 
+	* pp/oprofpp_util.cpp: move mangle/unmangle to libop++
+ 
+2002-06-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/Makefile.in:
+	* pp/op_to_source.cpp:
+	* pp/opp_symbol.cpp:
+	* pp/demangle_symbol.h:
+	* pp/demangle_symbol.cpp: move this ...
+ 
+	* libutil++/Makefile.in:
+	* libutil++/demangle_symbol.h:
+	* libutil++/demangle_symbol.cpp: ... to here
+
+2002-06-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* make.common.in: 
+	* make.deps: split out CXXINCLUDES
+ 
+	* Makefile.in:
+	* configure.in:	
+	* libop++/Makefile.in:
+	* libop++/op_print_event.h:
+	* libop++/op_print_event.cpp:
+	* pp/Makefile.in:
+	* pp/oprofpp.h:
+	* pp/oprofpp_util.cpp:
+	* pp/samples_file.cpp: start libop++ library,
+	  move op_print_event there
+
+	* pp/op_bfd.h:
+	* pp/op_bfd.cpp: 
+	* pp/op_time.cpp: 
+	* pp/op_to_source.cpp: 
+	* pp/oprofpp.cpp: 
+	* pp/samples_file.h:
+	* pp/samples_file.cpp: remove all knowledge of
+	  is_kernel from op_bfd, some minor cleanups
+ 
+2002-06-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/op_bfd.h:
+	* pp/op_bfd.cpp:
+	* pp/samples_container.cpp: kill another char*
+ 
+	* pp/outsymbflag.h: reduce fake dependencies with
+	  new file, little cleanup
+
+	* pp/Makefile.in:
+	* pp/demangle_symbol.cpp:
+	* pp/op_merge.cpp:
+	* pp/op_time.cpp:
+	* pp/op_time_options.h:
+	* pp/op_time_options.cpp:
+	* pp/op_to_source.cpp:
+	* pp/op_to_source_options.h:
+	* pp/op_to_source_options.cpp:
+	* pp/opp_symbol.h:
+	* pp/oprofpp.h:
+	* pp/oprofpp.cpp:
+	* pp/oprofpp_options.h:
+	* pp/oprofpp_options.cpp:
+	* pp/oprofpp_util.cpp: Some more refactoring. More work
+	  needed...
+ 
+2002-06-01  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/Makefile.in: fix DOCDIR (from Al Stone)
+ 
+2002-06-01  John Levon  <moz@compsoc.man.ac.uk>
+
+	* libutil++/file_manip.h:
+	* libutil++/file_manip.cpp: clarify API
+ 
+	* pp/oprofpp.cpp: fix bug 563324 resulting from above
+
+2002-06-01  John Levon  <moz@compsoc.man.ac.uk>
+
+	* make.common.in: make --with-extra-lib work again
+
+	* dae/opd_image.h:
+	* dae/opd_image.c: comment typos
+
+	* doc/srcdoc/Doxyfile: generate PNG not GIF 
+ 
+2002-05-23  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/srcdoc/Doxyfile:
+	* libopt++/popt_options.cpp:
+	* libopt++/popt_options.h:
+	* pp/symbol_container_impl.h: small doxygen tweak.
+
+2002-05-23  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/oprofiled.c: minor bug when backing up samples dir
+
+	* libopt++/popt_options.h:
+	* libopt++/popt_options.cpp: avoid to force client code to
+	  explicitly select the option template specializations.
+
+	* pp/op_merge.cpp:
+	* pp/op_time.cpp:
+	* pp/op_to_source.pp:
+	* pp/oprofpp.cpp: we no longer need explicit template
+	  instantiations for options
+
+2002-05-22  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/oprofpp.cpp: fix a missing SAMPLES_DIR prepend
+
+2002-05-22  John Levon  <moz@compsoc.man.ac.uk>
+
+	* lib/util/op_file.c:
+	* utils/op_session.c: restore accidentally lost
+	  commits :
+
+	2002-05-05  Philippe Elie  <phil.el@wanadoo.fr>
+
+		* dae/op_session.c: tweak error message when session already
+		  exist. Avoid to op_dump when profiler is not started.
+
+	2002-05-05  Philippe Elie  <phil.el@wanadoo.fr>
+
+		* dae/op_session.c: do not create empty session directory
+		  and backup oprofileg.log too
+		* dae/opd_util.c:
+		* op_user.h: minor related change
+
+2002-05-22  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/*: complete re-organisation of files
+ 
+	* libop/op_config.h: add VMA_OFFSET and MAX_MODULES
+	  tunables
+ 
+2002-05-22  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui:
+	* libdb:
+	* libopt++:
+	* libutil:
+	* libutil++:
+	* oprof_report:
+	* pp: all C/c++ source/header file, fix a few doxygen warning,
+	  many const type to  type const + other minor comestic change.
+
+2002-05-22  John Levon  <moz@compsoc.man.ac.uk>
+
+	* libopt++/popt_options.cpp: my usual boring shit
+ 
+	* libopt++/popt_options.h: document
+
+	* libutil/op_popt.h: POPT_TABLEEND missing in some popt.h
+ 
+	* TODO: update
+ 
+	* doc/oprofile.xml: add some to ack.html
+ 
+	* libop/op_events_desc.c: fix long-standing typo
+ 
+2002-05-22  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* configure.in:
+	* Makefile.in:
+	* libopt++/*: new directory, command line options handling
+	
+	* make.common.in:
+	* pp/Makefile.in:
+	* pp/op_merge.cpp:
+	* pp/op_time.cpp:
+	* pp/op_to_source.cpp:
+	* pp/oprofpp.cpp:
+	* pp/oprofpp.h:
+	* pp/oprofpp_util.cpp: use libpopt++
+
+2002-05-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+2002-05-19  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/op_bfd.cpp: fix bug coming from mis-placed
+	strlen() brackets
+ 
+	* pp/op_bfd.h:
+	* pp/op_bfd.cpp: kill some more char[]s to avoid silly
+	  bugs like the above
+ 
+	* README: some minor change
+ 
+2002-05-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* module/compat.h:
+	* module/op_fixmap.c:
+	* module/op_syscalls.c:
+	* module/oprofile.c:
+	* module/oprofile.h:
+	* module/oprofile_nmi.S: fix module up to kernel 2.5.15
+
+	* module/compat22.h: small fix for 2.2
+
+2002-05-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* module/op_fixmap.c: revert my last change :/. Something is
+	  wrong with oprofiel and 2.5.15 but elsewhere
+
+2002-05-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* module/op_fixmap.c: fix a long time outstanding bug,
+	  we tested bit in the address of x86_capability
+	  rather the capability itself.
+
+2002-05-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_proc.c: from a typo in opd_put_image_samples first
+	  incoming samples for each image was always ignored. As
+	  a side effect if opd_open_sample_file() fail the daemon
+	  will die with a seg fault. This behavior is in 0.2 release.
+	  fix #556918
+
+2002-05-17  John Levon  <moz@compsoc.man.ac.uk>
+
+	* utils/op_start: typo in detect stale lock file
+
+2002-05-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/*: gcc 3.1 compilation.
+
+2002-05-16  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_proc.c: close samples files at cleanup
+
+	* libdb/db-insert.cpp: if we don't lock the file when creating
+	  the root we must ensure than initialization is atomic
+
+	* pp/op_bfd.cpp:
+	* pp/op_bfd.h:
+	* pp/op_time.cpp:
+	* pp/op_to_source.cpp:
+	* pp/oprofpp.cpp:
+	* pp/oprofpp.h:
+	* pp/oprofpp_util.cpp:
+	* pp/samples_file.cpp:
+	* pp/samples_file.h: move all coherency check between a op_bfd and
+	  it's related opp_samples_files outside these class
+
+	* pp/samples_container.cpp: small modification allowing to privatize
+	  op_bfd::ibfd pointer.
+
+2002-05-16  John Levon  <moz@compsoc.man.ac.uk>
+
+	* libutil/op_lockfile.c: detect and remove stale
+	  lock files
+
+	* utils/op_start: detect stale lock file
+ 
+2002-05-15  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/Makefile.in:
+	* pp/op_time.cpp:
+	* pp/op_to_source.cpp:
+	* pp/oprofpp.cpp:
+	* pp/samples_container.h:
+	* pp/samples_container.cpp:
+	* pp/sample_container_imp.h:
+	* pp/sample_container_imp.cpp:
+	* pp/symbol_container_imp.h:
+	* pp/symbol_container_imp.cpp:
+	* pp/symbol_functors.h: some more file-refactoring, and some
+	  minor changes
+ 
+2002-05-15  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/oprofpp.cpp: only allow -r with -l
+	* doc/oprofile.1.in: document -r for oprofpp
+ 
+2002-05-15  William Cohen  <wcohen@nc.rr.com>
+ 
+	* pp/oprofpp.cpp: Added "-r" reverse sort option.
+
+2002-05-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/utility.h: fix a copyright problem, work-around
+	  a (probable) gcc 2.91 bug.
+
+	* pp/op_bfd.cpp: valgrind exposed a delete problem.
+
+	* pp/op_time.cpp:
+	* pp/op_to_source.cpp:
+	* pp/oprofpp.cpp:
+	* pp/samples_container.cpp:
+	* pp/samples_container.h:
+	* pp/samples_container.cpp:
+	* pp/samples_container.h: change the handling of shared lib,
+	  we no longer allow samples_container_t to auto load related
+	  samples files belonging to a shared lib but we create at a higher
+	  level an explicit list of samples files : fix #555276
+
+	* pp/op_to_source.cpp:
+	* pp/sample_container.cpp:
+	* pp/opp_symbol.cpp: demangle symbol only when we output
+	  symbol name, not when we store symbol name in internal
+	  representation of symbol.
+
+2002-05-14  Cliff Woolley  <jwoolley@apache.org>
+
+	* gui/oprof_start.cpp: allow Qt3 compilation
+
+2002-05-13  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/oprofile.xml: clarify RTC use, fix #555302
+
+	* gui/oprof_start_util.cpp: missing closedir(). Fix #555268
+	  Thanks to William Cohen for his precise report.
+
+	* module/Makefile.in: fix #555304, a non-native compiler can
+	  fail to compile oprofile
+
+	* libutil++/utility.h: class noncopyable
+	* pp/samples_file.h: use it
+
+2002-05-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_events_desc.c:
+	* libop/op_events_desc.h:
+
+	* pp/op_bfd.h:
+	* pp/op_bfd.cpp:
+	* pp/op_to_source.cpp:
+	* pp/oprofpp.h:
+	* pp/oprofpp.cpp:
+	* pp/oprofpp_util.cpp:
+	* pp/samples_file.cpp:
+	* pp/samples_file.h:
+	* pp/samplesfile.h: fix some FIXME
+
+2002-05-12  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/oprofiled.c: delete lockfile on SIGTERM
+ 
+	* pp/samples_file.h:
+	* pp/samples_file.cpp: minor changes
+
+2002-05-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/op_bfd.cpp:
+	* pp/op_bfd.h: ehance op_bfd_symbol ...
+	* pp/oprofpp.cpp:
+	* pp/samples_container.cpp: move handling of image w/o symbol
+	  in op_bfd
+
+	* pp/samples_file.h: ehance comment (John's work)
+
+2002-05-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/op_bfd.cpp:
+	* pp/op_bfd.h:
+	* pp/oprofpp.cpp:
+	* pp/oprofpp.h:
+	* pp/samples_files.cpp: minor cleanup
+
+2002-05-10  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/op_bfd.h:
+	* pp/op_bfd.cpp:
+	* pp/opp_symbol.h:
+	* pp/opp_symbol.cpp:
+	* pp/oprofpp.cpp:
+	* pp/samples_container.h:
+	* pp/samples_container.cpp: more typedef for indexed things
+
+2002-05-10  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/*: split oprofpp_util.cpp, oprofpp.h to these ..
+	* pp/samples_file.cpp: new file
+	* pp/samples_file.h: new file
+	* pp/op_bfd.cpp: new file
+	* pp/opbfd.h: new file
+
+	* pp/*: add a symbol_index_t typedef
+
+2002-05-10  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/srcdoc/Makefile: always clean before building
+	* doc/srcdoc/Doxyfile: ehance file filtering
+
+	* pp/oprofpp.h: small typo fix
+
+2002-05-10  Philippe Elie  <phil.el@wanadoo.fr>	
+
+	* pp/oprofpp.h:
+	* pp/oprofpp.cpp:
+	* pp/oprofpp_util.cpp:
+	* pp/samples_container.cpp: generalize infrastucture for symbol
+	  vma/size
+
+	* pp/op_time.cpp: allow to exclude symbol with op_time -l
+
+2002-05-09  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/xhtml-chunk.xsl:
+	* doc/xhtml-common.xsl:
+	* doc/xhtml.xsl:
+	* doc/Makefile.in: some small improvements
+ 
+	* doc/src/doc/Doyxfile: add FIXME
+
+	* gui/oprof_start.cpp:
+	* libop/op_events_desc.h:
+	* libop/op_events_desc.c:
+	* libutil/filename_match.h: 
+	* oprof_report/oprofpp_view.h: 
+	* pp/op_time.cpp: 
+	* pp/opp_symbol.h:
+	* pp/oprofpp.h:
+	* pp/oprofpp_util.cpp:
+	* pp/samples_container.cpp: 
+	* pp/samples_container.h: more doxygen etc. fixes
+ 
+2002-05-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* pp/op_symbol.cpp: better column handling with oprofpp -L
+
+2002-05-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/Makefile.in:
+	* gui/Makefile.in:
+	* pp/Makefile.in:
+	* utils/Makefile.in: fix make uninstall
+
+2002-05-08  Philippe Elie  <phil.el@wanadoo.fr>
+	
+	* pp/opf_filter.cpp: move to ...
+	* pp/op_to_source.cpp:
+	* pp/opf_container.cpp: move to ..
+	* pp/samples_container.cpp:
+	* pp/opf_filter.h: move to ...
+	* pp/samples_container.h:
+	* pp/Makefile.in:
+	* pp/.cvsignore: update
+
+	* oprof_report/hotspotview.cpp:
+	* oprof_report/hotspotview.h:
+	* oprof_report/op_view.h:
+	* oprof_report/oprof_report.cpp:
+	* oprof_report/oprof_report.h:
+	* oprof_report/oprof_view.cpp:
+	* oprof_report/oprof_view.h:
+	* pp/op_time.cpp:
+	* pp/opf_container.cpp:
+	* pp/opf_filter.cpp:
+	* pp/opf_filter.h:
+	* pp/opp_symbol.cpp:
+	* pp/opp_symbol.h:
+	* pp/oprofpp.cpp:
+	* pp/oprofpp.h: samples_files_t -> samples_container_t
+
+	* ui/.cvsignore: update
+
+	* pp/opf_filter.cpp: move filename_match ...
+	* libutil++/filename_match.cpp: here
+	* libutil++/filename_match.cpp:
+	* libutil++/Makefile.in:
+
+	* pp/Makefile.in: fix typo that prevent op_to_source
+	  to be recompiled
+
+2002-05-08  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* doc/Makefile.in: make clean delete *.html
+ 
+	* libdb/db-debug.c: pedantry
+ 
+	* libutil/op_fileio.h:
+	* libutil/op_fileio.c:
+	* pp/oprofpp.cpp: remove unused code and change
+	  function names
+ 
+2002-05-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil/op_libiberty.h: fix compile error (missing
+	  size_t definition)
+
+2002-05-08  John Levon  <moz@compsoc.man.ac.uk>
+
+	* Makefile.in: missing backslash
+ 
+2002-05-07  John Levon  <moz@compsoc.man.ac.uk>
+
+	* <various>: OK I lied. Fix some doxygen warnings,
+	  and some char const *a -> const char * a
+ 
+	* doc/srcdoc/Makefile: add
+ 
+2002-05-07  John Levon  <moz@compsoc.man.ac.uk>
+
+	* <all>: ok, fix the headers properly. Last tedious
+	  patch, I promise.
+ 
+	* dae/opd_util.h: finally remove !
+ 
+2002-05-06  John Levon  <moz@compsoc.man.ac.uk>
+
+	* <various>: move to new header style, doxygen
+	  should use @param blah not @blah: or \param blah 
+
+	* doc/srcdoc/Doxyfile: new file for api docs
+
+	* scripts/Doxyfile:
+	* scripts/dodoc: remove
+ 
+2002-05-06  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: don't add KINC to BKCFLAGS directly
+ 
+	* module/Makefile.in: re-write
+ 
+	* TODO: update
+ 
+2002-05-06  John Levon  <moz@compsoc.man.ac.uk>
+
+	Massive re-organisation of code + build. Most
+	files have been changed. Some small cosmetic
+	changes.
+ 
+	* libutil/:
+	* libutil++/: general-purpose utility libs
+
+	* libop/: oprofile-specific utility lib
+
+	* utils/: moved op_start et al to this dir
+
+	* events/:
+	* util/: removed
+
+	* libutil++/child_reader.cpp: make sure to set
+	  member "pid", not local variable
+
+2002-05-05  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/op_session.c: tweak error message when session already
+	  exist. Avoid to op_dump when profiler is not started.
+
+2002-05-05  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update:
+
+	* dae/op_session.c: do not create empty session directory
+	  and backup oprofileg.log too
+	* dae/opd_util.c:
+	* op_user.h: minor related change
+
+2002-05-05  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/oprofile.xml: update copyright for 2002
+
+	* doc/xsl/xhtml-chunk.xsl: indent=yes
+ 
+2002-05-05  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+	
+	* Makefile.in: update my release steps
+ 
+2002-05-05  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: ->0.3cvs
+
+	* results/: hmm, remove /all/ the files 
+ 
+2002-05-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: bump to 0.2
+ 
+2002-05-04  William Cohen  <wcohen@nc.rr.com>
+
+	* doc/oprofile.xml: add note on power management
+ 
+2002-05-03  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/Makefile.in:
+	* doc/xsl/xhtml-common.xsl:
+	* doc/xsl/xhtml.xsl:
+	* doc/xsl/xhtml-chunk.xsl: use some xsl to fix
+	  some of the problems (not all :()
+ 
+2002-05-02  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+ 
+2002-05-02  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/op_session.c: couple of improvements
+ 
+	* dae/opd_util.c: fix warning
+
+	* doc/oprofile.xml: some docs on op_session
+
+	* pp/op_time.cpp: introduce -s parameter (should be
+	  in all utils)
+ 
+2002-05-02  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprof_report/Makefile.in: disable for release
+ 
+2002-05-02  John Levon  <moz@compsoc.man.ac.uk>
+
+	* results/: nuke this in favour of oprofile-tests
+	  module
+ 
+2002-05-02  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+ 
+	* op_user.h:
+	* dae/op_start: 
+	* dae/op_stop: 
+	* dae/opd_util.h:
+	* dae/opd_util.c: 
+	* dae/oprofiled.c: 
+	* dae/oprofiled.h: 
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml: 
+	* gui/oprof_start.h:
+	* gui/oprof_start.cpp:
+	* gui/oprof_start_config.h:
+	* gui/oprof_start_config.cpp:
+	* gui/ui/oprof_start_base.ui: 
+	* oprof_report/oprof_report.cpp: 
+	* pp/op_merge.cpp: 
+	* pp/op_time.cpp: 
+	* pp/opf_filter.cpp: 
+	* pp/oprofpp.cpp: 
+	* pp/oprofpp.h: 
+	* pp/oprofpp_util.cpp: remove useless command line
+	  options in anticipation of the new spec
+	 
+	* libdb/db-manage.c: reset base_memory and fd
+	  on close
+ 
+	* dae/.cvsignore: 
+	* dae/Makefile.in:
+	* dae/op_session.c:
+	* dae/opd_proc.c: 
+	* dae/opd_proc.h:
+	* dae/oprofiled.h:
+	* dae/oprofiled.c: use lock file for daemon.
+	  Implement named sessions
+ 
+2002-05-02  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/oprofpp.cpp:
+	* pp/op_time.cpp:
+	* pp/opf_container.cpp:
+	* pp/opf_filter.cpp:
+	* pp/oprofpp.cpp:
+	* pp/oprofpp.h:
+	* pp/oprofpp_util.cpp: fix sect_offset problem. now all
+	  class work on vma except samples_file_t which offset vma
+	  to samples files offset
+
+2002-05-01  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/opd_proc.c:
+	* libdb/db-manage.c:
+	* libdb/db-test.c:
+	* libdb/db.h:
+	* pp/op_merge.cpp:
+	* pp/op_time.cpp:
+	* pp/oprofpp_util.cpp: allow read-only sample
+	  file reading
+	
+	* oprof_report/hotspot_view.cpp: fix warning
+ 
+2002-05-01  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/op_start:
+	* dae/oprofiled.c:
+	* doc/oprofile.1.in: 
+	* doc/oprofile.xml: 
+	* gui/oprof_start.cpp: 
+	* module/op_nmi.c:
+	* module/op_rtc.c:
+	* module/op_syscalls.c: 
+	* module/oprofile.h:
+	* module/oprofile.c: move pid/pgrp filter into
+	  userspace only. Remove --ignore-myself
+ 
+2002-04-30  John Levon  <moz@compsoc.man.ac.uk>
+
+	* op_user.h:
+	* dae/opd_proc.c:
+	* pp/oprofpp_util.cpp: first part of removing
+	  OPD_KERNEL_OFFSET
+
+2002-04-30  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/op_nmi.c: also allow user to see 0/ 1/ contents
+ 
+2002-04-30  William Cohen  <wcohen@nc.rr.com>
+
+	* module/oprofile.c: Allow non-root examination of
+	  /proc/sys/dev/oprofile and initiation of dump. 
+
+	* dae/op_dump: modify message for above
+
+2002-04-30  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+ 
+	* libdb/Makefile: remove from CVS
+ 
+	* dae/oprofiled.c:
+	* module/oprofile.c: 
+	* module/oprofile.h: use better hash function.
+	  Fold unused/full entry case into eviction case
+	  for faster common path
+ 
+2002-04-27  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: fix little blooper that shows up
+	  when CONFIG_M386 is chosen
+ 
+2002-04-23  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/oprofpp.cpp:
+	* pp/oprofpp_util.cpp: yet another bug fix for --sort=
+	  and counter nr command line specification ...
+
+2002-04-22  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_proc.c: opd_alarm() flush properly samples files
+
+	* oprof_report/oprof_report.cpp: use the right filename
+	  when selecting a shared lib profiled with --separate-samples
+
+2002-04-22  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/op_merge.c: implement merging of the new file format files.
+
+2002-04-21  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* oprof_report/Makefile.in:
+	* oprof_report/oprof_report.cpp: use db
+
+2002-04-20  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_proc.c: OPD_KERNEL_OFFSET thing
+	* pp/oprofpp_util.cpp:
+
+2002-04-20  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_proc.c: minor warning suppression
+
+	* pp/Makefile.in:
+	* pp/oprofpp.cpp:
+	* pp/op_time.cpp:
+	* pp/opf_container.cpp:
+	* pp/opf_filter.cpp:
+	* pp/oprofpp.h: handle the new db file format, this stuff is
+	  not yet extensively tested
+
+	* pp/op_merge.c: not already updated, exit at run time
+	  with an error message
+
+2002-04-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_proc.h:
+	* dae/oprofiled.h: enable db samples file format
+
+2002-04-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/*: initial import from oprofile-tests module
+	  note than this direcroty have it's own ChangeLog file
+	* dae/Makefile.in: use libdb.a
+	* dae/opd_util.h: use db.h. These change do not yet enable
+	  the db samples files format.
+
+2002-04-16  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO:
+	* doc/oprofile.xml:
+	* pp/oprof_convert.c:
+	* util/misc.h:
+	* util/misc.c:
+	* util/file_manip.h:
+	* pp/Makefile.in: kill oprof_convert
+	 
+2002-04-16  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/opf_container.cpp:
+	* pp/oprofpp.h:
+	* pp/demangle_symbol.h:
+	* pp/demangle_symbol.cpp:
+	* pp/Makefile.in: move demangle_symbol into own
+	  file
+ 
+	* TODO: update some...
+ 
+2002-04-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opf_filter.cpp: fix a memory leak uncovered
+	  by valgrind <http://developer.kde.org/~sewardj>
+
+2002-04-09  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/oprofiled.h: move definition of linked list to ...
+	* dae/opd_list.h: this new file
+	
+	* dae/opd_proc.c: iterate on opened sample file
+	  rather on image list to sync mmap'ed file
+
+2002-04-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/oprofpp.h:
+	* oprof_report/oprof_report.cpp:
+	* pp/op_time.cpp:
+	* pp/opf_container.cpp:
+	* pp/opf_filter.cpp:
+	* pp/oprofpp_util.cpp:
+	* pp/oprofpp.cpp: use samples_file_t as internal implementation
+	  of opp_samples_files. Now all samples files read are made
+	  through samples_file_t object.
+
+2002-04-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/op_start: fix bash1 detection
+
+	* doc/Makefile.in: fix install target
+
+2002-03-25  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: some preliminary stuff for NGPT
+
+	* TODO: update
+
+	* doc/Makefile.in:
+	* doc/oprofile.sgml:
+	* doc/oprofile.xml: move to DocBook/XML
+
+	* doc/oprofile.xml: document Bash 2 dependency
+ 
+	* dae/op_start: fix for /bin/bash being bash v1 - untested
+ 
+2002-04-02  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/oprofpp.cpp:
+	* pp/oprofp_util.cpp: debug and use opp_bfd::symbol_size()
+
+2002-03-30  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* ChangeLog: change my email address
+
+2002-03-22  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/op_start: default buffer size to zero and let module
+	  override the default.
+
+	* module/op_rtc.c:
+	* module/oprofile.h:
+	* op_user.h:
+	* gui/oprof_start.cpp:
+	* gui/oprof_start_config.cpp:
+	* gui/oprof_start_config.h: an another coherency fix, unhopefully
+	  this bug fix does not fix the configuration file (see # )
+
+	* pp/oprofpp.cpp: for gprof dump do not print events settings
+
+	* pp/oprofpp.h:
+	* pp/oprofpp_util.cpp: prepare using symbol size
+
+2002-03-21  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/opf_filter.cpp:
+	* pp/oprofpp.cpp:
+	* pp/oprofpp_util.cpp: factorize event settings output
+	* pp/oprofpp.h: ditto + do_list_xxx/do_dump_gprof : static
+	  free function rather than member function.
+
+2002-03-21  Philippe Elie  <ph_e@club-internet.fr>
+
+	* op_user.h:
+	* pp/oprofpp.h: more doxygen comments
+
+	* dae/opd_kernel.c:
+	* dae/opd_proc.c:
+	* dae/opd_util.c:
+	* dae/oprofiled.c:
+	* gui/oprof_start.cpp:
+	* gui/oprof_start_util.cpp: exit(): use {EXIT_FAILURE|EXIT_SUCCESS}
+
+2002-03-20  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/opf_filter.h: simplify slightly interface of samples_files_t
+	* oprof_report/oprof_report.cpp:
+	* pp/op_time.cpp:
+	* pp/opf_container.cpp:
+	* pp/opf_filter.cpp:
+	* pp/oprofp.cpp: reflect the new interface.
+
+	* pp/opp_symbol.cpp: ParseOutputOption --> static member of
+	  OutputSymbol ...
+
+	* pp/opp_symbol.h:
+	* util/file_manip.h:
+	* util/string_manip.h: doxygen comments
+
+2002-03-19  Philippe Elie  <ph_e@club-internet.fr>
+
+	* scripts/Doxyfile: small tweak
+	* op_user.h:
+	* pp/opp_symbol.h:
+	* pp/oprofpp.h:
+	* util/child_reader.h: doxygen comments.
+
+2002-03-19  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/opf_filter.h:
+	* pp/opf_container.cpp: remove delegation
+	  {symbol|samples}_container_t -> xxx_impl, no functionnal change
+
+	* pp/*: start a more serious doxygenization. first step
+	  include fixing prototype and a client documentation for
+ 	  opp_bfd
+	* script/Doxyfile: doxygen script for pp/*.h, util/*.h
+	
+2002-03-19  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/op_fixmap.c: include pagemap.h, so
+	we pick up highmem.h, which is needed with
+	some kernels (missing kmap_pagetable define
+	via pte_offset)
+
+2002-03-18  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/op_time.cpp:
+	* doc/oprofile1.1.in:
+	* doc/oprofile.sgml: allow reverse sort in all case
+
+	* pp/opp_symbol.h:
+	* pp/opp_symbol.cpp: remove unnecessary cast
+
+	* oprof_report/oprof_report.cpp:
+	* oprof_report/oprof_report.h:
+	* oprof_report/*_view.*: revert partially 2002-03-17 patch,
+	  making again data change notification in two step.
+
+2002-03-17  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/oprofpp_util.cpp: clarify binutils bug workaround
+ 
+2002-03-17  Philippe Elie  <ph_e@club-internet.fr>
+
+	* oprof_report/op_view.h:
+	* oprof_report/hostpost_view.cpp:
+	* oprof_report/hostpost_view.h:
+	* oprof_report/oprof_report.cpp:
+	* oprof_report/oprof_report.h:
+	* oprof_report/oprof_view.cpp:
+	* oprof_report/oprof_view.h: simplify virtual interface +
+	  minor graphic bug fix
+
+2002-03-16  Philippe Elie  <ph_e@club-internet.fr>
+
+	* TODO: update
+
+	* oprof_report/hotspot_view.cpp: new
+	* oprof_report/hotspot_view.h: new HotspotView class
+	* oprof_report/oprof_report.cpp:
+	* oprof_report/oprof_report.h:  use HotspotView
+	* oprof_report/Makefile.in: reflect above
+
+	* pp/op_time.cpp: small tidy
+
+2002-03-15  Philippe Elie  <ph_e@club-internet.fr>
+
+	* TODO: update
+
+	* dae/oprofiled.c: fix --version when module is not loaded
+
+	* pp/opp_symbol.cpp:
+	* pp/opp_symbol.h: avoid to padd the last field, use a positive
+	  form for osf_header
+
+	* pp/oprofpp.h:
+	* pp/oprofpp.cpp:
+	* pp/opf_filter.cpp:
+	* pp/opprofpp_util.cpp:
+	* pp/op_time.cpp: fix --sort option
+
+2002-03-14  Philippe Elie  <ph_e@club-internet.fr>
+
+	* TODO: update
+
+	* pp/op_time.cpp:
+	* pp/opf_filter.cpp:
+	* pp/opp_symbol.cpp:
+	* pp/oprofpp_.cpp:
+	* pp/oprofpp.h:
+	* pp/oprofpp_util.cpp: handle -c0,1 and --sort #nr_ctr
+	  for all post-profile tools allowing a more precise way
+	  to specify on which counters tools must work
+
+2002-03-13  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/oprofpp_util.cpp: get_linenr() better handling
+	  of bfd_find_nearest_line. Fix #529622
+
+	* pp/opf_container.cpp: simplify symbol_container_impl
+
+	* pp/opp_symbol.cpp: use ostringstream only when necessary
+
+2002-03-09  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/oprofile.sgml: some laptops have a usable local APIC
+ 
+2002-03-09  Philippe Elie  <ph_e@club-internet.fr>
+
+	* oprof_report: new directory, oprofpp/op_time like GUI
+	* oprof_report/op_view.h: base class for view
+	* oprof_report/oprof_report_main.cpp:
+	* oprof_report/oprof_report.h:
+	* oprof_report/oprof_report.cpp: main class
+	* oprof_report/oprofpp_view.h:
+	* oprof_report/oprofpp_view.cpp: oproffp like view
+	* oprof_report/Makefile.in:
+	* oprof_report/ui/oprof_report.base.ui: oprof_report UI
+	* oprof_report/ui/Makefile.in:
+
+	* Makefile.in:
+	* configure.in: handle oprof_report
+
+	* ui/Makefile.in: clarify how dependencies work
+
+2002-03-08  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: bump to 0.2cvs
+
+	* TODO: update
+ 
+2002-03-07  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/opf_container.cpp: handle osf_short_linr_info
+	* pp/opp_symbol.cpp: tweak output output when
+	  linenr/filename is not available
+
+2002-03-07  John Levon  <moz@compsoc.man.ac.uk>
+
+	* util/Makefile.in: remove -pedantic (Phil don't you
+	  read comments ? ;)
+ 
+2002-03-07  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* pp/: use "invalid" not "illegal"
+ 
+2002-03-06  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+ 
+2002-03-06  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/opfropp_util.cpp: more specific error messages
+
+	* doc/oprofile.sgml: clarify problem about sparse
+	  samples files and filesystem.
+
+	* util/file_manip.h:
+	* util/file_manip.cpp: create_file_list() allow recursive
+	  file list creation.
+	* pp/op_time.cpp: add option -p/-P to allow specifying
+	  alternate path name where to search for image name
+	* doc/oprofile.1.in:
+	* doc/oprofile.sgml: update option for op_time
+
+2002-03-05  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/oprofpp_util.cpp: remove multiple symbols belonging
+	  to the same vma (Fix #526098)
+	  Accept also all symbol types, we filter them by name.
+
+2002-03-04  Philippe Elie  <ph_e@club-internet.fr>
+
+	* util/misc.h: minor comment fix
+
+	* pp/oprofpp_util.cpp: tweak the last commit
+
+2002-03-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/oprofpp_util.cpp: welcome in the local symbols ...
+ 
+2002-03-03  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/opf_filter.h:
+	* pp/opf_container.cpp: samples_files_t::add() add an hint
+	  parameter on what information will needed.
+	* pp/op_time.cpp:
+	* pp/oprofpp.cpp:
+	* pp/opf_filter.cpp: use it
+	
+	* pp/op_time.cpp: when a samples files for one counter
+	  does not exist avoid to load it (op_time -l) fix #525237
+
+2002-03-02  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/Makefile.in: add -pedantic to CXXFLAGS
+	* pp/oprofpp.h: replace macro verpbrintf with a function
+	* pp/oprofpp_util.cpp: implement it
+	* pp/opp_symbol.h:
+	* pp/op_time.cpp: fix pedantic warning
+
+	* pp/opevents.cpp:
+	* op_user.h: op_get_cpu_nr_counters() new
+
+	* pp/op_time.cpp:
+	* pp/opf_container.cpp:
+	* pp/opf_filter.cpp:
+	* pp/opf_filter.h:
+	* pp/opp_symbol.cpp:
+	* pp/oprofpp.cpp:
+	* pp/oprofpp_util.cpp: remove global var op_nr_counters
+
+2002-03-02  Philippe Elie  <ph_e@club-internet.fr>
+
+	* module/op_syscalls.c: do not pre-allocate some dname
+	  hash map entry for common pathname but pre alloc entry
+	  zero to reserve it
+
+	* pp/op_time.cpp: add image name to the default output format
+
+	* module/compat22.h: move cacheline_aligned macro to ...
+	* module/op_cache.h: this new file
+	* module/compat.h: use it
+	* module/compat22.h:
+	* module/oprofile.c: replace some __cacheline_aligned by
+	  __cacheline_aligned_in_smp
+
+2002-03-01  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/opd_kernel.c:
+	* dae/opd_proc.c: simplify handling of kernel samples
+
+	* pp/opt_time.cpp:
+	* pp/opp_symbol.cpp:
+	* pp/opp_symbol.h:
+	* pp/oprofpp.cpp:
+	* pp/oprofpp.h: tidy, gives a negative form to header output
+	  format
+
+	* version.h.in: new macro show_version() to output version
+	* doc/oprofile.sgml: document it
+	* dae/oprofiled.c:
+	* events/op_help.c:
+	* pp/op_merge.cpp:
+	* pp/op_time.cpp:
+	* pp/opf_filter.cpp:
+	* pp/oprofpp.cpp: use it
+
+2002-03-01  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* module/oprofile.c:
+	* module/op_syscalls.c: merge note/map lock 
+ 
+2002-02-27  Philippe Elie  <ph_e@club-internet.fr>
+
+	* TODO: upadte
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.sgml:
+	* pp/opp_symbol.h:
+	* pp/opp_symbol.cpp:
+	* pp/oprofpp.cpp: use columned output for oprofpp -L, -s
+
+	* pp/oprofpp.cpp: command-line counter specification
+	  was broken by my last patch
+	* pp/opf_filter.cpp: ditto but bug comes from the far past
+
+2002-02-26  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/op_merge.cpp: small tidy
+
+	* pp/op_time.cpp:
+	* pp/opf_container.cpp:
+	* pp/opf_filter.h:
+	* pp/opf_filter.cpp:
+	* pp/oprofpp.cpp:
+	* pp/oprofpp.h:
+	* pp/oprofpp_util.cpp: remove the nasty global var int ctr;
+	  pass it as parameter to each relevant function using it.
+
+	* module/compat.h: support for 2.5.5. 2.4.18 also tested
+
+	* pp/opp_symbol.h:
+	* pp/opp_symbol.cpp: new, mainly for implementing --output-format
+	* pp/op_time.cpp:
+	* pp/oprofpp.cpp: use output format stuff
+	* pp/Makefile.in: reflect above change
+	* doc/oprofile.1.in:
+	* doc/oprofile.sgml: document --output-format
+
+2002-02-13  Philippe Elie  <ph_e@club-internet.fr>
+
+	* TODO: update
+
+	* module/compat22.h:
+	* module/compat24.h:
+	* module/oprofile_nmi.S: small tidy
+
+	* module/op_apic.c:
+	* module/op_fixmap.c:
+	* module/op_nmi.c:
+	* module/oprofile.h: avoid memory leak of apic mapping
+
+2002-02-12  Philippe Elie  <ph_e@club-internet.fr>
+
+	* TODO: update
+
+	* pp/oprofpp_util.cpp: use stable sort and correct the comparison
+	  function on symbol vma
+	* pp/opf_filter.cpp: remove a boring new line in output
+
+	* module/makefile.in: optimize for 686 but do not use any specific
+	  686 insn.
+
+	* configure.in: check against CONFIG_PREEMPT
+
+2002-02-10  John Levon  <moz@compsoc.man.ac.uk>
+
+	* events/op_events_desc.c: remove dead code
+ 
+	* module/compat.h: RedHat backported MODULE_LICENSE()
+ 
+	* module/op_syscalls.c:
+	* module/op_util.c: remove FIXMEs
+ 
+2002-02-09  Bob Montgomery  <bobm@fc.hp.com>
+
+	* module/op_rtc.c: right actual RTC value back
+
+	* doc/oprofile.sgml: document that
+
+2002-02-09  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/op_init.c: set rtc cpu type directly
+ 
+2002-02-08  Philippe Elie  <ph_e@club-internet.fr>
+
+	* TODO: update
+
+	* module/oprofile_nmi.S: cut and copy from oprofile_nmi24.s
+	* module/oprofile_nmi22.S: remove
+	* module/oprofile_nmi22.S: remove
+	* module/Makefile.in: reflect them
+
+	* pp/opf_filter.cpp: do not print unit mask for RTC cpu type
+
+	* doc/oprofile.sgml: document post-profile tools commons options
+
+2002-02-05  Philippe Elie  <ph_e@club-internet.fr>
+
+	* TODO: update mainly by moving things to 0.1
+
+	* pp/opf_filter.h:
+	* pp/opf_container.cpp: small cleanup + minor tweak to get
+	  more reliable sort order on filename.
+
+2002-02-05  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/opf_filter.h: declare create_artificial_symbol()
+	* pp/oprofpp_util.cpp: show how elf symbols size could
+	  be handled.
+
+	* pp/oprofpp_util.cpp: add BSF_GLOBAL symbols to
+	  symbols of interest.
+
+2002-02-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/oprofile.c: add [un]lock_sysctl
+ 
+2002-02-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/oprofiled.h:
+	* dae/oprofiled.c:
+	* dae/opd_proc.c: free stuff on shutdown (to
+	  clean dmalloc reports)
+ 
+2002-02-03  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: bump to 0.1
+
+	* TODO: update
+ 
+2002-02-02  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: bump to 0.0.9
+ 
+2002-02-02  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/op_nmi.c: fix stupid bug spotted by Bob
+	  Montgomery
+ 
+2002-02-01  Philippe Elie  <ph_e@club-internet.fr>
+
+	* module/compat.h: define REMAP_PAGE_RANGE
+	* module/op_syscalls.c: use it (2.5.3 support)
+
+2002-01-30  Philippe Elie  <ph_e@club-internet.fr>
+
+	* module/compat.h:
+	* module/op_nmi.c: re-add explicit constant for all MSR_
+	  constants.
+
+2002-01-30  Philippe Elie  <ph_e@club-internet.fr>
+
+	* configure.in:
+	* doc/oprofile.sgml:
+	* module/compat22.h: remove support for kernel version
+	  prior to 2.2.11
+
+	* module/op_fixmap.c:
+	* module/compat.h: small cleanup
+
+	* module/oprofile.c: avoid multi-line literal string
+
+	* pp/oprofpp_util.cpp: better to get_symbols() ;)
+
+2002-01-29  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/op_fixmap.c: remap fake mapping on 2.2 as well
+	  when necessary
+ 
+2002-01-27  Philippe Elie  <ph_e@club-internet.fr>
+
+	* module/Makefile.in: sorry, -Werror is only usefull
+	  for test.
+
+	* doc/oprofile.1.in: a few words about op_stop
+
+	* module/compat.h:
+	* module/compat22.h:
+	* module/compat24.h: change pte_page_address definition
+	  for 2.2.20
+
+	* pp/opf_container.cpp: no warning when creating artificial symbols
+	* pp/oprofpp_tuil.cpp: no warning for image without symbols
+
+2002-01-27  John Levon  <moz@compsoc.man.ac.uk>
+
+	* gui/oprof_start.cpp:
+	* pp/op_merge.cpp:
+	* pp/op_time.cpp:
+	* pp/opf_container.cpp: std namespace fixes.
+ 
+2002-01-27  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/op_time.cpp: small hacky output cleanup
+ 
+2002-01-27  Philippe Elie  <ph_e@club-internet.fr>
+
+	* TODO: update
+
+	* dae/opd_proc.c: small cleanup
+
+	* doc/opf_container.cpp: handle image without symbols
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.sgml:
+	* doc/op_time.cpp: implement and document --demangle
+	  and --show-image-name
+
+	* pp/oprofpp_util.cpp: add using elf symbols size but
+	  disable it
+
+2002-01-26  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* dae/opd_proc.c: tiny clean
+
+	* doc/oprofile.sgml: spell fix
+ 
+2002-01-26  Philippe Elie  <ph_e@club-internet.fr>
+
+	* TODO: update
+
+	* pp/op_merge.c: remove FIXME
+	* pp/op_time.cpp: minor fix
+	
+	* pp/opf_filter.h:
+	* pp/opf_filter.cpp:
+	* pp/oprofpp.cpp:
+	* pp/opf_container.cpp: Show more clearly than
+	  samples_files_t support adding any number of samples
+	  files to the underlined container.
+
+2002-01-26  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/oprofpp_util.cpp: allow to load image without symbols
+
+	* pp/Makefile.in:
+	* pp/op_time: implement -l option that show symbols details.
+	  Currently with separate-samples files symbols are showed
+	  more than one time. This is a bug rather a feature.
+	* doc/oprofile.1.in:
+	* doc/oprofile.sgml: document op_time -l
+
+	* dae/opd_proc.c: bug fix from last change
+
+2002-01-25  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO:
+	* dae/opd_proc.c: search maps in reverse order so we prefer
+	  newer mappings.
+ 
+2002-01-25  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/op_merge.cpp: minor fix + comment
+	* pp/op_time.cpp: comment, use samples_file_t
+	* pp/oprofpp.h:
+	* pp/oprofpp_util.cpp: minor change
+
+2002-01-24  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/opd_proc.c: remove stale comment
+
+	* TODO: update
+
+	* module/compat.h:
+	* module/compat22.h:
+	* module/compat24.h: fix for pte_page on 2.2.20+
+ 
+2002-01-24  Philippe Elie  <ph_e@club-internet.fr>
+
+	* op_merge.cpp:
+	* oprofpp.h:
+	* oprofpp_util.cpp: code move + cleanup
+
+2002-01-23  Philippe Elie  <ph_e@club-internet.fr>
+
+	* util/shared_ptr.h: a templatized shared pointer.
+
+	* pp/op_merge.c: new to merge samples files
+	* pp/Makefile.in:
+	* pp/opf_filter.cpp:
+	* pp/opf_filter.h:
+	* pp/oprofpp.h:
+	* pp/oprofpp_util.cpp: minor change to add op_merge support
+
+	* doc/Makefile.in:
+	* doc/oprofile.1.in:
+	* doc/oprofle.smgl: document op_merge
+
+2002-01-22  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/Makefile.in: can only depmod if we run that kernel
+ 
+	* module/op_fixmap.c: deal with no APIC config for
+	  2.4.10+
+ 
+2002-01-22  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/Makefile.in:
+	* module/oprofile.h:
+	* module/oprofile.c:
+	* module/op_x86.c:
+	* module/op_apic.c:
+	* module/op_fixmap.c: split op_x86.c. Various changes to
+	  only enable the APIC if it's not, and to remap / map the APIC
+	  as is necessary.
+
+	* module/apic_up_compat.h: 
+	* module/compat.h:
+	* module/compat22.h: clean up V_*() macros
+
+	* module/op_init.c: remove FORCE_RTC
+ 
+2002-01-22  Philippe Elie  <ph_e@club-internet.fr>
+
+	* TODO: update
+
+	* dae/opd_proc.c: use remove not unlink
+	* gui/oprof_start.cpp: use remove not system("rm xxx")
+
+	* doc/Makefile.in: slightly improvment
+	* doc/oprofile.1.in: move --help --version to a common section
+
+2002-01-21  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/compat22.h: fix missing cli()
+ 
+2002-01-21  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/oprofile.c: 
+	* module/compat22.h:
+	* module/compat24.h: fix NMI wake-up for 2.2 SMP
+ 
+	* module/op_dcache.h: add KERN_ERR
+ 
+	* module/op_x86.c: cleanup a little
+ 
+2002-01-21  Philippe Elie  <ph_e@club-internet.fr>
+
+	* TODO: update
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.sgml: minor change
+
+	* module/Makefile.in: auto-dependencies for compat.c
+
+	* module/compat.c:
+	* module/compat22.h: FIXME remove for vmalloc_32
+
+2002-01-20  Philippe Elie  <ph_e@club-internet.fr>
+
+	* gui/oprof_start.cpp: fix configuration saving when
+	  switching of cpu_type.
+
+	* module/Makefile.in:
+	* module/compat.c: minor change
+
+	* compat.h: add minor macro
+	* oprofile.c: use minor instead MINOR (2.5.2 support)
+
+	* op_x86.c: check SPIV (missing from a previous patch)
+
+2002-01-20  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: punt some things to next release
+
+	* dae/opd_proc.c: fix printf of null
+ 
+2002-01-20  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+ 
+	* module/oprofile.c: add comment
+ 
+	* module/compat22.h:
+	* module/compat24.h:
+	* module/op_syscalls.c: fix locking for out_mmap
+ 
+2002-01-20  Philippe Elie  <ph_e@club-internet.fr>
+
+	* module/op_x86.c: check MSR + SPIV for enabling APIC
+ 
+	* module/compat.c: don't attempt to get root
+
+	* module/compat.h: NEED_FIXMAP fixes
+ 
+2002-01-18  Philippe Elie  <ph_e@club-internet.fr>
+
+	* TODO: update
+
+	* module/compat.h:
+	* module/compat24.h: move things needed for 2.2/2.4 in compat.h
+
+2002-01-18  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/compat22.h: never wake up from NMI
+	  on 2.2 SMP for now :(
+ 
+2002-01-18  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/compat.h:
+	* module/compat22.h: 
+	* module/compat24.h: s/VATLEAST/V_AT_LEAST/
+ 
+	* module/oprofile.c: remove dead code
+ 
+2002-01-17  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/compat.c: don't need to re-take BKL for
+	  d_path on 2.2
+ 
+2002-01-17  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/compat22.h:
+	* module/compat24.h:
+	* module/op_syscalls.c: we mustn't take the mmap sem
+	  under 2.2
+ 
+2002-01-17  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/compat22.h:
+	* module/compat24.h:
+	* module/op_syscalls.c: whoops, handy to lock the
+	  BKL when it is necessary.
+ 
+	* dae/oprofiled.c: fix warning
+
+2002-01-17  John Levon  <moz@compsoc.man.ac.uk>
+
+	* op_user.h:
+	* dae/op_start:
+	* gui/oprof_start_config.h:
+	* module/oprofile.h: bump note size and watermark,
+	  I was getting problems on my dual SMP box in kernel compiles
+ 
+2002-01-17  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/Makefile.in:
+	* module/oprofile_nmi.S:
+	* module/oprofile_nmi22.S:
+	* module/oprofile_nmi24.S: split assembly for 2.2/4 
+
+	* module/compat.h:
+	* module/compat22.h:
+	* module/compat24.h: s/AFTER/ATLEAST/
+ 
+2002-01-17  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/compat24.h: define to have ->owner
+ 
+2002-01-17  Philippe Elie  <ph_e@club-internet.fr>
+
+	* gui/oprof_start.h:
+	* gui/oprof_start_config.h:
+	* gui/oprof_start.cpp: validate the RTC max count
+
+2002-01-17  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* oprofile.c:
+	* module/compat24.h: 
+	* module/compat22.h: fix compile, nmi wake up check
+	 
+	* module/op_rtc.c: user/kernel profiling feature
+ 
+2002-01-17  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/oprofile.sgml: clarification
+ 
+	* module/compat22.h:
+	* module/compat24.h:
+	* module/oprofile.c: ->owner fixes
+ 
+2002-01-17  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/oprofile.h: clean up
+ 
+	* module/compat.h:
+	* module/compat22.h:
+	* module/compat24.h: split header files up
+	  for readability
+ 
+2002-01-17  Philippe Elie  <ph_e@club-internet.fr>
+
+	* TODO: update
+
+	* doc/oprofile.sgml: speach about assembler
+
+	* module/compat.h: small tweak for 2.2, no impact on 2.4
+
+2002-01-16  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: look for rtc_lock
+ 
+	* module/compat.h: use rtc_lock if there
+
+2002-01-16  Philippe Elie  <ph_e@club-internet.fr>
+
+	* module/compat.h:
+	* module/apic_up_compat.h: cleanup + allow compile
+	  !CONFIG_X86_LOCAL_APIC on 2.4/2.5. (only compile
+	  tested)
+
+2002-01-15  Philippe Elie  <ph_e@club-internet.fr>
+
+	* events/op_events.c: avoid gui crash: event name must
+	  contain only one word. If you test RTC patch destroy
+	  ~/.oprofile/oprof_start_event#0
+
+2002-01-15  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/compat.h:
+	* module/compat.c:
+	* module/op_rtc.c: 2.2 modversions fix
+ 
+2002-01-15  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* module/compat.h:
+	* module/compat.c:
+	* module/op_rtc.c: fix 2.2 compile
+
+2002-01-15  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/Makefile.in: whoops, forgot to commit this
+ 
+2002-01-15  John Levon  <moz@compsoc.man.ac.uk>
+
+	* gui/oprof_start.cpp: some improvements for RTC
+ 
+2002-01-15  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/op_stop: fix "op_start && op_stop" bug using multiple
+	  dump_stop writes.
+
+2002-01-14  Dave Jones <davej@suse.de>
+
+	* pp/op_time.cpp: fix for printing (NaN%) in the zero sample case.
+
+2002-01-14  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/op_rtc.c: remove unneeded check
+
+2002-01-14  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/op_start: fix for PMC case
+ 
+2002-01-14  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* dae/op_start: take --rtc-value
+
+	* dae/oprofiled.c: set headers sensibly for RTC
+
+	* doc/oprofile.1.in: update
+
+	* doc/oprofile.sgml: RTC update
+
+	* events/op_events_descr.c: 
+	* events/op_events.c: good name for RTC event 
+
+	* gui/oprof_start.cpp: basic support for RTC
+
+	* module/op_rtc.c: implement and use rtc_value
+
+2002-01-14  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* dae/op_start: load module at start. Handle CPU_RTC.
+	  Avoid sysctl for now on RTC case.
+
+	* dae/oprofiled.c: only read sysctls if PMC. Needs clean.
+
+	* events/op_events.c: add RTC event.
+
+	* events/op_events_desc.c: get CPU type from module. 
+
+	* module/op_init.c: detect CPU_RTC.
+
+	* module/op_nmi.c: setup code moved from op_init.c
+
+	* module/op_rtc.c: enable interrupt, fixed at 128 for now.
+
+	* module/op_x86.c: add Athlon to needs_apic_setup checks
+
+	* module/oprofile.c: use correct interrupt handler based on
+	  CPU type
+
+2002-01-14  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* op_user.h: add CPU_RTC
+
+	* op_init.c: add FIXMEs
+
+	* op_nmi.c:
+	* op_rtc.c:
+	* oprofile.h:
+	* oprofile.c: implement abstract interrupt handler code
+
+2002-01-14  John Levon  <moz@compsoc.man.ac.uk>
+
+	* gui/oprof_start_config.cpp: fix vmlinux/system.map defaults
+ 
+2002-01-13  Philippe Elie  <ph_e@club-internet.fr>
+
+	* configure.in: reject unsupported kernel version
+	* module/apic_up_compat.h:
+	* module/compat.h: small cleanup
+	* module/op_x86.c: ditto, always put apic memory page as
+	  non cachable
+
+2002-01-12  John Levon  <moz@compsoc.man.ac.uk>
+
+	* gui/oprof_start_util.h:
+	* gui/oprof_start_util.cpp: implement whitelist for arguments
+	  to op_start
+ 
+	* TODO: update
+
+2002-01-13  Philippe Elie  <ph_e@club-internet.fr>
+
+	* module/compat.h:
+	* module/apic_up_compat.h:
+	* module/op_x86.c: allow to run oprofile when
+	  !CONFIG_X86_LOCAL_APIC on 2.2.x kernel
+
+2002-01-12  Philippe Elie  <ph_e@club-internet.fr>
+
+	* module/compat.h: fix some FIXME
+	* module/op_x86.c: do not hang SMP kernel UP box with 2.2.x
+
+2002-01-11  Philippe Elie  <ph_e@club-internet.fr>
+
+	* module/compat.h: support for UP from 2.2.0, for SMP
+	  from 2.2.8. It is worthwhile to try more support.
+	  !CONFIG_X86_LOCAL_APIC not yet supported.
+
+2002-01-11  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* dae/opd_proc.c:
+	* doc/oprofile.sgml:
+	* pp/op_time.cpp: add FIXMEs
+ 
+2002-01-11  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/oprofile.c: never return 0 unless we're
+	  really closing down
+ 
+2002-01-11  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+ 
+	* gui/Makefile.in:
+	* gui/oprof_start.cpp: use absolute paths
+ 
+2002-01-11  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/oprofile.sgml: add note about --with-linux
+ 
+2002-01-11  John Levon  <moz@compsoc.man.ac.uk>
+
+	* Rules.make.in:
+	* gui/Makefile.in:
+	* gui/oprof_start_config.h:
+	* gui/oprof_start_config.cpp: remove kernel headers
+	  from userland !
+
+2002-01-11  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: remove dead checks. comment out APIC check,
+	  hide grep output
+
+	* module/Makefile.in: add compat.c
+
+	* apic_up_compat.h: UP 2.2 missing defines. Need to investigate
+	  fixmap situation. 
+
+	* compat.c: move 2.2 dcache code here
+
+	* compat.h: dcache compat support. check for whether we
+	  should check for mptable. Don't do fixmap hack on 2.2 
+
+	* op_dcache.h: shared dcache inline functions
+
+	* op_syscalls.c: clean up dcache code for 2.2/2.4 
+
+	* op_x86.c: update apic_need_setup for 2.2 and the possibility
+	  of not enabling APIC support on 2.4 too. Needs checking ! Also
+	  don't do mptable check on 2.2
+
+	* oprofile.h: add missing include guard ;)
+ 
+2002-01-11  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/compat.h: minor fixes
+ 
+2002-01-11  Philippe Elie  <ph_e@club-internet.fr>
+
+	* module/compat.h: many change, can be used down to 2.2.8
+	* module/oprofile.h: move #ifdef on kernel version to compat.h
+	* module/op_util.c:
+	* module/op_syscalls.c: minor change
+	* configure.in: comment unnecessary stuf.
+
+	* module/Makefile.in: missing include path for oprofile.s
+
+2002-01-10  John Levon  <moz@compsoc.man.ac.uk>
+
+	* Makefile.in: update checklist for dist
+
+	* module/oprofile.h: add apparently needed version.h
+ 
+2002-01-10  John Levon  <moz@compsoc.man.ac.uk>
+
+	* configure.in: fix accidental trashing of BKCFLAGS
+
+	* module/op_util.c: include right header
+
+	* module/compat.h: use correct smp_call_function
+ 
+2002-01-10  Philippe Elie  <ph_e@club-internet.fr>
+
+	* module/compat.h: new file include backward compatibility
+	  stuff
+
+2002-01-09  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/oprofile.sgml: update infodragon's email
+	  address
+ 
+	* configure.in: bump to 0.0.9cvs
+
+2002-01-08  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* configure.in: fix case when X isn't installed. Bump to 0.0.8
+ 
+2002-01-07  John Levon  <moz@compsoc.man.ac.uk>
+
+	* util/Makefile.in: "fix" last g++ 3.0 problem
+	  with libiberty.h and string.h clashing prototypes
+	  by disabling -pedantic for this directory
+ 
+2002-01-07  John Levon  <moz@compsoc.man.ac.uk>
+
+	* pp/opf_container.cpp:
+	* pp/opf_filter.h:
+	* pp/oprofpp.cpp: 
+	* pp/oprofpp.h: 
+	* pp/oprofpp_util.cpp: 
+	* util/file_manip.h:
+	* util/file_manip.cpp: 
+	* util/string_manip.h: fix most g++ 3.0 problems
+
+2002-01-07  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+ 
+2002-01-05  Philippe Elie  <ph_e@club-internet.fr>
+
+	* doc/oprofile.sgml: Avoid to use -- inside
+	  sgml comment
+
+2002-01-05  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/op_start:
+	* dae/op_stop: (very) hacky loop to wait for
+	daemon start and stop
+ 
+2002-01-05  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/oprofile.c: revert my broken stop fix,
+	  and fix the old (new) one
+ 
+2002-01-05  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/opd_kernel.c:
+	* dae/opd_proc.c:
+	* dae/opd_proc.h:
+	* dae/opd_util.c:
+	* dae/oprofiled.c: 
+	* dae/oprofiled.h: further minor cleanups
+
+2002-01-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/oprofile.c: change last change to have an
+	  explicit check in the sysctl dump, rather than generalised
+	  code.
+
+2002-01-04  Philippe Elie  <ph_e@club-internet.fr>
+
+	* module/oprofile.c: do not re-enable counter during
+	  shutdown
+
+	* dae/Makefile.in: fix opd_kernel.c dependancy
+
+2002-01-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/Makefile.in:
+	* dae/opd_proc.c:
+	* dae/opd_kernel.c: move kernel/module stuff into
+	  new file. Some minor changes.
+ 
+2002-01-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/oprofiled.c: remove extra dump
+ 
+2002-01-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/opd_proc.c: minor crap
+ 
+2002-01-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* TODO: update
+
+	* dae/oprofiled.c:
+	* dae/oprofiled.h:
+	* dae/opd_proc.c: print stats on shutdown too
+
+	* module/oprofile.c: additional check against daemon hanging on shutdown :(
+ 
+2002-01-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/op_stop:
+	* dae/oprofiled.c:
+	* doc/oprofile.sgml:
+	* module/oprofile.h:
+	* module/oprofile.c: implement new clean shutdown via
+	  sysctl dump_stop
+
+2002-01-04  Philippe Elie  <ph_e@club-internet.fr>
+
+	* module/oprofile.c: add a warning when note buff overflow.
+
+2002-01-04  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/oprofile.c: pin note at the end on overflow
+ 
+2002-01-03  Philippe Elie  <ph_e@club-internet.fr>
+
+	* dae/opd_proc.c: Apologies: stupid bug. Never forget
+	  than LRU list of samples files must not contain already
+  	  unmaped files
+
+	* module/oprofile.c: another silly bug, detected cpu was
+	  overwritten...
+
+2002-01-03  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/oprofile.sgml: some fixes, comments
+
+2002-01-03  Philippe Elie  <ph_e@club-internet.fr>
+
+	* doc/oprofile.sgml: improve documentation, corrected
+	  by John Levon
+
+2002-01-03  John Levon  <moz@compsoc.man.ac.uk>
+
+	* gui/oprof_start.h:
+	* gui/oprof_start.cpp:
+	* gui/ui/oprof_start.base.ui: remove the config buttons
+	  and save on a hide from the WM
+ 
+2002-01-03  John Levon  <moz@compsoc.man.ac.uk>
+
+	* module/oprofile.c: make sure note_pos never goes
+	  past the buffer :P
+ 
+2002-01-03  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/opd_util.c: allow EAGAINs through as well
+ 
+2002-01-02  Philippe Elie  <ph_e@club-internet.fr>
+
+	* pp/opf_container.cpp:
+	* pp/opf_filter.cpp: minor change
+
+2002-01-02  John Levon  <moz@compsoc.man.ac.uk>
+
+	* doc/oprofile.sgml: various docs improvements
+ 
+2002-01-02  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/oprofiled.c: better enable the actual
+	  profiling again :P
+ 
+2002-01-02  John Levon  <moz@compsoc.man.ac.uk>
+
+	* config.h.in: remove this again from CVS.
+ 
+2002-01-02  John Levon  <moz@compsoc.man.ac.uk>
+
+	* dae/op_stop: send SIGUSR1 to stop profiler
+ 
+	* dae/opd_proc.c: reformat a little
+ 
+	* dae/opd_util.h:
+	* dae/opd_util.c: change opd_read_device semantics
+ 
+	* dae/oprofiled.c: clean shutdown from SIGUSR1
+ 
+	* module/oprofile.c: handle non-blocking reads
+ 
+	* pp/opf_filter.h:
+	* pp/opf_filter.cpp: slight cleanups
+ 
+	* TODO: update
+ 
+2002-01-01  John Levon  <moz@compsoc.man.ac.uk>
+
+	* oprofile.sgml: clarify that -g is not necessary for
+	  basic profiling (reported by Jeff Epler <jepler@inetnebr.com>)
+
+See ChangeLog-2001 for earlier changelogs.
diff --git a/oprofile-0.9.7/ChangeLog-2003 b/oprofile-0.9.7/ChangeLog-2003
new file mode 100644
index 0000000..6356abe
--- /dev/null
+++ b/oprofile-0.9.7/ChangeLog-2003
@@ -0,0 +1,6251 @@
+2003-12-29  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* configure.in: my_op_prefix is not necessarily suffixed by a '/'
+
+2003-12-29  John Levon  <levon@movementarian.org>
+
+	* configure.in:
+	* doc/*.1.in: add HTML docs to SEE ALSO
+
+2003-12-29  John Levon  <levon@movementarian.org>
+
+	* doc/opcontrol.1.in:
+	* doc/oprofile.xml: minor language cleanups
+
+	* utils/opcontrol: only allow --verbose when it makes sense
+
+2003-12-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/tests/file_manip_tests.cpp: ensure filename passed to
+	  op_realpath() exists
+
+2003-12-28  John Levon  <levon@movementarian.org>
+
+	* doc/internals.xml:
+	* libutil++/file_manip.h: fix typos
+
+2003-12-16  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/opcontrol: error message rewording
+
+2003-12-16  Carlo Wood  <carlo@alinoe.com>
+
+	* libregex/tests/Makefile.am: avoid to install mangled-name test file
+
+2003-11-20  John Levon  <levon@movementarian.org>
+
+	* libregex/op_regex.cpp: move global ctor out of namespace
+	anon (bug #845616)
+
+2003-11-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/arrange_profiles.cpp: merge all unit mask before generating
+	  event description string
+
+2003-11-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/arrange_profiles.cpp: put unitmask in the same axis as
+	  event:count, meaning than unitmask is now a part of the event
+	  specification.
+
+2003-12-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_sfile.c: we reversed to/from pc in call graph sample
+
+2003-11-23  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/profile.h:
+	* pp/opgprof.cpp: oops a simplify a bit too cg handling in my last
+	  patch, it was segfaulting each time no cg file was found...
+
+2003-11-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opgprof.cpp: simplify a bit cg handling, we don't need to know
+	  if we retrieved some cg files since the profile_t will be empty
+	  in this case
+
+2003-11-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/profile.h: iterator::vma() must return the full key not only
+	  an unsigned int.
+	* pp/opgprof.cpp: implement merging of cg files.
+
+2003-11-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/profile_spec.cpp:
+	* libpp/profile_spec.h:
+	* pp/opannotate_options.cpp:
+	* pp/opgprof_options.cpp:
+	* pp/opreport_options.cpp: filter call graph samples files
+
+2003-11-14  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_mangling.c: oops, it's better to really open the cg file
+
+	* daemon/opd_sfile.c:
+	* daemon/opd_stats.c:
+	* daemon/opd_stats.h:
+	* daemon/liblegacy/opd_24_stats.c:
+	* daemon/liblegacy/opd_24_stats.h:
+	* daemon/liblegacy/opd_proc.c: log sample lost due to sample file open
+	  failure
+
+2003-11-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/liblegacy/opd_parse_proc.c: always provide an image name
+	  for parsed process in /proc
+
+2003-11-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/oprofile.xml:
+	* libop/op_cpu_type.c: s/hammer/AMD64 processors/ for user visible
+	  name.
+
+2003-11-13  John Levon  <levon@movementarian.org>
+
+	* libutil/op_file.h:
+	* libutil/op_file.c: remove op_c_dirname(),
+	op_relative_to_absolute_path(), op_is_directory(),
+	op_follow_link(), in favour of using realpath(3)
+
+	* libutil/tests/file_tests.c: fixes for above changes
+
+	* libutil++/file_manip.h:
+	* libutil++/file_manip.cpp: changes from above. Add
+	op_realpath().
+
+	* libutil++/tests/file_manip_tests.cpp: changes from 
+	above.
+
+	* daemon/oprofiled.c:
+	* daemon/liblegacy/opd_parse_proc.c:
+	* gui/oprof_start_util.cpp:
+	* libpp/locate_images.cpp:
+	* libpp/profile_spec.cpp:
+	* pp/opannotate.cpp: changes from above
+
+2003-11-12  John Levon  <levon@movementarian.org>
+
+	* configure.in: bump to 0.8cvs
+
+2003-11-11  John Levon  <levon@movementarian.org>
+
+	* configure.in: bump to 0.7.1
+
+2003-11-11  Joseph VanAndel  <unknown@unknown.org>
+
+	* daemon/liblegacy/init.c: fix #840046 (segfault when starting profiler
+	 with --no-vmlinux setup), this bug was present in 0.7.0.
+
+2003-11-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/profile_spec.cpp: more precise error message
+	* libutil++/tests/file_manip_tests.cpp: corner case test added
+	  for dirname
+
+2003-11-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/arrange_profiles.cpp: report_error() shows only distinct
+	  conflicting name.
+
+2003-11-10  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/opcontrol.1.in: reverse kernel:user in event setting description.
+	  Fix #838968
+
+2003-11-09  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/init.c:
+	* daemon/liblegacy/init.c: move opd_read_fs_int ...
+	* daemon/oprofiled.h:
+	* daemon/oprofiled.c: here
+	* daemon/liblegacy/opd_24_stats.c: dump kernel note buffer overflow and
+	  buffer overlow
+
+2003-11-09  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/op_help.c: do not use OP_MAX_COUNTERS but get counter number
+	  at runtime
+
+2003-11-09  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/tests/string_manip_tests.cpp: rtrim/ltrim/trim tests
+
+2003-11-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/tests/Makefile.am:
+	* libop/tests/mangle_tests.c: new tests: sample filename mangling
+
+2003-11-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* module/x86/op_syscalls.c: fix build with 2.2 kernel
+
+2003-11-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* Makefile.am: use .PHONY for module goal to not statisfy this goal
+	  with the subdir named module
+	* m4/findkernel.m4: minor fix.
+
+2003-11-06  John Levon  <levon@movementarian.org>
+
+	* Makefile.am: minor cleanup
+
+2003-11-06  John Levon  <levon@movementarian.org>
+
+	* gui/Makefile.am: remove unused -DKVERSION
+
+2003-11-06  John Levon  <levon@movementarian.org>
+
+	* configure.in: add --disable-werror and --disable-optimization
+
+	* doc/oprofile.xml: document above. Remove docs for
+	* --enable-gcov (only useful to developers)
+
+2003-11-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_kernel.c:
+	* daemon/liblegacy/opd_kernel.c: be less paranoid about kernel range,
+	  this is slightly different than the patch Thomas Spatzier tested but
+	  it can't hurt (famous last words ...). This fixes s390x where kernel
+	  start can be zero and was rejected.
+
+2003-11-06  Thomas Spatzier  <tspat@de.ibm.com>
+
+	* daemon/opd_cookie.c: changed an #if defined for selecting right
+	  system call for IBM s390 or s390x, respectively
+	  
+2003-11-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/path_filter.cpp: remove 2 identical FIXME
+	* libutil++/tests/file_manip_tests.cpp:
+	* libutil++/tests/path_filter_tests.cpp: reflect the behavior by
+	  new tests
+
+2003-11-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/db_manage.c:
+	* libop/op_events.h: -pedantic fix
+
+2003-11-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_sfile.c:
+	* daemon/liblegacy/opd_kernel.c:
+	* libutil/op_cpufreq.c:
+	* libutil/op_file.c: a few s/goto/break/
+	* libpp/format_output.cpp: padding never used after initialization
+
+2003-11-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/comma_list.h: don't accept cumulative behavior
+	* libutil++/string_manip.cpp: separate_token() return by value
+	* gui/oprof_start.cpp:
+	* libopt++/popt_options.cpp:
+	* libpp/parse_filename.cpp:
+	* libpp/profile_spec.cpp:
+	* libutil++/comma_list.h:
+	* libutil++/string_filter.cpp:
+	* libutil++/string_manip.cpp:
+	* libutil++/string_manip.h:
+	* libutil++/tests/comma_list_tests.cpp:
+	* libutil++/tests/string_manip_tests.cpp: update according
+	* libpp/profile_spec.cpp: remove all trace of defunct op_alias
+
+2003-11-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/liblegacy/opd_image.c:
+	* daemon/liblegacy/opd_image.h:
+	* daemon/liblegacy/opd_mapping.c:
+	* daemon/liblegacy/opd_mapping.h:
+	* daemon/liblegacy/opd_proc.c:
+	* gui/oprof_start.cpp:
+	* gui/oprof_start.h:
+	* gui/oprof_start_config.cpp:
+	* gui/oprof_start_util.cpp:
+	* libop/op_config_24.h:
+	* libpp/format_output.cpp:
+	* libpp/op_header.cpp:
+	* libpp/profile.h:
+	* libpp/profile_container.cpp:
+	* libpp/profile_spec.cpp:
+	* libpp/profile_spec.h:
+	* libpp/symbol.h:
+	* libpp/symbol_sort.cpp:
+	* libutil++/stream_util.cpp:
+	* libutil++/stream_util.h:
+	* libutil++/utility.h:
+	* pp/common_option.cpp:
+	* pp/common_option.h:
+	* pp/opannotate_options.h:
+	* pp/opgprof.cpp:
+	* pp/opgprof_options.cpp:
+	* pp/opgprof_options.h:
+	* pp/opreport_options.cpp:
+	* pp/opreport_options.h:
+	* pp/populate.cpp: remove some .h dependencies
+
+2003-11-03  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/tests/Makefile.am:
+	* libutil++/tests/utility_tests.cpp: new test files convering most of
+	  utility.h and op_exception.h
+
+2003-11-02  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/parse_filename.cpp: avoid repetitive vector::erase(v.begin())
+	* libregex/stl.pat.in:
+	* libregex/tests/mangled-name.in: add (i|o)stream operator(>>|<<)
+
+2003-11-02  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/liblegacy/opd_image.h:
+	* daemon/liblegacy/opd_image.c:
+	* daemon/liblegacy/opd_proc.c:
+	* daemon/liblegacy/opd_sample_files.c: sparse sample file array
+	  allocated by line.
+
+2003-11-02  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/glob_filter.h:
+	* libutil++/path_filter.h:
+	* libutil++/string_filter.h: comment fix to match implementation
+	* libutil++/tests/path_filter_tests.cpp: new file test
+	* libutil++/tests/Makefile.am: upate build
+	* libutil++/tests/string_filter_tests.cpp: test white space at start
+	  of pattern
+
+2003-11-02  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/string_manip.cpp: format_double can only format percent
+	* libutil++/string_manip.h:
+	* libpp/format_output.cpp:
+	* libutil++/tests/string_manip_tests.cpp:
+	* pp/opannotate.cpp:
+	* pp/opreport.cpp: s/format_double/format_percent/
+
+2003-11-02  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/glob_filter.h:
+	* libutil++/string_filter.h:
+	* libutil++/tests/string_filter_tests.cpp: minor tidy
+
+	* libutil++/tests/glob_filter_tests.cpp: new file
+	* libutil++/tests/Makefile.am: update build
+
+2003-11-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/arrange_profiles.cpp: typo
+	* libutil++/generic_spec.cpp: removed file
+	* libutil++/Makefile.am: update according
+	* libutil++/generic_spec.h: ensure generic_spec<string> will not link
+	* libutil++/path_filter.cpp: minor tidy
+
+2003-11-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/tests/string_manip_tests.cpp: ehance output on failure
+	* module/oprofile.h:
+	* module/oprofile.c: two new read-only sysctl: nr_buffer_overflow and
+	  nr_note_buffer_overflow
+
+2003-11-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/tests/Makefile.am:
+	* libutil++/tests/file_manip_tests.cpp: don't use getcwd nor __FILE__
+	  but ${topdir} and hard coded filename
+
+2003-11-01  John Levon  <levon@movementarian.org>
+
+	* daemon/liblegacy/opd_parse_proc.c: use op_follow_link
+
+	* libutil/op_file.c:
+	* libutil/op_file.h: make op_get_link() static, rename
+	op_basename to op_c_basename
+
+	* libutil++/file_manip.cpp:
+	* libutil++/file_manip.h: rename to op_basename()/op_dirname().
+	Use op_follow_link() for follow_link().
+
+	* libutil++/tests/file_manip_tests.cpp:
+	* gui/oprof_start_util.cpp:
+	* libpp/locate_images.cpp:
+	* libpp/name_storage.cpp:
+	* libutil++/path_filter.cpp:
+	* pp/opannotate.cpp:
+	* pp/opreport.cpp: fixup from above changes
+
+2003-11-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.h: has_debug_info() new member
+	* pp/populate.h:
+	* pp/populate.cpp: 
+	* pp/opannotate.cpp: use it to error out when --assembly is not
+	  requested and no debug information exists
+
+2003-10-31  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/common_option.cpp: don't exit() if merge_by.lib is set through
+	  !allow_lib
+
+2003-10-31  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opreport_options.cpp: move handle_merge_option() ...
+	* pp/common_option.h: 
+	* pp/common_option.cpp: here
+	* pp/opannotate_options.cpp: use it but disallow --merge=lib
+
+2003-10-31  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil/op_file.c:
+	* libutil/op_file.h: implement dirname(), is_directory() and
+	  op_follow_link()
+	* daemon/oprofiled.c: follow symlink for image filter
+	* libutil++/file_manip.cpp:
+	* libutil++/file_manip.h:
+	* gui/oprof_start_util.cpp:
+	* libpp/profile_spec.cpp:  rename op_follow_link() to follow_link()
+
+2003-10-31  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil/tests/file_tests.c: "//usr" --> "//usr"
+	* libutil++/tests/.cvsignore:
+	* libutil++/tests/Makefile.am:
+	* libutil++/tests/file_manip_tests.cpp: new tests file.
+
+2003-10-31  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_perfmon.c: fix compilation
+
+2003-10-30  John Levon  <levon@movementarian.org>
+
+	* libpp/profile_spec.cpp: introduce a helper function
+	to make the comma_list matching clear
+
+2003-10-30  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/comma_list.h: is_set() new member
+	* libpp/profile_spec.cpp: fix matching logic for cpu/tid/tgid
+
+2003-10-30  John Levon  <levon@movementarian.org>
+
+	* libutil++/generic_spec.h: add value() and
+	is_set(), remove bool parameter from T value
+	match() (it was never set to true)
+
+	* libutil++/comma_list.h: do not accept
+	generic_spec, the behaviour was to implicitly
+	not match an "all" generic_spec. Instead:
+
+	* libpp/profile_spec.cpp: encode the matching
+	behaviour explicitly, and add a comment.
+
+	* libutil++/tests/comma_list_tests.cpp: fix to
+	match the above
+
+2003-10-30  John Levon  <levon@movementarian.org>
+
+	* Makefile.am: re-order build subdirs
+
+	* libabi/Makefile.am: only build abitest on
+	make check
+
+	* pp/Makefile.am: pp_common not pp_commons
+
+2003-10-30  John Levon  <levon@movementarian.org>
+
+	* libutil++/tests/Makefile.am:
+	* libutil++/tests/comma_list_tests.cpp: Add.
+
+2003-10-30  John Levon  <levon@movementarian.org>
+
+	* doc/Makefile.am: improve chunk rules
+
+2003-10-30  John Levon  <levon@movementarian.org>
+
+	* libutil++/tests/Makefile.am:
+	* libutil++/tests/string_filter_tests.cpp: Add.
+
+	* libutil++/tests/string_manip_tests.cpp: fix header include
+
+2003-10-30  John Levon  <levon@movementarian.org>
+
+	* libutil++/tests/string_manip_tests.cpp: fix tobool test
+	("33" is not castable to bool)
+
+2003-10-30  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/string_manip.cpp:
+	* libutil++/string_manip.h: remove tostr()/tobool/touint(), rename
+	  lexical_cast_no_ws<> to op_lexical_cast<>
+
+	* gui/oprof_start.cpp:
+	* gui/oprof_start_config.cpp:
+	* libpp/arrange_profiles.cpp:
+	* libpp/filename_spec.cpp:
+	* libpp/op_header.cpp:
+	* libutil++/comma_list.h:
+	* libutil++/generic_spec.h:
+	* libutil++/tests/string_manip_tests.cpp: use op_lexical_cast<>
+
+2003-10-29  John Levon  <levon@movementarian.org>
+
+	* pp/common_option.h: use std namespace
+
+2003-10-28  Jason Lunz  <lunz@falooley.org>
+
+	* doc/oprofile.1.in: document cpu,tid,tgid in profile
+	spec
+
+2003-10-29  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/profile_spec.cpp: error out for all tag:value specified
+	  more than once.
+
+2003-10-29  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/opannotate.1.in:
+	* doc/opreport.1.in:
+	* doc/oprofile.xml:
+	* libregex/demangle_symbol.cpp:
+	* libregex/demangle_symbol.h:
+	* pp/common_option.cpp:
+	* pp/common_option.h:
+	* pp/opannotate_options.cpp:
+	* pp/opannotate_options.h:
+	* pp/opreport_options.cpp:
+	* pp/opreport_options.h: remove --no-demangle, --smart-demangle and
+	  --demangle, replace them with --demangle=none|smart|normal
+
+2003-10-29  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/tests: new directory
+	* libutil++/tests/string_manip_tests.cpp: new tests file
+	* configure.in:
+	* libutil++/Makefile.am:
+	* libutil++/tests/.cvsignore:
+	* libutil++/tests/Makefile.am: handle new test
+
+	* libutil++/string_manip.h:
+	* libutil++/string_manip.cpp: correct implementation of separate_token
+	  to match the documentation
+	* daemon/liblegacy/opd_image.c: fix comment
+
+2003-10-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/count_array.cpp:
+	* libpp/count_array.h:
+	* libpp/locate_images.h:
+	* libpp/parse_filename.cpp:
+	* libpp/profile.cpp:
+	* libpp/profile.h:
+	* libpp/profile_spec.cpp:
+	* libpp/symbol_sort.cpp: minor tidy
+
+2003-10-28  Jason Lunz  <lunz@falooley.org>
+
+	* doc/opcontrol.1.in: better wording for --separate=
+	* doc/oprofile.1.in: typo
+
+2003-10-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/liblegacy/init.c:
+	* daemon/liblegacy/opd_24_stats.c:
+	* daemon/liblegacy/opd_24_stats.h:
+	* daemon/liblegacy/opd_image.c:
+	* daemon/liblegacy/opd_image.h:
+	* daemon/liblegacy/opd_kernel.c:
+	* daemon/liblegacy/opd_kernel.h:
+	* daemon/liblegacy/opd_mapping.c:
+	* daemon/liblegacy/opd_mapping.h:
+	* daemon/liblegacy/opd_parse_proc.c:
+	* daemon/liblegacy/opd_parse_proc.h:
+	* daemon/liblegacy/opd_proc.c:
+	* daemon/liblegacy/opd_proc.h:
+	* daemon/liblegacy/opd_sample_files.c:
+	* daemon/liblegacy/opd_sample_files.h: move doygen comment from *.c to
+	  *.h. Add some doxygen comment.
+
+2003-10-27  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/liblegacy/opd_24_stats.c:
+	* daemon/liblegacy/opd_image.h:
+	* daemon/liblegacy/opd_image.h: nr_images static
+
+2003-10-27  John Levon  <levon@movementarian.org>
+
+	* doc/opcontrol.1.in: document --image=
+
+	* doc/oprofile.xml:
+	* utils/opcontrol: make user specify "--image=all"
+	to reset. Clean up help message. Ensure note table
+	size is given a value. Add '-t' for '--stop', and
+	'-i' for '--image'.
+
+2003-10-27  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: document opcontrol --image=
+
+2003-10-27  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_events.h:
+	* daemon/opd_events.c: move code for handling
+	event descriptions here, and share find_counter_event(),
+	plus fill_header()
+
+	* daemon/opd_mangling.c:
+	* daemon/opd_perfmon.c:
+	* daemon/oprofiled.c:
+	* daemon/oprofiled.h:
+	* daemon/liblegacy/opd_proc.c:
+	* daemon/liblegacy/opd_sample_files.c: changes from
+	above
+
+2003-10-27  John Levon  <levon@movementarian.org>
+
+	* daemon/oprofiled.c: fix help text
+
+	* daemon/liblegacy/init.c:
+	* daemon/liblegacy/opd_proc.h:
+	* daemon/liblegacy/opd_proc.c: clean up headers
+	a bit
+
+2003-10-27  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start.cpp: check we can get kernel interface
+
+2003-10-27  John Levon  <levon@movementarian.org>
+
+	* daemon/liblegacy/Makefile.am: remove unneeded
+	-I for abi
+
+2003-10-27  John Levon  <levon@movementarian.org>
+
+	* daemon/init.c:
+	* daemon/opd_perfmon.c: move timer interrupt checks
+	into perfmon
+
+2003-10-27  John Levon  <levon@movementarian.org>
+
+	* daemon/oprofiled.c: use op_get_interface()
+
+	* libop/op_get_interface.c: simplify
+
+2003-10-26  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/ui/oprof_start.base.ui:
+	* gui/oprof_start.cpp:
+	* gui/oprof_start.h: check separate_lib checkbox when
+	  separate_kernel_cb is checked
+
+2003-10-26  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/opcontrol: allow to reset --image through empty --image=
+	  or --image
+
+2003-10-26  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_cookie.c: reduce the hash table size somewhat
+
+	* various: fixes for doxygen
+
+2003-10-26  John Levon  <levon@movementarian.org>
+
+	* HACKING:
+	* configure.in:
+	* Makefile.am:
+	* dae/: move all of 2.4 daemon code to ...
+
+	* daemon/liblegacy/: here
+
+	* daemon/Makefile.am:
+	* daemon/opd_util.h:
+	* daemon/opd_util.c: move to ...
+
+	* daemon/oprofiled.h:
+	* daemon/oprofiled.c: here, and call the right operations
+	depending upon oprofile kernel version.
+
+	* daemon/init.c:
+	* daemon/liblegacy/init.c: init and running for each version
+
+2003-10-26  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_cookie.c: make sure to create the
+	cookie for the ignore value if it's not found
+
+	* daemon/opd_sfile.c: simplify ignored logic
+
+2003-10-26  John Levon  <levon@movementarian.org>
+
+	* doc/internals.xml:
+	* doc/buffers.png: add a diagram
+
+2003-10-26  Philippe Elie  <phil.el@wanadoo.fr>
+
+	implement image filtering:
+
+	* dae/opd_image.h: add a field filtered
+	* dae/opd_image.c: set it at image creation
+	* dae/opd_proc.c: don't record sample when !image->filtered
+
+	* daemon/opd_cookie.h: add a field filtered
+	* daemon/opd_cookie.c: set it a cookie_entry creation.
+	* daemon/opd_sfile.h: add a field filtered
+	* daemon/opd_file.c: set it a opd_sfile struct creation
+	* daemon/opd_trans.c: record sample if filtered
+
+	* daemon/opd_util.h: export opd_hash_name(), is_image_filtered()
+	* daemon/opd_util.c: implement --image=xxx
+
+	* oprofiled.c: #include "config.h" not <>
+
+	* utils/opcontrol: handle --image
+
+2003-10-26  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: remove some outdated stuff
+
+2003-10-25  John Levon  <levon@movementarian.org>
+
+	* doc/internals.xml: more docs
+
+2003-10-25  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_perfmon.c: cleanups
+
+2003-10-24  John Levon  <levon@movementarian.org>
+
+	* doc/internals.xml: write some more
+
+2003-10-23  John Levon  <levon@movementarian.org>
+
+	* configure.in: bump to 0.7.1cvs
+
+2003-10-22  John Levon  <levon@movementarian.org>
+
+	* libop/tests/Makefile.am:
+	* libop/tests/load_events_files_tests.c:
+	* libop/tests/alloc_counter_tests.c: fix
+	make distcheck
+
+	* configure.in: bump to 0.7
+ 
+2003-10-22  John Levon  <levon@movementarian.org>
+
+	* daemon/Makefile.am:
+	* daemon/opd_perfmon.h:
+	* daemon/opd_perfmon.c: re-enable. Wait for children.
+	More safety checking.
+
+	* daemon/oprofiled.c: only use perfmon if !timer
+
+2003-10-20  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/oprofile.xml:
+	* doc/oprofile.1.in: s/physical CPU/CPU/
+
+2003-10-20  John Levon  <levon@movementarian.org>
+
+	* daemon/Makefile.am:
+	* daemon/opd_perfmon.h: disable perfmon nicely
+
+	* gui/oprof_start.cpp:
+	* gui/oprof_start_config.h:
+	* gui/oprof_start_config.cpp:
+	* gui/ui/oprof_start.base.ui: Fix reading of separate
+	parameters. Add CPU and thread separation
+
+2003-10-20  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/profile_spec.cpp: relative path are relative to current dir
+	  not filename.
+
+2003-10-20  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml:
+	* doc/opreport.1.in: fix --merge docs and profile specs
+
+2003-10-20  John Levon  <levon@movementarian.org>
+
+	* dae/opd_sample_files.c:
+	* daemon/opd_mangling.c:
+	* libabi/abi.cpp:
+	* libabi/abi_test.cpp:
+	* libabi/op_import.cpp:
+	* libop/op_config.h:
+	* libop/op_sample_file.h:
+	* libpp/op_header.cpp: remove ctr and separate_* from
+	header. Re-arrange it a little, and make it 64 bytes
+	on ILP32. Bump the version.
+
+2003-10-20  John Levon  <levon@movementarian.org>
+
+	* libpp/arrange_profiles.cpp: rework the clashing-axes
+	error message to be nicer to the user
+
+2003-10-20  John Levon  <levon@movementarian.org>
+
+	* libpp/arrange_profiles.cpp: if tid == tgid for
+	every profile class, allow axes of both TID and TGID
+	- there is no actual difference, only theoretical
+
+2003-10-20  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/oprofiled.c: correct an error message
+	* libop/op_alloc_counter.h: remove bogus FIXME
+	* libutil++/child_reader.cpp: avoid quadratic behaviour if child does a
+	  lot of output in stderr
+	* libpp/opgprof.cpp: fix comment
+
+2003-10-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start.cpp: redundant return
+
+2003-10-19  John Levon  <levon@movementarian.org>
+
+	* libop/op_events.c: move to a fixed value for the default
+	event count value
+
+2003-10-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	remove some FIXME:
+	* libpp/format_output.h: remove first_output bool member
+	* libpp/format_output.cpp: call output_header from the right place
+	* libpp/op_header.h: remove bogus FIXME
+
+	* libregex/tests/Makefile.am: fix dependencies on mangled-name file,
+	  fix make dist
+	* libregex/tests/mangled-name.in: simplify a bit and remove a bogus
+	  FIXME
+	* libregex/tests/regex_test.cpp: fix comment
+
+	* module/ia64/op_syscalls.c:
+	* module/x86/hammer_op_syscalls.c:
+	* module/x86/op_syscalls.c: remove some FIXME
+
+2003-10-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/arrange_profiles.cpp: clarify suggestion.
+	* pp/opreport_options.cpp: update options help string for --merge.
+
+	* libpp/profile_container.cpp:
+	* libpp/profile_spec.cpp:
+	* pp/common_option.cpp:
+	* pp/populate.cpp: ';' are not necessary to end namespace
+
+2003-10-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/arrange_profiles.cpp: use a set<profile_classes> instead
+	  of a vector<...> to replace a O(N*M) by a O(N*log(M)) behavior.
+	  (N number of samples files, M number of class).
+
+2003-10-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.cpp: show filename when warning about no debug
+	  information available. get_linenr(): s/filename/source_filename/
+
+2003-10-16  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* events/ia64/itanium/events: counter 0,1 not 2,3 for IA64_INST_RETIRED
+
+	* daemon/opd_util.c: opd_parse_events() fix use after free.
+
+2003-10-16  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_perfmon.c: disable the code
+
+2003-10-15  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_perfmon.c: fflushes to improve
+	order of debug log
+
+2003-10-15  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_perfmon.c: fix dumb allocation typo;
+	handle signals correctly; wait for children to
+	come up before returning
+
+2003-10-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_sample_files.c:
+	* daemon/opd_mangling.c:
+	* daemon/opd_perfmon.c:
+	* daemon/opd_util.c: check we not overflow op_nr_counters
+
+2003-10-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* events/ia64/itanium/events: correct counter available according
+	  to intel doc.
+
+2003-10-15  John Levon  <levon@movementarian.org>
+
+	* dae/opd_image.c:
+	* dae/opd_kernel.c:
+	* dae/opd_proc.c:
+	* dae/opd_sample_files.c:
+	* dae/oprofiled.c:
+	* daemon/opd_kernel.c:
+	* daemon/opd_mangling.c:
+	* daemon/opd_sfile.c:
+	* daemon/opd_trans.c:
+	* daemon/opd_util.c:
+	* daemon/opd_util.h:
+	* daemon/oprofiled.c: merge the options handling
+	for dae and daemon
+
+2003-10-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_perfmon.c:
+	* module/ia64/op_pmu.c: bit mask for event select field is 8 bits not 7
+
+2003-10-14  John Levon  <levon@movementarian.org>
+
+	* configure.in:
+	* m4/findkernel.m4:
+	* utils/opcontrol: 2.5 refs -> 2.6
+
+2003-10-14  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: merge some 2.4/6 code
+
+2003-10-14  John Levon  <levon@movementarian.org>
+
+	* dae/opd_image.c:
+	* dae/opd_sample_files.c:
+	* dae/oprofiled.c:
+	* utils/opcontrol: use --events for 2.4 daemon
+	too
+
+	* daemon/opd_perfmon.c:
+	* daemon/opd_mangling.c: fix counter numbering
+	on !perfmon
+
+2003-10-14  John Levon  <levon@movementarian.org>
+
+	* configure.in: xmemdup not xmemdump
+
+2003-10-14  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_perfmon.c: propagate a SIGTERM
+	up to the parent.
+
+2003-10-14  John Levon  <levon@movementarian.org>
+
+	* m4/perfmon.m4:
+	* configure.in: remove pfmlib checks
+
+	* daemon/opd_util.h:
+	* daemon/opd_util.c:
+	* daemon/opd_mangling.c:
+	* daemon/oprofiled.c: parse more detailed events
+	passed on command line
+
+	* daemon/opd_perfmon.h:
+	* daemon/opd_perfmon.c: don't use libpfm at all,
+	do it ourselves.
+
+	* utils/opcontrol: pass more of the events info to
+	the daemon
+
+2003-10-14  John Levon  <levon@movementarian.org>
+
+	* m4/perfmon.m4:
+	* configure.in: look for pfmlib 3
+
+	* daemon/Makefile.am:
+	* daemon/opd_perfmon.h:
+	* daemon/opd_perfmon.c: interface to perfmon on 2.6 IA64
+
+	* daemon/opd_mangling.c:
+	* daemon/oprofiled.c: read event descriptions from command
+	line not oprofilefs
+
+	* daemon/opd_util.h:
+	* daemon/opd_util.c: receive SIGUSR1/2 for perfmon
+
+	* utils/opcontrol: handle multiple oprofileds. Send SIGUSR1/2
+	on start/stop. Pass in events list to oprofiled on 2.6. Don't
+	attempt to fill in oprofilefs with event info if using perfmon.
+
+2003-10-14  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_mangling.c:
+	* daemon/opd_sfile.c:
+	* daemon/opd_sfile.h: protect the sfile we are acting on to be freed
+	  by sfile_lru_clear()
+
+	* libdb/db_manage.c:
+	* libdb/odb_hash.h: Do not put hash->descr in an inconsistent state
+	  when a failure occur.
+
+2003-10-13  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* module/oprofile.c: don't restore syscall and stop counter twice
+
+2003-10-13  Will Cohen  <wcohen@redhat.com>
+
+	* libop/op_parse_event.c(parse_events): Correct fprintf.
+
+2003-10-13  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* module/x86/hammer_op_syscalls.c: pass tgid to daemon. Not tested!
+
+2003-10-12  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: share --separate-cpu/thread code now
+
+2003-10-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* configure.in: add libregex/tests/mangled-name.in
+	* libregex/tests/mangled-name.txt: move ...
+	* libregex/tests/mangled-name.in: here, tune to support different arch
+	* libregex/tests/Makefile.am: s/mangled-name.txt/mangled-name.in
+	* libregex/stl.pat.in: fix iterator<... ptrdiff_t>
+	* libregex/tests/Makefile.am: update according to filename change
+
+	* libregex/tests/regex_test.cpp: really fails on exception.
+
+2003-10-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/oprofiled.c: don't set cpu_number when !--separate=cpu
+	
+	* libop/tests/alloc_counter_tests.c: printf format for 64 bits arch
+	* libop/tests/cpu_type_tests.c: #include <string.h>
+	* libop/tests/parse_event_tests.c: #include <string.h>
+
+2003-10-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_interface.h: struct op_sample: remove packed attribute
+
+2003-10-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_image.c:
+	* dae/opd_image.h: reference count opd_image. Remove modification time
+	  checking. Remove hash field. Tidy
+	* dae/opd_kernel.c: pass tid, tgid to op_get_kernel_image()
+	* dae/opd_mapping.c:
+	* dae/opd_mapping.h: use module hash code for image name to index
+	  a cache of name, this hash code is no longer used elsewhere. When
+	  killing map delete associated image, reference count of image
+	  will check for a real delete.
+	* dae/opd_parse_proc.c: get tgid from /proc/pid/status
+	* dae/opd_proc.c: create an opd_proc by process when
+	  separate_thread == true. Tidy by adding an opd_for_each_proc()
+	* dae/opd_proc.h: add tid/tgid to opd_proc struct
+	* dae/opd_sample_files.c:
+	* dae/opd_sample_files.h: lru all samples files, allowing to cleanup
+	  a part of the lru if we go out of resource. Remove
+	  opd_handle_old_sample_files() since we no longer check for image
+	  modification time.
+	* dae/opd_stats.c:
+	* dae/opd_stats.h: statistics for opd_image struct depth search
+	* dae/oprofiled.c: add --separate-cpu and --separate-thread
+	* libop/op_interface.h: add tgid to samples struct passed from module
+	  to daemon.
+	* module/compat22.h:
+	* module/compat24.h: op_get_tgid() return tgid, fall back to return
+	  tid on 2.2 kernel.
+	* module/oprofile.c:
+	* module/ia64/op_syscalls.c: pass tgid to daemon. NOT TESTED but I
+	  think it's ok. Note than even if it's broken ia64 should work w/o
+	  --separate=thread
+	* module/x86/op_syscalls.c: pass tgid to daemon.
+	* utils/opcontrol: enable 2.4 thread/cpu separation
+
+	* libdb/tests/db_test.c: verbose on when we provide filename of db file
+	  to test on command line.
+
+2003-10-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_cpu_type.h:
+	* libop/op_cpu_type.c: constification
+	* utils/op_help.c: check only if CPU_NO_GOOD not range
+
+	* libutil/tests/Makefile.am:
+	* libregex/tests/Makefile.am:
+	* libdb/tests/Makefile.am: s/TEST = (.*)/TESTS = ${check_PROGRAMS}/
+
+	* libop/tests/alloc_counter_tests.c: comment fix
+
+	* libop/tests/Makefile.am:
+	* libop/tests/cpu_type_tests.c: new file, test libop/op_cpu_type.c
+
+2003-10-10  Will Cohen  <wcohen@redhat.com>
+
+	* libop/op_cpu_type.h (op_get_cpu_number): Clarify comment.
+	* libop/op_cpu_type.c (op_get_cpu_number): Check number.
+	* utils/op_help.c (main): Make check with CPU_NO_GOOD.
+
+2003-10-10  Will Cohen  <wcohen@redhat.com>
+
+	* libop/op_cpu_type.h (op_get_cpu_number): Declare.
+	* libop/op_cpu_type.c (op_get_cpu_number): New.
+	  (op_get_cpu_type): Use op_get_cpu_number.
+	* utils/op_help.c (main): Use op_get_cpu_number.
+
+2003-10-10  John Levon  <levon@movementarian.org>
+
+	* libop/op_parse_event.c: fix compile for IA64
+
+2003-10-09  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: document "no results" and
+	how to fix it
+
+2003-10-08  John Levon  <levon@movementarian.org>
+
+	* utils/op_help.c: standardise name
+
+	* gui/oprof_start.cpp: Qt 2.3.1 compile fix
+	(bug 819943)
+
+2003-10-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_kernel.c: memory leak
+
+	* dae/opd_mapping.c:
+	* dae/opd_mapping.h:
+	* dae/opd_parse_proc.c:
+	* dae/opd_proc.c: 
+	* dae/opd_proc.h: use a list of struct opd_map instead of an array,
+	  remove last_map optimization.
+
+	* dae/oprofiled.c: memory leak
+	
+	* libutil/op_cpufreq.c: memory leak, FILE* leak
+	* libutil/op_list.h: fix @author
+
+2003-10-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/oprofiled.c:
+	* dae/opd_proc.h:
+	* dae/opd_proc.c: use struct list_head to chain opd_proc struct in hash
+	  table
+
+	* utils/op_help.c: comment fix
+
+2003-10-06  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: work around 2.6 daemon's signal
+	handling race that could cause it to hang during
+	a --shutdown
+
+2003-10-05  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* events/i386/p4/events:
+	* events/i386/p4-ht/events: put GLOBAL_POWER_EVENTS on top
+
+	* events/i386/pii/unit_masks:
+	* events/i386/piii/unit_masks: typo in help string
+
+	* utils/op_help.c: show "counter: all" instead an enumeration of all
+	  counter
+
+2003-10-02  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* events/*.events *.unit_masks: move these files to subdir named
+	  arch/processor_name/events and arch/processor_name/unit_masks
+	* events/Makefile.am: update according
+	
+	* libop/op_events.c: now it's safe to allow loading events file from a
+	  directory provided through environment var OPROFILE_EVENTS_FILE_DIR
+	* libop/tests/alloc_counter_tests.c: use it
+	* libop/tests/load_events_files_tests.c: use it
+
+2003-10-02  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_events.c: revert last commit (allowed to find events files
+	  description directory in alternate directory)
+
+	* libop/tests/Makefile.am:
+	* libop/tests/load_events_files_tests.c: new files. Validate events
+	  description file by loading them.
+
+	* libutil/op_cpufreq.c: comment why we don't have any code handling
+	  s390
+
+2003-10-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* configure.in:
+	* libop/Makefile.am: new subdir
+	* libop/op_events.c: allow to retrieve events file dir through
+	  environment variable
+	* utils/op_help.c: move parse_events() and parsed_event struct to ...
+	* libop/op_parse_event.h:
+	* libop/op_parse_event.c: these new files
+
+	* libop/tests/Makefile.am: new tests subdir
+	* libop/tests/alloc_counter_tests.c: events mapping to counter nr tests
+	* libop/tests/parse_event_tests.c: event parsing tests
+
+2003-10-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_alloc_counter.c: add forward declaration
+	* libop/op_alloc_counter.c: alloc counter in increasing number order,
+	  it's less surprising.
+
+2003-10-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/tests/db_test.c: if previous tests fails a corrupted samples
+	  file can exist in test dir and will be re-used, remove() it.
+
+2003-10-01  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_sfile.c:
+	* libabi/op_import.cpp:
+	* libop/op_interface.h:
+	* libpp/locate_images.h: small cleanups
+
+	* pp/opreport_options.cpp: don't complain about
+	"-x -m all"
+
+2003-09-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil/op_file.c:
+	* libutil/tests/file_tests.c: honor posix "//" filename namespace
+
+2003-09-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_alloc_counter.h:
+	* libop/op_alloc_counter.c: change allocator by a backtracking
+	  algorithm walking only through possible solution.
+
+2003-09-26  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/tests/db_test.c: success must be silent
+	* dae/oprofiled.c:
+	* daemon/oprofiled.c:
+	* libutil/op_deviceio.c:
+	* libutil/op_deviceio.h: op_open_device(): remove unused parameter
+	  fatal
+
+2003-09-26  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil/tests/file_tests.c: Fix some test: in some case the pathname
+	  component must be valid since we lstat() them. Fix a segfault due
+	  to missing ',' 
+
+2003-09-26  John Levon  <levon@movementarian.org>
+
+	* libdb/tests/Makefile.am:
+	* libregex/tests/Makefile.am:
+	* libutil/tests/Makefile.am: don't build tests
+	unless "make check"
+
+2003-09-26  John Levon  <levon@movementarian.org>
+
+	* libutil/op_file.c: don't test for NULL path
+	passed in, we want to crash here instead of
+	in xstrdup
+
+	* configure.in:
+	* libutil/Makefile.am:
+	* libutil/tests/Makefile.am:
+	* libutil/tests/file_tests.c:
+	* libutil/tests/string_tests.c: add some unit tests
+	for libutil string and path handling
+
+2003-09-26  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/db_debug.c: remove useless display interface
+	* libdb/db_db_travel.c: remove callback interface
+	* libdb/odb_hash.h: remove display/callback interface
+	* libdb/db_test.cpp: move to tests subdir
+	* libdb/Makefile.am: update according
+	* libdb/tests: new dir
+	* libdb/tests/.cvsignore:
+	* libdb/tests/Makefile.am: new files
+	* libdb/tests/db_test.cpp: shorter tests
+
+	* libregex/mangled-name.txt:
+	* libregex/regex_testc.cpp: move to ...
+	* libregex/tests: new directory
+	* libdb/Makefile.am: update according
+	* libregex/tests/.cvsignore:
+	* libregex/tests/Makefile.am: new files
+
+2003-09-26  John Levon  <levon@movementarian.org>
+
+	* libabi/abi_test.cpp:
+	* libabi/op_import.cpp: small cleanups
+
+2003-09-25  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_cookie.c:
+	* daemon/opd_kernel.c:
+	* daemon/opd_sfile.c:
+	* daemon/opd_trans.c:
+	* daemon/oprofiled.c: trivial cleanups
+
+2003-09-25  Marc Herbert  <marc.herbert@ens-lyon.fr>
+
+	* configure.in: fix prefix stuff to allow stow
+	to work
+
+2003-09-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pch-c++.h: remove
+	* Makefile.am: update according
+	* configure.in: no longer need for conditional enable_pch
+	* m4/precompiledheader.m4: don't use -Winvalid-pch
+
+2003-09-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_sfile.c: sfile_lru_clear() return 0 if lru is empty
+	* daemon/opd_mangling.c: abort() if lru was empty (not tested)
+	* daemon/oprofiled.c: likewise; opd_alarm(): don't sfile_lru_clear()
+
+	* utils/op_help.c:
+	* daemon/opd_sfile.h:
+	* daemon/opd_cookie.h: s/()/(void)/ in some function prototype and
+	  definition
+
+	* daemon/opd_cookie.c: s/"not looked up"/"not hashed"/
+
+2003-09-25  John Levon  <levon@movementarian.org>
+
+	* daemon/oprofiled.c: push rlimit down back to 2048.
+	This gives a running RSS of about 10Mb when thread
+	profiling on my box, which seems reasonable (at 8192
+	it was hitting 40Mb)
+
+2003-09-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/oprofile.xml: clarify what means a configured kernel.
+
+2003-09-25  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_sfile.c: bump LRU_AMOUNT to 1000
+
+2003-09-24  John Levon  <levon@movementarian.org>
+
+	* doc/opcontrol.1.in:
+	* doc/oprofile.xml: document thread and cpu
+	profiling a bit
+
+	* daemon/opd_mangling.c:
+	* daemon/opd_sfile.c:
+	* daemon/oprofiled.c:
+	* utils/opcontrol: implement per-CPU profiling,
+	not tested yet
+
+2003-09-24  John Levon  <levon@movementarian.org>
+
+	* dae/opd_proc.c:
+	* dae/opd_sample_files.c:
+	* daemon/opd_mangling.c:
+	* daemon/opd_sfile.c:
+	* libabi/abi_test.cpp:
+	* libabi/op_import.cpp:
+	* libdb/db_insert.c:
+	* libdb/db_manage.c:
+	* libdb/db_test.c:
+	* libdb/odb_hash.h:
+	* libpp/op_header.cpp:
+	* libpp/profile.cpp: remove samples_odb_t.err_msg
+	entirely - prefer UNIX-style errno returns. Modify
+	error messages to match
+
+2003-09-24  John Levon  <levon@movementarian.org>
+
+	* dae/opd_sample_files.c:
+	* daemon/opd_sample_files.c:
+	* libpp/op_header.cpp:
+	* libpp/profile.cpp:
+	* libabi/abi_test.cpp:
+	* libabi/op_import.cpp:
+	* libdb/db_test.c:
+	* libdb/odb_hash.h:
+	* libdb/odb_manage.c: make odb_open return errno
+	instead of EXIT_FAILURE/SUCCESS to allow EMFILE
+	handling. Also do not leak fd's on failure.
+
+	* libutil/op_types.h: cookie_t moved into daemon/
+
+	* daemon/: major rewrite: move to a hash on all
+	parameters of struct transient. Lots of readability
+	cleanups, plus resistance to cookie lookup failures,
+	and hitting open file limits. Additionally thread
+	profiling for kernel threads is enabled now.
+
+2003-09-24  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_image.c: remove support for missing
+	CTX_TGID
+
+2003-09-24  John Levon  <levon@movementarian.org>
+
+	* daemon/oprofiled.c: remove /proc/kcore support
+
+2003-09-22  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_parse_proc.c: both op_file.h and op_fileio.h are needed
+
+2003-09-22  John Levon  <levon@movementarian.org>
+
+	* doc/CodingStyle: document doxygen placing rule
+
+	* libop/op_alloc_counter.h:
+	* libop/op_get_interface.c:
+	* libutil++/file_manip.cpp:
+	* libutil++/file_manip.h:
+	* libutil++/op_bfd.cpp:
+	* libutil++/op_bfd.h:
+	* libutil/op_deviceio.c:
+	* libutil/op_deviceio.h:
+	* libutil/op_get_time.c:
+	* libutil/op_get_time.h:
+	* libutil/op_libiberty.c:
+	* libutil/op_libiberty.h:
+	* libutil/op_lockfile.c:
+	* libutil/op_lockfile.h:
+	* libutil/op_popt.c:
+	* libutil/op_popt.h: follow the above
+
+	* libutil/op_file.c:
+	* libutil/op_file.h:
+	* libutil/op_fileio.c:
+	* libutil/op_fileio.h:
+	* dae/opd_parse_proc.c:
+	* libutil++/string_manip.cpp: move op_get_link to
+	op_file
+
+2003-09-22  John Levon  <levon@movementarian.org>
+
+	* libutil/op_fileio.h:
+	* libutil/op_fileio.c: warn about op_get_link()
+	restrictions
+
+	* libutil++/file_manip.h:
+	* libutil++/file_manip.cpp: s/op_read_link/op_follow_link,
+	and behaviour change to match
+
+	* libpp/profile_spec.cpp:
+	* gui/oprof_start_util.cpp: use op_follow_link
+
+2003-09-22  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/makefile.am: missing AM_CFLAGS setting
+
+	* dae/oprofiled.c:
+	* daemon/oprofiled.c: handle signal in read loop
+	* daemon/opd_util.h:
+	* daemon/opd_util.c: move opd_setup_signal() from dae/ daemon/
+
+2003-09-22  John Levon  <levon@movementarian.org>
+
+	* dae/oprofiled.c:
+	* daemon/oprofiled.c: mask SIGTERM too to prevent
+	the possibility of empty sample files
+
+2003-09-21  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/format_output.h:
+	* libpp/format_output.cpp:
+	* pp/opreport.cpp: format_output::show_header no hide_header
+
+2003-09-21  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/opreport.1.in:
+	* doc/oprofile.xml:
+	* libpp/format_output.h:
+	* libpp/format_output.cpp:
+	* pp/opreport.cpp: --global_percent must be effective for detailed
+	  output too
+
+2003-09-21  John Levon  <levon@movementarian.org>
+
+	* pp/opreport_options.cpp: prevent --global-percent
+	when appropriate
+
+2003-09-21  John Levon  <levon@movementarian.org>
+
+	* Makefile.am: back out broken make clean change
+
+2003-09-21  John Levon  <levon@movementarian.org>
+
+	* Makefile.am: make clean now removes *.html
+
+	* internals.xml: add some outline sections
+
+2003-09-21  John Levon  <levon@movementarian.org>
+
+	* doc/internals.xml: provide a short overview
+	and start a glossary
+
+	* libpp/count_array.h:
+	* libpp/format_output.cpp:
+	* libpp/format_output.h:
+	* libpp/profile.cpp:
+	* libpp/profile.h:
+	* libpp/profile_container.cpp:
+	* libpp/profile_container.h:
+	* pp/opreport.cpp: replace residual references to
+	count groups with profile class concept
+
+2003-09-21  John Levon  <levon@movementarian.org>
+
+	* doc/Makefile.am:
+	* doc/internals.xml: start an internals manual ...
+
+2003-09-19  John Levon  <levon@movementarian.org>
+
+	* pp/image_errors.cpp: missing include
+
+2003-09-19  John Levon  <levon@movementarian.org>
+
+	* libopt++/popt_options.h:
+	* libopt++/popt_options.cpp: remove additional_help
+	stuff, unused for some time
+
+2003-09-18  John Levon  <levon@movementarian.org>
+
+	* libutil++/Makefile.am:
+	* libutil++/image_flags.h: move to ...
+
+	* libpp/Makefile.am:
+	* libpp/image_error.h: ... here, and rename
+
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp: take an in-out bool
+	instead of image_flags
+
+	* libpp/arrange_profiles.cpp:
+	* libpp/arrange_profiles.h:
+	* libpp/locate_images.cpp:
+	* libpp/locate_images.h:
+	* libpp/profile_spec.cpp:
+	* pp/image_errors.cpp:
+	* pp/opgprof.cpp:
+	* pp/populate.cpp: changes from above
+
+2003-09-18  John Levon  <levon@movementarian.org>
+
+	* libutil++/Makefile.am:
+	* libutil++/image_flags.h: flags for image read failure
+
+	* libpp/profile_spec.cpp:
+	* libpp/locate_images.h:
+	* libpp/locate_images.cpp:
+	* libpp/arrange_profiles.h:
+	* libpp/arrange_profiles.cpp: use image_flags
+
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp: use image_flags, no longer error
+	out on format failure
+
+	* pp/Makefile.am:
+	* pp/image_errors.cpp:
+	* pp/image_errors.h: errors previously reported in locate_images
+	are now reported here by the client
+
+	* pp/opannotate.cpp:
+	* pp/opgprof.cpp:
+	* pp/opgprof_options.cpp:
+	* pp/opreport.cpp:
+	* pp/populate.h:
+	* pp/populate.cpp: use the above
+
+2003-09-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/format_output.cpp: use 9 not 12 for % field width
+	* libutil++/string_manip.cpp: shrink 100.0000 to 100.000
+	* pp/opreport.cpp: s/" "/' '
+
+2003-09-18  John Levon  <levon@movementarian.org>
+
+	* pp/opannotate_options.cpp:
+	* pp/opreport_options.cpp: clean up error messages
+
+	* pp/opgprof_options.h:
+	* pp/opgprof_options.cpp:
+	* pp/opgprof.cpp: use inverted_profile API
+
+2003-09-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/opcontrol: overwrite all current settings with --separate,
+	  this change behavior of --separate=kernel,library now we really setup
+	  both in this case.
+
+2003-09-18  John Levon  <levon@movementarian.org>
+
+	* libpp/locate_images.cpp: rewrite a little
+
+	* libutil++/op_bfd.cpp: set fsize to default to -1,
+	for fake artificial symbol
+
+2003-09-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/locate_images.h:
+	* libpp/locate_images.cpp: find_module_path() extra bool parameter
+	  to know if we fail to retrieve the image.
+	* libpp/arrange_profiles.h:
+	* libpp/arrange_profiles.cpp: use it and save this bool in
+	  inverted_profile struct
+	* libpp/profile_spec.cpp: update caller according
+
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp: use the above change to create fake op_bfd
+
+	* pp/opgprof_options.cpp:
+	* pp/opgprof.cpp: update caller but never allow fake op_bfd
+
+	* pp/populate.cpp: allow to create fake op_bfd
+	
+
+2003-09-18  John Levon  <levon@movementarian.org>
+
+	* dae/opd_image.c:
+	* dae/opd_proc.c:
+	* dae/opd_sample_files.c:
+	* dae/oprofiled.c:
+	* daemon/opd_image.c:
+	* daemon/opd_image.h:
+	* daemon/opd_kernel.c:
+	* daemon/opd_sample_files.c:
+	* daemon/oprofiled.c:
+	* gui/oprof_start.cpp:
+	* gui/oprof_start_config.cpp:
+	* gui/oprof_start_config.h:
+	* gui/ui/oprof_start.base.ui:
+	* libabi/abi.cpp:
+	* libabi/abi_test.cpp:
+	* libabi/op_import.cpp:
+	* libop/op_sample_file.h:
+	* libpp/op_header.cpp:
+	* utils/opcontrol: renamings of separate stuff
+
+2003-09-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_kernel.c: thinko in opd_get_module_info(): we must take
+	  care to re-use a previously created module not to create a new
+
+2003-09-17  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_kernel.c: logging improvements
+
+2003-09-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_kernel.c:
+	* daemon/opd_kernel.c: fix use after free of module
+
+2003-09-17  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_image.c: fix thread profiling when
+	--separate-library=0
+
+2003-09-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_kernel.c: add module to list of module ...
+	* daemon/opd_kernel.c: s/print/verbprintf
+
+2003-09-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_config.h: remove OPD_MAX_MODULEs
+	* dae/opd_kernel.c:
+	* daemon/opd_kernel.c: remove fixed array of modules replaced by
+	  a list. Unify the way we create opd_module
+	* utils/opcontrol: don't use --thread-profiling for 2.4
+
+2003-09-17 Ka Fai Lu  <kafai0928@yahoo.com>
+
+	I adapted slightly this patch Phil.
+	* daemon/opd_image.c:
+	* daemon/opd_image.h:
+	* daemon/opd_kernel.c:
+	* daemon/opd_sample_files.c:
+	* daemon/oprofiled.c:
+	* utils/opcontrol: implement per thread profiling
+
+2003-09-16  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libopt++/popt_options.h:
+	* libpp/locate_images.cpp: minor tidy
+
+2003-09-16  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: don't pass pid/pgrp filter
+	to 2.6 daemon
+
+	* dae/oprofiled.c:
+	* daemon/oprofiled.c: setrlimit to 8192 (lame
+	workaround for now), minor cleanups
+
+2003-09-15  John Levon  <levon@movementarian.org>
+
+	* common_option.cpp: rename the array to
+	avoid a link error in GCC 3.4
+
+2003-09-15  John Levon  <levon@movementarian.org>
+
+	* libop/Makefile.am:
+	* libop/op_interface_25.h: move to ...
+
+	* daemon/Makefile.am:
+	* daemon/opd_interface.h: ... here
+
+	* daemon/opd_image.c:
+	* daemon/oprofiled.c: use above. Remove pointless
+	command line options.
+
+	* libop/op_config_25.h: remove.
+
+	* libop/op_hw_config.h: move DCOOKIE_SHIFT to
+	opd_interface.h
+
+2003-09-15  John Levon  <levon@movementarian.org>
+
+	* configure.in: use -Wdeclaration-after-statement
+	if available
+
+	* README:
+	* daemon/opd_util.c:
+	* daemon/opd_util.h:
+	* doc/opannotate.1.in:
+	* doc/opgprof.1.in:
+	* doc/opreport.1.in:
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml:
+	* gui/oprof_start.cpp:
+	* gui/oprof_start_util.cpp:
+	* libop/op_cpu_type.c:
+	* libop/op_cpu_type.h:
+	* libop/op_get_interface.c:
+	* libpp/locate_images.cpp: remove references to
+	2.5, replaced with 2.6
+
+2003-09-15  John Levon  <levon@movementarian.org>
+
+	* doc/opreport.1.in: document --show-address
+
+2003-09-15  John Levon  <levon@movementarian.org>
+
+	* libpp/arrange_profiles.cpp:
+	* libpp/arrange_profiles.h:
+	* pp/populate.cpp: more commentary
+
+2003-09-14  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opreport.cpp: handle 2.95 right io manipulator and the lack
+	  of a proper setw(w) << std::string
+
+2003-09-14  John Levon  <levon@movementarian.org>
+
+	* pp/opreport.cpp: re-add header for image summary
+
+2003-09-14  John Levon  <levon@movementarian.org>
+
+	* libpp/arrange_profiles.cpp: throw an exception
+	if there are two many unmerged profiles, with details
+	of how to fix it
+
+	* pp/opgprof_options.cpp:
+	* pp/common_option.cpp: clean up error messages
+
+2003-09-14  John Levon  <levon@movementarian.org>
+
+	* libpp/arrange_profiles.h:
+	* libpp/arrange_profiles.cpp: add location of 
+	images when inverting profiles
+
+	* libpp/locate_images.cpp: return empty string
+	if file isn't readable
+
+	* pp/opannotate.cpp: use the above
+
+	* pp/opreport.cpp: use the above; place warnings
+	before any other output
+
+2003-09-14  John Levon  <levon@movementarian.org>
+
+	* pp/opgprof_options.cpp: use locate_image_path
+
+2003-09-14  John Levon  <levon@movementarian.org>
+
+	* Makefile.am:
+	* populate.h:
+	* populate.cpp: shared code for populating from
+	inverted profiles
+
+	* opreport.cpp:
+	* opannotate.cpp: use above
+
+2003-09-14  John Levon  <levon@movementarian.org>
+
+	* libpp/arrange_profiles.h:
+	* libpp/arrange_profiles.cpp: add invert_profiles
+
+	* pp/opreport.cpp: use it
+
+2003-09-14  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml:
+	* pp/opreport.cpp:
+	* pp/opreport_options.cpp:
+	* pp/opreport_options.h: Turn off VMA report by
+	default, add --show-address
+
+2003-09-14  John Levon  <levon@movementarian.org>
+
+	* pp/opreport.cpp: nice formatting of image report
+	column headers, respect --no-header
+
+2003-09-14  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/arrange_profiles.cpp: use string::erase() not string::clear()
+	  for 2.95
+
+	* libutil++/generic_spec.h: allow to ignore "all" match
+	* libutil++/comma_list.h: use it
+
+2003-09-14  John Levon  <levon@movementarian.org>
+
+	* pp/opreport.cpp: output column headers for
+	image report
+
+2003-09-14  John Levon  <levon@movementarian.org>
+
+	* libpp/op_header.h:
+	* libpp/op_header.cpp: output header info to
+	a string not a stream
+
+	* libpp/arrange_profiles.h:
+	* libpp/arrange_profiles.cpp: give classes a long
+	name, and fill in global event/cpu info
+
+	* pp/opannotate.cpp:
+	* pp/opannotate_options.cpp:
+	* pp/opannotate_options.h:
+	* pp/opgprof_options.cpp:
+	* pp/opreport.cpp:
+	* pp/opreport_options.cpp:
+	* pp/opreport_options.h: use the class long names
+	and info
+
+2003-09-14  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/profile_spec.cpp: handle symlink
+
+2003-09-14  John Levon  <levon@movementarian.org>
+
+	* arrange_profiles.h:
+	* arrange_profiles.cpp: Add code to give short names
+	to each class, unused yet
+
+2003-09-14  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/arrange_profiles.cpp: missing include<> with gcc 2.95
+
+2003-09-14  John Levon  <levon@movementarian.org>
+
+	* libpp/Makefile.am:
+	* libpp/split_sample_filename.cpp:
+	* libpp/split_sample_filename.h: rename as ...
+
+	* libpp/parse_filename.cpp:
+	* libpp/parse_filename.h: ... this
+
+	* libpp/filename_spec.cpp:
+	* libpp/arrange_profiles.cpp:
+	* libpp/arrange_profiles.h: sort classes for niceness,
+	changes from above
+
+	* pp/opreport.cpp: remove needless double check of
+	exclude_dependent
+
+	* libutil++/string_manip.cpp: touint should init to 0
+	in case of parse failure
+
+2003-09-14  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* configure.in: fix maximum template depth to 50
+	* libutil/op_fileio.c: op_get_link() don't truncate silently results
+	* m4/sstream.m4: use OP_CXXFLAGS not CXXFLAGS
+
+2003-09-14  John Levon  <levon@movementarian.org>
+
+	* pp/partition_files.h:
+	* pp/partition_files.cpp: remove, now unused
+
+2003-09-14  John Levon  <levon@movementarian.org>
+
+	* pp/opannotate.cpp:
+	* pp/opannotate_options.cpp:
+	* pp/opannotate_options.h: use arrange_profiles API
+
+2003-09-14  John Levon  <levon@movementarian.org>
+
+	* pp/opgprof_options.h:
+	* pp/opgprof_options.cpp:
+	* pp/opgprof.cpp: use arrange_profiles API
+
+2003-09-14  John Levon  <levon@movementarian.org>
+
+	* libpp/Makefile.am:
+	* libpp/arrange_profiles.cpp:
+	* libpp/arrange_profiles.h: introduce new
+	code for partitioning profiles and handling
+	merging
+
+	* libpp/partition_files.h:
+	* pp/opreport_options.cpp:
+	* pp/opreport_options.h:
+	* pp/opreport.cpp: use the above code
+
+	* libpp/format_flags.h:
+	* libpp/profile_container.cpp: remove unneeded
+	multiple apps hint
+
+	* libpp/count_array.cpp:
+	* libpp/count_array.h: remove unnecessary code
+
+2003-09-14  John Levon  <levon@movementarian.org>
+
+	* configure.in: back to 0.7cvs
+
+2003-09-14  John Levon  <levon@movementarian.org>
+
+	* pp/opannotate.cpp: gcc 2.91 workaround
+	(in 0.6.1 release)
+
+2003-09-14  John Levon  <levon@movementarian.org>
+
+	* configure.in: bump to 0.6.1
+
+2003-09-13  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: document "incorrect source attribution"
+	a bit
+
+2003-09-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/op_header.cpp: typo in comment
+
+2003-09-11  John Levon  <levon@movementarian.org>
+
+	* configure.in: check for -lintl, tweak -ldl check
+
+2003-09-11  John Levon  <levon@movementarian.org>
+
+	* dae/oprofiled.c:
+	* daemon/oprofiled.c:
+	* libdb/db_manage.c:
+	* libdb/db_test.c: correct headers
+
+2003-09-11  John Levon  <levon@movementarian.org>
+
+	* op_lockfile.c: use correct headers
+
+2003-09-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/op_help.c: check than all events are distincts
+
+2003-09-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pch-c++.h:
+	* m4/precompiledheader.m4: new file to handle precompiled header
+	* m4/Makefile.am:
+	* configure.in:
+	* Makefile.am: handle precompiled header
+
+2003-09-05  John Levon  <levon@movementarian.org>
+
+	* opd_image.c: cleanup of ctx_switch_set_image()
+
+2003-09-05  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_image.c: After a context switch ensure we update correctly
+	  the current image.
+
+2003-09-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opreport.cpp:
+	* pp/opannotate.cpp: catch op_bfd exception and recover gracefully
+
+2003-09-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/opcontrol: tweak "signaling daemon " message as suggested
+	  by Carlo Wood
+
+2003-09-04  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: mention --reset in
+	"Getting Started"
+
+2003-09-03  John Levon  <levon@movementarian.org>
+
+	* libop/op_events.c:
+	* libpp/op_header.cpp:
+	* dae/opd_sample_files.c:
+	* daemon/opd_sample_files.c: propagate event
+	error back up to caller
+
+	* libdb/odb_hash.h: fix comment
+
+2003-09-02  John Levon  <levon@movementarian.org>
+
+	* dae/opd_image.c:
+	* dae/opd_proc.c:
+	* dae/oprofiled.c:
+	* daemon/opd_image.c: use abort() not exit()
+	on "can't happen" errors
+
+2003-09-02  John Levon  <levon@movementarian.org>
+
+	* dae/opd_proc.c:
+	* daemon/opd_image.c: fix error message
+
+2003-08-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* events/alpha.ev6.events: fix duplicate um tag
+
+2003-08-28  John Levon  <levon@movementarian.org>
+
+	* events/i386.athlon.events: fix duplicate minimum tag
+
+	* daemon/opd_image.c:
+	* libop/op_events.c: check for duplicate tags
+
+2003-08-28  John Levon  <levon@movementarian.org>
+
+
+2003-08-27  Will Cohen  <wcohen@redhat.com>
+
+	* utils/op_help.c (resolve_events): Typecast printf argument.
+
+2003-08-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opannotate_options.cpp:
+	* pp/opannotate_options.h:
+	* pp/opannotate.cpp: enable multiple events
+
+	* pp/opreport_options.cpp: remove #if 0 .... #endif
+
+2003-08-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/count_array.cpp: avoid to access invalid memory
+
+2003-08-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* configure.in:
+	* m4/builtinexpect.m4:
+	* m4/configmodule.m4:
+	* module/Makefile.in:
+	* module/ia64/Makefile.in:
+	* module/x86/makefile.in: always use EXTRA_CFLAGS_MODULE not
+	EXTRA_CFLAGS for module build flags
+
+2003-08-23  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libregex/op_regex.h:
+	* libregex/op_regex.cpp: tidy
+
+	* libutil++/op_bfd.cpp: remove obsolete comment
+
+2003-08-23  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/file_manip.h:
+	* libutil++/file_manip.cpp: is_directory(dirname): return true if
+	  dirname exists
+	* pp/common_option.cpp: validate --image-path parameters
+
+2003-08-22  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* events/i386.p4.events: clarify than 128BIT_MMX_UOP count only integer
+	  SSE2 ops
+	* pp/opreport.cpp: minor spacing change in output
+
+2003-08-22  John Levon  <levon@movementarian.org>
+
+	* daemon/oprofiled.c: report the kernel pointer size
+
+2003-08-22  John Levon  <levon@movementarian.org>
+
+	* daemon/oprofiled.c: read new /dev/oprofile/pointer_size
+	in preference to kcore. kcore code will eventually go.
+
+2003-08-21  John Levon  <levon@movementarian.org>
+
+	* libutil++/op_bfd.cpp: update gcc2_compiled. comment
+	to reflect reality
+
+2003-08-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opreport.cpp: really merge when --merge=lib and image name are
+	  specified.
+
+2003-08-16  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opannotate.cpp: output threshold percent when necessary.
+
+2003-08-16  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.cpp: remove ELF-based symbol size code
+
+2003-08-15  William Cohen  <wcohen@redhat.com>
+
+	* doc/opcontrol.1.in:
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml: Correct path to /root/.oprofile/daemonrc.
+
+2003-08-15  Thomas Spatzier  <TSPAT@de.ibm.com>
+
+	* daemon/opd_cookie.h: fix s390 syscall
+
+2003-08-14  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/string_manip.cpp: erase_to_last_of() is not a ltrim()
+
+2003-08-14  Philippe Elie  <phil.el@wanadoo.fr>
+
+	Dave Jones suggested this change.
+
+	* module/x86/op_model_p4.c: remove superflous ';' at end of some macro
+
+2003-08-14  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/string_manip.h: remove erase_from_last_of()
+	* libutil++/string_manip.cpp: and tidy erase_to_last_of(), rtrim() and
+	  ltrim()
+
+2003-08-13  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.h:
+	* libpp/profile_container.cpp: remove nil_symbol_index
+
+2003-08-13  John Levon  <levon@movementarian.org>
+
+	* libpp/profile_container.cpp:
+	* libpp/profile_container.h: remove "base_vma" parameter
+	to add_samples(), we can just re-grab it straight from
+	the abfd
+
+2003-08-13  John Levon  <levon@movementarian.org>
+
+	* libpp/profile_container.cpp:
+	* libpp/profile_container.h: remove unused "zero samples"
+	optimization hint: it's always false
+
+	* pp/opannotate.cpp:
+	* pp/opgprof.cpp:
+	* pp/opreport.cpp: from above
+
+2003-08-12  John Levon  <levon@movementarian.org>
+
+	* pp/opreport.cpp: small trivialities
+
+2003-08-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libregex/stl.pat.in: minor fix/improvements
+	* libregex/mangled-name.txt: add tests
+
+2003-08-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opreport.cpp: fix thinko when --merge=lib
+
+2003-08-12  John Levon  <levon@movementarian.org>
+
+	* pp/opreport.cpp: s/count_groups_summary/summary_container/g
+
+2003-08-12  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: document opreport's side-by-side a little
+	bit
+
+2003-08-12  John Levon  <levon@movementarian.org>
+
+	* pp/opreport.cpp: s/group_summary/app_summary/, and
+	a lot of other renamings to clarify the count groups
+	usage.
+
+2003-08-12  John Levon  <levon@movementarian.org>
+
+	* utils/op_help.c: add --unit-mask
+
+	* utils/opcontrol: use --unit-mask
+
+2003-08-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opreport.cpp: re write using count_array_t
+
+2003-08-11  John Levon  <levon@movementarian.org>
+
+	* libpp/count_array.cpp:
+	* libpp/count_array.h: auto-resize the number of groups
+	based on how we index.
+
+	* libpp/profile_container.cpp: remove check
+
+	* pp/opannotate.cpp: count_array.zero() not .empty()
+
+2003-08-11  John Levon  <levon@movementarian.org>
+
+	* libpp/filename_spec.h:
+	* libpp/profile_spec.cpp:
+	* libpp/profile_spec.h: add comments, allow comma lists
+	for event, count, and unit mask
+
+	* libutil++/comma_list.h: implement missing method
+
+2003-08-11  John Levon  <levon@movementarian.org>
+
+	* libpp/format_output.cpp:
+	* libpp/format_output.h: add set_nr_groups(), remove
+	pp_nr_counters.
+
+	* libpp/profile_container.cpp:
+	* libpp/profile_container.h:
+	* pp/opannotate.cpp:
+	* pp/opgprof.cpp:
+	* pp/opreport.cpp: count_group not counter
+
+2003-08-11  John Levon  <levon@movementarian.org>
+
+	* libpp/Makefile.am:
+	* libpp/counter_array.cpp:
+	* libpp/counter_array.h: rename to ...
+
+	* libpp/count_array.h:
+	* libpp/count_array.cpp: ... this ...
+
+	* libpp/format_output.cpp:
+	* libpp/format_output.h:
+	* libpp/profile.cpp:
+	* libpp/profile.h:
+	* libpp/profile_container.cpp:
+	* libpp/profile_container.h:
+	* libpp/sample_container.cpp:
+	* libpp/sample_container.h:
+	* libpp/symbol.h:
+	* pp/opannotate.cpp:
+	* pp/opgprof.cpp:
+	* pp/opreport.cpp: ... and several renamings to starting
+	change the notion from "counters" to the more general notion
+	of "count groups"
+
+2003-08-10  Philippe Elie  <phil.el@wanadoo.fr>
+
+	Multiple counter support for pp tools.
+
+	* libpp/counter_array.h:
+	* libpp/counter_array.cpp: resurrected from pp-interface-branch, for
+	 now memory use is inefficient.
+	* libpp/Makefile.am: add counter_array.cpp .h
+	* libpp/format_out.h:
+	* libpp/format_out.cpp: handle multiple counter + a general tidy
+	* libpp/format_flags.h: remove ff_immutable_mask and some nasty
+	  requisite on flags value
+	* libpp/profile_container.h:
+	* libpp/profile_container.cpp:
+	* libpp/sample_container.h:
+	* libpp/sample_container.cpp:
+	* libpp/symbol.h:
+	* libpp/symbol_container.cpp:
+	* libpp/symbol_sort.cpp:
+	* pp/opreport.cpp: handle multiple counter
+	* pp/opannotate.cpp: partial handling of multiple counter
+	* pp/opgprof.cpp:
+	* pp/opreport.cpp: minor bits
+
+2003-08-08  Will Cohen  <wcohen@redhat.com>
+
+	* dae/Makefile.am:
+	* daemon/Makefile.am: Correct library linking order.
+	* daemon/opd_util.c: Add needed include files.
+
+2003-08-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/opcontrol: move_and_remove() do nothing if source doesn't exist
+
+2003-08-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	revert the previous patch
+	* dae/Makefile.am:
+	* dae/opd_sample_files.h:
+	* dae/opd_sample_files.c:
+	* daemon/Makefile.am:
+	* daemon/opd_sample_files.c: un-share opd_sample_files
+	code
+
+2003-08-08  John Levon  <levon@movementarian.org>
+
+	* dae/Makefile.am:
+	* dae/opd_sample_files.h:
+	* dae/opd_sample_files.c:
+	* daemon/Makefile.am:
+	* daemon/opd_sample_files.c: share opd_sample_files
+	code
+
+2003-08-08  John Levon  <levon@movementarian.org>
+
+	* dae/oprofiled.c:
+	* daemon/oprofiled.c:
+	* daemon/opd_util.h:
+	* daemon/opd_util.c: share opd_write_abi()
+
+2003-08-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_alloc_counter.c:
+	* libop/op_events.h: minor doxygen fix
+
+2003-08-08  John Levon  <levon@movementarian.org>
+
+	* dae/Makefile.am:
+	* dae/oprofiled.c:
+	* daemon/Makefile.am:
+	* daemon/oprofiled.c:
+	* daemon/opd_util.h:
+	* daemon/opd_util.c: share some small bits of code
+	between the daemons
+
+2003-08-08  John Levon  <levon@movementarian.org>
+
+	* dae/oprofiled.c:
+	* daemon/oprofiled.c: remove mypid, unused
+
+2003-08-08  John Levon  <levon@movementarian.org>
+
+	* dae/Makefile.am:
+	* dae/opd_printf.h: remove duplicate header
+	and use daemon/opd_printf.h
+
+2003-08-08  John Levon  <levon@movementarian.org>
+
+	* dae/opd_image.c:
+	* dae/opd_sample_files.h:
+	* dae/opd_sample_files.c:
+	* daemon/opd_image.c:
+	* daemon/opd_sample_files.h:
+	* daemon/opd_sample_files.c: remove "create" bool
+	from opd_mangle_filename(): only one callsite needs
+	that functionality, open code the create instead
+
+	* dae/opd_proc.c:
+	* dae/opd_sample_files.h:
+	* dae/opd_sample_files.c:
+	* daemon/opd_sample_files.h:
+	* daemon/opd_sample_files.c: return error from
+	opd_open_sample_filename(). Do not fail when odb_open
+	fails due to --reset races.
+
+	* dae/oprofiled.c:
+	* daemon/oprofiled.c: a little more verbosity.
+
+	* libutil/op_file.h:
+	* libutil/op_file.c: fix create_dir/path() comments,
+	don't use access()
+
+	* utils/opcontrol: reduce chance of --reset races
+
+2003-08-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/symbol_sort.h:
+	* libpp/symbol_sort.cpp: add app_name sort order, force sort order
+	  for criteria unspecified by user.
+	* pp/opreport_options.cpp: update --sort option help string.
+
+2003-08-04  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml:
+	* doc/opannotate.1.in:
+	* pp/opannotate.cpp:
+	* pp/opannotate_options.h:
+	* pp/opannotate_options.cpp: add --base-dirs
+
+2003-08-04  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml:
+	* doc/opannotate.1.in:
+	* pp/opannotate.cpp:
+	* pp/opannotate_options.h:
+	* pp/opannotate_options.cpp: add --search-dirs
+
+2003-08-04  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml:
+	* doc/opannotate.1.in:
+	* pp/opannotate.cpp:
+	* pp/opannotate_options.h:
+	* pp/opannotate_options.cpp: remove --source-dir and --base-dir,
+	  they're confusing and not useful in the current form
+
+2003-08-03  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: avoid using ps, it's very slow with kallsyms
+
+2003-08-03  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.cpp: c++ static function doesn't get a mangled name
+	  in debug info (see gcc #11774). Try to recover through a not
+	  completely reliable mechanism but better than ignoring the problem
+
+2003-08-02  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opreport.cpp: minor: more consistency about function ordering
+
+2003-08-02  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/profile.h:
+	* libpp/profile.cpp: profile::sample_count() new to allow raw access
+	  to samples count
+	* pp/opreport.cpp: use above function to implement opreport (w/o -l
+	  or --details options). opreport is roughly twice faster.
+
+2003-08-02  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opreport.cpp: clarify multiple counter support
+
+2003-08-01  John Levon  <levon@movementarian.org>
+
+	* libregex/stl.pat.in: fix _List_iterator regex
+	(from Phil)
+
+2003-07-31  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opannotate.cpp: output cpu type and cpu speed.
+
+2003-07-30  John Levon  <levon@movementarian.org>
+
+	* libpp/partition_files.cpp: remove some apparently
+	dead code
+
+2003-07-30  John Levon  <levon@movementarian.org>
+
+	* events/i386.p4.unit_masks: make flame_uops value
+	mandatory, Yuan.Lu@rrze.uni-erlangen.de does not
+	see any events without setting the unit mask
+
+2003-07-30  John Levon  <levon@movementarian.org>
+
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp: bfd_openr() keeps a copy of
+	the passed in char * around, sickenly enough. Ensure lifetimes
+	will always be correct by adding a filename data member to
+	op_bfd
+
+2003-07-29  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/op_header.h:
+	* libpp/op_header.cpp: separate output of cpu_type, cpu_speed
+	  and counter setup
+
+	* libpp/partition_files.h:
+	* libpp/partition_files.cpp: unmergeable_profile() split profile
+	  by the unmergeable.
+
+	* pp/opreport_options.h:
+	* pp/opreport_options.cpp:
+	* pp/opreport.cpp: initial multiple counter output, multiple counter
+	  with -l is not yet available.
+
+2003-07-29  John Levon  <levon@movementarian.org>
+
+	* doc/opcontrol.1.in: update for --event
+
+2003-07-29  John Levon  <levon@movementarian.org>
+
+	* configure.in:
+	* doc/srcdoc/Doxyfile.in:
+	* oprof_report/: remove badly out of date oprof_report
+
+2003-07-28  John Levon  <levon@movementarian.org>
+
+	* configure.in: bump to 0.7cvs
+
+2003-07-26  John Levon  <levon@movementarian.org>
+
+	* configure.in: bump to 0.6
+
+2003-07-26  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: fix call of op_help
+
+2003-07-26  John Levon  <levon@movementarian.org>
+
+	* gui/oprof_start.cpp: replace folder icons with clearer
+	red/green circles
+
+2003-07-26  John Levon  <levon@movementarian.org>
+
+	* gui/oprof_start.cpp: actually select and show the default
+	event
+
+2003-07-26  John Levon  <levon@movementarian.org>
+
+	* gui/oprof_start.cpp: small string tweak, show "conflicts"
+	message consistently
+
+2003-07-26  John Levon  <levon@movementarian.org>
+
+	* gui/oprof_start.cpp: don't use invalidated iterator
+
+2003-07-26  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start.cpp: fix for 2.91.66
+
+	* libpp/profile.cpp: typo invoking an undefined behavior revealed
+	  by gcc stl debug mode
+	* libpp/profile.h: ensure we provide the right typedef to std::
+	  for profile::const_iterator revealed by gcc stl debug mode at compile
+	  time. The implementation is a bit tricky to work with old compiler
+	* libpp/symbol_sort.cpp: compare must define a weak ordered relation
+	  order, revealed by gcc stl debug mode.
+
+2003-07-26  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/ui/oprof_start.base.ui:
+	* gui/oprof_start.h:
+	* gui/oprof_start.cpp: change UI to use the new counter allocation
+	  API
+
+	* libop/op_alloc_counter.h:
+	* libop/op_alloc_counter.c:
+	* utils/op_help.c: minor const-ness api change
+
+2003-07-25  Will Cohen  <wcohen@redhat.com>
+
+	* utils/opcontrol: Restrict the search path.
+
+2003-07-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_alloc_counter.c: use tabulation
+
+	* libop/op_events.c:
+	* libop/op_events.h: find_event_by_name() new
+	* utils/op_help.c: use find_event_by_name()
+
+2003-07-24  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/op_help.c: make valgrind happy + minor cleanup
+
+2003-07-24  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_alloc_counter.h:
+	* libop/op_alloc_counter.c: new file providing mapping from an event 
+	  list to hardware counter number
+	* utils/op_help.c: use the above api
+
+2003-07-24  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/op_help.c: fix hardware counter allocation order
+
+2003-07-23  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: comment out --base-dir mention
+
+2003-07-23  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: remove mention of oprof_start_event
+
+2003-07-23  John Levon  <levon@movementarian.org>
+
+	* dae/oprofiled.c:
+	* daemon/oprofiled.c: don't uselessly try to unlink
+	non-existent lockfile
+
+	* daemon/opd_image.c:
+	* daemon/oprofiled.c: clean up buffer read messages
+
+2003-07-23  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: error out at --setup time if vmlinux is not
+	valid. Cleanup the error message if so
+
+	* daemon/opd_kernel.c: fix potential null deref
+
+2003-07-21  John Levon  <levon@movementarian.org>
+
+	* gui/oprof_start.cpp: select "No event" when switching counter
+	if needed
+
+2003-07-21  John Levon  <levon@movementarian.org>
+
+	* gui/oprof_start.cpp: fix default event choosing when
+	daemonrc exists
+
+2003-07-21  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start.cpp: thinko in has_unique_event(), don't warn for
+	  no counter with CPU_TIMER_INT
+
+2003-07-21  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start.cpp: allow to de-select a counter
+
+2003-07-21  John Levon  <levon@movementarian.org>
+
+	* gui/oprof_start.cpp:
+	* gui/oprof_start_util.h:
+	* gui/oprof_start_util.cpp: remove uptime pretty printing.
+	It's broken for 2.5 and ugly code
+
+2003-07-21  John Levon  <levon@movementarian.org>
+
+	* gui/oprof_start.h:
+	* gui/oprof_start.cpp: use a default event if no
+	events are set yet
+
+2003-07-20  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* m4/compileroption.m4: fix for autoconf 2.13
+
+2003-07-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start.cpp:
+	* libpp/format_output.cpp:
+	* libpp/format_output.h:
+	* pp/opannotate.cpp:
+	* pp/opreport_options.cpp: minor tidy
+
+2003-07-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start.cpp: RTC mode was not working
+
+2003-07-16  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start_config.h:
+	* gui/oprof_start_config.cpp: remove dead code, fix kernel_only read
+
+2003-07-16  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: fix typo that was partly breaking
+	CPU_TIMER_INT
+
+2003-07-16  John Levon  <levon@movementarian.org>
+
+	* gui/oprof_start.h:
+	* gui/oprof_start.cpp: fixes for CPU_TIMER_INT
+
+2003-07-16  John Levon  <levon@movementarian.org>
+
+	* gui/ui/oprof_start.base.ui: remove add/remove event buttons,
+	fix resize weirdness
+
+	* gui/oprof_start.h:
+	* gui/oprof_start.cpp: remove add/remove event buttons, allow
+	short-form event descriptions
+
+2003-07-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/persistent_config.h: remove
+	* gui/oprof_start.h:
+	* gui/oprof_start.cpp: debug, remove dead code, works better now, see
+	  TODO
+
+2003-07-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start.h:
+	* gui/oprof_start.cpp:
+	* gui/oprof_start_util.cpp: re-enable partially the gui, sorta of
+	  working if cautioulsy used
+
+2003-07-15  John Levon  <levon@movementarian.org>
+
+	* gui/ui/oprof_start_base.ui:
+	* gui/oprof_start.h:
+	* gui/oprof_start.cpp: some steps towards fixing gui for
+	the new events stuff
+
+2003-07-15  John Levon  <levon@movementarian.org>
+
+	* libop/op_events.h:
+	* libop/op_events.c: add op_default_event
+
+	* utils/op_help.c: move default event stuff to libop,
+	fix -c option
+
+2003-07-15  John Levon  <levon@movementarian.org>
+
+	* utils/op_help.c: fix default RTC event to be
+	"RTC_INTERRUPTS"
+
+2003-07-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/opcontrol
+	* events/rtc..events: use RTC_INTERRUPTS as event name
+
+2003-07-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_sample_files.c: C89 compile fix
+
+2003-07-15  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol:
+	* utils/op_help.c: move the default event strings into
+	op_help.c instead of in opcontrol
+
+2003-07-15  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: document event name for timer interrupt
+
+	* daemon/opd_sample_files.c: handle CPU_TIMER_INT
+
+	* utils/op_help.c: fix a core dump
+
+2003-07-13  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_image.c: verbprintf() when starting reading buffer not
+	  printf
+
+2003-07-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* from BRANCH_CALLGRAPH:
+	* daemon/opd_image.c: printf -> verbprintf, fix comment
+	* daemon/opd_kernel.c: kernel/module samples statistics was wrong
+
+	* daemon/opd_image.c:
+	* daemon/opd_image.h:
+	* daemon/opd_kernel.c:
+	* daemon/opd_kernel.h: import cleanup from branch, mainly don't handle
+	  samples in opd_kernel.c but return (creating if necessary) an
+	  opd_image struct where the sample must go and let opd_image caller
+	  in opd_image.c do sample insertion
+
+2003-07-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/opcontrol: shows basename $0 with --version
+	* libpp/op_header.cpp: formating
+	
+2003-07-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/opcontrol: don't try to save current if the directory doesn't
+	  exist
+
+2003-07-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/stream_util.h:
+	* libutil++/stream_util.cpp: new file, io_state() save object
+	* libutil++/Makefile.am: handle new file
+	* libutil++/op_bfd.cpp:
+	* pp/opreport.cpp:
+	* libpp/op_header.cpp: use io_state
+
+2003-07-09  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* module/x86/op_model_p4.c: reflect intel documentation fix.
+
+2003-07-08  Will Cohen  <wcohen@redhat.com>
+
+	* daemon/opd_kernel.c: Handle /proc/modules format.
+	
+2003-07-08  Will Cohen  <wcohen@redhat.com>
+
+	* doc/oprofile.xml:
+	* configure.in: --enable-gcov option and documentation.
+
+2003-07-08  Will Cohen  <wcohen@redhat.com>
+
+	* utils/opcontrol: Correct P4 default event.
+
+2003-06-03  John Levon  <levon@movementarian.org>
+
+	* from BRANCH_CALLGRAPH
+	* libdb/odb_hash.h:
+	* libdb/db_manage.c:
+	* libdb/db_insert.c: namespace safety
+
+	* libpp/partition_files.cpp:
+	* libpp/profile.cpp: spacing, add a FIXME
+
+2003-07-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opannotate.cpp:
+	* pp/opgprof.cpp:
+	* pp/opreport.cpp: cleanup walking through multimap with a
+	  pair<iterator, iterator>
+
+2003-07-05  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_image.c:
+	* libdb/db_insert.c: 64 bits arch compile fix, thanks to Falk Hueffner
+	 <falk@debian.org>
+
+2003-07-02  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opreport.cpp: honor options::show_header
+
+2003-06-30  Graydon Hoare  <graydon@redhat.com>
+
+	* libpp/op_header.cpp: Handle printing multiple bitmask values.
+
+2003-06-19  John Levon  <levon@movementarian.org>
+
+	* doc/Makefile.am: fix make distcheck
+
+2003-06-18  John Levon  <levon@movementarian.org>
+
+	* pp/opannotate_options.c: hide the unhandled
+	--base-dir option
+
+2003-06-18  John Levon  <levon@movementarian.org>
+
+	* pp/Makefile.am: don't build opdiff
+
+2003-06-17  Will Cohen  <wcohen@redhat.com>
+
+	* daemon/opd_cookie.h: Add s390 syscall value.
+	
+2003-06-17  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: don't accept "-r" - it's too easy to typo
+
+2003-06-17  John Levon  <levon@movementarian.org>
+
+	* doc/srcdoc/Doxyfile: removed
+
+	* doc/srcdoc/Doxyfile.in:
+	* configure.in: generate doxygen version nr. automatically
+
+2003-06-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/db_insert.cpp: missing initialization of error message on
+	  error path
+
+2003-06-17  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: accept some short forms for common
+	operations
+
+2003-06-17  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: accept --foo blah as well as
+	--foo=blah
+
+2003-06-16  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: "opcontrol" will show usage
+	instead of doing nothing
+
+2003-06-16  Will Cohen  <wcohen@nc.rr.com>
+
+	* libabi/abi.cpp:
+	* libabi/op_import.cpp: Add required include for cassert.
+
+2003-06-16  John Levon  <levon@movementarian.org>
+
+	* events/x86-64.hammer.unit_masks: remove some
+	bogus FIXMEs
+
+2003-06-15  John Levon  <levon@movementarian.org>
+
+	* README: fix autogen.sh line
+
+2003-06-15  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_image.c: 64 bit fixes
+
+2003-06-15  John Levon  <levon@movementarian.org>
+
+	* utils/op_help.c: c89 fix
+
+2003-06-15  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_image.c: c89 fix
+
+2003-06-15  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: document --event
+
+	* utils/opcontrol:
+	* utils/op_help.c: allow unit mask, kernel, user to be
+	optional. Verify not too many events are passed.
+
+2003-06-15  John Levon  <levon@movementarian.org>
+
+	* libop/op_cpu_type.c: fix nr_counters cpu type check
+
+	* utils/op_help: implement --check_events, event validation
+	and counter allocation
+
+	* utils/opcontrol: use the above, implement --event=default
+
+2003-06-14  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_image.c: fix a stupid error in my previous TGID patch
+
+2003-06-12  Graydon Hoare  <graydon@redhat.com>
+
+	* libop/op_events.c (op_check_events): Check bitmasks as well as 
+	exclusive values, for unit masks.
+
+2003-06-12  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_image.c: we were not handling a truncated
+	TGID entry properly
+
+2003-06-12  John Levon  <levon@movementarian.org>
+
+	* libutil++/unique_storage.h: missing typename
+
+2003-06-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opannotate_options.cpp: typo in option name
+
+2003-06-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.cpp: boring_symbol() new to get a better choice
+	when eliminating symbol at identical vma
+
+2003-06-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/opcontrol: fix rtc option checking, bug added after 0.5.3,
+	no big deal
+
+2003-06-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libregex/op_regex.cpp:
+	* libpp/profile.cpp: compile fix, tree was broken by my previous patch
+
+2003-06-11  Jason Yeh  <jason.yeh@amd.com>
+
+	* events/i386.athlon.events: add CPU_CLK_UNHALTED
+
+	* utils/opcontrol: use the above by default
+
+	* events/x86-64.hammer.events:
+	* events/x86-64.hammer.unit_masks: various fixes
+
+2003-06-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/op_header.cpp:
+	* libpp/profile.cpp:
+	* libpp/profile_spec.cpp:
+	* libpp/symbol_sort.cpp:
+	* libregex/op_regex.cpp:
+	* libutil++/op_bfd.cpp: use exception rather exit(EXIT_FAILURE) in
+	library code
+
+2003-06-11  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_image.c: future-proof the code handlers
+
+2003-06-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opannotate.cpp: output_asm() avoid output when the set of selected
+	symbols doesn't contain any samples
+
+2003-06-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/unique_storage.h: we don't need to check if key is present
+	  before trying to insert it
+
+2003-06-10  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/name_storage.h: minor tidy
+	* libutil++/unique_storage.h: small efficiency improvement
+
+2003-06-09  John Levon  <levon@movementarian.org>
+
+	* pp/Makefile.am:
+	* libutil/Makefile.am: fix make distcheck
+
+2003-06-09  John Levon  <levon@movementarian.org>
+
+	* libpp/opp_symbol.h: rename to ...
+
+	* libpp/symbol.h: ... this
+
+	* libpp/Makefile.am:
+	* libpp/format_output.h:
+	* libpp/format_output.cpp:
+	* libpp/profile_container.h:
+	* libpp/profile_container.cpp:
+	* libpp/sample_container.h:
+	* libpp/sample_container.cpp:
+	* libpp/symbol_functors.h:
+	* libpp/symbol_sort.cpp: fix up from above and some header
+	cleanups
+
+2003-06-09  John Levon  <levon@movementarian.org>
+
+	* libpp/profile.h: std::pair not pair
+
+2003-06-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/profile.cpp: don't underflow start offset when the vma range
+	  is unknown
+	* pp/opreport.cpp: use samples_range() not samples_range(0, ~0)
+
+2003-06-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/profile.h:
+	* libpp/profile.cpp: replace accumulate_samples() API by an iterator
+	  interface
+	* libpp/profile_container.h:
+	* libpp/profilecontainer.cpp:
+	* pp/opreport.cpp: use new API
+
+2003-06-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* include/sstream: replace old version by the once shipped with
+	  2.95.3, seekg() in the old was not working
+
+2003-06-08  John Levon  <levon@movementarian.org>
+
+	* libpp/name_storage.h: don't need to define the tag structs
+
+	* libutil++/unique_storage.h: fix the comments,
+	make get() public
+
+2003-06-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/profile_container.cpp:
+	* libutil++/string_manip.cpp: gcc 2.91.66 fix
+
+2003-06-08  John Levon  <levon@movementarian.org>
+
+	* libpp/name_storage.h:
+	* libpp/name_storage.cpp:
+	* libpp/opp_symbol.h:
+	* libpp/profile_container.cpp:
+	* libpp/symbol_functors.cpp:
+	* libutil++/unique_storage.h: don't derive from I()
+	at all for id_value, it's not needed. Hide .id and
+	provide operator<(), operator==(), operator!=(), and
+	set()
+
+2003-06-08  John Levon  <levon@movementarian.org>
+
+	* libutil++/unique_storage.h: make some of
+	id_value only visible to unique_storage.
+
+2003-06-08  John Levon  <levon@movementarian.org>
+
+	* libpp/name_storage.h:
+	* libutil++/unique_storage.h: move the ID class
+	into unique_storage, and make it derive from the
+	template parameter, to give simpler type safe support
+
+2003-06-08  John Levon  <levon@movementarian.org>
+
+	* libutil++/Makefile.am:
+	* libutil++/unique_storage.h: add new template for
+	unique storage of values
+
+	* libpp/name_storage.h:
+	* libpp/name_storage.cpp: use it
+
+2003-06-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/profile_container.cpp: fix order of file output with opannotate
+	--source to be consistent with other tools
+
+2003-06-07  John Levon  <levon@movementarian.org>
+
+	* libpp/profile_container.cpp: fix operator<
+
+2003-06-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/profile.h:
+	* libpp/profile.cpp: change API to walk through vma with non zero
+	samples count rather looking for all vma. This is not very clean, an
+	iterator interface will be perhaps a better idea. Measures shows it's
+	to do it so for now I apply it.
+	* libpp/profile_container.cpp: update according to above change.
+
+2003-06-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/profile_container.h:
+	* libpp/profile_container.cpp:
+	* libpp/symbol_container.h:
+	* libpp/symbol_container.cpp: remove dead api
+	  find_symbol(string symbol_name)
+
+2003-06-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/name_storage.h:
+	* libpp/name_storage.cpp:
+	* libpp/profile_container.cpp:
+	* libpp/profile_container.h:
+	* libpp/sample_container.h:
+	* libpp/sample_container.cpp:
+	* libpp/symbol_container.h:
+	* libpp/symbol_container.cpp:
+	* pp/opannotate.cpp: replace some use of string filename by
+	  debug_name_id
+
+2003-06-05  John Levon  <levon@movementarian.org>
+
+	* daemon/Makefile.am:
+	* daemon/opd_kernel.c:
+	* daemon/p_module.h: remove p_module.h, unused
+
+	* daemon/opd_cookie.h: use __NR_lookup_dcookie and
+	use our definitions only if it's not defined
+
+	* daemon/opd_image.c:
+	* daemon/opd_kernel.c:
+	* daemon/opd_sample_files.c:
+	* daemon/oprofiled.c: pedantry
+
+	* libabi/op_import.cpp:
+	* libabi/abi_test.cpp: fix build from odb change
+
+	* libop/op_config.h: move NR_CPUS to ...
+
+	* libop/op_config_24.h: ... here
+
+	* libop/op_hw_config.h: remove unused OP_COUNT_MAX
+
+2003-06-03  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/op_header.cpp:
+	* libpp/profile.cpp:
+	* dae/opd_proc.c:
+	* dae/opd_sample_files.c:
+	* daemon/opd_image.c:
+	* daemon/opd_sample_files.c:
+	* libdb/odb_hash.h:
+	* libdb/db_insert.c:
+	* libdb/db_manage.c:
+	* libdb/db_test.c: error message is now a field of a samples_odb_t
+
+2003-06-03  John Levon  <levon@movementarian.org>
+
+	* libutil++/child_reader.cpp:
+	* libabi/abi.cpp:
+	* libabi/abi.h:
+	* libabi/abi_test.cpp:
+	* libabi/op_api.h:
+	* libabi/op_abi.cpp:
+	* libabi/op_import.cpp: pedantry, remove unused code
+
+2003-06-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/oprofiled.c:
+	* libop/oprofiled.c:
+	* libop/op_cpu_type.c:
+	* module/oprofile.c:
+	* module/oprofile.h:
+	* pp/opdiff.cpp: more static data and function
+
+2003-05-31  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start_util.h:
+	* libdb/db_stat.c:
+	* libdb/odb_hash.h:
+	* libpp/format_output.h:
+	* libpp/locate_image.h:
+	* libpp/name_storage.h:
+	* libpp/partition_files.h:
+	* libpp/profile.h:
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp: improve doxygen comment
+
+2003-05-31  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* configure.in: use AC_DEFINE_UNQUOTED() to define version string
+	  in config.h not in version-1.h
+	* Makefile.am: distclean-local: is no longer used
+	* version-1.h.in: delete
+	* libutil/op_version.h:
+	* libutil/op_version.c: new file: package version output
+	* libutil/Makefile.am:
+	* dae/oprofiled.c:
+	* daemon/oprofiled.c:
+	* gui/oprof_start.h:
+	* libop/op_events.c:
+	* libopt++/popt_options.cpp:
+	* libregex/demangle_sybol.cpp:
+	* module/oprofile.c:
+	* utils/op_help.c: tweak # include according
+
+2003-05-30  Dan Zink  <Dan.Zink@hp.com>
+
+	* module/x86/op_apic.c: really disable the apic if it was disabled
+
+2003-05-29  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: don't allow --rtc-value if not RTC mode
+
+2003-05-27  John Levon  <levon@movementarian.org>
+
+	* libutil++/string_manip.h: add <stdexcept>
+
+	* pp/opannotate.cpp: use '\n' not endl
+
+	* pp/opreport.cpp: untie cout
+
+2003-05-29  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* merge with pp-interface-branch: following ChangeLog was unmerged
+	  to branch
+
+	2003-05-27  John Levon  <levon@movementarian.org>
+
+	* configure.in: oprofile 0.5.3 is released, back to
+	0.6cvs
+
+	2003-05-26  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: update docs for --no-vmlinux
+
+	2003-05-26  John Levon  <levon@movementarian.org>
+
+	* libop/op_interface_25.h:
+	* daemon/opd_image.c: handle tgid for future
+	compatibility, fix compile on older gccs
+
+	2003-05-26  John Levon  <levon@movementarian.org>
+
+	* libop/op_interface_25.h: add LAST_CODE
+
+	* daemon/opd_stats.h:
+	* daemon/opd_stats.c: count short reads of
+	buffer and unplaceable samples
+
+	* daemon/opd_image.c: rewrite buffer parsing
+	code, handle window where we can't place a
+	sample
+
+	2003-05-26  John Levon  <levon@movementarian.org>
+
+	* libutil++/utility.h: fix typo
+
+	* utils/opcontrol: fix typo
+
+	2003-05-16  John Levon  <levon@movementarian.org>
+
+	* pp/counter_profile.cpp: remove bogus cpu speed
+	consistency check
+
+	2003-05-09  John Levon  <levon@movementarian.org>
+
+	* m4/Makefile.am:
+	* m4/compileroption.m4: add a generalised compiler option
+	tester
+
+	* configure.in: use it, add -fno-common
+
+	2003-05-09  John Levon  <levon@movementarian.org>
+
+	* daemon/oprofiled.c:
+	* dae/oprofiled.c: remove duplicate declaration found
+	via -fno-common
+
+	2003-05-04  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: fix validation errors from xmllint --valid
+	
+
+2003-05-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/profile_spec.cpp: make image:/path/to:image working
+
+2003-05-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/string_manip.h:
+	* libutil++/string_manip.cpp: specialize
+	  lexical_cast_no_ws<unsigned int> to accept hexadecimal input
+
+	* pp/common_option.cpp: missing << endl
+
+2003-05-27  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/oprofile.xml: update example in "Interpreting profiling results"
+	section
+
+2003-05-26  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: add new pp tools options
+
+2003-05-26  John Levon  <levon@movementarian.org>
+
+	* doc/opreport.1.in:
+	* doc/opgprof.1.in:
+	* doc/opannotate.1.in:
+	* doc/op_help.1.in: complete
+
+2003-05-26  John Levon  <levon@movementarian.org>
+
+	* configure.in:
+	* doc/Makefile.am:
+	* doc/oprofile.1.in:
+	* doc/op_help.1.in:
+	* doc/opcontrol.1.in:
+	* doc/opreport.1.in:
+	* doc/opannotate.1.in:
+	* doc/opgprof.1.in: re-organise and add manpages
+
+2003-05-26  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: start to document the pp interface
+
+2003-05-26  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opreport.cpp: remove automatic switch to --symbols mode
+
+2003-05-26  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/symbol_sort.h:
+	* pp/opannotate_options.cpp:
+	* pp/opgprof_options.cpp:
+	* pp/opreport_options.cpp: handle meaningless options combinations
+
+2003-05-26  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opgprof_options.cpp: no need to use unmergeable_profile here
+
+2003-05-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* events/i386.piii.unit_masks: tweak comment, change default unit mask
+	  for kni instruction to 0 and type to exclusive
+
+2003-05-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/profile_container.cpp: thinko
+	* pp/opreport.cpp: typo
+
+2003-05-25  John Levon  <levon@movementarian.org>
+
+	* libopt++/popt_options.h:
+	* libopt++/popt_options.cpp: obvious cleanup,
+	remove some dead code
+
+2003-05-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/format_flags: cf_image_name new column_flags flag
+	* libpp/profile_container.cpp: use above flag. Don't compare app_name
+	  by string but id
+	* pp/opreport.cpp: hide image_name when un-necessary
+
+2003-05-24  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/srcdoc/Doxyfile:
+	* libpp/profile.h:
+	* libpp/profile_container.h:
+	* libutil++/utility.h: remove gcc 2.91 noncopyable as empty base class
+	 work-around
+
+2003-05-23  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* configure.in: do early check of libiberty
+
+	* libpp/symbol_sort.cpp: 2.91 compile fix
+
+2003-05-22  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/child_reader.h: minor #include fix
+
+2003-05-22  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/name_storage.cpp: debug_name_storage::name() 
+	  return an empty string when for zero id to avoid exception
+
+2003-05-21  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/profile.cpp:
+	* libpp/op_header.h:
+	* libpp/op_header.cpp: when sample file differ output the sample
+	  filename
+
+	* pp/opannotate.cpp: remove spurious output
+
+	* */Makefile.am:
+	* configure.in: handle our own OP_CFLAGS, OP_CXXFLAGS to let user
+	  free to use make CFLAGS=
+
+2003-05-20  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/profile_spec.h:
+	* libpp/profile_spec.cpp: remove lib_image_exclude, use image_exclude
+	  instead. match() Handle image exclusion.
+
+	* libregex/stl.pat.in: FIXME
+
+	* libutil++/string_manip.h: compile fix
+
+2003-05-19  John Levon  <levon@movementarian.org>
+
+	* libutil++/comma_list.h:
+	* libpp/filename_spec.cpp:
+	* libutil++/string_manip.h:
+	* libutil++/generic_spec.h: rename strict_convert<>
+	to lexical_cast_no_ws<>
+
+2003-05-19  John Levon  <levon@movementarian.org>
+
+	* libutil++/generic_spec.h: move strict_convert<> to...
+
+	* libutil++/string_manip.h: ...here
+
+2003-05-19  John Levon  <levon@movementarian.org>
+
+	* libutil++/generic_spec.h: comma_list isn't a friend
+	any more
+
+	* libutil++/comma_list.h: use generic_spec<>::match()
+	directly
+
+2003-05-19  John Levon  <levon@movementarian.org>
+
+	* libpp/name_storage.h: s/name_map/stored_names/, it's not
+	a map any more.
+
+2003-05-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libregex/mangled-name.txt:
+	* libregex/stl.pat.in: partial handling of _Identity<> and
+	  _Select1st<>, pattern fail if type are too complex
+
+2003-05-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/format_output.cpp: small cleanup
+
+	* libpp/name_storage.h:
+	* libpp/name_storage.cpp: ensure type safety by providing distinct
+	  type identifier for each name_storage based container
+
+	* libpp/profile_container.cpp:
+	* libpp/sample_container.cpp:
+	* libpp/symbol_functors.cpp:
+	* libpp/symbol_sort.cpp:
+	* libpp/opp_symbol.h: use the name identifier api
+
+	* libpp/op_header.cpp: 
+	* libpp/partition_files.cpp: use a set<string> not a name_storage
+
+	* libpp/format_output.cpp: small cleanup
+
+
+2003-05-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/partition_files.cpp: merge partition entry when necessary
+	  fixing a corner case when a binary can be a dependent or a primary
+	  image and was not merged
+
+2003-05-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opreport_options.cpp:
+	* pp/opannotate_options.cpp: remove conflicting options shortcut
+
+2003-05-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libregex/stl.pat.in: add list<T>::{const_}+iterator
+
+2003-05-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/name_storage.cpp: basename() return an empty string for nil id
+
+2003-05-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.cpp: get_linenr() init linenr to zero
+
+	* libpp/name_storage.cpp: don't use id zero
+	* libpp/opp_symbol.h: now we use id and not string we must provide
+	  default ctor to initialize the id
+	* libpp/profile_container.cpp: init debug info entry only if
+	  get_linenr() succeed
+
+2003-05-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/db_manage.c: better handling of zero sample file size when
+	  opening in read only mode
+
+	* module/x86/op_nmi.c: printk format fix
+
+2003-05-17  John Levon  <levon@movementarian.org>
+
+	* pp/opannotate_option.cpp:
+	* pp/opreport_options.cpp: command line changes
+
+2003-05-17  John Levon  <levon@movementarian.org>
+
+	* libpp/name_storage.h:
+	* libpp/name_storage.cpp: add present()
+
+	* libpp/op_header.cpp:
+	* libpp/partition_files.cpp: use a name store
+	to track what we've warned about, and clean up
+	the warnings a bit
+
+2003-05-16  John Levon  <levon@movementarian.org>
+
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp: expose anonymous symbols
+	to the world as "??sectionname". Useful for .plt
+	and .fini, which are quite common.
+
+	* libpp/name_storage.cpp: demangle anonymous symbols
+	nicely.
+
+2003-05-16  John Levon  <levon@movementarian.org>
+
+	* libpp/symbol_sort.cpp: fix image-sorting
+
+2003-05-16  John Levon  <levon@movementarian.org>
+
+	* libpp/name_storage.h:
+	* libpp/name_storage.cpp: make ID be per-container
+
+2003-05-16  John Levon  <levon@movementarian.org>
+
+	* libpp/name_storage.h:
+	* libpp/name_storage.cpp: merge processed names
+	into one string, remove the boolean
+
+2003-05-16  John Levon  <levon@movementarian.org>
+
+	* libpp/name_storage.h:
+	* libpp/name_storage.cpp: whoops, use string
+	not stored_name for the ID map
+
+2003-05-16  John Levon  <levon@movementarian.org>
+
+	* libpp/name_storage.h:
+	* libpp/name_storage.cpp: split into three
+	stores for debug filenames, symbols, and images
+
+	* libpp/format_output.cpp:
+	* libpp/profile_container.cpp:
+	* libpp/sample_container.cpp:
+	* libpp/symbol_container.cpp:
+	* libpp/symbol_sort.cpp:
+	* pp/opannotate.cpp: changes from above
+
+2003-05-16  John Levon  <levon@movementarian.org>
+
+	* libpp/Makefile.am:
+	* libpp/name_storage.h:
+	* libpp/name_storage.cpp: add shared storage
+	and caching of symbol and file names
+
+	* libpp/opp_symbol.h:
+	* libpp/format_output.cpp:
+	* libpp/profile_container.cpp:
+	* libpp/sample_container.cpp:
+	* libpp/symbol_container.cpp:
+	* libpp/symbol_container.h:
+	* libpp/symbol_sort.cpp:
+	* libpp/symbol_sort.h:
+	* pp/opannotate.cpp:
+	* pp/opreport.cpp: use it
+
+	* pp/opgprof_options.cpp: add unused demangle
+	options to hack-fix the build
+
+2003-05-16  John Levon  <levon@movementarian.org>
+
+	* libpp/symbol_sort.cpp: fix --sort debug
+
+2003-05-16  John Levon  <levon@movementarian.org>
+
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp: remove have_debug_info()
+
+2003-05-16  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/op_header.cpp: remove cpu_speed checking
+
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp: bail out in get_linenr() if binary doesn't
+	  contain any debug info. Speed up my test case opreport --debug-info
+	  -l by 25
+
+2003-05-16  John Levon  <levon@movementarian.org>
+
+	* libutil++/op_bfd.cpp: clean up interesting_symbol
+	a bit
+
+2003-05-16  John Levon  <levon@movementarian.org>
+
+	* libutil++/op_bfd.cpp: make sure linenr is
+	always set to something
+
+	* libpp/opp_symbol.h: linenr should be unsigned
+
+	* libpp/profile_container.cpp: remove some unneeded
+	copies
+	
+2003-05-16  John Levon  <levon@movementarian.org>
+
+	* pp/opannotate.cpp: small renaming
+
+2003-05-15  John Levon  <levon@movementarian.org>
+
+	* libpp/symbol_container.h:
+	* libpp/symbol_container.cpp: add begin(), end(),
+	remove symbols_by_count()
+
+	* libpp/profile_container.cpp: use symbol container
+	iterator directly in select_symbols()
+
+2003-05-15  John Levon  <levon@movementarian.org>
+
+	* libpp/format_output.h:
+	* libpp/format_output.cpp:
+	* libpp/profile_container.h:
+	* libpp/profile_container.cpp:
+	* libpp/symbol_container.h:
+	* libpp/symbol_container.cpp:
+	* libpp/symbol_sort.h:
+	* libpp/symbol_sort.cpp:
+	* pp/opannotate.cpp:
+	* pp/opreport.cpp:
+	* pp/opgprof.cpp: move symbol_collection typedef
+	  into global namespace, and use consistently
+
+2003-05-15  John Levon  <levon@movementarian.org>
+
+	* libpp/format_output.h:
+	* libpp/format_output.cpp: add vma_format_64bit(),
+	remove bool parameter from output()
+
+	* pp/opreport.cpp: change from above, refactor flags
+	code into get_format_flags() helper
+
+2003-05-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/format_output.h:
+	* libpp/format_output.cpp:
+	* libpp/symbol_sort.h:
+	* libpp/symbol_sort.cpp: handle reverse sort in sorting not in output
+	* pp/opannotate.cpp:
+	* pp/opreport.cpp: update according
+
+2003-05-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/symbol_sort.h:
+	* libpp/symbol_sort.cpp: handle sort order as specified on command line
+
+	* pp/opgprof.cpp: sort symbol is not necessary for gprof
+	* pp/opreport.cpp:
+	* pp/opreport_options.cpp:
+	* pp/opannotate.cpp: use new sort API
+
+2003-05-12  John Levon  <levon@movementarian.org>
+
+	* libpp/symbol_sort.h:
+	* libpp/symbol_sort.cpp: partial implementation
+	of other sort options
+
+2003-05-12  John Levon  <levon@movementarian.org>
+
+	* libpp/Makefile.am:
+	* libpp/symbol_sort.h:
+	* libpp/symbol_sort.cpp: add sorting code
+
+	* symbol_functors.h: move some less() into
+	symbol_sort.cpp
+
+	* libpp/profile_container.h:
+	* libpp/profile_container.cpp: don't pass in
+	sort option to select_symbols(), do it in caller
+
+	* pp/opannotate.cpp:
+	* pp/opgprof.cpp:
+	* pp/opreport.cpp:
+	* pp/opreport_options.h:
+	* pp/opreport_options.cpp: from the above
+
+2003-05-12  John Levon  <levon@movementarian.org>
+
+	* format_flags.h: remove vma64_p. Add column_flags
+
+	* libpp/profile_container.h:
+	* libpp/profile_container.cpp: pass in a struct
+	to select_symbols. Generate hints for 64-bit VMA
+	and multiple apps in the profile.
+
+	* pp/opannotate.cpp:
+	* pp/opgprof.cpp:
+	* pp/opreport.cpp: use the above
+
+2003-05-12  John Levon  <levon@movementarian.org>
+
+	* libpp/format_output.cpp:
+	* libpp/format_flags.h:
+	* pp/opreport.cpp: trivial renaming of flags
+
+2003-05-11  John Levon  <levon@movementarian.org>
+
+	* libpp/format_output.cpp:
+	* libpp/format_flags.h: better output for
+	the default of short filenames
+
+2003-05-11  John Levon  <levon@movementarian.org>
+
+	* pp/opreport.cpp: improve the app/image name column
+	showing a bit
+
+2003-05-11  John Levon  <levon@movementarian.org>
+
+	* pp/opreport.cpp: default to -l if we were just
+	going to show one image summary.
+
+2003-05-11  John Levon  <levon@movementarian.org>
+
+	* pp/opreport.cpp: move some code around that
+	outputs the image summaries
+
+2003-05-11  John Levon  <levon@movementarian.org>
+
+	* libpp/format_output.h:
+	* libpp/format_output.cpp:
+	* pp/opreport.cpp:
+	* pp/opreport_options.h:
+	* pp/opreport_options.cpp: s/--short-filename/--long-filenames/
+
+2003-05-11  John Levon  <levon@movementarian.org>
+
+	* libpp/profile_spec.h:
+	* libpp/profile_spec.cpp: take exclude_dependent not
+	include_dependent
+
+	* pp/opannotate_options.c:
+	* pp/opgprof_options.c:
+	* pp/opreport_options.h:
+	* pp/opreport_options.c: change to use exclude_dependent,
+	remove --hide-dependent
+
+2003-05-11  John Levon  <levon@movementarian.org>
+
+	* locate_images.h:
+	* locate_images.cpp: extra_images can now use
+	relative paths for its search dirs. Move most of 
+	the warnings out of find_image_path, and make it
+	also handle relative paths. Return the file
+	even if it wasn't readable.
+
+	* libpp/partition_files.cpp: give warnings when
+	necessary.
+
+	* libpp/profile_spec.h:
+	* libpp/profile_spec.cpp: handle relative paths
+	inside image specs, as stated in pp_interface; also
+	use the extra images search path for resolution.
+
+	* pp/opannotate_options.cpp:
+	* pp/opreport_options.cpp:
+	* pp/opgprof_options.cpp: changes from above
+
+2003-05-11  John Levon  <levon@movementarian.org>
+
+	* libpp/format_flags.h: source doc improvements
+
+2003-05-11  John Levon  <levon@movementarian.org>
+
+	* libpp/opp_symbol.h: move vma64_p to ...
+
+	* libpp/format_flags.h: ... here
+
+2003-05-11  John Levon  <levon@movementarian.org>
+
+	* libpp/Makefile.am:
+	* libpp/outsymbflags.h:
+	* libpp/format_flags.h:
+	* libpp/profile_container.h:
+	* libpp/format_output.h:
+	* libpp/format_output.cpp:
+	* pp/opreport.cpp: rename outsymbflags to format_flags
+
+2003-05-11  John Levon  <levon@movementarian.org>
+
+	* profile_container.h:
+	* profile_container.cpp:
+	* opannotate.cpp: clean up select_filename() in a
+	similar fashion
+
+2003-05-11  John Levon  <levon@movementarian.org>
+
+	* libpp/profile_container.h:
+	* libpp/profile_container.cpp:
+	* pp/opreport.cpp:
+	* pp/opannotate.cpp:
+	* pp/opgprof.cpp: another select_symbols() API cleanup
+
+2003-05-11  John Levon  <levon@movementarian.org>
+
+	* pp/opgprof.cpp: use select_symbols so we can
+	handle --threshold
+
+2003-05-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opannotate.cpp: use threshold for source output
+
+2003-05-11  John Levon  <levon@movementarian.org>
+
+	* pp/common_option.h:
+	* pp/common_option.cpp:
+	* pp/opannotate_options.cpp:
+	* pp/opreport_options.cpp: make --threshold
+	be a common option.
+
+2003-05-11  John Levon  <levon@movementarian.org>
+
+	* pp/profile_container.h:
+	* pp/profile_container.cpp:
+	* pp/opannotate.cpp:
+	* pp/opreport.cpp: clean up select_symbols
+	interface
+
+2003-05-11  John Levon  <levon@movementarian.org>
+
+	* pp/opreport.cpp: make --threshold work for
+	image summaries too
+
+2003-05-11  John Levon  <levon@movementarian.org>
+
+	* pp/opreport_options.cpp: fix --threshold
+	description to match reality
+
+2003-05-11  John Levon  <levon@movementarian.org>
+
+	* libpp/partition_files.h:
+	* libpp/partition_files.cpp:
+	* pp/opannotate_options.cpp:
+	* pp/opgprof_options.cpp:
+	* pp/opreport.cpp:
+	* pp/opreport_options.cpp: rename merge_by members
+
+2003-05-11  John Levon  <levon@movementarian.org>
+
+	* pp/opreport.cpp: add some logic to not output
+	duplicate lines for dep images when we've already
+	shown all the possible details in the main image summary
+
+2003-05-11  John Levon  <levon@movementarian.org>
+
+	* pp/common_option.h: use std::
+
+2003-05-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opreport_options.cpp: move handle_threshold()
+	* pp/common_option.h:
+	* pp/common_option.cpp: here
+	* pp/opannotate_options.h:
+	* pp/opannotate_options.cpp:
+	* pp/opannotate.cpp: handle --threshold
+
+2003-05-10  John Levon  <levon@movementarian.org>
+
+	* libop/op_mangle.h:
+	* libop/op_mangle.c: use a temp struct for
+	passing the mangle parameters with a set of
+	flags.
+
+	* dae/opd_sample_files.c:
+	* daemon/opd_sample_files.c: use it
+
+2003-05-10  John Levon  <levon@movementarian.org>
+
+	* Makefile.am:
+	* HACKING:
+	* libop++/:
+	* pp/Makefile.am:
+	* libpp/Makefile.am:
+	* libpp/op_header.h:
+	* libpp/op_header.cpp: remove libop++ after
+	moving op_header into libpp
+
+2003-05-10  John Levon  <levon@movementarian.org>
+
+	* libop++/op_header.cpp: make CPU info take up
+	one line not two
+
+2003-05-10  John Levon  <levon@movementarian.org>
+
+	* libop++/Makefile.am:
+	* libop++/op_header.cpp:
+	* libop++/op_print_event.h:
+	* libop++/op_print_event.cpp: remove op_print_event
+	files, making it a function local to op_header.cpp
+
+2003-05-10  John Levon  <levon@movementarian.org>
+
+	* libop++/op_header.h:
+	* libop++/op_header.cpp: make output_header() be
+	an operator<<
+	
+	* pp/opannotate.cpp:
+	* pp/opreport.cpp: changes from the above
+
+	* libpp/profile.h: small cleanup
+
+2003-05-10  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/string_manip.h:
+	* libutil++/string_manip.cpp: replace format_percent() by
+	  format_double()
+
+	* libpp/format_output.cpp:
+	* pp/opannotate.cpp:
+	* pp/opreport.cpp: use format_double()
+
+2003-05-09  John Levon  <levon@movementarian.org>
+
+	* libpp/opp_symbol.h: app name, image name should
+	be in symbol not in file_location
+
+	* libpp/format_output.cpp:
+	* libpp/profile_container.h:
+	* libpp/profile_container.cpp:
+	* libpp/symbol_container.cpp:
+	* libpp/symbol_functors.cpp: changes from above
+
+2003-05-09  John Levon  <levon@movementarian.org>
+
+	* libpp/format_output.h:
+	* libpp/format_output.cpp: vma_64 doesn't need
+	to be in field_datum. make one output() private
+
+2003-05-09  John Levon  <levon@movementarian.org>
+
+	* libpp/format_output.h:
+	* libpp/format_output.cpp: pass a symbol ref
+	not name down into the formatters
+
+2003-05-09  John Levon  <levon@movementarian.org>
+
+	* libutil++/string_manip.h:
+	* libutil++/string_manip.cpp: sample_filename() is unused
+
+2003-05-09  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop++/op_header.h:
+	* libop++/op_header.cpp: read_header() new
+	* libop++/Makefile.in: we depend on libdb
+
+	* pp/opannotate.cpp:
+	* pp/opreport.cpp: better way to get sample file header
+
+2003-05-09  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/format_output.cpp: remove redundant map formater
+	* pp/opannotate.cpp: spurious cout
+
+2003-05-08  John Levon  <levon@movementarian.org>
+
+	* pp/opreport.cpp:
+	* pp/opreport_options.cpp:
+	* pp/opreport_options.h: clean up cout stuff as
+	suggested by Phil
+
+2003-05-08  John Levon  <levon@movementarian.org>
+
+	* libpp/profile_spec.h:
+	* libpp/profile_spec.c: rename the set_p variables,
+	remove pointless is_empty() function
+
+	* pp/opreport.cpp: split collation and output into
+	two separate functions. Rename the temporary structures
+	so it's hopefully a bit more obvious what's happening.
+	Add sourcedocs.
+
+2003-05-08  John Levon  <levon@movementarian.org>
+
+	* pp/opreport_options.h:
+	* pp/opreport_options.cpp: add options::cout,
+	  --output-file option
+
+	* pp/opreport.cpp: use options::cout
+
+2003-05-08  John Levon  <levon@movementarian.org>
+
+	* pp/format_output.cpp: fix cumulative column widths
+
+2003-05-08  John Levon  <levon@movementarian.org>
+
+	* opreport_options.h: add accumulated
+
+	* opreport.cpp: handle --accumulated
+
+2003-05-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/symbol_container.cpp: minor tidy
+
+	* libpp/profile.h:
+	* libpp/profile.cpp: allow to cumulate sample file
+	* libpp/profile_container.h:
+	* libpp/profile_container.cpp: remove free function add_samples()
+
+	* pp/annotate.cpp:
+	* pp/opgprof.cpp:
+	* pp/opreport.cpp: when possible cumulate samples into a profile_t
+	  first before cumulating them in a profile_container
+
+2003-05-07  John Levon  <levon@movementarian.org>
+
+	* pp/opannotate.cpp: small cleanup
+
+2003-05-07  John Levon  <levon@movementarian.org>
+
+	* pp/opreport_options.cpp: remove unneeded include
+
+2003-05-07  John Levon  <levon@movementarian.org>
+
+	* libpp/Makefile.am:
+	* libpp/parse_cmdline.h:
+	* libpp/parse_cmdline.cpp: rename to ...
+
+	* libpp/profile_spec.h:
+	* libpp/profile_spec.cpp: this. Make handle_nonoptions()
+	be a static factory create() method instead. Make
+	select_sample_filenames() be a member generate_file_list()
+	instead. Concomitant cleanups.
+
+	* libpp/filename_spec.h:
+	* pp/opannotate_options.cpp:
+	* pp/opgprof_options.cpp:
+	* pp/opreport_options.cpp: changes from above
+
+2003-05-07  John Levon  <levon@movementarian.org>
+
+	* libpp/profile.cpp: fix stupid error in last commit
+
+2003-05-07  John Levon  <levon@movementarian.org>
+
+	* libpp/profile.h:
+	* libpp/profile.cpp: remove sample_filename member,
+	bogus old spurious check, set_start_offset().
+
+	* libpp/profile_container.cpp:
+	* pp/opannotate.cpp:
+	* pp/opreport.cpp: changes from above
+
+2003-05-07  John Levon  <levon@movementarian.org>
+
+	* libpp/derive_files.h:
+	* libpp/derive_files.cpp: rename files as ...
+
+	* libpp/locate_images.h:
+	* libpp/locate_images.cpp: this.
+
+	* libpp/Makefile.am:
+	* libpp/partition_files.h:
+	* pp/common_option.h:
+	* pp/opgprof.cpp:
+	* pp/opgprof_options.h:
+	* pp/opreport_options.h: changes from above
+
+2003-05-07  John Levon  <levon@movementarian.org>
+
+	* libpp/derive_files.h:
+	* libpp/derive_files.cpp: rework into extra_images
+	class
+
+	* libpp/partition_files.h:
+	* libpp/partition_files.cpp:
+	* pp/common_option.h:
+	* pp/common_option.cpp:
+	* pp/opannotate.cpp:
+	* pp/opgprof.cpp:
+	* pp/opreport.cpp: use the above
+
+2003-05-07  John Levon  <levon@movementarian.org>
+
+	* libpp/Makefile.am:
+	* session.h:
+	* session.cpp: remove session.{h,cpp}
+
+2003-05-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/oprofpp.cpp pp/oprofpp_options.cpp pp/oprofpp_options.h:
+	* pp/op_time.cpp pp/op_time_options.cpp pp/op_time_options.h:
+	* pp/op_to_source.cpp pp/op_to_source_options.cpp:
+	* pp/op_to_source_options.h pp/op_merge.cpp: removed files
+
+	* pp/Makefile.am: update
+
+2003-05-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opgprof.cpp: infamous typo
+
+	* pp/opannotate.cpp: output sample file header
+
+
+2003-05-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpop++/op_mangling.h:
+	* libpop++/op_mangling.cpp: removed file
+	* libop++/op_header.h:
+	* libop++/op_header.cpp: new file, misc function acting on sample
+	  file header stolen from libpp/profile.(cpp|h)
+	* libop++/op_print_event.h: typo
+	* libop++/op_print_event.cpp: save/restore ostream state
+	* libop++/Makefile.am: update
+	
+	* libop/op_sample_file.h: remove dead #define OPD_MANGLE_CHAR
+
+	* libpp/profile.h:
+	* libpp/profile.cpp: move some member function to free function in
+	  libop++/op_header.(cpp|h)
+	* libpp/profile_container.cpp: minor call change
+
+	* libpp/Makefile.am: op_merge can't be compiled currently inhibit build
+
+	* libpp/opreport.cpp: output sample file header
+
+2003-05-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/path_filter.h: default param to empty string not "*"
+
+	* libpp/symbol_functors.h: remove dead code
+
+	* pp/opgprof.cpp: off by one in histsize calculation
+
+2003-05-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil/op_file.h:
+	* libutil/op_file.c: sanitize create_path()
+
+	* libutil++/path_filter.h: default ctor match all
+
+	* libpp/profile_container.h:
+	* libpp/profile_container.cpp:
+	* libpp/sample_container.h:
+	* libpp/sample_container.cpp:
+	* libpp/symbol_container.h:
+	* libpp/symbol_container.cpp: extend api to allow selecting symbol
+	  restricted to one application, ditto for retrieving samples
+
+	* pp/opannotate_options.h:
+	* pp/opannotate_options.cpp:
+	* pp/opannotate.cpp: implement
+
+	* pp/opgprof_options.h:
+	* pp/opgprof_options.cpp:
+	* pp/opreport_options.h:
+	* pp/opreport_options.cpp: comment fix
+
+	* pp/opreport.cpp: update to match new profile_container api
+
+2003-05-03  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opreport.cpp: don't show dependent file if !--include-dependent
+
+2003-05-02  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/partition_files.h:
+	* libpp/partition_files.cpp: sort_by_image_name() new return a list
+	  of sample filename sorted by bfd image name.
+	* libpp/profile_container.cpp: add_samples() don't build op_bfd object
+	  used here but pass it as parameters
+
+	* pp/opgprof.cpp:
+	* pp/opreport.cpp: use the above change to avoid opening multiple time
+	  a bfd object.
+
+	* pp/opannotate_options.cpp: add --(include|exclude)-symbols
+
+	* libpp/parse_cmdline.cpp:
+	* pp/opgprof_options.cpp:
+	* pp/opreport.cpp: make a distinction in error message between no
+	  sample available and sample file available but no one was selected
+
+2003-05-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opannotate_options.h:
+	* pp/opannotate_options.cpp:
+	* pp/opdiff.cpp:
+	* pp/opdiff_options.h:
+	* pp/opdiff_options.cpp:
+	* pp/opgprof.cpp:
+	* pp/opgprof_options.h:
+	* pp/opgprof_options.cpp:
+	* pp/opreport.cpp:
+	* pp/opreport_options.h:
+	* pp/opreport_options.cpp: move common options handling ...
+	* pp/common_option.h:
+	* pp/common_option.cpp: here
+
+	* pp/opannotate.cpp: add options
+
+	* libpp/parse_cmdline.cpp: #include <iterator> ...
+
+2003-05-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/counter_util.h:
+	* libpp/counter_util.cpp: remove these files from cvs
+
+	* libpp/derive_files.h:
+	* libpp/derive_files.cpp: remove dead code derive_files() + typo
+
+	* libpp/parse_cmdline.cpp: select_sample_filename() throw if empty
+	  session after filtering
+
+	* pp/common_option.cpp: catch invalid_argument, return failure on
+	  catched exception
+
+2003-05-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.cpp: remove _init from excluded symbol
+	* libpp/profile_container.cpp: tidy
+
+	* pp/opgprof.cpp: fix capping samples
+
+2003-04-30  John Levon  <levon@movementarian.org>
+
+	* pp/opgprof.cpp:
+	* pp/opgprof_options.cpp:
+	* libpp/profile.cpp: tiny cleanups, fix compile
+
+2003-04-30  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/db_stat.c: minor improvement to stat, useful to track missed
+	  sample by our tools.
+
+	* pp/op_report.cpp: move matching_sample_filename() to ...
+	* libpp/parse_cmdline.h:
+	* libpp/parse_cmdline.cpp: here renamed select_sample_filename()
+
+	* libpp/profile_container.h:
+	* libpp/profile_container.cpp: expose begin() / end() from
+	 sample_container
+
+	* pp/common_option.h:
+	* pp/common_option.cpp: move option which was not really common to ..
+	* pp/opreport_options.h:
+	* pp/opreport_options.cpp: here
+	* pp/opannotate_options.h:
+	* pp/opannotate_options.cpp: and here
+
+	* pp/operport.cpp:
+	* pp/opannotate.cpp: better to return a value from main() ...
+
+	* pp/opgprof_options.h:
+	* pp/opgprof_options.cpp:
+	* pp/opgprof.cpp: implement opgprof
+
+2003-04-29  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/parse_cmdline.h:
+	* libpp/parse_cmdline.cpp: handle opreport /lib/libc-2.2.5.so, now
+	  non tag, non option argument match either an image name or lib name
+
+2003-04-29  John Levon  <levon@movementarian.org>
+
+	* libutil++/op_bfd.cpp: remove "static " inside anon namespace
+
+2003-04-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/format_output.h:
+	* libpp/format_output.cpp: need header tweaking
+
+	* pp/opannotate.cpp:
+	* pp/opgprof.cpp: minor tidy
+
+	* pp/opreport_options.h:
+	* pp/opreport_options.cpp:
+	* pp/opreport.cpp: handle -no-header and --image-path
+
+2003-04-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/glob_filter.cpp:
+	* libutil++/path_filter.cpp:
+	* libutil++/string_filter.cpp: #include <algorithm>
+
+2003-04-28  John Levon  <levon@movementarian.org>
+
+	* libutil++/string_filter.cpp:
+	* libutil++/string_filter.h:
+	* libutil++/glob_filter.h:
+	* libutil++/glob_filter.cpp:
+	* libutil++/path_filter.h:
+	* libutil++/path_filter.cpp: use std::find[_if],
+	share some code
+
+2003-04-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.cpp: replace a loop by a std::copy()
+
+2003-04-28  John Levon  <levon@movementarian.org>
+
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp: cleanup of last fix
+
+2003-04-28  John Levon  <levon@movementarian.org>
+
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp: make symbol filtering
+	happen *after* adding of artificial symbol
+
+2003-04-28  John Levon  <levon@movementarian.org>
+
+	* libutil++/string_filter.cpp:
+	* libutil++/glob_filter.cpp:
+	* libutil++/path_filter.cpp: match as true if
+	include_list is empty and not excluded
+
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp: use string_filter to
+	filter symbols
+
+	* libpp/profile_container.h:
+	* libpp/profile_container.cpp:
+	* pp/opreport_options.h:
+	* pp/opreport_options.cpp:
+	* pp/opreport.cpp: changes from using string_filter
+
+2003-04-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opreport.cpp: finish to remove use of split_sample_filename
+
+2003-04-28  John Levon  <levon@movementarian.org>
+
+	* libutil++/filename_match.h:
+	* libutil++/filename_match.cpp: replace with ...
+
+	* libutil++/Makefile.am:
+	* libutil++/string_filter.h:
+	* libutil++/string_filter.cpp:
+	* libutil++/glob_filter.h:
+	* libutil++/glob_filter.cpp:
+	* libutil++/path_filter.h:
+	* libutil++/path_filter.cpp: .. split up variants
+	of the filters
+
+	* libpp/parse_cmdline.cpp: use glob_filter
+
+	* pp/op_to_source.cpp: use path_filter
+
+2003-04-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/partition_files.h:
+	* libpp/partition_files.cpp:
+	* libpp/split_sample_filename.h:
+	* libpp/split_sample_filename.cpp:
+	* pp/opreport.cpp: replace some use of std::string sample_filename
+	  by a split_sample_filename struct
+
+2003-04-28  John Levon  <levon@movementarian.org>
+
+	* libutil++/filename_match.h:
+	* libutil++/filename_match.cpp: use file-scope
+	not private static member function
+
+2003-04-27  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/format_output.h:
+	* libpp/format_output.cpp: remove all string based output format flag
+
+	* libpp/format_output.cpp: move options::demangle handling ...
+	* libregx/demangle_symbol.cpp: here
+
+	* libpp/profile_container.h:
+	* libpp/profile_container.cpp:
+	* pp/opreport_options.h:
+	* pp/opreport_options.cpp:
+	* pp/opreport.cpp: handle --include-symbols
+
+2003-04-27  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opreport_options.h:
+	* pp/opreport_options.cpp:
+	* pp/opreport.cpp: handle --threshold, remove --ignore-symbols
+
+2003-04-27  John Levon  <levon@movementarian.org>
+
+	* libpp/<various>: minor spacing etc.
+
+2003-04-27  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/outsymbflag.h: remove osf_short_xxx variant
+	* libpp/format_output.h:
+	* libpp/format_output.cpp: replace osf_short_xxx by a boolean
+	* libpp/profile_container.cpp: update according
+
+	* pp/opreport_options.h: export short_filename option
+	* pp/opreport.cpp: use short_filename
+
+2003-04-27  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/symbol_functors.h: add less_symbol predicate
+	* libpp/symbol_functors.cpp: new file, less_symbol implementation
+	* libpp/Makefile.am: symbol_functors.cpp
+
+	* libpp/symbol_container.h:
+	* libpp/symbol_container.cpp: use a node based container for symbols
+	  ensuring validity of symbol pointer over a symbol_container life time
+	* libpp/sample_container.h:
+	* libpp/sample_container.cpp: ditto as above for samples
+	* libpp/profile_container.h:
+	* libpp/profile_container.cpp: use this new api to merge symbols
+	  and sample.
+
+	* libpp/format_output.h:
+	* libpp/format_output.cpp: use new api to iterate over sample by symbol
+
+	* pp/opreport.cpp: detailed output
+	
+
+2003-04-27  John Levon  <levon@movementarian.org>
+
+	* pp/opreport.cpp: make opreport -l put largest results
+	at the top like opreport does
+
+2003-04-26  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/profile_container.h: comment
+
+	* pp/opreport_options.h: more options export
+	* pp/opreport.cpp: implement -l. Doesn't works correctly: --merge=lib
+
+2003-04-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opreport_options.h: export global_percent
+	* pp/opreport.cpp: finish to implement op_time like behavior. Remains
+	  to implement op_time -l
+
+2003-04-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/partition_files.cpp: fix a crash when profile spec is empty
+
+	* pp/opreport_options.cpp: bail out if no samples files are found
+
+2003-04-25  John Levon  <levon@movementarian.org>
+
+	* pp/opreport_options.cpp: --hide-dependent should have 'h' as
+	short form. Add a FIXME for a crash
+
+2003-04-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/partition_files.cpp: thinko in sample filename partition
+
+	* pp/opreport_options.h: export more options
+	* pp/opreport_options.cpp: add --hide-dependent, change --merge to not
+	  default to all
+	* pp/opreport.cpp: handle --hide-dependent --include-dependent and
+	  --merge=lib. Code is ugly, tidy incoming
+
+2003-04-25  John Levon  <levon@movementarian.org>
+
+	* libpp/format_output.cpp:
+	* libpp/format_output.h:
+	* libpp/outsymbflag.h: "immutable" not "imutable"
+
+	* libpp/partition_files.cpp: include <iterator> to compile
+
+2003-04-24  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/partition_files.h: typo
+	* libpp/profile.cpp: difficult to get right result with a random value
+	  in profile::start_offset
+
+	* pp/opreport_options.h: export options::reverse_sort
+	* pp/opreport_options.cpp: bail out if we get multiple counter
+
+	* pp/opreport.cpp: raw output result for application (not symbol)
+	  output.
+
+2003-04-24  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/filename_spec.h:
+	* libpp/filename_spec.cpp:
+	* libpp/parse_cmdline.h:
+	* libpp/parse_cmdline.cpp:
+	* libpp/split_sample_filename.h:
+	* libpp/split_sample_filename.cpp: s/unit_mask/unitmask
+
+	* libpp/merge_spec.cpp:
+	* libpp/merge_spec.h: rename to
+	* libpp/partition_files.h:
+	* libpp/partition_files.cpp: here. Add and merge_option.
+	  partition_files is now a class.
+	* pp/opreport_options.h:
+	* pp/opreport_options.cpp:
+	* pp/opreport.cpp: update according to the above. Add a roughly support
+	  to count samples for plain op_time opreport like
+
+2003-04-24  John Levon  <levon@movementarian.org>
+
+	* libpp/profile_container.h:
+	* libpp/profile_container.cpp: chop off the _t of the class name
+
+	* libpp/format_output.cpp:
+	* libpp/format_output.h:
+	* libpp/symbol_container.cpp:
+	* libpp/symbol_container.h:
+	* pp/op_time.cpp:
+	* pp/op_to_source.cpp:
+	* pp/oprofpp.cpp: changes from the above
+
+2003-04-24  John Levon  <levon@movementarian.org>
+
+	* libpp/profile_container.h:
+	* libpp/profile_container.cpp: pedantry for sample_container
+	indices.
+
+	* libpp/sample_container.h:
+	* libpp/sample_container.cpp: various cleanups and docs. Add
+	and use size_type.
+
+	* libpp/symbol_container.h:
+	* libpp/symbol_container.cpp: renamings. Add and use size_type.
+
+2003-04-24  John Levon  <levon@movementarian.org>
+
+	* libpp/symbol_container.h:
+	* libpp/symbol_container.cpp: remove unused operator[].
+	Add some docs. Some small cleanups
+
+2003-04-24  John Levon  <levon@movementarian.org>
+
+	* libpp/symbol_container_imp.h:
+	* libpp/symbol_container_imp.cpp:
+	* libpp/sample_container_imp.h:
+	* libpp/sample_container_imp.cpp: These classes weren't using
+	the pimpl idiom, so the _imp was spurious. Remove that as well
+	as removing the _t from the names, and rename to ...
+
+	* libpp/symbol_container.h:
+	* libpp/symbol_container.cpp:
+	* libpp/sample_container.h:
+	* libpp/sample_container.cpp: ...files moved from the above with
+	new names.
+
+2003-04-23  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/generic_spec.h: minor formating tweak
+
+	* libpp/parse_cmdline.h:
+	* libpp/parse_cmdline.cpp: handle_non_options(): return parse_cmdline
+	  by value
+
+	* libpp/merge_spec.h:
+	* libpp/merge_spec.cpp: new files: partition list of samples filename
+	  according to merge options.
+	* libpp/Makefile.am: update
+
+	* pp/opreport_options.cpp: more options handling, use partition_files()
+
+2003-04-22  John Levon  <levon@movementarian.org>
+
+	* pp/opreport_options.cpp: compile fix
+
+2003-04-21  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/filename_match.h:
+	* libutil++/filename_match.cpp: add strict_match()
+
+	* libutil++/generic_spec.cpp: generic_spec<string>::set() was not
+	  setting is_all member leading to bad matching
+
+	* libpp/filename_spec.cpp: minor tidy
+
+	* libpp/parse_cmdline.h:
+	* libpp/parse_cmdline.cpp: fix match()
+
+	* libpp/split_sample_filename.h:
+	* libpp/split_sample_filename.cpp: handle sample file base directory
+
+	* libop++/op_print_event.h:
+	* libop++/op_print_event.cpp:
+	* libpp/format_output.h:
+	* libpp/format_output.cpp:
+	* libpp/opp_symbol.h:
+	* libpp/profile.h:
+	* libpp/profile.cpp:
+	* libpp/profile_container.h:
+	* libpp/profile_container.cpp:
+	* libpp/sample_container_imp.h:
+	* libpp/sample_container_imp.cpp:
+	* libpp/symbol_container_imp.h:
+	* libpp/symbol_container_imp.cpp:
+	* libpp/symbol_functors.h: remove all use of counter number
+
+	* libpp/counter_array.h:
+	* libpp/counter_array.cpp:
+	* libpp/counter_profile.h:
+	* libpp/counter_profile.cpp: no longer used, move some bits to
+	  libpp/profile.(h|cpp) and remove these files.
+	* libpp/Makefile.am: update according
+
+	* pp/op_merge.cpp: use profile_t not counter_profile_t
+	* pp/makefile.am: correct lib for op_merge
+
+	* pp/opreport_options.cpp: more options handling
+
+2003-04-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libopt++/popt_options.cpp: don't show help_str with --usage
+	* libpp/format_output.cpp: typo
+	* libutil/op_file.c: create dir with 755 not 700
+	* pp/common_option.cpp: source formating
+
+	* libpp/parse_cmdline.h:
+	* libpp/parse_cmdline.cpp: handle_non_options() new
+	* pp/opreport_options.cpp: handle more options
+
+	* pp/opsummary.cpp:
+	* pp/opsummary_options.h:
+	* pp/opsummary_options.cpp: remove, opreport should do its job.
+	* pp/Makefile.am: update
+
+2003-04-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libopt++/popt_options.cpp: allow "no-" prefix to long option name
+	  implicitly specify the value must be negated
+	* libopt++/popt_options.cpp: update doxygen documentation
+
+	* libpp/format_output.h: missing #include
+	* libpp/format_output.cpp: space + minor change
+
+	* pp/opannotate_options.h:
+	* pp/opannotate_options.cpp:
+	* pp/opdiff_options.h:
+	* pp/opdiff_options.cpp:
+	* pp/opgprof_options.h:
+	* pp/opgprof_options.cpp:
+	* pp/opreport_options.h:
+	* pp/opreport_options.cpp:
+	* pp/opsummary_options.h:
+	* pp/opsummary_options.cpp: new skeleton file
+
+	* pp/opannotate.cpp:
+	* pp/opdiff.cpp:
+	* pp/opgprof.cpp:
+	* pp/opreport.cpp:
+	* pp/opsummary.cpp: update to handle options
+
+	* pp/common_option.cpp: follow more closely pp_interface
+
+	* pp/opsummary_options.cpp: start to handle opsummary option
+
+	* pp/Makefile.am: update
+
+2003-04-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/format_output.h:
+	* libpp/format_output.cpp:
+	* libpp/outsymbflag.h:
+	* libpp/profile_container.h:
+	* libpp/profile_container.cpp: osf_header/osf_details are no longer
+	  flags but separate boolean.
+
+2003-04-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_kernel.c:
+	* daemon/opd_kernel.c: remove leading '/' on module name fixing 2.5
+	 module not under {kern} and similar case for "no-vmlinux" with 2.4/2.5
+
+	* libutil/op_file.c: tiny tidy
+
+2003-04-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_mangle.c: app_name and image was reversed, {dep} was missing
+
+2003-04-17  John Levon  <levon@movementarian.org>
+
+	* libpp/filename_spec.h:
+	* libutil++/comma_list.h: compile fixes
+
+2003-04-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/opcontrol: better --reset handling
+
+2003-04-16  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae works, daemon compiles but not tested.
+
+	* libop/op_config.h:
+	* libpp/op_session.h:
+	* libpp/session.cpp:
+	* pp/op_merge: handle new path to samples files.
+
+	* libutil++/file_manip.h:
+	* libutil++/file_manip.cpp: move create_dir(), create_path() ...
+	* libutil/op_file.h:
+	* libutil/op_file.c: here. Remove op_move_regular_file()
+
+	* daemon/opd_image.c:
+	* daemon/opd_sample_files.h:
+	* daemon/opd_sample_files.c:
+	* dae/opd_image.c:
+	* dae/opd_sample_files.h:
+	* dae/opd_sample_files.c: use new filename scheme
+
+	* daemon/oprofiled.c:
+	* dae/oprofiled.c: remove samples files backup stuff
+
+	* libop/op_mangle.h:
+	* libop/op_mangle.c: ugly modification to handle new samples filename
+
+	* utils/opcontrol: handle new samples files path, --save and --reset
+	  are working too.
+
+	* gui/oprof_start_util.cpp: use new create_path() API
+
+2003-04-16  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/common_option.cpp:
+	* pp/common_option.h:
+	* libregex/demangle_symbol.cpp: rename demangle_and_shrink to
+	  smart_demangle
+
+2003-04-16  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* starting branch pp-interface-branch
+
+	* Makefile.am:
+	* configure.in: handle new sub dir libpp
+
+	* libutil++/comma_list.h: new file handling of comma separated list of
+	  items.
+	* libutil++/generic_spec.cpp:
+	* libutil++/generic_spec.h: new file
+	* libutil++/Makefile.am: handle new file
+
+	* pp/counter_array.*:
+	* pp/counter_profile.*:
+	* pp/counter_util.*:
+	* pp/derive_files.*:
+	* pp/format_output.*:
+	* pp/opp_symbol.h:
+	* pp/outsymbflag.h:
+	* pp/profile.*:
+	* pp/profile_container.*:
+	* pp/sample_container_imp.*:
+	* pp/session.*:
+	* pp/symbol_container_imp.*:
+	* pp/symbol_functors.*: move to
+
+	* libpp/*: here
+	* libpp/filename_spec.cpp:
+	* libpp/filename_spec.h: new file handling of pp sample filename
+	* libpp/parse_cmdline.cpp:
+	* libpp/parse_cmdline.h: new file, handling of command line tag:value
+	* libpp/Makefile.am: new file build libpp.a
+
+	* pp/common_option.h:
+	* pp/common_option.cpp: common option to pp tools. Implement common
+	  entry point to pp tools.
+	* pp/opannotate.cpp:
+	* pp/opdiff.cpp:
+	* pp/opgprof.cpp:
+	* pp/opreport.cpp:
+	* pp/opsummary.cpp: skeleton file for all pp tools.
+	* pp/Makefile.am: remove old pp tools, add the news.
+
+2003-04-28  Alex Tsariounov  <alext@fc.hp.com>
+
+	* module/ia64/op_pmu.c: fix compile
+
+2003-04-24  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* module/compat22.h: add cpuid_edx when linux version < 2.2.21
+
+2003-04-24  Dave Jones <davej@codemonkey.org.uk>
+
+	* events/x86-64.hammer.events:
+	* events/x86-64.hammer.unit_masks: typo fixes from AMD.
+	* module/x86/cpu_type.c: Check for APIC on Athlon before enabling it.
+
+2003-04-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* events/i386-ht.events: all events allow only one counter, remove
+	  three events due to ESCR restriction.
+	* events/i386.events: add some comments.
+
+	* module/x86/op_model_p4.c: synch with linux 2.5 mainline
+	  - except events CTR_BPU_0 all virtual counter was not working.
+	  - Prevents a segfault when using incorrect counter number.
+	  - ESCR event select is 6 bits length not 5.
+	  - Don't fail silently in p4_setup_ctrs().
+	* module/x86/op_msr.h: match name used in linux.
+
+2003-04-15  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml: small english fixes
+
+2003-04-14  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_kernel.c:
+	* dae/opd_proc.c:
+	* dae/oprofiled.c:
+	* utils/opcontrol:
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml: handle --no-vmlinux
+
+	* daemon/opd_kernel.c: use no-vmlinux not /no-vmlinux when user
+	  specify --no-vmlinux
+
+2003-04-08  John Levon  <levon@movementarian.org>
+
+	* HACKING: describe what happens with oprofile-www
+
+2003-04-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.cpp: check for #717720 and direct user to
+	  FAQ if detected. Note than we don't detect all symptom of this bug.
+
+2003-04-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_exception.h: op_runtime_error is no longer abstract
+
+	* libregex/op_regex.h: comment and tidy
+	* libregex/op_regex.cpp: tidy
+
+2003-04-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/op_to_source.cpp: make each line be prefixed with the samples
+	counts. It was too hard to find samples inside previous format.
+
+2003-04-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/string_manip.cpp: work around for gcc 2.95
+	* p/op_to_source.cpp: minor cleanup
+
+2003-04-07  John Levon  <levon@movementarian.org>
+
+	* pp/op_to_source.cpp: cheat a bit to get
+	better indentation on the default setup, by
+	widening counter width to 7.
+
+2003-04-07  John Levon  <levon@movementarian.org>
+
+	* pp/op_to_source.cpp: append symbol summary
+	annotations separate from the prolog samples on
+	the same line.
+
+2003-04-07  John Levon  <levon@movementarian.org>
+
+	* pp/op_to_source.cpp: only output line 0 annotation
+	if samples found there.
+
+2003-04-07  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: make sure --ctrX-event=none gets noticed
+
+2003-04-06  John Levon  <levon@movementarian.org>
+
+	* libutil++/string_manip.h:
+	* libutil++/string_manip.cpp: remove ws_prefix(). Add
+	format_percent().
+
+	* pp/op_to_source.cpp: make each line be prefixed with
+	the sample counts, instead of on a line above, to preserve
+	line numbering.
+
+2003-04-06  John Levon  <levon@movementarian.org>
+
+	* pp/op_to_source.cpp: some renamings for clarity
+
+2003-04-06  John Levon  <levon@movementarian.org>
+
+	* pp/op_to_source.cpp: move extract_blank_at_begin() to ...
+
+	* libutil++/string_manip.cpp: ... here, and rename as
+	ws_prefix().
+	
+2003-04-06  John Levon  <levon@movementarian.org>
+
+	* pp/op_to_source.cpp: prefix comment lines.
+	Output the general footer on each separate file.
+	Output the info at the bottom when outputting
+	separate files (towards maintaining line numbering).
+
+2003-04-06  John Levon  <levon@movementarian.org>
+
+	* pp/op_to_source.cpp: construct a file-scope
+	cmdline string, instead of passing it around.
+
+2003-04-06  John Levon  <levon@movementarian.org>
+
+	* libregex/op_regexp.cpp: re-arrange a bit
+
+2003-04-06  John Levon  <levon@movementarian.org>
+
+	* configure.in:
+	* all Makefile.am: don't blindly set $LIBS, use
+	explicit mention of which libs are needed.
+
+	* dae/Makefile.am:
+	* daemon/Makefile.am: only link with C++ if needed.
+
+2003-04-05  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_config_24.h:
+	* module/oprofile.c:
+	* module/oprofile.c: make watermark size proportional to buffer size.
+
+2003-04-05  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_events.h:
+	* libop/op_events.c: re-add op_min_count();
+
+	* dae/oprofiled.c:
+	* daemon/oprofiled.c: use op_min_count() fixing #715923
+
+2003-04-01  John Levon  <levon@movementarian.org>
+
+	* libdb/Makefile.am: fix make dist
+
+	* daemon/opd_cookie.h: add SPARC syscall number.
+	  The system call function is OK for sparc/sparc64
+
+2003-03-31  Will Cohen  <wcohen@redhat.com>
+
+	* libdb/odb_hash.h: Renamed db_hash.h.
+
+	* dae/Makefile.am:
+	* dae/opd_image.c:
+	* dae/opd_image.h:
+	* dae/opd_proc.c:
+	* dae/opd_sample_files.c:
+	* daemon/Makefile.am:
+	* daemon/opd_image.c:
+	* daemon/opd_image.h:
+	* daemon/opd_sample_files.c:
+	* libabi/Makefile.am:
+	* libabi/abi.cpp:
+	* libabi/abi_test.cpp:
+	* libabi/op_import.cpp:
+	* libdb/Makefile.am:
+	* libdb/db_debug.c:
+	* libdb/db_hash.h:
+	* libdb/db_insert.c:
+	* libdb/db_manage.c:
+	* libdb/db_stat.c:
+	* libdb/db_test.c:
+	* libdb/db_travel.c:
+	* pp/Makefile.am:
+	* pp/counter_profile.cpp:
+	* pp/counter_profile.h:
+	* pp/op_merge.cpp: Change names to avoid libdb.a name conflicts.
+	
+2003-03-30  John Levon  <levon@movementarian.org>
+
+	* configure.in: bump to 0.6cvs
+
+	* doc/oprofile.xml: fix id. Add java etc. mention
+
+	* utils/Makefile.am:
+	* utils/op_start:
+	* utils/op_start_25:
+	* utils/op_stop:
+	* utils/op_stop_25:
+	* utils/op_dump:
+	* utils/op_dump_25:
+	* utils/op_session: finally remove the back compat crap
+
+	* HACKING: add release-notes policy
+
+2003-03-30  John Levon  <levon@movementarian.org>
+
+	* configure.in: bump to 0.5.2
+
+2003-03-30  John Levon  <levon@movementarian.org>
+
+	* Makefile.am: remove op_arch.h for ia64
+
+2003-03-27  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: several more examples and fixes
+
+2003-03-26  John Levon  <levon@movementarian.org>
+
+	From a patch by Bryan Rittmeyer.
+
+	* module/oprofile.c:
+	* module/oprofile.h: push "irq_enabled" test
+	into arch code, don't pass struct pt_regs.
+
+	* module/x86/op_arch.h: cleanups
+
+	* module/x86/op_model_athlon.c:
+	* module/x86/op_model_ppro.c:
+	* module/x86/op_model_p4.c:
+	* module/x86/op_rtc.c: changes from above
+
+	* module/ia64/op_arch.h: remove
+	* module/ia64/op_pmu.c: change from above
+
+2003-03-24  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: document prologues, and inline functions
+
+2003-03-24  Will Cohen  <wcohen@redhat.com>
+
+	* libutil/op_fileio.c (op_get_line): Use lower cost getc().
+
+2003-03-24  John Levon  <levon@movementarian.org>
+
+	* m4/configmodule.m4: fix quoting problem for awk
+
+2003-03-23  John Levon  <levon@movementarian.org>
+
+	* configure.in:
+	* m4/: move lots of stuff into separate .m4 files
+
+	* m4/typedef.m4: improve configure message
+
+2003-03-23  John Levon  <levon@movementarian.org>
+
+	* configure.in:
+	* m4/Makefile.am:
+	* m4/copyifchange.m4:
+	* m4/docbook.m4:
+	* m4/kerneloption.m4:
+	* m4/kernelversion.m4:
+ 	* m4/resultyn.m4: move configure.in macros to m4/
+
+2003-03-23  John Levon  <levon@movementarian.org>
+
+	* m4/ChangeLog: add comment
+
+	* m4/typedef.m4: can't use AC_LANG_PUSH/POP
+
+2003-03-23  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* m4/Makefile.am:
+	* m4/typedef.m4: new file to get underlined type for a typedef.
+	
+	* configure.in: get at configure time the real underlined type
+	  for size_t and ptrdiff_t
+
+	* libregex/stl.pat: move to ...
+	* libregex/stl.pat.in: here. Use @SIZE_T_TYPE@ and @PTRDIFF_T_TYPE@
+	* libregex/Makefile.am: update according
+	* libregex/.cvsignore: ignore stl.pat
+
+2003-03-22  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/opcontrol: use $OP_HELP not op_help
+	* utils/op_help.c: remove short option for --get-cpu-frequency
+
+2003-03-22  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* m4: new directory
+	* m4/.cvsignore: new
+
+	* acinclude.m4: move to
+	* m4/qt.m4: here
+	* m4/Makefile.am: new for EXTRA_DIST = all our .m4
+	* Makefile.am:
+	* configure.in:
+	* autogen.sh: handle m4 subdir, add -I m4 to aclocal flags
+
+2003-03-22  Philippe Elie  <phil.el@wanadoo.fr>
+
+	  Suggested by John
+
+	* libutil/op_cpufreq.c: typo in comment
+
+	* utils/op_help.c: add --get-cpu-frequency, intentionnaly not
+	  documented.
+	* utils/opcontrol: use op_help --get-cpu-frequency and remove
+	  ugly shell script doing the same thing.
+
+2003-03-22  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil/op_cpufreq.h:
+	* libutil/op_cpufreq.c: new file exporting op_cpu_frequency()
+	* libutil/Makefile.am: update according
+
+	* utils/opcontrol: handle other arch
+
+	* gui/oprof_start_util.h:
+	* gui/oprof_start_util.cpp: remove get_cpu_speed()
+	* gui/oprof_start.h:
+	* gui/oprof_start.cpp: and use instead op_cpu_frequency()
+
+	* daemon/oprofiled.c:
+	* dae/oprofiled.c: replace --cpu-speed option by a call to
+	  op_cpu_frequencey()
+
+2003-03-20  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: doc some 2.5 module stuff
+
+2003-03-20  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: fix opcontrol --dump to do something
+
+	* daemon/opd_image.c: give a printf when reading the buffer.
+
+2003-03-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.cpp: correct get_vma_range()
+
+	* pp/oprofpp.cpp: do_dump_gprof() this time it's right!
+
+2003-03-18  John Levon  <levon@movementarian.org>
+
+	* pp/profile.cpp: improve mtime warning for 2.5 modules
+
+2003-03-18  John Levon  <levon@movementarian.org>
+
+	* pp/derive_files.cpp: some more 2.5 modules derivation fixes
+
+2003-03-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/derive_files.cpp: fix handling of 2.5 module name
+
+2003-03-18  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_image.c:
+	* libop/op_interface_25.h: rename to MODULE_LOADED_CODE
+
+2003-03-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* pp/derive_files.cpp: special to retrieve 2.5 module
+
+2003-03-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* pp/symbol_container_imp.h:
+	* pp/symbol_container_imp.cpp:
+	* pp/profile_container.h:
+	* pp/profile_container.cpp: find(string symbol_name) return a vector
+	  of symbol rather a a single symbol
+	* pp/oprofpp.cpp: use above change so oprofpp -s will show all
+	  symbol with the same name.
+
+	* pp/symbol_functors.h: remove unused functors equal_symbol_by_name
+
+2003-03-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* libutil/op_fileio.h:
+	* libutil/op_fileio.c: op_write_u64() new
+	* libutil/op_types.h: continue our silly typedef: add u64
+
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp: op_bfd::arch_bits_per_address() new allowing
+	  to get, on a per-binary basis, the vma size.
+
+	* pp/oprofpp.cpp: fix 64 bits arch gprof output. Fix multiplier and
+	  get the multiplier of gprof file at runtime. Fix a very old bug
+	  where we credit the samples to previous gprof bin having the effect
+	  than sample at start of function was credited to the previous
+	  function
+
+2003-03-17  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_kernel.c:
+	* daemon/opd_kernel.h:
+	* daemon/opd_image.c:
+	* daemon/oprofiled.c: don't try to reread the module
+	list on a failed EIP match. We must have the module load
+	notification instead.
+
+2003-03-17  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_kernel.c: fix module accounting. Remove
+	quick-drop code that can't work.
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml: english tweaks
+
+2003-03-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml: remove documentation about -P, update doc about -p
+
+	* pp/derive_files.h:
+	* pp/derive_files.cpp: check_image_name(), add_to_alternate_filename()
+	  functions moved from op_time.cpp
+
+	* pp/op_time_options.h:
+	* pp/op_time_options.cpp:
+	* pp/op_time.cpp: remove -P option, minor cleanup
+
+	* pp/oprofpp_options.h:
+	* pp/oprofpp_options.cpp:
+	* pp/oprofpp.cpp: add -p option, minor cleanup
+	
+	* pp/op_to_source.cpp: minor cleanup
+
+2003-03-16  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/opcontrol: check return code for --ctr??-event=none
+
+2003-03-16  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start.cpp: check for --separate=xxxx in the right order.
+	  Old code do: if user set separate=library and separate=kernel only
+	  separate=library was taken by opcontrol
+
+2003-03-16  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* configure.in: typo
+
+2003-03-16  John Levon  <levon@movementarian.org>
+
+	* configure.in: more docbook macro fixes
+
+2003-03-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil/op_libiberty.h: cut&paste typo breaking compilation on box
+	  w/o libiberty.h
+
+	* daemon/opd_image.c: remove bogus fprintf. compilation was broken
+	  on alpha.
+
+	* configure.in: xsltproc checking fix, was always accepted even
+	 on box where xsltproc is not installed
+
+2003-03-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* Makefile.am: add ChangeLog-2002 in dist files
+	* all Makefile.am: put one item by line for most  xxxx = blah
+	* doc/CodingStyle: rationale for the above change
+
+2003-03-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_events.c: minor cleanup
+
+2003-03-15  Dave Jones <davej@codemonkey.org.uk>
+
+	* module/x86/op_nmi.c: Remove stale debug code from yesterdays commit.
+
+2003-03-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* configure.in: add checking for existence of xmemdup()
+
+	* libutil/Makefile.am:
+	* libutil/op_string.h:
+	* libutil/op_string.c: new, a few C string handling function
+
+	* libutil/op_libiberty.h:
+	* libutil/op_libiberty.c: xmemdup() new.
+
+	* libop/op_events.h:
+	* libop/op_events.c: tidy parser. Add op_free_events(). Fix minor
+	  buglet.
+
+	* dae/oprofiled.c:
+	* daemon/oprofiled.c: fix memleak from parsing events files
+
+	* gui/Makefile.am:
+	* pp/Makefile.am: fix lib ordering, now libop depend on libutil
+
+	* utils/op_help.c: error message if invalid cpu type. Fix op_help
+	  when using timer interrupt.
+
+2003-03-14  Andi Kleen <ak@suse.de>
+
+	* module/x86/op_nmi.c: Fix another possible race condition.
+
+2003-03-14  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* libregex/stl.pat: support for rb tree, set/map, anonymous namespace.
+	  Fix incorrect pattern for gcc 3.2. Handle 2.95 vector/string
+	  iterator and a few stl free function handling. add all C++ base type.
+	* libregex/mangled-name.txt: test for the above change
+
+2003-03-14  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start.cpp: gcc 2.91 warning work around
+
+2003-03-14  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_events.c: fix a daemon segfault depending on the used
+	  libc version, added 2003-03-04 (0.5.1 is ok)
+
+2003-03-13  Dave Jones <davej@codmeonkey.org.uk>
+
+	* events/x86-64.hammer.events: Remove duplicate minimum tag
+	  from RETIRED_INSNS counter.
+
+2003-03-11  John Levon  <levon@movementarian.org>
+
+	* module/ia64/op_pmu.c: include op_arch.h not arch.h
+
+2003-03-10  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* configure.in: remove unsupported --warnnet, fix docbook root dir test
+	* doc/oprofile.xml: typo
+
+2003-03-10  John Levon  <levon@movementarian.org>
+
+	* doc/Makefile.am:
+	* configure.in:
+	* doc/xsl/catalog-1.xml.in: more docbook changes
+
+2003-03-10  John Levon  <levon@movementarian.org>
+
+	* configure.in:
+	* doc/Makefile.am:
+	* doc/xsl/xhtml.xsl:
+	* doc/xsl/xhtml-chunk.xsl:
+	* doc/xsl/catalog-1.xml.in: Use a catalog for finding
+	the XSL, so we only have one .in file now.
+
+2003-03-08  Will Cohen  <wcohen@redhat.com>
+
+	* doc/Makefile.am: Correct path for htmldir.
+
+2003-03-08  John Levon  <levon@movementarian.org>
+
+	* libop/op_cpu_type.c: improve error message
+
+	* utils/op_help.c: show CPU name in events list. Show CPU
+	 pretty name in op_help --get-cpu-type.
+
+2003-03-08  John Levon  <levon@movementarian.org>
+
+	* configure.in: specify distcheck ./configure flags.
+	  Add version.h to distclean.
+
+	* doc/Makefile.am: 
+	* doc/xsl/xhtml-1.in:
+	* doc/xsl/xhtml-chunk-1.in: fix make distcheck
+
+2003-03-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/xsl/.cvsignore: update
+
+	* module/x86/cpu_type.c: <smpboot.h> is not necessary
+
+2003-03-07  John Levon  <levon@movementarian.org>
+
+	* README: document autogen.sh
+
+2003-03-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* doc/xsl/xhtml.xsl.in: move to
+	* doc/xsl/xhtml-1.xsl.in: here
+	* doc/xsl/xhtml-chunk.xsl.in: move to
+	* doc/xsl/xhtml-chunk-1.xsl.in: here
+	* doc/Makefile.am; update according
+	* configure.in: avoid to touch doc/xsl generated files
+
+2003-03-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* daemon/opd_image.c:
+	* daemon/op_stats.c:
+	* daemon/opd_stats.h: add statistics for nil image whilst receiving
+	  user space samples.
+
+2003-03-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* libdb/db_hash.h:
+	* libdb/db_insert.c: get error message from db_insert()
+
+	* libdb/db_test.c:
+	* dae/opd_proc.c:
+	* daemon/opd_image.c:
+	* libabi/abi_test.cpp:
+	* libabi/op_import.cpp:
+	* pp/op_merge.cpp: update according to the new api
+
+2003-03-06  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: pedantry
+
+2003-03-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml: document --smart-demangle
+
+2003-03-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* module/ia64/op_pmu.c:
+	* module/x86/op_nmi.c: remove #include <op_events.h>
+
+2003-03-06  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: sh != C. This is the last opcontrol
+	  bug, honest ! OK, maybe not.
+
+2003-03-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* gui/oprof_start.cpp: save_config() gcc 2.95.3 warning work-around
+
+2003-03-05  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: Make --setup optional (e.g.
+	  opcontrol --no-vmlinux). Fix a bug in the --setup
+	  exclusive arg testing.
+
+	* doc/oprofile.xml: reflect the above
+
+2003-03-05  John Levon  <levon@movementarian.org>
+
+	* libutil++/string_manip.h:
+	* libutil++/string_manip.cpp: cleanup, use s.find
+	  because older gcc's don't have the right s.compare
+
+2003-03-04  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: only sleep 2 after dump on 2.4
+
+2003-03-04  John Levon  <levon@movementarian.org>
+
+	* configure.in: tweak the xsltproc test
+
+2003-03-04  John Levon  <levon@movementarian.org>
+
+	* configure.in:
+	* doc/Makefile.am: don't try to build the docs
+	  if it will fail.
+
+2003-03-04  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol:
+	* daemon/opd_kernel.h:
+	* daemon/opd_image.c:
+	* daemon/opd_kernel.c:
+	* daemon/oprofiled.c: implement --no-vmlinux.
+ 	  Remove back compat for is_kernel.
+
+	* gui/uioprof_start.base.ui:
+	* gui/oprof_start.cpp:
+	* gui/oprof_start_config.h:
+	* gui/oprof_start_config.cpp: support the above
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml: doc the above
+
+2003-03-04  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: allow --version, --help early on
+
+2003-03-04  John Levon  <levon@movementarian.org>
+
+	* libop/op_events.c: alter the parser to give file/linenr on
+	  error, and handle more whitespace.
+
+2003-03-04  John Levon  <levon@movementarian.org>
+
+	* gui/oprof_start.cpp:
+	* gui/oprof_start.h:
+	* gui/oprof_start_config.cpp:
+	* gui/oprof_start_config.h:
+
+	* libutil++/string_manip.h:
+	* libutil++/string_manip.cpp: add is_prefix(),
+	  make the trimmers take an argument
+
+2003-03-04  John Levon  <levon@movementarian.org>
+
+	* gui/oprof_start.cpp:
+	* gui/oprof_start.h:
+	* gui/oprof_start_config.cpp:
+	* gui/oprof_start_config.h:
+	* gui/persistent_config.h:
+
+	* libutil++/string_manip.h:
+	* libutil++/string_manip.cpp: add split(), tobool(), touint()
+
+	* utils/opcontrol: don't write BUF_SIZE twice. Write
+	  RTC_VALUE properly. Write KERNEL_ONLY
+
+2003-03-03  John Levon  <levon@movementarian.org>
+
+	* gui/oprof_start.cpp: use --ctrX-event=none,
+	  --separate=none. --pid/pgrp-filter=0 was already
+	  being done.
+
+2003-03-03  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml:
+	* doc/opcontrol: add --ctrX-event=none
+
+2003-03-03  Will Cohen  <wcohen@redhat.com>
+
+	* gui/oprof_start.cpp (oprof_start::on_start_profiler): Limit
+	  check to only utm_bitmask.
+
+2003-03-03  Will Cohen  <wcohen@redhat.com>
+
+    * events/ia64.itanium2.events:
+    * events/ia64.itanium2.unit_masks: Add Itanium 2 events.
+
+2003-03-03  Will Cohen  <wcohen@redhat.com>
+
+    * libop/op_events.h:
+    * libop/op_events.c: Correct checking for the number of unit
+      masks.
+
+2003-03-03  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml: another round of cleanups
+
+	* pp/op_merge.cpp: --counter not --use-counter,
+	  for consistency
+
+2003-03-03  John Levon  <levon@movementarian.org>
+
+	Patch from Chris Moller, modified.
+
+	* dae/opd_proc.c:
+	* dae/opd_sample_files.c:
+	* daemon/opd_image.c:
+	* daemon/opd_sample_files.c:
+	* libabi/abi_test.cpp:
+	* libabi/op_import.cpp:
+	* libdb/db_hash.h:
+	* libdb/db_insert.c:
+	* libdb/db_manage.c:
+	* libdb/db_test.c:
+	* pp/counter_profile.cpp:
+	* pp/op_merge.cpp: push asserts in libdb down into
+	  the clients.
+
+2003-03-03  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml:
+	* doc/oprofile.1.in:
+	* utils/opcontrol: add --separate=none, --pid/pgrp-filter=non
+
+2003-03-03  John Levon  <levon@movementarian.org>
+
+	* configure.in:
+	* doc/Makefile.am:
+	* doc/oprofile.xml:
+	* doc/xsl/xhtml-chunk.xsl.in:
+	* doc/xsl/xhtml.xsl.in:
+	* doc/xsl/xhtml-common.xsl: Add version to the
+	  docs. Some doc cleanups
+
+2003-03-02  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: --separate=library should turn kernel off
+
+2003-03-02  John Levon  <levon@movementarian.org>
+
+	* events/Makefile.am: fix uninstall
+
+2003-03-02  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: more re-workings prodded by aeb
+
+2003-03-02  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_kernel.c: remove /proc/ksyms reading
+
+2003-03-02  John Levon  <levon@movementarian.org>
+
+	* libutil/op_fileio.c: change op_get_line to return
+	  NULL on EOF. Also bump up the default allocation some.
+
+	* dae/opd_kernel.c:
+	* dae/opd_parse_proc.c:
+	* daemon/opd_kernel.c:
+	* libop/op_events.c: changes from the above
+
+2003-03-02  John Levon  <levon@movementarian.org>
+
+	* configure.in:
+	* Makefile.am:
+	* events/: add text files describing the CPU counters
+	  and unit masks. Install them.
+
+	* libop/op_events.h:
+	* libop/op_events.c: remove the bletcherous hard coded
+	  descriptions.
+
+	* module/ia64/op_pmu.c:
+	* module/x86/op_nmi.c: remove another big of validation
+
+	* libutil/op_list.h: make C++ friendly
+
+	* libop/op_cpu_type.h:
+	* libop/op_cpu_type.c: add op_get_cpu_name()
+
+	* libop/Makefile:
+	* libop/op_events_desc.h:
+	* libop/op_events_desc.cpp: removed
+
+	* libop++/op_print_event.cpp:
+	* utils/Makefile.am:
+	* utils/op_help.c:
+	* gui/oprof_start.h:
+	* gui/oprof_start.cpp: changes from above
+
+2003-03-01  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: tweaks
+
+	* utils/opcontrol: scale the default event count. Please
+	  test ...
+
+2003-03-01  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: setup default events. Allow part-setting
+	  using --setup. Fix a help text.
+
+	* doc/oprofile.xml: changes from the above
+
+2003-03-01  John Levon  <levon@movementarian.org>
+
+	* libop/op_cpu_type.c: fix alpha/ev4 mis-detection
+
+2003-03-01  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: expand intro a little, small fixes
+
+2003-03-01  John Levon  <levon@movementarian.org>
+
+	* pp/format_output.cpp: use "%" not "%-age"
+
+2003-02-28  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: fix IS_TIMER setting, noticed by
+	  Duncan Sands
+
+2003-02-28  John Levon  <levon@movementarian.org>
+
+	* configure.in: bump to 0.6cvs
+
+2003-02-28  John Levon  <levon@movementarian.org>
+
+	* doc/Makefile.am: tweak
+
+	* libregex/Makefile.am: fix make dist
+
+2003-02-27  John Levon  <levon@movementarian.org>
+
+	* configure.in: bump to 0.5.1
+
+2003-02-27  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: clarify --separate=kernel
+
+2003-02-25  John Levon  <levon@movementarian.org>
+
+	* configure.in: clarify --with-kernel-support
+
+	* libop/op_events.c:
+	* module/x86/op_nmi.c:
+	* module/ia64/op_nmi.c: remove sanity checking - it's
+	  the wrong place to have such code, is a barrier to op_events
+	  cleanup, and makes life harder for NDAers.
+
+2003-02-25  Will Cohen <wcohen@redhat.com>
+
+	* utils/opcontrol (do_deinit): Correct search for /dev/oprofile.
+
+2003-02-24  Dave Jones <davej@codemonkey.org.uk>
+
+	* module/x86/op_apic.[c|h]: move NMI gate setup to architecture
+	  specific SET_NMI_GATE macro. x86=no change.
+	  Make x86-64 use the kernels _set_gate instead of its own open
+	  coded variant.
+
+2003-02-23  John Levon  <levon@movementarian.org>
+
+	* version-1.h.in: another rename
+
+2003-02-23  John Levon  <levon@movementarian.org>
+
+	* configure.in: set up OP_DATADIR and OP_BINDIR
+
+	* gui/oprof_start.cpp:
+	* libregex/demangle_symbol.cpp: use the above
+
+	* version_tpl.h.in: move to ...
+
+	* version.h.in.in: ... here
+
+2003-02-23  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* configure.in: add AX_COPY_IF_CHANGE() use it to generate version.h
+	* .cvsignore: update
+
+	* gui/Makefile.am:
+	* gui/oprof_start.cpp:
+	* libregex/Makefile.am:
+	* libregex/demangle_symbol.cpp: don't use -DBINDIR, rather include
+	  version.h to get install path
+
+2003-02-23  John Levon  <levon@movementarian.org>
+
+	* README: quick start build insns
+
+2003-02-23  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* libregex/Makefile.am: install stl.pat in $prefix/share/oprofile
+	* libregex/demangle_symbol.cpp: use DATADIR not BINDIR
+	* libregex/magle-name.txt: add test for pointer
+	* libregex/stl.pat: partial support for pointer
+
+2003-02-23  John Levon  <levon@movementarian.org>
+
+	* autogen.sh: error out if options passed
+
+2003-02-23  John Levon  <levon@movementarian.org>
+
+	* libregex/op_regex.h:
+	* libregex/regex_test.cpp: fix std::
+
+2003-02-23  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/demangle_symbol.cpp:
+	* libutil++/demangle_symbol.h: move to
+	* libregex/demangle_symbol.cpp:
+	* libregex/demangle_symbol.h: here to avoid circular reference between
+	  libutil++ and libregex
+	* libregex/Makefile.am:
+	* libutil++/Makefile.am: update according to file move
+
+	* pp/Makefile.am:
+	* pp/op_time.cpp:
+	* pp/op_time_options.cpp:
+	* pp/op_to_source.cpp:
+	* pp/op_to_source_options.cpp:
+	* pp/oprofpp.cpp:
+	* pp/oprofpp_options.cpp: add -D --Demangle options enabling C++
+	  demangled name filtering.
+
+2003-02-23  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/string_manip.h:
+	* libutil++/string_manip.cpp: trim(), ltrim(), rtrim() new functions
+
+	* Makefile.am: handle libregex directory
+	* configure.in: handle libregex/Makefile
+
+	* libregex/.cvsignore:
+	* libregex/Makefile.am :
+	* libregex/mangled-name.txt:
+	* libregex/op_regex.cpp:
+	* libregex/op_regex.h:
+	* libregex/regex_test.cpp:
+	* libregex/stl.pat: new file implementing a match and replace regular
+	  expression around glibc regex. Not used for now, next commit will
+	  use this for pp tools C++ name demangling.
+
+2003-02-22  John Levon  <levon@movementarian.org>
+
+	* configure.in: fix X, non-Qt build case
+
+2003-02-22  John Levon  <levon@movementarian.org>
+
+	* libutil++/Makefile.am: fix make dist
+
+2003-02-21  Dave Jones <davej@codemonkey.org.uk>
+
+	* configure.in: Enable building on hammer again.
+
+2003-02-21  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: "Params used" was lying
+
+2003-02-20  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_image.c: Fixed a bitch of a bug with separate-kernel,
+	  now attribution of kernel samples should be more accurate
+
+2003-02-20  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: set LIB_SAMPLES if KERNEL_SAMPLES in .daemonrc
+
+2003-02-20  John Levon  <levon@movementarian.org>
+
+	* dae/opd_stats.h:
+	* dae/opd_stats.c:
+	* daemon/opd_stats.h:
+	* daemon/opd_stats.c:
+	* dae/opd_proc.c:
+	* daemon/opd_image.c: remove unused OPD_SAMPLE_COUNTS. Actually
+	  count samples for 2.5
+
+2003-02-20  John Levon  <levon@movementarian.org>
+
+	* libop/op_interface_25.h:
+	* daemon/opd_kernel.c: implement module dropping
+
+	* daemon/opd_image.c:
+	* daemon/opd_kernel.c: attempt to make verbose logs
+	  less confusing
+
+2003-02-22  Dave Jones <davej@codemonkey.org.uk>
+
+	* libop/op_events.c: segregload is utm_mask not utm_exclusive
+
+2003-02-20  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* pp/output_format.h:
+	* pp/output_format.cpp:
+	* pp/op_time.cpp:
+	* pp/oprofpp.cpp:
+	* pp/opp_symbol.h: better handling of 64/32 bits bfd_vma
+	  in output
+
+2003-02-20  John Levon  <levon@movementarian.org>
+
+	* libutil++/op_exception.h:
+	* libutil++/op_exception.cpp: throw() where needed
+
+2003-02-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* daemon/opd_image.h:
+	* daemon/opd_image.cpp:
+	* daemon/opd_kernel.cpp: fix thinko with --separate=kernel resulting
+	  in duplicate opening of the same samples file.
+
+2003-02-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_exception.h:
+	* libutil++/op_exception.cpp: new files, base class for exception.
+	  Not used for now.
+
+2003-02-19  John Levon  <levon@movementarian.org>
+
+	* acinclude.m4: update from upstream
+
+	* gui/ui/oprof_start.base.ui:
+	* gui/oprof_start.cpp: separate --setup,--start.
+	  Hide non-2.5 stuff in 2.5.
+
+2003-02-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* dae/opd_sample_files.c:
+	* daemon/opd_sample_files.c: opd_handle_old_sample_file() don't
+	  try to delete old samples files if they don't exist.
+
+2003-02-18  Will Cohen  <wcohen@redhat.com>
+
+	* utils/opcontrol (do_options): Better option error checking.
+
+2003-02-17  Will Cohen  <wcohen@redhat.com>
+
+	* pp/format_output.h (show_help): namespace std.
+
+2003-02-17  Will Cohen  <wcohen@redhat.com>
+
+	* TODO: update.
+
+2003-02-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	From Anton Blanchard :
+
+	* daemon/opd_image.c: cookie_t fix for 64 bits
+
+2003-02-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* libopt++/popt_options.cpp:
+	* libopt++/popt_options.h: handle an user specific additional
+	  help string
+
+	* pp/output_format.h:
+	* pp/output_format.cpp:
+	* pp/op_time_options.cpp:
+	* pp/oprofpp_options.cpp: use it to show in --output_format
+	  options details.
+
+2003-02-14  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml:
+	* pp/oprofpp_options.cpp: allow --show-shared-libs with -s
+
+2003-02-13  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* TODO: update
+
+	* pp/output_format.h:
+	* pp/output_format.cpp: fix #686272, crash when using
+	  oprofpp -s symb_name.
+
+2003-02-13  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_kernel.h:
+	* dae/opd_image.h:
+	* dae/opd_image.c: don't use hash entry zero for kernel image
+	 fix #686175
+
+2003-02-13  Will Cohen  <wcohen@redhat.com>
+
+	* daemon/opd_cookie.h(opd_nr_lookup_dcookie): Correct number.
+
+2003-02-13  Will Cohen  <wcohen@redhat.com>
+
+	* daemon/opd_cookie.h(opd_nr_lookup_dcookie): Add x86_64.
+
+2003-02-13  John Levon  <levon@movementarian.org>
+
+	* dae/opd_image.c: little cleanup and fix error message
+	  to not lie
+
+2003-02-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml: enhance doc about --separate=kernel
+
+	* utils/opcontrol: handle gracefully opcontrol --deinit if profiler
+	  was already shutdown. Avoid wrong warning when umount /dev/oprofile
+
+2003-02-12  Will Cohen  <wcohen@redhat.com>
+
+	* gui/oprof_start.cpp (oprof_start::oprof_start,
+	    oprof_start::on_flush_profiler_data,
+	    oprof_start::on_start_profiler,
+	    oprof_start::on_stop_profiler): Use opcontrol.
+	* gui/oprof_start_util.cpp (daemon_status::daemon_status):
+	    Allow reading interrupt info from new kernel interface.
+	* libop/op_get_interface.c: New.
+	* libop/Makefile.am: Add libop/op_get_interface.c.
+	* libop/op_cpu_type.h: Add enum op_interface.
+
+	I Added some bits. Phil
+	* gui/oprof_start.cpp: correct --separate= handling
+	* gui/oprof_start_util.cpp: read only the real number of interrupts
+
+2003-02-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/opcontrol: handle --note-table-size --kernel-only (2.4 kernel)
+
+2003-02-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/op_start: map --separate-samples to daemon option
+	  --separate-lib-samples.
+
+2003-02-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* dae/opd_image.c:
+	* dae/opd_kernel.c:
+	* dae/opd_kernel.h:
+	* dae/opd_parse_proc.c:
+	* dae/opd_proc.c:
+	* dae/opd_proc.h:
+	* dae/opd_sample_files.c:
+	* dae/oprofiled.c:
+	* daemon/opd_image.c:
+	* daemon/opd_image.h:
+	* daemon/opd_kernel.c:
+	* daemon/opd_kernel.h:
+	* daemon/opd_sample_files.c:
+	* daemon/oprofiled.c: per application kernel samples files
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml: document opcontrol --separate=kernel
+
+	* gui/oprof_start.cpp:
+	* gui/oprof_start_config.cpp:
+	* gui/oprof_start_config.h:
+	* gui/ui/oprof_start.base.ui: remove ignore_daemon checkbox, handle
+	  --separate=[library|kernel]
+
+	* libop/op_sample_file.h: add separate_kernel_samples field, file
+	  format is backward compatible
+
+	* libabi/abi.cpp:
+	* libabi/abi_test.cpp:
+	* libabi/op_import.cpp: handle new samples file header field
+
+	* pp/counter_profile.cpp: dump new sample files header field.
+
+	* utils/opcontrol: handle --separate=kernel
+
+2003-02-09  Will Cohen  <wcohen@redhat.com>
+
+	* utils/opcontrol: Add rtc-value option.
+
+2003-02-09  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: stale lock file detection
+
+2003-02-06  Will Cohen  <wcohen@redhat.com>
+
+	* utils/opcontrol (do_dump): Do not exit if no daemon.
+
+2003-02-06  Will cohen  <wcohen@redhat.com>
+
+	* doc/oprofile.1.in: Update man page information.
+
+2003-02-03  John Levon  <levon@movementarian.org>
+
+	* configure.in: 0.6cvs
+
+2003-02-02  John Levon  <levon@movementarian.org>
+
+	* configure.in: bump to 0.5
+
+2003-02-02  John Levon  <levon@movementarian.org>
+
+	* configure.in: disable x86_64
+
+2003-02-02  John Levon  <levon@movementarian.org>
+
+	* pp/format_output.cpp: revert previous patch, Phil's
+	  x86 binutils is built with 64-bit bfd_vma
+
+2003-02-01  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: rename --separate-samples to --separate=library
+	  for future proofing.
+
+	* pp/format_output.cpp: output vma at a suitable width
+
+2003-01-31  Will Cohen  <wcohen@redhat.com>
+
+	* utils/opcontrol(get_kernel_range): Match only .text segment.
+
+2003-01-31  Graydon Hoare  <graydon@redhat.com>
+
+	* libabi/abi.cpp
+	* libabi/abi_test.cpp
+	* libabi/op_import.cpp: Treat endianness as a property of the datum
+	being imported, rather than the memory architecture.
+
+2003-01-31  Dave Jones <davej@codemonkey.org.uk>
+
+	* module/x86/op_model_athlon.c: Don't poke reserved bits in the counter.
+	  Only rdmsr/wrmsr counters that we've enabled in the NMI handler.
+	  ulong->uint conversion.
+
+2003-01-30  Philippe Elie  <phil.el@wanadoo.fr>
+
+	From Randolph Chung :
+
+	* daemon/opd_cookie.h: add parisc support
+
+2003-01-30  John Levon  <levon@movementarian.org>
+
+	From Anton Blanchard :
+
+	* daemon/opd_cookie.h: add ppc32/64
+
+	* utils/op_start_25: fix start of kernel for ppc
+
+2003-01-30  Will Cohen  <wcohen@redhat.com>
+
+	* utils/opcontrol(get_kernel_range): Avoid using perl arithmetic.
+
+2003-01-29  Dave Jones <davej@codemonkey.org.uk>
+
+	* utils/opcontrol: Trying to use the options --pid-filter=pid and
+	  --pgmr-filter=pgmr, opcontrol returned "command not found.
+	  This was due to 2 missing 'test' statements.
+	
+2003-01-29  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/op_to_source.cpp: read vma with strtoull not strtoul fixing
+	  32/64 failure to read output of objdump
+
+2003-01-29  Dave Jones <davej@codemonkey.org.uk>
+
+	* libop/op_cpu_type.c: Clue the user in on why the cpu type isn't
+	  recognised, by suggesting the module wasn't loaded.
+	* libop/op_events.c: Doh, unit masks use bit numbers, not values.
+
+2003-01-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/op_help.c: get cpu type only if not forced on command line.
+	  Avoid wrong warning about unsupported cpu type.
+
+2003-01-27  Will Cohen  <wcohen@redhat.com>
+
+	* daemon/opd_cookie.h(opd_nr_lookup_dcookie): Add ia64 version.
+
+2003-01-27  Dave Jones <davej@codemonkey.org.uk>
+
+	* libop/op_events.c: K8 HT events are utm_exclusive, not utm_bitmask
+	* libop/op_events.c: Add additional K8 unit masks.
+
+2003-01-23  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_interface_25.h:
+	* daemon/opd_image.c: prepare drop modules support. exit() when
+	  receiving unknown escape code.
+
+2003-01-23   Randolph Chung  <tausq@debian.org>
+
+	Added minor change: backward compatibility, u_int to uint, fix
+	32/64 bits escape code marker comparison. Phil
+
+	* libop/op_interface_25.h:
+	* daemon/opd_kernel.c:
+	* daemon/opd_image.c: new scheme to recognize kernel or user space
+	  eip, now kernel module pass the relevent information through
+	  escape sequence.
+
+2003-01-21  Dave Jones <davej@codemonkey.org.uk>
+
+	* libop/op_events.c: Add unit mask for Hypertransport events.
+
+2003-01-21  Dave Jones <davej@codemonkey.org.uk>
+
+	* libop/op_events.c: Add x86-64 specific events.
+
+2003-01-21  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_kernel.c: use sscanf to parse /proc/modules
+
+2003-01-20  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_kernel.c: more robust /proc/modules parsing.
+
+2003-01-20  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_kernel.c: 2.5 modules support, for now I keep
+	  the code for /proc/ksyms parsing in daemon. Let's it living a few
+	  weeks please.
+
+2003-01-18  Falk Hueffner  <falk@debian.org>
+
+	I added to the original patch all %L to %ll, Phil
+
+	* daemon/opd_image.c:
+	* daemon/opd_kernel.c:
+	* libutil/op_types.h: 64 bits printf/scanf safety.
+
+2003-01-18  Falk Hueffner  <falk@debian.org>
+
+	* libop/op_cpu_type.h:
+	* libop/op_cpu_type.c: add Alpha CPU families.
+	* libop/op_events.h: make op_event.cpu_mask u32, since we now have
+	  more than 16 CPU types
+	* libop/op_hw_config.h: bump OP_MAX_COUNTERS to 20 for Alpha
+	* libop/op_events.c: add Alpha events
+	* daemon/opd_cookie.h: add dcookie syscall number for Alpha
+	* utils/op_help.c (main): add help string for Alpha
+
+2003-01-18  John Levon  <levon@movementarian.org>
+
+	* module/Makefile.in:
+	* module/x86/Makefile.in:
+	* module/ia64/Makefile.in: kernel headers are too fubar
+	  for -Werror. So I'm taking my ball home.
+
+2003-01-17  John Levon  <levon@movementarian.org>
+
+	* HACKING:
+	* doc/CodingStyle: add
+
+2003-01-17  John Levon  <levon@movementarian.org>
+
+	* TODO: some updates
+
+2003-01-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* module/x86/op_model_p4.c: pmc_setup_one_p4_counter() show clearly
+	  than event == 0 is an error
+
+2003-01-15  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: prefer oprofiled/op_help binaries in the same
+	  dir as opcontrol
+
+2003-01-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_events.c: rename OP_P4_HT2 to OP_P4_ALL
+
+2003-01-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop++/op_print_event.cpp: no event,nor unit mask for CPU_TIMER_INT,
+	  problem reported by Ka Fai Lu.
+
+2003-01-12  John Levon  <levon@movementarian.org>
+
+	From Graydon Hoare
+
+	* libop/op_cpu_type.h:
+	* libop/op_cpu_type.c: add P4 HT
+
+	* libop/op_events.c: tag P4 HT events
+
+2003-01-11   Randolph Chung  <tausq@debian.org>
+
+	* daemon/oprofiled.c: fix ELF sniff
+
+2003-01-11  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_image.c: bail out immediately on dcookie
+	  lookup failure.
+
+2003-01-10  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_cookie.h: insulate against missing arch support
+	  for sys_lookup_dcookie
+
+	* daemon/opd_image.c: use the above
+
+2003-01-10  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_image.c:
+	* daemon/oprofiled.c: move complete_dump to a better place
+
+2003-01-10  John Levon  <levon@movementarian.org>
+
+	* libutil/op_types.h: add cookie_t and vma_t
+
+	* daemon/opd_image.c:
+	* daemon/opd_image.h:
+	* daemon/opd_kernel.c:
+	* daemon/opd_kernel.h: use above types, and kernel_pointer_size
+
+	* daemon/oprofiled.c: sniff /proc/kcore for kernel_pointer_size
+
+2003-01-10  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libopt++/popt_options.cpp:
+	* libopt++/popt_options.h: work-around to support both gcc new parser
+	  and gcc 2.95
+
+2003-01-08  John Levon  <levon@movementarian.org>
+
+	* libop/op_type.cpp: support for ascii-string cpu types
+
+2003-01-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.cpp:
+	* libutil++/op_bfd.h:
+	* pp/oprofpp.cpp: more use of bfd_vma
+
+2003-01-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/Makefile.am: fix include dir
+	* libdb/db_test.c: don't assume than sizeof(struct opd_header) == 128
+
+2003-01-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.h: fix for 64 bits.
+
+2003-01-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libabi/abi.cpp:
+	* libabi/op_import.cpp: broken by my last change in libdb.
+
+2003-01-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* db/db_hash.h: do_hash() use db_key_t as parameter
+
+2003-01-04  John Levon  <levon@movementarian.org>
+
+	* pp/op_time.cpp: suggest opcontrol --dump instead
+
+	* utils/opcontrol: implement --start-daemon. Fix a number
+	  of bugs
+
+	* doc/oprofile.xml:
+	* doc/oprofile.1.in: document --start-daemon
+
+2003-01-03  Will Cohen  <wcohen@redhat.com>
+
+	* daemon/oprofiled.c (opd_do_samples): Typecast to match
+	  arguments.
+
+See ChangeLog-2002 for earlier changelogs.
diff --git a/oprofile-0.9.7/ChangeLog-2004 b/oprofile-0.9.7/ChangeLog-2004
new file mode 100644
index 0000000..e04b10b
--- /dev/null
+++ b/oprofile-0.9.7/ChangeLog-2004
@@ -0,0 +1,1034 @@
+2004-12-25  Will Cohen  <wcohen@redhat.com>
+
+	* events/Makefile.am: Corrected type for events_files.
+
+2004-12-12  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: expand list of supported CPU types.
+
+2004-12-12  Ralf Baechle  <ralf@linux-mips.org>
+
+	* daemon/opd_cookie.c: Define __NR_lookup_dcookie for all three
+	  supported MIPS ABIs.
+
+	* events/mips/r10000/events:
+	* events/mips/r10000/unit_masks:
+	* events/mips/r12000/events:
+	* events/mips/r12000/unit_masks:
+	* events/mips/r5432/events:
+	* events/mips/r5432/unit_masks:
+	* events/mips/r5500/events:
+	* events/mips/r5500/unit_masks:
+	* events/mips/rm7000/events:
+	* events/mips/rm7000/unit_masks:
+	* events/mips/rm9000/events:
+	* events/mips/rm9000/unit_masks:
+	* events/mips/sb1/events:
+	* events/mips/sb1/unit_masks:
+	* events/Makefile.am:
+	* libop/op_events.c:
+	* utils/op_help.c:
+	* libop/op_cpu_type.h:
+	* libop/op_cpu_type.c: Add support for the MIPS R10000 and R12000,
+	  QED RM7000 and PMC-Sierra RM9000, NEC VR5432 and VR5500 and Sibyte SB1
+	   processors.
+
+	* README: List myself as the caretaker of the MIPS bits.
+
+2004-11-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_events.c: simplify a bit get_mapping()
+
+2004-11-20  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_stats.c: some statistics are useless, don't print them
+	  if we can't read the oprofilefs files.
+
+2004-11-20  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_sfile.c: sfile_clear_kenel() : clear also callgraph
+	  file depending on module.
+
+2004-11-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_sfile.h:
+	* daemon/opd_sfile.c: fix #971487, daemon was unable to retrieve
+	  correctly callgraph sample file for kernel space samples. Fixed by
+	  adding relevant information to cg_hash_entry.
+
+	* libpp/callgraph_container.cpp: more verbosity
+
+2004-11-19  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: Fix AMD link (noticed by Emmanuel Araman).
+
+2004-11-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opgprof.cpp: ensure we load all callgraph file
+
+2004-11-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/locate_images.cpp: ensure error is always set,
+	  callgraph_container was using an uninitialized value.
+
+2004-11-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.cpp: improve a bit the symbol chosen when
+	  multiple symbol live at same vma
+
+2004-11-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/oprofile.xml: some words about UP kernel > 2.6.9 and the need of
+	  lapic at boot.
+
+2004-11-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/common_option.h:
+	* pp/common_option.cpp: move threshold option from here ...
+	* pp/opannotate_options.cpp:
+	* pp/opgprof_options.cpp:
+	* pp/opreport_options.cpp:
+	* pp/opstack_options.cpp: to each of these file using it. Side effect
+	  is to remove this option from oparchive which didn't handle it.
+	
+	* doc/oparchive.1.in:
+	* doc/oprofile.xml: there isn't any --threshold option to oparchive
+
+2004-11-07  Kristis Makris  <kristis.makris@asu.edu>
+
+	* doc/internals.xml: fix typo
+
+2004-11-01  Maynard Johnson  <maynardj@us.ibm.com>
+
+	* events/ppc64/970/events: Make min count 10000 for all PM_INST_CMPL;
+	  and remove redundant event in group 2
+	* events/ppc64/power4/event_mappings: Set LSB of MMCRA so kernel kludge
+	  can be removed at some later date
+	* events/ppc64/power4/events: Make min counts consistent with ppc970
+	* events/ppc64/power5/events: Make min counts consistent with ppc970	  
+
+2004-11-01  Greg Banks  <gnb@melbourne.sgi.com>
+
+	* libop/op_events.c: Make the default sample rate for
+	  IA64 sensible (i.e. 10 times smaller).
+
+2004-10-15  Will Cohen  <wcohen@redhat.com>
+
+	* events/ppc64/power4/events: Corrected group 4 counter assignments.
+
+2004-10-15  Maynard Johnson  <maynardj@us.ibm.com>
+
+	* events/Makefile.am:
+	* events/ppc64/970/event_mappings:
+	* events/ppc64/970/events:
+	* events/ppc64/970/unit_masks:
+	* libop/op_cpu_type.c:
+	* libop/op_cpu_type.h:
+	* libop/op_events.c:
+	* utils/op_help.c:
+	* utils/opcontrol: Added ppc64/970 support.
+
+2004-10-14  Greg Banks  <gnb@melbourne.sgi.com>
+
+	* configure.in:
+	* daemon/opd_perfmon.c: autoconf for sched_setaffinity
+	  and perfmonctl, fix sched_setaffinity call for early
+	  2.6 kernels
+
+2004-10-07  Will Cohen  <wcohen@redhat.com>
+
+	* utils/opcontrol: Correct ppc64 check that events are in same group.
+
+2004-09-21  Will Cohen  <wcohen@redhat.com>
+
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp: Add logic to use the preferred symbol name.
+
+2004-09-17  John Levon  <levon@movementarian.org>
+
+	* utils/op_help.c: don't deref a NULL pointer
+	  on failure to read /dev/oprofile/cpu_type
+
+2004-09-17  Anton Blanchard  <anton@samba.org>
+
+	* libop/op_events.c: fix compile warnings
+
+2004-09-16  John Levon  <levon@movementarian.org>
+
+	* m4/configmodule.m4: disable x86-64 on 2.4
+
+2004-09-15  Maynard P. Johnson  <maynardj@us.ibm.com>
+
+	* events/Makefile.am:
+	* libop/op_cpu_type.h:
+	* libop/op_events.h:
+	* libop/op_events.c:
+	* utils/op_help.c:
+	* utils/opcontrol: PPC64 support
+	
+2004-09-13  John Levon  <levon@movementarian.org>
+
+	* configure.in: bump to 0.8.2cvs
+
+2004-09-11  John Levon  <levon@movementarian.org>
+
+	* configure.in: bump to 0.8.1
+
+2004-09-11  John Levon  <levon@movementarian.org>
+
+	* libpp/locate_images.h: doxygen for archive_path
+
+2004-08-18  Will Cohen  <wcohen@redhat.com>
+
+	* doc/oprofile.xml: List default events in documentation.
+
+2004-08-12  John Levon  <levon@movementarian.org>
+
+	* libutil++/op_bfd.cpp: we need to verify
+	functionname is non-NULL in *both* places
+
+2004-08-12  John Levon  <levon@movementarian.org>
+
+	* libutil++/op_bfd.cpp: add a hack to support
+	Objective C
+
+2004-07-21  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/db_manage.c: thinko in #931871 bug fix.
+
+2004-07-21  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/arrange_profiles.cpp: fix opreport -m lib, broken in 0.8
+	  when using opcontrol --separate=kernel with message
+	  "add_to_profile_sample_files(): sample file parsed twice"
+
+2004-07-18  John Levon  <levon@movementarian.org>
+
+	* libop/op_mangling.c: dep image always used
+	'{root}' token
+
+2004-07-15  John Levon  <levon@movementarian.org>
+
+	* doc/internals.xml: document some more
+
+2004-07-09  John Levon  <levon@movementarian.org>
+
+	* libpp/populate.cpp: quash timestamp warnings
+	 when using archive: profile specifier
+
+2004-07-09  John Levon  <levon@movementarian.org>
+
+	* pp/opstack_options.cpp: include call-graph
+	  files in archive.
+
+2004-07-06  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.1.in:
+	* doc/oprofile.xml:
+	* libpp/profile_spec.h:
+	* libpp/profile_spec.cpp: remove sample-file
+	  and binary profile specifiers
+
+	* doc/opcontrol.1.in:
+	* doc/oprofile.xml:
+	* pp/common_option.cpp:
+	* utils/opcontrol: allow either "lib" or "library"
+	 for merge/separate option. Document "lib"
+
+2004-07-06  Will Cohen <wcohen@redhat.com>
+
+	* doc/oprofile.xml:
+	* doc/Makefile.am:
+	* doc/oparchive.1.in:
+	* doc/oprofile.1.in:
+	* libpp/profile_spec.cpp:
+	* libpp/profile_spec.h:
+	* libpp/populate.h:
+	* libpp/populate.cpp:
+	* libpp/callgraph_container.cpp:
+	* libpp/callgraph_container.h:
+	* libpp/arrange_profiles.cpp:
+	* libpp/arrange_profiles.h:
+	* libpp/locate_images.cpp:
+	* libpp/locate_images.h:
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp:
+	* libutil++/file_manip.cpp:
+	* libutil++/file_manip.h:
+	* pp/Makefile.am:
+	* pp/oparchive.cpp:
+	* pp/oparchive_options.cpp:
+	* pp/oparchive_options.h:
+	* pp/opreport.cpp:
+	* pp/opreport_options.h:
+	* pp/opreport_options.cpp:
+	* pp/opstack.cpp:
+	* pp/opstack_options.h:
+	* pp/opstack_options.cpp:
+	* pp/opannotate_options.cpp:
+	* pp/opannotate_options.h:
+	* pp/opgprof.cpp:
+	* pp/opgprof_options.cpp:
+	* pp/opgprof_options.h:
+	* pp/opannotate.cpp:
+	* configure.in: Support for oparchive.
+
+2004-07-05  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.1.in: add opstack(1) to SEE ALSO
+
+2004-06-21  John Levon  <levon@movementarian.org>
+
+	* events/i386/p4/events:
+	* events/i386/p4-ht/events:
+	* module/x86/op_model_athlon.c:
+	* module/x86/op_model_p4.c:
+	* module/x86/op_model_ppro.c:
+	* module/ia64/op_pmu.c: fix bug 964097 (event
+	code of 0x00 doesn't work) by relying consistently
+	on "enabled" not "event"
+
+2004-05-29  John Levon  <levon@movementarian.org>
+
+	* libdb/tests/Makefile.am: fix build
+
+	* daemon/opd_mangling.c:
+	* daemon/opd_mangling.h:
+	* daemon/opd_sfile.c:
+	* daemon/opd_sfile.h:
+	* daemon/liblegacy/opd_sample_files.h:
+	* libabi/abi.cpp:
+	* libabi/abi_test.cpp:
+	* libabi/op_import.cpp:
+	* libdb/Makefile.am:
+	* libdb/db_debug.c:
+	* libdb/db_insert.c:
+	* libdb/db_manage.c:
+	* libdb/db_stat.c:
+	* libdb/db_travel.c:
+	* libdb/odb.h:
+	* libdb/odb_hash.h:
+	* libdb/tests/db_test.c:
+	* libpp/op_header.cpp:
+	* libpp/profile.cpp:
+	* libpp/profile.h: s/samples_odb_t/odb_t/, move
+	odb_hash.h to odb.h
+
+2004-05-28  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_mangling.cpp:
+	* daemon/opd_sfile.cpp:
+	* daemon/liblegacy/opd_proc.c:
+	* daemon/liblegacy/opd_sample_files.c:
+	* libabi/abi_test.cpp:
+	* libabi/op_import.cpp:
+	* libdb/db_manage.cpp:
+	* libdb/odb_hash.h:
+	* libpp/profile.cpp: introduce and use odb_get_data(),
+	odb_open_count()
+
+2004-05-28  John Levon  <levon@movementarian.org>
+
+	* libpp/callgraph_container.cpp:
+	* libpp/arrange_profiles.cpp: trivialities
+
+2004-05-28  Bin Ren  <bin.ren@cl.cam.ac.uk>
+
+	* daemon/opd_mangling.c:
+	* daemon/opd_sfile.c:
+	* daemon/oprofiled.c:
+	* daemon/liblegacy/opd_image.c:
+	* daemon/liblegacy/opd_proc.c:
+	* daemon/liblegacy/opd_sample_files.c:
+	* libdb/db_debug.c:
+	* libdb/db_insert.c:
+	* libdb/db_manage.c:
+	* libdb/db_stat.c:
+	* libdb/odb_hash.h:
+	* libdb/db_travel.c:
+	* libpp/op_header.cpp:
+	* libpp/profile.cpp:
+	* libutil/op_string.c:
+	* libutil/op_string.h: fix dcookie alias bug by
+	  introducing one level of indirection and hash
+	  sample files by path names (bug #931871)
+
+2004-05-11  John Levon  <levon@movementarian.org>
+
+	* libutil++/file_manip.h: clarify behaviour of
+	  op_realpath()
+
+	* libpp/opannotate.cpp: add some checks to avoid
+	  creating files outside of the output directory
+
+2004-05-11  Andi Kleen  <ak@suse.de>
+
+	* libpp/callgraph_container.cpp:
+	* libpp/profile_container.cpp:
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp: use unsigned long in various
+	  places - u32 was breaking 64-bit usage
+
+2004-05-11  John Levon  <levon@movementarian.org>
+
+	* configure.in: bump to 0.8.1cvs
+
+2004-05-07  John Levon  <levon@movementarian.org>
+
+	* configure.in: bump to 0.8
+
+2004-05-07  John Levon  <levon@movementarian.org>
+
+	* libpp/filename_spec.h:
+	* libpp/filename_spec.cpp:
+	* libpp/profile_spec.cpp: "dependant" not "dependent"
+
+2004-04-19  Will Cohen  <wcohen@redhat.com>
+
+	* events/i386/p4/unit_masks:
+	* events/i386/p4-ht/unit_masks: Correct machine_clear unit mask.
+
+2004-04-04  Will Cohen  <wcohen@redhat.com>
+
+	* m4/builtinexpect.m4:
+	* m4/compileroption.m4:
+	* m4/configmodule.m4:
+	* m4/copyifchange.m4:
+	* m4/docbook.m4:
+	* m4/extradirs.m4:
+	* m4/findkernel.m4:
+	* m4/kerneloption.m4:
+	* m4/kernelversion.m4:
+	* m4/mallocattribute.m4:
+	* m4/poptconst.m4:
+	* m4/precompiledheader.m4:
+	* m4/qt.m4:
+	* m4/resultyn.m4:
+	* m4/sstream.m4:
+	* m4/typedef.m4: Add quotes as required for automake 1.8. 
+
+2004-04-04  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: improvements to the call-graph
+	* documentation.
+
+2004-03-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.cpp: remove spurious cerr <<; fix a potential memory
+	  leak
+
+2004-03-28  John Levon  <levon@movementarian.org>
+
+	* libutil++/op_bfd.cpp: fix a BFD leak on format failure. Fix a
+	  small race when the binary changes, and we error fatally
+	  instead of recovering.
+
+2004-03-22  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* module/x86/hammer_op_syscalls.c: use the first map with VM_EXECUTABLE
+	  bit to do the exec notification, this fix a 32 bits application
+	  profiling regression. We dunno exactly what is this second mmap ...
+	  but we must ignore one of these. Fix #921243
+
+2004-03-22  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* module/ia64/op_pmu.c: the way to set pfm_syst_wide and
+	  pfm_dcr_pp changed between 2.4.19 and 2.4.20
+
+2004-03-22  Will Cohen  <wcohen@redhat.com>
+
+	* utils/opcontrol: Correct order of do_init_daemon_vars and
+	decide_orofile_devices.
+	
+2004-03-22  Will Cohen  <wcohen@redhat.com>
+
+	* utils/opcontrol: Tweak error messages and factor out common code.
+
+2004-03-19  Anton Blanchard  <anton@samba.org>
+
+	* daemon/opd_sfile.c: Add function name to some error messages
+
+2004-03-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/opcontrol: tweak a bit error message.
+
+2004-03-03  Will Cohen  <wcohen@redhat.com>
+
+	* utils/opcontrol: Support --dump for normal users.
+
+2004-02-29  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/callgraph_container.cpp: make g++ -D_GLIBCXX_DEBUG happy, see
+	  http://gcc.gnu.org/PR14340
+
+	* module/op_dcache.h:
+	* module/op_dname.c: some gcc version are confused by extern
+	  declaration followed by later static.
+
+2004-02-28  Zwane Mwaikambo  <zwane@linuxpower.ca>
+
+	* libutil++/op_bfd.cpp:
+	* utils/opcontrol: This patch fixes the listing of symbols within the
+	  kernel image on ARM i was having. The problem was due to the fact
+	  that ARM/Linux kernel text starts with a section called .init unlike
+	  all the currently supported Linux architectures. So the solution is
+	  to start at section 0
+
+2004-02-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* module/x86/op_syscalls.c: warning fix
+
+2004-02-23  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/Makefile.am:
+	* daemon/liblegacy/Makefile.am: force daemon build with frame pointer.
+	  If daemon is built w/o frame pointer we get random arc, some of them
+	  go in the vma used by an existing mmaped sample file, so cookie
+	  lookup return a sample filename which is used as a from or to
+	  component, this break pptools by creating invalid filename.  Note
+	  this doesn't protect agaisnt a make CFLAGS=-fomit-frame-pointer.
+
+	* libpp/callgraph_container.cpp: use the right {cg_}image_name for
+	  verbose output.
+
+2004-02-21  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/format_flags.h:
+	* libpp/format_output.cpp:
+	* libpp/format_output.h:
+	* pp/opstack.cpp: alternate output format.
+
+2004-02-20  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/srcdoc/Doxyfile.in: Fix for doxygen 1.3.6
+	* libpp/profile_spec.h:
+	* libutil++/op_bfd.h: minor Doxygen comments fix
+
+2004-02-20  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/tests/string_manip_tests.cpp: fix a $ make check failure
+	  from the last format_percent() change
+
+2004-02-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/format_output.cpp: change output spacing.
+
+2004-02-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opstack_options.h:
+	* pp/opstack.cpp: pass mege_options::lib to callgraph_container
+	* libpp/callgraph_container.cpp:
+	* libpp/callgraph_container.h: handle merge_options::lib
+
+2004-02-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/format_output.cpp: use "self/child" for header
+	* libutil++/string_manip.cpp: format_percent() return "0" if
+	  value == 0.0
+	* libpp/callgraph_container.cpp: remove some dead code.
+
+2004-02-16  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* module/compat24.h:
+	* module/x86/cpu_type.c:
+	* module/x86/op_apic.c:
+	* module/x86/op_model_p4.c:
+	* module/x86/op_nmi.c:
+	* module/x86/op_x86_model.h: backport P4 HyperThreading support from
+	   2.6 to 2.4.
+
+2004-02-16  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* events/i386/p4/events:
+	* events/i386/p4/unit_masks:
+	* events/i386/p4-ht/events:
+	* events/i386/p4-ht/unit_masks: fix MEMORY_COMPLETE unit mask
+
+2004-02-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/profile.cpp: samples_range() throw if start > end
+
+2004-02-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* events/ia64/itanium2/unit_masks: comments
+	* utils/op_help.c: add --callgraph to sanitize min events count
+	* utils/opcontrol: pass --callgraph to op_help
+
+2004-02-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/oprofiled.c: send alarm() after fork not before, behavior
+	  changed between 2.4 and 2.6 and according to posix 2.6 is right.
+
+2004-02-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/op_help.c: output the default unit mask. when querying the
+	  default mask output it in decimal not hexadecimal
+	* libpp/op_header.cpp: event number must be output as integer not as
+	  unsigned char type
+	* libop/op_parse_event.c: clarify error message
+
+	* libop/op_events.c: better validation of unit mask
+	* events/ia64/itanium2/unit_masks:
+	* events/x86-64/hammer/unit_masks: fix so make check pass, done through
+	  documentation reading.
+
+
+2004-02-13  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* events/i386/p4-ht/events: multiply all minimum count by two
+
+2004-02-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_stats.c: handle new statistics added in callgraph patch
+
+2004-02-11  Will Cohen  <wcohen@redhat.com>
+
+	* utils/opcontrol: fix normalise_events for default event.
+
+2004-02-10  Will Cohen  <wcohen@redhat.com>
+
+	* events/i386/p6_mobile/events:
+	* events/i386/p6_mobile/unit_masks:
+	* events/Makefile.am:
+	* libop/op_cpu_type.c:
+	* libop/op_cpu_type.h:
+	* libop/op_events.c:
+	* utils/op_help.c: Add support for Pentium M (Centrino).
+
+2004-02-10  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* events/i386/p4/events: s/instructions/uops/ when appropriate
+	* events/i386/p4/unit_masks: change many bitmask to mandatory,
+	  fix invalid default value, remove mask only used with HyperThreading
+	* events/i386/p4-ht/unit_masks: s/bitmask/mandatory. Remove unused
+	  unit mask
+
+	* libop/op_events.h:
+	* libop/op_events.c: warn if an unit mask is not used (this add a
+	  warning for Itanium2, added in TODO)
+
+	* libop/op_parse_event.c: don't silently accept invalid value as zero
+	  (e.g FOO:3000:0xx21 was accepted as FOO:3000:0x0)
+
+	* utils/opcontrol: mandatory default value was rejected because we
+	  checked the events before getting the default unit mask.
+
+2004-02-08  Zwane Mwaikambo  <zwane@arm.linux.org.uk>
+
+	* daemon/opd_cookie.c: Fix syscall base number.
+
+2004-02-08  Zwane Mwaikambo  <zwane@arm.linux.org.uk>
+
+	* daemon/opd_cookie.c: arm support for timer interrupt
+
+2004-02-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/liblegacy/opd_sample_files.c: op_mangle_filename() presume
+	  mangle_values::dep_name is never NULL, this fix a daemon segfault
+	  with 2.4 kernel
+
+2004-02-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* events/i386/p4/unit_masks:
+	* events/i386/p4-ht/unit_masks: global_power_events need mandatory
+	 unit mask
+
+2004-02-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/arrange_profiles.cpp: re-order function to fix a build problem
+	  with gcc 3.3.1
+
+2004-02-05  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/callgraph_container.cpp: tweak computation of callee_counts
+
+2004-02-05  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/callgraph_container.cpp: Big Thinko (tm), callee samples offset
+	  are unordered
+
+2004-02-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/callgraph_container.cpp:
+	* libpp/format_output.cpp: arc_recorder::get_caller()/get_callee() name
+	  was reversed (caught by Will Cohen)
+
+2004-02-02  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/callgraph_container.cpp:
+	* libpp/callgraph_container.h:
+	* pp/opreport_options.h:
+	* pp/opstack.cpp: implement --threshold
+
+2004-02-02  Will Cohen  <wcohen@redhat.com>
+
+	* libpp/callgraph_container.h:
+	* libpp/format_output.h: missing std:: in header.
+
+2004-02-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/callgraph_container.h:
+	* libpp/callgraph_container.cpp: rewrite populate() and ehance
+	  caller_callee_recorder to support multiple profile classes.
+	* pp/opstack_options.cpp: accept multiple profile class
+
+2004-02-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/callgraph_container.cpp: get correct source filenname liner
+	* libpp/format_output.cpp: re-factorize a bit by moving anon
+	  namespace from format_output:: to ::
+
+2004-02-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/oprofile.xml:
+	* doc/opstack.1.in: document new options
+
+	* libpp/callgraph_container.h:
+	* libpp/callgraph_container.cpp: improve readability, add linenr
+	  debug information recording partially, see TODO
+
+	* libpp/format_output.h: s/formatter/opreport_formatter, define
+	  cg_formatter
+	* libpp/format_output.cpp: implement cg_formatter, factorize some code
+	  in formatter base class
+
+	* pp/opreport.cpp: s/formatter/opreport_formatter
+	* pp/opstack_options.h:
+	* pp/opstack_options.cpp: implement output selection/formatting options
+	* pp/opstack.cpp: use cg_formatter for output.
+
+2004-01-30  Philippe Elie  <phil.el@wanadoo.fr>
+
+	commit not itended but tree is stable so add a ChangeLog ...
+	* libpp/Makefile.am:
+	* libpp/symbol.cpp: new file for output_hint()
+	* libpp/profile_container.cpp: use output_hint()
+	* libpp/callgraph_container.cpp:
+	* libpp/callgraph_container.h:
+	* libpp/symbol.h:
+	* pp/opstack.cpp: get output hint from the callgraph container.
+
+2004-01-29  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/init.c:
+	* daemon/opd_events.c:
+	* daemon/opd_kernel.c:
+	* daemon/opd_mangling.c:
+	* daemon/opd_printf.h:
+	* daemon/opd_sfile.c:
+	* daemon/opd_trans.c:
+	* daemon/oprofiled.c:
+	* daemon/oprofiled.h:
+	* daemon/liblegacy/init.c:
+	* daemon/liblegacy/opd_image.c:
+	* daemon/liblegacy/opd_kernel.c:
+	* daemon/liblegacy/opd_mapping.c:
+	* daemon/liblegacy/opd_parse_proc.c:
+	* daemon/liblegacy/opd_proc.c:
+	* daemon/liblegacy/opd_sample_files.c:
+	* utils/opcontrol: split daemon --verbose, w/o argument it's synonymous
+	  to --verbose=all. Better splitting is welcome
+
+	* daemon/opd_sfile.c: Fix thinko, opcontrol --reset coredump'ed
+
+2004-01-29  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_events.c:
+	* utils/op_help.c: don't use default in switch (cpu_type) to ensure
+	  adding a cpu type will issue a warning where we forget to handle it.
+
+2004-01-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_sfile.c: invert from/to start offset for kernel samples
+
+	* pp/opstack.cpp:
+	* libpp/callgraph_container.h:
+	* libpp/callgraph_container.cpp: if we can't bfd_open a binary and
+	  the sample file show it's a kernel sample file we must ignore
+	  completely the it. (Added to TODO, there is something fragile here)
+
+2004-01-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/image_errors.cpp: typo, warn at first error not from second
+
+2004-01-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/tests/utility_tests.cpp:
+	* libopt++/popt_options.cpp: s/template <class/template <typename/
+
+2004-01-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/init.c: show buffer read only when --verbose
+
+	* libpp/image_errors.cpp:
+	* libpp/image_errors.h: add needed API for callgraph image error
+	* libpp/callgraph_container.cpp: use it.
+	* pp/opstack.cpp: report_image_errors()
+
+2004-01-27  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.cpp: Fix bfd_find_nearest_line() and separate
+	  debug info, please test it.
+
+2004-01-27  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/opcontrol.1.in:
+	* doc/oprofile.xml:
+	* utils/opcontrol: add --cpu-buffer-size and document it.
+
+2004-01-27  Will Cohen  <wcohen@redhat.com>
+
+	* events/i386/p4/unit_masks:
+	* events/i386/p4-ht/unit_masks: correct branch_type unit mask.
+	
+2004-01-25  John Levon  <levon@movementarian.org>
+
+	* doc/Makefile.am: fix make chunk
+
+	* doc/buffers.dia: add editable source
+
+	* doc/buffers.png: fix stupid typos
+
+	* doc/internals.xml: add some more text
+
+2004-01-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/parse_filename.h:
+	* libpp/parse_filename.cpp: profile_spec_equal() new predicate
+	* libpp/arrange_profiles.cpp: use it to ensure we create a new
+	  profile_samples_file when needed.
+
+2004-01-24  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.1.in:
+	* doc/opstack.1.in: some cleanups
+
+	* libop/tests/load_events_files_tests.c:
+	* libop/tests/alloc_counter_tests.c:
+	* libop/op_events.c: rename env var to OPROFILE_EVENTS_DIR
+
+2004-01-20  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_sfile.c: (getfile()) avoid out of bound sf->files[] access
+
+2004-01-20  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/callgraph_container.cpp: tweak comparator to sort arcs.
+	* pp/common_option.cpp: typo.
+
+2004-01-20  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/opannotate.1.in:
+	* doc/opgprof.1.in:
+	* doc/opreport.1.in:
+	* doc/oprofile.xml:
+	* doc/opstack.1.in: document --verbose options a bit
+	* libutil++/cverb.cpp:
+	* libutil++/cverb.h:
+	* pp/common_option.cpp: remove vlevel2 verbose object
+
+2004-01-20  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/cverb.h:
+	* libutil++/cverb.cpp: new cverb handling. most interresting are
+	  --verbose=sfile,bfd,level1 resp. sample filename handling bfd
+	  handling and more verbosity (only for bfd actually)
+
+	* pp/opgprof.cpp: controlled by --verbose==bfd, add level1 to get
+	  verbose symbols.
+	* libpp/callgraph_container.cpp:
+	* libutil++/op_bfd.cpp:
+	* pp/common_option.cpp:
+	* pp/opannotate_options.cpp:
+	* pp/opgprof_options.cpp:
+	* pp/opreport_options.cpp:
+	* pp/opstack_options.cpp: use it
+
+2004-01-19  John Levon  <levon@movementarian.org>
+
+	* libpp/callgraph_container.h:
+	* libpp/callgraph_container.cpp: rename caller_callee_recorder
+	to arc_recorder.
+
+	* doc/CodingStyle: mention trailing comments
+
+	* utils/opcontrol: fix formatting. Error if --note-table-size
+	is passed on 2.6 kernels.
+
+2004-01-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/db_debug.c: fix build on alpha
+	* libpp/callgraph_container.cpp: missing std:: in header
+
+2004-01-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/callgraph_container.cpp: Obviously not2(weak_ordering_function)
+	  is not a weak_ordering function leading to mysterious segfault
+	  during sort.
+
+2004-01-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/opstack.1.in: new file, describe opstack usage
+	* doc/oprofile.xml: describe opstack
+
+2004-01-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.cpp: Don't fix symbol offset for symbol definition
+	  coming from the original file. A corner case remain broken: symbols
+	  definition coming from debug file and belonging to another section
+	  than .text are incorrecttly offseted.
+
+2004-01-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_sample_file.h: with cg file we need two field is_kernel.
+	* daemon/opd_events.c:
+	* daemon/opd_events.h:
+	* daemon/opd_mangling.c:
+	* daemon/liblegacy/opd_sample_files.c: handle cg_to_is_kernel
+
+	* pp/populate.cpp:
+	* pp/populate.h:
+	* pp/image_errors.cpp:
+	* pp/image_errors.h: move this four files to libpp
+
+	* libpp/populate.cpp: we can get empty filename now, ignore them.
+	* libpp/image_error.h: remove this file by moving its contents ...
+	* libpp/image_errors.h here (this two filenames was confusing)
+
+	* libpp/Makefile.am: update according to files move.
+
+	* libpp/arrange_profiles.h:
+	* libpp/arrange_profiles.cpp: Fix find_profile_sample_files(), I was
+	  creating to many profile_sample_files. Add a bunch of operator<<.
+
+	* libpp/callgraph_container.h:
+	* libpp/callgraph_container.cpp:
+
+	* libpp/filename_spec.h: add cg_filename member
+	* libpp/filename_spec.cpp: handle cg_filename, Fix an error in
+	  is_dependant(), I'm a bit nervous about this predicate...
+
+	* libpp/locate_images.h:
+	* libpp/locate_images.cpp: #include fix
+
+	* libpp/parse_filename.cpp: Fix cg filename handling to not trigger
+	  some invalid_filename error with cg filename.
+
+	* libpp/profile.h:
+	* libpp/profile.cpp: we can no longer assume we use u32, so use
+	  odb_key_t in public interface. Add operator== acting on iterator
+
+	* libpp/symbol_container.cpp:
+	* libpp/symbol_container.h: add find(symbol const &);
+	* libpp/profile_container.h:
+	* libpp/profile_container.cpp: add a public interface to iterate over
+	  all smybols and to find a specific symbol
+
+	* libpp/symbol.h: typo, missing include
+
+	* pp/Makefile.am: handle opstack various new files and files move to
+	  libpp.
+
+	* pp/opreport.cpp:
+	* pp/opannotate.cpp: pass symbol_filter as params to populate()
+
+	* pp/opannotate_options.cpp: add verbose output of profile_classes
+	* pp/opgprof_options.cpp:
+	* pp/opreport_options.cpp:
+
+	* pp/opstack.cpp:
+	* pp/opstack_options.cpp:
+	* pp/opstack_options.h: new callgraph utility far to be complete but
+	  enough to start to play with callgraph.
+
+2004-01-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil/op_fileio.c: op_write_file(): allow to write zero byte.
+	* libutil/op_fileio.h: add fatal error for opd_read_int_from_file()
+	* daemon/init.c: add fatal error for opd_read_fs_int
+	* daemon/oprofiled.c:
+	* daemon/oprofiled.h:
+	* daemon/liblegacy/init.c:
+	* daemon/liblegacy/opd_24_stats.c: use this new fatal parameter
+	* daemon/opd_stats.c: dump /dev/oprofile/stats/*
+
+	* daemon/opd_sfile.c:
+	* daemon/opd_sfile.h: augment opd_sfile with an hash table of related
+	  call graph file
+	
+	* daemon/opd_mangling.c:
+	* daemon/opd_mangling.h:
+	* daemon/liblegacy/opd_sample_files.c:
+	* libop/op_mangle.c:
+	* libop/op_mangle.h: use new mangling name scheme, in short word:
+	  {dep} part is no longer optionnal, a {cg}/binary_name can optionnally
+	  follow the {dep} part
+	* libop/tests/mangle_tests.c: update test according to sample filename
+	  change
+
+	* libpp/filename_spec.cpp:
+	* libpp/filename_spec.h: filename_spec::is_dependant() new function
+	* libpp/parse_filename.h: add a cg_image member
+	* libpp/parse_filename.cpp: handle callgraph filename
+
+	* libpp/arrange_profiles.cpp:
+	* libpp/arrange_profiles.h: rather to use string for sample files, use
+	  a { string sample_filename, list<string> cg_files }, if {dep} part
+	  != {cg} part it's a cross-call binary.
+	  Note the sample_filename string can be empty (callgraph file w/o any
+	  samples into a binary)
+
+	* libpp/profile_spec.h:
+	* libpp/profile_spec.cpp: fix filtering of callgraph filename (this fix
+	  Carlo problem where opreport die with an invalid_filename error)
+
+	* pp/opgprof.cpp: use the new arrange_profiles.h API to acquire
+	  callgraph filename associated with a binary
+	* pp/opgprof_options.cpp: don't filter callgraph filename
+
+	* pp/opreport.cpp:
+	* pp/populate.cpp: update according arrange_profile API change
+
+	* utils/opcontrol: add --callgraph=#depth parameter
+	* doc/opcontrol.1.in:
+	* doc/oprofile.xml: document opcontrol --callgraph=#depth
+
+2004-01-16  Will Cohen  <wcohen@redhat.com>
+
+	* libutil++/op_bfd.cpp: Always use filepos of original file.
+
+2004-01-16  Will Cohen  <wcohen@redhat.com>
+
+	* libop/op_config.h (DEBUGDIR): New.
+	* libutil/op_fileio.h:
+	* libutil/op_fileio.c: New function calc_crc32
+	* libutil++/Makefile.am: Add libop to include directory.
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp: New functions separate_debug_file_exists,
+	  get_debug_link_info, find_separate_debug_file, open_bfd, and
+	  get_symbols_from_file to support separate debug files. 
+
+2004-01-02  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opgprof_options.cpp: use the proper type for options::demangle
+
+2004-01-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libregex/op_regex.cpp:
+	* libregex/op_regex.h: tidy a bit private interface
+
+2004-01-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start_config.h:
+	* gui/oprof_start_util.h:
+	* libpp/symbol.h:
+	* libutil++/cverb.cpp:
+	* libutil++/cverb.h:
+	* pp/opannotate_options.cpp:
+	* pp/opgprof_options.cpp: move some #include <> from .h to .cpp
+
+2004-01-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libregex/op_regex.cpp: don't assume int('a') > int('0')
+
+See ChangeLog-2004 for earlier changelogs.
diff --git a/oprofile-0.9.7/ChangeLog-2005 b/oprofile-0.9.7/ChangeLog-2005
new file mode 100644
index 0000000..b2e76ee
--- /dev/null
+++ b/oprofile-0.9.7/ChangeLog-2005
@@ -0,0 +1,963 @@
+2005-12-30  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/bfd_support.cpp: bfd_find_nearest_line() can return NULL
+	  in the sixth parameters, check the returned value. Problem reported
+	  by Nicolas Savoire <nicos@maunakeatech.com>
+
+2005-12-07  Maynard Johnson  <maynardj@us.ibm.com>
+
+	* events/ppc64/power5/events: Change counter for CYCLES 
+	  in order to use PM_CYC vs PM_RUN_CYC.  This makes a
+	  difference now with kernels > 2.6.14 since the PowerPC
+	  runlatch is now honored and PM_RUN_CYC counts CYCLES
+	  only when not in idle loop.
+
+2005-12-05  Will Cohen  <wcohen@redhat.com>
+
+	* libpp/arrange_profiles.cpp: Correct anon namespace for gcc 4.1.
+
+2005-11-30  Junichi Uekawa  <dancer@netfort.gr.jp>
+
+	* doc/oprofile.1.in: $prefix is unprocessed, use
+	  @prefix@ instead.
+
+2005-11-17  Sean Lee  <joy.lists@gmail.com>
+
+	* utils/opcontrol: Fix a typo. Cleanup load_module_26()
+
+2005-10-19  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_cookie.c: use __MIPSEB__ not _MIPSEB
+
+2005-10-18  Maynard Johnson <maynardj@us.ibm.com>
+
+	* events/ppc64/power4/event_mappings:
+	* events/ppc64/970/event_mappings:
+	* events/ppc64/power5/events:
+	* events/ppc64/power5/event_mappings: Ensure SAMPLE_ENABLE bit
+	  is set correctly, in preparation for coming change in
+	  PPC64 driver.  Also, based on user input, add new event
+	  CYCLES_RND_SMPL for Power5.
+
+2005-10-18  David Daney  <ddaney@avtrex.com>
+
+	* daemon/opd_cookie.c: Handle MIPS o32 for both big and little endian.
+
+2005-10-18  Andy Fleming  <afleming@freescale.com>
+
+	* events/Makefile.am:
+	* events/ppc/e500v2/events:
+	* events/ppc/e500v2/unit_masks:
+	* libop/op_cpu_type.c:
+	* libop/op_cpu_type.h:
+	* libop/op_events.c:
+	* utils/ophelp.c: add support for latest e500 processor
+
+2005-09-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_events.c:
+	* libop/op_events.h:
+	* libpp/op_header.cpp: use 32 bits unsigned int for unit mask, u16
+	  use was an historical artefact coming from the p6 implementation.
+	  This allow to pass more information and will be used by P4 driver.
+
+2005-09-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start.cpp: the last unit mask checkbox is no longer a
+	  "validate all unit mask" so don't treat it specially. It avoid to
+	  lost the last bit in the unit mask each time oprof_start is used.
+
+2005-08-31  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/oprofile.1.in: quote .BR strings
+
+2005-08-31  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.1.in: document archive: specifier
+
+2005-08-30  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/oparchive_options.cpp: fix #1276058, oparchive must force merging
+	  to avoid trigerring some sanity check in arrange_profiles(). Allowing
+	  merging is not a problem as merging doesn't occur in oparchive.
+
+2005-08-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* events/x86-64/hammer/unit_masks:
+	* events/x86-64/hammer/events: new events to count data cache
+	  access/miss by lock'ed insn.
+
+2005-08-24  Maynard Johnson <maynardj@us.ibm.com>
+
+	* events/ppc64/power4/events:
+	* events/ppc64/power4/event_mappings:
+	* events/ppc64/power5/events:
+	* events/ppc64/power5/event_mappings:
+	* events/ppc64/970/events:
+	* events/ppc64/970/event_mappings: Add all supported events and groups.
+	  This change some events name.
+
+2005-08-24  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.cpp: minor tidy
+	* daemon/opd_trans.c: more static function
+	* events/ppc/e500/events: typo
+
+2005-08-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/db_stat.c: use 64 bits to cumulate samples count.
+
+2005-08-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/file_manip.cpp: Change the last modification time after
+	  copying it.
+
+2005-08-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/odb.h:
+	* libdb/db_manage.c:
+	* libdb/db_insert.c: split the api in two part, one to update a node
+	  (or create it) by incrementing by one its associated value and
+	  one to create a new node with a given value. This optimize the
+	  fast path used by the daemon. Sanity check inside the fast path has
+	  been removed too.
+
+	* daemon/opd_sfile.c:
+	* daemon/liblegacy/opd_proc.c:
+	* libabi/opimport.cpp:
+	* libabi/tests/abi_test.cpp:
+	* libdb/tests/db_test.c: update according 
+
+2005-08-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/bfd_support.h:
+	* libutil++/op_bfd.cpp: comment how and why we can use the debuginfo
+	  bfd object.
+	  
+
+2005-08-16  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/file_manip.cpp: fix compilation on GCC 2.95.x
+
+2005-08-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	  Fix #1256978: sum of samples count overflow
+
+	* libutil/op_types.h: typedef a unsigned 64 bits count_type
+	* libpp/callgraph_container.cpp:
+	* libpp/format_output.cpp:
+	* libpp/profile.cpp:
+	* libpp/profile.h:
+	* libpp/profile_container.cpp:
+	* libpp/symbol.h:
+	* libutil/op_types.h:
+	* libutil++/growable_vector.h:
+	* pp/opreport.cpp: use it all over place where we need to sum up
+	  samples count
+	* pp/opgprof.cpp: check for samples count capping for callgraph
+	  output
+
+2005-08-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/tests/db_test.c: add a better speed test
+
+2005-08-13  Maynard Johnson <maynardj@us.ibm.com>
+
+	* gui/oprof_start.h:
+	* libop/op_events.c:
+	* libop/op_events.h:
+	* libpp/op_header.cpp: change op_event.val field from u8 to u32 to
+	  allow event numbers higher than 0X100.
+
+2005-08-13  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/odb.h: 
+	* libdb/db_insert.c:
+	* libdb/db_manage.c: use a two step node allocation to ensure adding
+	  a node will be sort of atomically visible in another process
+
+2005-08-13  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libdb/odb.h: clarify the way odb_get_iterator work
+	* libpp/profile.cpp: use odb_get_iterator properly to ensure we account
+	  zero relative offset. This fix a corner case when kernel module get
+	  a sample at the first byte of their .text section.
+
+2005-08-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/file_manip.cpp: fix a race when changing the mode and owner
+	  of copied file.
+	* pp/oparchive.cpp: warn if a file can't be copied, avoid to copy 
+	  inexisting image for anon mammping
+
+2005-08-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start.cpp:
+	* gui/oprof_start_config.cpp:
+	* gui/oprof_start_config.h:
+	* gui/ui/oprof_start.base.ui:
+	* libop/op_config.h: add --cpu-buffer-size for 2.6
+
+2005-08-10  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/file_manip.h:
+	* libutil++/file_manip.cpp: preserve as many of file attributes and
+	  owner we can when copying a file. This affected running oparchive
+	  with root right allowing non root user to read all archived binaries.
+	  Problem started in cvs the 2005-08-07
+
+2005-08-09  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_anon.c:
+	* daemon/opd_kernel.c: fix two scanf potential buffer overflow
+
+2005-08-09  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* module/x86/cpu_type.c: fix #1254390, problem and solution
+	  by Thomas Kho <tkho@users.sourceforge.net>
+
+	* module/oprofile.c:
+	* module/oprofile.h: #1266604 fix a compilation problem with
+	  gcc <= 3.3. It's not worth to try to continue to use fastcall
+	  for op_do_profile.
+
+	* module/x86/op_model_p4.c: backport some change from the 2.6 driver:
+	  on some P4 model 3 IQ_ESCR0/1 doesn't exist and acessing them fault.
+
+2005-08-08  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/opcontrol.1.in:
+	* doc/oprofile.xml: document opcontrol --buffer-watershed
+
+	* gui/oprof_start.cpp:
+	* gui/oprof_start_config.cpp:
+	* gui/oprof_start_config.h:
+	* gui/ui/oprof_start.base.ui:
+	* utils/opcontrol: implement 2.6 buffer_watershed
+
+2005-08-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/file_manip.h:
+	* libutil++/file_manip.cpp: use iostream to copy file
+	* libpp/populate.cpp: check_mtime() even when using archive: spec
+	* pp/oparchive.cpp: fix comment
+
+2005-08-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opreport.cpp: don't throw a std::string but an op_runtime_error
+
+2005-08-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/oprofiled.c:
+	* daemon/liblegacy/init.c:
+	* daemon/liblegacy/opd_image.c:
+	* daemon/liblegacy/opd_parse_proc.c:
+	* gui/oprof_start.cpp:
+	* gui/oprof_start_util.cpp:
+	* libdb/db_debug.c:
+	* libdb/db_insert.c:
+	* libdb/db_manage.c:
+	* libdb/tests/db_test.c:
+	* libop/op_events.c:
+	* libop/tests/alloc_counter_tests.c:
+	* libop/tests/parse_event_tests.c:
+	* libopt++/popt_options.cpp:
+	* libpp/arrange_profiles.cpp:
+	* libpp/callgraph_container.cpp:
+	* libpp/filename_spec.cpp:
+	* libpp/image_errors.cpp:
+	* libpp/name_storage.cpp:
+	* libpp/profile_container.cpp:
+	* libpp/profile_spec.cpp:
+	* libregex/op_regex.cpp:
+	* libregex/tests/regex_test.cpp:
+	* libutil++/string_manip.cpp:
+	* pp/opannotate.cpp:
+	* pp/opgprof_options.cpp:
+	* pp/opreport.cpp:
+	* pp/opreport_options.cpp:
+	* utils/ophelp.c: coding style
+
+2005-08-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/oprofile.xml: more documentation about annotated source and
+	  inlined functions.
+	* libpp/profile_container.cpp:
+	* libpp/profile_container.h:
+	* libpp/symbol_container.cpp:
+	* libpp/symbol_container.h: new public interface to select all symbols
+	  defined in a given source file.
+	* pp/opannotate.cpp: when no source file is available we can at least
+	  output all symbols name/samples count belonging to this source.
+
+2005-08-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/profile_container.cpp:
+	* libpp/profile_container.h:
+	* libpp/symbol_container.cpp:
+	* libpp/symbol_container.h: find symbol by source filename, linenr :
+	  change public interface to return multiple symbols
+	* pp/opannotate.cpp: Fix #1252754
+
+2005-08-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/opimport.1.in:
+	* doc/oprofile.xml: improve documentation about opimport
+
+2005-08-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/ui/oprof_start.base.ui: handle ui events help string when using
+	  keyboard to navigate through event list
+
+2005-08-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libabi/Makefile.am:
+	* libabi/abi.cpp:
+	* libabi/abi.h:
+	* libabi/op_abi.h:
+	* libabi/tests/Makefile.am:
+	* libabi/op_abi.cpp: removed
+	* libabi/op_abi.c: new file, abi file writing in plain C
+
+	* configure.in:
+	* daemon/Makefile.am:
+	* daemon/oprofiled.c:
+	* daemon/liblegacy/Makefile.am:
+	* doc/Makefile.am:
+	* doc/oprofile.xml: build unconditionnaly libabi
+
+	* doc/opimport.1.in: new file, man page for opimport, need some
+	  tweaking probably
+
+2005-08-03  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start.cpp:
+	* gui/oprof_start.h:
+	* gui/oprof_start_config.cpp:
+	* gui/oprof_start_config.h:
+	* gui/ui/oprof_start.base.ui: add a button to reset the profiling
+	  session and an edit field to setup the callgraph depth
+
+2005-08-03  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start_util.h:
+	* gui/oprof_start_util.cpp:
+	* gui/oprof_start.cpp: hardcode config directory to /root,
+	  rename get_user_filename() to get_config_filename()
+
+2005-08-03  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start_util.cpp: fix detection of stopped daemon. Fix a
+	  miscounted interrupt nr after a start/stop/start
+
+2005-08-03  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/oprofile.xml: improve documentation about RTC mode.
+
+2005-08-03  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* gui/oprof_start.cpp: fix events parsing according to the way
+	  we store them in setupfile changed by the last patch.
+
+2005-08-02  Richard Purdie  <rpurdie@openedhand.com>
+
+	* HACKING: Add note about bashisms being bad
+	* doc/oprofile.xml: Remove bash dependency
+	* utils/opcontrol: remove bashisms from the script
+
+2005-08-02  Richard Purdie  <rpurdie@openedhand.com>
+
+	* utils/opcontrol: remove some bashism, not yet enough to remove
+	  bash dependency
+
+2005-07-21  John Levon  <levon@movementarian.org>
+
+	* configure.in: bump to 0.9.2cvs
+
+2005-07-18  John Levon  <levon@movementarian.org>
+
+	* libutil++/tests/Makefile.am: canonicalize
+	  SRCDIR to fix make check
+
+2005-07-18  John Levon  <levon@movementarian.org>
+
+	* configure.in: bump to 0.9.1
+
+2005-07-11  John Levon  <levon@movementarian.org>
+
+	* module/oprofile.c: fix for GCC 3.4, spotted by
+	  Jason Lunz <lunz@falooley.org>
+
+2005-01-06  Ralf Baechle  <ralf@linux-mips.org>
+
+	* events/Makefile.am:
+	* events/mips/24K/events:
+	* events/mips/24K/unit_masks:
+	* libop/op_events.c:
+	* libop/op_cpu_type.h:
+	* libop/op_cpu_type.c:
+	* utils/ophelp.c: Add MIPS 24K support
+
+2005-06-16  Richard Purdie  <rpurdie@o-hand.com>
+
+	* utils/opcontrol: fix ARM kernels again after 2005-05-04
+	  change to op_bfd.cpp broke it again. Only look for .text
+	  section for our kernel range.
+
+2005-06-13  Richard Purdie  <rpurdie@o-hand.com>
+
+	* libpp/callgraph_container.cpp:
+	* libpp/profile.cpp: ignore any symbols before .text
+	  for start_offset profiles
+
+2005-06-02  Jason Lunz  <lunz@falooley.org>
+
+	* libpp/diff_container.cpp:
+	* libpp/format_output.cpp:
+	* libutil++/bfd_support.cpp:
+	* libutil++/op_bfd.cpp: fix compilation on GCC 2.95.x,
+	  older glibc
+
+2005-06-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opannotate_options.cpp: error out if --assembly and --output-dir
+	  are used together
+	* doc/opannotate.1.in:
+	* doc/oprofile.xml: update docucmentation according.
+
+2005-05-31  John Levon  <levon@movementarian.org>
+
+	* configure.in: bump to 0.9.1cvs
+
+2005-05-27  John Levon  <levon@movementarian.org>
+
+	* libpp/diff_container.cpp: convert the diffs into
+	  an actual percentage!
+
+	* configure.in: bump to 0.9
+
+2005-05-26  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_cookie.c:
+	* daemon/opd_sfile.c:
+	* daemon/opd_trans.c: fixes for image filtering
+
+2005-05-09  Will Cohen  <wcohen@redhat.com>
+
+	* daemon/opd_sfile.c: Fix variable declaration to compile on gcc 3.4.
+	
+2005-05-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/common_option.cpp: split argument "{}" in two separate argument
+
+2005-05-04  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: fix typos
+
+2005-05-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/cverb.cpp:
+	* libutil++/cverb.h: fix comment, remove unecessary friend declaration.
+
+2005-05-04  John Levon  <levon@movementarian.org>
+
+	* daemon/liblegacy/opd_kernel.c: fix previous workaround
+	  so it only triggers on x86
+
+2005-05-04  John Levon  <levon@movementarian.org>
+
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp: don't assume .text is the first SEC_CODE
+	  section. Keep a map of section file offsets to fix up dbfd
+	  symbols. Remove broken sanity checks.
+
+2005-05-02  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: small change
+
+2005-05-02  John Levon  <levon@movementarian.org>
+
+	* daemon/Makefile.am:
+	* daemon/opd_anon.h:
+	* daemon/opd_anon.c:
+	* daemon/init.c:
+	* daemon/opd_cookie.c:
+	* daemon/opd_events.h:
+	* daemon/opd_events.c:
+	* daemon/opd_mangling.c:
+	* daemon/opd_sfile.h:
+	* daemon/opd_sfile.c:
+	* daemon/opd_trans.h:
+	* daemon/opd_trans.c:
+	* daemon/liblegacy/opd_sample_files.c:
+	* doc/oprofile.xml:
+	* libabi/abi.cpp:
+	* libabi/opimport.cpp:
+	* libabi/tests/abi_test.cpp:
+	* libop/op_mangle.h:
+	* libop/op_mangle.c:
+	* libop/op_sample_file.h:
+	* libpp/callgraph_container.cpp:
+	* libpp/image_errors.cpp:
+	* libpp/op_header.cpp:
+	* libpp/parse_filename.cpp:
+	* libpp/populate.cpp:
+	* libpp/profile.h:
+	* libpp/profile.cpp:
+	* libpp/profile_spec.cpp:
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp:
+	* pp/opannotate.cpp:
+	* pp/opgprof.cpp: add basic anon mapping support
+
+2005-04-28  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol:
+	* doc/opcontrol.1.in:
+	* doc/oprofile.xml: add opcontrol --status
+
+2005-04-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_sfile.c: clear only 256 entry in the sfile lru list
+
+2005-04-28  John Levon  <levon@movementarian.org>
+
+	* libabi/abi.cpp:
+	* libabi/op_import.cpp: add cg_to_is_kernel to abi
+
+	* configure.in:
+	* libabi/tests/Makefile.am:
+	* libabi/tests/abi_test.cpp: move test to subdir
+
+2005-04-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* module/ia64/op_pmu.c: compile fix, pfm_syst_info has been added
+	  between 2.4.20 and 2.4.21
+
+2005-04-27  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil/op_file.h: op_file_readable() accept only regular file
+	* libutil/op_file.c:
+	* libutil++/tests/file_manip_tests.cpp:
+
+2005-04-27  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_sfile.h:
+	* daemon/opd_sfile.c: rewrite. Fix --no-vmlinux taking up
+	  CPU when using call graph profiling
+
+2005-04-27  John Levon  <levon@movementarian.org>
+
+	* daemon/oprofiled.h: remove dead prototype
+
+2005-04-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_mangling.c: protect last against sfile lru deletion
+	* daemon/opd_sfile.c: allow null sfile to sfile_get(), sfile_put()
+
+2005-04-24  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_cookie.h:
+	* daemon/opd_cookie.c:
+	* daemon/opd_trans.c:
+	* daemon/opd_sfile.c:
+	* daemon/opd_stats.h:
+	* daemon/opd_stats.c: handle NO_COOKIE (drop on the floor)
+
+	* m4/qt.m4: allow gcc 4.0 compile with Qt headers
+	  by using -isystem
+
+2005-04-23  John Levon  <levon@movementarian.org>
+
+	* configure.in: add --with-gcc, --with-binutils (for
+	  development use only, undocumented)
+
+2005-04-22  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/locate_images.h: add a virtual dtor to extra_images::matcher
+
+2005-04-22  John Levon  <levon@movementarian.org>
+
+	* doc/internals.xml: some paragraphs on call graphs
+
+	* libop/op_events.h:
+	* libop/op_events.c:
+	* libutil/op_deviceio.h:
+	* libutil/op_deviceio.c:
+	* libutil/op_fileio.h:
+	* libutil/op_fileio.c: remove dead code
+
+	* libutil/op_lock_file.h:
+	* libutil/op_lock_file.c: make a function static
+
+	* libutil++/Makefile.am:
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp:
+	* libutil++/bfd_support.h:
+	* libutil++/bfd_support.cpp: move lots of BFD gunk into
+	  a separate file. Fix synth symbols support, with lots of
+	  testing by Maynard.
+
+	* libutil++/comma_list.h: remove unused set_p
+
+	* pp/opannotate.cpp: complain less verbosely if the input file
+	  couldn't be found
+
+2005-04-14  John Levon  <levon@movementarian.org>
+
+	* libutil++/growable_vector.h:
+	* libpp/diff_container.cpp: fix fill()
+
+	* pp/opreport.cpp: fix multiple apps for diff output
+
+2005-04-14  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_interface.h:
+	* daemon/opd_trans.c: remove legacy TRACE_END
+
+	* daemon/liblegacy/opd_kernel.c:
+	* daemon/liblegacy/opd_proc.c: avoid attributing "no mapping"
+	  samples to vmlinux when using --no-vmlinux via a sick hack
+
+2005-04-13  John Levon  <levon@movementarian.org>
+
+	* libutil++/growable_vector.h: add fill()
+
+	* libutil++/diff_container.cpp: use it
+
+	* libpp/symbol_sort.cpp: code clean up
+
+2005-04-13  John Levon  <levon@movementarian.org>
+
+	* libpp/diff_container.h:
+	* libpp/diff_container.cpp: syms doesn't need to be a member
+
+2005-04-13  Nathan Tallent  <eraxxon@cs.rice.edu>
+
+	* utils/opcontrol: fix unquoted variable references in 'test'
+ 	  expressions
+
+2005-04-13  Maynard Johnson  <maynardj@us.ibm.com>
+
+	* libutil++/op_bfd.cpp: skip null-name section symbols
+
+2005-04-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/string_manip.cpp: fix double formating when value are
+	  negative
+
+2005-04-12  John Levon  <levon@movementarian.org>
+
+	* libpp/arrange_profiles.h:
+	* libpp/arrange_profiles.cpp:
+	* pp/opreport_options.cpp:
+	* pp/common_option.cpp: verify diff profile classes match
+
+2005-04-12  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml:
+	* doc/oprofile.1.in: document diff profiles
+
+2005-04-12  John Levon  <levon@movementarian.org>
+
+	* libpp/diff_container.cpp: fix duplicate syms in output
+
+	* pp/opreport.cpp:
+	* libpp/diff_container.h:
+	* libpp/diff_container.cpp: implement thresholding etc.
+
+2005-04-12  John Levon  <levon@movementarian.org>
+
+	* libpp/Makefile.am:
+	* libpp/count_array.cpp:
+	* libpp/count_array.h:
+	* libpp/diff_container.cpp:
+	* libpp/diff_container.h:
+	* libpp/format_flags.h:
+	* libpp/format_output.cpp:
+	* libpp/format_output.h:
+	* libpp/profile_spec.cpp:
+	* libpp/profile_spec.h:
+	* libpp/symbol.h:
+	* libpp/symbol_functors.cpp:
+	* libpp/symbol_sort.cpp:
+	* libpp/symbol_sort.h:
+	* libutil++/Makefile.am:
+	* libutil++/growable_vector.h:
+	* libutil++/string_manip.cpp:
+	* libutil++/string_manip.h:
+	* pp/common_option.cpp:
+	* pp/common_option.h:
+	* pp/opannotate.cpp:
+	* pp/opannotate_options.cpp:
+	* pp/opannotate_options.h:
+	* pp/oparchive.cpp:
+	* pp/oparchive_options.cpp:
+	* pp/oparchive_options.h:
+	* pp/opdiff.cpp:
+	* pp/opdiff_options.cpp:
+	* pp/opdiff_options.h:
+	* pp/opgprof.cpp:
+	* pp/opgprof_options.cpp:
+	* pp/opgprof_options.h:
+	* pp/opreport.cpp:
+	* pp/opreport_options.cpp:
+	* pp/opreport_options.h: implement an initial version of diff
+	  profiling
+
+2005-04-11  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml:
+	* doc/opreport.1.in:
+	* doc/opannotate.1.in:
+	* pp/opreport_options.cpp:
+	* pp/opannotate_options.cpp: add -D and -%
+
+2005-04-11  John Levon  <levon@movementarian.org>
+
+	* pp/opannotate.cpp: fix opannotate matching several binaries
+
+2005-04-09  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.cpp: fix a segfault if a binary file can't be
+	  accessed (opreport -gl; opannotate) problem and solution pointed
+	  by Maynard P. Johnson <maynardj@us.ibm.com>.
+	* libutil++/op_bfd.h: op_bfd member function must check for a NULL
+	  ibfd before using it.
+
+2005-04-07  John Levon  <levon@movementarian.org>
+
+	* libutil/tests/Makefile.am:
+	* libutil++/tests/Makefile.am:
+	* libdb/tests/Makefile.am:
+	* libop/tests/Makefile.am: fix tests build
+
+2005-04-07  John Levon  <levon@movementarian.org>
+
+	* m4/Makefile.am:
+	* m4/binutils.m4:
+	* configure.in: move binutils stuff into a macro
+
+	* doc/oprofile.xml: fixes and improvements
+
+2005-04-07  John Levon  <levon@movementarian.org>
+
+	* libpp/callgraph_container.cpp: hoist image/app name lookup
+	  outside of the loop
+
+2005-04-07  John Levon  <levon@movementarian.org>
+
+	* libutil++/op_bfd.cpp: performance improvements with handling
+	  symbols
+
+2005-04-06  John Levon  <levon@movementarian.org>
+
+	* libpp/populate.h:
+	* libpp/populate.cpp:
+	* libpp/callgraph_container.cpp:
+	* libutil++/cached_value.h:
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp:
+	* pp/opannotate.cpp:
+	* pp/opreport.cpp:
+	* libutil++/tests/Makefile.am:
+	* libutil++/tests/cached_value_tests.cpp: tweak CRC buffer.
+	Do delayed debug info searching (makes no actual difference).
+
+2005-04-05  John Levon  <levon@movementarian.org>
+
+	* libpp/format_output.cpp: add separator at first function
+	  for opreport -c
+
+2005-04-05  John Levon  <levon@movementarian.org>
+
+	* libpp/callgraph_container.h:
+	* libpp/callgraph_container.cpp:
+	* pp/opreport.cpp:
+	* pp/opreport_options.cpp: implement -i / -e for
+	  opreport -c
+
+2005-04-05  John Levon  <levon@movementarian.org>
+
+	* libpp/format_output.h:
+	* libpp/format_output.cpp:
+	* pp/opreport.cpp:
+	* pp/opreport_options.cpp: implement --global-percent
+	  for opreport -c
+
+2005-04-04  John Levon  <levon@movementarian.org>
+
+	* configure.in:
+	* doc/Makefile.am:
+	* doc/oprofile.xml:
+	* doc/opstack.1.in:
+	* doc/opreport.1.in:
+	* doc/oprofile.1.in:
+	* pp/.cvsignore:
+	* pp/Makefile.am:
+	* pp/opreport.cpp:
+	* pp/opreport_options.cpp:
+	* pp/opreport_options.h:
+	* pp/opstack.cpp:
+	* pp/opstack_options.cpp:
+	* pp/opstack_options.h: remove opstack in favour of opreport -c
+
+	* libpp/callgraph_container.cpp: fix for new call-graph code
+
+	* doc/oprofile.xml:
+	* doc/oparchive.1.in: document -x, re-organise manual
+
+2005-04-04 Maynard Johnson  <maynardj@us.ibm.com>
+
+	* configure.in: further check for bfd synthesised
+	  symbols support
+
+2005-04-04  John Levon  <levon@movementarian.org>
+
+	* libpp/callgraph_container.cpp:
+	* libpp/callgraph_container.h:
+	* libpp/format_flags.h:
+	* libpp/format_output.cpp:
+	* libpp/format_output.h:
+	* libpp/symbol.cpp:
+	* libpp/symbol.h:
+	* libpp/symbol_sort.cpp:
+	* libpp/symbol_sort.h:
+	* libutil++/op_bfd.cpp:
+	* pp/common_option.cpp:
+	* pp/common_option.h:
+	* pp/opstack.cpp:
+	* pp/opstack_options.cpp:
+	* pp/opstack_options.h: re-whack call-graph collection
+	  and output format
+
+2005-04-03 Maynard Johnson  <maynardj@us.ibm.com>
+
+	* configure.in:
+	* libutil++/op_bfd.h:
+	* libutil++/op_bfd.cpp: synthesis dotted symbols
+	  if necessary
+
+2005-03-31  John Levon  <levon@movementarian.org>
+
+	* HACKING:
+	* TODO:
+	* configure.in:
+	* doc/Makefile.am:
+	* doc/op_help.1.in:
+	* doc/ophelp.1.in:
+	* doc/oprofile.xml:
+	* libabi/.cvsignore:
+	* libabi/Makefile.am:
+	* libabi/opimport.cpp:
+	* utils/.cvsignore:
+	* utils/Makefile.am:
+	* utils/opcontrol:
+	* utils/ophelp.c: rename op_import->opimport,
+	  op_help->ophelp. Allow normal user to use
+	  opcontrol --list-events
+
+2005-03-31  John Levon  <levon@movementarian.org>
+
+	* doc/internals.xml: more internals docs
+
+2005-03-29  John Levon  <levon@movementarian.org>
+
+	* libpp/callgraph_container.h:
+	* libpp/callgraph_container.cpp:
+	* libpp/format_output.h:
+	* libpp/format_output.cpp:
+	* libpp/profile_container.h:
+	* libpp/symbol.h:
+	* libpp/symbol_sort.h:
+	* libpp/symbol_sort.cpp:
+	* libpp/symbol_container.h:
+	* libpp/symbol_container.cpp:
+	* pp/opreport_options.h: header file cleanup
+
+2005-03-26  John Levon  <levon@movementarian.org>
+
+	* Makefile.am:
+	* doc/oprofile.xml:
+	* m4/configmodule.m4:
+	* module/x86/Makefile.in:
+	* module/x86/hammer_entry.S:
+	* module/x86/hammer_ia32entry.S:
+	* module/x86/hammer_op_syscalls.c:
+	* module/x86/hammer_oprofile_nmi.S:
+	* module/x86/op_apic.h:
+	* module/x86/op_arch.h:
+	* module/x86/op_nmi.c: remove x86-64 support for 2.4
+	  kernels, as it's non-functional
+
+2005-03-26  John Levon  <levon@movementarian.org>
+
+	* daemon/oprofiled.c: honour oprofiled -v first, complain
+	if --events option is missing instead of core dumping
+
+	* doc/oprofiled.xml: explain opreport -d behaviour for
+	  no-symbol binaries
+
+2005-03-14  Maynard Johnson  <maynardj@us.ibm.com>
+
+	* utils/op_help.c:
+	* doc/oprofile.xml: 
+	  Update PPC64-related documentation to include URL links to
+	  IBM publications.
+
+2005-03-22  John Levon  <levon@movementarian.org>
+
+	* configure.in: bump to 0.9cvs
+
+2005-03-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* configure.in: bump to 0.8.2
+
+2005-03-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* events/i386/p4/events:
+	* events/i386/p4/unit_masks:
+	* events/i386/p4-ht/events:
+	* events/i386/p4-ht/unit_masks: remove FRONT_END_EVENT, EXECUTION_EVENT
+	  and REPLAY_EVENT.
+
+	* libop/tests/alloc_counter_tests.c: update test according events
+	  removal
+
+2005-03-18  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/opcontrol: revert last patch, bash can't do integer
+	  arithmetic on hexadecimal.
+
+2005-02-21  John Levon  <levon@movementarian.org>
+
+	* utils/opcontrol: further validation of the kernel range to
+	  prevent an unrelocated vmlinux being used
+
+2005-02-07  John Levon  <levon@movementarian.org>
+
+	* events/arm/xscale1/unit_masks: fix 'zero' unit mask
+
+2005-01-25  Maynard Johnson <maynardj@us.ibm.com>
+
+	* doc/oprofile.xml: Add PowerPC 64-bit processor support information
+
+2005-01-24  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.cpp: always initialize op_bfd_symbol:symb_hidden
+	 and symb_weak, not a bug fix but a cleanup.
+
+2005-01-04  Andy Fleming  <afleming@freescale.com>
+
+	* events/Makefile.am:
+	* events/ppc/e500/events:
+	* events/ppc/e500/unit_masks:
+	* libop/op_events.c:
+	* libop/op_cpu_type.h:
+	* libop/op_cpu_type.c:
+	* utils/op_help.c: Add PPC e500 support
+
+2005-01-02  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opannotate.cpp: fix #1093162 by simplifying the code, this was
+	  likely to be a compiler problem but the new code is simpler.
diff --git a/oprofile-0.9.7/ChangeLog-2006 b/oprofile-0.9.7/ChangeLog-2006
new file mode 100644
index 0000000..9451bb3
--- /dev/null
+++ b/oprofile-0.9.7/ChangeLog-2006
@@ -0,0 +1,296 @@
+2006-12-14  Maynard Johnson <maynardj@us.ibm.com>
+
+	* doc/oprofile.xml:
+	* events/Makefile.am:
+	* events/ppc64/cell-be/events:
+	* events/ppc64/cell-be/unit_masks:
+	* libop/op_cpu_type.c:
+	* libop/op_cpu_type.h:
+	* libop/op_events.c:
+	* utils/opcontrol:
+	* utils/ophelp.c Add support for Cell Broadband Engine
+
+2006-12-14  Dave Nomura <dcnltc@us.ibm.com>
+
+	* daemon/init.c: move open_opd_files call to initialization phase
+
+2006-12-11  Maynard Johnson <maynardj@us.ibm.com>
+
+	* m4/kerneloption.m4:
+	* m4/kernelversion.m4: eliminate/replace usage of obsolete kernel
+	  header linux/config.h
+
+
+2006-12-06  Daniel Jacobowitz  <dan@debian.org>
+
+	* libopt++/popt_options.cpp: complete fix for static
+	  initialisation ordering bug on ARM
+
+2006-11-24  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml:
+	* doc/oprofile.1.in: warn about braces parsing in differential
+	  mode.
+
+	* doc/opreport.1.in:
+	* doc/oparchive.1.in:
+	* doc/opannotate.1.in:
+	* doc/opgprof.1.in: point explicitly to oprofile(1)
+
+	* pp/opreport_options.cpp: --xml is incompatible with
+	  differential profiles.
+
+2006-11-22  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_alloc_counter.c: reapply 2006-8-03  Jeremiah Lott patch
+	  which was accidentally reverted, as a sideeffect this patch change
+	  counter allocation order. It can't hurt since our storage don't
+	  take care about counter number.
+	* libop/tests/alloc_counter_tests.c: add a test case for this patch.
+	  Take care about counter allocation order change.
+
+2006-11-19  Maynard Johnson <maynardj@us.ibm.com>
+
+	* doc/oprofile.xml:  Document platforms where callgraph is supported
+
+2006-11-17  Dave Nomura  <dcnltc@us.ibm.com>
+
+	* doc/Makefile.am:
+	* doc/opreport.1.in:
+	* doc/opreport.xsd:
+	* doc/oprofile.xml:
+	* libop/op_alloc_counter.c:
+	* libpp/Makefile.am:
+	* libpp/arrange_profiles.cpp:
+	* libpp/format_output.cpp:
+	* libpp/format_output.h:
+	* libpp/op_header.cpp:
+	* libpp/profile_container.cpp:
+	* libpp/symbol.cpp:
+	* libpp/symbol.h:
+	* libpp/xml_utils.cpp:
+	* libpp/xml_utils.h:
+	* libutil++/Makefile.am:
+	* libutil++/bfd_support.cpp:
+	* libutil++/cverb.cpp:
+	* libutil++/cverb.h:
+	* libutil++/op_bfd.cpp:
+	* libutil++/op_bfd.h:
+	* libutil++/xml_output.cpp:
+	* libutil++/xml_output.h:
+	* pp/common_option.cpp:
+	* pp/common_option.h:
+	* pp/oparchive_options.cpp:
+	* pp/opgprof_options.cpp:
+	* pp/opreport.cpp:
+	* pp/opreport_options.cpp:
+	* pp/opreport_options.h: XML output support.
+
+2006-8-03  Jeremiah Lott  <jeremiah.lott@timesys.com>
+
+	* libop/op_alloc_counter.c: allocate_counter(...) was returning
+	  prior to considering all possible allocation strategies.
+
+2006-11-15  Adam Bordelon  <me@cs.rice.edu>
+
+	* doc/internals.xml:
+	* doc/opannotate.1.in:
+	* doc/oparchive.1.in:
+	* doc/opcontrol.1.in:
+	* doc/opgprof.1.in:
+	* doc/opreport.1.in:
+	* doc/oprofile.xml: Documented --session-dir option.
+ 
+ 	* daemon/init.c:
+	* daemon/liblegacy/init.c:
+	* daemon/oprofiled.c:
+	* libop/Makefile.am:
+	* libop/op_config.c:
+	* libop/op_config.h:
+	* libop/op_config_24.h:
+	* libop/op_mangle.c:
+	* libpp/profile_spec.c:
+	* pp/common_option.cpp:
+	* utils/opcontrol: Added --session-dir option, to place sample database in dir instead of default location (/var/lib/oprofile), and program can be run as normal user.
+
+2006-11-15  John Levon  <levon@movementarian.org>
+
+	* events/x86-64/hammer/events: fix event names with '/' in them
+	  (bug 1597054)
+
+	* libop/op_events.c: check for '/' and fail if so
+
+2006-11-09  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/opreport.1.in: 
+	* doc/oprofile.xml: --long-filenames : -f is the short opt, not -l
+
+2006-10-16  Richard Purdie <rpurdie@openedhand.com>
+
+	* libutil++/bfd_support.cpp: Ignore uninteresting arm mapping symbols
+
+2006-10-16  Richard Purdie <rpurdie@openedhand.com>
+
+	* utils/opcontrol: Remove a bashism in validate_separate_args()
+
+2006-10-13  Maynard Johnson <maynardj@us.ibm.com>
+
+        * doc/opcontrol.1.in: Document callgraph support for PowerPC
+
+2006-09-25  Jon Callan  <Jon.Callan@arm.com>
+
+	* libopt++/popt_options.cpp: fix static init order problem, seen
+	  on ARM.
+
+2006-09-21  Dean Gaudet  <dgaudet@users.sourceforge.net>
+
+	* events/i386/core_2/events: rename some events
+	* events/i386/core_2/unit_masks: various fixes for
+	  double-counting events
+
+2006-09-21  Mark A. Greer  <mgreer@mvista.com>
+
+	* events/ppc/7450/events:
+	* events/ppc/7450/unit_masks:
+	* utils/ophelp.c: ppc 745x event improvements.
+
+2006-09-15  Will Cohen  <wcohen@redhat.com>
+
+	* Makefile.am: Add ChangeLog-2004 and ChangeLog-2005 to distro.
+	
+2006-09-15  Will Cohen  <wcohen@redhat.com>
+
+	* configure.in: Bump to 0.9.3cvs.
+
+2006-09-15  Will Cohen  <wcohen@redhat.com>
+
+	* configure.in: Bump to 0.9.2.
+
+2006-09-11  Will Cohen  <wcohen@redhat.com>
+
+	* configure.in: Bump to 0.9.2.1rc1.
+
+2006-09-11  Will Cohen  <wcohen@redhat.com>
+
+	* events/i386/core_2/unit_masks:
+	* events/i386/core_2/events: Correct names and masks.
+	
+2006-09-07  Benjamin LaHaise  <bcrl@kvack.org>
+	
+	* events/i386/core_2/events: Correct some event names.
+
+2006-09-05  Will Cohen  <wcohen@redhat.com>
+
+	* configure.in: bump to 0.9.2
+
+2006-09-05  Will Cohen  <wcohen@redhat.com>
+
+	* libpp/symbol_container.cpp: Explicit casting.
+
+2006-08-27  Ray Bryant  <raybry@amd.com>
+
+	* events/x86-64/hammer/events:
+	* events/x86-64/hammer/unit_masks:
+	* libop/op_events.h: make names match the BKDG names from AMD
+
+2006-08-22  Benjamin LaHaise  <bcrl@kvack.org>
+
+	* events/Makefile.am:
+	* events/i386/core_2/events:
+	* events/i386/core_2/unit_masks:
+	* libop/op_cpu_type.h:
+	* libop/op_cpu_type.c:
+	* libop/op_events.c:
+	* utils/ophelp.c: support Intel Core 2 events
+
+2006-07-15  Luca Barbato  <lu_zero@gentoo.org>
+
+	* events/Makefile.am:
+	* events/ppc/7450/events:
+	* events/ppc/7450/unit_masks:
+	* libop/op_cpu_type.h:
+	* libop/op_cpu_type.c:
+	* libop/op_events.c:
+	* utils/ophelp.c: support PowerPC G4 events
+ 
+2006-06-21  Ralf Baechle  <ralf@linux-mips.org>
+
+	* libop/op_cpu_type.h:
+	* utils/ophelp.c:
+	* libop/op_cpu_type.c:
+	* libop/op_events.c:
+	* events/Makefile.am:
+	* events/mips/5K:
+	* events/mips/20K:
+	* events/mips/25K:
+	* events/mips/34K: add new MIPS support.
+
+2006-05-13  Benjamin LaHaise  <bcrl@kvack.org>
+
+	* events/Makefile.am:
+	* events/i386/core/events:
+	* events/i386/core/unit_masks:
+	* libop/op_cpu_type.h:
+	* libop/op_cpu_type.c:
+	* libop/op_events.c:
+	* module/x86/cpu_type.c:
+	* utils/ophelp.c: support Intel Core Duo events
+
+2006-03-01  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+	* utils/opcontrol: (do_save_setup): Save KERNEL_RANGE and XEN_RANGE 
+	values into setup file.
+	(do_load_setup): Print KERNEL_RANGE, XENIMAGE and XEN_RANGE values in
+	verbose mode.
+
+2006-03-19  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_anon.c: bump LRU size to avoid significant maps
+	  parsing overhead.
+
+2006-03-19  John Levon  <levon@movementarian.org>
+
+	* daemon/opd_anon.c:
+	* daemon/opd_sfile.h:
+	* daemon/opd_sfile.c: make sure we protect trans->last
+	  if it's an anon sf, and we need to do cleanup. Speed
+	  cleanup somewhat.
+
+2006-02-17  Maynard Johnson <maynardj@us.ibm.com>
+
+	* doc/oprofile.xml:
+	* events/ppc64/power5+/events:
+	* events/ppc64/power5+/event_mappings:
+	* events/ppc64/unit_masks:
+	* events/Makefile.am:
+	* libop/op_events.c:
+	* libop/op_cpu_type.c:
+	* libop/op_cpu_type.h:
+	* utils/opcontrol:
+	* utils/ophelp.c:  Add support for Power5+
+
+2006-02-10  Will Cohen  <wcohen@redhat.com>
+
+	* utils/opcontrol: Use full paths for which and dirname.
+
+2006-01-22  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: mention 2.4 + power management
+
+2006-01-16  Mike Carlson  <corfe83dev@gmail.com>
+
+	* doc/opcontrol.1.in: fix typo
+
+2006-01-16  Jose Renato Santos  <jsantos@hpl.hp.com>
+
+	* daemon/init.c:
+	* daemon/opd_interface.h:
+	* daemon/opd_kernel.h:
+	* daemon/opd_kernel.c:
+	* daemon/opd_trans.c:
+	* daemon/oprofiled.h:
+	* daemon/oprofiled.c:
+	* doc/opcontrol.1.in:
+	* utils/opcontrol: Added support for Xen
+
+See ChangeLog-2005 for earlier changelogs.
diff --git a/oprofile-0.9.7/ChangeLog-2007 b/oprofile-0.9.7/ChangeLog-2007
new file mode 100644
index 0000000..c377825
--- /dev/null
+++ b/oprofile-0.9.7/ChangeLog-2007
@@ -0,0 +1,757 @@
+2007-12-11  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/op_bfd.h: remove sym_offset(), we can get what did
+	  sym_offset() in a simpler way at call site
+	* libutil++/op_bfd.cpp:
+	* libpp/callgraph_container.cpp:
+	* libpp/profile_container.cpp:
+	* libpp/profile_container.h:
+
+2007-11-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_stats.c: dump invalid pc count, added to oprofile stats
+	  fs 2.6.24-rc
+
+2007-11-15  Dave Nomura  <dcnltc@us.ibm.com>
+
+	* fixed a some typos in manually patched event files
+
+2007-11-15  Dave Nomura  <dcnltc@us.ibm.com>
+
+	* libpp/format_output.cpp: output XML SYMBOL_DATA for callers/callees
+	* libpp/format.h:
+
+2007-11-15   Dave Nomura  <dcnltc@us.ibm.com>
+
+	* events/ppc64/power6/event_mappings: updated Power6 event files
+	* events/ppc64/power6/events:
+
+2007-11-15  Philippe Elie  <phil.el@wanadoo.fr>
+
+	handle --root which act as a replacement (a prefix) for the / fs
+	* libpp/locate_images.cpp: root path search taking care if a
+	  root path is given we never search through "/"
+	* libpp/locate_images.h:
+	* libpp/populate.cpp:
+	* libpp/populate_for_spu.cpp: use the right path to check last
+	  modification time, this is yet again a change in behavior, module
+	  was never found a this point, even if we found them later, and we
+	  didn't try to check_mtime(), so opreport is again a bit more verbose
+	* libutil++/op_bfd.cpp: be more cautious when checking if we can try to
+	  open the bfd file, don't open it in the '/' fs if a --root is  given
+	* libpp/profile_spec.cpp: convey the root_path all over the code.
+	* libpp/profile_spec.h:
+	* pp/common_option.cpp:
+	* pp/common_option.h:
+	* pp/opannotate_options.cpp:
+	* pp/oparchive.cpp:
+	* pp/oparchive_options.cpp:
+	* pp/opgprof_options.cpp:
+	* pp/opreport_options.cpp:
+	* doc/opannotate.1.in: document --root
+	* doc/oparchive.1.in:
+	* doc/opgprof.1.in:
+	* doc/opreport.1.in:
+	* doc/oprofile.xml:
+
+2007-11-10  Dave Nomura  <dcnltc@us.ibm.com>
+
+	* libutil++/bfd_support.cpp: is_correct_function() is itended to deal
+	  with missing debug information, if linenr != 0, don't call it since
+	  we know we have valid debug info
+
+2007-11-08  Haavard Skinnemoen  <hskinnemoen@atmel.com>
+
+	* utils/opcontrol: Busybox's implementation of "kill" doesn't
+	  understand the "-s SIG" option. Use "-SIG" instead.
+
+2007-11-07  Philippe Elie  <phil.el@wanadoo.fr>
+
+	Compile fix for gcc 2.95.3
+	* libpp/format_output.cpp: unused local var, then unused params
+	* libpp/format_output.h:
+	* libpp/op_header.cpp: missing include
+	* libutil++/bfd_spu_support.cpp: gcc 2.95.3 do not like struct bfd,
+	 2.95 get it wrong probably but anyway all these struct are useless.
+
+2007-11-06  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opannotate.cpp: for module we didn't use the right image name,
+	  this bug appeared after 0.9.3 release
+
+2007-11-05  Richard Purdie  <rpurdie@openedhand.com>
+
+	* events/arm/armv6/events: Fix armv6 events to match mainline kernels
+
+2007-11-04  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/opcontrol: nmi watchdog is now cleanly handled in the kernel
+	  but it can be on by default even if CONFIG_WATCHDOG=n, a sysctl
+	  exists to put it off. We need to check this in opcontrol since we
+	  returned success if a counter is missing and starting oprofile with
+	  oprof_start silently failed.
+
+2007-11-03  Richard Purdie  <rpurdie@openedhand.com>
+
+	* pp/oparchive.cpp:  Check list_files option before calling
+	  create_dir() for debug files.
+
+2007-11-03  Philippe Elie  <phil.el@wanadoo.fr>
+
+	with --xml and --details, bfd open/close was done one time per
+	symbols, not one time per application. Solved by moving open/close
+	in the caller and cache bfd object, this work because --xml imply
+	symbols are sorted by app name then lib name. This is not perfect as
+	we can open/close multiple time bfd object with --separate=library
+	but still a real win. Quick test showed an improvement by over 40
+	times. Improvement grows as number of symbols per binary.
+	* libpp/xml_utils.cpp: move bfd open ...
+	* libpp/xml_utils.h:
+	* libpp/format_output.cpp: ... here
+	* libpp/format_output.h:
+	* pp/opreport.cpp:
+
+2007-11-02  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/opreport_options.cpp: --xml is not compatible with --sort since
+	  xml output need some predefined sort options, we warned against
+	  the use of --sort but didn't reset the sort options to default.
+
+2007-11-01  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* pp/oparchive_options.cpp: oparchive need to be run as root if you
+	  want to get save all binaries, generally I don't like to restrict
+	  user to do silly things but --output-directory / is an easy typo
+	  to do and will completely screw up the box.
+
+2007-10-30  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/format_output.cpp: Fix #931882, xml output not changed at
+	the moment.
+
+2007-10-30  Philippe Elie  <phil.el@wanadoo.fr>
+
+	Prepare #931882 fix, continue to move down real filename
+	retrieval by extending image_name_storage which can hold now the
+	real image name and the image as derived from the sample filename.
+	Use the new api in a compatible way with the old behavior, no output
+	change intended.
+	* libpp/format_output.cpp:
+	* libpp/format_output.h:
+	* libpp/locate_images.cpp:
+	* libpp/locate_images.h:
+	* libpp/name_storage.cpp:
+	* libpp/name_storage.h:
+	* libpp/symbol.cpp:
+	* libpp/symbol.h:
+	* libpp/xml_utils.cpp:
+	* libpp/xml_utils.h:
+	* pp/opreport.cpp:
+
+2007-10-29  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/image_errors.cpp: Pass to image_errors the archive_path through
+	  an extra_images to ensure no duplicate error message occur nor we
+	  miss error, this fix two bugs, one with differential profile
+	  an error message was missing when two binary are missing, another
+	  with opreport where the same error message was duplicate because in
+	  on case we passed the real binary name (prefixed with archive_path)
+	  while latter we passed the short form of the binary name.
+	* libpp/image_errors.h:
+	* libpp/callgraph_container.cpp:
+	* libpp/populate.cpp:
+	* libpp/populate_for_spu.cpp:
+	* libpp/xml_utils.cpp:
+	* libutil++/op_bfd.h:
+
+	* pp/opannotate.cpp: global var archive_path is no longer used
+	* pp/opannotate_options.cpp:
+	* pp/opannotate_options.h:
+	* pp/oparchive.cpp:
+	* pp/opgprof.cpp:
+	* pp/opgprof_options.h:
+	* pp/opreport.cpp:
+	* pp/opreport_options.cpp:
+	* pp/opreport_options.h:
+
+2007-10-29  Philippe Elie  <phil.el@wanadoo.fr>
+
+	Cleanup the way per spec archive_path is handled, as extra_images
+	is built using an archive_path it make no sense to pass archive_path
+	as parameter all over the place, rather make it a member of
+	extra_images and use it, anyway it was required the archive_path
+	passed to find_image_path() was the same as used to build the
+	extra_images.
+
+	As a side effect it fix a corner case: oparchive archive:tmp1 -o tmp2
+	was not working for module, archiving from an archive should work now.
+	* libpp/arrange_profiles.cpp:
+	* libpp/arrange_profiles.h:
+	* libpp/callgraph_container.cpp:
+	* libpp/callgraph_container.h:
+	* libpp/locate_images.cpp:
+	* libpp/locate_images.h:
+	* libpp/populate.cpp:
+	* libpp/populate.h:
+	* libpp/populate_for_spu.cpp:
+	* libpp/populate_for_spu.h:
+	* libpp/profile_spec.cpp:
+	* libpp/xml_utils.cpp:
+	* libpp/xml_utils.h:
+	* libutil++/op_bfd.cpp:
+	* libutil++/op_bfd.h:
+	* libutil++/op_spu_bfd.cpp:
+	* pp/opannotate.cpp:
+	* pp/oparchive.cpp:
+	* pp/oparchive_options.cpp:
+	* pp/oparchive_options.h:
+	* pp/opgprof.cpp:
+	* pp/opgprof_options.cpp:
+	* pp/opreport.cpp:
+
+2007-10-29  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/file_manip.cpp: do not create the output file if the input
+	  file can not be read. It change oparchive behavior which created
+	  empty file with input file like -rws--x--x 1 root root
+
+2007-10-28  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/format_output.cpp: minor overkill
+
+2007-10-27  Philippe Elie  <phil.el@wanadoo.fr>
+
+	Fix #1819350, it turned out this implied another fix for differential
+	profile, extra_images must be built per profile specification not
+	globally so most of this patch pass an extra_images down to op_bfd.
+	The way image name resolution has changed. We fixup an image name
+	only when really needed, when opening a bfd file, when checking a
+	binary exists and when we try matching an image name with a profile
+	specification, this robustify differential profile. This patch also
+	allow a profile_spec ala image:*oprofile.ko which was broken too.
+	It's now mandatory to use the same -p option used with oparchive when
+	using an archive with other pp tools, it was already the case but was
+	broken, this patch does not clarify the documentation about this
+	point because I suspect oparchive should be modified to save at the
+	top level directory the contents of -p option, pp tools will use that
+	automatically and --image_path will be obsoleted when used with an
+	archive.
+
+	This patch except clarifying than --image-path with archive: is a bit
+	special does not add any user level visible change.
+	* libpp/arrange_profiles.cpp:
+	* libpp/arrange_profiles.h:
+	* libpp/callgraph_container.cpp:
+	* libpp/callgraph_container.h:
+	* libpp/locate_images.cpp:
+	* libpp/locate_images.h:
+	* libpp/populate.cpp:
+	* libpp/populate_for_spu.cpp:
+	* libpp/profile_container.cpp:
+	* libpp/profile_container.h:
+	* libpp/profile_spec.cpp:
+	* libpp/profile_spec.h:
+	* libpp/xml_utils.cpp:
+	* libpp/xml_utils.h:
+	* libutil++/Makefile.am:
+	* libutil++/op_bfd.cpp:
+	* libutil++/op_bfd.h:
+	* libutil++/op_spu_bfd.cpp:
+	* pp/common_option.cpp:
+	* pp/common_option.h:
+	* pp/opannotate.cpp:
+	* pp/opannotate_options.cpp:
+	* pp/oparchive.cpp:
+	* pp/oparchive_options.cpp:
+	* pp/opgprof.cpp:
+	* pp/opgprof_options.cpp:
+	* pp/opreport.cpp:
+	* pp/opreport_options.cpp:
+
+2007-10-27  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libpp/profile_spec.cpp: look like an obvious typo, we must fixup
+	  the string we are parsing not a previously seen or empty string
+
+2007-10-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libutil++/sparse_array.h: size() return the max index while we
+	  want the max index + 1, the only user is diff_container,
+	  differential container is broken in 0.9.3. This fix bug #1820202
+
+2007-10-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/opcontrol: fix the previous opcontrol --reset patch, it was
+	  broken if the daemon is running because --reset imply --dump so
+	  we can use this --reset shortcut only if the daemon is not running.
+
+2007-10-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/opcontrol: if objdump is missing the error message is
+	  obscure, this fix bug #1564920 by checking if objdump exists
+	  and is an executable before using it
+
+2007-10-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/opcontrol: --reset doesn't need to load the module, it was
+	  counter-intuitive than the sequence opcontrol --deinit;
+	  opcontrol --reset must be followed by another opcontrol --deinit
+
+2007-10-25  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/opcontrol: error out earlier if the module is not loaded
+	  even for --list-events or --dump to avoid obscure error message
+
+2007-10-24  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_config.h: bump sample filename format, should have been
+	  done before 0.9.3
+	* libpp/op_header.cpp: do not use odb_open() to read the sample file
+	  header, if it fails it can return EINVAL if sanity checking fails
+	  so we can't know if the failure came from a sample file format
+	  change or some other failure. This explain some "sample_filename:
+	  Invalid argument" we got in bug report when user didn't cleanup
+	  the sample file directory.
+	* libpp/profile.cpp: use read_header() first to check the sample file
+	  format to get better error message.
+
+2007-10-19  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_events.c: force the use of hexa notation in event file for
+	  the field intended to be in hexacidemal so make check will catch
+	  attempt to use decimal notation for them.
+
+	* events/mips/20K/events: all event number were in decimal but parsed
+	  as hexadecimal, this fix bug #1717298
+	* events/mips/24K/events:
+	* events/mips/25K/events:
+	* events/mips/5K/events:
+	* events/mips/r12000/events:
+	* events/mips/sb1/events:
+	* events/mips/vr5432/events:
+	* events/mips/vr5500/events:
+	* events/mips/34K/events: comment a bunch of overlapping event.
+	* events/ppc64/cell-be/unit_masks: well, 0 == 0x0 but it's easier
+	  to catch real error by forcing hexa notation for default unit mask.
+
+	* libop/tests/alloc_counter_tests.c: fix mips/34K test, the used event
+	  has been remoded
+
+2007-10-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* doc/oprofile.xml: fix dead url
+	* utils/ophelp.c:
+
+2007-10-17  Jason Yeh  <jason.yeh@amd.com>
+
+	* events/x86-64/family10/events: This patch updates the events and
+	  unit_masks files to match the BIOS and Kernel Developer's Guide
+	  For AMD Family 10h Processors Rev 3.00 released on September 07,
+	  2007. The notable changes are L3 cache events and updates to
+	  corresponding unit masks.
+	* events/x86-64/family10/unit_masks:
+
+2007-10-17  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/opcontrol: newer shell accept if -z ... but older need 
+	  if test -z. This broke opcontrol --dump with bash 2.x and probably
+	  other shell. With bash the error when running opcontrol as non root
+	  was:
+	    /usr/local/bin/opcontrol: line 1670: -z: command not found
+
+2007-10-12  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* libop/op_events.c: check for '.' inside event name, they can't work
+	* events/i386/core_2/events: change '.' by '_' in events name
+	* events/ppc64/cell-be/events:
+
+2007-10-11  Maynard Johnson  <maynardj@us.ibm.com>
+
+	* events/ppc64/970MP/event_mappings: Turn off profiling in
+	  hypervisor on 970MP to prevent lost interrupts
+
+2007-10-10  Maynard Johnson  <maynardj@us.ibm.com>
+
+	* events/ppc64/970MP/events:
+	* events/ppc64/970MP/event_mappings: Fix MMCR values
+	  and counter-to-event mappings on a few 970MP groups
+
+2007-10-09  Melchior Franz  <mfranz@aon.at>
+
+	* libregex/op_regex.cpp: Fix broken string concatenation
+
+2007-10-05  Will Cohen  <wcohen@redhat.com>
+
+	* utils/opcontrol: Modify opcontrol to allow  short form -l and -d for
+	  normal users.
+
+2007-09-25  Brian Twichell <tbrian@us.ibm.com>
+
+	* utils/opcontrol: Modify opcontrol to use a more inclusive
+	  kernel range
+
+2007-08-23  Maynard Johnson <maynardj@us.ibm.com>
+
+	* daemon/opd_anon.c: Make anonymous sample recording
+	  work with 32-bit OProfile and 64-bit anonymous code
+
+2007-08-14  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml:
+	* doc/opcontrol.1.in: clarify behaviour of opcontrol -e
+
+2007-08-02  Jens Wilke <jens.wilke@de.ibm.com>
+
+	* ChangeLog:  Correct the date from previous patch (maynardj)
+
+	* libutil++/op_bfd.cpp: Fix sym_offset calculation.
+	  Bug triggers on 64 bit systems with code mapped
+	  with an address >4G.
+
+2007-08-02  Jens Wilke <jens.wilke@de.ibm.com>
+
+	* libpp/profile_container.cpp: Remove unnecessary offset
+	  calculation.
+
+2007-07-18  Maynard Johnson <maynardj@us.ibm.com>
+
+	* doc/Makefile.am: Include buffers diagram in dist
+
+	* doc/oprofile.xml: Correct filename reference to opreport.xsd
+
+2007-07-16  Maynard Johnson <maynardj@us.ibm.com>
+
+        * configure.in: Bump to 0.9.4cvs.
+
+2007-07-16  Maynard Johnson <maynardj@us.ibm.com>
+
+	* configure.in:
+	* Makefile.am:  Bump release to 0.9.3 and add a line to
+	  EXTRA_DIST to distribute ChangeLog-2006.
+
+2007-07-09  Maynard Johnson <maynardj@us.ibm.com>
+
+        * doc/opreport.xsd:
+        * libpp/xml_utils.cpp: Correct schema version bump
+
+2007-07-02  Maynard Johnson <maynardj@us.ibm.com>
+
+	* libpp/populate_for_spu.cpp: Fix logic in is_spu_profile()
+	  to handle '--separate=thread' option.
+
+2007-06-27  Maynard Johnson <maynardj@us.ibm.com>
+
+	* ChangeLog: ChangeLog cleanup
+
+2007-06-15  Maynard Johnson <maynardj@us.ibm.com>
+
+	* doc/opreport.xsd:
+	* libpp/xml_utils.cpp: Bump schema version to 2.0 to coincide with
+	  callgraph elements added recently to the schema
+
+2007-06-13  Maynard Johnson <maynardj@us.ibm.com>
+
+	* doc/oprofile.xml:
+	* events/Makefile.am:
+	* events/ppc64/power5++/event_mappings:
+	* events/ppc64/power5++/events:
+	* events/ppc64/power5++/unit_masks:
+	* libop/op_cpu_type.c:
+	* libop/op_cpu_type.h:
+	* libop/op_events.c:
+	* utils/opcontrol:
+	* utils/ophelp.c: Add support for POWER5++ (i.e., POWER5+ with PMU
+	  set to POWER6 mode)
+
+2007-06-12  dean gaudet  <dean@arctic.org>
+
+	* events/i386/core_2/events:
+	* events/i386/core_2/unit_masks:  updates to match
+	  253669-022US ISA vol 3B from Intel.  (Including fix
+	  for #1580064 from Arun Sharma.)
+
+2007-06-08  dean gaudet  <dean@arctic.org>
+
+	* events/x86-64/hammer/events:
+	* events/x86-64/hammer/unit_masks: updates from December 2006
+	  AMD update
+
+2007-05-31  Maynard Johnson <maynardj@us.ibm.com>
+
+	* libpp/symbol.h:
+	* libutil++/bfd_support.h:
+	* m4/cellspubfdsupport.m4: Fixups for compile failures on older Linux
+	  distributions
+
+2007-05-29  Dave Nomura  <dcnltc@us.ibm.com>
+
+	* libregex/demangle_symbol.cpp: Strip off leading '.' generated for elf6r-powerpc targets in mangled symbol names.
+
+2007-05-24  Richard Purdie  <rpurdie@openedhand.com>
+
+	* events/arm/xscale1/events:
+	* events/arm/xscale2/events: Add extra Xscale PMU event definitions
+
+2007-05-24  Richard Purdie  <rpurdie@openedhand.com>
+
+	* events/arm/armv6/events:
+	* events/arm/armv6/unit_masks:
+	* libop/op_cpu_type.c:
+	* libop/op_cpu_type.h:
+	* libop/op_events.c:
+	* utils/ophelp.c: Name ARM11 support to be consistent with the kernel,
+	  remove some duplicate code and add some extra events
+
+2007-05-24  Richard Purdie  <rpurdie@openedhand.com>
+
+	* oprofile/pp/oparchive.cpp: If the debug files have the same name
+	  as the original binary, the binary gets overwritten. Add in a .debug
+	  directory to avoid this.
+
+2007-05-23  Joerg Wagner  <wagner@ccrl-nece.de>
+
+	* events/Makefile.am:
+	* events/arm/mpcore/events:
+	* events/arm/mpcore/unit_masks:
+	* libop/op_cpu_type.c:
+	* libop/op_cpu_type.h:
+	* libop/op_events.c:
+	* utils/ophelp.c: ARM MPCore support
+
+2007-05-23  Riku Voipio  <riku.voipio@iki.fi>
+
+	* events/Makefile.am:
+	* events/arm/armv6/events:
+	* events/arm/armv6/unit_masks:
+	* libop/op_cpu_type.c:
+	* libop/op_cpu_type.h:
+	* libop/op_events.c:
+	* utils/ophelp.c: ARM11 support
+
+2007-05-21  Richard Purdie  <rpurdie@openedhand.com>
+  
+	* doc/opreport.xsd:
+	* libpp/format_output.cpp:
+	* libpp/format_output.h:
+	* libpp/xml_utils.cpp:
+	* libutil++/xml_output.cpp:
+	* libutil++/xml_output.h:
+	* pp/opreport.cpp:
+	* pp/opreport_options.cpp: Add callgraph XML output
+ 
+2007-05-20  Dean Gaudet  <dgaudet@users.sourceforge.net>
+
+	* events/i386/core_2/events: ITLB_MISS_RETIRED,MEM_LOAD_RETIRED
+	  only work with counter 0
+
+2007-05-20  Richard Purdie  <rpurdie@openedhand.com>
+
+	* libpp/callgraph_container.cpp:
+	* libpp/callgraph_container.h:
+	* libpp/format_output.cpp:
+	* libpp/format_output.h:
+	* libpp/symbol.h:
+	* libpp/symbol_sort.cpp:
+	* libpp/symbol_sort.h:
+	* pp/opreport.cpp: Convert cg_collection to symbol_collection and use
+	dynamic casting allowing more code reuse for callgraphs
+
+2007-05-19  Richard Purdie  <rpurdie@openedhand.com>
+
+	* doc/oparchive.1.in:
+	* doc/oprofile.xml:
+	* pp/oparchive.cpp:
+	* pp/oparchive_options.cpp:
+	* pp/oparchive_options.h: Add --list-files option to list all files
+	  that would be handled by oparchive.
+
+2007-05-19  Olof Johansson  <olof@lixom.net>
+
+	* events/Makefile.in:
+	* events/ppc64/pa6t/event_mappings:
+	* events/ppc64/pa6t/events:
+	* events/ppc64/pa6t/unit_masks:
+	* libop/op_cpu_type.c:
+	* libop/op_cpu_type.h:
+	* libop/op_events.c:
+	* utils/opcontrol:
+	* utils/ophelp.c: PA Semi 6T support
+
+2007-05-09  Richard Purdie  <rpurdie@openedhand.com>
+
+	* oprofile/daemon/opd_cookie.c: Fix syscall for ARM EABI
+
+2007-05-10  Maynard Johnson <maynardj@us.ibm.com>
+
+	* libpp/Makefile.am:
+	* libpp/populate.cpp:
+	* libpp/populate_for_spu.cpp:
+	* libpp/populate_for_spu.h:
+	* libpp/profile.h:
+	* libpp/profile.cpp:
+	* libutil++/Makefile.am:
+	* libutil++/bfd_spu_support.cpp:
+	* libutil++/bfd_support.h:
+	* libutil++/op_bfd.h:
+	* libutil++/op_spu_bfd.cpp:
+	* libpp/xml_utils.cpp:
+	* libpp/profile_container.cpp:
+	* libpp/symbol.h: Patch 3 of 3 for adding support for profiling
+	  Cell Broadband Engine SPU
+
+2007-05-10  Maynard Johnson <maynardj@us.ibm.com>
+
+	* daemon/liblegacy/opd_sample_files.c:
+	* daemon/opd_events.c:
+	* daemon/opd_events.h:
+	* daemon/opd_interface.h:
+	* daemon/Makefile.am:
+	* daemon/opd_mangling.c:
+	* daemon/opd_sfile.c:
+	* daemon/opd_sfile.h:
+	* daemon/opd_spu.c:
+	* daemon/opd_trans.c:
+	* daemon/opd_trans.h:
+	* libop/op_sample_file.h: Patch 2 of 3 for adding support for profiling
+	  Cell Broadband Engine SPU
+
+2007-05-10  Maynard Johnson <maynardj@us.ibm.com>
+
+	* configure.in:
+	* doc/oprofile.xml:
+	* events/ppc64/cell-be/events:
+	* m4/Makefile.am:
+	* m4/cellspubfdsupport.m4:
+	* utils/opcontrol: Patch 1 of 3 for adding support for profiling
+	  Cell Broadband Engine SPU
+
+2007-04-25  Manoj Ekbote  <manoj.ekbote@broadcom.com>
+
+	* events/mips/sb1/events: fix SB1 events
+
+2007-04-19  Dave Nomura  <dcnltc@us.ibm.com>
+
+	* events/ppc64/power6/events: counter 3 should have been used 
+	  in the specification of the default CYCLES event, not counter 1
+
+2007-04-13  Will Cohen  <wcohen@redhat.com>
+
+	* libop/op_cpu_type.c:
+	* libop/op_cpu_type.h: Move new entries to end of list
+	to improve backward compatibility with enum values.
+	
+2007-04-11  John Levon  <levon@movementarian.org>
+
+	* doc/oprofile.xml: IRC channel is on OFTC
+
+2007-04-10  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* utils/ophelp.c: if userspace doesn't recognize the cpu type
+	  warn the user it can use timer mode or upgrade oprofile.
+
+2007-04-04  Maynard johnson <maynardj@us.ibm.com>
+
+	* libutil++/file_manip.cpp: catch result from chown() to avoid
+	  compilation warning (treated as error)
+
+2007-03-23  Jason Yeh  <jason.yeh@amd.com>
+
+	* events/Makefile.am:
+	* events/x86-64/family10/events:
+	* events/x86-64/family10/unit_masks:
+	* libop/op_cpu_type.c:
+	* libop/op_cpu_type.h:
+	* libop/op_events.c:
+	* utils/ophelp.c: Add AMD Family 10 support.
+	
+2007-02-28  Rob Bradford  <rob@o-hand.com>
+
+	* pp/oparchive.cpp: return from main
+
+2007-02-21  Rob Bradford <rob@o-hand.com>
+
+	Reverted previous patches.
+	* pp/oparchive.cpp: Save debuginfo files in .debug sub directory.
+
+	* pp/oparchive.cpp:
+	* pp/oparchive_options.h:
+	* pp/oparchive_options.cpp: List files option.
+
+2007-02-21  Rob Bradford <rob@o-hand.com>
+
+	* pp/oparchive.cpp: Save debuginfo files in .debug sub directory.
+
+	* pp/oparchive.cpp:
+	* pp/oparchive_options.h:
+	* pp/oparchive_options.cpp: List files option.
+
+2007-02-16  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/opd_mangling.c: missing initialisation when mangling an 
+	  anon and callgraph filename. Fix given by Amitabha Roy.
+
+2007-02-06  Dave Nomura <dcnltc@us.ibm.com>
+
+	* libpp/symbol.h:
+	* libutil++/Makefile.am:
+	* libutil++/sparse_array.h: represent count_array_t as a sparse 
+	  array type based on std::map rather than growable_vector which is
+	  based on std::vector to reduce the excessive heap usage on large
+	  profiles.
+
+2007-02-02  Amitabha Roy  <amitabha.roy@gmail.com>
+
+	* daemon/opd_anon.c:
+	* daemon/opd_anon.h:
+	* daemon/opd_mangling.c:
+	* libop/op_mangle.c:
+	* libop/op_mangle.h:
+	* libpp/parse_filename.cpp: save and report name of anonymous
+	  mapping if there is one (as self-contradictory as that
+	  sounds).
+
+2007-02-02  Dave Nomura <dcnltc@us.ibm.com>
+
+	* events/Makefile.am:
+	* events/ppc64/970MP/event_mappings:
+	* events/ppc64/970MP/events:
+	* events/ppc64/970MP/unit_masks:
+	* libop/op_cpu_type.c:
+	* libop/op_cpu_type.h:
+	* libop/op_events.c:
+	* utils/ophelp.c: PPC970MP has different hardware counters than the rest
+	  of the PPC family and must be treated as a different architecture
+	  by oprofile.
+
+2007-01-31  Dave Nomura <dcnltc@us.ibm.com>
+
+	* libpp/xml_utils.cpp: opreport -X was still getting some incorrect 
+	  symbols attributed to the <binary> when processing a --separate=lib
+	  profile.
+	  
+2007-01-29  Philippe Elie  <phil.el@wanadoo.fr>
+
+	* daemon/oprofiled.c: no need for 0755 for the log file mode, use 0644
+	* utils/opcontrol: don't create the log in opcontrol
+
+2007-01-26  Dave Nomura <dcnltc@us.ibm.com>
+
+	* libpp/format_output.cpp:
+	* libpp/xml_utils.cpp: opreport -X was mixing the symbols associated with
+	  an application with those of a library when processing a --separate=lib
+	  profile.
+
+2007-01-02  Dave Nomura <dcnltc@us.ibm.com>
+
+	* events/Makefile.am:
+	* events/ppc64/power6/event_mappings:
+	* events/ppc64/power6/events:
+	* events/ppc64/power6/unit_masks:
+	* libop/op_cpu_type.c:
+	* libop/op_cpu_type.h:
+	* libop/op_events.c:
+	* utils/opcontrol:
+	* utils/ophelp.c:  Add support for Power6
+
+
+See ChangeLog-2006 for earlier changelogs.
diff --git a/oprofile-0.9.7/ChangeLog-2008 b/oprofile-0.9.7/ChangeLog-2008
new file mode 100644
index 0000000..4543889
--- /dev/null
+++ b/oprofile-0.9.7/ChangeLog-2008
@@ -0,0 +1,451 @@
+2008-12-23  Maynard Johnson  <maynardj@us.ibm.com>
+
+	* utils/opcontrol: reverse the logic in
+	  is_non_cell_ppc64_variant to avoid the need
+	  for maintenance as new ppc64 variants are addded
+
+2008-12-12  Maynard Johnson  <maynardj@us.ibm.com>
+
+	* libop/Makefile.am: Add Andi Kleen's new op_hw_specific.h
+	  file to to Makefile.am
+
+2008-11-24  Robert Richter <robert.richter@amd.com>
+
+	* utils/opcontrol: Correct spelling error
+
+2008-11-24  Robert Richter <robert.richter@amd.com>
+
+	* daemon/opd_events.c:
+	* daemon/opd_events.h:
+	* daemon/opd_mangling.c:
+	* daemon/opd_mangling.h:
+	* daemon/opd_sfile.c:
+	* daemon/opd_trans.c:
+	* events/x86-64/family10/events:
+	* utils/opcontrol: fix whitespaces
+
+2008-11-12  Andi Kleen  <andi@firstfloor.org>
+
+	* libop/op_events.c
+	* libop/op_events.h
+	* libpp/op_header.cpp: Fix regression in arch perfmon code
+	  (see bug #2161762)
+
+2008-11-12  Andi Kleen  <andi@firstfloor.org>
+
+	* events/i386/arch_perfmon/events: Fix event name to avoid
+	  parsing error
+
+2008-11-05  Maynard Johnson  <maynardj@us.ibm.com>
+
+	* libutil++/file_manip.cpp: Add mode arg to open
+
+2008-10-30  William Cohen  <wcohen@redhat.com>
+
+	* m4/binutils.m4: Defeat compiler optimization in configure
+	  check for bfd_get_synthetic_symtab
+
+2008-10-27  Maynard Johnson  <maynardj@us.ibm.com>
+
+	* libutil++/op_spu_bfd.cpp: Initialize anon_obj to false for op_bfd
+	  objects for Cell SPE embedded binaries
+
+2008-10-23  Dave Nomura  <dcnltc@us.ibm.com>
+
+	* libutil++/xml_output.cpp:
+	* libutil/xml_out.c:
+	* libutil/xml_out.h:
+	* libutil/xml_events.c:
+	* libutil/xml_events.h:
+	* libutil/Makefile.am:
+	* libop/op_xml_out.c:
+	* libop/op_xml_out.h:
+	* libop/op_xml_events.c:
+	* libop/op_xml_events.h:
+	* libop/Makefile.am: moved xml util routines to libop and fixed some
+	  other problems in the previous patch
+
+2008-10-15  Dave Nomura  <dcnltc@us.ibm.com>
+
+	* utils/ophelp.c:
+	* libutil++/xml_output.cpp:
+	* libutil++/xml_output.h:
+	* libutil/xml_out.c:
+	* libutil/xml_out.h:
+	* libutil/xml_events.c:
+	* libutil/xml_events.h:
+	* libutil/Makefile.am: added -X option to ophelp to generate XML
+
+2008-10-06  Maynard Johnson  <maynardj@us.ibm.com>
+
+	* configure.in:
+	* m4/binutils.m4:
+	* m4/cellspubfdsupport.m4: Handle BFD's new dependency on libz
+
+2008-08-28  Maynard Johnson  <maynardj@us.ibm.com>
+
+	* configure.in: Add configure option for non-standard binutils lib
+
+2008-08-28  Andi Kleen  <andi@firstfloor.org>
+
+	* events/i386/arch_perfmon/events:
+	* events/i386/arch_perfmon/unit_masks:
+	* events/Makefile.am:
+	* libop/op_cpu_type.c:
+	* libop/op_cpu_type.h:
+	* libop/op_events.c:
+	* libop/op_events.h:
+	* libop/op_hw_specific.h:
+	* libpp/op_header.cpp:
+	* utils/ophelp.c: support for Intel arch perfmon
+
+2008-08-28  Maynard Johnson  <maynardj@us.ibm.com>
+
+	* configure.in: Change AM_INIT_AUTOMAKE to 0.9.5cvs; enables -werror
+	  gcc option to stop build on warnings
+
+2008-08-27  Jatin Nansi <jnansi@redhat.com>
+
+	* utils/opcontrol: vecho parameters after "--verbose" option processed
+
+2008-08-08  Daniel Hansel <daniel.hansel@linux.vnet.ibm.com>
+
+	* daemon/init.c: Fixed call of execvp() to execute opjitconv if
+	  it is installed in a custom directory
+
+2008-08-07  Maynard Johnson  <maynardj@us.ibm.com>
+
+	* libutil++/bfd_support.cpp:
+	* libutil++/op_bfd.cpp:
+	* libutil++/op_bfd.h: Fix a couple problems relating
+	  to overlay symbols for Cell SPE applications
+
+2008-07-31  Maynard Johnson  <maynardj@us.ibm.com>
+