Wed Aug 12 14:59:06 1998 Ian Lance Taylor Avoid some overflow cases: * basic_blocks.h (bb_min_calls): Change to unsigned long. * call_graph.h (cg_tally): Change count parameter to unsigned long. * cg_arcs.h (Arc): Change count field to unsigned long. (arc_add): Change count parameter to unsigned long. * source.h (Source_File): Change ncalls field to unsigned long. * symtab.h (Sym): Change fields ncalls, bb_calls, and cg.self_calls to unsigned long. * Many files: Update accordingly. * configure, Makefile.in, aclocal.m4: Rebuild with current tools. Fri Jul 10 17:29:49 1998 Stan Cox * configure.in (BSD44_FORMAT): Define for cygwin32, win32, mingw32 * configure: Rebuild. Fri Jun 12 13:40:05 1998 Tom Tromey * po/Make-in (all-yes): If maintainer mode, depend on .pot file. ($(PACKAGE).pot): Unconditionally depend on POTFILES. Sun May 10 22:35:33 1998 Jeffrey A Law (law@cygnus.com) * po/Make-in (install-info): New target. Tue May 5 18:28:40 1998 Tom Tromey * gprof.h (_): Undefine BFD's version. Tue Apr 28 19:17:33 1998 Tom Tromey * gprof.c (main): Conditionally call setlocale. * gprof.h: Include if HAVE_LOCALE_H. (LC_MESSAGES): Now can be defined even when ENABLE_NLS. Tue Apr 28 19:50:09 1998 Ian Lance Taylor * corefile.c: Rename from core.c. * corefile.h: Rename from core.h. * Many .c files: Include corefile.h rather than core.h. * Makefile.am (sources): Change core.c to corefile.c. (noinst_HEADERS): Change core.h to corefile.h. ($(OBJECTS)): Depend upon corefile.h rather than core.h. (corefile.o): Rename target from core.o, depend upon corefile.c. * Makefile.in, po/POTFILES.in: Rebuild. Mon Apr 27 16:50:40 1998 Ian Lance Taylor * configure.in: Change version number to 2.9.4 * configure: Rebuild. Wed Apr 22 16:01:17 1998 Tom Tromey * po/Make-in (MKINSTALLDIRS): Don't look in $(top_srcdir). Wed Apr 22 00:00:22 1998 Tom Tromey * gprof.h: Added includes and defines for gettext. * configure.in (ALL_LINGUAS): New macro. Call CY_GNU_GETTEXT. Create po/Makefile.in and po/Makefile. * acconfig.h (ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT, HAVE_STPCPY, HAVE_LC_MESSAGES): Define. * gprof.c (main): Call setlocale, bindtextdomain, textdomain. * Makefile.am (SUBDIRS): New macro. (INCLUDES): Look in intl dirs for headers. Define LOCALEDIR. (gprof_DEPENDENCIES): Added INTLDEPS. (gprof_LDADD): Added INTLLLIBS. (POTFILES): New macro. (po/POTFILES.in): New target. * Many files: Wrap user-visible strings with gettext invocation. Tue Apr 7 12:43:37 1998 Ian Lance Taylor From hjl@lucon.org : * Makefile.am (diststuff): New target. * Makefile.in: Rebuild. Mon Mar 30 12:47:48 1998 Ian Lance Taylor * configure.in: Set version to 2.9.1. * configure: Rebuild. * Branched binutils 2.9. Sat Mar 28 23:09:08 1998 Ian Lance Taylor Fix some gcc -Wall warnings: * cg_arcs.c (num_cycles): Change to unsigned int. (numarcs): Likewise. (arc_add): Change maxarcs to unsigned int. (cg_assemble): Change index to unsigned int. * cg_arcs.h (num_cycles, numarcs): Update declarations. * cg_print.c (cg_print): Change index to unsigned int. (cg_print_index): Change index, nnames, todo, i, and j to unsigned int. (cg_print_file_ordering): Change symbol_count and index2 to unsigned int. * core.c (symbol_map_count): Change to unsigned int. (core_create_function_syms): Change j to unsigned int. (core_create_line_syms): Add cast to avoid warning. * hist.c (hist_assign_samples): Change j to unsigned int. (hist_print): Change index to unsigned i nt. Add cast to avoid warning. * sym_ids.c (parse_spec): Add casts to avoid warning. * symtab.c (symtab_finalize): Change j to unsigned int. (sym_lookup): Update printf format strings. * symtab.h (Sym_Table): Change len to unsigned int. * tahoe.c (tahoe_reladdr): Add casts to avoid warnings. Tue Mar 24 19:00:11 1998 Ian Lance Taylor Add --demangle and --no-demangle options: * gprof.h (demangle): Declare. * gprof.c (demangle): New global variable. (OPTION_DEMANGLE, OPTION_NO_DEMANGLE): Define. (long_options): Add "demangle" and "no-demangle". (usage): Mention --demangle and --no-demangle. (main): Handle OPTION_DEMANGLE and OPTION_NO_DEMANGLE. * utils.c (print_name_only): Only demangle symbol name if demangle is true. * gprof.texi (Output Options): Document new options. Fri Mar 20 19:21:56 1998 Ian Lance Taylor * Makefile.in: Rebuild with automake 1.2e. * aclocal.m4, configure: Rebuild with libtool 1.2. Thu Feb 12 14:36:05 1998 Ian Lance Taylor * gprof.c (usage): Update bug-gnu-utils address. Sat Feb 7 15:43:12 1998 Ian Lance Taylor * configure, aclocal.m4: Rebuild with new libtool. Fri Feb 6 12:02:28 1998 Ian Lance Taylor * alpha.c (alpha_Instruction): Use int, not signed. Fri Feb 6 02:00:19 1998 Jeffrey A Law (law@cygnus.com) * core.c (core_init): Adding missing "break". Thu Feb 5 12:49:37 1998 Ian Lance Taylor * configure, Makefile.in, aclocal.m4: Rebuild with new libtool. Tue Feb 3 14:25:25 1998 Brent Baccala * bbconv.pl: New file. * Makefile.am (EXTRA_DIST): Add bbconv.pl. * Makefile.in: Rebuild. * gprof.texi: Extensive additions to document all arguments and output formats. * symtab.c (symtab_finalize): Prefer function symbols over line symbols. (dbg_sym_lookup): Correct debugging messages. * gprof.c (main): --sum implies --line. * cg_print.c (cg_print): When doing line by line profiling, don't use a non-function as a main listing item. * call_graph.c (cg_tally): When using line by line profiling, use the function symbol as the child. * symtab.h (NBBS): Define. (Sym): Add bb_addr and bb_calls fields. * basic_blocks.c (bb_read_rec): Save multiple basic blocks per symbol. (bb_write_blocks): Adjust for multiple basic blocks per symbol. (print_exec_counts): Don't check whether a symbol is the start of a basic block. Print all basic blocks for a symbol. (annotate_with_count): Rewrite to print all basic block counts and to pay attention to width argument. (print_annotated_source): Don't check whether symbol is the start of a basic block. Make it possible to build a cross gprof, although a few cases are still not handled: * configure.in: Don't set MY_TARGET. * gprof.h: Don't include MACHINE_H. Don't define FOPEN_RB or FOPEN_WB; just get them from sysdep.h. * core.h (min_insn_size, offset_to_code): Declare. * core.c (MIN_INSN_SIZE): Don't define. (min_insn_size, offset_to_code): New variables. (core_init): Initialize min_insn_size and offset_to_code. (find_call): New function. (core_create_line_syms): Don't use min_dist. Set is_static in pass 2. * hist.c (UNITS_TO_CODE): Define. * gprof.c (default_excluded_list): Add "__mcount_internal". * gmon.h: Change TARGET_alpha to __alpha__. * hertz.h: Ifdef MACH, define hertz as HZ. * alpha.c (alpha_Instruction): Rename from Instruction. Change all references. (alpha_find_call): Rename from find_call. * alpha.h: Remove. * dummy.c, dummy.h: Remove. * i386.c (i386_iscall): Rename from iscall. Change all references. Check for call instruction, not jump or lcall. (i386_find_call): Rename from find_call. Correct for VMA. Correct call destination computation. Don't dereference symbol if it is NULL. * i386.h: Remove. * ns532.c, ns532.h: Remove. * sparc.c (CALL): Define. (sparc_find_call): Rename from find_call. * sparc.h: Remove. * tahoe.c: Include cg_arcs.h, core.h, hist.h, and symtab.h. Don't include time_host.h. (CALLF, PC): Define. (enum tahoe_opermodes, tahoe_operandenum): Define. Rename all references to opermodes or operandenum to these. (tahoe_operandmode): Rename from operandmode. Call abort if switch does not return. (tahoe_operandname): Rename from operandname. Call abort if switch does not return. (tahoe_operandlength): Rename from operandlength. Call abort if switch does not return. (tahoe_reladdr): Rename from reladdr. (tahoe_find_call): Rename from find_call. Use core_text_space rather than textspace. * tahoe.h: Remove. * vax.c (CALLS, PC): Define. (enum opermodes, operandenum, struct modebyte): Define. (vax_operandmode): Rename from operandmode. Call abort if switch does not return. (vax_operandname): Rename from operandname. Call abort if switch does not return. (vax_operandlength): Rename from operandlength. Call abort if switch does not return. (vax_reladdr): Rename from reladdr. (vax_find_call): Rename from find_call. * vax.h: Remove. * Makefile.am (AUTOMAKE_OPTIONS): Set to cygnus. (MY_TARGET): Remove. (INCLUDES): Remove -DTARGET_$(MY_TARGET) and -DMACHINE_H= \"$(MY_TARGET).h\". (gprof_SOURCES): Add i386.c, alpha.c, vax.c, tahoe.c, sparc.c. (gprof_DEPENDENCIES): Remove $(MY_TARGET).o. (gprof_LDADD): Likewise. (noinst_HEADERS): Remove alpha.h, i386.h, ns532.h, sparc.h, tahoe.h, vax.h, dummy.h. (EXTRA_DIST): Remove alpha.c, i386.c, ns532.c, sparc.c, tahoe.c, vax.c, dummy.c. ($(OBJECTS)): Don't depend upon $(MY_TARGET).h. ($(MY_TARGET).o): Remove target. (i386.o, alpha.o, vax.o, tahoe.o, sparc.o): New targets. * configure, Makefile.in, aclocal.m4: Rebuild. Mon Dec 29 14:17:08 1997 Ian Lance Taylor * core.c (core_sym_class): Treat weak symbols as text symbols. From Dean Gaudet . Wed Sep 24 11:35:43 1997 Ian Lance Taylor * aclocal.m4: Rebuild with new libtool. * Makefile.in: Rebuild with current automake. * configure: Rebuild. Sat Aug 9 16:25:01 1997 Ian Lance Taylor * configure.in: Change version number to 2.8.2. Call AM_PROG_LIBTOOL. Remove shared library handling; now handled by libtool. Add AM_CONFIG_HEADER. Change AC_PROG_INSTALL to AM_PROG_INSTALL. Add AM_EXEEXT. * Makefile.am (LINK): Remove. (gprof_LDFLAGS): Remove (gprof_DEPENDENCIES): Change libbfd.a to libbfd.la. (gprof_LDADD): Likewise. ($(OBJECTS)): Depend upon gconfig.h and ../bfd/config.h. * gprof.h: Undefine PACKAGE and VERSION after including BFD sysdep.h file, then include new gconfig.h file. * gprof.c (VERSION): Don't define. * acconfig.h: New file. * stamp-h.in: New file. * gconfig.in: New file, created by autoheader. * Makefile.in, configure, aclocal.m4: Rebuild. Sat Jun 28 23:20:42 1997 Ian Lance Taylor * aclocal.m4, configure, Makefile.in: Rebuild with automake 1.2. Mon Jun 16 15:31:39 1997 Ian Lance Taylor * Makefile.am (INCLUDES): Add -DDEBUG. * Makefile.in: Rebuild. Tue Apr 15 14:19:30 1997 Ian Lance Taylor Change to use automake: * Makefile.am: New file. * configure.in: Run AM_INIT_AUTOMAKE, AM_MAINTAINER_MODE, and AM_CYGWIN32. * aclocal.m4: New file, created by aclocal. * Makefile.in: Replace with file created by automake --cygnus. * configure: Rebuild. Thu Apr 3 13:21:25 1997 Ian Lance Taylor * gprof.c (VERSION): Define as "2.8.1". * Branched binutils 2.8. Thu Mar 27 17:15:23 1997 Ian Lance Taylor * gprof.c (main): Correct copyright message. Mon Mar 24 11:12:26 1997 Ian Lance Taylor * Makefile.in (.c.o): Define TARGET_$(MY_TARGET) when compiling. * gmon.h: Use bytes counts rather than sizeof in struct raw_phdr and struct raw_arc. Mon Mar 17 10:54:47 1997 David Mosberger-Tang * cg_arcs.c (arc_add): memset() newly alloced arc to ensure all fields are initialized with 0. Sat Mar 15 19:17:31 1997 H.J. Lu * symtab.h (find_call): Declare. * cg_arcs.c (cg_assemble): Don't declare find_call. * hist.c (scale_and_align_entries): Declare. Thu Feb 27 12:46:53 1997 Ian Lance Taylor * configure.in: Define BSD44_FORMAT if the target looks like a BSD4.4 derived system. * configure: Rebuild. * Makefile.in (.c.o): Add @DEFS@. * gmon_io.c (gmon_out_read): In BSD44_FORMAT code, get profrate from profrate field, not version field. Thu Jan 16 17:42:54 1997 Ian Lance Taylor * dummy.c (find_call): Clear ignore_direct_calls. Tue Dec 31 15:44:10 1996 Ian Lance Taylor * Makefile.in (.c.o): Add -D_GNU_SOURCE. Put $(CFLAGS) at the end. (gprof): Put $(CFLAGS) after the other options. Tue Nov 26 17:08:38 1996 Ian Lance Taylor * configure: Rebuild with autoconf 2.12. Wed Oct 2 15:23:16 1996 Ian Lance Taylor * sparc.c (find_call): Align p_lowpc to avoid bus error. Tue Oct 1 15:58:10 1996 Ian Lance Taylor * gprof.c (usage): Print bug report address. (main): Change version printing to match current GNU standards. Fri Aug 30 12:16:11 1996 Ian Lance Taylor * gmon.h: Replace #elif with #else/#endif. Thu Aug 29 17:04:10 1996 Michael Meissner * configure.in (i[345]86-*-*): Recognize i686 for pentium pro. * configure: Regenerate. Thu Aug 22 17:12:30 1996 Ian Lance Taylor * configure.in: Set and substitute HLDENV. * configure: Rebuild. * Makefile.in (HLDENV): New variable. (gprof): Use $(HLDENV). Wed Aug 7 14:43:51 1996 Philippe De Muyter * core.c (read_function_mappings): Cast xmalloc return. Thu Jul 4 12:01:42 1996 Ian Lance Taylor * gprof.c (VERSION): Define as "2.7.1". * Released binutils 2.7. * bb_exit_func.c: Rename from __bb_exit_func.c, so that it can be stored on a System V file system. Thu Jun 27 11:36:22 1996 Ian Lance Taylor * configure.in: Call AC_ISC_POSIX. * configure: Rebuild. * Makefile.in (gprof): Pass $(CFLAGS) during link. * hertz.c: Don't include ; let sysdep.h handle that. If HAVE_SETITIMER is not defined, try using sysconf. Mon Jun 24 18:27:28 1996 Jason Molenda (crash@godzilla.cygnus.co.jp) * Makefile.in (exec_prefix, bindir, libdir, mandir, infodir, datadir, INSTALL_PROGRAM, INSTALL_DATA): Use autoconf-set values. * configure.in (AC_PREREQ): autoconf 2.5 or higher. (AC_PROG_INSTALL): added. * configure: Rebuilt. Mon Jun 24 12:03:09 1996 Ian Lance Taylor * configure.in: On alpha*-*-osf*, link against libbfd.a if not using shared libraries. * configure: Rebuild with autoconf 2.10. Tue Jun 18 17:35:58 1996 Ian Lance Taylor * core.c (core_create_line_syms): Use xstrdup rather than strdup. * source.c (source_file_lookup_path): Likewise. Mon Apr 8 14:44:33 1996 Ian Lance Taylor * configure.in: Permit --enable-shared to specify a list of directories. * configure: Rebuild. Thu Mar 21 17:18:25 1996 Ian Lance Taylor * core.c (core_create_function_syms): Move filename and func_name inside ifdef where they are used. * core.c (core_sym_class): Parenthesize && within ||. * symtab.c (symtab_finalize): Correct parenthesization. * cg_print.h (cg_print_file_ordering): Declare. (cg_print_function_ordering): Declare. * __bb_exit_func.c (__bb_exit_func): Replace bcopy with memcpy. * cg_arcs.c (arc_add): Likewise. * cg_print.c (cg_print_function_ordering): Likewise. Thu Mar 21 17:02:02 1996 David Mosberger-Tang * gprof.c (default_excluded_list): Add "__mcount". * gprof.c (main): Change ifdef __osf__ to __alpha__. * gmon_io.c (gmon_out_read): If BSD44_FORMAT is defined, get the profiling rate from the header. * gmon.h (struct raw_phdr): Only include pad if both __alpha__ and __osf__ are defined. Add new fields if BSD44_FORMAT is defined. * alpha.h (MIN_INSN_SIZE): Define. * core.c (MIN_INSN_SIZE): If not defined, define as 1. (core_sym_class): Ignore debugging symbols. (core_create_line_syms): Use MIN_INSN_SIZE when gathering line information. Wed Mar 20 18:15:47 1996 Andreas Schwab * cg_print.c (cg_print_function_ordering): Fix __GNUC__ misspelled as __GNU_C__. (order_and_dump_functions_by_arcs): Likewise. Tue Mar 12 12:19:50 1996 Ian Lance Taylor * configure: Rebuild with autoconf 2.8. Sun Feb 18 15:06:18 1996 Ian Lance Taylor * configure.in: Check for 'do not mix' from native linker before trying to use -rpath. * configure: Rebuild. Tue Feb 13 15:32:53 1996 Ian Lance Taylor * configure.in: Set HDLFLAGS for *-*-hpux with --enable-shared. * configure: Rebuild. Wed Feb 7 14:03:17 1996 Ian Lance Taylor * configure.in: Don't set CC. Look for --enable-shared. Set BFDLIB and HLDFLAGS and substitute them. * configure: Rebuild. * Makefile.in (LIBS): Use @BFDLIB@. (HLDFLAGS): New variable. (gprof): Use $(HLDFLAGS). Mon Feb 5 16:34:44 1996 Ian Lance Taylor Support for building bfd and opcodes as shared libraries, based on patches from Alan Modra : * Makefile.in (LIBDEPS): New variable. (LIBS): Use -L../bfd -lbfd. (gprof): Depend upon $(LIBDEPS) rather than $(LIBS). Sat Dec 30 10:11:03 1995 Jeffrey A Law (law@cygnus.com) * gprof.c (long_options): Add "--function-ordering" and "--file-ordering" options. (usage): Add new options to usage message. (main): Handle new options. * gprof.h (STYLE_FUNCTION_ORDER): Define. (STYLE_FILE_ORDER): Define. (function_mapping_file): Declare. * cg_arcs.c (arcs, numarcs): New globals. (arc_add): Put new arcs into the arc array so the function/file ordering code can examine them. * cg_arcs.h (struct arc): New field "has_been_placed". (arcs, numarcs): Declare new globals. * core.c (symbol_map, symbol_map_count): New globals. (read_function_mappings): New function to read in a function to object map file. (core_init): Call read_function_mappings if a function mapping file exists. (core_create_function_syms): Handle function to object file mappings. * symtab.h (struct sym): New fields "mapped", "has_been_placed", "nuses", "prev". * cg_print.c (cmp_arc_count): New function for sorting arcs. (cmp_fun_nuses): Likewise for functions. (cg_print_function_ordering): New function to print a suggested function ordering. (cg_print_file_ordering): Likewise for ordering .o files. (order_and_dump_functions_by_arcs): Helper function for function and object file ordering code. Sun Dec 24 21:32:27 1995 Jeffrey A Law (law@cygnus.com) * core.c (core_sym_class): Ignore symbols without BSF_FUNCTION set if ignore_non_function is set. * gprof.h (ignore_non_functions): Declare. * gprof.c (ignore_non_functions): Define. (long_options): Add "ignore-non-functions". (usage): Add new options. (main): Recognize "-D" and "--ignore-non-functions" option. Tue Nov 21 13:24:39 1995 Ken Raeburn * Makefile.in (.m.c): Strip out directory name from function name. * hist.c (scale_and_align_entries): Don't use DEFUN_VOID. Do UNITS_TO_CODE adjustment unconditionally; compiler can optimize away zero-offset case. Refer to scaled_addr, not aligned_addr. * vax.c: Don't include vax.h here. Thu Nov 16 03:41:37 1995 Ken Raeburn Version 2.6 released. Wed Nov 8 11:40:04 1995 Ian Lance Taylor * gprof.c (main): Cast getenv return value. Mon Nov 6 15:05:00 1995 Ken Raeburn * Makefile.in (TAGS): New target. Wed Nov 1 12:51:21 1995 Per Bothner * Makefile.in (DISTSTUFF): Rename to GEN_FILES, to avoid confusion. (all): Depend on $(GEN_FILES), not diststuff (which also depends on info). Wed Nov 1 15:23:15 1995 Manfred Hollstein KS/EF4A 60/1F/110 #40283 * sym_ids.c: Include . Wed Oct 25 13:24:31 1995 Per Bothner * Makefile.in (diststuff): Also make info. (mostlyclean): Don't remove gprof.info*. (maintainer-clean realclean): Also remove *.info*. Fri Oct 6 16:25:32 1995 Ken Raeburn Mon Sep 25 22:49:32 1995 Andreas Schwab * Makefile.in: Add dependecies for $(OBJS) on header files. * cg_print.c (print_cycle, print_members, cg_print_index): Fix new style output format to make it consistent. * dummy.c (find_call): Fix typo in error message. Wed Sep 20 13:21:02 1995 Ian Lance Taylor * Makefile.in (maintainer-clean): New target, synonym for realclean. Fri Sep 8 14:38:08 1995 Ian Lance Taylor * Makefile.in (install): Don't install in $(tooldir). Fri Aug 25 15:30:05 1995 Ken Raeburn NS32K changes from Ian Dall: * configure.in: Use ns32k, not ns532. * ns532.c: Include symtab.h. (find_call): Renamed from findcall. Print a message. * ns532.h: Remove dummy.h comments. Tue Aug 22 10:00:45 1995 Jeffrey A. Law * Makefile.in (install): Remove "brokensed" hack, unnecessary now that we're using autoconf. Wed Jul 19 18:46:13 1995 Fred Fish * core.c (get_src_info): Cast arg 7 of bfd_find_nearest_line to proper type of "unsigned int *". Fri Jun 16 15:29:36 1995 Ken Raeburn * configure.in: Use changequote around use of []. Mon Jun 12 12:14:52 1995 J.T. Conklin * Makefile.in (distclean, realclean): Remove config.cache and config.log. Wed May 17 17:56:53 1995 J.T. Conklin * Makefile.in (Makefile): Added config.status to dependency list. (config.status): New target. (SHELL): New definition. Tue Apr 25 21:11:12 1995 Ken Raeburn * Makefile.in (install): Depend on "all". Thu Apr 20 17:29:07 1995 Ken Raeburn * Makefile.in: Change all references to MY_MACHINE to MY_TARGET, to match configure script. Wed Apr 19 11:19:37 1995 J.T. Conklin * gen-c-prog.awk: Changed reference to "make-c-prog.awk" in comment emitted by this script to gen-c-prog.awk. * Makefile.in, configure.in: Converted to use autoconf. * configure: New file, generated with autoconf 2.3. * config/{mt-alpha, mt-dummy, mt-i386, mt-ns532, mt-sparc, mt-tahoe, mt-vax}: Removed. Mon Mar 13 21:44:24 1995 Ken Raeburn * __bb_exit_func.c: New file, from David Mosberger-Tang. Thu Feb 9 16:56:07 1995 David Mosberger-Tang * All *.c: More cleanup towards GNU format. * gmon_out.h (struct gmon_hist_hdr, struct gmon_cg_arc_record): replaced sizeof (bfd_vma) by size (char*) because Ken tells me that bfd_vma is only guaranteed to be at least as big as a pointer. (GMON_Record_tag): added explicit enumeration values to ensure compatibility across compilers. * gmon_io.c (get_vma, put_vma): replaced sizeof(bfd_vma) by sizeof(char*). Tue Feb 7 17:24:12 1995 Ken Raeburn * All *.c and *.h files: Ran "indent -gnu". Cleaned up a couple of constructs GNU indent couldn't handle. Block comments not yet rewritten in GNU format. * gprof.c (VERSION): Changed to 2.6, to get in sync for next binutils release. Sun Feb 5 16:19:46 1995 David Mosberger-Tang * symtab.c (symtab_finalize): ensure globals symbols really are favored over static ones---even if their name looks less preferable; this is important for HP-UX; for example, there is a static label Ltext_something that aliases the global symbol _start * hist.c (hist_print): auto-scaling is now in effect for FSF-style output only; also, auto-scaling is now performed based on per-call, rather than total execution time, which is what it was meant to be. * gprof.h (File_Format): new type. * gprof.c (VERSION): upped to 2.7---seems to be completely out of sync with Cygnus version numbers though... (long_options): renamed --gmon-info to --file-info, --width added, renamed --old-file-format to --file-format (main): dito; also added support to read prof files, but as mon_out_read() is not implemented, it's #ifdef'd out for now (usage): update to reflect new options. * gmon_io.c: replaced "old_file_format" by more general "file_format" option * gmon.h (struct raw_phdr): fixed declaration for OSF/1. * core.c (core_sym_class): added back check for __gnu_compiled and ___gnu_compiled for the benefit of systems without bfd_find_nearest_line() support (get_src_info): now the libbfd is fixed, invoke bfd_find_nearest_line() with section-relative addresses (core_create_function_syms): get_src_info() calls are currently enabled for OSF/1 only. It appears to work allright for SunOS 4.1.x as well, but on SPARCs it gets painfully slow with the current implementation of aout_32_find_nearest_line(); unfortunately, this means that static functions will not have their filename printed in the call-graph function index; line-level profiling should still work, but requires some patience * cg_print.c (cg_print_index): sanitised printing of index when using FSF-style output; in particular, output width is now controlled via option --width and the function tries hard to keep columns aligned even in the presence of (occasional) long names * NOTES: a first shot at updating the documentation. Wed Feb 1 19:07:44 1995 David Mosberger-Tang * core.c (core_create_function_syms): fixed computation of min_vma and max_vma. * *.c: removed rcsid. Tue Jan 31 16:18:18 1995 Ken Raeburn * Lots of changes from David Mosberger-Tang: Tue Oct 25 19:20:14 1994 David Mosberger-Tang * gprof.c (main): put parentheses around & within &&. * basic_blocks.c (bb_read_rec): print warning message (once) when ignoring basic-block execution counts. * source.c (source_file_lookup_name): corrected second argument to strcmp(). * hist.c (print_header): merged Fri Oct 21 18:58:02 1994 change by Ken Raeburn from binutils-2.5.1. * gmon_io.c (gmon_out_read): the output stule STYLE_GMON_INFO is now supported both for old and new (versioned) gmon.out files. Old files are identified as version 0. * gmon.h (struct raw_arc): count field is now sizeof(long) bytes long (instead of 4) because that is what OSF/1 v3.0 uses. * core.c: minor fixes and debugging info changes. Sun Sep 11 18:47:47 1994 David Mosberger-Tang (davidm@piston.cs.arizona.edu) * core.c (core_init): if .text cannot be found, try $CODE$ (the name of the text-section under HP-UX). * hist.c (hist_assign_samples): fixed off-by-one bug: highpc points one past the last sampling bin, so hist_scale should be computed as "hist_scale /= hist_num_bins", not "hist_scale /= hist_num_bins - 1". * gmon_io.c, hist.c, hist.h: renamed hist_num_samples to hist_num_bins. * configure.in: added alpha-*-*) for per-target config. * alpha.c, alpha.h: created. * gprof.c (default_excluded_list): , added. * core.c (core_create_function_syms, core_create_line_syms): explicitly keep two sentinels "" and "" that catch all addresses outside the text-space. Thus, sym_lookup(&symtab, addr) continues to guarantee not to return 0 on any address. It also avoids incorrectly crediting the first/last symbol in the text-space. * core.c (core_create_line_syms): always create function symbols first, then merge in line symbols; this is so that if parts of the program were compiled without -g, function-level symbols are available still. * utils.c (print_name_only): support for print_path added. * symtab.c (cmp_addr): also use is_func flag in comparison. (symtab_finalize): return immediately when table empty; now more careful about getting rid of the right duplicate symbol. * sparc.c (find_call): many fixes---this function was rather botched in binutils-2.4 already; it should work again. * source.c (source_file_lookup_path): PATH is now strdup'ed (it is not good to rely on get_src_info() to return distinct string pointers). * search_list.c (search_list_append): added cast for xmalloc(). * hist.c: added explicit initialization to some of the global variables; fixed SItab (scales were off by a factor of 10). * hist.h: include of bfd.h added. * gprof.c, gprof.h (print_path): added. * gprof.h (MAX): fixed. * gmon_out.h: renamed gmon_time_hist_hdr to gmon_hist_hdr. * gmon_io.c: added some casts to (long) so we can always print as %lx * core.c (core_get_text_space): fixed to make it work. * cg_print.c (cg_print_index): added support for print_path option. * cg_dfn.h (cg_dfn): wrap prototype in PARAMS(). * call_graph.c, gmon_io.c, hist.c: avoid taking address of array as some compilers complain (e.g., DEC's OSF/1 compiler) * basic_blocks.c, gmon_io.c, hist.c, source.c, sym_ids.c, symtab.c: calls to memset() had 2nd and 3rd args reversed. Sat Sep 10 21:53:13 1994 David Mosberger-Tang (davidm@piston.cs.arizona.edu) * gprof.c: added "_mcount" to default_excluded_list. (main): if output_style==0 and there is either a histogram or a call-graph, always generate flat and call-graph, no matter what line_granularity is set to. * source.c (source_file_lookup_name): if searching for sf->name fails, try again with filename obtained after stripping off any partial path from sf->name. * gprof.h (SRCDEBUG): added. * search_list.c (search_list_append): directories were added in wrong order. * reimplemented selection mechanism from ground up; it is now possible to accurately control what gets included/excluded in each of the output styles; a "symbol-specification" (spec) is the basic means to select a set of symbols; a spec has the syntax: spec == (FILENAME:(FUNCNAME|LINE_NUM) | NAME). arc == spec/spec. any of the terminal symbols can be empty, in which case they match anything (wildcards). NAME is interpreted as a FILENAME if it contains a dot (e.g., foo.c), as LINE_NUM if it starts with a digit, and as FUNCNAME otherwise. For example, to get a call-graph display that ignores arcs from foo() to bar(), you'd say "--no-graph=foo/bar"; to show only arcs into bar() (no matter what the caller), you'd say "--graph=/bar"; and to get a call-graph without any arc info, you'd say "--graph=/"; similarly, to get a flat profile without mcount, you'd say "--no-flat=mcount" and to get a flat profile that shows includes all functions you'd say "--flat=""" (i.e., an empty spec) * hist.c (hist_print): top_time wasn't initialized to 0.0. Fri Sep 9 01:10:21 1994 David Mosberger-Tang (davidm@piston.cs.arizona.edu) * gmon_out.h: all headers now declared in terms of characters to avoid getting into trouble with different compilers introducing different amount of padding; the code already accessed the fields through bfd functions, so that didn't have to change. * hist.c (hist_read_rec, hist_write_rec): added support for collection pc histograms measuring quantities other than time; the histogram header now includes a field that specifies the dimension of the quantity measured by the histogram bins (normally, this is "seconds", but other meaningful dimensions include such things as "I-cache misses", "instruction issue stalls" etc.); there is also a field to specify a one-character abbreviation for the dimension; in the case of time, this would be 's'; in most other cases it probably would be '1' (not a physical dimension). Thu Sep 8 16:05:08 1994 David Mosberger-Tang (davidm@piston.cs.arizona.edu) * gprof.c, gmon_io.[ch]: BSD_COMPATIBLE is gone and new_file_version has become old_file_version; gmon_io.c now always supports old-style gmon.out files; it first tries to read gmon.out as a new version file, if that fails, it tries to read it in the old format; although not very likely, it is possible for gprof to mistake an old-style file as a new one (the first 4 bytes would have to be "gmon"---including the trailing '\0'); in that case, it is necessary to specify --old-file-version * gprof.h: removed dependency on SYSV; the code now always uses strrchr(), memset(), and memcpy() and does not include either of string.h or strings.h; this should make gprof compile on any (Unix) system without configuration (per suggestion of raeburn@cygnus.com) * gprof.c (usage): fixed location of --new-file-format option. * cg_arcs.c (propagate_flags): fixed typo in declaration. * flat_bl.m: removed formfeed at end of file; the form-feed is now printed cg_print.c only when necessary. * major rewrite of gprof---too many changes to mention all of them. new features: + -l now requests profiling at the line level (as opposed to function level); in this mode, gprof creates a "symbol" (aka name-list entry) for each line of source code, instead of one per function) + support for a new gmon.out file format; the new format consists of a header with a magic and a version number, followed by a sequence of profile data; profile data can any of: (a) PC histogram, (b) call-graph arcs, or (c) basic-block execution counts; the version number makes it possible to extend gmon.out in a backwards compatible fashion + support for tcov style annotated output: if the gmon.out file contains basic-block execution counts, the user can request the generation of annotated source files, much like Sun's tcov used to do + long options + new scheme to suppress symbols that aren't function names (e.g., avoids mistaking a goto label as a function) + reorganized source code to make it more managable; as a side effect, gprof now compiles cleanly with "gcc -Wall" Thu Sep 1 15:46:49 1994 David Mosberger-Tang (davidm@piston.cs.arizona.edu) * gprof.c (funcsymbol): bfd_find_nearest_line() is now used as a final cross-check to determine whether a static symbol should be considered as a function-name. Fri Aug 5 19:32:36 1994 David Mosberger-Tang (davidm@piston.cs.arizona.edu) * gmon_io.c (gmon_out_read): recognize "-" as the filename for stdin; this is useful if you wanna keep gmon.out files compressed; this way you can "gzcat" the compressed file into gprof. * gprof.c: flag_min_count now initialized with 1 instead of 0. * basic_blocks.c (bb_annotate_source): added support for creating .tcov files when option flag_annotate_make_files is TRUE. (annotate_with_count): all counts less than the minimum count specified by -m are now annotated with hash-marks. * gprof.c (main): -A is now followed by a string of option chars. * basic_blocks.c (annotate_with_count): replaced b->count with cnt. * source.c: flag_annotate_source replaced by source_lock_map. * source.h: source_lock_map added. * gprof.c (main): new command-line syntax: -S simply specifies which source-files user is interested in; -A requests annotated source files and -AA requests that all lines in a source file are annotated. Thu Aug 4 23:27:03 1994 David Mosberger-Tang (davidm@piston.cs.arizona.edu) * basic_blocks.c (PATH_MAX): if undefined, define as 1024. * sparc.c, i386.c, tahoe.c, vax.c: added include of "time_hist.h" so s_lowpc etc. get declared. * arcs.h (doarcs): created. * arcs.c: reordered static functions such that they get defined before use. * gprof.c (main): added options: -A: request annotation of all source lines (with -S) -m: minimum execution count (with default basic-block display) -N: force new file format (only if BSD_COMPATIBLE is defined) -S: annotate source file -t: set table length (with -S) * Makefile (OBJS): added basic_blocks.o call_graph.o gmon_io.o source.o time_hist.o Fri Jul 1 15:23:50 1994 David Mosberger-Tang (davidm@piston.cs.arizona.edu) * gprof.c (asgnsamples): computation of "pcl" and "pch" depended on the fact being able to store a long in a double without loss of precision; this does not hold on machines with 64 bit longs and 64 bit doubles. Fri Oct 21 18:58:02 1994 Ken Raeburn * printgprof.c (flatprofheader): Always set totime to 1.0 if not greater than 0.0. Suggested by Harold Assink . Fri Sep 23 15:06:45 1994 Ken Raeburn * printgprof.c (printprof): Use free, not cfree. (printgprof, printindex): Ditto. Thu Sep 1 10:40:45 1994 Jeff Law (law@snake.cs.utah.edu) * gprof.h (kfromlist, ktolist, flist, Flist, elist, Elist): Make decls extern to keep native HP compiler quiet. Tue Aug 30 11:12:13 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) * gprof.c (funcsymbol): Ignore ___gnu_compiled as well as __gnu_compiled, for the benefit of systems which add a leading underscore. Wed Aug 24 12:49:13 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) * configure.in: Change i386-*-* to i[345]86-*-*. Sun Jul 10 00:35:31 1994 Ian Dall (dall@hfrd.dsto.gov.au) * ns532.c, ns532.h: New Files. ns532 support. * config/mt-ns532: New File. ns532 support. * gprof.c: user register int i instead of defaulting the int. Allows compilation with -Dregister= for debugging. * configure.in: Add ns532 support. Thu Jun 23 11:22:41 1994 Jeff Law (law@snake.cs.utah.edu) * Makefile.in (gprof): Depend on $(LIBS). Fri May 27 12:24:57 1994 Ken Raeburn (raeburn@cujo.cygnus.com) From binutils-2.4 release: Wed May 11 22:32:00 1994 DJ Delorie (dj@ctron.com) * configure.bat: [new] build makefile from makefile.in (dos) * hertz.c: allow static HERTZ (msdos needs it) * gprof.c: allow target to select "r" or "rb" for fopen * gprof.c: ignore __gnu_compiled symbols * i386.h: dfine FOPEN_RB to "rb" for dos. Tue May 17 15:30:22 1994 E. Michael Smith (ems@cygnus.com) * Makefile.in (.m.c:): Added .SUFFIXES : .m so flat_bl.c would make from flat_bl.m file. Thu May 5 19:23:24 1994 Ken Raeburn (raeburn@cujo.cygnus.com) * Makefile.in (install-info): Check for gprof.info in build dir, fall back to srcdir. Depend on it. * gprof.h (TRUE, FALSE): Always use undef before defining them. Mon Apr 4 23:47:30 1994 Jeffrey A. Law (law@snake.cs.utah.edu) * Makefile.in (MY_MACHINE): Renamed from MACHINE to avoid losing makes (osf1) in which the value of MACHINE can not be changed. * config/*.mt: Changed appropriately. Wed Mar 30 16:12:40 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) * gprof.c (getsymtab): Change nosyms to long. Rename get_symtab_upper_bound to bfd_get_symtab_upper_bound. Check for errors from bfd_get_symtab_upper_bound and bfd_canonicalize_symtab. Tue Mar 22 10:50:52 1994 Jeffrey A. Law (law@snake.cs.utah.edu) * gprof.c (funcsymbol): Use bfd_get_symbol_info instead of bfd_decode_symclass. Sun Mar 20 15:40:21 1994 Jeffrey A. Law (law@snake.cs.utah.edu) * Makefile.in: Avoid bug in hpux sed. Wed Dec 15 20:16:40 1993 david d `zoo' zuhn (zoo@andros.cygnus.com) * gprof.texi (Invoking): add text about -v flag * gprof.1: add text about -v flag Wed Dec 8 16:55:06 1993 david d `zoo' zuhn (zoo@andros.cygnus.com) * gprof.c (VERSION): defined a version macro, print the value when the -v option is used Tue Jul 6 10:11:56 1993 Steve Chamberlain (sac@phydeaux.cygnus.com) * Makefile.in: Install correctly. Thu Jun 24 14:43:22 1993 David J. Mackenzie (djm@thepub.cygnus.com) * gprof.c (main): Get whoami from argv, instead of hardcoding. Use it in usage message. Split usage message to fit in 80 cols. Sun Jun 20 20:58:02 1993 Ken Raeburn (raeburn@poseidon.cygnus.com) * Makefile.in: Undo 15 June change. Wed Jun 16 12:54:53 1993 Steve Chamberlain (sac@phydeaux.cygnus.com) * gmon.h, gprof.h: structs of chars used to hold external representations. * gprof.c (getpfile, openpfile, readsamples): Swap data in using new structures. Tue Jun 15 23:09:17 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) * Makefile.in (.c.o): Look in ../include, not ../bfd, for bfd.h. Mon Jun 14 16:22:59 1993 david d `zoo' zuhn (zoo at rtl.cygnus.com) * Makefile.in: remove parentdir support Mon Jun 7 12:56:17 1993 Per Bothner (bothner@rtl.cygnus.com) * Makefile.in (INCLUDES): Add -I../bfd for sysdep.h and bfd.h. * configure.in: No longer need to configure to get sysdep.h. Tue May 18 21:44:11 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) * Makefile.in (install): should not depend on install-info Mon Apr 26 12:37:46 1993 Ian Lance Taylor (ian@cygnus.com) * gprof.h: Include ansidecl.h before sysdep.h. Undefine hz. Tue Apr 13 16:14:03 1993 Per Bothner (bothner@cygnus.com) * M Makefile.in: Add -g to CFLAGS. Ads LDFLAGS and use in place of CFLAGS where appropriate. * configure.in: Make a sysdep.hlink in the same way other bfd-based directories do. * gprof.h (UNIT): Replace non-standard 'u_short' by 'unsigned short'. * gprof.h: #include sysdep.h instead of a bunch of stuff. * gprof.c (main): Fix typo gproff->gprof. Thu Mar 25 19:00:37 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) * gprof.texi: add INFO-DIR-ENTRY Tue Mar 23 00:03:11 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) * Makefile.in: add installcheck target Sat Feb 27 18:17:10 1993 Per Bothner (bothner@rtl.cygnus.com) * gprof.c (funcsymbol): Invert test for aflag. Thu Feb 25 16:01:50 1993 Per Bothner (bothner@rtl.cygnus.com) * printgprof (xmalloc, xrealloc): Cast results of malloc and realloc to PTR. Wed Feb 3 13:55:33 1993 Jeffrey Osier (jeffrey@fowanton.cygnus.com) * Makefile.in: created info, install-info, dvi Wed Jan 6 00:58:09 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) * Makefile.in: fix install rule for $(PROG) Fri Oct 9 11:25:41 1992 Mark Eichin (eichin@cygnus.com) * gprof.1: updated SYNOPSIS to match actual behavior. Mon Oct 5 17:50:16 1992 Per Bothner (bothner@cygnus.com) * gen-c-prog.awk: New awk script, lightly changed from previously deleted make-c-prog.awk. Converts a text file to a c function that prints that text. * flat_bl.m, fsf_callg_bl.m, bsd_callg_bl.m: New files. Inputs to gen-c-prog.awk, containing text describing gprof output. * blurbs.c: Removed. Use *_bl.c instead. * Makefile.in: Use gen-cprog.awk to generate *_bl.c files from *_bl.m files. Also, improve *clean rules. * printgprof.c (printgprof): Usw new function names from *_bl.c. Sun Aug 30 19:54:53 1992 Per Bothner (bothner@rtl.cygnus.com) * gprof.h, gprof.c, printfgprof.c: Add support for two output styles: The default is similar to the old FSF gprof, while -T sets the variable bsd_style_output, which causes output matching Berkeley's gprof. The biggest differences are that with the FSF style output, the flat profile comes before the call graph; numbers come before explanations; and there is less gratuitous white space. * gprof.h, gprof.c, printfgprof.c: New discard_underscores variable causes discarding of initial underscores when printing symbol names. It is set unless there is a "main" symbol (without an underscore). * printfgprof.c: New function printnameonly(), called by printname(). It handles stripping of initial '_', as well as C++ name-demangling. * gprof.callg, gprof.flat, make-c-prog.awk: Removed. It is just as convenient to edit blurbs.c directly. * Makefile.in: Removed rule for making blurbs.c. * blurbs.c: This is now a true source file (as opposed to being generated from gprof.callg and gprof.flat). Change style to use one long string literal, instead of one literal per output line. Add FSF-style blurb for call graph. Wed Aug 19 14:36:39 1992 Ian Lance Taylor (ian@cygnus.com) * Makefile.in: always create installation directories. Wed Aug 12 15:14:14 1992 Mark Eichin (eichin@cygnus.com) * Makefile.in: change ${MACHINE} to $(MACHINE). Sun Jul 19 17:34:01 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) * Makefile.in: removed installation of the now useless call.{flag,callg} files. * gprof.1: now uses the standard man macros instead of the new BSD mandoc macros. Sun Jul 12 19:06:00 1992 John Gilmore (gnu at cygnus.com) * configure.in: Remove host section, expand target section. * config/mt-{tahoe,vax}: Add, to match existing support files. * config/tmake-*: Remove leftover crud. * blurbs.c: New file, created from gprof.flat and gprof.callg by * make-c-prog.awk: which processes text files into C programs. * printgprof.c (flatprofheader, gprofheader): Call new functions to print blurbs. (printblurb): Remove. * Makefile.in: Infrastructure to build blurbs. * pathnames.h: has been removed. Gprof now has no filename dependencies in it. * gprof.c: Lint. Sat Jul 11 18:07:21 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) * Makefile.in: define man1dir and install the man page Fri Jul 10 21:14:08 1992 david d `zoo' zuhn (zoo@cygnus.com) * Makefile.in: added dummy info and install-info targets Thu Jun 4 11:34:02 1992 Mark Eichin (eichin at cygnus.com) * lookup.c: fixed fencepost in nllookup and added dbg_nllookup for help in debugging the problem (with -DDEBUG) * gprof.c: symbol values are now real values, don't add the vma anymore. (done for solaris; should verify this on other platforms) * ChangeLog: created.