Node:Latest DJGPP, Previous:Slow development, Up:New versions

21.4 Where to find the best C library for DJGPP

Q: There's been quite some time since the last DJGPP release. Where can I get all the latest stuff where the bugs are fixed?

Q: I have heard rumors that there's a better C library for DJGPP available from the net. Where is it?

A: New versions of most parts of DJGPP are released quite regularly. For example, DJGPP ports of most GNU packages are generally released short time after a new version of every package becomes available from the GNU FTP sites. So for many DJGPP packages, a new release should usually be available real soon, just stick around a bit.

The single most important component of DJGPP tool-chain that might suffer from long release schedule is the djdev package. This includes the C library, libc.a, which was written specifically for DJGPP, and some DJGPP-specific development tools, like redir and symify. However, the latter are usually stable and don't need too much fixing.

A full release of djdev is a lot of work, so DJ Delorie decided not to make interim releases (experience from v1.x development shows that such interim releases also generate confusion and are hard to maintain).

In general, you are advised to constantly improve your C library by fixing any bugs in the library sources and replacing old modules with fixed ones. All this takes is to edit the relevant source file, compile it, and put it into the library. For example, assuming you have made a source-level change in a file called foo.c, here's how you update your library:

  gcc -c -O2 foo.c
  ar rvs c:/djgpp/lib/libc.a foo.o

(This example assumes that DJGPP is installed in the C:\DJGPP directory; if not, you will need to change the pathname of libc.a accordingly.)

Patching the library like that requires that you download the DJGPP library sources, djlsrNNN.zip (where NNN is the version number). That file includes sources to all the DJGPP functions and utilities, and you can extract them as the need to edit them arises.

Bug reports regarding the library and patches to fix them are posted from time to time to the comp.os.msdos.djgpp news group. In addition, the DJGPP bug-tracking system, stores many known bugs and the patches required to solve them. You can use these resources to find solutions to known bugs. Patches are applied using the patch utility which is available from the DJGPP sites.

Users who need the cutting edge of the DJGPP development sources can access the latest development versions of sources of the DJGPP library and utilities via the net. All the bugfixes and new features that are accepted for inclusion in DJGPP are checked into the development source tree using CVS, a free network-based software configuration management package. DJ Delorie has set up anonymous read-only access to the DJGPP CVS tree, whereby anybody who has a CVS client installed can check out the sources via the Internet. You can check out individual source files, specific subdirectories, or the entire DJGPP tree; read the instructions for using CVS for the details. Binaries of CVS clients for Windows platforms are available from the CVS download page. If you want to install the CVS client on Unix or Linux, download the CVS sources and build it on your machine.

Note that development sources are not always as stable as the official release; some of the changes might not be tested by anyone except the person who submitted those changes. I recommend to check out only those sources which fix problems that you cannot work around.