argp functions for all?

J. Johnston
Tue Sep 3 09:11:00 GMT 2002

Nicholas Wourms wrote:
> Hi,
> As a hierarchical argument parsing library, I would find
> argp to be an excellent addition to Cygwin [although it is
> not POSIX, but rather a glibc feature].  This would further
> enhance cross platform compatibility with glibc-centric code
> for those platforms which cannot run glibc.  I noticed,
> during a recent update of my cygwin checkout, that this
> library was added to newlib.  However, it was much to my
> dismay to see it was YA "linux"-only feature.  Why so many
> linux-only features :-(?  I'm sure that's the easy route,
> but shouldn't it be a goal to provide library functions that
> all newlib-supported platforms can access?  I mean, unlike
> linux people, newlib is all us Cygwin people have.  I guess
> my question is, like argz, wouldn't it be better to
> implement argp for all newlib-supported platforms (including
> Cygwin) to use?  FWIW, I've exported the arz/envz externs
> and they are working quite well on Cygwin.  I do not see why
> this cannot be the same for the argp functions.

The reason a number of glibc features are being kept specific
to linux is that the code being added has an LGPL license.
Vanilla newlib is being kept under a set of BSD-like licenses.
The linux library prereqs the native glibc header files which 
are LGPL and we use some code sequences from them.  Adding such
code to the shared directories is not acceptable.

We have been adding functionality to meet the EL/IX standard level 3,
which includes among other things, glibc-extensions.
Where feasible, functionality that is BSD-licensed has been added to
the shared directories.  Where code prereqs other linux-specific interfaces or is
"borrowed" from glibc (LGPL), it has been placed in the libc/sys/linux directory.

You might want to discuss this on the Cygwin mailing list.  If anybody
wishes to contribute a version with a BSD-like license, that would also
solve the problem.

-- Jeff J.

More information about the Newlib mailing list