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.
