Date: Fri, 25 Apr 1997 18:21:22 +0100 (BST) From: Doug Rabson <dfr@nlsystems.com> To: current@freebsd.org Subject: Kernel linker for review Message-ID: <Pine.BSF.3.95q.970425180421.17354E-100000@herring.nlsystems.com>
next in thread | raw e-mail | index | archive | help
This is the first cut of my kernel linker. I would appreciate feedback, flames, anything except indifference. To install, unpack the tarball, and do something like this: (cd /usr/src/gnu/usr.bin/ld; patch -p) < ld.diffs (cd /usr/src/sys/i386/conf; patch -p) < i386_conf.diffs (cd /usr/src/sys/kern; patch -p) < kern.diffs (cd /usr/src/lib/libc; patch -p) < libc.diffs (cd /usr/src/gnu/usr.bin/ld; make clean all install) (cd /usr/src/lib/libc; make clean all install) cp bsd.mod.mk /usr/share/mk (cd sbin; make all install) (cd testmod; make all install) # ignore warnings from ld (cd testmod2; make all install) # ditto I am part way through reworking i386/isa to make all drivers trivially loadable but that is not ready for the light of day. I use the -Bdynamic format for the kernel to get the global symbol table. This adds about 80-90k of bloat for my local kernel configuration. I use -Bshareable format with non-pic objects for loadable files. This gives me hashed symbol tables and dependancies for free compared with raw .o files. The linker is to support other file formats, including but not limited to ELF. begin 644 kld.tar.gz M'XL(`!7G8#,``^P\_7/:QK;]5?P56^)I(<:`!(B//+?!!B>\8/``:9/;=A@9 M+:!:2!Y)V/%-_?[V>\[N2BL)*PF]U\Z\N=$D1MKSL7L^]IRSBY8KVZQ\]\@7 MJ5>;C0;YCA"UV:CB)USAIW@@>JU65?5:76O`<U/7M.](X[$'AM?6#PR/D._, MI?=)O-LUI?93#.AIKRNPOVV636NY]!^K#[5:U>OU3/OKC48]9O\:H*FU>NT[ M4GVL`<6O_W+[#QR3?N@0\\XQ-M:BO,X=__M7;G(Z)4O+IAU26;L;6G$6-W[% M]Q:5E;.M;'VO?&DYX'65J-?23<ZC@6?1&\M9$0\^?,MUB%JNY=`SR=&6''GP M%!OGT=&1?%+4=KM9J6H532-JHU/7.VI+0>K#P\,=K'H%?$RM=QK-3JV:>_F2 M'&G-=DDGA_C1(B]?YHB"%[BFNR2&MUA;-]0GSRLY\LRD2\NA9/JZ.^EW3X9] MI:4HE>?D9&O9)C&(OS8\:A+W\D^Z")(4@^'P?7=R^GKP2U]1=49UX;D+ZOND M[!MDX6ZN#0>$]DO$@EZ=.R0_#,G/QI/3?N_]J'L^.%5J&B,_<[T%#:4C[C:X MW@:$WE`'&3AN[C"40HS*MBX]`W3L$\M9V%L3FG"$.4(_!-1SR-D`Y%&>`R,_ M\*BQ>8&=C#E;M&:9H0MD0-F"B/0#72A`L::&2;TT!>'-C%`X&L2:Q9/Z&':8 MZ5[UI'_5:WQ\Z%MX$SF,JD+HZE1;G8:N,"KTJP2&5B?5=D>K=FHMYE+U>@M= M"C\BEX(Q;$%UZ@M\`AL5O@<M+C;7A1\,;_6;]D>)Y(4U\\5BBN(PBV*)7A`C M.TQV!&P6AD_)C[,?.V&WG)8<'Y-JD0VV4:OB8!LU+>;_MN5<S3>N2<D/Q^3_ MA.^QH2O4!H[(28P&/D"Q\>$+YBE&?QV3B,_AI_@DA1+,#K.8_16?'9\9H7^W MN73M3PYQ^O[\9#S\+"<V1A$=(FZH39UK$W)9I$UN$&08-Z)_&Y!#H@*ODZ3= M0_3#+/0'C/[9+J3DQ2\:4E(^+IJF:VJI"9%2UYKPR85C84%1EK:Q\@EH`;WN MB'%U;7-CK"`X_?`#*7#X#Z3_;MZ[..].W[!Q?P$:-G]?B+EC(AIR:6X-S_E0 MR)\:CN,&Q*<0?X`/!#H"S`GGSH.1_[N3+_*),9I/^[/YV;#["L80QK`2H_0! M140LS_.?.&2Q'C-CEE9-Q"RM*D:(08O=[29#K:8P.HQ:<12>"74,;"K/A'J[ MAO;E'\)W/7_N0SJ#WN?!W34%$T\FT_EH/.JC]T3S(VZ@*#\6/\'A[.UP^`(\ M)>+@;#>7U)N[R[F_AA3JLSE%*L]W[!^:_GFE2#Z"$WV&PV?\!U@03*C<E\F9 MY?G@0K8;8*(DEVZP)H%Q:4/>A#0*EO"I=T--@;VF#B1A\!V2_XFH><CCCFFA MI$R=[3I.DT/^P=2)H]S5AU1I<FZ"=JY=G%1(8AJ!,<=J%:=H833O=6?CLS/I MN45R1*"M.Y_.NI-9K+V(D22#SV@^>[?+)H`LSU'"`+'T*;TJ1+5!B0"_$IGV M^V]P$A7)]V$PI9Y7P/AQZUD!G8?]=0ACP&<>TTQ;9YIA'Y_5S`4(-.@./Z$< M.6*NG(>DFO7?S3ZGG`2?)U`.,DLH1T0=J];2*QOSB0ORJ-?,Z*/JB>BCZH0- M$H,/WNS&GEI=8508>V(8$'H:1*UV5+6C:MPC&I@UX2]/FK)TWICS%0WF'BB= MKC;4">:&:5+'+'@EHZ@(:*P):*.Z>=(?CD_G@]$`#-]_==X?S>:LJ>`5E0+\ M.?K)F]O46<$</R8:)*0<Q!ORJV5"`Q;_Y)7M7AHV&</R&)+*#.,`@2%X=XGJ M_M5X-@?>D_?SZ>`??:6>(^B]`"2VZZR4E1O,P5F^]EKOH>M*6'T.@6OY2-L` MGUG_JUI-2ZW_M;JF?UO_/\4EPLVY<479&@]]X7%#CG_G\SB#'E=)=)P9==KU M1-1IUU,#QO"3:)%11B-5O=-H=#1587PP#F6@-G"1!S&IIO-:J,%*H89(4&6( M+]8R!\N#Z:Q_/A_VYJ_[W=XQ>4D7:Q?FN6'BH`]>OB#>AAPMX0YH(#L<?#P9 MC*#B.._.[C&?&9`G<D<1%V!P\''8NR=')^")`=2I1_\@1S,@&XZ[O7FWUYOT MIU,`N\"1'+T#@*`=G_POM-]`25N&Q?Y##./+A+_'-B;MK#L8AM)"EO,\PUFA MQ'Q=X;\@OT.&@P?7@SQ)CC:,X_EXTNM/YOUWI\.WO?Y]B%SV74BPJ"M&9/V3 MLH?%&@HT@GO%H+RO/3/^.RZ,_U?4<QYS!_C3\5_554U/[_\VU>:W^/\45UAN M.A:45W<^E#:/O=C%^(\>5TGTF;U%IR:WZ-346#'T)UI$/*]5:BK;Y6UTJIK" M^&#H?PB5AWY8!NM0CO)]CE:S5">'^-$0>S@?2;5$"O[=?&'8]CP@SXN."WS( M?4EAN[%:0X,2\MJU;;X?LHMO^5!";E>6&:.I`8UL%X2U%*$-(??6B5'5@4HT MXB;Q%XRM`12\[0L)]'T)FOL2M/8E:.])H%?W)5#W)=#V):CM2U#?EV!?2^O[ M6EK?U]+ZOI;6][5T<U]+-_>U='-?2S?WM71S7TLW][5T<U]+-_>U='-?2S?W MM71K7TNW]K5T:U]+M_:U=&M?2[?VM71K7TNW]K5T:U]+M_:U='M?2[?WM71[ M7TNW][5T>U]+M_>U='M?2[?WM71[7TNW=RRMI@A@D>?0#T%$4JNBK<-60:3M M$N'Z.$:D<B+6FMW3,M65QJF6\;[29+`HPO5\C`HM'[9F$VV=%%F=DXGV;,*E MY<3)&IR,M683I033.=&G=`C@E`Z;G.A3.F0#\?P`E^9(R.A:X0@%`"O7^^@K M,[`]DC_Z]V;14D)VF/TF27+CNJ;'1XF+"/F8L8*H\4WL';P'E@]-G2T?X"-< M/N2?P0(AG[%6R$=+`(GQP,H@SVM^B9->!V`G#0E.!1.$ZA*J[T*;$MK<A;8D MM+4+;4MH>P>J5R-HNBI'J"JAZBY4JBU=;R.T)J&U76A=0NN[4*FK=-F,4*FK M=(V,4*FK=$&,4*FK=/6+4*FK=*D+T*;45;JN1:C45;J(1:C45;IB1:C45;H\ M1:C45;H61:C45;KP1*C45;K*1*C45;JD1*C45;I^1*C45;I8!&A+ZBI=&2)4 MZBI=!B)4ZBI=\R%4ZBI=X"%4ZBI=S2%4ZBI=NB%4ZBI=IR%4ZBI=E"%4ZBI= M@2%4ZBI=;@&T+765KJT0*G65+J00*G65KIH0*G65+I$0*G65KH<0*G65+GX0 M*G65KG00*G65+FL0*G65KF$0*G65+ECRHA()$1XH3_*B[I`H.\5(/BPR),YN MZ9$7-87$V2DT\E']()$>*"ORHEZ02#M%1%Y4!Q)EIV3(BUI`HNP4"/E8VI=H M7U@/;`P_H-Y3%P6\U^S*H)&L#!H[XTV4![PM72-HG4958;P2-4(".2H4&AV- MOVY3:]=*-7*('Z)0@-)`>3L:G%\,E='X]:#75UB94!A?4^=DVBLB1DV9SGH* M/$&U9CF!+!,*-ZYE%E^0>\2JI[!XH5!8K`V//+\V@G6)-6\MD]^L!.DA%`ZI M(;#)@0`]"]#,`K2R`.T,@%[-`JA9@+3&(D`M"U#/`F1)KF=)KF=)KF=)KF=) MWLR2O)DE>3-+\F:6Y,TLR9M9DC>S)&]F2=[,DKR9)7DK2_)6EN2M+,E;69*W MLB1O94G>RI*\E25Y*TOR5I;D[2S)VUF2M[,D;V=)WLZ2O)TE>3M+\G:6Y.TL MR=L9DK\(8R3A[^SY9.EZY,RC%")6[A!R;BI\B?Q;$/=AL(+,NXN(V4HBEL*7 MU>%I:U-\=2MX3O!OR$+;9;%\N+-TZ!6INK!P'3\@/+9B5@KQTT$XRMJ,-6)* MWHU=7$S>F;SU7?QHT$G.S5W,2$4<,](1@.;8]("66@^-C^?[=)]?^UO-;]>7 M7NS\EW6Y^'K?_Q.UIJG)\W^JJM>U;]__/\4E*_38JUC.(^_;@<,QIZNDN\U^ MZ;V9?.F]21*C3;[_Y<B=.5B7:;5.M=F!FI9Q2;[^Y>SLX34Z#;Z'5V/O)\/? M-M_`\ZV5P5Y,+KL$[^T`'&=QA4_NXHH&T<VU87GX`)%3?"Q]N&$O.MT:UYS! MW0;?1V=WSH)]^'C40N!M8=F`P"T8QZ8!9;>"8.MLW*V#K+>!M:$^N_&,!66T M1\J-88+6\.G6L((Z?N++QN'G#=S,YR+W1O>!C:^0_7U:Z/E0$1D:GD0*YG=+ MT8@H(EW"4Y0(^3TF.GXGL$6*"J$\S>`+:3ER,>V_[8V/E3G]8"$"OO]KNRO+ M8>"O/:'^GUT8_R]]LXS:W5P]3A\8_ZO5S/>_U(9>VXG_:OU;_'^*ZYERYKF; M#GE9>%9$/[CVW!4X@M(H:SHIG%#O"B+079'H$"`K;37W3#D8F!V"J%?<9THW MN(>BDNBL9`W?N*W7.Y#5_[Q:D_Z':W*0>Y9[1F9K&AX]Y<=#_R?&YB>R-AS3 M9J=3P22VC1E@"`&"O7+_AGH.M<DYJ^#],C!+T@JV/CN)PW@[QH::)%\N)Q), M'H\)67ANU?(#OP1\#)_<4EB&&)QV=WSNY9_818D_F?2:/\%@@7ICW)%+@;@Q M'`2AJ`#!1'-C>!8_.01/K/5TV.^.\*#M5.F:_*"08;/.H'M\KW;CWE"V%,+! M+&QJ.-@3OS,M:#8\"'>H`>#6&TQGD\')V]E@/")D!!+CH073PC.*EUN6K,AO MEY;S!\/NO[L83V;SZ?OSJ?+SSS^SMC?]R4A1S@W+"57LNUMVK-CRZ")PO3O@ M</"Q?/IVTAM,[BN@3O@7;K%QOF_.QSWY4PYH9$>,!&6P0Q-><?Y\$8;"7N*A MZ7+$`O@K)WA4%?>FF`H>)O7!!Y6"3X'UU:90+Q9AA!6XE8,9_SI2AF_.B7OK MX.'CW]@;V-!X+U%>32X8RLISM]<A"C3&4.!?G^'@H;$0!1L%SG`P>C-5%)37 M!HVCO(B-:=J'U>W:W=HF^L9R"]Z%,J%6_!(J!:B3%Q)1\PB4POQNX6[0^UG: M*X$J;-N]!6>^O.,:9<@[//@1;:9_[D]X6@T6C>81)P#8&2B5?C`VUS8MH040 ML,,'=5GA^Y;,]?@SM=@>*MGZM(/B*XK"%'"<)(@C<RV-V`'+J7+&SG4RLSH% MM4B8!<,)PI599!2@8GQ%73EU-QOL/^`OUQ,CY4&_57P\M01/"/XCI'T[2E.+ M;?)L>H[`.8S&YUV8$6A)TP4EXG'2M0%STH"Y[FP--.6*'3;TH>9C)!>3\:N_ M[_\$=3E8LH[\[?6U;5%8C1]\1!>\A^K&\E'G8I[PTF<.HXMF\!2K[.@:"D\4 MLY@[@IQB_8NI$J*(V41NU]9B#4.%CER'8G\0XZAC&K"D=QW>Q]L3F)UA']W( MW_WM91@G+!9[C2#F^"A?$,;7\HZ?]8W%.E22B&KDUH*Y@K\IL`WXH4H?-<FA M>!CSH;F3'(0(C/WI#$9<8A$2AXYS`0]PP11R@8D7K0%\4J#E59DE-(@7$,"+ ML0`>CBL,W_R*`BQ.A=1H9JA'^&=PWW:8GD1&*PE=HY0[A/B;"4SB8+M$"G`0 M?/2LU3H@^7A,SW,9%<%U=PP"P.@QGWO&ALUD"R2).3%$*8NK/U3&#J=H"@`I MM2&U\.-NTF12M)@9=]A<4ICW-!P6#L580H`(&S")&K;OHM.@K^/D6!APM\.( MK\!`P1M([I814/M.,)=<11H7*F`CPBD&-A&.)>:2@C.SHR`,RPP,W@(00*3J M8/NI1Z$/L&7`8A>&YC`UQR>8(.-AA!&^Y2$G8BGKB`Y/Y269T7'@`!-8O+[H MB#DH&GEET4'C"<&`:TX$RI^/E40DS$5!,`[A@\OE\$02+WX*R;0>KY**N7)8 M!^6SL?(Y<20J5YZ^/3L;O.M/.Z3L@A]#V"HOX!_^__"!E$])^8Z4;5+V27F: M8QKI^OX6IS:&C%O*YB?,;SR+RG8(EJY;N30@WX!78+D!4PJ('BI$(*W]"N6* MZ_P8L+/:F+5,=A3+(.6+[NPUK-;QB#9X\1I:L>);!#`%P'-L]KLNV"WVP(.( M?8<6.V4YZ_#XX./I^&*&QZ1Z6"GUAW#3/9V][0Z'[S$*ST?CV3R$#!X:'BQ[ M%>#R:W<R8CSO<[E8'?;S,9F+4,]-PR>86?CE;(K\B]%(H&/1!G>`_\MH?#$] M%K0WCGOMPP#*.<P&A\<*-)AT;BW+ZYRL.!/M)+I=2#/&!B`S36(,LCFB@C;6 M*9[W@IO.^?/R^CZ'I\B@+6P<06-GTIE6#BIEM[(2TGX?]08IM)C#O\=*F/I\ M-^KBX"."[CO`C?=V#W?\G!JV='N]>X)J%L?H\.=N6,K%%JYU=L[M8WG6G;SJ MS^+485I,CXC5`;%YD*CP$YAS0+SHONI/B^2OOPC=7`=WL;8<W*E2J+I4-K61 M"P]0!3FSBSEYWR%SGGIS\'`$[1U)?MX=C#H$0P%#A`B"OX%!A*J(((@8)/P@ M1`K5(&078XD&$F],A/!B+O$8C2I.$(_PQ5S\20H!9K)W1`5=#4;3&4PQ'"#, MO_?">J*TAZ>5>,*"G9\T#`OV>YQOF"DB)L+^4F11&]P+V\-=PO%Y)<I^,X+; M4I2FRDNL'\"C\/$>#RXJD,VQDJ-0#!T</(-A4:*]@%"$,,4^CG5UH#("Q5]; MRX#?!I^!'WSLG[X>PX`/`G+T^T_P:7.`.%UZ(/!LM'E892.Z'<$@*-(7)/"V M--)XI.U$`@Y5_]`,2%B.Q"P6ST9E_`6.;-2P^X2]$RXDHTEL20OY"[)7PJMD MZ57,Q<HPZ3P+,Y8ER`MR4#COOND7HX)`J!R5STO#^PJ_#3N]YS]>TCM>N-=0 M3SX8'"'J@[*+.5XHQ#'"<2)$P$4(O$]H.1GXE)?)88/SK5C)<?#Q%?8D,D>< M\/7L?/@@X5H0OHX3BNF9^$@.&*N#8HZ71&*NX$P4-49L!L(M#>]"Q(<TP`N. M8DY412FFO$`!7D[(-F*"Z10#9L:>0RXGDQAR1?3[2M3FK\ENF[?(*0\",I!S MY4J\DU@V324$L3>4:A5[1*E6=LH6F[_VEE_BPOU?5B,^8A][__ZG6FTT&M]^ M__,IKLC^X@N7Q_"#_>VO:5KMF_V?XMJQ?[C"^P_V\9GO_[5&4T_9O]9L?OO^ M_TDN]J6$>WW']YD*BR+['H?TW.V*3(Q+'W<`21<*)X;@1S]_QO<U)C2^,<6V M,K8^6\F+_1%L`>\RO#O<.=GX)7)KX4\K>>P3?PGE&7O!:FDM#&118CL!U]3; M6$%`3=R^NK'PETK91@'[<H?MAN/Z/OJI-=P:0+(-#7`S3"VGQN7'=D07^`MP M&S`Z2!(8?$N1&)?XK<LB5`/?=G+<P%K@/CGNZ(4[GK)/)EIR0-#GPC:L#?5P MMU/;'0;^G)Q41C@,D-'<BA^1^X^/)+%K:KJ++?Z`EA%:JP*&X'LF&P-K=\/V MI<K_U=ZQ-K6-)#_C7S%%+A>3,\8/,(1<]M;8(JC6V)QEDE`DE3663'08RV?) M)+DD__VZYR'K`3@)@_#N=E=BI)E13\^[IZ>[A[<4XHT=*(F3O`/38E9GO_<: M6&4&S\#;O3*;1I/MG4"DP>K'O8-.E]7;3=;HM`5SW>E:[/??ZQ:D?_($H[!G MM4_P7`I]T3!(CXJ")F`!M-UZNV<:5H&9;?0=8[9?%A@@8<![LY9Y:/8@6:]3 MP-P`3_I#UMEGAT:W<0"O]3VS9?9..#G[9J^-N>TC>8P[EFL<M^I==G3</>I8 MB`S+!%N"1JMN'AK-(@,2(%MFO#+:/=P=M%K1,L*_6!'W#*`/?1\")IX)%!'X M6*/1P[+,GQI07T!:J\"L(Z-AXH/QQH!RU+LG!8G5,OY]#(D@$H7:]4,4*;#\ M@AJ!M@#6V4!G9U@)L.NP>F;ON&>PEYU.TP),@-PRNJ_,AF$]9ZV.Q2OKV#(* MW'\@SQR00$U!-#SO'5LFKS.SW3.ZW>,CW">M`9Z#SFNH%*"T#A\W>?5VVKS` M4#^=[@FBQ;K@M5]@KP\,".]B=?(:JV-%X,ZKT>/G:6%"R!.JLA<I*6L;+UOF M2Z/=,#"V@WA>FQ9L[.I=T\($ILCX=?T$"WC,BXZM!)2)QTB/+?"V9.8^JS=? MF4BZ3`P=P#)E9^GL\Y./QH&L>-[S\?0;#[.EK$HNFESL%KX5!RCTV9F_[R2W M#?*0?1FV`JGU/RR$OCP6^7\O59/K_R9P`+3^9P$;3]=S[.DB%@!27,L#L*<8 MI8$+`"P:V`#`$O(!\'QW1@"0W)D3`!Q:6(&[TZ)X`8%)"S,@.H`F=@![F19^ M`!!I9`B0+$T<`;H7UL<2`#9=/`&@TL,4`"*-7`%@T\<68!GU\`6`*<88\%$@ M6`.T?,P]"E=[/[!=K_CAETC0;`PCR(Z'H7`3/<;ZZ>!)?]J_3`<+[8UT.-?U MF6)X3KJ31,.1IUP/`-52GH?A:"L(P>XX-.`0EBZY+SF<'M(V,UR7&;X7L<`B MH(](G#M>,/3@Z`WSZ6_0I3%J)`Q97MGE2)N<O_-H]D_TC+P",_W4F^9#LUKY M&3]56.$T#O.K;X.WP>.*S1ZC"_>"($%8KL`#E@V^^G9-\5":$3-UP6>@_<SS MG41I8]8OLKQ"HT+6SO<4/X8D4@'*ZD:1<6T-*`/<:VN`EWX3_J_O?)(_O"[$ MD9>B*ZR3J3/TY6/?MF'55F](;[S>0B)5O;`OT8IO>&-<(WVE-+0KG.C'FL:T MN0:BC$$]"='4<<O@?&@E)")_P?L"!/DJ=6A])?KCFH@.>ZJTQ^(4?TLT>&[F M]\^=O&K5H:0/QAM4;X&M\NA=J#5VNG[UCG<C-3!4A7]R@WQ9]"3>ZE!LWGGZ MT_-!00PFY#+.KU0F&#F8=Q-9@?(B!!DH"CT/$V,20[FJ&`_/B5(*:B`(\S@M MO1,?B*/&?'X`$>=.X$V"O"`(4T'!KMS=\>[J&G<UOEZ&*O-AP1Y\X-P<M*2X M`N3JR:ZHRSF-95GY9U.G?_%<)715PI#N?N"Y><@5LEN[]I-Q]!-9`I$^D=QV MAOW9*)"I97M!^#=>3BP46^>?NF/[N0J[8O^8AX5]E2<6OM570D1AK"*$5T!8 M$&54%\9"UBHU),#!B.EY6X@A&4T9ZR&2Y&^JY<10@&'0A7''ZF+$,6:A=UN$ M^>B(DH@S[LI\GE*3@QJ'T6F`CZEH2?@H*<%8DH$XF%@J@<PE.HYNR(KG)2^/ M*>$0>.C="<%]PXW[_QU]>2S8_U=KM:3]WV:IMD7[_RR@^'8U!_\7"0`PR;42 M`/6]!AD`HM$@!$`TH10`7^XN!D`L=Y8#(!(M@@`-U"A)@$2E112@>H(F80#O M<5JD`8A)HSB`$Z9)'H"X-`H$$)TNB0#BTB,20$P:90*(3I]0@!=3CU0`4<7$ M`G)$",$`?VG:K`X,V(A5M@I\DH6@@/W6:EJ]>H_MY(H=F+^L#ZQ=/X3.T;Y4 M9K#P;.-PFXSZG_F^;<;G,'6U@S0M$7M_CL`Z0?U@TXHCZ4S8_HA=J0>7U6$F ML-7K&%\5M\NQ-`VKT35Y,^9Z.%VT+W,PVD=N\%E1XTNC!4427EPI["HD<5+3 M&BV00JN&G"`8:NAH@H@Y:\_GK*D#<_;>B*T'_7.V_I'?PP/L.LQ-N:(9".KW M8,)&C7_)MQ95C"I.4]93G#!O//H\MPZ4<QC,G&8S1,`K@!?^QU#@)X#$&(FJ M-V#@MZQ.KOAF&KKRVF$%]2[-D79X8C%#A$7.1=;<`@.6Y-?AU'&XIMGT'',H MZF;)4_S?T/,T9[&(_V-;I:3^3[54*A/_EP7L`]/1#P)D#]`FJ,`F(P<W].@` MH%@L0J<\BX]#T62Y8R%)P8Y[>KKNCGTG^(H]^)U,_8Y!:.!<?EUWQC/X/9N- M1IC$=C%-_M'FUIK`P5&L(_^RSF]\.Y6YG8J+-M^QKVR=7XX["/#1$Q=QJ5B. MJK:6F`+F%&K`OK.6FA\X_J8W=K0/Q\PA.O[%S*1?`_`G]/^VJG3_>R9P3?MK MUP!<I/]7*VTF]_^5;9K_,P'2_R/]/]+_(_T_TO_[2?T_:5@=:@!*KU81'4`9 MLIQ:@->L_Q&2]>2Q4/Z_F=+_VR[1_:^9`,G_2?Y/\G^2_Y/\_T'E_\(>^H83 M`,EBX!E`Z,M*.*.9>I=\)`IY^K62?_6Q3MF_P.DK,J17HS[.$<Z5Z\U\%/E# M"CE9)"3A?TVQ/]<H7!*A?P1NY?\TV8`LX/\V:[5*BO^KE8C_RP+(_H/L/\C^ M@^P_R/[CH>T_;C#T^$&#CN]3@`\=`N(I+3!/>%H[#OF_=W,M95*'_S.IPR/M M$(]NHN9T+8G^?-+XY!:+G)5KS6]4Y`)3FP1U48.;%'FA?8OPYXFKZ6-@7ES[ MQ6-[;H.$A2N$M]\DRS2_\4>F"*F(4"`O^,-<P_PC>*(J^9KW`B'_WWAEW9</ MJ!\__R]7RB4Z_\\"8NW?];S@'O)8I/_%RLG['Z#Y2?\_$YC?S/.'5V4B^`F( MCW]GXODNWOJ@-8^%X[^2U/^I5C>K-/ZS@.3EN>AP]:%I(L@.8N/?&./=:]IO M`5PT_LN5[>3Z7ZN0_E\F$&I[;I2+U6<;A["A.H3Z@!FYM+F[M;T+[<4O=MK( MQ7S_0^HMGGC?.6-E2+.]NUG>K595XH<N%L%W0O3\YWZTOW]*_[M<VZ;]7Q:0 M:O\E\?]:)?VO3(#TOTG_F_2_2?^;]+]_4O\[KOV=U/U>8LUO`:GU/RR$OCP6 MZ7]OUU+ZWZ4M6O\S`=+_(?T?TO\A_1_2__DKZ?\\]D,%D*R=8-Y5LT>#5L\] MZ-R44RHT48T9KOXABYER_QAW`!M/)?P^1E5CHDX<\ZLMH60?5TJ1*"(J*;?X M=;R1_\O0_U]U:RM]_P^=_V<"9/]']G]D_T?V?V3_]Z#V?[=8_X6V?U'+/^5) M[S;+OX3=GS3PN]&X+V;2E\`/<SE.()$`R9;J,N6[P8A.&,TMJ^^\/P.$_-\] MG/LI0/ZO5+J1_RM#:/+\MTK^'[*!1RN_YA^MJ<9?V2ENL?R>,[UP1L[G-5;= MJ)8WGFW"CI:]>?.&'9H6SI^[*RONX(,SN&!C_B>7$S=;PU;._@_.#\'_V!E, M)LX`-H4#&WB2H0LLVFCJ(LMP,>J?P01B7SH^L"3H;L^>74[XS]#GUY;#TP@> M\2^P(T,?,AKZ]AG\N%/D:MRA1.F.W8"YD^%'=FEOL<N+L6<C!\GG"$`TMW*Y M]&;\!@_X?3^PG]5J)?GB?`HJ(E?QCOF*I_'\:8:7G?/'B3<-^NH%-M7S#V>7 M_8D,APT^D,V?;39V/@(B^$7,@-/&']?C7XZ]D7<.G-@$Y];_SKR@+VIUZIQY M'G*!?H"SY!288_EK,[]_Y0PPU!_X+B+!OT/NQ)'Y'V:![7T$EGO4#Q`9VB=, M`W_D3IC_L8^5&<S&>#G!C%,'S0JMJAI/'5>$\^[<>)Q?[.U\`G;/ST<NYO[; ME\-ZXP"6_&]K$@ELD>>!D6O!HX<?_NS,=J=+<OSQEX?4_(^-I3F/!?,_+`!I M_Z\5NO\W$XC/_]CXL`:4HVM`;6-GXUDUE]OC&Y-_O5@12L+M#NQSND83`DX, MBX;R'Q1P_`<.OYKIOLR_?L;^JXK^GTG_[_XAVO[WM058J/^7.O^OEC;I_M=, M@/3_2/^/]/](_X_T_WY,_R_WVV&G^6)%+IU2`5"^%0?`'1_6VR^"Y-X7(Y=K MXQM=_T/R->>Q\/PW9?]5K51(_I<)D/X?Z?^1_A_I_Y'^W_WH_]VLV"?O0+OE M9O<<O](:5^7WP]EX@",NU.Q3&F#[,H*/;;%^,[QSS;&%$Z_Y_=B07N""),X5 M#/R\O*>=7VU>8"H8[TF",/Q3$#J%3V=CF,_#F^%CWHBBEV]S['@FD[_N,YG; MU#F'&<29YE<Q^6J!Q6@JL)(@VCJ!YC-[>5FF@F6^AT[[OMDUH6M9^-KI-HWN M^T.SV6P9A3#K0ONXU5I;(@9KR2'"_U66R/]3M58E^5\6$&O_>Q(`+KS_J9+T M_ULMT_E/-D#R/Y+_D?R/Y'\D_[N+_*\2%P!6B@,>WS2.K!=L8W1Q&<K6?&^Y M9(.Q]7].OM8\%LK_RJGSO^HV^?_/!$C^1_(_DO^1_(_D?TLH_W,^P3@<"R%< M7`R(06O/4[*]ROT*]RH_*-VK2/%>)2'?PP\28LV4T*_RG5*_"HG]"`@("`@( A"`@("`@("`@("`@("`@("`@("`@("!#^#SI51;$`&`$` ` end -- Doug Rabson Mail: dfr@nlsystems.com Nonlinear Systems Ltd. Phone: +44 181 951 1891
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.95q.970425180421.17354E-100000>