Article: 632 of unix-pc.sources
From: lenny@icus.ICUS.COM (Lenny Tropiano)
Newsgroups: unix-pc.sources
Subject: shlib.shar - add to the UNIX pc shared library (/lib/shlib)
Keywords: /lib/shlib, shared library, gnulib, dirent, symbols
Message-ID: <1212@icus.ICUS.COM>
Date: 26 Jun 90 19:19:13 GMT
Reply-To: alex@otter.acslab.umbc.edu (Alex S. Crain)
Distribution: unix-pc
Organization: ICUS Software Systems, Islip, New York
Lines: 1423

Again, this is posted for Alex Crain, reply to him, not me.  His postings
never hit the "net-at-large", so I'm posting them on his behalf.

-- cut here for shlib.shar -- -- cut here for shlib.shar --

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of shell archive."
# Contents:  Makefile Makefile.minic README new.ifile newshlib.ifile
#   shlib.4 stubs.s
# Wrapped by lenny@icus on Fri Aug  3 18:26:24 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f Makefile -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"Makefile\"
else
echo shar: Extracting \"Makefile\" \(280 characters\)
sed "s/^X//" >Makefile <<'END_OF_Makefile'
XMINIC =minic/libminic.a
XDIRENT=dirent/libdirent.a
XGNULIB=/usr/lib/gcc-gnulib
XNEWLIB=newshlib
XMAP= # -m
X
Xall: ${NEWLIB}
X
Xstubs.o: stubs.s
X	as stubs.s
X
Xextra.o: ${DIRENT} stubs.o
X	ld -r -o extra.o stubs.o ${GNULIB} ${MINIC} ${DIRENT}
X
X${NEWLIB}: extra.o
X	ld -o $@ ${MAP} new.ifile
X
END_OF_Makefile
if test 280 -ne `wc -c <Makefile`; then
    echo shar: \"Makefile\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f Makefile.minic -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"Makefile.minic\"
else
echo shar: Extracting \"Makefile.minic\" \(1123 characters\)
sed "s/^X//" >Makefile.minic <<'END_OF_Makefile.minic'
X#
X#	Makefile for Yet Another Shared CC driver
X#
X
XLIBMINIC=	libminic.a
XLIBC=		/lib/libc.a
X
X# Things missing from the shared version of libc.  I used the same list
X# as is in Jeffery Small's ccc, who did the hard part and figured out
X# what was missing (and he credits Jim Apedaile for the 3.5 stuff).
X# Thanks Jeffery and Jim!
X
XMISSING35=	acct.o assert.o aulrem.o biglitpow.o bsearch.o clrerr.o \
X		doprnt.o doscan.o dtop.o fakcu.o findiop.o hsearch.o \
X	        lfind.o lockf.o lsearch.o ltostr.o mcount.o mon.o ptod.o \
X		setvbuf.o sigrte.o strtod.o sigtrap.o tell.o tfind.o \
X		tsearch.o vfprintf.o vprintf.o vsprintf.o __cerror.o signal.o
XMISSING351=	acct.o aulrem.o biglitpow.o clrerr.o doprnt.o doscan.o \
X		dtop.o fakcu.o findiop.o lfind.o lockf.o lsearch.o ltostr.o \
X		mcount.o ptod.o setvbuf.o sigrte.o strtod.o tell.o tfind.o \
X		vfprintf.o vprintf.o vsprintf.o __cerror.o signal.o
X
X# Now pick MISSING35 if you're using Version 3.5 of the OS, MISSING351 if
X# you're using version 3.51:
X
X#MISSING=	$(MISSING35)
XMISSING=	$(MISSING351)
X
X$(LIBMINIC):	$(LIBC) Makefile
X		ar x $(LIBC) $(MISSING)
X		ar cr $@ $(MISSING)
X
END_OF_Makefile.minic
if test 1123 -ne `wc -c <Makefile.minic`; then
    echo shar: \"Makefile.minic\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f README -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"README\"
else
echo shar: Extracting \"README\" \(1830 characters\)
sed "s/^X//" >README <<'END_OF_README'
X
XThis distribution is pretty rough, but it was either get it out 
Xrough or wait until I had more time (HAH!) which could be weeks.
X
XThis is all the stuff that you need to build a new shared library for
Xthe 3b1 (7300). I build it, installed it, and my machine still works.
XOther then that, I haven't had time to test it much. I'll be testing it more,
Xand I'd like to here about any bugs.
X
X#################################		           :alex.
X#Disclamer: Anyone who agrees   #                 Systems Programmer
X#with me deserves what they get.#    University of Maryland Baltimore County
X#################################	    alex@umbc3.umbc.edu
X
XThe enclosed files are:
X	README		-	This file
X	Makefile	-	A makefile for the library
X	Makefile.minic	-	A makefile for libminic.a
X	stubs.s		-	The new jumptable
X	new.ifile	-	The ifile for creating the shared library.
X	newshlib.ifile	-	A replacement for /lib/shlib.ifile
X	shlib.4		-	An tbl/roff manpage
X
XThis is set up to build a new shared library out of:
X
X	1) the old shared library
X	2) the missing parts of libc.a
X	3) libdirent
X	4) gnulib (v1.37)
X
XNote that libdirent.a and gnulib are *NOT* included, you will need to snarf 
Xthem from somewhere else (you can get both from ohio-state).
X
XI build mine with two subdirectories, minic and dirent. To do it this way:
X	build libdirent.a and put it in a subdirectory called dirent. 
X	make a directory minic and move Makefile.minic there, type "make".
X	edit Makefile to suit your tastes.
X	type "make"
X	carefully replace /lib/shlib with newshlib
X	cross your fingers
X	reboot the system.
X
XIf this goes well, try compiling some programs using the new shlib symbols.
XThe few tests that I did worked, and the theory seems sound enough, and my
Xmachine hasn't crashed recently. I'd like to here about any bugs, typo's,
Xblatently missing symbols, etc.
END_OF_README
if test 1830 -ne `wc -c <README`; then
    echo shar: \"README\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f new.ifile -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"new.ifile\"
