so it can't be completely fixed here. Putting -I paths to the current
headers in CFLAGS is more likely to break things than fix them, since
there is no reason why current headers should work with old libraries.
Other Makefiles that do this may only work because they are not used early
in the bootstrap. However, the usual problem with errno being defined in
terms of a nonexistent library doesn't seem to occur here, since we don't
reference errno.
a circular dependency problem, wherein rpcgen depends on the latest
includes, but those same includes depend on rpcgen to build
include/rpcsvc. This was causing the build or librpcsvc to fail
(like I said, only on upgrades of 9 month old sources).
If there's stylistic problems, tell me, I'll learn and fix them.
I did a buildworld with this, it should be safe.
is defined so that this program behaves the same when built with
either set of tools. The only difference is where the pre-processor
is found. And that is a bug - it should check the CPP environment
variable and the path before just assuming that the compiled in
path is OK. I guess we should be using -Y ${WORLDPATH}/usr/bin/cpp
during a bootstrap build.
Update rpcgen with the one from the TI-RPC 2.3 distribution.
Note that when built for FreeBSD, this version of rpcgen assumes
backwards compatibility mode by default. This means that it will produce
ONCRPC 4.0 compatible code unless otherwise instructed, instead of the
other way around.
One incompatibility has also been worked around: this rpcgen normally
always emits an '#include <stropts.h>' directive whether you select
backwards compatibility mode or not. We don't have STREAMS, so this
behavior has been changed: now it will only emit this line if run in TI-RPC
mode.
The 'generate output files in current directory instead of the
directory where the protocol definition file lives' hack from the
original rpcgen has been preserved.
Notable new features:
- Can be used to generate RPC servers that can be launched
from port monitors such as inetd(5).
- Can generate ANSI C code.
- Can generate sample client and server top-level programs and
makefiles in addition to the usual client and server stubs.
- Can generate inline XDR routines.
directory (instead of the same directory as the source files) and that
#includes in those files do not contain the path to the source file.
Obtained from: J.T. Conklin via NetBSD