This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc 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]

include/gnu-version.h: _GNU_ARGP_INTERFACE_VERSION ?


Argp in libc has been forked into a standalone package that is used in
several GNU projects (at least lsh, gsasl, probably more), and I'm
trying to provide a maintained standalone and portable argp
implementation via gnulib, so that various projects can pick it up if
they need argp functionality, instead of forking their own copy and
fixing various portability issues in different ways.  A thread
discussing this started at:

http://mail.gnu.org/archive/html/bug-gnulib/2003-06/threads.html#00032

and a question was asked in

http://mail.gnu.org/archive/html/bug-gnulib/2003-06/msg00107.html

that I'd like an answer to.  Namely:

Can you provide a _GNU_ARGP_INTERFACE_VERSION macro in
include/gnu-version.h?

For reference, the rationale for such a macro is described in the
gnu-version.h header file in libc, quoted below.  I also include a
suggested patch.

What do you think?

/* This file exists to define these few macros.  Each specifies a version
   number associated with the library interface of a piece of the C library
   which is also distributed with other GNU packages.  These pieces are
   both part of the GNU C library and also distributed with other GNU
   packages so those packages may use their facilities on systems lacking
   the GNU C library.  The source files for each piece surround all their
   code with `#ifndef ELIDE_CODE' after defining it with this:

   #define OBSTACK_INTERFACE_VERSION 1
   #if !defined (_LIBC) && defined (__GNU_LIBRARY__) && __GNU_LIBRARY__ > 1
   #include <gnu-versions.h>
   #if _GNU_OBSTACK_INTERFACE_VERSION == OBSTACK_INTERFACE_VERSION
   #define ELIDE_CODE
   #endif
   #endif

   This allows those one to avoid compiling those files when part of a GNU
   package not libc, on a system using a GNU C library that supports the
   same interface.

   Please preserve the format of the comments after each macro.  And
   remember, if any of these versions change, the libc.so major version
   number must change too (so avoid it)!  */

--- gnu-versions.h.~1.3.~	Fri Jul  6 06:54:52 2001
+++ gnu-versions.h	Wed Jun 11 19:50:17 2003
@@ -1,5 +1,5 @@
 /* Header with interface version macros for library pieces copied elsewhere.
-   Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1996, 1997, 2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -49,5 +49,6 @@
 #define _GNU_GLOB_INTERFACE_VERSION	1 /* vs posix/glob.c */
 #define _GNU_GETOPT_INTERFACE_VERSION	2 /* vs posix/getopt.c and
 					     posix/getopt1.c */
+#define _GNU_ARGP_INTERFACE_VERSION	1 /* vs argp/argp*.c */
 
 #endif	/* gnu-versions.h */


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