⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 info.sunsharedlib

📁 早期freebsd实现
💻 SUNSHAREDLIB
字号:
Updated by Dave Morrison for 4.9.2 release of bind.		11/4/93-------Message-Id: <9302101649.AA29641@irving.nas.nasa.gov>From: pomeranz@nas.nasa.gov (Hal Pomeranz)Date: Wed, 10 Feb 1993 08:49:03 -0800X-Mailer: Mail User's Shell (7.2.4 2/2/92)To: bind@ucbarpa.berkeley.eduSubject: Re: getting name service right on non-NIS Sun			-----------------			NEW BIND FOR SUNS			2/11/91			-----------------[Partially taken from the document "Making a libc.so for DNS without NIS" that has been distributed to various SunOS users, and seen on Usenet. Original document by Paul Balyoz (pab@naucse.cse.nau.edu). Updated to include OS4.1.2 information, Hal Pomeranz, 3/3/92.]This document tells how to install a NEW version of the BIND Name Serverresolver routines into the shared C library of a Sparcstation runningSunOS 4.1 or greater.  The procedure is a bit different when you aretrying to install a version of BIND distributed from Berkeley, comparedto the (older) resolver library that comes with SunOS.A.  Get a 4.9.2 copy of bind, one which has the contrib/sunlibcdirectory.  Configure conf/options.h to taste as you would a standardbind installation.  Unless you are also compiling the name server youdon't need to worry about the server specific options.  Options ofconsequence are DEBUG, RESOLVSORT, SUNSECURITY, ALLOW_T_UNSPEC,and ALLOW_UPDATES.Go to the contrib/sunlibc directory.  Run the make there.  Check theMakefile to get BUILDDIR right.  Make sure that it is the file that isused for the build so you get the libraries built with the correctoptions!This rebuilds the resolv library with the cflags required for sharedlibraries (-pic).  It also copies the object files to place in libc intothe current directory.		cd .../bind-4.9.2/contrib/sunlibc		make BUILDDIR=../../sun4.bB.  Follow the steps below to make a new shared library on your Sunwhich includes the new resolver library routines in it.	(If you feel confident you know what to do, you can copy the	provided script make_lib.sh into /usr/lib/shlib.etc and run it.	It does steps 1-8, although is not very safety checking.  It is,	however, convenient for admins who are tired of typing or	copying all these commands!)    1.  Move into the shared-lib area and make a temporary directory:		cd /usr/lib/shlib.etc		mkdir tmp    2.  Move into this new directory, extract the pic (position	independent code) object files from libc_pic.a and remove	the SYMDEF file.  The renaming (mv commands) is done because	the "ar" command truncates names to 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    3.  Copy the object files created in part A to this libc build	directory.  This will replace Sun's inet_addr.o, which is	ok, this one is better.  Make sure that Sun's mktemp.o and	strpbrk.o don't get stomped, you need to use Sun's.		cp -i .../bind-4.9.2/contrib/sunlibc/*.o .    4.  Make sure the old host resolver is not still lying around:		rm gethostent.o	(ignore error "rm: gethostent.o nonexistent" if you see it.)    5.  Go back up to the shared library building directory and	duplicate the list of object files to use:		cd ..		cp lorder-sparc lorder-sparc.orig    6.  Edit this object file list and make the following modifications	if they haven't already been done before to this file:		remove: gethostent.o		add:	gethnamaddr.o			sethostent.o			res_query.o			res_mkquery.o			res_send.o			res_debug.o			res_comp.o			res_init.o			herror.o			strerr.o	(the last two are new, which Sun's resolver doesn't use)	After deleting gethostent.o, you can use the following	patch, or make the changes by hand (in this order):		***************		*** 149,154 ****		--- 149,164 ----		  listen.o		  getwd.o		  getnetgrent.o		+ gethnamaddr.o		+ herror.o		+ sethostent.o		+ res_query.o		+ res_mkquery.o		+ res_send.o		+ res_debug.o		+ res_comp.o		+ res_init.o		+ strerror.o		  ypxdr.o		  ttyname.o		  setbuffer.o    7.  The Makefile in shlib.etc for building shared libraries	has one problem when you run it as the super user.  So	edit it and modify the definition of "OBJSORT" to read:		OBJSORT=./objsort	If you are using SunOS 4.1.2, change the lines (there are two)	in the Makefile	which read		ld -assert pure-text `${OBJSORT} lorder-sparc tmp`	to read		ld -assert pure-text `${OBJSORT} lorder-sparc tmp` -ldl    8.  Now we can finally build the shared library.  Type:		make libc.so	What kind of errors might you get?  Here's a couple:	a. It blows up on one of the .o files in tmp, saying	   that the object file is in an inconsistent state.	   SOLUTION: start over; you did something wrong when you	   compiled the new libresolv.a in section A, above.	   Make SURE not to let Makefile "ld" the object files!	b. It lists hundreds of error lines about offsets or	   addresses being wrong in all your resolver .o files.	   SOLUTION: start over; you needed to specify "-pic"	   to the C compiler when building the libresolv.a library.    9.  If all goes well, you now have a "libc.so.x.y.z" in this	directory.  Test it out before installing it systemwide!	You can do this by pointing your shell's library path	variable to the current directory, then trying various	networking commands:		setenv LD_LIBRARY_PATH `pwd`		ping some.host.edu		ftp another.host.com		telnet someone.else.ca		unsetenv LD_LIBRARY_PATH	If anything in the library fails, you need to start	section B over again.  Maybe you forgot to use Sun's	versions of mktemp.o and strpbrk.o; things just won't	work with BIND's new versions of these files.   10.  When you are sure it's working OK, you can install it	into the system library directory (you will need to be superuser        to do this):		su		cp lib.so.x.y.z /usr/lib		chmod 755 /usr/lib/lib.so.x.y.z		ldconfig   11.  You can prove that you're using the new library now,	by watching the output of something like:		trace date	The lastest BIND resolver is now installed on your system.	You can go ahead and compile and install the other BIND	tools such as named, nslookup, etc.  You do not need to	specify the "-lresolv" library when compiling these tools.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -