1. cd tirpc2.3/lib/librpc/tli make This step will build libtli.so.1 and tisock.so. cd tirpc2.3 Edit Makefile.master and set ROOT to an appropriate value (I set it to /home/root/proto) make vvvbuild This step will build librpc.so.1, rpcbind, keyserv and utilities. cd tirpc2.3/lib/librpc/straddr make The result is straddr.so cd tirpc2.3/lib/librpc/dns make The result is dns.so and dns6.so 2. Install librpc.so.1, libtli.so.1, tisock.so, dns.so, dns6.so and straddr.so to /lib. Install netconfig and tli_devices to /etc. 3. For libc5: Get fresh libc-x.y.x tree, discard obsolete directories rpc and des. Find the place in elf/Makefile, where libc.so is linked and add -lrpc option to command line (it is temporary measure for transition period) Compile it. For glibc-1.99 (alpha): the same instructions, some new code should be added to implement get{public|secreÅ}key. If someone will need it, I can prepare patch. It is pretty small. For glibc2: make it yourself 8) 4. Cross finger and replace libc with new one. DONT REPLACE OLD INCLUDE FILES AND libc.so THAT USED FOR LINKING. 5. Kill portmap. Start rpcbind. Kill old keyserv (if it is running), start new one. 6. That is all. This library is binary compatible with RPC4.0 (I managed to make it, but broke compatibility with SVR4 iABI. It's not great loss for Linux world) Several broken programs will stop to work (they forgot to set sa_family field in struct sockaddr) it is very easy to repair them. Just find all initializations of sockaddr_in's and add: memset(&sin, 0, sizeof(sin)); sin->sin_family = AF_INET; Then compile, and link with RPC4.0 include files and library. Also, you will need to recompile amd. The reason is criminal negligence of its authors, they implemented fake asynchronous calls illegally. It's wonderful, that it works as rule. REMEMBER: old programs work with new library, but programs compiled with new include files will not work with old library! Alexey Kuznetsov. kuznet@ms2.inr.ac.ru