Fix for PR#56 -- there is a kludge to modify the exponent for
a converted value of zero, due to the way that SANE special-
cases it. This kludge was applied for all values that had a
zero exponent; now do it only for the value zero.
The ecvt(), fcvt(), and __dtoa() routines were generally
rewritten to address the problem of printing floating point
numbers (they sometimes came out wrong, especially representations
of zero).
__dtoa was written from the description in the BSD sources (note
that the comment of it being "like ecvt/fcvt other than truncating
trailing zeros") is not quite accurate where it comes to the rve
pointer or the printing of zero values. __dtoa is still expected
to be wrong for any modes other than 2 and 3, however those modes
are not used by anything in libc yet. Fix them when they pop up.
BSD has not ecvt/fcvt routines, so these have been written based
on the man page and observed behavior of the Linux implementation.
There is no gcvt yet.
- the rez fork rules is now in one of the *.mk files; don't
include it here
- make sure the contrib.h header gets installed
libcontrib.rez:
- added the build date
Added $(LOCAL_SETUP) to the list of build targets, before
$(LIBTARGET). LOCAL_SETUP should be set in the lower makefiles
if there is a target which must be made prior to the main
compilation.
- Fixed a problem reported by Derek where stack trashing
was happening once an EOF was reached. This was actually
only one example of a class of problems; any time __svfscanf
returned before filling all the requested arguments, va_arg
was left uncalled for some set of arguments. This has been
fixed by adding a "stack cleanup" section to the code where
va_arg is called once for each remaining argument.
- The __svfscanf routine still had large arrays on the stack.
These have been changed to static storage class. There is
currently an assert in place to assure that recursion isn't
happening since I didn't have the chance yet to verify in
detail the control flow here. This assert (and the related
use of the "recursing" variable) can be removed after such
a verification.
- specify files via SRCS vice OBJS. This eliminates an extraneous
".o" in the final OBJS value.
- don't attempt to attach a rez fork (leave it for the upper
level makefile)
- move generated macro file to /obj hierarchy
Makefile:
- fix location of (non-generated) macro sources
- specify files via SRCS vice OBJS. This eliminates an extraneous
".o" in the final OBJS value.
- don't attempt to attach a rez fork (leave it for the upper
level makefile)
- eliminate double concatenation of resource fork
- specify files via SRCS vice OBJS
- obtain the assert object file from where it is built in
the ORCA hierarchy
libc.rez:
- add build date to displayed data
- backed out v1.4 changes
- replace .asm (as well as .c) suffixes with .o for OBJS definition
- added a recipe for building ProDOS renamed object files
- modifications to allow the object files to be in the /obj
hierarchy.
- rename the object files during the build such that they can
reside on a ProDOS partition. An unfortunate consequence of
this is the requirement in this file for explicit recipes for
any of the renamed object files.
libnetdb.rez:
- add an rVersion for the final library
- fix definition of OBJS such that they can be placed in the /obj
hierarchy. Also added some more default targets for the same
purpose.
- added in a rule to append an rVersion resource to the library,
unless the NO_REZ macro is set in the makefile
found to reflect the directories now recommended in the FAQ.
- added a resource fork with an rVersion.
- use catrez instead of copyfork
- make 'install' and 'release' targets consistent with the rest of
the GNO builds.
and INCLUDE_GNO_ALT. The directories specified in 13/orcacdefs/defaults.h
are now assumed to be correct. When building lib/libc/stdio/vfprintf.o,
these directories have to explicitly stated the makefile for the moment.
- Use macros for -I flag values rather than explicit directories
- Use a text diversion rather than explicit shell redirection.
This avoids a gsh hang on some systems.