RPC inconsistency

Fedin Pavel p.fedin@samsung.com
Mon May 14 05:42:00 GMT 2012

I have a problem with RPC libraries. Looks like either there is some 
serious inconsistency in Cygwin, or i seriously miss something.
For the start, i tried to recompile NFS server from source code, in 
order to hunt for some bugs i've got sick of. And here i got a problem.
First of all, i discovered that i miss include/rpc directory. Well, i 
know that newer systems migrate to ti-rpc. After tweaking makefiles i 
was able to build nfs server against ti-rpc. But the resuiting binary 
failed to run with:
nfsd[4268] 05/14/112 10:31 rpcmisc.c 101 : unable to register (nfsd, 2, udp)
which is an error from svc_register()
After digging some more in tirpc sources i discovered that this happens 
because ti-rpc libray attempts to talk to port mapper using 
/var/run/rpcbind.sock. And nobody is listening there.
This lead me to a conclusion:
1. portmap service we use is original Sun's portmapper, coming from 
sunrpc package.
2. ti-rpc should come with more advanced port mapper (google told me 
it's named rpcbind). ti-rpc library can't work with old portmap.
I examined sources for both packages. ti-rpc package contains sources 
for rpcbind daemon, as well as sunrpc package contains sources for 
librpc, as well as RPC includes missing on my system.
So, questions are:
1. Is this really correct? Why don't we have full ti-rpc package, as 
well as full ti-rpc package? They seem to be backward-compatible only in 
terms of client-server relationship.
2. Which one should i use to build NFS server?

  Kind regards
  Pavel Fedin
  Expert engineer, Samsung Moscow research center

Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

More information about the Cygwin mailing list