Fix numerous ANSI conformance bugs and other nits.
ctype.h:
o There were no prototypes behind the macros (conformance bug).
o isascii() didn't have enough parentheses (plain bug).
o tolower() and toupper were always static inline (conformance
bug? You could undef them and take their address, but this
gave different addresses in different modules. You couldn't
undef them and declare them (correctly) again). <stdio.h>'s
treatment of putc() shows one way to handle this problem,
but it only works because the putc() macro is allowed to
reevaluate its args. I used a hack controlled by
_EXTERNALIZE_CTYPE_INLINES_ to get <ctype.h> to generate the
code (the previous hack involving _ANSI_LIBRARY_ goes away).
This has the advantage that the core of the functions is only
written down once and the disadvantage that another layer of
functions is required. The extra layer goes away if inline
functions are used, leaving only the problem of understanding
why there are functions named toupper(), __toupper and
___toupper() as well as a macro named toupper.
o Nothing seems to define _USE_CTYPE_LIBRARY_. Eliminate it
o Let the user set _USE_CTYPE_INLINE_ and _DONT_USE_CTYPE_INLINE_
for full control over inlining.
o The args for the inline functions didn't have enough
underscores (conformance bug).
o The formatting and ordering was inconsistent (style bug).
o TODO: fix conformance bugs brought by including <runetype.h>.
password databases:
#define _PW_KEYPLUSBYNUM '5' /* special +@netgroup entries */
#define _PW_KEYMINUSBYNUM '6' /* special -@netgroup entries */
#define _PW_KEYPLUSCNT '7' /* number of +@netgroup entries */
#define _PW_KEYMINUSCNT '8' /* number of -@netgroup entries */
This is to help getpwent.c in libc build the +@netgroup/-@netgroup
caches.
NetBSD ld code except for local changes for dlopen() and friends and
the hashing on the minor value of the shlibs. We should be binary
compatible now with all their libraries.
Obtained from: NetBSD
to properly resolve some definitions in <nfs/nfs.h>. I suppose nobody noticed
this before because no one's tried to build bootparamd in FreeBSD until
now.
(Yes, you read that right: I've got bootparamd ready to go. And
rarpd is on the way. :)
Define CLK_TCK only if _ANSI_SOURCE is not defined.
Don't include <machine/limits.h> to get the definition of CLK_TCK.
CLK_TCK should never have been defined there, and the inclusion
polluted the namespace.
Reduce _JBLEN for the i386 to what is actually used.
Encapsulate jmp_buf and sigjmp_buf in structs.
Enlarge jmp_buf to the same size as sigjmp_buf.
Declare *longjmp as non-returning.
Remove stale comments about sig*jmp not being implemented.
DANGER WILL ROBINSON!
_PATH_UNIX is currently defined as the literal string "don't use this".
I am of two minds about this myself, but wanted to get something into the
tree as quickly as possible.
something in them, and which ones were left blank. This will be used
for YP support in a few minutes, and for user login classes if anyone cares
to implement them.
created at install time and not compared with the current version, so
it can't be installed using install and the timestamp of the target gets
clobbered.
are running under. Here's how to bootstrap (order is important):
1) Re-compile gcc (just the driver is all you need).
2) Re-compile libc.
3) Re-compile your kernel. Reboot.
4) cd /usr/src/include; make install
You can now detect the compilation environment with the following code:
#if !defined(__FreeBSD__)
#define __FreeBSD_version 199401
#elif __FreeBSD__ == 1
#define __FreeBSD_version 199405
#else
#include <osreldate.h>
#endif
You can determine the run-time environment by calling the new C library
function getosreldate(), or by examining the MIB variable kern.osreldate.
For the time being, the release date is defined as 199409, which we have
already established as our target.
/usr/include.
Make comment about mp.h missing and remove it from the list of files.
Fix installation of ufs include files as this is now a tree ufs/{ffs,lfs,
mfs,ufs}.
Make setting of SHARED optional by makeing it SHARED?=.
Comment out installation of X11 includes since it does not work
for XFree86 until we get XFree86 to install as /usr/X11.
Update _PATH_UNIX to be /kernel. Remove /usr/{contrib,old}/bin from
_PATH_STDPATH.
idea considering the old version (but I haven't time for attic surgery - this
is just a caution). This is part of (and the major reason for) the new ld
changes.