Use them to `make gcc -Wformat' check formats for all printf-like
and scanf-like functions in /usr/src except for the err()/warn()
family. err() isn't quite printf-like since its format arg can
legitimately be NULL. syslog() isn't quite printf-like, but gcc
already accepts %m, even for plain printf() when it shouldn't.
as threatened in the 4-5 year old comment. Most of the change is
in <machine/ansi.h>; this commit just removes cruft for the strict
ANSI case. 64-bit types couldn't actually be defined using
__attribute__(()) in gcc-2.4, since attribute names in the
implementation namespace only became available in gcc-2.7. I've
probably just broken gcc-2.6 support by using the gcc-2.7 names
unconditionally.
<resolv.h>. This breaks user ppp at least, and goodness knows how
many ports. :-(
This a bit of a hack, but is probably simpler than duplicating the
typedefs and protecting them from each other.
Also, remove some temporary XXX notes that I forgot to remove before.
since it has far wider impact than hostname lookups (including passwords).
Note that this has more ugly symbol hiding and binary compatability hacks
that can go away the second we bump majors.
Obtained from: Mostly from diff against ISC bind-8.1.2 sources
instead of long long and unsigned long long. Really they should be
quad_t and u_quad_t, but that would require sys/types.h and this
header only includes machine/types.h. The difference here is that
int64_t and u_int64_t on alpha are long and unsigned long, not
long long etc. This is required to pass gcc's type checking where
long != long long even though they are the same size of alpha.
about spaces and tabs.
The externs in the static inline functions remain 'cause (a) they're
required; and (b) I can't find any gcc -W* cases where they generate
warnings.
test for __isthreaded before calling the lock/unlock functions to
try to save some performance. The _THREAD_SAFE case should become the
default, but since it tests for a global variable in libc, people won't
be able to build -current on pre-3.0 systems unless the default leaves
it out. Such is life.
_KPOSIX_PRIORITY_SCHEDULING options to work. Changes:
Change all "posix4" to "p1003_1b". Misnamed files are left
as "posix4" until I'm told if I can simply delete them and add
new ones;
Add _POSIX_PRIORITY_SCHEDULING system calls for FreeBSD and Linux;
Add man pages for _POSIX_PRIORITY_SCHEDULING system calls;
Add options to LINT;
Minor fixes to P1003_1B code during testing.
Changes to support building with _POSIX_SOURCE set to 199309L:
1. Add sys/_posix.h to handle those preprocessor defs that POSIX
says have effects when defined before including any header files;
2. Change POSIX4_VISIBLE back to _POSIX4_VISIBLE
3. Add _POSIX4_VISIBLE_HISTORICALLY for pre-existing BSD features now
defined in POSIX. These show up when:
_POSIX_SOURCE and _POSIX_C_SOURCE are not set or
_POSIX_C_SOURCE is set >= 199309L
and vanish when:
_POSIX_SOURCE is set or _POSIX_C_SOURCE is < 199309L.
4. Explain these in man 9 posix4;
5. Include _posix.h and conditionalize on new feature test.
is generated. It must be installed in both /usr/include/rpc/ and
/usr/include/rpcsvc/ for historical reasons. The generated version
was once missing ANSI prototypes because the wrong flags were passed
to rpcgen, but that is fixed now. The committed version had `#pragma
indent' which gratuitously broke K&R support. Apart from this, all
versions before and after this commit are identical.
Move sigjmp_buf and jmp_buf structure definitions to machine/setjmp.h
so that i386 can continue to use int as the basic register type and
alpha can use long. Bruce was concerned about possible differing
alignment. I've left the definition of _JBLEN in machine/setjmp.h
even though Bruce's example used the number directly. I don't know if
any other code relies on _JBLEN, so I left it to avoid potential
breakage.
Note: this may cause some problems in a few cases. With very old versions
of rpcgen, if you defined a procedure called foo, then rpcen would create
client stubs for function foo_1() and server stubs _also_ with function
foo_1(). This only worked because of the lack of ANSI prototypes: the
client side stub takes different arguments than the server side stub.
(The client side takes a CLIENT * handle, while the server side wants
an svc_req *.)
To fix this conflict, rpcgen in ANSI mode generates foo_1() for the client
and foo_1_svc() for the server. RPC server code that depends on the old
behavior might break because of this. (Fixing it is just a matter of
adding the _svc suffix onto the server procedure names.)
isn't gratuitously broken. This also prevents ANSI compilers from
recognizing the pragma as a request to run /usr/games/hack...
FreeBSD Ids should be in comments or rcsids, not in `#pragma ident's
(which are equivalent to comments when compiled by gcc), and the
only FreeBSD change in this file seems to be adding the Id.