From owner-freebsd-current Fri Apr 25 10:21:49 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id KAA28321 for current-outgoing; Fri, 25 Apr 1997 10:21:49 -0700 (PDT) Received: from nlsystems.com (nlsys.demon.co.uk [158.152.125.33]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id KAA28308 for ; Fri, 25 Apr 1997 10:21:37 -0700 (PDT) Received: from herring.nlsystems.com (herring.nlsystems.com [10.0.0.2]) by nlsystems.com (8.8.5/8.8.5) with SMTP id SAA24776 for ; Fri, 25 Apr 1997 18:21:22 +0100 (BST) Date: Fri, 25 Apr 1997 18:21:22 +0100 (BST) From: Doug Rabson To: current@freebsd.org Subject: Kernel linker for review Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk 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`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-?23K#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@)Y(4U\\5BBN(PBV*)7A`C M.TQV!&P6AD_)C[,?.V&WG)8<'Y-JD0VV4:OB8!LU+>;_MN5N2$+YBE&?QV3B,_AI_@DA1+,#K.8_16?'9\9H7^W MN73M3PYQ^O[\9#S\+""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*CA#0*EO"I=T--@;VF#B1A\!V2_XFH>[?+)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<$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: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][5TU='-?2S?WM71S7TLW][5TU='-?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!V`G#0E.!1.$ZA*J[T*;$MKP>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;[_YSLX34Z#;Z'5V/O)\/? M-M_`\ZV5P5Y,+KL$[^T`'&=QA4_NXHH&T"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!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,!&6P0Q->FF`H>)O7!!Y6"3X'UU:90+Q9AA!6XE8,9_SI2AF_.B7OK MX.'CW]@;V-!X+U%>32X8RLISM]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"%'"<)(@CH[`.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?-!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:W86?CE;(K\B]%(H&/1!G>`_\MH?#$] M%K0WCGOMPP#*.X)J%L?H\.=N6,K%%JYU=L[M8WG6G;SJ MS^+485I,CXC5`;%YD*CP$YAS0+SHONI/B^2OOPC=7`=WL;8J*TAZ>5>,*"G9\T#`OV>YQOF"DB)L+^4F11&]P+V\-=PO%Y)#RXJD,VQDJ-0#!TPX`/`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,QTCM>N-=0 M3SX8'"'J@[*+.5XHQ#'"<2)$P$4(O$]H.1GXE)?)88/SK5C)< M\/7L?/@@X5H0OHX3BNF9^$@.&*N#8HZ71&*NX$P4-49L!L(M#>]"Q(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\RO#O<.=GX)7)KX4\K>>P3?PGE&7O!:FDM#&118CL!U]3; M6$%`3=R^NK'PETK91@'[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@@8TC>8P[EFLI8 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!.JLAFQ9L[.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.*S1ZC"_>"($%8KL`#E@V^^G9-\5":$3-UP6>@_B*ZR3J3/TY6/?MF'55F](;[S>0B)5O;`OT8IO>&-<(WVE-+0KG.C'FL:T MN0:BC$$]"='4<ZJTQ^(4?TLT>&[F M]\^=O&K5H:0/QAM4;X&M\NA=J#5VNG[UCGZE!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<@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@$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\MPZ4KKNCGTG^(H]^)U,_8Y!:.!R9P3?MK MUP!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[.$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^,-*(J^9KW`B'_WWAEW9K-/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>K595XH8LUO`: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\`/,[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^%'=FEOL7 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&#G!C%,'S0JMJAI/'5>$\^[<>)Q?[.U\`G;/ST>!D6O!HX>Q\/PW9?]5K51(_I<)D/X?Z?^1_A_I_Y'^W_WH_]VLV"?O0+OE M9O<=7VU>8"H8[TF",/Q3$#J%3V=CF,_#F^%CWHBBEV]S['@FD[_N,YG; MU#F'&<29YE5FF@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&)2'?PP\28LV4T*_RG5*_"HG]"`@("`@( A"`@("`@("`@("`@("`@("`@("`@("!#^#SI51;$`&`$` ` end -- Doug Rabson Mail: dfr@nlsystems.com Nonlinear Systems Ltd. Phone: +44 181 951 1891