else
echo shar: Extracting \"new.ifile\" \(10409 characters\)
sed "s/^X//" >new.ifile <<'END_OF_new.ifile'
XMEMORY {
X	user_mem : origin = 0x300000 , length = 0x7ff000
X}
X
XSECTIONS {
X	.text 0x310000 BLOCK(1024) : { 
X		shlib.o(.text)
X		.=align(0x10000);
X		extra.o(.text)
X	}
X	GROUP 0x300000 BLOCK(1024) : {
X		.data : { 
X			shlib.o(.data .bss) 
X			extra.o(.data) 
X		}
X		.bss : { extra.o(.bss) }
X	}
X}
X
X
Xtimezone = 0x00300000;
Xtzname = 0x00300004;
Xpatblack = 0x00300014;
Xpatwhite = 0x00300034;
Xpatgray = 0x00300054;
Xpatltgray = 0x00300074;
X_iob = 0x0030009c;
X_bufendtab = 0x003001b8;
X_ctype = 0x0030020c;
Xsys_errlist = 0x0030030e;
X_iob2 = 0x00300bc0;
X_buf2endtab = 0x00300f0c;
X_dbase = 0x00301000;
Xerrno = _dbase + 0x0;
Xenviron = _dbase + 0x4;
XPC = _dbase + 0x8;
XBC = _dbase + 0xc;
XUP = _dbase + 0x10;
Xospeed = _dbase + 0x14;
XLINES = _dbase + 0x18;
XCOLS = _dbase + 0x1c;
Xwncur = _dbase + 0x20;
Xoptind = _dbase + 0x22;
Xoptarg = _dbase + 0x26;
Xopterr = _dbase + 0x2a;
Xoptopt = _dbase + 0x2e;
Xsys_nerr = _dbase + 0x32;
XFPA_flag = _dbase + 0x36;
XFPA_s = _dbase + 0x3a;
XFPA_d = _dbase + 0x3e;
X_sibuf = 0x00306000;
X_sobuf = 0x00306408;
X_tbase = 0x00310000;
Xshlbat = _tbase + 0x0;
Xshlbatid = _tbase + 0x6;
Xaccess = _tbase + 0xc;
Xalarm = _tbase + 0x12;
Xbrk = _tbase + 0x18;
Xibrk = _tbase + 0x1e;
Xsbrk = _tbase + 0x24;
Xchdir = _tbase + 0x2a;
Xchmod = _tbase + 0x30;
Xchown = _tbase + 0x36;
Xchroot = _tbase + 0x3c;
Xclose = _tbase + 0x42;
Xcreat = _tbase + 0x48;
Xdup = _tbase + 0x4e;
Xexecl = _tbase + 0x54;
Xexecv = _tbase + 0x5a;
Xexecle = _tbase + 0x60;
Xexecve = _tbase + 0x66;
Xexeclp = _tbase + 0x6c;
Xexecvp = _tbase + 0x72;
Xexit = _tbase + 0x78;
X_exit = _tbase + 0x7e;
Xfcntl = _tbase + 0x84;
Xfork = _tbase + 0x8a;
Xgetpid = _tbase + 0x90;
Xgetpgrp = _tbase + 0x96;
Xgetppid = _tbase + 0x9c;
Xgetuid = _tbase + 0xa2;
Xgeteuid = _tbase + 0xa8;
Xgetgid = _tbase + 0xae;
Xgetegid = _tbase + 0xb4;
Xgtty = _tbase + 0xba;
Xioctl = _tbase + 0xc0;
Xkill = _tbase + 0xc6;
Xlink = _tbase + 0xcc;
Xlocking = _tbase + 0xd2;
Xlseek = _tbase + 0xd8;
Xmknod = _tbase + 0xde;
Xmount = _tbase + 0xe4;
Xmsgctl = _tbase + 0xea;
Xmsgget = _tbase + 0xf0;
Xmsgsnd = _tbase + 0xf6;
Xmsgrcv = _tbase + 0xfc;
Xnice = _tbase + 0x102;
Xopen = _tbase + 0x108;
Xopeni = _tbase + 0x10e;
Xpause = _tbase + 0x114;
Xpipe = _tbase + 0x11a;
Xprofil = _tbase + 0x120;
Xptrace = _tbase + 0x126;
Xread = _tbase + 0x12c;
Xsemctl = _tbase + 0x132;
Xsemget = _tbase + 0x138;
Xsemop = _tbase + 0x13e;
Xsetpgrp = _tbase + 0x144;
Xsetuid = _tbase + 0x14a;
Xsetgid = _tbase + 0x150;
Xshmctl = _tbase + 0x156;
Xshmget = _tbase + 0x15c;
Xshmat = _tbase + 0x162;
Xshmdt = _tbase + 0x168;
Xstat = _tbase + 0x174;
Xstty = _tbase + 0x17a;
Xfstat = _tbase + 0x180;
Xstime = _tbase + 0x186;
Xswrite = _tbase + 0x18c;
Xsync = _tbase + 0x192;
Xsyslocal = _tbase + 0x198;
Xtime = _tbase + 0x19e;
Xtimes = _tbase + 0x1a4;
Xulimit = _tbase + 0x1aa;
Xumask = _tbase + 0x1b0;
Xumount = _tbase + 0x1b6;
Xuname = _tbase + 0x1bc;
Xunlink = _tbase + 0x1c2;
Xustat = _tbase + 0x1c8;
Xutime = _tbase + 0x1ce;
Xwait = _tbase + 0x1d4;
Xwrite = _tbase + 0x1da;
Xabort = _tbase + 0x1e0;
Xabs = _tbase + 0x1e6;
Xatof = _tbase + 0x1ec;
Xclock = _tbase + 0x1f2;
Xcrypt = _tbase + 0x1f8;
Xsetkey = _tbase + 0x1fe;
Xencrypt = _tbase + 0x204;
Xctermid = _tbase + 0x20a;
Xctime = _tbase + 0x210;
Xlocaltime = _tbase + 0x216;
Xgmtime = _tbase + 0x21c;
Xasctime = _tbase + 0x222;
Xtzset = _tbase + 0x228;
Xcuserid = _tbase + 0x22e;
Xecvt = _tbase + 0x234;
Xfcvt = _tbase + 0x23a;
Xgcvt = _tbase + 0x240;
Xfclose = _tbase + 0x246;
Xfflush = _tbase + 0x24c;
Xfopen = _tbase + 0x252;
Xfreopen = _tbase + 0x258;
Xfdopen = _tbase + 0x25e;
Xfread = _tbase + 0x264;
Xfwrite = _tbase + 0x26a;
Xfrexp = _tbase + 0x270;
Xldexp = _tbase + 0x276;
Xmodf = _tbase + 0x27c;
Xfseek = _tbase + 0x282;
Xrewind = _tbase + 0x288;
Xftell = _tbase + 0x28e;
Xftw = _tbase + 0x294;
Xfgetc = _tbase + 0x29a;
Xgetw = _tbase + 0x2a0;
Xgetcwd = _tbase + 0x2a6;
Xgetenv = _tbase + 0x2ac;
Xgetgrent = _tbase + 0x2b2;
Xgetgrgid = _tbase + 0x2b8;
Xgetgrnam = _tbase + 0x2be;
Xsetgrent = _tbase + 0x2c4;
Xendgrent = _tbase + 0x2ca;
Xgetlogin = _tbase + 0x2d0;
Xgetopt = _tbase + 0x2d6;
Xgetpass = _tbase + 0x2dc;
Xgetpw = _tbase + 0x2e2;
Xgetpwent = _tbase + 0x2e8;
Xgetpwuid = _tbase + 0x2ee;
Xgetpwnam = _tbase + 0x2f4;
Xsetpwent = _tbase + 0x2fa;
Xendpwent = _tbase + 0x300;
Xgets = _tbase + 0x306;
Xgetchar = _tbase + 0x30c;
Xfgets = _tbase + 0x312;
Xgetutent = _tbase + 0x318;
Xgetutid = _tbase + 0x31e;
Xgetutline = _tbase + 0x324;
Xpututline = _tbase + 0x32a;
Xsetutent = _tbase + 0x330;
Xendutent = _tbase + 0x336;
Xutmpname = _tbase + 0x33c;
Xmalloc = _tbase + 0x342;
Xfree = _tbase + 0x348;
Xrealloc = _tbase + 0x34e;
Xcalloc = _tbase + 0x354;
Xcfree = _tbase + 0x35a;
Xmemccpy = _tbase + 0x360;
Xmemchr = _tbase + 0x366;
Xmemcmp = _tbase + 0x36c;
Xmemcpy = _tbase + 0x372;
Xmemset = _tbase + 0x378;
Xmktemp = _tbase + 0x37e;
Xmonitor = _tbase + 0x384;
Xperror = _tbase + 0x38a;
Xpopen = _tbase + 0x390;
Xpclose = _tbase + 0x396;
Xprintf = _tbase + 0x39c;
Xfprintf = _tbase + 0x3a2;
Xsprintf = _tbase + 0x3a8;
Xfputc = _tbase + 0x3ae;
Xputw = _tbase + 0x3b4;
Xputpwent = _tbase + 0x3ba;
Xputs = _tbase + 0x3c0;
Xputchar = _tbase + 0x3c6;
Xfputs = _tbase + 0x3cc;
Xscanf = _tbase + 0x3d2;
Xfscanf = _tbase + 0x3d8;
Xsscanf = _tbase + 0x3de;
Xsetbuf = _tbase + 0x3e4;
Xsleep = _tbase + 0x3ea;
Xssignal = _tbase + 0x3f0;
Xgsignal = _tbase + 0x3f6;
Xstrcat = _tbase + 0x3fc;
Xstrncat = _tbase + 0x402;
Xstrcmp = _tbase + 0x408;
Xstrncmp = _tbase + 0x40e;
Xstrcpy = _tbase + 0x414;
Xstrncpy = _tbase + 0x41a;
Xstrlen = _tbase + 0x420;
Xstrchr = _tbase + 0x426;
Xstrrchr = _tbase + 0x42c;
Xstrpbrk = _tbase + 0x432;
Xstrspn = _tbase + 0x438;
Xstrcspn = _tbase + 0x43e;
Xstrtok = _tbase + 0x444;
Xstrtol = _tbase + 0x44a;
Xatol = _tbase + 0x450;
Xatoi = _tbase + 0x456;
Xswab = _tbase + 0x45c;
Xsystem = _tbase + 0x462;
Xtmpfile = _tbase + 0x468;
Xtmpnam = _tbase + 0x46e;
Xtempnam = _tbase + 0x474;
Xttyname = _tbase + 0x47a;
Xisatty = _tbase + 0x480;
Xttyslot = _tbase + 0x486;
Xungetc = _tbase + 0x48c;
X_filbuf = _tbase + 0x492;
X_flsbuf = _tbase + 0x498;
Xlmul__ = _tbase + 0x49e;
Xlmul = _tbase + 0x4a4;
Xldiv__ = _tbase + 0x4aa;
Xldiv = _tbase + 0x4b0;
Xlrem__ = _tbase + 0x4b6;
Xlrem = _tbase + 0x4bc;
Xaldiv = _tbase + 0x4c2;
Xalmul = _tbase + 0x4c8;
Xalrem = _tbase + 0x4ce;
Xulmul = _tbase + 0x4d4;
Xuldiv__ = _tbase + 0x4da;
Xuldiv = _tbase + 0x4e0;
Xulrem__ = _tbase + 0x4e6;
Xulrem = _tbase + 0x4ec;
Xqsort = _tbase + 0x4f2;
Xl3tol = _tbase + 0x4f8;
Xltol3 = _tbase + 0x4fe;
Xtgetflag = _tbase + 0x504;
Xtgetent = _tbase + 0x50a;
Xtgetstr = _tbase + 0x510;
Xtgetnum = _tbase + 0x516;
Xtgoto = _tbase + 0x51c;
Xtputs = _tbase + 0x522;
Xform = _tbase + 0x528;
Xmenu = _tbase + 0x52e;
Xmessage = _tbase + 0x534;
Xsetattr = _tbase + 0x53a;
Xpb_open = _tbase + 0x540;
Xadf_gtxcd = _tbase + 0x546;
Xadf_gtwrd = _tbase + 0x54c;
Xpb_gets = _tbase + 0x552;
Xpb_check = _tbase + 0x558;
Xpb_weof = _tbase + 0x55e;
Xpb_seek = _tbase + 0x564;
Xpb_puts = _tbase + 0x56a;
Xpb_name = _tbase + 0x570;
Xpb_empty = _tbase + 0x576;
Xpb_gbuf = _tbase + 0x57c;
Xadf_gttok = _tbase + 0x582;
Xwrefresh = _tbase + 0x588;
Xtrack = _tbase + 0x58e;
Xwcreate = _tbase + 0x594;
Xinitscr = _tbase + 0x59a;
Xcbreak = _tbase + 0x5a0;
Xattroff = _tbase + 0x5a6;
Xnl = _tbase + 0x5ac;
Xattron = _tbase + 0x5b2;
Xflushinp = _tbase + 0x5b8;
Xnoecho = _tbase + 0x5be;
Xinch = _tbase + 0x5c4;
Xgetch = _tbase + 0x5ca;
Xsavetty = _tbase + 0x5d0;
Xresetty = _tbase + 0x5d6;
Xecho = _tbase + 0x5dc;
Xnocbreak = _tbase + 0x5e2;
Xnonl = _tbase + 0x5e8;
Xwdelete = _tbase + 0x5ee;
Xwprexec = _tbase + 0x5f4;
Xwpostwait = _tbase + 0x5fa;
Xwgetc = _tbase + 0x600;
Xkcodemap = _tbase + 0x606;
Xkeypad = _tbase + 0x60c;
Xwsigintr = _tbase + 0x612;
Xwind = _tbase + 0x618;
Xwsigcatch = _tbase + 0x61e;
Xwinit = _tbase + 0x624;
Xwsetbuf = _tbase + 0x62a;
Xiswind = _tbase + 0x630;
Xwexit = _tbase + 0x636;
Xendwin = _tbase + 0x63c;
Xwgetpos = _tbase + 0x642;
Xwgoto = _tbase + 0x648;
Xwinstr = _tbase + 0x64e;
Xwreadmouse = _tbase + 0x654;
Xwsetmouse = _tbase + 0x65a;
Xwgetmouse = _tbase + 0x660;
Xwnl = _tbase + 0x666;
Xwndelay = _tbase + 0x66c;
Xwprompt = _tbase + 0x672;
Xwguser = _tbase + 0x678;
Xwcmd = _tbase + 0x67e;
Xwslk = _tbase + 0x684;
Xwlabel = _tbase + 0x68a;
Xwuser = _tbase + 0x690;
Xwprintf = _tbase + 0x696;
Xprintw = _tbase + 0x69c;
Xwputc = _tbase + 0x6a2;
Xwputs = _tbase + 0x6a8;
Xwrastop = _tbase + 0x6ae;
Xwselect = _tbase + 0x6b4;
Xwgetsel = _tbase + 0x6ba;
Xwsetstat = _tbase + 0x6c0;
Xwgetstat = _tbase + 0x6c6;
Xsetty = _tbase + 0x6cc;
Xfixterm = _tbase + 0x6d2;
Xphysclr = _tbase + 0x6d8;
Xresetterm = _tbase + 0x6de;
Xsetterm = _tbase + 0x6e4;
Xgetterm = _tbase + 0x6ea;
Xbaudrate = _tbase + 0x6f0;
Xparseline = _tbase + 0x6f6;
Xslkcol = _tbase + 0x6fc;
Xsetjmp = _tbase + 0x702;
Xlongjmp = _tbase + 0x708;
Xafmulf = _tbase + 0x70e;
Xafdivf = _tbase + 0x714;
Xafaddf = _tbase + 0x71a;
X_cvfd = _tbase + 0x720;
X_cvif = _tbase + 0x726;
Xfltused = _tbase + 0x72c;
Xnlist = _tbase + 0x732;
Xfmul = _tbase + 0x738;
Xfdiv = _tbase + 0x73e;
Xfadd = _tbase + 0x744;
Xfsub = _tbase + 0x74a;
X_cvdf = _tbase + 0x750;
X_cvdi = _tbase + 0x756;
X_cvid = _tbase + 0x75c;
X_cvfi = _tbase + 0x762;
Xafadd = _tbase + 0x768;
Xafsub = _tbase + 0x76e;
Xafsubf = _tbase + 0x774;
Xafmul = _tbase + 0x77a;
Xexhelp = _tbase + 0x780;
Xtolower = _tbase + 0x786;
Xwicon = _tbase + 0x78c;
Xwicoff = _tbase + 0x792;
Xtoupper = _tbase + 0x798;
Xl64a = _tbase + 0x79e;
Xa64l = _tbase + 0x7a4;
X_bufsync = _tbase + 0x7aa;
Xsetuname = _tbase + 0x7b0;
Xauldiv = _tbase + 0x7b6;
Xeprintf = _tbase + 0x7bc;
Xdbsub__ = _tbase + 0x7c2;
Xdbadd__ = _tbase + 0x7c8;
Xdbdiv__ = _tbase + 0x7ce;
Xdbmul__ = _tbase + 0x7d4;
Xltodb__ = _tbase + 0x7da;
Xdbtol__ = _tbase + 0x7e0;
Xdbtofl__ = _tbase + 0x7e6;
Xfltodb__ = _tbase + 0x7ec;
Xltofl__ = _tbase + 0x7f2;
Xfltol__ = _tbase + 0x7f8;
Xultodb__ = _tbase + 0x7fe;
Xultofl__ = _tbase + 0x804;
Xaulmul = _tbase + 0x80a;
Xafdiv = _tbase + 0x810;
Xdbtst__ = _tbase + 0x816;
Xfltst__ = _tbase + 0x81c;
Xplock = _tbase + 0x822;
Xdial = _tbase + 0x828;
Xcallout = _tbase + 0x82e;
Xundial = _tbase + 0x834;
Xdrand48 = _tbase + 0x83a;
Xerand48 = _tbase + 0x840;
Xlrand48 = _tbase + 0x846;
Xmrand48 = _tbase + 0x84c;
Xsrand48 = _tbase + 0x852;
Xjrand48 = _tbase + 0x858;
Xseed48 = _tbase + 0x85e;
Xlcong48 = _tbase + 0x864;
Xrand = _tbase + 0x86a;
Xsrand = _tbase + 0x870;
Xftok = _tbase + 0x876;
Xputenv = _tbase + 0x87c;
Xtargets = _tbase + 0x882;
Xn_targets = _tbase + 0x888;
Xwtargeton = _tbase + 0x88e;
Xw_target = _tbase + 0x894;
X_fpachk = _tbase + 0x89a;
X_assert = _tbase + 0x8a0;
Xbsearch = _tbase + 0x8a6;
Xhcreate = _tbase + 0x8ac;
Xhsearch = _tbase + 0x8b2;
Xhdestroy = _tbase + 0x8b8;
Xtsearch = _tbase + 0x8be;
Xtdelete = _tbase + 0x8c4;
Xtwalk = _tbase + 0x8ca;
Xnrand48 = _tbase + 0x8d0;
END_OF_new.ifile
if test 10409 -ne `wc -c <new.ifile`; then
    echo shar: \"new.ifile\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f newshlib.ifile -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"newshlib.ifile\"
