rpcgen(1) on Solnix vs Linux and the BSDs
On Solnix, rpcgen is the illumos RPC protocol compiler at /usr/bin/rpcgen. The bundle has only a FreeBSD counterpart. The difference that matters most is -I: on FreeBSD it is required for inetd/port-monitor servers, while on Solnix it is backward-compatibility only and is meant to be used with -b.
The manual pages
- Solnix: rpcgen(1) from
pkgs.solnix.illumos-world-man· illumos.org - FreeBSD: rpcgen(1) 15.1-RELEASE
What Solnix runs
A default Solnix system runs the illumos rpcgen at /usr/bin/rpcgen, published in pkgs.solnix.illumos-world-man. No other variants are shipped. The bundle has no Linux, OpenBSD or NetBSD rpcgen page, so nothing is claimed about those systems.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| FreeBSD | -I and port-monitor servers | On Solnix, -I is for backward compatibility only and should be used with -b. Without -b, rpcgen already generates servers that port monitors can invoke. On FreeBSD, -I is needed to generate servers invokable through port monitors and inetd(8).Source: Solnix rpcgen(1) -I; FreeBSD rpcgen(1) -I |
| FreeBSD | -i default inline size | Both pages document -i size as the size at which inline code generation starts. The Solnix default is 5. The FreeBSD default is actually 0, which disables inline code unless you pass a non-zero value. Generated code can differ between the two.Source: Solnix rpcgen(1) -i; FreeBSD rpcgen(1) -i (backwards-compatibility note) |
| FreeBSD | -C meaning | On Solnix, -C generates header and stub files usable with ANSI C compilers, and the headers also work with C++. On FreeBSD, ANSI C code is always generated and -C exists only for backwards compatibility.Source: Solnix rpcgen(1) -C; FreeBSD rpcgen(1) -C |
| FreeBSD | -A automatic multithreaded mode | Solnix rpcgen has -A, which enables Automatic MT mode in the server main program and implicitly turns on -M. The FreeBSD SYNOPSIS and option list have no -A.Source: Solnix rpcgen(1) SYNOPSIS, -A; FreeBSD rpcgen(1) SYNOPSIS |
| FreeBSD | transport environment variable | For a server started by a port monitor, Solnix takes the transport name from PM_TRANSPORT. FreeBSD takes it from NLSPROVIDER. Both fall back to NETPATH, then to the visible transports in /etc/netconfig.Source: Solnix rpcgen(1) DESCRIPTION (PM_TRANSPORT); FreeBSD rpcgen(1) DESCRIPTION (NLSPROVIDER) |
| FreeBSD | -P with -I | The FreeBSD synopsis shows -I together with -P: [-I -P [-K seconds]]. The Solnix synopsis shows [-I [-K seconds]] and has no -P. The FreeBSD text in the bundle does not describe what -P does.Source: FreeBSD rpcgen(1) SYNOPSIS; Solnix rpcgen(1) SYNOPSIS |
| FreeBSD | port monitors named | The Solnix page says generated servers can be started by port monitors such as inetd or listen, and that listen(8) always spawns a new process per request. The FreeBSD page names only inetd(8) and ties this behaviour to -I.Source: Solnix rpcgen(1) DESCRIPTION, -K; FreeBSD rpcgen(1) DESCRIPTION |
| FreeBSD | RPC_MSGOUT error hook | Solnix documents compiling the generated proto_svc.c with -DRPC_MSGOUT=func to redirect server error reports, with a printf-like signature. The FreeBSD text in the bundle does not document RPC_MSGOUT.Source: Solnix rpcgen(1) Server Error Reporting; FreeBSD rpcgen(1) (no such section in the bundle) |
| FreeBSD | -v option | The Solnix SYNOPSIS lists -v. The FreeBSD SYNOPSIS has no -v. The Solnix text in the bundle does not describe it.Source: Solnix rpcgen(1) SYNOPSIS; FreeBSD rpcgen(1) SYNOPSIS |
Standards
- POSIX: rpcgen is not a POSIX.1-2024 utility.
Writing portable scripts
- Pass
-iwith an explicit non-zero size if you want inline code on both systems, since the defaults are 5 on Solnix and 0 on FreeBSD. - Do not rely on
-Ialone to get an inetd-capable server. On Solnix, use-I-b. On FreeBSD,-Iis required.
Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.