flanagan@lisbon.stat.washington.edu (Jim Flanagan) (10/08/90)
I found out why the libc_resolv.so.sun{3,4} libraries available from uunet are unsupported. It looks like Sun is basically ignoring them in releasing new versions of SunOS. I made the mistake of installing libc_resolv.so.sun4 on a SLC running 4.1. Most commands after that gave a "symbol some_symbol not found at 0xNNN" error. Unfortunately, both rm and ldconfig were among these commands. I thought I had trashed the system. Fortunately, ln was not among the disabled commands, and I linked the old library to a new name with a higher index (libc.so.1.5.2) and did a L1-A and rebooted. I got the machine back. Great fun. Does anyone know when resolver libraries will be available for 4.1? They are so useful... Jim Flanagan flanagan@stat.washington.edu
GEHRI@cc.usu.edu (Gehri Grimaud) (11/02/90)
In article <1990Oct7.233618.6463@rice.edu>, flanagan@lisbon.stat.washington.edu (Jim Flanagan) writes: > Does anyone know when resolver libraries will be available for 4.1? They > are so useful... I don't know if this will help of not. I got these instructions from someone at Sun Tech Support. Please don't flame me or Sun if they don't work... o MAKING A LIBC.SO for DNS without NIS This is a procedure you can use to add name resolver routines into your shared libc library in SunOS_4.1. You must have fist loaded "SHLIB CUSTOM" either from suninstall or from add_services. Be sure to first have the file /etc/resolv.conf configured properly. You can test this first with /usr/etc/nslookup. ------------------------------------------------------------------------- 1. Become super user % su (if necessary) 2. Make a temporary directory % cd /usr/lib/shlib.etc % mkdir tmp 3. Change to the "tmp" directory just made, extract the pic .o from libc_pic.a and rm the file __.SYMDEF. The reason you need to do the 2 "mv" commands is because "ar" truncated filenames over 16 characters. % cd tmp % ar x ../libc_pic.a % rm __.SYMDEF % mv rpc_dtablesize. rpc_dtablesize.o % mv rpc_commondata. rpc_commondata.o % ar x /usr/lib/libresolv.a The libresolv.a (apparently) contains object modules that are position independant, so they can be added to the libc_pic modules without fear. 4. Remove the old routine to do the hostname/addr resolution: % rm gethostent.o 5. Remove the libresolv module that contains `strncasecmp' (which is now in the main C library, so it is redundant): % rm strcasecmp.o 6. % cd .. 7. Copy lorder-sparc to lorder-sparc.orig Edit the file lorder-sparc and remove the reference to `gethostent.o' and add the references to the resolver library routines by applying this patch: remove : gethostent.o add : gethostnamadr.o sethostent.o res_query.o res_mkquery.o res_send.o res_debug.o res_comp.o res_init.o % diff -rc2 lorder-sparc.orig lorder-sparc *** lorder-sparc.orig Thu Feb 8 05:27:46 1990 --- lorder-sparc Mon Apr 9 12:58:59 1990 *************** *** 150,154 **** getwd.o getnetgrent.o ! gethostent.o ypxdr.o ttyname.o --- 150,161 ---- getwd.o getnetgrent.o ! gethostnamadr.o ! sethostent.o ! res_query.o ! res_mkquery.o ! res_send.o ! res_debug.o ! res_comp.o ! res_init.o ypxdr.o ttyname.o 8. % make libc.so 9. Now you should have some libc.so.x.y.z built in the current directory. It is recommended that you tested out this library at this point before installing it. You can do so by setting the environment LD_LIBRARY_PATH to the current directory for example: % setenv LD_LIBRARY_PATH `pwd` % your_favorite_test_cmd (ie. ping, ftp, telnet) Once you are satisfied that the new library worked, you can proceed to install it with the following commands: % cp libc.so.x.y.z /usr/lib % ldconfig % unsetenv LD_LIBRARY_PATH 10. You are now running with the new library. You can verify this by doing a trace command of let's say "date". % trace date The output should informed you that the new library is being used. Gehri Grimaud gehri@cc.usu.edu Utah State University gehri@usu.bitnet Office of Computer Services tel. (801) 750-2392 UMC 3700 Logan, Utah 84322
dnb@meshugge.media.mit.edu (David N. Blank) (11/21/90)
What you have posted works quite well, but I would offer some additions provided by the efforts of Greg Earle. He has updated the version you posted a bit. The biggest change is the recommendation to get a different version of the res_send routine of the resolver (to replace the Sun supplied 4.8 version which has a bug in it). I have received his kind permission to redistribute it, so feel free to mail me for a copy.