else
echo shar: Extracting \"newshlib.ifile\" \(12927 characters\)
sed "s/^X//" >newshlib.ifile <<'END_OF_newshlib.ifile'
XMEMORY {
X	user_mem : origin = 0x80000 , length = 0x37ff000
X}
X
XSECTIONS {
X	.text 0x80000 BLOCK(1024) : {}
X	GROUP ALIGN(65536) BLOCK(1024) : {
X		.data : {}
X		.bss  : {}
X		.lib  :	{}
X	}
X}
X
Xtimezone = 0x00300000;
Xtzname = 0x00300004;
Xpatblack = 0x00300014;
Xpatwhite = 0x00300034;
Xpatgray = 0x00300054;
Xpatltgray = 0x00300074;
X_iob = 0x0030009c;
X_bufendtab = 0x003001b8;
X_ctype = 0x0030020c;
Xsys_errlist = 0x0030030e;
X_iob2 = 0x00300bc0;
X_buf2endtab = 0x00300f0c;
X_dbase = 0x00301000;
Xerrno = _dbase + 0x0;
Xenviron = _dbase + 0x4;
XPC = _dbase + 0x8;
XBC = _dbase + 0xc;
XUP = _dbase + 0x10;
Xospeed = _dbase + 0x14;
XLINES = _dbase + 0x18;
XCOLS = _dbase + 0x1c;
Xwncur = _dbase + 0x20;
Xoptind = _dbase + 0x22;
Xoptarg = _dbase + 0x26;
Xopterr = _dbase + 0x2a;
Xoptopt = _dbase + 0x2e;
Xsys_nerr = _dbase + 0x32;
XFPA_flag = _dbase + 0x36;
XFPA_s = _dbase + 0x3a;
XFPA_d = _dbase + 0x3e;
X_sibuf = 0x00306000;
X_sobuf = 0x00306408;
X_tbase = 0x00310000;
Xshlbat = _tbase + 0x0;
Xshlbatid = _tbase + 0x6;
Xaccess = _tbase + 0xc;
Xalarm = _tbase + 0x12;
Xbrk = _tbase + 0x18;
Xibrk = _tbase + 0x1e;
Xsbrk = _tbase + 0x24;
Xchdir = _tbase + 0x2a;
Xchmod = _tbase + 0x30;
Xchown = _tbase + 0x36;
Xchroot = _tbase + 0x3c;
Xclose = _tbase + 0x42;
Xcreat = _tbase + 0x48;
Xdup = _tbase + 0x4e;
Xexecl = _tbase + 0x54;
Xexecv = _tbase + 0x5a;
Xexecle = _tbase + 0x60;
Xexecve = _tbase + 0x66;
Xexeclp = _tbase + 0x6c;
Xexecvp = _tbase + 0x72;
Xexit = _tbase + 0x78;
X_exit = _tbase + 0x7e;
Xfcntl = _tbase + 0x84;
Xfork = _tbase + 0x8a;
Xgetpid = _tbase + 0x90;
Xgetpgrp = _tbase + 0x96;
Xgetppid = _tbase + 0x9c;
Xgetuid = _tbase + 0xa2;
Xgeteuid = _tbase + 0xa8;
Xgetgid = _tbase + 0xae;
Xgetegid = _tbase + 0xb4;
Xgtty = _tbase + 0xba;
Xioctl = _tbase + 0xc0;
Xkill = _tbase + 0xc6;
Xlink = _tbase + 0xcc;
Xlocking = _tbase + 0xd2;
Xlseek = _tbase + 0xd8;
Xmknod = _tbase + 0xde;
Xmount = _tbase + 0xe4;
Xmsgctl = _tbase + 0xea;
Xmsgget = _tbase + 0xf0;
Xmsgsnd = _tbase + 0xf6;
Xmsgrcv = _tbase + 0xfc;
Xnice = _tbase + 0x102;
Xopen = _tbase + 0x108;
Xopeni = _tbase + 0x10e;
Xpause = _tbase + 0x114;
Xpipe = _tbase + 0x11a;
Xprofil = _tbase + 0x120;
Xptrace = _tbase + 0x126;
Xread = _tbase + 0x12c;
Xsemctl = _tbase + 0x132;
Xsemget = _tbase + 0x138;
Xsemop = _tbase + 0x13e;
Xsetpgrp = _tbase + 0x144;
Xsetuid = _tbase + 0x14a;
Xsetgid = _tbase + 0x150;
Xshmctl = _tbase + 0x156;
Xshmget = _tbase + 0x15c;
Xshmat = _tbase + 0x162;
Xshmdt = _tbase + 0x168;
X/* signal = _tbase + 0x16e;  */
Xstat = _tbase + 0x174;
Xstty = _tbase + 0x17a;
Xfstat = _tbase + 0x180;
Xstime = _tbase + 0x186;
Xswrite = _tbase + 0x18c;
Xsync = _tbase + 0x192;
Xsyslocal = _tbase + 0x198;
Xtime = _tbase + 0x19e;
Xtimes = _tbase + 0x1a4;
Xulimit = _tbase + 0x1aa;
Xumask = _tbase + 0x1b0;
Xumount = _tbase + 0x1b6;
Xuname = _tbase + 0x1bc;
Xunlink = _tbase + 0x1c2;
Xustat = _tbase + 0x1c8;
Xutime = _tbase + 0x1ce;
Xwait = _tbase + 0x1d4;
Xwrite = _tbase + 0x1da;
Xabort = _tbase + 0x1e0;
Xabs = _tbase + 0x1e6;
Xatof = _tbase + 0x1ec;
Xclock = _tbase + 0x1f2;
Xcrypt = _tbase + 0x1f8;
Xsetkey = _tbase + 0x1fe;
Xencrypt = _tbase + 0x204;
Xctermid = _tbase + 0x20a;
Xctime = _tbase + 0x210;
Xlocaltime = _tbase + 0x216;
Xgmtime = _tbase + 0x21c;
Xasctime = _tbase + 0x222;
Xtzset = _tbase + 0x228;
Xcuserid = _tbase + 0x22e;
Xecvt = _tbase + 0x234;
Xfcvt = _tbase + 0x23a;
Xgcvt = _tbase + 0x240;
Xfclose = _tbase + 0x246;
Xfflush = _tbase + 0x24c;
Xfopen = _tbase + 0x252;
Xfreopen = _tbase + 0x258;
Xfdopen = _tbase + 0x25e;
Xfread = _tbase + 0x264;
Xfwrite = _tbase + 0x26a;
Xfrexp = _tbase + 0x270;
Xldexp = _tbase + 0x276;
Xmodf = _tbase + 0x27c;
Xfseek = _tbase + 0x282;
Xrewind = _tbase + 0x288;
Xftell = _tbase + 0x28e;
Xftw = _tbase + 0x294;
Xfgetc = _tbase + 0x29a;
Xgetw = _tbase + 0x2a0;
Xgetcwd = _tbase + 0x2a6;
Xgetenv = _tbase + 0x2ac;
Xgetgrent = _tbase + 0x2b2;
Xgetgrgid = _tbase + 0x2b8;
Xgetgrnam = _tbase + 0x2be;
Xsetgrent = _tbase + 0x2c4;
Xendgrent = _tbase + 0x2ca;
Xgetlogin = _tbase + 0x2d0;
Xgetopt = _tbase + 0x2d6;
Xgetpass = _tbase + 0x2dc;
Xgetpw = _tbase + 0x2e2;
Xgetpwent = _tbase + 0x2e8;
Xgetpwuid = _tbase + 0x2ee;
Xgetpwnam = _tbase + 0x2f4;
Xsetpwent = _tbase + 0x2fa;
Xendpwent = _tbase + 0x300;
Xgets = _tbase + 0x306;
Xgetchar = _tbase + 0x30c;
Xfgets = _tbase + 0x312;
Xgetutent = _tbase + 0x318;
Xgetutid = _tbase + 0x31e;
Xgetutline = _tbase + 0x324;
Xpututline = _tbase + 0x32a;
Xsetutent = _tbase + 0x330;
Xendutent = _tbase + 0x336;
Xutmpname = _tbase + 0x33c;
Xmalloc = _tbase + 0x342;
Xfree = _tbase + 0x348;
Xrealloc = _tbase + 0x34e;
Xcalloc = _tbase + 0x354;
Xcfree = _tbase + 0x35a;
Xmemccpy = _tbase + 0x360;
Xmemchr = _tbase + 0x366;
Xmemcmp = _tbase + 0x36c;
Xmemcpy = _tbase + 0x372;
Xmemset = _tbase + 0x378;
Xmktemp = _tbase + 0x37e;
Xmonitor = _tbase + 0x384;
Xperror = _tbase + 0x38a;
Xpopen = _tbase + 0x390;
Xpclose = _tbase + 0x396;
Xprintf = _tbase + 0x39c;
Xfprintf = _tbase + 0x3a2;
Xsprintf = _tbase + 0x3a8;
Xfputc = _tbase + 0x3ae;
Xputw = _tbase + 0x3b4;
Xputpwent = _tbase + 0x3ba;
Xputs = _tbase + 0x3c0;
Xputchar = _tbase + 0x3c6;
Xfputs = _tbase + 0x3cc;
Xscanf = _tbase + 0x3d2;
Xfscanf = _tbase + 0x3d8;
Xsscanf = _tbase + 0x3de;
Xsetbuf = _tbase + 0x3e4;
Xsleep = _tbase + 0x3ea;
Xssignal = _tbase + 0x3f0;
Xgsignal = _tbase + 0x3f6;
Xstrcat = _tbase + 0x3fc;
Xstrncat = _tbase + 0x402;
Xstrcmp = _tbase + 0x408;
Xstrncmp = _tbase + 0x40e;
Xstrcpy = _tbase + 0x414;
Xstrncpy = _tbase + 0x41a;
Xstrlen = _tbase + 0x420;
Xstrchr = _tbase + 0x426;
Xstrrchr = _tbase + 0x42c;
Xstrpbrk = _tbase + 0x432;
Xstrspn = _tbase + 0x438;
Xstrcspn = _tbase + 0x43e;
Xstrtok = _tbase + 0x444;
Xstrtol = _tbase + 0x44a;
Xatol = _tbase + 0x450;
Xatoi = _tbase + 0x456;
Xswab = _tbase + 0x45c;
Xsystem = _tbase + 0x462;
Xtmpfile = _tbase + 0x468;
Xtmpnam = _tbase + 0x46e;
Xtempnam = _tbase + 0x474;
Xttyname = _tbase + 0x47a;
Xisatty = _tbase + 0x480;
Xttyslot = _tbase + 0x486;
Xungetc = _tbase + 0x48c;
X_filbuf = _tbase + 0x492;
X_flsbuf = _tbase + 0x498;
Xlmul__ = _tbase + 0x49e;
Xlmul = _tbase + 0x4a4;
Xldiv__ = _tbase + 0x4aa;
Xldiv = _tbase + 0x4b0;
Xlrem__ = _tbase + 0x4b6;
Xlrem = _tbase + 0x4bc;
Xaldiv = _tbase + 0x4c2;
Xalmul = _tbase + 0x4c8;
Xalrem = _tbase + 0x4ce;
Xulmul = _tbase + 0x4d4;
Xuldiv__ = _tbase + 0x4da;
Xuldiv = _tbase + 0x4e0;
Xulrem__ = _tbase + 0x4e6;
Xulrem = _tbase + 0x4ec;
Xqsort = _tbase + 0x4f2;
Xl3tol = _tbase + 0x4f8;
Xltol3 = _tbase + 0x4fe;
Xtgetflag = _tbase + 0x504;
Xtgetent = _tbase + 0x50a;
Xtgetstr = _tbase + 0x510;
Xtgetnum = _tbase + 0x516;
Xtgoto = _tbase + 0x51c;
Xtputs = _tbase + 0x522;
Xform = _tbase + 0x528;
Xmenu = _tbase + 0x52e;
Xmessage = _tbase + 0x534;
Xsetattr = _tbase + 0x53a;
Xpb_open = _tbase + 0x540;
Xadf_gtxcd = _tbase + 0x546;
Xadf_gtwrd = _tbase + 0x54c;
Xpb_gets = _tbase + 0x552;
Xpb_check = _tbase + 0x558;
Xpb_weof = _tbase + 0x55e;
Xpb_seek = _tbase + 0x564;
Xpb_puts = _tbase + 0x56a;
Xpb_name = _tbase + 0x570;
Xpb_empty = _tbase + 0x576;
Xpb_gbuf = _tbase + 0x57c;
Xadf_gttok = _tbase + 0x582;
Xwrefresh = _tbase + 0x588;
Xtrack = _tbase + 0x58e;
Xwcreate = _tbase + 0x594;
Xinitscr = _tbase + 0x59a;
Xcbreak = _tbase + 0x5a0;
Xattroff = _tbase + 0x5a6;
Xnl = _tbase + 0x5ac;
Xattron = _tbase + 0x5b2;
Xflushinp = _tbase + 0x5b8;
Xnoecho = _tbase + 0x5be;
Xinch = _tbase + 0x5c4;
Xgetch = _tbase + 0x5ca;
Xsavetty = _tbase + 0x5d0;
Xresetty = _tbase + 0x5d6;
Xecho = _tbase + 0x5dc;
Xnocbreak = _tbase + 0x5e2;
Xnonl = _tbase + 0x5e8;
Xwdelete = _tbase + 0x5ee;
Xwprexec = _tbase + 0x5f4;
Xwpostwait = _tbase + 0x5fa;
Xwgetc = _tbase + 0x600;
Xkcodemap = _tbase + 0x606;
Xkeypad = _tbase + 0x60c;
Xwsigintr = _tbase + 0x612;
Xwind = _tbase + 0x618;
Xwsigcatch = _tbase + 0x61e;
Xwinit = _tbase + 0x624;
Xwsetbuf = _tbase + 0x62a;
Xiswind = _tbase + 0x630;
Xwexit = _tbase + 0x636;
Xendwin = _tbase + 0x63c;
Xwgetpos = _tbase + 0x642;
Xwgoto = _tbase + 0x648;
Xwinstr = _tbase + 0x64e;
Xwreadmouse = _tbase + 0x654;
Xwsetmouse = _tbase + 0x65a;
Xwgetmouse = _tbase + 0x660;
Xwnl = _tbase + 0x666;
Xwndelay = _tbase + 0x66c;
Xwprompt = _tbase + 0x672;
Xwguser = _tbase + 0x678;
Xwcmd = _tbase + 0x67e;
Xwslk = _tbase + 0x684;
Xwlabel = _tbase + 0x68a;
Xwuser = _tbase + 0x690;
Xwprintf = _tbase + 0x696;
Xprintw = _tbase + 0x69c;
Xwputc = _tbase + 0x6a2;
Xwputs = _tbase + 0x6a8;
Xwrastop = _tbase + 0x6ae;
Xwselect = _tbase + 0x6b4;
Xwgetsel = _tbase + 0x6ba;
Xwsetstat = _tbase + 0x6c0;
Xwgetstat = _tbase + 0x6c6;
Xsetty = _tbase + 0x6cc;
Xfixterm = _tbase + 0x6d2;
Xphysclr = _tbase + 0x6d8;
Xresetterm = _tbase + 0x6de;
Xsetterm = _tbase + 0x6e4;
Xgetterm = _tbase + 0x6ea;
Xbaudrate = _tbase + 0x6f0;
Xparseline = _tbase + 0x6f6;
Xslkcol = _tbase + 0x6fc;
Xsetjmp = _tbase + 0x702;
Xlongjmp = _tbase + 0x708;
Xafmulf = _tbase + 0x70e;
Xafdivf = _tbase + 0x714;
Xafaddf = _tbase + 0x71a;
X_cvfd = _tbase + 0x720;
X_cvif = _tbase + 0x726;
Xfltused = _tbase + 0x72c;
Xnlist = _tbase + 0x732;
Xfmul = _tbase + 0x738;
Xfdiv = _tbase + 0x73e;
Xfadd = _tbase + 0x744;
Xfsub = _tbase + 0x74a;
X_cvdf = _tbase + 0x750;
X_cvdi = _tbase + 0x756;
X_cvid = _tbase + 0x75c;
X_cvfi = _tbase + 0x762;
Xafadd = _tbase + 0x768;
Xafsub = _tbase + 0x76e;
Xafsubf = _tbase + 0x774;
Xafmul = _tbase + 0x77a;
Xexhelp = _tbase + 0x780;
Xtolower = _tbase + 0x786;
Xwicon = _tbase + 0x78c;
Xwicoff = _tbase + 0x792;
Xtoupper = _tbase + 0x798;
Xl64a = _tbase + 0x79e;
Xa64l = _tbase + 0x7a4;
X_bufsync = _tbase + 0x7aa;
Xsetuname = _tbase + 0x7b0;
Xauldiv = _tbase + 0x7b6;
Xeprintf = _tbase + 0x7bc;
Xdbsub__ = _tbase + 0x7c2;
Xdbadd__ = _tbase + 0x7c8;
Xdbdiv__ = _tbase + 0x7ce;
Xdbmul__ = _tbase + 0x7d4;
Xltodb__ = _tbase + 0x7da;
Xdbtol__ = _tbase + 0x7e0;
Xdbtofl__ = _tbase + 0x7e6;
Xfltodb__ = _tbase + 0x7ec;
Xltofl__ = _tbase + 0x7f2;
Xfltol__ = _tbase + 0x7f8;
Xultodb__ = _tbase + 0x7fe;
Xultofl__ = _tbase + 0x804;
Xaulmul = _tbase + 0x80a;
Xafdiv = _tbase + 0x810;
Xdbtst__ = _tbase + 0x816;
Xfltst__ = _tbase + 0x81c;
Xplock = _tbase + 0x822;
Xdial = _tbase + 0x828;
Xcallout = _tbase + 0x82e;
Xundial = _tbase + 0x834;
Xdrand48 = _tbase + 0x83a;
Xerand48 = _tbase + 0x840;
Xlrand48 = _tbase + 0x846;
Xmrand48 = _tbase + 0x84c;
Xsrand48 = _tbase + 0x852;
Xjrand48 = _tbase + 0x858;
Xseed48 = _tbase + 0x85e;
Xlcong48 = _tbase + 0x864;
Xrand = _tbase + 0x86a;
Xsrand = _tbase + 0x870;
Xftok = _tbase + 0x876;
Xputenv = _tbase + 0x87c;
Xtargets = _tbase + 0x882;
Xn_targets = _tbase + 0x888;
Xwtargeton = _tbase + 0x88e;
Xw_target = _tbase + 0x894;
X_fpachk = _tbase + 0x89a;
X_assert = _tbase + 0x8a0;
Xbsearch = _tbase + 0x8a6;
Xhcreate = _tbase + 0x8ac;
Xhsearch = _tbase + 0x8b2;
Xhdestroy = _tbase + 0x8b8;
Xtsearch = _tbase + 0x8be;
Xtdelete = _tbase + 0x8c4;
Xtwalk = _tbase + 0x8ca;
Xnrand48 = _tbase + 0x8d0;
X
X_Etbase = 0x00330000;
X__eprintf = _Etbase + 0x00;
X__builtin_new = _Etbase + 0x06;
X__builtin_vec_new = _Etbase + 0x0c;
X__set_new_handler = _Etbase + 0x12;
Xset_new_handler = _Etbase + 0x18;
X__builtin_delete = _Etbase + 0x1e;
X__builtin_vec_delete = _Etbase + 0x24;
X__umulsi3 = _Etbase + 0x2a;
X__mulsi3 = _Etbase + 0x30;
X__udivsi3 = _Etbase + 0x36;
X__divsi3 = _Etbase + 0x3c;
X__umodsi3 = _Etbase + 0x42;
X__modsi3 = _Etbase + 0x48;
X__lshrsi3 = _Etbase + 0x4e;
X__lshlsi3 = _Etbase + 0x54;
X__ashrsi3 = _Etbase + 0x5a;
X__ashlsi3 = _Etbase + 0x60;
X__divdf3 = _Etbase + 0x66;
X__muldf3 = _Etbase + 0x6c;
X__negdf2 = _Etbase + 0x72;
X__adddf3 = _Etbase + 0x78;
X__subdf3 = _Etbase + 0x7e;
X__cmpdf2 = _Etbase + 0x84;
X__fixunsdfsi = _Etbase + 0x8a;
X__fixdfsi = _Etbase + 0x90;
X__floatsidf = _Etbase + 0x96;
X__truncdfsf2 = _Etbase + 0x9c;
X__extendsfdf2 = _Etbase + 0xa2;
X__addsf3 = _Etbase + 0xa8;
X__negsf2 = _Etbase + 0xae;
X__subsf3 = _Etbase + 0xb4;
X__cmpsf2 = _Etbase + 0xba;
X__mulsf3 = _Etbase + 0xc0;
X__divsf3 = _Etbase + 0xc6;
X__builtin_saveregs = _Etbase + 0xcc;
X__adddi3 = _Etbase + 0xd2;
X__subdi3 = _Etbase + 0xd8;
X__muldi3 = _Etbase + 0xde;
X__divdi3 = _Etbase + 0xe4;
X__moddi3 = _Etbase + 0xea;
X__udivdi3 = _Etbase + 0xf0;
X__umoddi3 = _Etbase + 0xf6;
X__negdi2 = _Etbase + 0xfc;
X__anddi3 = _Etbase + 0x102;
X__iordi3 = _Etbase + 0x108;
X__xordi3 = _Etbase + 0x10e;
X__lshrdi3 = _Etbase + 0x114;
X__lshldi3 = _Etbase + 0x11a;
X__ashldi3 = _Etbase + 0x120;
X__ashrdi3 = _Etbase + 0x126;
X__one_cmpldi2 = _Etbase + 0x12c;
X__bdiv = _Etbase + 0x132;
X__cmpdi2 = _Etbase + 0x138;
X__ucmpdi2 = _Etbase + 0x13e;
X__fixunsdfdi = _Etbase + 0x144;
X__fixdfdi = _Etbase + 0x14a;
X__floatdidf = _Etbase + 0x150;
X__new_handler = _Etbase + 0x156;
Xacct = _Etbase + 0x15c;
Xaulrem = _Etbase + 0x162;
Xclearerr = _Etbase + 0x168;
X_doprnt = _Etbase + 0x16e;
X_doscan = _Etbase + 0x174;
X_dtop = _Etbase + 0x17a;
X_cleanup = _Etbase + 0x180;
X_findiop = _Etbase + 0x186;
Xlfind = _Etbase + 0x18c;
Xlockf = _Etbase + 0x192;
Xlsearch = _Etbase + 0x198;
X_ltostr = _Etbase + 0x19e;
Xmcount = _Etbase + 0x1a4;
X_ptod = _Etbase + 0x1aa;
Xsetvbuf = _Etbase + 0x1b0;
X_sighnd = _Etbase + 0x1b6;
Xstrtod = _Etbase + 0x1bc;
Xtell = _Etbase + 0x1c2;
Xtfind = _Etbase + 0x1c8;
Xvfprintf = _Etbase + 0x1ce;
Xvprintf = _Etbase + 0x1d4;
Xvsprintf = _Etbase + 0x1da;
Xsignal = _Etbase + 0x1e0; /* we need this to resolve some static symbols */
Xopendir = _Etbase + 0x1e6;
Xreaddir = _Etbase + 0x1ec;
Xtelldir = _Etbase + 0x1f2;
Xseekdir = _Etbase + 0x1f8;
Xrewinddir = _Etbase + 0x1fe;
Xclosedir = _Etbase + 0x204;
Xgetdents = _Etbase + 0x20a;
Xdaylight = _Etbase + 0x210;
END_OF_newshlib.ifile
if test 12927 -ne `wc -c <newshlib.ifile`; then
    echo shar: \"newshlib.ifile\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f shlib.4 -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"shlib.4\"
