Skip to content

Instantly share code, notes, and snippets.

@ajacocks
Created December 31, 2021 06:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ajacocks/81421910d80383f8a7ac71515ee4b366 to your computer and use it in GitHub Desktop.
Save ajacocks/81421910d80383f8a7ac71515ee4b366 to your computer and use it in GitHub Desktop.
DNS for SunOS 4.1.X systems (provided by Sun)
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 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 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 some libc.so.x.y.z 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment