This is the mail archive of the ecos-patches@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Rework profiling (gprof) package


On Fri, 2002-11-15 at 10:22, Jonathan Larmour wrote:
> Gary Thomas wrote:
> > On Fri, 2002-11-15 at 00:43, Jonathan Larmour wrote:
> > 
> >>Gary Thomas wrote:
> >>
> >>
> >>>Index: services/profile/gprof/current/include/gmon_out.h
> >>>===================================================================
> >>>RCS file: services/profile/gprof/current/include/gmon_out.h
> >>>diff -N services/profile/gprof/current/include/gmon_out.h
> >>>--- /dev/null	1 Jan 1970 00:00:00 -0000
> >>>+++ services/profile/gprof/current/include/gmon_out.h	14 Nov 2002 21:58:31 -0000
> >>>@@ -0,0 +1,82 @@
> >>>+// Slightly adapted for eCos environment
> >>>+
> >>>+/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
> >>>+   This file is part of the GNU C Library.
> >>>+   Contributed by David Mosberger <davidm@cs.arizona.edu>.
> >>>+
> >>>+   The GNU C Library is free software; you can redistribute it and/or
> >>>+   modify it under the terms of the GNU Library General Public License as
> >>>+   published by the Free Software Foundation; either version 2 of the
> >>>+   License, or (at your option) any later version.
> >>
> >>We cannot have LGPL licensed software in eCos.
> >>
> > 
> > 
> > How to handle this?  It's just the header, included to be compatible.
> 
> I'm not sure. Is there some other non-glibc version around? For example I 
> see 
> http://examples.oreilly.com/palmprog/CDROM/Linux/libs_utils/binutils-2.7/gprof/gmon_out.h
> which implies glibc probably just imported that and slapped their own 
> licence on, when there was not necessarily a reason to. (And we do the 
> same of course so can hardly complain :-)).

Also, BTW, the version from OpenBSD is completely unadorned.
Maybe I should just use it (with attribution).

-- 
------------------------------------------------------------
Gary Thomas                  |
eCosCentric, Ltd.            |  
+1 (970) 229-1963            |  eCos & RedBoot experts
gthomas@ecoscentric.com      |
http://www.ecoscentric.com/  |
------------------------------------------------------------
/*
 * This file specifies the format of gmon.out files.  It should have
 * as few external dependencies as possible as it is going to be
 * included in many different programs.  That is, minimize the
 * number of #include's.
 *
 * A gmon.out file consists of a header (defined by gmon_hdr) followed
 * by a sequence of records.  Each record starts with a one-byte tag
 * identifying the type of records, followed by records specific data.
 */
#ifndef gmon_out_h
#define gmon_out_h

#define	GMON_MAGIC	"gmon"	/* magic cookie */
#define GMON_VERSION	1	/* version number */

/*
 * Raw header as it appears on file (without padding):
 */
struct gmon_hdr
  {
    char cookie[4];
    char version[4];
    char spare[3 * 4];
  };

/* types of records in this file: */
typedef enum
  {
    GMON_TAG_TIME_HIST = 0, GMON_TAG_CG_ARC = 1, GMON_TAG_BB_COUNT = 2
  }
GMON_Record_Tag;

struct gmon_hist_hdr
  {
    char low_pc[sizeof (char*)];	/* base pc address of sample buffer */
    char high_pc[sizeof (char*)];	/* max pc address of sampled buffer */
    char hist_size[4];			/* size of sample buffer */
    char prof_rate[4];			/* profiling clock rate */
    char dimen[15];			/* phys. dim., usually "seconds" */
    char dimen_abbrev;			/* usually 's' for "seconds" */
  };

struct gmon_cg_arc_record
  {
    char from_pc[sizeof (char*)];	/* address within caller's body */
    char self_pc[sizeof (char*)];	/* address within callee's body */
    char count[4];			/* number of arc traversals */
  };

#endif /* gmon_out_h */

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]