help-gnats
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gnatsd problems with 4.0.1


From: Mike M. Volokhov
Subject: Re: gnatsd problems with 4.0.1
Date: Mon, 7 Feb 2005 17:44:24 +0200

On Thu, 6 Jan 2005 11:04:35 -0600
Chad Walstrom <address@hidden> wrote:

First, excuse me please for the delayed answer. :-(

> Mike M. Volokhov wrote:
> > Could you explain me please what a reason to have libiberty code in
> > GNATS tree?
> 
> For historical and supposedly portability reasons.  Frankly, I'm not
> that comfortable with it being there.  I haven't had much time lately,
> but I'd love to audit the GNATS codebase to find out what functions in
> ./libiberty are actually being used and decide either to adopt them
> completely by moving them into the ./gnats directory OR drop them
> completely.  There was a lot of cruft pulled in from my last update.  We
> can always roll back the CVS to the point before the libiberty update
> (which I've been contemplating since the day I mistakenly committed it
> to TRUNK rather than the dev branch like I wanted).
> 
> Any opinions in either direction?

Yes, that's exactly I've asked why. Including libiberty in GNATS
codebase depends on how much it is used by the project.  Unfortunately,
libiberty itself seems have not official distribution and in addition it
may provide some functionality which cannot be acheived by standard C
library.

> If someone is willing to do the audit, let me know.  It may not take
> much time, but most of my spare time right now is going toward a
> certification class, :-/, and caring for my son, :-).

I've done some sort of GNATS sources audit to know how much project
dependends on libiberty code. Well, seems it is not too hard dependent!
I've used libiberty.h header file to obtain a list of provided functions
and ran a simple script across gnats/*.[ch] files. It shows a results at
the end of this mail message.

So, only six functions are used by GNATS, when libiberty provides about
40. Only two functions (asprintf and vasprintf) are nor POSIX nor
standard C relevant (but included in both GNU and BSD libc). Three
functions (xstrdup, xmalloc, xrealloc) are totally libiberty-own, but
can be easy replaced with their standard equivalents.

Thus, I propose to eliminate dependency on libiberty completely.

Any comments?

--
Best wishes,
Mishka.

========8<=======8<========8<=======8<========8<=======8<========

The distribution of used libiberty functions accross GNATS sources:
        --- asprintf ---
        8       gnats/file-pr.c
        7       gnats/queue-pr.c
        5       gnats/query-pr.c
        4       gnats/field.c
        4       gnats/gnats-pwconv.c
        4       gnats/pr.c
        3       gnats/misc.c
        2       gnats/database.c
        2       gnats/edit.c
        2       gnats/index.c
        2       gnats/internal.c
        2       gnats/query.c
        1       gnats/client.c
        1       gnats/cmds.c
        1       gnats/gnats.h
        1       gnats/mail.c
        1       gnats/pr-edit.c
        1       gnats/pr-stat.c
        --- basename ---
        2       gnats/queue-pr.c
        1       gnats/gen-closed-date.c
        1       gnats/gen-index.c
        1       gnats/getclose.c
        1       gnats/gnatsd.c
        1       gnats/pr-age.c
        1       gnats/pr-edit.c
        1       gnats/pr-stat.c
        1       gnats/query-pr.c
        --- vasprintf ---
        1       gnats/gnats.h
        1       gnats/internal.c
        --- xmalloc ---
        13      gnats/query.c
        9       gnats/index.c
        7       gnats/pr.c
        6       gnats/field.c
        5       gnats/misc.c
        4       gnats/queue-pr.c
        3       gnats/edit.c
        3       gnats/file-pr.c
        3       gnats/internal.c
        2       gnats/adm.c
        2       gnats/client.c
        2       gnats/gen-closed-date.c
        2       gnats/gnatsd.c
        1       gnats/cmds.c
        1       gnats/database.c
        1       gnats/gen-index.c
        1       gnats/lists.c
        1       gnats/mail.c
        1       gnats/pr-age.c
        1       gnats/pr-edit.c
        1       gnats/pr-stat.c
        --- xrealloc ---
        5       gnats/query.c
        3       gnats/gnatsd.c
        3       gnats/pr.c
        2       gnats/field.c
        2       gnats/index.c
        2       gnats/misc.c
        2       gnats/pr-edit.c
        1       gnats/client.c
        1       gnats/cmds.c
        1       gnats/file-pr.c
        1       gnats/gen-index.c
        1       gnats/mail.c
        1       gnats/queue-pr.c
        --- xstrdup ---
        15      gnats/client.c
        10      gnats/mail.c
        9       gnats/field.c
        8       gnats/cmds.c
        8       gnats/database.c
        8       gnats/file-pr.c
        7       gnats/index.c
        7       gnats/pr.c
        4       gnats/edit.c
        4       gnats/query.c
        3       gnats/adm.c
        1       gnats/gnatsd.c
        1       gnats/internal.c
        1       gnats/pr-edit.c
        1       gnats/queue-pr.c

The dependency of GNATS sources on libiberty functions (functions):
        87      xstrdup
        69      xmalloc
        51      asprintf
        25      xrealloc
        10      basename
        2       vasprintf

The dependency of GNATS sources on libiberty functions (files):
        24      gnats/query.c
        21      gnats/field.c
        21      gnats/pr.c
        20      gnats/file-pr.c
        20      gnats/index.c
        19      gnats/client.c
        15      gnats/queue-pr.c
        13      gnats/mail.c
        11      gnats/cmds.c
        11      gnats/database.c
        10      gnats/misc.c
        9       gnats/edit.c
        7       gnats/gnatsd.c
        7       gnats/internal.c
        6       gnats/pr-edit.c
        6       gnats/query-pr.c
        5       gnats/adm.c
        4       gnats/gnats-pwconv.c
        3       gnats/gen-closed-date.c
        3       gnats/gen-index.c
        3       gnats/pr-stat.c
        2       gnats/gnats.h
        2       gnats/pr-age.c
        1       gnats/getclose.c
        1       gnats/lists.c

A number of libiberty functions in GNATS code: 244

Libiberty functions (used by GNATS / provided): 6 / 42




reply via email to

[Prev in Thread] Current Thread [Next in Thread]