public inbox for gnats-devel@sourceware.org
 help / color / mirror / Atom feed
From: "Mike M. Volokhov" <mishka@apk.od.ua>
To: help-gnats@gnu.org
Subject: Re: gnatsd problems with 4.0.1
Date: Mon, 07 Feb 2005 15:47:00 -0000	[thread overview]
Message-ID: <20050207174424.136b4b5b.mishka@apk.od.ua> (raw)
In-Reply-To: <20050106170435.GA2921@wookimus.net>

On Thu, 6 Jan 2005 11:04:35 -0600
Chad Walstrom <chewie@wookimus.net> 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


_______________________________________________
Help-gnats mailing list
Help-gnats@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gnats

  reply	other threads:[~2005-02-07 15:47 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-01-05 18:23 Tim Buck
2005-01-05 22:24 ` Chad Walstrom
2005-01-06  9:18   ` Mike M. Volokhov
2005-01-06 17:07     ` Chad Walstrom
2005-02-07 15:47       ` Mike M. Volokhov [this message]
2005-02-07 17:15         ` Mark D. Baushke
2005-02-07 19:17           ` Chad Walstrom
2005-02-09 12:50           ` Removing libiberty (was Re: gnatsd problems with 4.0.1) Mike M. Volokhov
2005-02-09 17:15             ` Mark D. Baushke
2005-02-07 17:45         ` Chad Walstrom
2005-02-09 10:56           ` Mike M. Volokhov
     [not found]             ` <20050221235730.GC31157@wookimus.net>
     [not found]               ` <20050222175714.30bc1593.mishka@apk.od.ua>
2005-02-24 22:17                 ` Soon to come: RC3 Chad Walstrom
2005-02-24 22:40                   ` RC2 (was Re: Soon to come: RC3) Chad Walstrom
2005-01-06 16:03   ` gnatsd problems with 4.0.1 Tim Buck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050207174424.136b4b5b.mishka@apk.od.ua \
    --to=mishka@apk.od.ua \
    --cc=help-gnats@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).