Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!sdsu!crash!pnet01!cwr From: cwr@pnet01.cts.com (Will Rose) Newsgroups: comp.os.minix Subject: 1.5.3 library order Message-ID: <1659@crash.cts.com> Date: 25 Feb 90 08:56:01 GMT Sender: root@crash.cts.com Organization: People-Net [pnet01], El Cajon CA Lines: 288 I've managed to put together a 1.5.3 library order that will compile all the commands, including those in the sub-directories, but it was not as straightforward as I hoped. Certainly, on a XT with 640K the sequence ar q libc.a `lorder *s | tsort` runs out of memory, with all three programs producing "arg list too long" messages. This is with ar set to its maximum stack, and lorder and tsort set to 32K and 16K stacks respectively. Robert Hall (rhall@nosc.mil) sent me a message as to how a library order might be built, and I used his algorithm: First, find all the primitive functions, those that call no others. Rhall suggested the script: sed -e 's/ .*//' lorder.out | uniq -u primitives. If lorder.out is the file got from running lorder on an unordered archive, the file "primitives" will contain the names of all the primitive functions. The next step is to edit "lorder.out" and remove all lines that reference primitive functions, which can be done either by hand, or by using a sed or bawk script. Then, run tsort on the edited lorder.out. The final archive is built in the order given by tsort.out, and the primitives then added to the end. There is one 'gotcha'. For some reason, lorder insists that memmove is dependant on curses. I could not, despite an awful lot of looking, find out why it thought this; I therefore added memmove to the primitives file, and deleted it from the lorder.out file, and asld stopped complaining. However, this incident did not increase my confidence in lorder. Since lorder worked for the (smaller) 1.3 library, and for the floating point library, and it has all the stack space it needs, I suspect the problem is that some internal table is becoming over-full. But I don't have the skill to find out more. For those that don't want to go through this fan-dance, I've appended my library order below. It includes the new, fast, string library. If you use this, you may need to explicitly delete the orginal memcpy, since the new version is inculuded in memmove. The only problems compiling the libraries were in Other/doprintf and printk each of which produced eight "incompatible pointer" warnings, and Ansi/sincos which produced a "dummy fp constant" warning. In the commands, fsck, ps and zmodem all needed the compiler passes set to maximum stack. Compress gave a "long to pointer" warning, and kermit gave five or so miscellaneous warnings. There is *no way* to link kermit on an PC or XT; could someone who can link under MSDOS, or on a 386/sun/vax/cray *please* post a 1.5.3 binary suitable for ordinary mortals? Minix 1.5.3 liborder _exit.s abs.s access.s adi.s amoeba.s assert.s atol.s bcmp.s bsearch.s bzero.s chmod.s chown.s chroot.s cii.s crypt.s ctermid.s ctime.s curses.s cuserid.s cuu.s dup.s execlp.s execn.s ffs.s freopen.s ftell.s fwrite.s getcwd.s getegid.s getgid.s getgrent.s getlogin.s getopt.s getpass.s gets.s gtty.s iaar.s ilar.s index.s isar.s isatty.s itoa.s lfr6.s link.s lock.s lrand.s lsearch.s memccpy.s mkdir.s mkfifo.s mknod.s mon.s mount.s nlist.s pathconf.s peekpoke.s popen.s portio.s printk.s ptrace.s putenv.s puts.s qsort.s rck.s regexp.s regsub.s rename.s ret6.s rewinddir.s rmdir.s sbi.s scanf.s seekdir.s set.s setbuf.s setgid.s setuid.s sincos.s stb.s stderr.s stime.s strcoll.s strerror.s strhp.s strtol.s strtoul.s strxfrm.s stty.s swab.s sync.s sysconf.s syslib.s system.s telldir.s times.s tmpnam.s ttyname.s umask.s umount.s uniqport.s utime.s vsprintf.s sprintf.s termcap.s fgets.s geteuid.s getenv.s chdir.s rindex.s getpwent.s atoi.s getuid.s prints.s unknown.s fprintf.s doprintf.s sleep.s alarm.s pause.s unlink.s bcopy.s fopen.s creat.s fread.s fseek.s fpathconf.s dup2.s fclose.s fdopen.s pipe.s fputs.s fgetc.s ungetc.s error.s fakfp.s lfr8.s ret8.s perror.s ioctl.s csb2.s csa2.s fat.s stop.s trp.s exec.s fork.s signal.s catchsig.s wait.s mktemp.s closedir.s opendir.s close.s malloc.s abort.s kill.s brk.s open.s readdir.s getdents.s fstat.s lseek.s read.s stat.s getpid.s rand.s time.s fputc.s cleanup.s fflush.s exit.s write.s call.s _dup.s and.s blm.s brksize.s cmi4.s cms.s cmu4.s com.s ctype.s dvi4.s dvu4.s errno.s exg.s getutil.s gto.s inn.s ior.s lar2.s loi.s memchr.s memcmp.s memmove.s memset.s message.s mli4.s nop.s printdat.s retarea.s return.s rmi4.s rmu4.s sar2.s sendrec.s setjmp.s sti.s strcat.s strchr.s strcmp.s strcpy.s strcspn.s strlen.s strncat.s strncmp.s strncpy.s strpbrk.s strrchr.s strspn.s strstr.s strtok.s vars.s vectab.s xor.s ----------------------------------------------------------------------- "If heaven too had passions | Will Rose even heaven would | UUCP: {nosc ucsd hplabs!hp-sdd}!crash!pnet01!cw grow old." - Li Ho. | ARPA: crash!pnet01!cwr@nosc.mil | INET: cwr@pnet01.cts.com UUCP: {nosc ucsd hplabs!hp-sdd}!crash!pnet01!cwr ARPA: crash!pnet01!cwr@nosc.mil INET: cwr@pnet01.cts.com