3 * Makefile.in (install): Depend on "all".
7 * Makefile.in: Change all references to MY_MACHINE to MY_TARGET,
8 to match configure script.
12 * gen-c-prog.awk: Changed reference to "make-c-prog.awk" in
13 comment emitted by this script to gen-c-prog.awk.
15 * Makefile.in, configure.in: Converted to use autoconf.
16 * configure: New file, generated with autoconf 2.3.
17 * config/{mt-alpha, mt-dummy, mt-i386, mt-ns532, mt-sparc,
18 mt-tahoe, mt-vax}: Removed.
22 * __bb_exit_func.c: New file, from David Mosberger-Tang.
26 * All *.c: More cleanup towards GNU format.
28 * gmon_out.h (struct gmon_hist_hdr, struct gmon_cg_arc_record):
29 replaced sizeof (bfd_vma) by size (char*) because Ken tells me
30 that bfd_vma is only guaranteed to be at least as big as a pointer.
32 (GMON_Record_tag): added explicit enumeration values to ensure
33 compatibility across compilers.
35 * gmon_io.c (get_vma, put_vma): replaced sizeof(bfd_vma) by
40 * All *.c and *.h files: Ran "indent -gnu". Cleaned up a couple
41 of constructs GNU indent couldn't handle. Block comments not yet
42 rewritten in GNU format.
44 * gprof.c (VERSION): Changed to 2.6, to get in sync for next
49 * symtab.c (symtab_finalize): ensure globals symbols really
50 are favored over static ones---even if their name looks less
51 preferable; this is important for HP-UX; for example, there
52 is a static label Ltext_something that aliases the global
55 * hist.c (hist_print): auto-scaling is now in effect for FSF-style
56 output only; also, auto-scaling is now performed based on
57 per-call, rather than total execution time, which is what it was
60 * gprof.h (File_Format): new type.
62 * gprof.c (VERSION): upped to 2.7---seems to be completely out of
63 sync with Cygnus version numbers though...
65 (long_options): renamed --gmon-info to --file-info, --width added,
66 renamed --old-file-format to --file-format
67 (main): dito; also added support to read prof files, but as
68 mon_out_read() is not implemented, it's #ifdef'd out for now
70 (usage): update to reflect new options.
72 * gmon_io.c: replaced "old_file_format" by more general
75 * gmon.h (struct raw_phdr): fixed declaration for OSF/1.
77 * core.c (core_sym_class): added back check for __gnu_compiled and
78 ___gnu_compiled for the benefit of systems without
79 bfd_find_nearest_line() support
81 (get_src_info): now the libbfd is fixed, invoke bfd_find_nearest_line()
82 with section-relative addresses
84 (core_create_function_syms): get_src_info() calls are currently
85 enabled for OSF/1 only. It appears to work allright for SunOS
86 4.1.x as well, but on SPARCs it gets painfully slow with the
87 current implementation of aout_32_find_nearest_line();
88 unfortunately, this means that static functions will not have their
89 filename printed in the call-graph function index; line-level
90 profiling should still work, but requires some patience
92 * cg_print.c (cg_print_index): sanitized printing of index when
93 using FSF-style output; in particular, output width is now controlled
94 via option --width and the function tries hard to keep columns
95 aligned even in the presence of (occasional) long names
97 * NOTES: a first shot at updating the documentation.
101 * core.c (core_create_function_syms): fixed computation of min_vma
104 * *.c: removed rcsid.
108 * Lots of changes from David Mosberger-Tang:
112 * gprof.c (main): put parentheses around & within &&.
114 * basic_blocks.c (bb_read_rec): print warning message (once) when
115 ignoring basic-block execution counts.
117 * source.c (source_file_lookup_name): corrected second argument to
120 * hist.c (print_header): merged Fri Oct 21 18:58:02 1994 change by
123 * gmon_io.c (gmon_out_read): the output stule STYLE_GMON_INFO is now
124 supported both for old and new (versioned) gmon.out files. Old
125 files are identified as version 0.
127 * gmon.h (struct raw_arc): count field is now sizeof(long) bytes
128 long (instead of 4) because that is what OSF/1 v3.0 uses.
130 * core.c: minor fixes and debugging info changes.
134 * core.c (core_init): if .text cannot be found, try $CODE$ (the
135 name of the text-section under HP-UX).
137 * hist.c (hist_assign_samples): fixed off-by-one bug: highpc
138 points one past the last sampling bin, so hist_scale should be
139 computed as "hist_scale /= hist_num_bins", not "hist_scale /=
142 * gmon_io.c, hist.c, hist.h: renamed hist_num_samples to
145 * configure.in: added alpha-*-*) for per-target config.
147 * alpha.c, alpha.h: created.
149 * gprof.c (default_excluded_list): <locore>, <hicore> added.
151 * core.c (core_create_function_syms, core_create_line_syms):
152 explicitly keep two sentinels "<locore>" and "<hicore>" that catch
153 all addresses outside the text-space. Thus, sym_lookup(&symtab,
154 addr) continues to guarantee not to return 0 on any address. It
155 also avoids incorrectly crediting the first/last symbol in the
158 * core.c (core_create_line_syms): always create function symbols
159 first, then merge in line symbols; this is so that if parts of the
160 program were compiled without -g, function-level symbols are
163 * utils.c (print_name_only): support for print_path added.
165 * symtab.c (cmp_addr): also use is_func flag in comparison.
166 (symtab_finalize): return immediately when table empty; now
167 more careful about getting rid of the right duplicate symbol.
169 * sparc.c (find_call): many fixes---this function was rather
170 botched in binutils-2.4 already; it should work again.
172 * source.c (source_file_lookup_path): PATH is now strdup'ed (it is
173 not good to rely on get_src_info() to return distinct string
176 * search_list.c (search_list_append): added cast for xmalloc().
178 * hist.c: added explicit initialization to some of the global
179 variables; fixed SItab (scales were off by a factor of 10).
181 * hist.h: include of bfd.h added.
183 * gprof.c, gprof.h (print_path): added.
185 * gprof.h (MAX): fixed.
187 * gmon_out.h: renamed gmon_time_hist_hdr to gmon_hist_hdr.
189 * gmon_io.c: added some casts to (long) so we can always print as %lx
191 * core.c (core_get_text_space): fixed to make it work.
193 * cg_print.c (cg_print_index): added support for print_path option.
195 * cg_dfn.h (cg_dfn): wrap prototype in PARAMS().
197 * call_graph.c, gmon_io.c, hist.c: avoid taking address of array
198 as some compilers complain (e.g., DEC's OSF/1 compiler)
200 * basic_blocks.c, gmon_io.c, hist.c, source.c, sym_ids.c,
201 symtab.c: calls to memset() had 2nd and 3rd args reversed.
205 * gprof.c: added "_mcount" to default_excluded_list.
206 (main): if output_style==0 and there is either a histogram or a
207 call-graph, always generate flat and call-graph, no matter what
208 line_granularity is set to.
210 * source.c (source_file_lookup_name): if searching for sf->name
211 fails, try again with filename obtained after stripping off any
212 partial path from sf->name.
214 * gprof.h (SRCDEBUG): added.
216 * search_list.c (search_list_append): directories were added in wrong
219 * reimplemented selection mechanism from ground up; it is now possible
220 to accurately control what gets included/excluded in each of the
221 output styles; a "symbol-specification" (spec) is the basic means
222 to select a set of symbols; a spec has the syntax:
224 spec == (FILENAME:(FUNCNAME|LINE_NUM) | NAME).
227 any of the terminal symbols can be empty, in which case they
228 match anything (wildcards). NAME is interpreted as a FILENAME
229 if it contains a dot (e.g., foo.c), as LINE_NUM if it starts
230 with a digit, and as FUNCNAME otherwise.
232 For example, to get a call-graph display that ignores arcs
233 from foo() to bar(), you'd say "--no-graph=foo/bar"; to
234 show only arcs into bar() (no matter what the caller),
235 you'd say "--graph=/bar"; and to get a call-graph without
236 any arc info, you'd say "--graph=/"; similarly, to
237 get a flat profile without mcount, you'd say "--no-flat=mcount"
238 and to get a flat profile that shows includes all functions
239 you'd say "--flat=""" (i.e., an empty spec)
241 * hist.c (hist_print): top_time wasn't initialized to 0.0.
245 * gmon_out.h: all headers now declared in terms of characters
246 to avoid getting into trouble with different compilers introducing
247 different amount of padding; the code already accessed the fields
248 through bfd functions, so that didn't have to change.
250 * hist.c (hist_read_rec, hist_write_rec): added support for
251 collection pc histograms measuring quantities other than time;
252 the histogram header now includes a field that specifies the
253 dimension of the quantity measured by the histogram bins
254 (normally, this is "seconds", but other meaningful dimensions
255 include such things as "I-cache misses", "instruction issue stalls"
256 etc.); there is also a field to specify a one-character
257 abbreviation for the dimension; in the case of time, this would
258 be 's'; in most other cases it probably would be '1' (not a physical
263 * gprof.c, gmon_io.[ch]: BSD_COMPATIBLE is gone and new_file_version
264 has become old_file_version; gmon_io.c now always supports old-style
265 gmon.out files; it first tries to read gmon.out as a new version
266 file, if that fails, it tries to read it in the old format;
267 although not very likely, it is possible for gprof to mistake an
268 old-style file as a new one (the first 4 bytes would have to
269 be "gmon"---including the trailing '\0'); in that case, it is
270 necessary to specify --old-file-version
272 * gprof.h: removed dependency on SYSV; the code now always uses
273 strrchr(), memset(), and memcpy() and does not include either
274 of string.h or strings.h; this should make gprof compile on
275 any (Unix) system without configuration (per suggestion of
278 * gprof.c (usage): fixed location of --new-file-format option.
280 * cg_arcs.c (propagate_flags): fixed typo in declaration.
282 * flat_bl.m: removed formfeed at end of file; the form-feed
283 is now printed cg_print.c only when necessary.
285 * major rewrite of gprof---too many changes to mention all of
288 + -l now requests profiling at the line level (as opposed
289 to function level); in this mode, gprof creates a "symbol"
290 (aka name-list entry) for each line of source code, instead
293 + support for a new gmon.out file format; the new format
294 consists of a header with a magic and a version number,
295 followed by a sequence of profile data; profile data
296 can any of: (a) PC histogram, (b) call-graph arcs, or
297 (c) basic-block execution counts; the version number makes
298 it possible to extend gmon.out in a backwards compatible
301 + support for tcov style annotated output: if the gmon.out file
302 contains basic-block execution counts, the user can request
303 the generation of annotated source files, much like Sun's
308 + new scheme to suppress symbols that aren't function names
309 (e.g., avoids mistaking a goto label as a function)
311 + reorganized source code to make it more managable; as a
312 side effect, gprof now compiles cleanly with "gcc -Wall"
316 * gprof.c (funcsymbol): bfd_find_nearest_line() is now used as a
317 final cross-check to determine whether a static symbol should be
318 considered as a function-name.
322 * gmon_io.c (gmon_out_read): recognize "-" as the filename for
323 stdin; this is useful if you wanna keep gmon.out files compressed;
324 this way you can "gzcat" the compressed file into gprof.
326 * gprof.c: flag_min_count now initialized with 1 instead of 0.
328 * basic_blocks.c (bb_annotate_source): added support for creating
329 .tcov files when option flag_annotate_make_files is TRUE.
330 (annotate_with_count): all counts less than the minimum count
331 specified by -m are now annotated with hash-marks.
333 * gprof.c (main): -A is now followed by a string of option chars.
335 * basic_blocks.c (annotate_with_count): replaced b->count with
338 * source.c: flag_annotate_source replaced by source_lock_map.
340 * source.h: source_lock_map added.
342 * gprof.c (main): new command-line syntax: -S simply specifies
343 which source-files user is interested in; -A requests annotated
344 source files and -AA requests that all lines in a source file
349 * basic_blocks.c (PATH_MAX): if undefined, define as 1024.
351 * sparc.c, i386.c, tahoe.c, vax.c: added include of "time_hist.h"
352 so s_lowpc etc. get declared.
354 * arcs.h (doarcs): created.
356 * arcs.c: reordered static functions such that they get defined
359 * gprof.c (main): added options:
360 -A: request annotation of all source lines (with -S)
361 -m: minimum execution count (with default basic-block display)
362 -N: force new file format (only if BSD_COMPATIBLE is defined)
363 -S: annotate source file
364 -t: set table length (with -S)
366 * Makefile (OBJS): added basic_blocks.o call_graph.o gmon_io.o
371 * gprof.c (asgnsamples): computation of "pcl" and "pch" depended
372 on the fact being able to store a long in a double without loss of
373 precision; this does not hold on machines with 64 bit longs and 64
378 * printgprof.c (flatprofheader): Always set totime to 1.0 if not
379 greater than 0.0. Suggested by Harold Assink
384 * printgprof.c (printprof): Use free, not cfree.
385 (printgprof, printindex): Ditto.
389 * gprof.h (kfromlist, ktolist, flist, Flist, elist, Elist): Make
390 decls extern to keep native HP compiler quiet.
394 * gprof.c (funcsymbol): Ignore ___gnu_compiled as well as
395 __gnu_compiled, for the benefit of systems which add a leading
400 * configure.in: Change i386-*-* to i[345]86-*-*.
404 * ns532.c, ns532.h: New Files. ns532 support.
406 * config/mt-ns532: New File. ns532 support.
408 * gprof.c: user register int i instead of defaulting the int.
409 Allows compilation with -Dregister= for debugging.
411 * configure.in: Add ns532 support.
415 * Makefile.in (gprof): Depend on $(LIBS).
419 From binutils-2.4 release:
423 * configure.bat: [new] build makefile from makefile.in (dos)
424 * hertz.c: allow static HERTZ (msdos needs it)
425 * gprof.c: allow target to select "r" or "rb" for fopen
426 * gprof.c: ignore __gnu_compiled symbols
427 * i386.h: dfine FOPEN_RB to "rb" for dos.
431 * Makefile.in (.m.c:): Added .SUFFIXES : .m
432 so flat_bl.c would make from flat_bl.m file.
436 * Makefile.in (install-info): Check for gprof.info in build dir,
437 fall back to srcdir. Depend on it.
439 * gprof.h (TRUE, FALSE): Always use undef before defining them.
443 * Makefile.in (MY_MACHINE): Renamed from MACHINE to avoid losing
444 makes (osf1) in which the value of MACHINE can not be changed.
445 * config/*.mt: Changed appropriately.
449 * gprof.c (getsymtab): Change nosyms to long. Rename
450 get_symtab_upper_bound to bfd_get_symtab_upper_bound. Check for
451 errors from bfd_get_symtab_upper_bound and
452 bfd_canonicalize_symtab.
456 * gprof.c (funcsymbol): Use bfd_get_symbol_info instead of
461 * Makefile.in: Avoid bug in hpux sed.
465 * gprof.texi (Invoking): add text about -v flag
467 * gprof.1: add text about -v flag
471 * gprof.c (VERSION): defined a version macro, print the value
472 when the -v option is used
476 * Makefile.in: Install correctly.
480 * gprof.c (main): Get whoami from argv, instead of hardcoding.
481 Use it in usage message. Split usage message to fit in 80 cols.
485 * Makefile.in: Undo 15 June change.
489 * gmon.h, gprof.h: structs of chars used to hold external
491 * gprof.c (getpfile, openpfile, readsamples): Swap data in using
496 * Makefile.in (.c.o): Look in ../include, not ../bfd, for bfd.h.
498 Mon Jun 14 16:22:59 1993 david d `zoo' zuhn (zoo at rtl.cygnus.com)
500 * Makefile.in: remove parentdir support
504 * Makefile.in (INCLUDES): Add -I../bfd for sysdep.h and bfd.h.
505 * configure.in: No longer need to configure to get sysdep.h.
507 Tue May 18 21:44:11 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
509 * Makefile.in (install): should not depend on install-info
513 * gprof.h: Include ansidecl.h before sysdep.h. Undefine hz.
517 * M Makefile.in: Add -g to CFLAGS.
518 Ads LDFLAGS and use in place of CFLAGS where appropriate.
519 * configure.in: Make a sysdep.hlink in the same way other
520 bfd-based directories do.
521 * gprof.h (UNIT): Replace non-standard 'u_short' by 'unsigned
523 * gprof.h: #include sysdep.h instead of a bunch of stuff.
524 * gprof.c (main): Fix typo gproff->gprof.
526 Thu Mar 25 19:00:37 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
528 * gprof.texi: add INFO-DIR-ENTRY
530 Tue Mar 23 00:03:11 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
532 * Makefile.in: add installcheck target
536 * gprof.c (funcsymbol): Invert test for aflag.
540 * printgprof (xmalloc, xrealloc): Cast results of malloc
545 * Makefile.in: created info, install-info, dvi
547 Wed Jan 6 00:58:09 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
549 * Makefile.in: fix install rule for $(PROG)
553 * gprof.1: updated SYNOPSIS to match actual behavior.
557 * gen-c-prog.awk: New awk script, lightly changed from
558 previously deleted make-c-prog.awk. Converts a text file
559 to a c function that prints that text.
560 * flat_bl.m, fsf_callg_bl.m, bsd_callg_bl.m: New files.
561 Inputs to gen-c-prog.awk, containing text describing
563 * blurbs.c: Removed. Use *_bl.c instead.
564 * Makefile.in: Use gen-cprog.awk to generate *_bl.c files
565 from *_bl.m files. Also, improve *clean rules.
566 * printgprof.c (printgprof): Usw new function names from *_bl.c.
571 * gprof.h, gprof.c, printfgprof.c: Add support for two
572 output styles: The default is similar to the old FSF gprof,
573 while -T sets the variable bsd_style_output, which causes
574 output matching Berkeley's gprof. The biggest differences
575 are that with the FSF style output, the flat profile comes
576 before the call graph; numbers come before explanations;
577 and there is less gratuitous white space.
578 * gprof.h, gprof.c, printfgprof.c: New discard_underscores
579 variable causes discarding of initial underscores when
580 printing symbol names. It is set unless there is a "main"
581 symbol (without an underscore).
582 * printfgprof.c: New function printnameonly(), called
583 by printname(). It handles stripping of initial '_',
584 as well as C++ name-demangling.
585 * gprof.callg, gprof.flat, make-c-prog.awk: Removed.
586 It is just as convenient to edit blurbs.c directly.
587 * Makefile.in: Removed rule for making blurbs.c.
588 * blurbs.c: This is now a true source file (as opposed
589 to being generated from gprof.callg and gprof.flat).
590 Change style to use one long string literal, instead of
591 one literal per output line. Add FSF-style blurb for call graph.
595 * Makefile.in: always create installation directories.
599 * Makefile.in: change ${MACHINE} to $(MACHINE).
601 Sun Jul 19 17:34:01 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
603 * Makefile.in: removed installation of the now useless
604 call.{flag,callg} files.
606 * gprof.1: now uses the standard man macros instead of the new BSD
609 Sun Jul 12 19:06:00 1992 John Gilmore (gnu at cygnus.com)
611 * configure.in: Remove host section, expand target section.
612 * config/mt-{tahoe,vax}: Add, to match existing support files.
613 * config/tmake-*: Remove leftover crud.
615 * blurbs.c: New file, created from gprof.flat and gprof.callg by
616 * make-c-prog.awk: which processes text files into C programs.
617 * printgprof.c (flatprofheader, gprofheader): Call new functions
619 (printblurb): Remove.
620 * Makefile.in: Infrastructure to build blurbs.
621 * pathnames.h: has been removed. Gprof now has no filename
625 Sat Jul 11 18:07:21 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
627 * Makefile.in: define man1dir and install the man page
631 * Makefile.in: added dummy info and install-info targets
633 Thu Jun 4 11:34:02 1992 Mark Eichin (eichin at cygnus.com)
635 * lookup.c: fixed fencepost in nllookup and added dbg_nllookup for
636 help in debugging the problem (with -DDEBUG)
637 * gprof.c: symbol values are now real values, don't add the vma
638 anymore. (done for solaris; should verify this on other platforms)
639 * ChangeLog: created.