This is slightly modified version of a document I found on the web that details how to modify libc on SunOS 4.1.x machines to replace the resolver routines that reference NIS with ones that use /etc/resolve.conf. I have used this successfully on 1.4.3 and some of the suggestions on removing files are 1.4.4 related.
The best thread on this is here
SRDB ID: 3886
SYNOPSIS: Using DNS without NIS
DETAIL DESCRIPTION:
Want to use DNS, but not NIS
SOLUTION SUMMARY:
MAKING A LIBC.SO for DNS without NIS
This is a procedure that can be used to add name resolver
routines into shared libc library in SunOS_4.1.
First load "SHLIB CUSTOM" either from SunInstall or from
add_services. Besure to have the file /etc/resolv.conf
configured properly.
Test this with /usr/etc nslookup.
1. Become superuser**
% 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
% mv xccs.multibyte. xccs.multibyte.o
% ar x /usr/lib/libresolv.a
The libresolv.a (apparently) contains object modules
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: (might not be there in 1.1.4)
% 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. Backup a directory
% 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. Edit the Makefile
Change OBJSORT line to include the local directory "."
Apparently this is needed if you are root (i didn't
need to do this on my 4.1.3 build)
OBJSORT=./objsort
For SunOS 4.1.3 (at least) you need to add -ldl to
the end of ld command in the two targets. If you
don't do this you are forced to link dl with all
executables you create with the c compiler
% make libc.so
9. Now a new libc libc.so.x.y.z is built in the current
directory. It is recommended that you test
out this library at this point before installing it.
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 satisfied that the new library worked, proceed to
install it with the following commands:
% cp libc.so.x.y.z /usr/lib
% ldconfig
% unsetenv LD_LIBRARY_PATH
10. Now running with the new library. Verify this by
doing a trace command
of let's say "date".
% trace date
The output should inform you that the new library
is being used.
BUG REPORT ID: n/a
PATCH ID: n/a
PRODUCT AREA: n/a
PRODUCT: DNS
SUNOS RELEASE: SunOS 4.1
UNBUNDLED RELEASE: n/a
HARDWARE: n/a