- 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
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.
- changed OPSHIFT macro to use a (unsigned long) vs (unsigned) cast;
this at least will compile now; ORCA/C was complaining about 'duplicate
label in case statement'.