
djldv202.zip -- long double printf fixes for DJGPP v2.02.


This archive contains C source and object files to improve
floating point printf and scanf accuracy of D. J. Delorie's DJGPP C
library (version 2.02).  With this change, the I/O accuracy
passes tests for compliance with IEEE 754 and 854 standards.

    djgpp/src/libc/ansi/stdlib/strtod.c
    djgpp/src/libc/ansi/stdio/doprnt.c
    djgpp/src/libc/ansi/stdio/ioldoubl.c

strtod.c was fixed in DJGPP version 2.01 but is broken again
in version 2.02 beta (denormal doubles get flushed to zero).

ioldoubl.c is an extra-precision software floating point
arithmetic that includes binary <-> decimal conversion. It adds
about 15K bytes to the size of the library and a comparable
amount to the size of executable programs.

doprnt.c is modified to call the conversion routine in iodoubl.c
for long double `Le' printf format.  It does not (yet) do so for
`Lf', though a function supporting that format is included.


To install the change, delete doprnt.o and strtod.o from libc.a and add the
three .o files to libc.a.  The following commands will do that:

 copy libc.a libc.a00  (make a backup!)
 ar dv libc.a strtod.o
 ar dv libc.a doprnt.o
 ar rv libc.a doprnt.o ioldoubl.o strtod.o
 ranlib libc.a

Steve Moshier
(moshier@na-net.ornl.gov)
October, 1998
