Why the resolver libraries are unsupported

Gehri Grimaud GEHRI at cc.usu.edu
Fri Nov 2 11:20:00 AEST 1990


In article <1990Oct7.233618.6463 at rice.edu>, flanagan at 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 at cc.usu.edu
Utah State University                   gehri at usu.bitnet
Office of Computer Services             tel. (801) 750-2392
UMC 3700
Logan, Utah  84322



More information about the Comp.sys.sun mailing list