eliminate oldlog.c from the build. old_syslog() was only used by
syslog2.asm, and inspection showed it to be likely buggy anyway.
It was missing a field in the passed data structure, and using
it would cause any long-running daemon to run out of memory if
didn't crash first. For now I'm leaving oldlog.c where it is
rather than doing a 'cvs rm'.
syslog.c:
Major changes...
- The facility/priority has gone back to being of type int vice long;
the original change was a red herring.
- The current syslog implementation will now talk to Phil's original
syslogd.
- The busy wait in sendPort now forces a context switch.
syslog2.asm:
- I commented the sources while figuring out what Phil's syslogd
was doing. I may was well check in those comments even though
this file is not currently used.
- fixed the save name and the 'mcopy' directive
vis.c, unvis.c:
- initial checkin
out of 13/RInclude instead of /src/gno/build.tools. This implies that
builddate.rez has to have been previously installed in 13/RInclude; this
is done by the 'install' and 'release' targets in /src/gno/build.tools.
- Added the sprintmt and vsprintmt routines. These are thread
safe variants of the sprintf and vsprintf routines. Note that
they don't support as many formatting options as stdio does.
gnomisc.c:
- Define the global variable "__progname". This is initially
set to "(unknown)", but is properly initialized to the return
value of __prognameGS() the first time that function is called.
- added thread safe functions syslogmt and vsyslogmt.
- minor changes to sendPort to make it thread safe
- moved variadic wrappers to the end of the file so that the
command line optimize/debug levels get propogated through
the rest of the source during compilation.
- changed the mechanism by which sendPort waits for it's buffer
to be released by syslogd
- since ctime(3) is not thread safe, add a flag to the
SyslogDataBuffer_t that tells syslogd(8) to add the appropriate
time stamp. This is easier than implementing thread safe
versions of ctime and localtime.
The last fix wasn't quite correct in that (for copying only data
forks) the rez fork was still created but with zero length.
This fix doesn't create the rez fork at all under those
circumstances.
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.