[comp.os.minix] The problem with lorder

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