else
echo shar: Extracting \"shlib.4\" \(3126 characters\)
sed "s/^X//" >shlib.4 <<'END_OF_shlib.4'
X.TH shlib 4 UNIX-PC "CTIX 3.51"
X.SH NAME
Xshlib - the system shared libraries
X.SH SYNTAX
Xld /lib/crt0s.o /lib/shlib.ifile 
X.SH DESCRIPTION
XThe unixpc employees a single shared library to reduce the size of
Xexecutable programs. As distributed, the shared library contains 
Xmuch (but not all) of 
X.I libc.a ,
X.I libtermlib.a 
Xand 
X.I libcurses.a .
XWhile useful in reducing the size of executables, using the shared library
Xcan be frustrating to programmers because (a) it is not a complete library
Xand (b) trying to link with the shared library 
X.I and
Xthe regular libc.a is not a trivial task, in some instances.
X
XSpecifically, the shared library (/lib/shlib) is a compiled object that 
Xis mapped into a constant piece of
X.I "virtual memory" .
XThat is, the code in /lib/shlib appears at the same virtual address in every
Xprogram that accesses it. Since this address space (0x300000-0x380000) is 
Xoutside of the space normally used by executing programs, it goes unnoticed
Xif it is not referenced. Furthermore, this address range (like any other) is
Xdemand paged, so the library code is swapped out if it is not used.
X
X.SH CONSTRUCTION
XThe shared library is a normal 3 part (TEXT, DATA and BSS) object file.
XThe DATA and BSS sections are continuous and begin at virtual address 0x300000.
XThe TEXT area begins at virtual address 0x310000.
XThe first object in the text area is a jump table, which indexes the other 
Xfunctions in the library. The presence of the jump table enables function
Xaddresses to remain constant, even if the library is recompiled or reordered.
X
X.SH MODIFICATION
XThe shared library is loaded on boot from the file /lib/shlib. This object
Xcan be any non-relocatable object (created via /bin/ld). 
XFor backward compatibility, is is recommend that any modifications to the
Xlibrary be in the form of additions to the existing library (This is so
Xthat the existing software will continue to work).
X
XThe rules of thumb for modifying the library are:
X.RS
X.HP
X(a) maintain 3 sections (TEXT, DATA and BSS) as there is no specification
Xregarding non-standard sections.
X.HP
X(b) Always 
X.I append
Xdata to sections. For compatibility, the new sections must overlay the old
Xones perfectly, with new data overlaying previously unallocated space.
X.RE
X
XAn example shared library is shown below:
X.TS
Xtab(@);
Xcb cb
Xc|l|l|
Xc|l|l|
Xc|l|l|
Xc|l|l|
Xc|l|l|
Xc|l|l|
Xc|l|l|
Xc|l|l|
Xc|l|l|
Xc l
Xc|l|l|.
XAddress Range@Description@Section
X@_@_
X@New Text area@
X0x330000@New Jump Table@
X@_@
X@*avail*@Text
X@_@
X@Old Text@
X0x310000@Old Jump Table@
X@_@_
X@
X@_@_
X@New BSS@BSS
X@_@_
X@New Data@
X@_@DATA
X0x300000@Old DATA AND BSS@
X@_@_
X.TE
X
XNote that the old sections are aligned to the same addresses that they 
Xwere before, and that new sections have been fitted around them. This example
Xuses a second jump table rather then appending to the first one because it 
Xassumes that source for the first library is unavailable. Having the second
Xjump table (aligned at 0x330000 for neatness) means that further modification
Xof the table is a trivial matter of adding indexes to the jump table and
Xrecompiling.
X
X.SH FILES
X.nf
X/lib/shlib
X/lib/shlib.ifile
X.fi
END_OF_shlib.4
if test 3126 -ne `wc -c <shlib.4`; then
    echo shar: \"shlib.4\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f stubs.s -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"stubs.s\"
else
echo shar: Extracting \"stubs.s\" \(2622 characters\)
sed "s/^X//" >stubs.s <<'END_OF_stubs.s'
X	text
X	even
XLIB__EPRINTF:
X	jmp __eprintf
XLIB__BUILTIN_NEW:
X	jmp __builtin_new
XLIB__BUILTIN_VEC_NEW:
X	jmp __builtin_vec_new
XLIB__SET_NEW_HANDLER:
X	jmp __set_new_handler
XLIBSET_NEW_HANDLER:
X	jmp set_new_handler
XLIB__BUILTIN_DELETE:
X	jmp __builtin_delete
XLIB__BUILTIN_VEC_DELETE:
X	jmp __builtin_vec_delete
XLIB__UMULSI3:
X	jmp __umulsi3
XLIB__MULSI3:
X	jmp __mulsi3
XLIB__UDIVSI3:
X	jmp __udivsi3
XLIB__DIVSI3:
X	jmp __divsi3
XLIB__UMODSI3:
X	jmp __umodsi3
XLIB__MODSI3:
X	jmp __modsi3
XLIB__LSHRSI3:
X	jmp __lshrsi3
XLIB__LSHLSI3:
X	jmp __lshlsi3
XLIB__ASHRSI3:
X	jmp __ashrsi3
XLIB__ASHLSI3:
X	jmp __ashlsi3
XLIB__DIVDF3:
X	jmp __divdf3
XLIB__MULDF3:
X	jmp __muldf3
XLIB__NEGDF2:
X	jmp __negdf2
XLIB__ADDDF3:
X	jmp __adddf3
XLIB__SUBDF3:
X	jmp __subdf3
XLIB__CMPDF2:
X	jmp __cmpdf2
XLIB__FIXUNSDFSI:
X	jmp __fixunsdfsi
XLIB__FIXDFSI:
X	jmp __fixdfsi
XLIB__FLOATSIDF:
X	jmp __floatsidf
XLIB__TRUNCDFSF2:
X	jmp __truncdfsf2
XLIB__EXTENDSFDF2:
X	jmp __extendsfdf2
XLIB__ADDSF3:
X	jmp __addsf3
XLIB__NEGSF2:
X	jmp __negsf2
XLIB__SUBSF3:
X	jmp __subsf3
XLIB__CMPSF2:
X	jmp __cmpsf2
XLIB__MULSF3:
X	jmp __mulsf3
XLIB__DIVSF3:
X	jmp __divsf3
XLIB__BUILTIN_SAVEREGS:
X	jmp __builtin_saveregs
XLIB__ADDDI3:
X	jmp __adddi3
XLIB__SUBDI3:
X	jmp __subdi3
XLIB__MULDI3:
X	jmp __muldi3
XLIB__DIVDI3:
X	jmp __divdi3
XLIB__MODDI3:
X	jmp __moddi3
XLIB__UDIVDI3:
X	jmp __udivdi3
XLIB__UMODDI3:
X	jmp __umoddi3
XLIB__NEGDI2:
X	jmp __negdi2
XLIB__ANDDI3:
X	jmp __anddi3
XLIB__IORDI3:
X	jmp __iordi3
XLIB__XORDI3:
X	jmp __xordi3
XLIB__LSHRDI3:
X	jmp __lshrdi3
XLIB__LSHLDI3:
X	jmp __lshldi3
XLIB__ASHLDI3:
X	jmp __ashldi3
XLIB__ASHRDI3:
X	jmp __ashrdi3
XLIB__ONE_CMPLDI2:
X	jmp __one_cmpldi2
XLIB__BDIV:
X	jmp __bdiv
XLIB__CMPDI2:
X	jmp __cmpdi2
XLIB__UCMPDI2:
X	jmp __ucmpdi2
XLIB__FIXUNSDFDI:
X	jmp __fixunsdfdi
XLIB__FIXDFDI:
X	jmp __fixdfdi
XLIB__FLOATDIDF:
X	jmp __floatdidf
XLIB__NEW_HANDLER:
X	jmp __new_handler
XLIB_ACCT:
X	jmp	acct
XLIB_AULREM:
X	jmp	aulrem
XLIB_CLEARERR:
X	jmp	clearerr
XLIB__DOPRNT:
X	jmp	_doprnt
XLIB__DOSCAN:
X	jmp	_doscan
XLIB__DTOP:
X	jmp	_dtop
XLIB__CLEANUP:
X	jmp	_cleanup
XLIB__FINDIOP:
X	jmp	_findiop
XLIB_LFIND:
X	jmp	lfind
XLIB_LOCKF:
X	jmp	lockf
XLIB_LSEARCH:
X	jmp	lsearch
XLIB__LTOSTR:
X	jmp	_ltostr
XLIB_MCOUNT:
X	jmp	mcount
XLIB__PTOD:
X	jmp	_ptod
XLIB_SETVBUF:
X	jmp	setvbuf
XLIB__SIGHND:
X	jmp	_sighnd
XLIB_STRTOD:
X	jmp	strtod
XLIB_TELL:
X	jmp	tell
XLIB_TFIND:
X	jmp	tfind
XLIB_VFPRINTF:
X	jmp	vfprintf
XLIB_VPRINTF:
X	jmp	vprintf
XLIB_VSPRINTF:
X	jmp	vsprintf
XLIB_SIGNAL:
X	jmp	signal
XLIB_OPENDIR:
X	jmp	opendir
XLIB_READDIR:
X	jmp	readdir
XLIB_TELLDIR:
X	jmp	telldir
XLIB_SEEKDIR:
X	jmp	seekdir
XLIB_REWINDDIR:
X	jmp	rewinddir
XLIB_CLOSEDIR:
X	jmp	closedir
XLIB_GETDENTS:
X	jmp	getdents
X	global daylight
Xdaylight:
X	long	1
X	short	0	# pad daylight to 6 bytes
END_OF_stubs.s
if test 2622 -ne `wc -c <stubs.s`; then
    echo shar: \"stubs.s\" unpacked with wrong size!
fi
# end of overwriting check
fi
echo shar: End of shell archive.
exit 0

