bunnell@henry.asel.udel.edu (Tim Bunnell) (03/01/90)
I'm posting this because I've lost track of the info on submitting patches to minix-ref or whatever...sorry. Could someone send me a copy of that? Anyway, despite the recent postings of library orders I though a working lorder would be nice: The parser in lorder (1.5.3) is a bit too enthusiastic in its search for globals. It accepts any sequence of characters starting with '.' or '_' as global; this includes strings that actually start in the middle of a longer sequence. For example, lorder takes the labels "byte_move" and "word_move" in memmove and incorrectly derives the global "_move" by disregarding any text preceeding the "_". As it happens, the curses package in MINIX includes a function called move, and thus lorder reports that memmove depends on curses. The enclosed patch (compressed and uuencoded) fixes this bug by placing additional constraints on the start-of-symbol parsing, mainly, that the first character ('.' or '_') must follow white space, a comma, or a '#'. It may be necessary to expand the set of delimiters, but I'm not familiar enough with asld to be sure. In any event, the patched lorder seems to work correctly, tsort finds no cycles in the library, and I've not found any commands so far for which the newly ordered library is a problem. Oh, to do the full library both lorder and tsort must have more than the default 8k of stack space--mine are simply set to the maximum. Tim Bunnell <bunnell@henry.asel.udel.edu> ---------------------------cut here------------------------------------- table !"#$%&'()*+,-./0123456789:;<=>? @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ begin 644 lorder.cd.Z M'YV-*@*">%%GCIP7=^2L>1'#10T7,UZ,>=.F31@W9.:\8/-&#IDR<ER,24"Ez M3AD01LJ( 2$#!@@8,73 @*%CQ@P0,7+D@*&@A4\0'#V"%)G@2ADR*%6RQ,%2y MAHX8-'34B(%3)\^ 6+-J5:$ *\L;-UC(P'$SJP(0($9\-)/&S<DT<[ZPE3.'x MSI<Q:,+(03$F10(4?%. Z-$#Q D7)T#PX0,B\.#")[Z<2'$V[=JV;^/.*3,1w MX]V\>_O^=4S8L&3%C.&&80,G+^"^*2BC55N&K5L0<+^\H8,&Y&>]@4?W?6PZv M\6+<<U:[J=/F=6S*(4!4;DL'1)X\;,K@02$;Q)[*:*F#F,AF\,L=/7_* "N6u M+ B?/BO3MIU9;AJZ=O$"%^V<^&'CC)$&F63=S8<9<E]LUAD9OX7F5W^E108@t M<JNU%H9SL<EWV6VY[=:;' T&!^& $ZK&QG+-!99A= ;>MII=<\ 1QAAE!"><s M8!&R,*& AHTPV71N5'===MMU]QU:X04YWAOE%08#>EM%&5!7 HU5@U@[@6 6r M?$M=*4,.5,'7 GBX*9E;&V6T(09(YCU)IGAM?;'A24ZBAV29U;$11EUXM8G>q M"DB*=\>>"<I(HWDQV(FD?G* ,,<6302!A1-!-%%$%XI61J646FT*P@PR7&F3p M2UO^!*H-+-@DPWOP599 GUHBM:K+Z@ A-ET#$'"&2\ <)%'K+)Z(QTL*G"o M"PH ^NJ@FAE*)TZ*OMH9'6V9%&VL:&W**5:>VC1#JC70H"6WLR90*PA!R''2n M'2=M5D9;9Q@&1V)M+5D>5<>ZFD :9C2F)Y]H^#<O"":88"]Q,0AV) BO[AL7m MFFJR65@+B?;$L+1O!%EM&='"*NO%YZ:[;KMEO.M&O">TD!AO851G!I,<W;'Kl M"0/72QY.6B);;AEL;(9;ORC\2T>?$:I,L,%GIKEFHSR\=/3!I<V@L+X.?P'Qk MTHBBU\+%"4R[<<?82E?NN4GTRRX(>=E!<AENR/M>8FZ\<0<(9^MUDKIAD $Oj M"+R=Y$88:.JK)0@=\=T;"'/5-1YHQ++Y1K]A@' &1V*LYF@>:C*9LP+1O<IOi M8TE'W*@/3A^76^+Y@1;TGD.C$9MW5#^:Q@HK=&&>T'AUO"_0H6/=- R"]2[Qh M>?K&VGG7&5.[',>NANWJN43XVK>CG&6,%*.$0P["WVANSJ5-HH;+:GQCVRHRg MW6OO33.];=^,K\X7?[XZP (G5C#4A24,>[E57ST\Q6#[&*W,IR[T4<]D*#,:f MRUP&,[G-K&;MT]S[],4SG\D/=P$KFOV0]C"EL>EW3[M9U*;&/^$U*G\!S%;Ye M0% V Z9M;6VCV=NV)S<#V@T$>-/;R0SG-\"507"V*MST4+<XO32N48_[E>0Hd M9[DY8$X,FLO7\>1G0A"0SB7'0<'I[E.7$&%0,/=C5J%F5(;7+:QALJ.=[0J#c M0=U1L8.B \'O@@='K-6I>)R[F!AC1$;SO&B,-)I?ZU)P+0%"3WJ'4Y#UBHA$b M[7'O)/G:5J>\,H,:A&4&-R 5N;B6QMK=CG6Y*QX(*OC#$M9Q>&Z:E?-F=4@>a MXK ,BDMBY)R8N?(4SG^->N3F9D7*GX'NE*,K76KB$BP0,4J0>#&COCJY1J" z M$@WH.9[7EA=-AO5AE#W[X?'.L!M?%>$)4U 46E:)I'-)(5=UD(,;=O5-(Q"Ny M;6Q#2A+9DAWOF<J2J;K!3<04NRW,SI-L?";8L+D9JE7QCLI:%J'X>*C"_)&Ax M-?IB(57(L%9.3UVQU!XMH6C+1N%R>S[<)<-Z^4:K>3"86!RF;OIF3-5]D807w M8^8G 59-A3:KCPYE XR<A4S7U?2:O?S.\?;H+#_J%) 1?28A\_@J;M+!F^#\v 9*9G(B19SHE.=['R".S,V2HQD#W%IJ&>^ /;Hu t end