[comp.sys.pyramid] Is Pyramid's rpcgen broken?

mb@rex.cs.tulane.edu (Mark Benard) (03/14/90)

I was trying to apply Pyramid's rpcgen (from OSx 4.4) to some simple examples
and kept getting all sorts of error messages about syntax;  to start with it
would not accept a 'const' statement.  The same examples compile fine on
Suns.  I finally compiled rpcgen from the rpc4.0 source distribution and it
works fine on Pyramid.  Is Pyramid's version broken?

Mark
-- 
Mark Benard
Department of Computer Science     INTERNET & BITNET: mb@cs.tulane.edu
Tulane University                  USENET:   rex!mb
New Orleans, LA 70118

guy@auspex.auspex.com (Guy Harris) (03/15/90)

 >I was trying to apply Pyramid's rpcgen (from OSx 4.4) to some simple examples
 >and kept getting all sorts of error messages about syntax;  to start with it
 >would not accept a 'const' statement.  The same examples compile fine on
 >Suns.  I finally compiled rpcgen from the rpc4.0 source distribution and it
 >works fine on Pyramid.  Is Pyramid's version broken?

Perhaps, but it might just be old.  "rpcgen" changed between the first
SunOS 3.x release in which it appeared, and the SunOS 4.0 release; the
NFSSRC3.x and NFSSRC4.0 versions, and the rpc3.x and rpc4.0 versions,
may also differ in the same way.  I don't remember what the changes
were, but one of them may have been the appearance of "const".

glr@otc.otca.oz (Gordon Rowell) (03/20/90)

In article <3038@auspex.auspex.com>, guy@auspex.auspex.com (Guy Harris) writes:
> 
> Perhaps, but it might just be old.  "rpcgen" changed between the first
> SunOS 3.x release in which it appeared, and the SunOS 4.0 release; the
> NFSSRC3.x and NFSSRC4.0 versions, and the rpc3.x and rpc4.0 versions,
> may also differ in the same way.  I don't remember what the changes
> were, but one of them may have been the appearance of "const".

It gets even worse under OSx5, to which we have recently upgraded. Most of
the RPC calls have been merged into libc.a, but unfortunately not all. The
strange thing is that the missing functions are parts of my copies of RPC
source files (version 4.0), rather than entire missing files. The following
functions are missing:

__rpc_dtablesize
_bindresvport
_clnt_create
_clnt_spcreateerror
_getrpcport
_svc_getreqset
_xdr_free
_xdr_rmtcall_args
_xdr_rmtcallres

As it stands, the support is there for writing servers, but writing RPC
clients is more difficult the necessary. For example, the function
clnt_create() is used in all of the Sun documentation when writing the
client side. If you don't use clnt_create() you have to do a lot of mucking
about with sockaddrs. xdr_free() should be called when you have finished
with a decoded argument or you will get a memory leak. I have made a
library containing these functions by selectively compiling parts of the
source files.

Can anyone explain why the functions are missing? We have Interactive 386ix
UNIX on some 386 machines and the above functions are also missing (amongst
others). Is it a SYSV idea of RPCs, or is these libraries descended
from a very old version of RPCs?

Gordon
-- 
  Gordon Rowell                 ACSnet/Internet:  glr@otc.otca.oz.au
  R&D Contractor                UUCP:  {uunet,mcvax}!otc.otca.oz!glr
  Network R&D                   Snail:  GPO Box 7000, Sydney 2001, Australia
  |||| OTC ||                   Phone:  +61 2 287 5385   Fax: +61 2 287 4990