This is the mail archive of the newlib@sourceware.cygnus.com mailing list for the newlib project.


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

Re: Posix threads


Tim Prince wrote:
> 
> Is there a "mission statement" for newlib; obviously the mission differs
> from that of glibc.  Likewise, is there a document on the missing
> features of standard C, both C89 and C99, which newlib doesn't support,
> why, and under what circumstances would contributions be accepted?
> 

To start, newlib is not meant to compete with or replace glibc.  It is not POSIX compliant.
It is not C9x compliant.  It isn't even meant to be configured for a host platform (with the
exception of Cygwin).  If you want a full-featured C library, pick glibc.  Newlib's purpose 
has always been to provide ANSI C library support for embedded platforms.  As such, it may
occasionally take the easy way out for some aspects of ANSI C that don't make sense on small
embedded platforms.
For example, our locale support only involves supporting the "C" locale.   Historically,
newlib's origin lies with Cygnus Solutions providing C library support for embedded system
contracts.
The C library isn't traditionally something embedded customers have wanted to spend lots of
money on when doing a port.  Hence, newlib was created which is essentially ANSI C plus a number of 
commonly used Unix/POSIX routines.  It sits upon a small manageable set of low-level OS routines and
is relatively straightforward to port to new platforms.  Per Cygnus tradition, it is open source.  

As a good open source citizen, Doug Evans started providing newlib externally to the net a number of
years ago by providing occasional tar'd versions of the source tree.  Recently, most of Cygnus (now
Red Hat) projects have made their way to sourceware.cygnus.com including Cygwin (which prereqs
newlib) and here we are.

So, if there was a mission statement, it would be something like:  newlib provides an ANSI C library
that
compromises between the desired features of size, performance, and portability with embedded
platforms in mind.

At present, the project is young as an external open source project and there is lots of stuff to
be added.  Additional documentation, test cases, and new routines being just a few.  Contributions
are indeed welcome.  Code cannot be proprietary nor can it have the GPL license.  New code should
have a basis in standard (ANSI, POSIX) or common usage.  Depending on the complexity of your
changes, there may be legal documention required from yourself to declare that you are the original
writer of the software in question.  Simple changes and straightforward algorithms are easier (e.g.
fixing a bug or adding a fairly obvious implementation of a routine).

-- Jeff J.  


> In addition to threads (which I don't believe are standard C), other
> recent examples include
> 
> long double support (at least for x86)
> rounding modes
> 
> Tim Prince
> ----- Original Message -----
> From: "Sébastien Côté" <scote1@Matrox.COM>
> To: <newlib@sourceware.cygnus.com>
> Sent: Thursday, June 29, 2000 12:49 PM
> Subject: Posix threads
> 
> > Hi,
> >
> > I'd like to know if newlib supports pthreads?  Also, I'd like to know
> > the level of compatibility between newlib and glibc. If I port a
> program
> > designed under glibc, will I have do to a lot of modifications to
> > compile it under newlib ?
> >
> > Thanks!
> >
> > --
> > Sébastien Côté

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