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.
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.)
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.
Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.
specified in the top level Makefiles.
Previously I missed dozens of Makefiles that skip the install after
using `cmp -s' to decide that the install isn't necessary.
- Don't do mkdir/chown/chmod
- Do `cmp -s' before attempting to install a header
This should fix the obnoxious problem of yp programs wanting to
rebuild every time.