ELF@4 b4 ( 444444|1|1|1| | ))<  HHH Ptdl l ttQtd/lib/ld-linux.so.2GNU @@ ")0T0L()3" Uf2t |qX@K|pTŹ@D8ĉCEV&o2ݣkgUazG}< E(c 48 Ig*2@- H,2&K w^ - [1(np D$H k gz pn<2qC 2L EveF /  _7u ;,^n_ G. =+%@w ;'I( ="s G> 2UE UGHhT> 'r&'=lN5"K6ze b _``*jr rcC;%B .( j2H9 XBF^ /L<O.9 p E @ E* 4b 2UgfG 8]( 5\i)  \Wc kU+X ? % R}W;]P(AIbcĨ@n  ġJ T   d 9 z    ! T  8      ! `   !  H MnM:^ Mq5.a a` `  ؓ   ě $ `  ^^^^^^ _d4_ 8_<_L_ h_ __ _ _____ _ ̿п0Կؿܿٳsi  ii * ii 4 ii > ti H ii T      M     `                 $  (  , 0  4  8  < @ D H L P T X \ ` d h l p t x |   ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9  : ; < = > ? @ A B C D E F G$ H( I, J0 K4 L8 N< O@ PD QH RL SP TT UX V\ W` Xd Yh Zl [p \t ]x ^| _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z  { | }  ~        $ ( , 0 4 8 < @ D H L P T X \ ` d h l p t x |   U] 5 % % h% h% h% h% h % h(% h0% h8p%$ h@`%( hHP%, hP@%0 hX0%4 h` %8 hh%< hp%@ hx%D h%H h%L h%P h%T h%X h%\ h%` hp%d h`%h hP%l h@%p h0%t h %x h%| h% h% h% h% h% h% h % h(% h0% h8p% h@`% hHP% hP@% hX0% h` % hh% hp% hx% h% h% h% h% h% h% h% hp% h`% hP% h@% h0% h % h% h% h% h% h% h% h% h % h(% h0% h8p%$ h@`%( hHP%, hP@%0 hX0%4 h` %8 hh%< hp%@ hx%D h%H h%L h%P h%T h%X h%\ h%` hp%d h`%h hP%l h@%p h0%t h %x h%| h% h% h% h% h% h% h % h(% h0% h8p% h@`% hHP% hP@% hX0% h` % hh% hp% hx% h% h% h% h% h% h% h% hp% h`% hP% h@% h0% h % h% h% h% h% h% h% h% h % h(% h0% h8p%$ h@`%( hHP%, hP@%0 hX0%4 h` %8 hh%< hp%@ hx%D h%H h%L h%P h%T h%X h%\ h%` hp%d h`%h hP%l h@%p h0%t h %x h%| h% h% h1^PTRhch cQVh SUS[È!tX[ÐUS= u? - X 9v&   9w []Ít&'U tt $ ÐUuu]X uXp Bw* t$$ eD$]u]Ðt&t$$e`]u]Í D$D$ d$B\$$"u'UVSà D$ D$$)eD$ 9w+D$3eD$D$  $9sա $ D$[^]Ít&USÃ? D$7eD$$D$ \$$)0[]Í D$BeD$$D$ a뿍t&'U]ˉut\ tDD$  D$}KD$$ ى3 $ D$]u]Ít&Me띉'UWVS H1  DžDžDžf8D 9'W''v Dž'ۍD$) ')ѽD$4$T$ɉȃ0T$$D$M9t $D TD9w& {? uftx=  =uDžw z5 =w"`|9?f`)E؋DE܋DED  E=K$o0fE؋BE܋BEB EZuA%8fu@ %>f%B%E䡈 )Ë)CE؋CE܍rBEBEB э=wf;`|Z"'u? uftÃ=w f`|t\9 ?f= ty؅~fJ#ߡ 5 Dž B B B  D$ eD$}KD$$p  $ D$Dže tt f 69t=f{9uË9t$-Č[^_]á |$ D$eD$$o_ id/  d  Džo D$D$$eD$ Dž; D$ eD$}KD$$   $ D$B D$feD$L$ $v7 $ofZD$LdD$ `D$ȃD$  $!1ߋ ޡ ^\$ D$eD$$  $ D$89uy D$ gfD$}KD$$fMء u $ D$)Ë)  D$D$$VeD$ c=  |f< f  t    C C C E8v D$D$$eD$ m D$ eD$}KD$$   $ D$މ$i$(d$dE$SPE$QPEhI!^D$A$BD$C$&g!&-p  D$D$td$\$$}< ] D$B$ D$ D$SfD$C$pEw D$ D$Zf$D$pEJ D$ D$ZfD$B$fpE D$ D$`f$D$9pE D$ D$`fD$A$pEjt&D$AD$A$md$ezp p ZD$A$>D$$`! D$ D$D$B$?oE D$ D$D$A$oE E؋C P ‹uCE؋CУ m E؋B RAE؋AУ 9 D$ D$Sf$D$ZnE $$$~ D$D$B$UD$D$A$1v$a$L$7$ݪ"3vVB$jD$A$LD$C$~]D$ D$D$B$_D$ AD$AЉD$A$^YD$C$z; , ^t&B$ ^$|C$ cD$D$$D$D$$eD$D$$@D$D$$D$D$$aD$D$$<$WD$A$D$C$D$B$hD$A$LD$C$0D$B$t&FAD$AЉ$^^$EE3j EU^ EEEEE؋AExCEEEYBEEE:AEEECEEEBEEEAEEECEE؋CЉE$QPE|$z@EW$UQPQPQP E'$%PSPSP EEED$E D$E$ D$A$D$p D$CD$؃0$Hm ^ O$ >$-$ BD$BЉ$A$*E؉UE؉]E؉ME؉UE؉]gD$eD$$VE?E/E#E+E- E*E/EfEt&E&t&E|t&D$CD$C$}Z$u@$D$u[\$D$A$[D$C$=D$Z$,D$BD$BЉ$Y$D$AD$AЉ$Y$D$$蠦 D$ e D$D$$XS  CS AQ AQeD$ f D$D$$ SCS,D$D$ $\D$D$ $\A$U\$[t&$[$[$Qv$<a$L$7$-"$ E&;E$-D$SZEAECD$CЉ$"ZE$!D$ZEtEd$~D$YEDD$B$*D$XED$A$/D$tXED$C$%D$MXED$B$+D$&XED$A$-D$WED$C$D$WEZD$B$D$WE3D$A$D$WE D$C$D$cWED$B$D$D$VEID$A$&D$VE"D$C$^D$yVED$B$|D$RVED$ AD$A$?D$VED$C$D$UED$B$ D$UEXA$4D$EUE7CD$S$T$TED$$&UEC$:D$TEB$;D$TEA$<D$TEC$tD$TEqB$VD$UEPA$D$UE/CD$C$D$TEBD$B$!D$]TEAЉD$A$"D$5TEC$#D$$UEB$D$SD$A$+D$SEXC$D$TE7$D$%SEAD$A$=D$mSECD$C$>D$ESEBD$BЉ$%QEA$ED$REC$GD$sREeEUEIAE8E,CEEBEEEpEqt&Ert&Et& AD$AD$AЉD$AD$  D$AD$A$ ~N * ?t&{ CD$ CD$CЉD$$膠 &; BD$B$I] t& AD$AD$AЉD$ D$@D$P$肞wX &e D$j[ $=D$&O$3 $      BEEAЉECEBEzEnEE[EEHE8E f,E $ @PSE$F| f AD$$Ķt& B D$BD$BD$ CD$CЉD$C$蹔NE؋x78+@1ۉ@D$ $cu׋fZ$PtdD$MEEEEEE؋AE܋AEA EAEyEmCE\p 4p <}-p +B$Jp p 6-p $D$NED$C$NED$$IED$B$IEhD$A$IEGC$D$tIE&BD$B$TIE D$ D$$D$#VE D$ D$$D$UEH H E؉UAH rH H E؉]SBH @H H E؉M!CH D$B$F1D$A$D$PD$CD$C$PBD$BЉD$B$Pv&e$f~b1[ED$D$&$2 D$D$Df$  D$D$e$ 6$D$BIE#f uU$QtdD$IESEGD$D$d$e\$$E`D$D$d$8\$$`$D$HEU]ÍUWVS   9 ljU] ]t 4f t}M ڍ 9t ~4@ʃ@;}u]E   [^_]Í&' U]AQ      U S]9t2t  A A  []Ív'UUt0BBB@B; BB$Bt]Ít&]*v'  U]  Í  U]   Í  U]   Í  U]  Í  U]   Í  U]  Í  U]  Í U]  Í&U$&UWVS }=     <$  V@    }$(Ép F$C |$$CD0CD0FCCCCCCC C$] [^_]$8[!&'UD$  D$0aD$$$A'Uuu }}]w1ۉ؋u]}]Ðt&|7u|7uܸ(XtBFC {{CCCCC C$$댸ļ&벍t&UWVS u }FEtO~1:9uD33E$D$tC؃ [^_]ø_륐t&U1U:t <uD$$[É'U]] uu4$vۉF t)$%$m~V]u]Ív1썶U(VSu tAs FCt#EC$D$][^]Ít&Ѹ볐&UVSu=  ] v $HY  4$5  @  D$@   E[^]US ]t \$$[]f D$@$ Ǎt&U$6US]t5; t!Su []ʋC[] Ӄ[]Í&UVSӃ0 X eE1u_ u']T$D$ }D$D$$ t$\$$WEe3u.0[^]Ð$ X $hD$oW{t&U( ] u}U{w ; r,C u= 1Ƀ9]ȋu}]Ít&V  뼡 )кEEM;UMu{$YUS y Nt&S  C C D$C$Ct4)Us ҉5 S )C5 {uC ;C tG t= ~ EL$ \$D$$9ã   C5 tG 1ɋCU  S DC fЉC ]t' C$ C끡 $o v $A$T 0vUS  u9  B9Aˣ + Kt;t)t] P @ []á $vu5 l $Zv  됹릍U%*t tE u  *u名t&*t/vt tӃu$SÃ*u΍&'UWVS tg vD$L D$$Sv$ct&[^_]ødnut&޸e׋ tK  u   ? # 4=   }f t = ƍ& ڍ 9t ~4@@f u fu = M)ȉ   = !$  8/x* ]  CS C  X X D$D$ D$ $lq+ X  B$uB  B$ B; `.= =  E& 1ۉ G $  @  - -+ + $Av = = D$D$$"     DB<60$ 1Ҁ8$T$D$$躿  щ£   D >D, ,0& &| |~ ~! !? ?* *+ +- -/ /|% %h< <T= =@} },{ {) )( (: :; ; 1 s st tvY YbM MN :S S&G G, ,   N NO OP PQ Qo o_ _r` `^a aJW W6^ ^"Z Z[ [] ]f fh hT TU UV VY YnM MZ FS S2_ _` ` a aW W^ ^Z Z[ [] ]f f~g gjh hVT TBU U.V V $mn  $Qn  $2n  $n  Dg g $m ji $m iM  6        m  =  k kl l - -oE E[m mG 3 G G  ! !" "# #; ;< <= => >k\ \W8 8Cg g/9 9& && &+ +7 7: :5 56 6K K{I IgJ JSR R?4 4+H HL L( (* * F F? ?' ') )w@ @cA AOB B; '    C CD D3 3$ $% %s$ $_/ /K0 071 1#2 23 3p pq qr rE EE EG Gv<6     D$@$  D$D$$蟱   C$Qg 문른    $g   |(  = x=  UG    O= = ift = Eu0 9t/~@Eȡ $&@f=t" f]kщ=  ]MUWVSӃ,ED$D$$蠯E؋EU܀8 wu-t'Ct$$uE؋U܉CS ,[^_]$mU܉ÉpE؉S UCC E؉ T$${'\$<$D$[,[^_]D$D$T $˫\$$><UW1VS1ہ$c$ET$EEEE-Dž8=M+ +D +D +D @t~+tE0+BY+tŃ+u8M苃+8 +D +D + @D uE0E8EED$8|$4$D$ED$ ED$M)}U 4::B:B9Mv} D u9Mw;utgU 8-uxluxt$Ϫ$tM ËD$ D$D$D$$赭} ;uuDž<Dž@Dž0DžD09 tU MT$ $(u܍E= D$EU M D$ E0T$ $D$>?$(ut&wn$'&E0:E0:0} D$D$$R\$$2;fD$D$t $($ ; D$D$$/EU= }|$D$ E D$] $D$ <@uF t| u D [^_]D$ $?t7@@D$:$Et@9uuɉ4$ u D= tzfuLED$ $D$聤xE%=@< Y$ԧ5 4$HLgg8g:u*1:u!1Ȅu<:D$:$/tÃuHLD $D$ D$D$á $D$ D$( $蛥 %  y$ j $XH IH : + D  3D$D$$7P T  D$ D$D$$zL , $ ( t0 e V G],=  $:  谭 8   $:  t$S'$k$;' d      8  Q E @0 : 5  l D   %  D=   $5#$m v$T D$=$mEFp; ~ p+ $4C4D$ $D$4EDpD$D$<$ËEր8$t$WD$D$4$-}  n  _D N< ?< 0 D$ D$D$$ڤ\ ` % @ %  8  X   D$ D$D$$/ V G= = DžD#   ljo   p    $á $D$董D$ D$D$á $D$ D$ͣ $@ 6 $$ < ]  D$$l7ED$ D$ D$$藢 E8 D$D$$Ԟ\$$1 0 u FljщuC @t@$9 $XW@" $!  $4 w  D$ D$D$$r ƒ Т 8   e $c2S<k +Dž<1< 詀Dž< 09    8    D$$d  { D$D$$ɭY4 , 21۹t1uHÉ$L$轡 4 D D$$  $2 Y $' #lja  {@ l `=  = DžD< -\  @ ` \ ` t D$D$$\$$D$՘D$D$$$D$詘Džll+\D$KÀ+$clT1D$ D$ \D$)$0sǺtl{t$ XD$t$$ D$K$D$ؗD$t$$$ǃTTC8 CtӃ{tͅ#D$ D$cgD$)$S  .      X $4$  $%  ,  x @( b S ,# lj6މ  މ  މD$D$ $\$$*f $# $#  $7[w\ h D$ D$D$$>D /   , % X  <  ljP 4      @ ` QD$D$ $t$X)v& $ D$ܚ~㋕\D$$T$$葙ll+D$D$7$ٕ$D$虓 $ D$QuD$D$?$萕$D$Pt D$D$W$^\$$D$Ƌt$D$D$"b$Cuމ4$є$ %t D$D$n$\$$D$蟒 $$ ֒t D$D$ $蔔\$$D$P $$ 臒D$D$$KD$< $D$$藙vll+`h\$D$ D$ \D$/$諑DžX$XP<`XtYD$\$$荓D$"b$D$ED$\$$]$u|8hhF8` `tˋFtÃPPcgt] \$D$ D$cgD$/$荐DžX$ 1GTZ D$D$$蝣-  D$D$ $;\$$%"H L P T cJ މP D$D$T $豑|$$$D$D$$脑$h$8 މ D$D$< $&$ $D$D$l $$#lD$D$$Ԑ$# މD  \ D$D$ $p$T#$ $BI  1 $$I D$D$ $$" D$D$ $\$$"މD  bމ:D$D$ $o\$$O"$" 4 @D$D$$$"މuD  D$D$x $ǎ\$$!wUUtB]ÍE 1]Í&U$t$:t 1$t$]A:BuA:BuA1:BuD <*t :Dt뻍vUSÃB0uEL$T$$D$ S []ÍUE@] UWVS}t& @E9Et&SsLt*rt#ED$ T$D$4 $ׅtE3pu][uE@UButP]쐋SsLt*rt#ML$ T$D$4 $ׅtE3pu][uUE …1E[^_]étd]tɋ]SsLt*rt#ML$ T$D$4 $ׅtE3p u CLu][ultwMɍt&V]썴&SsLt*rt#ML$ T$D$4 $ׅtUB1Ɓt CNtu][uue]SsLt*rt#ML$ T$D$4 $ׅtE3pu][uE]ۍvvSsLt*rt#ML$ T$D$4 $ׅtE3pu][u%} 8MU E [^_]Ít&'UEUM @0u.BD@t]ÍBE M U|]፴&BE M]`v'Utt& Bu]ÐU$t$Ep(X$E H(P$9ws$t$]Í&9r9θwvs$1t$]Ð9wv'U]Ít&'UVS utÉ$֋C(u[^]Ðt&UVS utÉ$֋C$u[^]Ðt& Ut E t]ËE]  Í&Uɉx19v  u0]Í& UtvAQ A AQIu桰 t `T@u4 Hlt'A,Q0A,A0A4Q8I u]Í'UEU@tJ@]Í& UU ttE  ]á uE  t&UE] ÍvUEt.  PtFuPu ]ÍvUE] ÍvUME QEA]Ív' UUM S]tEu tt []Åtʉ tډ  U]  ÐUS ]t‹u[]D$$@ UD$<$ʋUP U @8@0PÍv'UE @D$E@$&ɅÐ&Uu]Ӊ}Džtt1]u}]Ã{wC$<SʋCtD$4$襋뭋C4$D$茋tɋ[ 뉋CtD$4$pu[aS =uS/HS 獶'UE D$E$ ɅÍUWVSE@ }MA SuMQt=] E Hq@ E tM A8EXtCSt5:*tZK t tED$D$$tu;}t<$E;ut4$8[^_]ÀzuԋE@ MA E@ KUED$uB$׆u(C <{Ct$$脉tED$$ĤUD$$袤aYU MED$$M8u$C < CU$T$tED$A}$ut&C|$$蛈C <ua U$袆 U P @fUVS uu tCt$$u[^]$A4$S;C  [^]ÍUWVS } $ ۉƋEu +t&t C|$$菇u^ [^_]D$D$@$ҁ|$$ [^_]Ð&US ]t$D$D$iI$腁$i H1XX  []Í&'UVSMEU ɍp(up$tBӃA<7w $<D$D$H@$$Cu[^]Ã߃ v׃҉'UX}׋U u΋OEԋE]ŰWM܉EȋGU؋W 9r M؋]);_w;OvzMGW3E1 tvUԋ7BD$D$h@$E#MU؉t$\$L$ M܉T$$L$GW GW]u}]ÐM Mu}v9E_&9MԋAD$D$@$EEUM\$ T$L$$_pv'UWVS,Eۉt#1B zu F uuEX,[^_]Í D$ D$@D$*$LUu:FEEtw_7ۉuD$|$UB$ʄtmG փEfF :Et[tCW$T$t֋>}uuUuB,[^_]ËE}8ӋU8}:lj<$}뽍'UWVS,EU MEUME8uD5 D$D$@$}$UU,[^_]u} tWC8u 붋tGCM$L$uD$D$A$i}UT$$FuE EMy  ҉UUB _|$$u^tXCwD$4$juBW C 8uD$D$@A$|t$$ufEEe ?JMq҉U&UBJVJt$$~u cvtZC~D$<$蜁uDV C 8uD$D$@A${|$$ut&EE` 6>EMA,EA8C  Aк t‹uE,[^_]ËOMY$CwD$4$uW C 8u΋EEx~-MYC~D$<$auV C 8tuҋEEQD$D$@A$z|$$d D$D$@A$Zzt$$: 2MAEcg-  UE@E]&'UWVSE Uu]EU$}ۉlj0tQ` @EUWtD$*jE${G G }[^_]fEg G$z$'}ƋE1Eu6f?t;*t6[vt.<\ẗSE׉4$xE&D$IU$zuG G }[^_] D$IE$zuG G D$D$xA$hxUT$$E Etuv4$wx&'U1҉VS uEIEID$ D$ID$D$u։$ [^]Í&U t&D$$Im E E  á uѡ uڍ&USÃP t4t'Ct@w&t&uCuڃ[]Ít& t݃u ڋCtы P t4t&tP t fsH u@ Րt&u@ t&D$D $Ij []Ít&UVSӃt'$փ{w%Cf$=Suك[^]fD$T$I ۋ ̋S뿍&'U E]n&'U(]uD$D$ D$E D$ $rtj{ v ]u]fEC D$4 $rt`  V0@, t1FV CSC` ]u]D$D$A$0u$mCC뵍&'USD$D$ D$E D$ $rtD{ v[]ËEC D$4 $qt?P @SCC` []D$D$A$kt$OCC뽍'UWVS,EEUMxIIEIE ؄9t$M9t 9u琍t&6UB$D$ yuqUBt7t-Pt&tqD$T$$wu0EUD$ET$UD$ E$D$U ,[^_]Í&1Y&T$$vx땀=I ؄t҉U9Uu9Mt9U99uޅUD$BD$$v‰D$$$p{D$I$vdt&UWVS E} p$GXlu Bf[ t9F_tEى4$D$ED$E~[ u΍& [^_]Ð&UWVS,U B@lEExt&_UIUtZ I8I҈Ut29%9 9t{9twuU$T$}vuEUM<$D$ET$U ~?DE@ E ,[^_]D$I$?utED$$D$t녍=IuT9ЉEtH9tAM9t99Ut9ft9tuD$$mleUE D$T$UD$ ET$$UE@ E6t&UWVS] t"tB\$$t5 ]IIEIE^ ؄th9tMtM9t9ut;D$ED$F$Asu3t&6f1[^_]Ë^E$D$>ttу[^_]Ít&=Iuu^ ؄t҉U9Un}9bM%&t9U?979u.‰D$F$ lD$IF$rv'U]]uu$&uCDt ]u]ÐCufT]u]ÍUS˃$ML$ D$@REET$@$sEE$[]Ív'UWVS<}]ًG$W(E̋G,UЋW0EԋE U؋U|MɉEt%ED$ UT$E <$D$U<[^_]ËUЉًE @U҉EU BXlu,΍vED$UT$Eԉ$U ى`[ t;]tf;]t>Uԋ3BuU؋BtʋED$UT$E먍&UىT$ED$UЉ$U 뎋ED$UT$EiUT$ ED$U <$T$[<[^_]ÍvUWVS<}MG$W(EԋG,U؋UԉE܋E $]ۉEU BXlu0t&EUD$E؉T$U ى$@[ tl;]t7U؋3BuU܋BtЋEUD$E܉T$뮋EUD$EԉT$뛋UE<$T$ U D$T$m<[^_]Ðt&UWVS,EUM@$z(E‹E ;ƋEu}U BXlu Cv[ t99t=G+tUىT$E<$D$U EI[ uf,[^_]ËEىD$UT$E$U E땋ED$ UT$E D$U$,[^_]Í'U8}}Muu ]_$\Uu-tU$T$UT$]u}]ËEUt$<$D$ T$׍U D$ $xm vu1t tD$@ $IÐt&USD$ D$D$ D$$Tft,K uC C \$$g[]D$D$A$h$뮐&US t[]á ;T u u RfC$tIxÍvu@1t$pCtD$$dtŋC@t뗍&T []Ðt&UWVS}EBMtD$$yduME}[^_]D$t<$ME\$F$huӃ[^_]Ít&'U]Ӊutpv9tUu3AH+BHua$D$l]u]ÍtD$?D$K$I?$D$luFH+CH]u]Ít&'UWVS u4$,t [^_]$ j]4@@0E@ u7E t M A u&t X@u; [^_]Í&t䐍t&M A x݋u;뿍&'USÃuUu@u+ ut $L[]$\ $f$^[ f$Jff뛍&'UWVS|}eE1U  t ]e3g|[^_]ÍvO_M 4 ]Gɋ]t;r@u5 E@,Q0E1U1 EU t1u]!ƋEs,!ЉC0E;CH!UG WMA,Q0GWMEUA,AQ0A@   "G$2$KÉD$0$e$"dt&~$WK}w|]D$ ID$2D$\$]$Kh\$$K$e puM$JD$-CHM]EUD$ I1ɉD$T$D$2D$$gq1D$D$I$Sc$D$D$A$/c$ e Uuu]F v]u]Í&E 9Fu1ۍHuNFVA<Q@IDAQ $ID$T$GF$ID$4fUWVS,W0@,UE$KD$$WcX &~WDt;4 m  EEUM싇  D$UE t1҉D$ T$M]$ JL$\$TO4_8UE11 t uGDt;4 tZ,[^_]û#u_4w8D$D$J$0a\$t$$1ۍv @Wpt$Bt|$$[u  UE t1҉UUEMUM]M  ,[^_]ËJZ G uv[$SMԉNjA$OJ:u$J:BuJ:Bu J:Bt2|$t$$Vu>t<.u|>au|>vU؋EԋRǀUԋE1E@1Pt$Mԉ $RD$$ENtE D$#t$$ pFD$ 4$\tFU؋RU뎋E؋XD$D$C$ZQt$\$$6ED$D$C$%Qt$$UERUM؋IMMUA1҃ ЈA1EU؋ZD$D$mJ$P\$$M؋YD$D$J$xP\$$XUtӉD$$"b=Cu$J'EfD$?D$ $I/ UWVS,EUMEE Et<wIG$> 9sЉ1EU?uċEU,[^_]Ðt&D$?$IL?uыEUM$ T$UW?EUh뢐t&G1ҋ  ?EUD{GUM$UL$M?EUKG:GT0Xp O(G]u$t$WB%=  B,R0 t1ҋ?EUt&UED$BD$G$?kt&GGfx  P0@, t1ҋ?EU!XGE? CED$D$` G $&5    AQ GWG-wf$@>ED$D$` G$ tW  GW G $O  1ҋ?EUND$?D$$I,D$D$C$L$D$D$J$L$"t& 'U1ɉ  $D$ RUX}lj]uŰXw$T>D$D$J$L\$ D$D$@ $(ID$:$I]u}]; p@$KD$qFV G $Lf~F,V0D$ T$FV $KD$T$ G0tHD$KD$$,D$D$K$ÉK\$t$$gG;1ۃsuWzB8.xZ ED$ M̋A$D$ ?  5 tXp \$t$$KEt  5 $KG$]u}]@(D$ D$LD$@ $GXD$D$K$I\$$wG =W GD$$KGG $9j 0wF KFtH$KD$FXt &$"bD$[u$KFMD$$KF t$K6d$^ }(GŰ]u}]@]u}]$4KA@ D$ D$$LKD$ [JG0t/XD$ZKD$D$ @ $XEuԡ@ $ D$J%`1ۃuG_w tXp G-$>!$Kp8uGWO UMt PH UMOD$L$ EU$KD$T$G0t/XD$ZKD$D$ @ $\Du  1ҋGEUMU  @ D$ D$$LD$ HGU$@ D$ D$$LD$ H@D$KD$D$ @ $C@$KD$ tD$$"b$JT1ۃuG(W,E؋G$U܅t PH UM܋G 1$HËG @ \$ t$D$E؋U$oKD$T$GD$$KkG$   t1]u܉ 5 D$t$I,w i $JU̡ pEgEGWL$D$T$EЋUԉ\$t$D$ T$$_KG xt]G $B-  UԋE t1҉E]ЉUԋUuԋMԉ  gEEYgEEAgEE)gEE$^ *$JvZ 1oE4E#D$@D$v$I$3j g$JVb$JE$^ 4$K#$KZED$D$ D$G@D$ $S@tV P@tAQ D$T$$KG$3j :,15$Kiit&UVStv؉7u[^]Í'UWVS @ } ]E @ x9t%1y 9t uE@  [^_]Ë evUWVSeE1 1F@D@ urF0ulXlucF[ ېtTCDt;4 tuD$fD$&L$yAD$D$@ $>띋F$tƐsD$D$BL$3A$D$D$ZL$AD$D$eL$@D$D$lL$@D$D$sL$@t$|$\$D$xLD$D$ @ $=5 }vD$LD$D$ @ $=V FD$ ID$dD$D$1҉D$<$_D|$$L! t€u҉˃)XuFV$KD$T$iF$F(t$LKF(SvD$D$D$[?D$D$@ $r< @t=  Ee3Č[^_]F$ZD$D$ ĨD$D$$` = t"$D$D$0k<uޡ D$D$k$;I@'UVS 0 ]+, 9V؋( , 9أ, t\8 Ή, !¡$ , ))9~ , , ( [^]É\$$ = 0 뒐t& H 뛍&US$MECE D$LD$$IJ CEC ECECEC t‹u[]Ít&'U= ]] uu}ljUMtt x |tz t`$‹EB BEtZMJE+Xp Zr MJȋM1A,Q0]u}]ÍvM9JučE9Gxt&E 띐t&U]uu$á  4$>4 ҉Ct]u]v]u]ÍU8]ˉu}pEUt]u}]Ðt&@ Eu串LU4 T$$8MAUB@DB@<@@ @tt]C,t>uF0t/}WDtGPHMQ4 ]uJD$ CT$t$D$ $$@MQBpeD$D$4D$:D$L$E@E\$AD$4 $4=]C4 [@D$D$XD$Ej:}\$|$$C&'USÃ{w%C$>-:wC$u3[]Í[ċC[ 뷋CC [뢋Puƃ1[1]t&Uuu ]$5NpɉtD$$IX^p[]u]Ð&U(}}]uG v]u}]ÐWBpXƅp E+l ~dl  h 9ȣl tox ]l !¡d l ))9l 9h FAFeEl D$$` n8p ]z 눉FVD$T$$Gpp3&UWVS1ۃ }u tW u U[tNU$T$=ut+D$D$D$7}|$$ [^_]Å$0V}<$CCC CC CCC CC$C(C,  [^_]Ëu f gD$D$D$!7UT$$7'U(]]EE u։}}ME$D$}ÄۉEtt`D$M $XUtEu ]u}]D$D$D$s6]u}E]Ku fuUE뚍'U1ɉWVS}EUL$MD$ $M X $+D$ D$D$j[ $=D$h5 C41v4$Z5ۉtiUVB(EB EB$tuEtB8twE t$9VR8ljP4$4ut<$;   [^_]Ðt&EB0냋ViEB8끋EB(V'U1ɉS {,S$C L$1Ƀ{0L$M $M E   B(EB8[]ÍvUWVSPE |E؋EE܋PPx@$>G`PBt 8PYD$D$E$3\$$PP[F`X`CS OG$GPW(W S0HC,Q0A,t&Pt8PPփx0D$Z$IPuȋE؋U܁[^_]ËPUG|HE+AQ GW 끋P]uPB}\$|t$ ]؃u܉<$\$t$RE؉U7UE؋P]T$U܉D$u \$ T$|4$ E؉UPA,t~E؀aTD$D$` A,$薧 u:= t1P^D$D$8E$2\$$   AQ E؉U܋P`O4 @@U؋M܁`` UЉM} Pq,@ PEЋUԋwDEUUM1LH1 HL t1HL!ËE!֋U]Љu11 ], u PG,tS= tJPXD$D$DF$0U+U\$T$$PR``]ЋuԀOP_$w(_Bw @<@@Pu}PCt$uԋ]Љ|$ t$P\$V($~NT` `FT` PA]ĉˋQ w<1I,[0E؃U܃uމMĉ} t1M؋]`ك!M!+FV  t1F,V0P[ ۉ]e PF0<D$KD$$ ~`G$W(PNT`` FT}`G%=Gt5G, G0uW O(G3G$1 u ]C tPF$B`  S0C, t1EU܋PV4tE؉D$D$` $诣P_ wF%=E؋U܉CESIPp$;p X  S0C, t1C$S(FEVSC$1ɋS($PT$2fu܍E]؋|u䋵P]^D$G$D$ϢC|BT; E؋U܋]uEȋEȉŰU11 tr  +]u t1ۋM̋UȉL$|T$UAى$PP|FLPsF]uH]؉u1|A |PGJBM|E؋U܋O+AQ PAQ GAE؉D$D$` A $萡PC-RD$?D$$I|E؋U܋O+AQ PQ,A(GA$A $o.  ىE؋GUX,H03PuUPC}t$]؋u܃$||$ \$t$E؉U}Xt:EJD$ D$ \$$PMlM܋U؉M|UI(M@EË@0t/|]HS C+AQ Cut&sED$I4$t&t̀}}]v:EM19t2u&<*|E^E؅f}\uЋ6uzeEE= =F=t&uF 2uċ^EEEE} Ii=IcC9Ut9Ut9uuEċXtwUÉUU}ta I=IgCt79Utt 9Ut9utM̋uĉ\$M̋ul[^_]À=I9E}9M99U99upEÉ4$D$}u\g}9XM9L1992u4$y=LM9M}9M91!v9E$9f92u4j :AU IteI҈Uus9t9t9u/f;D$L4$tD$ $i=Iq9t9t]!L9w9o9uۉȐ뙋 8E@@ EE@ 9T=IjCtU9UU9;Mu't&9U9fx9pu؋M̋uĉ\$MY=IC9UU9;Mu9z9ѐt&ms9UuREÉD$C$EÉD$C$"D$I $S%=-=MA 7D$IC$D$IC$CEЉu@EU}RUIUu9z1 9tM uMC19u 59tE uuЀ<99v؋u9} EE4UUUB 9MA :IU}U9J9B1 9t9tM uUX9M19uA99E uvM $u4$ 0=I}ÉUU999Etz1ۋM t9t 9t9EuU9t9t{1;EttMC9890;EuՍv#11f렋uD$I4$D$IËE$MM11'U   U PÍv'U U}LE ]urX8t t't"u#E HDt,t&]u}]Ív tًM YDuAD` ؋UށBPMQEPZ؃B u fM NU MPABD ut:EHYډ%9YEH qtU E @uaU BtIU BH;AHvAHM $%E @@UBH@B<UM Bǁ҉tytTU ; މq#vށUށHU ED މqUM BPUWVS,E$|UR vUru|&6k~fuE@ UBk]@EEFNXE\$U$ulE Et8E܅v/E؅\$E$TGu1t&E 5U B 'NU]$|ED$U$T$#EtD8tD$$IU]B9t9uE0E,[^_]ËE tE @ uED$UT$E$,[^_]ËEE@E_E_UE؋RUD$$IQRU]ӉuΉ}RDžtt$D$G$St $]u}]Ðt&UWVSMUt> 4K0 s,K0}w'E$ ?$4?@D$$IZS0s1C  CCC( ˆS0 C$ ˆS0H  ‰S0D  ЃC1C(D$\$$ '[^_]ÀK1K0{D$|$$L8S0s1C S0-C1{ʉƃC1{ S0 {{ C1 ʃƈC1S0C1{C1ʃ{ƈC1{ S0C1ʃ{ƈC1{ S0'UVS t Ë@ tt$$l t"C(u T $C1<t [^]1҉e!v'UWVS,U~wzF$8?F1tj F,}؅t&F1<uD$F$tf1]$$xډ۰u  ]t UE6v,[^_]ËFUM6Yᐋ^tIFU6$묋F6 똡 vX F 9X u6g&Uء 6D ItSI҈UulV99v9t"9tuD$$FU$=IuKҐ9ЉEtD9t=M9t59Ut9t9tuD$I$낉{fUWVSpUMSI IiI҈U=ItX9ЉEF9;M9/"t&9U9f9zu؉qtU$M‰;[^_]t99 9t 9tuD$I4$t u 랋C$tD$Ë@4$D$=u܋Eډ$M裚ȡ YfEډ$M~C$u[^_]D$4$rqjfUSÃuCu Ct&t,Ct*fvރ t݃uޡ uԃ[]1ɺ`븐&UVSu+t+t<ftC uCFTu[^]f FTu[^]É7lFTu΍t&UWVSÃUMtW{wKC$x?CH-pw,KTڋCHCT{HqCHu[^_]ËMtEPCzύvCt@uC$ǪƋ@C F,?딋C$t x bM@h aCESUBtLƉaEEu!C MUAL%BɃtB HSU}Mq1ɋE1CMU1S4MC4r11U 11҉'UWVS tVT $D 萈} tCDu T 1ң     ?|n Eu,5,  $'}$}U@ R|D$4 $D$Px t-t|4 NPA;Bt|GDx|@tn=, 1ۅF4 PD$| $% , %}$}-8 . EED$LUB$EX,p0]$\$t$D$ D$D$uljt$UB$]9s=t&|$D$ D$M $聂E<$D$x9rNjuN}G$2D$ D$D$3j $+D$E$uD$D$8 $}^ t uZtTD$D$ D$CD$ $tȋ@ wB=` tH@u t1 t(@PltB uBR uA$u K  uJ 4 E]졠 \$D$@?$UEEyڡ j 11< t\llBXlu 7[ t0CDulA0f{CD` [ uЋlB$u ! ux$(= EE 1 E{HK8ɉMfsu%fMCUFM6FW$T$OuE9EweED$U$E뢡, r4 $| $D$D$TG$N\$ |t$|$$ $3D$D$G$t$$N4 C0G8D$D$F$\$t$ ||$T$$葋{PtCt@t u[XG1ۅt"D$ LD$D$$lËG11Ʌt$D$ LD$D$$lщ‹ED$(ED$$GD$ G T$L$D$1\$ D$1D$GD$4 $2?U$i ɉMu~HN~8lul ɉltplPuPMljUtȋEXD$D$0H$U\$T$$둋[uąvuvuC1= $D$ tm=  t;1]E xmD$$Eu؃ 9uީImD$$Pt u4 xl袩]t u <   [  D$D$ D$D$ $t@ !ED$ D$$щ‹E8 D$4 $Eit}M܋E HUr UB 9t8;Jt3qY ^ jsBQ AJFH A MA EtkQMEU܋B;EEHM؋@IBBtPBM؋UBE<[^_]$D$gEHEtE죰 +u F $Dá4 @@U <؃D$ 6MT$D$D$$vD$j[ $f\$$=D$e$RE <[^_]ÉǃAY ]4 X DCA Bp ABpH JpnE9 t"‹@9tU B 4 UlB u tF91zw6Juhutti1WJMtMUEEB4 Hl4 pp4 Xlt1֋r묋JytI9.uyuxt&AJlBp4 ZlRzHtBtRu&U$ ÍUD$D$ ĨD$D$$   D$ =D$dD$pK$  $Z$ Z$ Z$ ZD$D$$ $@M: @` D$ D$D$K$ tÍt&D$D$B$$zD$D$B$$zUWVSUUFMtE GMHMM99u㐋E$iU<$+]ơ FC$U\$T$$5 ?tGEGA[^_]À=IMuUM9t9t9tW9u‰D$E$~A+UD$FM$ܐUE] ÍvUE] ÍvUWVS MtC<$D$uJu$UP xEBBE BEB [^_]É뙉'U1ɉE UD$$D$, UÍvU1ɉE UD$$D$( %ÍvU1ɉU D$D$$fU1ɉU D$D$$fU M UD$D$$ÐUE D$E$=D$`_EW&U(5j]]u}:u6j:CNMt7XMuWD$ D$D$$]M}\$D$ D$D$$SMW\]u}]D$D$gM$\$$vD$ D$D$$IM[룍v'UED$$ZÐt&UHU eE1uu]t51ɸ$ D$D$4$Ee3u^]u]ËE]D$ 4eD$D$D$$D$uD$MD$ $MuUUED$D$ $ÍvUWVS, X5 tU  X5 = RN  VD$D$$65 U := t%fCV$T$uCu݋6uυ( Et"wCt$$@uCEu, Et"wCt$$ uCEu tED$D$D$ED$ 1D$ D$G$蝉 $WP@@ D$D$$u$ u`tZCW$T$Eu$uSP@@ D$D$$uD$ D$D$ f$腫?l ,[^_]ËF 6C = FS$T$tʋuG vt5 x5 = t@uD$j[ $e[뵐UWVS<50  0  $   URQ= GEG@ $GD$4 $KEE$EEtU)iGpE$fD$D$M$t$\$$qEET$$Y$D$[D$j[ $=D$Y$D$j[ $ZD$G@$=D$X$W D$$YD$E$w@ tbEG@$KD$upG@$$b~F D$$J4pF=` tH@ t}VF T$$XUD$FD$ FT$D$G$6:$D$XU$D$?Eܣ <[^_]ËF VD$T$F$WD$E$D$D$VN$$OoE`1FV ND$T$ L$$tND$ o xG@tG$D$_EGpG$E؋G@@D$D$M$U؉t$ \$T$$n}E}U1zE= G1t&u$ËGtDuD$ 0D$t$$GFEԋM1~T9ΉuE$?VaG@EG$bá4 @0D$D$M$U\$t$T$ $_msE&'UWVSÃ8_u;_tZ t [^_]ÍSC:BuBUMT$ L$ML$U$T$i u ,[^_]D$D$N$$h ,[^_]Ðt&UWVS]= D$$+r$UD$ D$ $H$d$E<$Eduf<$ @utc1E;usz<$% @uuԋE0D$ D$ D$$2u ucE$` [^_]eED$E$EiD$D$pO$U$9gD$D$O$,$gt$\$$Wf[^_]D$D$O$$fD$D$DO$$ft&US ]tV D$ D$\$$t[]fD$D$O$HE[]'f$D$ =D$ D$ $qD$D$pO$$eHt&US ]tV D$ D$\$$t[]fD$D$O$xE[]We$/D$ =D$ D$ $ qD$D$pO$$dHt&U8]] UMuEۋu}}UM@@t'@(tU $BXT$D$]D$D$.X$U $LXT$ D$ED$\KD$D$R$UT$$\FD$D$R$UT$$t\ UWVS,MEU 9EUMt,[^_]Í&T$$t؉$t&UEB D$ ML$ED$U$E<9sC0t= &3t,ttM@Q$T$=t9w΋EE,[^_]PMYD$D$.X$n\$D$FVD$ T$ED$U$8XT$*[MD$D$S$UT$$ZD$D$S$ML$$Z U(] uu}} uf  u]u}]Ðt&EU t$|$D$ E$D$D$'E P u@ U EB뤋E XD$D$$S$\$$Yg&U(EU]Mu](E }u,U}U$BtD$($WtZD$D$PS$U T$U $T$bYt(D$D$VX$V|$$6Y]u}]Ít&jAwdtD$2$WYD$D$S$U T$U $T$XtD$D$sX]t#D$:$WiY9url9]9ufvOD$D$|T$fU T$U $T$YtuпEYtuпLYtuпSYtuпZY_uпaYJuпiY 5uпsY uп{Y  uпYE܉EXcgM $D=uFD$$p;T 9F D$$` \  _h d  0p l  F9  M  =0 t$D$D$V$ܺ$M54 t$D$D$,V$论$M %t   t D$YD$X$nP4$ 9 0d  D$D$Y$$N$XVM $ 褽á $U $M D$ D$$D$ vuϡ $$=$XV}M D5\ v(7< t,] :D$\ $賷@ {= 4 `D @ tv ( t@ $a t5Z u  4 ${ u $ D  $D$D$U$4$K y=0 8t D$YD$X$lt 4$蚷Y{t D$/$誶])؉Í@$c\$ơt 4$D$艵u/../Clib4$D$D$ Y$($ J'= D$D$Y$$I5\ D$D$Y$迶ut$$JZ=    4 HDn] :B& @ 4L j$UI cg5D$T T$$;$T$*D$T T$$P$Eg=t D$D$LW$+]蠵C|$ D$D$ )i@BT$$)ˉ\$萲t D$D$UZ$>m U\$ D$D$ T$$C4 D$D$Y$\$$GREY$hUG $е~4\D$Z$腶D$Z$m$9EF$+E D$E$U$YE.exe@ D$$觲MD$\  $蒲@#Mt$ D$D$ $豸M|$ \$D$ $謵9tD$D$Z$茳UT$$iFD$D$U$_$CFCE$1$KGD$D$Y$$"G 7E$1U$eI 6 4$c<$[tlE$kU$`($O< D$D$V$m\$$MEF $aD$D$8Z$.ut$$ EdD$D$8U$D$X$D$R\ uT$=D$D$W  D$D$V$薱\$$vD D$D$V$c\$$CDy&'UXEU ]]uuE̋EUeU1҉}}E  u$Ue3]u}]f4 D$$F@U݉ЋM __CT@OR_L@IST_f@ _D$D$ D$T$C $藭C u C sUċE|$D$T$ỦD$$T$ D$D$$S$|$$B__DT@OR_L@IST_f@ _DEݍUݍEt)D$D$pW$蓯$wBD$4$趮D$D$A$P$4B辱UWVS$ܫ$08=L 4 HlPtEɉUMzu܋EE^v ]uE']1ɋUEECUEE t AEEEEUЅL M9Ms(MM9vEUEU;T \uعZ$ TZ:uZ:BE܋E$ޮXƉ$聱E\$U$T$蛮tA]MD3 {F _FuuF@ED$]\$u4$D$4$E \$D$D$ D$$[E$胬CCUC SM؋uABAQ FFV QF,F0 ЈFM؉vDFPFTA$Q(F$A+O F ۋpu Ðt&tCt$$ϦuCS C    t  NF VA<Q@ID $1FF= 1    F $[D$3 NFV $V:.1F _ |$F$D  G GW G~Fs     =;5=&t&=t&D$~$[V3Fy= =m-t&~&!D$ $[2F q   u?v     %v F$6D@T@11҉$1zt$D$D$d\$F$*1 Bu= `      JD$D$ D$T$ $@ 6t&$=Ek%=< ҐF$B@Tp0K@P(@$]u}]   EUF   =` t` 6= `  9 rSK UM=4/**  % &&x D$$[0=9=V=#t& t= `   _5  B 3=4=: 4 $iËF$(A @T@\$L$ P0@,T$$DX&=G;=t^[ T $HD$F$bdP @ I11҃4 PD$ $H            $T$  ]u}]W==|=D =t&pEU3 3     =` ]u}];6  M11 Mt     D$D$ D$FD$ $K^D$D$L]$\$$+ .F8.u xD$D$D$ D$D$ 4 $ahH A= w= iZB B ;P T$$–wD$F$_P@ F$+EU  8  $T$    =" ==!t& t= `  `f^1<>t&pM1Ҹ; wr M; w11ң  &^D$D$]$u\$$U(   A= D$D$[$&$ (F$::s EU t1  I h   5 X p M9ΉUw|r9sv=` toD$D$ ]$|\$ t$U؋M܉T$L$$J'[T $W11  5 pxD$T$ EU$T$0M  N^D$D$]$œ\$$&|= f@M1Ҹ Mu   1  =K= UE t1ң  ==}=>U; qrM; `EU䣈  J+-p )U MEU䣈   t. t& M1Ҹ; wr M; s11ң  ^D$D$]$ \$$$fME1 1 O]U  E% < = D$D$ ^$藑\$$w$J` :YDBBRA<Q@1ɉ$r B  D$D$A$$#PEU! ! 9uEU    = EU䣈  =  11=D$D$\$N$2#EU  = ^D$D$l]$\$$"W   uo= 9D$D$[$賏$"fE; wU; EU䣈  D$T$ UM$L$/J    $T$EU  M1Ҹ; rw M; v11ң  MUM   6M1Ҹ; rw M; r11ң  EU3 3          ttt $UM5 = $L$  EU죈  M]䡜  !!ډM]=        E U 5 =     BR9}t&w 9uEU)  !!EU죈  I    .  = 5 ЃUЉʃ!!Mԉ EЋUԋMЋ]ك!!ڣ  +    fU]    `  USE]tC uIt1= t(D$D$X^$輋\$$E []Љá   PH  Љ []Ít&'UE]] uu}}tC uFt1= t(D$D$X^$|$$؉]u}]Ë 5  UED$ E D$‹ET$$HÍUS]EK [ U ]  o U(E]] uu}tZ t[ t$Iu{$ PʉPPH؋u]}]Åt= tD$D$X^$趉t$$뺍XC$h ljE1f QЃ vQɃu1uЋ]^&UWVS1ۃ.t 94^uu{-v\~f2@ 4$D$ыt@ $ D$踋[^_]á@ t$ D$[D$$뼡@ D$^$뢡@ $ D$^kt&US]@ t={ wC$^t&D$$[ []Í @ 뷡@ $(D$C$C $m@ $)D$謊[]ËCtD$$ \uC SD$T$ C$ \D$RQ@ D$D$$#\D$ lC$C D$,\D$D$ @ $m@ D$C$d[ = 1CD$ @ D$2\D$$1~Cw@ D$D$$8j D$ 蒈CC$@ $?D$:C $@ $:D$[CS $jKD$T$CD$\D$D$ @ $/@ D$C$&E[[]U$>GUPU !@P ÍvU$GU P U=@PUPÍ'U$FUU@P U PÍt&U$]] uuFUb@ PX p]u] U$]]uu BFUXp P@]u] U$]]uu EXp @@]u]Í&'U(EEEE EE t  T$$nɉ‰$ lE‹EEBEBÐt&U(EEEE EEEEY t  T$$ɉ‰f$D‹EEBEBEB Í&U(EEEEEE EEEE t  T$$sɉ‰$qD‹EEBEBEB EBÍ&'U(EEEE EEO t  T$$ɉ‰$ C‹EEBEBÐH U]HfH U]HfH U]H fH U]vH U]HfH U]HfH U]H fH U]HfH U]H0fH UH@t]]ÍH UH4t]]ÍH U]H$fU$t$H H8t $t$]$1t$]Í&'H UH.u v;.tD$$tn)]u [^_]É$ |EE$~ËEt$$D${UU|$$T${<$bz[^_]Éu[^_]u3t&UWVSt&Uuu]}F0@ut ~GD@u0t F@D@u]1u}]Ít&\$$8JfD$D$4 $L|$$릍US]D$D$h $nL$D$D$ID$D$ $>L$D$D$ZID$D$ $L$D$D$*ID$D$ $K$D$D$HD$D$, $K$D$D$HD$D$h $~K$D$D$HD$D$ $NK$D$D$jHD$D$ $K$D$D$:HD$D$ $J$D$D$ HD$D$` $J$D$D$GD$D$ $J$D$D$GD$D$ $^J$D$D$zGD$D$ $.J$D$D$JGD$D$@ $I$D$D$GD$D$ $I$D$D$FD$D$ $I$D$D$FD$D$ $nI$D$D$FD$D$ $>I$D$D$ZFD$D$T $I$D$D$*FD$D$ $H$D$D$ED$D$ $H$D$D$ED$D$ $~H$D$D$ED$D$, $NH$D$D$jED$D$ $H$D$D$:ED$D$ $G$D$D$ ED$D$ $G$D$D$DD$D$ $G$D$D$D[]UWVSLUE@xEt @E܋M MС %=*H YE uG = s1Ƌt$‰Ft @LuFBL r  % = MM1EIMuzUС4 T$$Ct'D$ 4 MЉ$L$KE5D$D$Ẻ\$D$ UЉT$M $~WL[^_]Ð˃}؅uи u|EX E̋XGŰ?$\M̉AM̋YȃD$ġD$E$輷 &}tEE( wEEp cEE Ru؅}} EE "E t&E@E؅}=} El EM $EEЉ$/PtBur\$ED$C$!6L[^_]Ëuпu   D$U$T$5$T ML$ T$D$4 $@MSA3BKuпg Uо] zatl uE] U xaME@MEEEE@UEUȋBt @tMȉMUȋBUEȋEȃxHt͋Xg uMԍSCu\1UD$B$F&U} ]uD$ 4 $<4 Bxt@u$D$D$ $d@$H]u}]& u ɋ(,tvD$ $CtT4 ,(11 d_ƶD$$"ͽ8$$t @T끍UWVS1ۃ $@t&<:u $s@SЍT21$CE D$E$@E$=@E7t:t7uE [^_]:X $D$u@$?믐t&UWVSL x$I$i I D$ T$D$ED$4 D$0 D$  D$4 $~A t]tCt$K?C0C, u<G$1D$D$.X$=G0uD$ G$:Et‹@,R04$E؉U>EE؉EЃ$kAt$Eȉ$,?E؋UD$ D$D$ẺT$UEȉT$D$G$B:EЋUD$D$D$GD$T$$ D$ Pt`Eȉ$B$ =:fUSÃ{wC$ &[]ËC[ ֹSj[ :u k[ :Bt܋CL$ T$D$ D$4 $.?uC$ D$1륋[nCf[C S[Tt&'UExt]f@]'&UWVSl$UED$9EU1$>EEuC$ $‰ÍE"t6$*0EЅtËEЉ$0  :$/ D$D$B $ɍE뗐t&U@ uu]}t@$/ttNtmFtf@ t $/uP ^x$|$/5t/F0uAF$0t @$D$5u5@ ]u}]Ðt&D$/$D.t|$$4t떍&U]@ uu}t]u}]Ít&Ft$.u܍ED$F$O0U E3 1  XD$/$,uD$X $0EoF$/5 E^<$)؉D$\$21|$ F\$$ D$M]< 8 11 N D5@ F$ D$F$*[UWVS 5H ]u Ct@D@u [^_]É$.tuD uދt؋s<$t$2tD$/4$6+uD$X 4$R/t)D$t$<$1uH uC@$*v'UD$$   U8E]u}=t9~=}X <=~M    ]u}]Ð=t]1琍t&zu g    f% f $D  ψEÉ֢ ] U܉u KUX:u;X:Bu/X:Bu#X:Bu  t&uܸb u t V t]m Ðt&]' É'U1(}}]uG0u ]u}]ËU B$/'ƋG$"'ËE$'T$)UT$U ËGD$BD$ D$D$D$$)|$$|t _e$G%1VU$NÍU]]u}{t ]u}]Ës@uC xtD$Z$ ̸C @ P U tD$ 4 $^!t鰧$ 蔷鞧&'UD$$ 趸  U(E]u} t"5  ]ȋu}]Ë8  t h t= f%f=5 $\ <t|{ u %=Ժ l ^fftLX D7 :v - < EE1 EN  EE1 Et Ȝ EE1 E>t&Uuu]}F0@ut ~GD@u0t F@D@u]1u}]Ít&\$$fD$D$4 $h"|$$H릍US]D$D$h $."$D$D$JD$D$ $!$D$D$D$D$ $!$D$D$D$D$ $!$D$D$D$D$, $n!$D$D$D$D$h $>!$D$D$ZD$D$ $!$D$D$*D$D$ $ $D$D$D$D$ $ $D$D$D$D$` $~ $D$D$D$D$ $N $D$D$jD$D$ $ $D$D$:D$D$ $$D$D$ D$D$@ $$D$D$D$D$ $$D$D$D$D$ $^$D$D$zD$D$ $.$D$D$JD$D$ $$D$D$D$D$T $$D$D$D$D$ $$D$D$D$D$ $n$D$D$D$D$ $>$D$D$ZD$D$, $$D$D$*D$D$ $$D$D$D$D$ $$D$D$D$D$ $~$D$D$D$D$ $N$D$D$j[]UWVSLUE@xEt @E܋M MС %=*H YE` uG =H s1Ƌt$A‰Ft @LuFBLH r`  % = MM1EIMuzUС4 T$$Zt'D$ 4 MЉ$L$ E5D$D$Ẻ\$D$ UЉT$M $>-L[^_]Ð˃}؅uи u|E E̋XGŰ?$M̉AM̋YȃD$ġD$E$| &}tEE wEE0 cEE Ru؅}} EE̸ "E̠ t&E@E؅}=} El EM $蹪EEЉ$PtBur\$ED$C$ L[^_]Ëuпu   D$U$T$ $T 躬ML$ T$D$4 $wMSA3BKuпg Uо] zatl uE] U xaME@MEEEE@UEUȋBt @tMȉMUȋBUEȋEȃxHt͋Xg uMԍSCu\1 t]tCt$ C0C, u<G$1D$D$.X$G0uD$ G$Et‹@,R04$E؉UEE؉EЃ$+t$Eȉ$E؋UD$ D$D$ẺT$UEȉT$D$G$EЋUD$D$D$GD$T$$ D$ Pt`Eȉ$wUԋG$JB,B0苕4 D$ $zu $ VL[^_]D$"$3Y 늋G$ D$%*$ 4 D$ $$ fUSÃ{wC$Y &[]ËC[ ֹSj[ :u k[ :Bt܋CL$ T$D$ D$4 $uC$ D$S1륋[nCf[C S[Tt&'UExt]f@]'&UWVSl$UED$EU1$EEuC$S9uT}E| tG]Eۉ\$$U]Et]M+E4$)ÉL$\$u;utyUD$ $>tMD$# $$t]t&< Et< t< t< t< t&tބ]u6M $}<$E$rl[^_]ú މ׉uC< < 1E}=tt} tn} th} tb} t\} tUt<=t< t< t< t < ft< u܋E19t({/؋Ut Ax/u 9Аt&u+uMEP@9UBы:A}UGT$t$$WW]M MP G ?} }0EU Ut tuM} $讶‰ÍE"t6$EЅtËEЉ$d h :$ D$D$B $CɍE뗐t&U uu]}t@$ttNtmFtf t $juPl ^x$|$ t/F0uAF$tl @$D$ u5 ]u}]Ðt&D$/$t|$$ t떍&U] uu}t]u}]Ít&Ft$u܍ED$F$U E3 1 l XD$/$CuD$X $_EoF$i5l E^<$)؉D$\$n1|$ F\$$ D$ǖM]  11 N D5 F$ D$}F$[UWVS 5 ]u Ct@D@u [^_]É$tu uދt؋s<$t$tD$/4$uD$X 4$t)D$t$<$Iu uC@$v'UD$$AY Ɩ  U8E]u}=t9~=}X <=~M    ]u}]Ð=t]1琍t&zu g    f% f $  ψEÉ֢ ] U܉u KUX:u;X:Bu/X:Bu#X:Bu  t&uܸb u‹Bu#Ogfff)9u=TЋM1>Auy t&[^_]ÉMAu֍U$t$[Â#_tB< w"PЍAAQPu$Ћt$]ɋ8_uރ܍v'USMg[ #Pu Pt 9ʍvu[][1]Ív'UWV1S[û" EUGtK‹uPЋEAAGt)vqQTBЉGEu<_t [^_]ËuAM [^_] U]@@Í&U]PÍU}Nj].Z!uu9s9w#2t$$]u}]Ív ٍU]uƋYs!t$FF]u]Ít&'UWVSY+! G ~)pGw t$GG ׃ [^_]fUWVS6Y  Gt$zGG$W@t:GD~YW@1t&t $EW@9wD$2G@GLtGL$GL [^_]ËW@ƍUWVSX+  G~)pGwt$GG׋W &G~&pwt$GW څt$kGt$\ [^_]UVƃ^]FU]}ljuW`tCp@)9|]u}]Ðt&)Ήu42t$ $~E7GwɃ ~Љ։$ƉGw뢍t&UWVS1WɉUu[^_]ÉBN9r9v9v|$U$T$~[^_]ÐUVƋJ9t)‰^]tt&^]Í'U]V:҉u։}t:u ]u}]É$(]u}] 'U(]5VɉuΉ}ljUt DGUt$$T$w]u}]Í&'U(}׉]uEGUj9t,ƋE)։EPt$$D$6Ep]u}] U(]eU ҉}׉uEt:u ]u}]É$Ɖ‹EWUBt$|$$Ep'UX]TÚuuω}eE1T$D$!D$ D$4$7Ee3u ]u}]ɲ'UWVS UnT-tZ+tN1ɋGt0t&EGuٹ [^_]Ã뫋Eƃ-~돍&U(]SzEAUu}ω$'|$ƋE4$D$BE>P E4]u}]ÐU]uPmS9P|#t<FD$F $CF FPVV ]u]@$F ˍ&U(]}ljuUPRÌ9PM|&trGD$G$GvE$ƋE4$D$ED$.EWG4]Gu}]Í&@$G또&U(]}ljuMHH'RUuDP$9P }OE$uƋE4$D$ED$EWG 4G ]u}]Ít!G$D$G$G@$$ GqUWVSxQLEUqD$TED$U$MA$MA ~}EEUEBM$UMJMEĉ$eUMAMMAMMĉ$D$L$eUEE9B MA6MA~zEvEUEBM$7UMJpMȉ4$UȋMAMMAM$t$D$UEE9BMAMA~xEEUEB M$UMJ xM̉<$@ŰMA MMA M$|$D$CUEE9BMADuSMqL$ UBLMQLMALL[^_]i$UB$MUyDB@~EE؋UE܋B@M܋$UMJ@MЉEԉ$MUЋMA@M܋MA@M܋Mԉ$D$L$MUEE9BDMqLL[^_]$UB \$UB&UWVSHNE$Le EUE荃HEEE E }Ot_l[^_]À?ou݀puGD$T$t EHEUăEt&EE }OtEċEЉ$9Eu݋uUM9uЉuŋEMEhu؍vLE @t&~_1}uWoAuFA~HE}EE }OEẺ$uًu̹}uɋEEhS}LE>tuV׋6uu[E@,E)uUBD$T$EEEuUEEq}E&E@(Eql[^_]É$1ɉ -3pNvaUu~HHE}EE }O$EE$ uًu}uɋEEhU܍RLE`uHEE}ȃ uEt&EE }OyUȋUԉ$b9Euًu}M9uuƋE.EhURLEEu&UWVS}E*HUMwEE&U<%D$4$ E艅x]UxU|$D$TD$U|E<$MUEMUE8EueUEExE[E|u$t&t<_u~_Ft_u>~u|xEČ[^_]É<$EMUEEČ[^_]À>_t룍vF8_t>~ 딐&U]u}E@(UMUuEȋE}R,v8I0HF ỦuԉMG,G(G8G<u*1UMȋű}ЉJ(Mԉr,z0J8]u}]À8tэEElUU$E} +M8UD$_$x_Pu߉E܀z_u#1|_t~M܍DEuF0E9E-u܃Ut >p tvt.}܍UME<$EċEąMM~t&Ex(x,E}<EMEąEk/ES}܋PutuE}?JEx(My,uEۍvuF,rMU:/Euu롋u{EiEUEB<EUE1U$ZEEEE;uUBD$T$M:A A _u EM܀9_tu܍D$4$x$MUEEQM܀ytu4$}EU<$]$EEU܀zmu4$ȋMAUB@t;rD}/t#UB@E  E$UUT$ED$E$UEUD$E$EtNMt&UEU$]E$R UEnEcE^u띍vUWVS\UMME5<BE zzEEa}E?}Љ<$9EEEt#MUЋEEEtEMEUEEąu2"EUt EEEHEUE EE}vUuE0EuM }_U$UEjEnE GEM9ME(UZzl}MEEt[)~U$z9E~4EEUE zEEM89MaEąG}Gx>E E tLEtEENjEp<$)9ƋE!+E\[^_]EE\[^_]Íu؉rOUu)ȉM̃r@$.MA@MM̋$L$D$;UMB@ŰEJMU}}EEE^E t EOUEMu)ЉEȃq@$|}MG@}ȋ|$E$D$UMB@8뛋E$8M}A@MɉOD219u B}G@t ;wDnEv]UB@gEMlMA@EVE UGur@$mMA@MM$|$D$zUMB@87U A5~->E|Et&Et&t&'UWVSX0\MEUMɉEtEE@(tdt&MȉME؉EU8K.P@<1}EEȃ\[^_]<9~)<_uEEăuWҐP,U땐t&EEED$ D$ D$$M‹x_YEUăEE EU8_tKE@ EzE$wUMЉNjL$<$D$EU<$D$a8‹EM4$<$UM EU)9!EmEą~+EruEEąt&EU)9!Ẻ$EKEt4MruEE@,UEE kU;BtMruEOUEEEEȃ\[^_]ËEMUECE(UEt&D$D$M $MUE|E|fUM;AAElUȅK|M;AAE+E#EMЋE?UEE,\Et&'UWVS1,UEeE1ЉM|EEEEEA<4w&E1M„҉tJuB<vjEC<2lAUĉGEw|l1Me3 D Ĝ[^_]8Et0E;Et|~`‹|Iu"UAuuۋMEAEA|^UuEEA|'9QtErf| PdA<stQ|ED$${Eq|A1}MuF7u#ED$D$$NjEbUA;BtE~EAIAM;At ~EK1uwED$D$$EZUM|)fEuK|*uD$D$4$EU$M ED$eD$4$ED$%D$4$D$hD$ U;BtE~VELEuD sct&'UWVSt  M쐍t&EEGPS8nu&GP~/ ~͋8_u#뿋GLth3OLu, 1[^_]ËWLGPtE [^_]ËWLEU+M} [^_]$ GL UWVS<(UЉMUЋU1UȉU_tXtTetONuhTtcFMȉU'Eȿ(UЋ_uNPehUЃɉE8t ~ EЍU<tmE;F |EĿvFP~8FUEtu5MčUtGtUċEN뱋EEyE̍(뻋EЍU61<[^_]E̍(fATUЋ8PE̍A8UЋ8E~EUȋEeE̍'mUЃouE̍pOE̍OPݍv'U]uƉ}@H@LëFLEFPFPEONjFLtFL$*EnH]FLEFPu}]Í&UWVS\28ME@UMt 9XZMuBU!} rMăy4EMEUM \[^_]ÍD$4$ҽt@EEEWtU9Eu:_ufM MΉnEx Na@:B RD$T$5E?A4#vD$4$MGEȉM葾U9E:_BEEEME)׉Eăx4EċUċEЃESM;Mvv}Jt2蛿E,[^_]ËUԃ{x~i뿉뭍&'UWVS|UEeE1GMU:_juǎEUEEމt$u4$D$ D$2D$E蕾E苾<$WU24$誴EƋE0Ue3Es|[^_]ËuЎujUԎBt;A I>AtwQtpxp1tMxuEGUUO`EwGvt@tlrBA`QB v>>F|nTLlGB lBBBBBB tH@|B|J@|vpPt>tOD(u싵tVF;F  FT(t:uxtGvpF18!tA;A Y(AptWtPR@;A D)Ap?2tVF;F [FptVbtWptA;A ^]At@‰l &BuB0F 9[u ttHA;F  hidd@en a@lias@ for@ Ft&ptWttHA;F  refe@renc@e te@ mpor@ary @for F뚋ttHA;F  guar@d va@riab@ le ff@or@ FNttHA;F Y cova@rian@t re@ turn@ thu@nk tf@o FttHA;F 9 java@ Cla@ss ff@ or@ FttHA;F   virt@ual @thun@ k to@ FmtNA;F   oper@atorFpwFa<w,tP@;A  AwtxtPNX;P NVtttHA;F   non-@virt@ual @ thun@k to@ F{ttHA;F <  type@info@ fn @ for F9ttHA;F   type@info@ nam@ e fof@r FpA8-pG8(tB;B %(BpAPt:tNtVB;F at~8ptWDtHtPtB;F $t@pGPttP @;A  )ApF8(@x@8>tWG;G )GytppOt1;G pFL$$D$*FG/t  pGtqtM܉}EBE܋BJE苅tWEu܋tw WG;G  Gt HpttHA;F a  cons@truc@tion@ vta@ble @for FptWtHtPtB;F u tptWttHA ;F L type@info@ for@ F tNA ;F  vtab@le ff@or@ F ettHA;F  VTT @for F1tG;G  ~GpPtpA8/@80tF;F  (FpGPtKtHtPtB;F  t~CptWOtHtPtB;F 3 t@pG@PttHtPtB;F  t=pG@Pt[tP@;A )Atu܋pEA}E܋AqEWUuotP @;A   AptVtOtWB;G  t9E܋tBtMtphRFl}҉UUNEES BB EvGwfwuY};uEE QhAGBGBG B lGlQtq?uptVMEtɉG}vmET(tS}uዕttJpcptQpF]tOtWB;G It(t5Hp\\wtN;G \L$$D$ÇpB@GtRltu܋lpEM܋pEGwEQ!EuttHA ;F J oper@ator@ F pt ptQt~ppH9ΉMr.v tAB9}tQE)~ >_~ttH;H rt봋pG8*‹tS tP;@;A -(AptVtWut)UtNA ;F @ oper@ator@ F ptW~_~~Ut&F9EEE!HЃEE9EEMEA< vҍA<Hŋt<qt>lt(Wt B?p et)tt qet vJut /Zt`?tht t qtpI\w\tN ;G F\L$$D$臃pB@ GtIttPX@;A J.At'+ttittϜtyt^tA;A !(AptVtWRG;G F)GNpMt~Xt(C@pq^_pG8LxB19@<0<1#tOA;G u trueG`tP@;A -A8t)~Mt ipw t.K^t)6~XFL$$D$詀ptB@At k-in-Fҍt&ct>zPttqGt5t] Vt t[Y.f, GpPt@x@8>tA;A w(Atwt(A<Ht-Pt(f::Gf::@*G8f) Ff (F;A 6 AtWGO;G  GtPn@t tMuBEJpG82‹t;LE3U싍tQ6t(_Hf (Ff) Fxt +) : @(Ft _}ҍvtA;A M }tFtA;A s'-AGt(z~t-epGtttHA;F w` fals@eFtPtX@;A sNuAtVtGF;F s?lFit/Ntu9tl$tOtWB;G tCtOt WB;G vmtFtHtPtB;F vXtSbUt}ful@lGSfulGDfllF5UWVƃ R:t ^_]Ë@UFEFEEFGPVE҉Ft FuS;F rp<"GPeVt^Ft|>t^;F sK>FEF ^_]Ít&|;F s$ FVt܋F뇺 {믺 m؍t&'U(]}lju=:(UtU]u}]x@Et]EWpN;G vNV]u}]qFUL$$D$nyUB@G]u}]ËEp믉'U]u։}Nj."w h]u}]ROtWB ;G H Jf]u}]OtWB ;G  !ʋOtWB;G T맋W,G;G   GVCu!W G;G *G]u}]ËWG;G &GЋOtWB;G [OtWB ;G  dWtvGt|(t9G vc GV>OtWB;G 9&]u}] v떺*čimag@inarf@y G comp@lex Gf::@*G conf@stG vol@atil@eG m res@tric@tG P&UWVS f҉MuFmWv1FGEG F#tN$t2t[EF?t)Nt"WuEtW믋EF [^_]Ë!EF [^_]ËFFERlEFuVNt VB;F vmmGPw RvEF [^_]ËVtF;F r..Ff::F뙍UWVS aɉUtȋPu1ɉcVtF;F rx (VtF;F rQ[ EPtLVtF;F r []^_]]F [^_][F F눋@8$tMNt VB;F v\@1ɉVt'F;F s)F1ɉp#)?f (F몍&'UWVƃɉUAʅBw?Guat*V7FtaL(tx*uKq&tBtF1ɉFEVFt| t!9F  VFF;F (FF1ɉFE;VF;F )FVF;F sx(FEPtVtgF;F s_)FEF^_]ú V8(t<(cv끺)Rf뛺)BfAEHS&U8E]ç}}E؋EuE$rtrU u؉E܉EEEE U܅tE;Er$1҉U܅t E]Ћu}]EE1ԍU]Eu}E1҅E~EU@ EB1+E9E~MQ,]Ћu}]Í&MEEAA t8$tK} ~3uuMUA<.t'<_t#<$tt&UME"낃A 뭀zNfuދUB0+EB0E썓oIt&U(]}ljuH :ߖB< v7B<wCit8(u@@G0G0]u}]Ë]u}]B<v1ӋG,Et ‹tqtiȃO CtdDuPG 120uEgƋED$U4$T$X|UBG0PHO 2tA3tE1TE ƋED$U4$T$!EE&ETEHUWVS,E؋@ TSt5ZNE4U؉ƋB 8I,[^_]ÀxtE1ƋM؋A 8IuЅ9E$EA,[Ɖ^_]Ëu؍PV 1N QV <$ $<${Ɖ3G G _<$M G04$v1҉$h1҉1҉}1҉$G!hDe1҉$<$o$<$K $o0 <$# $xo0<$$vP$S-e$0 'U4$|$u} N AF _t 4$1|$]QAF Zu|$4$]-'UWVS\8}eE1UM4$&g|$ D$@4$D$Eԍ@)ċET$U̍)čD$ED$<$…t:w Ě1Ue3u0e[^_]ËRϋRʋBUӋBU#v'UEMU#EUEMU#EUWVSH PQV 1ɉUu1]u}]É<$U tًE֍AE싋)<:Mu/@:Etm8E}‰U;uuEE[^_]Í&8M}U؉Ѓ0< wƋE̾Et$E0D$M $u렋E䍶蛾Et(xE[^_]À}vE$ *$E腾EK'U(]}lju@ :߄LTsu xrvSEtM‹(uSBPW0W0Y:u Y:Bt@UB@ t}t;1]u}]Ã)/*t(uY:Bu<$$M+{묋]u}]Ɖ-$?,$M-[]u}]5G <$wEƋG 8Itv4$MeE[ƉR0$豼/$M蟼.$M荼UB$e$MS&'UWVSlúEeE1EUM$[UE:_uuUB<. <_<$1Eut$ UT$ED$U$Eԉe@)ċET$U̍)čD$Eu{D$4$)EtEȀ8uiɋEUt_EPEL$D$ ЉD$U$eƋUe3e[^_]É4$Ff1ϋUB tMU׈EM뙋E9Ev"Ùz t t&y u mM9MrE[@]mEERUU MEÐUWVS }袷Gt"t$VFu<$V [^_]Ít&'UWVSu}]Í&'U1ɉWVS4t U쐍t&t/u8/u8/tu$Nt_Etf/tRuV)…~UUETtQEtUE [^_]Ã>/t)ULUto1K [^_]ÐUxuuE U]e M1 òs}EUttu'EMe3 E3]u}]É4$tH9E1uM $GtUYUEEK4$EJEątEt}};}}}uC ;}t!UwMċDT$T$\Pt;uEUEUEU9‰E~ƅWE E9ut*M̋}ċ}ȋ$T$Ot؋}̅E1҅E~11U$PK;uuM)M؋}9M<~0UEE)ʍ4U$KME9MuG$8LE:Eu~1}D$E$L9uU$JME9M~f..@/9U}9}~%Eȋu̍<UD$$L9uEEE$G$(JpE$JD0)čT$U<:tt <:u9tbE)׉|$T$$F~/tUU/D:}E|$$KUD$$Ht.>V녋M.A/A뷋M}}EEEEEvEnEjUWVS8o Xtfwx Tu?u [^_]Í&'USÏot$Xy"AUTA1[]Í$I¸tًXBX뮐U]e ouu}4$Hx<$J|$t$$G]u}]ÐUWV(U Eu}U܋M܉EE׉ƋU؉E܅UEu"9wNEƋEt&;}v;11&ȋMt؃ڃ(^_]Í&ЋU1ӍvǃE +EME׋U NjEMMM ЋUEUԉ9Uԉr;Utm1dt&؃U]؃U]E&9}w 9u11EM9vO1UWVP} EUEuEEUEkMNM҉M܉E؉Uԉu}u(9 UEM܋EUQE9Ev6uU}MUMt&Eąt ]U]EUP^_]fEԃE U+Eȋ}؋uEEM ‹EMЉUUM ЋUMuU9U;UM)щMMȉEMM ‹EUUEE܋MH0U؅t>E̋UE&EU؃ރE1u؉봋M9MwE9EsEỦEUŰM+MUԉMU91)U'UWVEU} EE҉։Eu9ȉ^_]Ðt&9ƒEt U+EME ‹EUMEEMM uщNjE9щƉUro9t^1yEt2ƋE^9w*U9Us"f11G&1uf1$EM9vO1 U]Ít&'UWVS(i=E)E}Ut+1ƍED$E D$E$9}u߃[^_]ÐUS躡_iCUS| | t Ћu[]US[iGY[%P:%s: file format not recognized; treating as linker script Reducing stack by rule %d (line %lu): %P%F: unrecognised keyword in MRI style script '%s' %X%P:%S: unknown phdr type `%s' (try integer literal) %X%P:%S: PHDRS syntax error at `%s' %P%F:%S: %s in %s %P%F:%S: %s Stack now %dtoken %s (nterm %s (DeletingStarting parse Stack size increased to %lu Entering state %d Reading a token: Now at end of input. Next token isShifting $%d = MRI style scriptfill valueoriginlength*default*PT_GNU_EH_FRAMEPT_GNU_STACKFILEHDRPHDRSFLAGSVERSION scriptgloballocalextern-> $$ =syntax errorError: discardingError: poppingmemory exhaustedCleanup: discarding lookaheadCleanup: poppingPT_NULLPT_LOADPT_DYNAMICPT_INTERPPT_NOTEPT_SHLIBPT_PHDRPT_TLS$end$undefinedINTLNAME'='OREQANDEQRSHIFTEQLSHIFTEQDIVEQMULTEQMINUSEQPLUSEQ'?'':'ORORANDAND'|''^''&''<''>'GERSHIFTLSHIFT'+''-''*''/''%'UNARY'('ALIGN_KBLOCKBINDSQUADLONGSHORTBYTESECTIONSDATA_SEGMENT_ALIGNDATA_SEGMENT_RELRO_ENDDATA_SEGMENT_ENDSORT_BY_NAMESORT_BY_ALIGNMENT'{''}'SIZEOF_HEADERSOUTPUT_FORMATFORCE_COMMON_ALLOCATIONOUTPUT_ARCHINHIBIT_COMMON_ALLOCATIONSEGMENT_STARTINCLUDEMEMORYDEFSYMENDNOLOADDSECTCOPYINFOOVERLAYDEFINEDTARGET_KSEARCH_DIRMAPENTRYNEXTSIZEOFLOADADDRMAX_KMIN_KSTARTUPHLLSYSLIBNOFLOATNOCROSSREFSORIGINFILLLENGTHCREATE_OBJECT_SYMBOLSINPUTGROUPOUTPUTCONSTRUCTORSALIGNMODSUBALIGNPROVIDEPROVIDE_HIDDENAS_NEEDEDCHIPABSOLUTENEWLINEENDWORDORDERNAMEWORDASSERT_KPUBLICBASEALIASTRUNCATERELINPUT_SCRIPTINPUT_MRI_SCRIPTINPUT_DEFSYMCASEEXTERNVERS_TAGVERS_IDENTIFIERGLOBALLOCALVERSIONKINPUT_VERSION_SCRIPTKEEPONLY_IF_ROONLY_IF_RWSPECIALEXCLUDE_FILECONSTANTINPUT_DYNAMIC_LIST','';'')''['']''!''~'$acceptfilenamedefsym_expr@1mri_script_file@2mri_script_linesmri_script_command@3ordernamelistmri_load_name_listmri_abs_name_listcasesymlistextern_name_list@4ifile_listifile_p1@5@6input_list@7@8@9sec_or_group_p1statement_anywhere@10wildcard_namewildcard_specexclude_name_listfile_NAME_listinput_section_spec_no_keepinput_section_spec@11statementstatement_liststatement_list_optfill_expfill_optassign_opassignmentopt_commamemory_spec_listmemory_spec@12origin_speclength_specattributes_optattributes_listattributes_stringstartuphigh_level_libraryhigh_level_library_NAME_listlow_level_librarylow_level_library_NAME_listfloating_point_supportnocrossref_listmustbe_exp@13memspec_at_optopt_atopt_alignopt_subalignsect_constraint@14@15@16@17@18@19@20@21@22@23@24@25atypeopt_exp_with_typeopt_exp_without_typeopt_nocrossrefsmemspec_optphdr_optoverlay_section@26@27@28phdrsphdr_listphdr@29@30phdr_typephdr_qualifiersphdr_valdynamic_list_file@31dynamic_list_nodesdynamic_list_nodedynamic_list_tagversion_script_file@32@33vers_nodesvers_nodeverdepvers_tagvers_defns@34@35opt_semicolon @\x6Rn`D üؼ|/DYnYn˽5a˾ 0UzĿ5Hgz%Ba>c%M\k| #;S{0 UǸܸ .R&FVv9`#Jq;b(Ij$b4Ueq*l{CU /@L_r*l-AM^~D 1RsɻMhCpϺ?X-Q8B-DKgoh"')*-.67CDF<=%X[]^_ b#BegGC:$NQRTYdhiopqrs:HBBjV&j$(/135Z8#9PZ\Cb(Nbv`c jklmuzSSBvj@@t]#{|j%#4H\pjBB## %Vj3, % &f"2 '()+.f1C>4>567;? }>ff >>>>>> 8V!tF>Fy!F"% !56 #$&'()*+,-./01234789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~gEGpQX<5z @ABCDdyz|} 34656z?z66 5 z&c5Qc !"34c5cxG5{|}_cjc%zP%5%%cx{|}     %%%x{|}%'RSx%{|}%  !" DF% %%%34%34tuv%&'%34~012qr7u<@ABCDEiJKLMNOV]VX6g6m%,%5%%%%5% %6%%)*+,-%%%%%34 !"%%%%%&'%%012 7WY<]abEJKLMNO@VX(%g5%m:%A6%U_DV}I6%%&'5&%%[012%ab7`X%<6%m55%E%JKLMNO%%%6%5V%X6%%%%%D%Ig%%&'(m_6012[7ab<EmJKLMNOzVXj gmm%&'`0127<EJKLMNOVX g%&'m012%7<EJKLMNOVX !"./gm89:;=>FGHIPQRSTUZ[\$ab./m89:;x=>~FGHIPQRSTUZ[\abmx !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !"& !"$&= !"=^defghijklnopqr^wxydefghjklnopqrwxy !"% !" !" !"DF2aYKLuHePKLKL KLU4vvn.UUVxVVvw]YvUJxU5 XoKL7V8V7MB`&mMMq&MZr[\]-BmCsNOStbNudNw!NT"WXGZ[]^_`axmd#$yhiMZlm[bcopqrstuvwxyz{|}~z!U{Nv4|B'Ev()*U6v'U}()U~VVEFGBVw]!#ab2TU"V+WXYZ[\]  %9,JR=Sb>1?@^A_IQ`cef23gjkn.'K-/a9bcdDL/0(. B1$(230)2:@5AB4INpqrst=uz|}0(1234Y,:{ghijklmno~+fV%ghijklmno      !"#$%&'()*+,-./01234 !"5#$%&'(6)*+,-./012345     6                                   \                                                            &     8     >     ?     C     M     P               C     CD     DE     EFGHIJKLMNOPQRSFTUVGHIJKLMNOPQRSTUV                    9 60< : A7:12MNPiF;>D=@ABC?E.3GRFNPA;NP3f%Sh(1/ !$%4&6'* B5<WZ -7L<ISHOQ4ced'$&JL8GHRgU]Y\OIV+20,#"58CD?=TaX[Q9)TQJ@> *+_U   .(^jMTf+KbE,)`K /+-{mln~ kzx|pqkwy}o!srtuv"#    5x<1<,8 B&Zv W789efyghijklp:;<;3<=>?*H3;Q<OR@6d AB^_tuv5z5./89:;=>FGHIPQRSTUZ[\abmx&=^defghjklnopqrwxyx{|}5|} 55%%5%%%%%%%%%%%%%~%&'0127<EJKLMNOVXgmi66c%%5%%%%%%%%%%%%%%%%%% !"5x{|}66D[6%cz$%6%c6$}5z%(%@ABCD%%_U_V6%&5%%%`X6'%6%55 )*+,-34WY]6%%%%%3%6%34]34%5%%%%%_6ffffg ggg  !&&1289:;<=>?@ABDFHKMOQSUTX[Z^bfiloruyx}| ! '(,-278=DEHJNPRTV[bdhjlnprtv{{   "$&(*,.02468:<>@BDFIKMOQSUWY[]fhjlnprxy}~  ! *WZforyy  &( "#&+-/249>BEJNSX]bgjmpuz} "$(+,23;<CHKNOTWX`bdfhnsx %(,-.6:>?CEHJMRW[_afjkmopswx{~ &+-4;BGLPQVW\]bcegijklmno #&'*+136;AHJMNQV[dfhlpq{|tuviddekjooonfff&&^^ghlqqprwx=$yF%G%\%8%8%:%9;Z%[%H%=$U%x%c%c%c%.56I%m% %3%4%3%4%3%3%4%3%4%4%3%%%%Y]3%]%W%)*+,- a%b%>56VX%P%Q%Q%R%ST%J% !"E%7K%L%M%%g%&%&%0%1%2%<%'%N%O%m%V%X%__%&%`%56D56[56@ABCD%%(%(%'%U56/56_%%56~5656z56z56zz|}|}{{x56x56||}}xx"gvf'g2gf6gRf3Jkxa         LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ &,+"#$%-.'(! nl*) &,+"#$%-.'(! *)nlzy"#$%-.(! r ryy{| VDom;<VDom}93]fRgv[@Yc93fgv@]R[Yc52e>XJIq\Z52eJ>XIq\Z?4/d0HEWF=4d0E?/HWF?Lp^`tkS1Lhtkp^`S1x:Qsx:sQ~KKijGijG_U_UNwawNaTCCTuBAuBA88bb66MM77OOPP  !!""#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#%%%Y%aaaaa%%%%%%%%%a%%%%%%%%%%%%%%%%%%%%%%%&&'()((YY*((((((((((((((+,----#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%.%YY/aaa%%%%a%%%aa%%%%%%%%%%%%%%%%%%%a%x/%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&'(())*(((((((((((((((((((((((((((+,----$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%./%a%%%%%%%%a%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&(((((((((((((((((((((((((((((((((---$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%((((((((0(((((((((((((((1(((((((---$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(((((20(((((((((31((((---$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%((((((((((((--$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(((((($$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%(((((($$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%$$$$$$$$$$$$$%%%%%%%%%%%%%$$$$$$$$$$%%%%%%%%%%$$$$$$$$$$%%%%%%%%%%$$$$$$$%%%%%%%$$$$$$$%%%%%%%$$$$$$%%%%%%$$$$$%%%%%$$$$%%%%$$$$%%%%$$$$%%%%$$$%%%$$%%$%$%    Q2$u0y0jfZ`3`Jorzl.#U~&HCESpmUe>xsVRF0utsr$q],$<I+m[WYT)jw8J:68}riAzvocbLZT=MKE-SCPP@GC?AC|I?z<>2z=?3AA5B3'.:)<:((' 3 +%#w.9,- ((* <P ~    1]^BEr6.Qgo}{|~q~uwron{lijgyglpcfonblc[jhg_MD= vy|~{}wvuuwvcxksktyrueiXmq`gilgEAa^Ye^THXLJNI[LX4F=?B7<8-,&,)7&8%&(!)!/(*#&!$u   .1IP6jyeK*-.9F>c[_p^fm{ryt    *')) 5&9/71<;/04<<3BJ$E=FH<GFU7H[WcUYaj^djgdcmesephgyg}zs   +.#+&.-:4"=76@3;)D1BHABNBNTMBSb[^e[_c\oekjngzoo|tssywhzk|~|"-8;DLWbmx8 $8 ))$ Z//++.0G.10)Z1V.)0 3 &&27-2-92;PGV7-]]9&;&--4P : X:__::jklmXCmukjml&& %% o=Co==%%o===5o==~u%=~b b |}b|}b~%%bb|% 6ccddddccdcc7ddeefef;eefX;e9ffX:rr{{r{rr{{r;?AByyQ..yyLLQWDyD$ZZW$EZyyyFDzzF4F$t$4$tz_z_ $$_EuJvFFu vLuOPzzQE%%&R&+N+V%SV&V+%%T&&V++NNU/V/WNNNNNN/0Y0D0D//N0MDGGZ00DD[NNNNNNYYGGyzYYYYYY]YyzYDY_Yyz`bMYGGdeYYYYYYYYfYgYhijkYaalmnaaaaaaaqrasatvaawxayz|}aaaaaaaaaxxxxxxxxxxxxxx    !"#$%&'()*%+,-.01234567389:;<=>?@ABCDEFGJKLNOPQRSTUXYZ[\]^_`acdefghijmnopqrstuwxyz{|}~kkkkkkkkkkkkkkkkkkoooooooooooooooooo    /1/.,+*)'&%#!    ====================HHHHHHHHHHHHHHHH}|{zyxwvutsrqponlkjihgHfedb`_]\ZYXWUTSRQPOMKIHHH           !!!!!!!!!!!"""""""""""###########$$$$$$$$%H%%%%%%&FBA@&&&'''''''''''(?(>(((()=)))))))))*<*********+;+++++++++,:,---97--6-.5......03000000000121111111112122222222230333333333/.-,+*)'&%#    ~}|{xlihgfedcba`^]\[YUTSRPONMKJIECBA@?>=<:987654321-,(     snihg^TSMLKEDCB?><6543*"  !"#$%&'()*+,-./012345#6789:;<#=>#?####@#A#B#########C##D##E####FGHIJKLMJNOPQRSTUVWXYZ[\]^_`abcdefgWhWijklmnWWoWWWWWWWpWqJWrfffffWWWWWWWWWWsWWWWtuvwxyz{|}~ WWWWW JJJJJJJJJJJyzJJJJJJJJ68:<P=97>;QJJJJJJJJJJJJJJyzJJJJJ@A B C  N O +J+JJ,L,-M- 16RSKTW JJJ)+FGH+X+/+Y+0<9=.[\:1++Z++]yv2?n+v+IJvzvn({nn)*v_D`An|vaBbEcC}nvd~nDvnGGvn!!HvR!n!HSGG+v+n!!wvvnnC# !!O+ ++++  N M++++++vvGGnn!!!!vv nn!! %&3v5"!!!!n+ +!! "$$~$%$&$$6'+(+')*'$+$+$$'''FFFFFFFFFFFFFFkkkkkkkk     kkkkkkoooooooo !"#$%&'()*+./0,1234oooooott-56789tutvtt:w;<=x>?wABCDEFGHwJK@LMNItvtvttOwPQRSTwUVXYZw[W\]^_`abcdefghijklmnopqrstuvwxyz{|}~kkkkkkkk!!kkkkkk!!oooooooo""oooooo""<<<<<<<<<<<<<<<<<     <<<GGGGGGGGGGGGGGGG~}|{zyxwvutsGrqponmlkjihgfedcba`_^]GGG<<\<<<[<<<<<Z<YXWVUT<<<<<QPLKJIFEDCBA@?>;:9876543210/.<-,+*)('&%$#"! <<<GGGGGGGGGGGGGGGG     GGGGjjjjlllllllllllnnnnnnppppppppppssssssssss==========HHHHHHHHHH<<<<<<<<<<GGGGGGGGGG~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFBA@?>=<;:9874210/.-,+*)('$m   #rqmihgfe^VUE?543# yylex%P%F: invalid hex number `%s' %P%F: use the --help option for usage information %P%F: unrecognized -a option `%s' %P%F: unrecognized -assert option `%s' %F%P: unknown demangling style `%s'%s: emulation specific options: and hjl@lucon.org%P%F: bad --unresolved-symbols option: %s %P%F: invalid section sorting option: %s %P%F: invalid argument to option "--section-start" %P%F: missing argument(s) to option "--section-start" %P%F: may not nest groups (--help for usage) %P%F: group ended before it began (--help for usage) %P%X: --hash-size needs a numeric argument Shared library control for HP/UX compatibilitySpecify target for following input filesForce common symbols to be definedAuxiliary filter for shared object symbol tableFilter for shared object symbol tableSmall data size (if no size, same as --shared)Set internal name of shared librarySet PROGRAM as the dynamic linker to useAdd DIRECTORY to library search pathOverride the default sysroot locationPrint map file on standard outputDo not page align data, do not make text readonlyPage align data, make text readonlyIgnored for SVR4 compatibilityGenerate relocations in final outputJust link symbols (if directory, same as --rpath)Strip symbols in discarded sectionsDo not strip symbols in discarded sectionsStart with undefined reference to SYMBOLDon't merge input [SECTION | orphan] sectionsBuild global constructor/destructor tablesPrint version and emulation informationDiscard temporary local symbols (default)Don't discard any local symbolsDefault search path for Solaris compatibilityAccept input files whose architecture cannot be determinedReject input files whose architecture is unknownSet DT_NEEDED tags for DT_NEEDED entries in following dynamic libsDo not set DT_NEEDED tags for DT_NEEDED entries in following dynamic libsOnly set DT_NEEDED for following dynamic libs if usedAlways set DT_NEEDED for following dynamic libsIgnored for SunOS compatibilityDo not link against shared librariesBind global references locallyCheck section addresses for overlaps (default)Do not check section addresses for overlapsDemangle symbol names [using STYLE]Force generation of file with .exe suffixRemove unused sections (on some targets)Don't remove unused sections (default)List removed unused sections on stderrDo not list removed unused sectionsSet default hash table size close to Use less memory and more disk I/ODo not allow unresolved references in object filesAllow unresolved references in shared libariesDo not allow unresolved references in shared libsCreate default symbol version for imported symbolsDon't warn about mismatched input filesCreate an output file even if errors occurOnly use library directories specified on the command lineIgnored for Linux compatibilityReduce memory overheads, possibly taking much longerRelax branches on certain targetsKeep only symbols listed in FILESet runtime shared library search pathSet link time shared library search pathCreate a position independent executableSort sections by name or maximum alignmentHow many tags to reserve in .dynamic sectionSplit output sections every SIZE octetsSplit output sections every COUNT relocsDisplay target specific optionsUse same format as native linkerHow to handle unresolved symbols. is: ignore-all, report-all, ignore-in-object-files, ignore-in-shared-libsOutput lots of information during linkRead version information scriptTake export symbols list from .exports, using SYMBOL as the version.Warn about duplicate common symbolsWarn if global constructors/destructors are seenWarn if the multiple GP values are usedWarn only once per undefined symbolWarn if start of section changes due to alignmentWarn if shared object has DT_TEXTRELReport unresolved symbols as warningsReport unresolved symbols as errorsInclude all objects from following archivesUse wrapper functions for SYMBOL-G--shared--library=%s%P: unrecognized option '%s' defaultnodefinitionsnosymbolicpure-text%P%F: invalid number `%s' Usage: %s [options] file... Options: %s-%c%s-%s%s @FILERead options from FILE %s: supported targets:%s: supported emulations: Report bugs to %s ignore-allreport-allignore-in-object-filesignore-in-shared-libs%P%F: bad -rpath option %s:%s%P%F: -shared not supported %P%F: -pie not supported .bss.data.textP,KEYWORDSet architecturemri-scriptRead MRI format linker scriptdcdpentrySet start addressexport-dynamicExport all dynamic symbolsEBLink big-endian objectsLink little-endian objectsauxiliaryfilterIgnoredgpsizesonameFILENAMEdynamic-linkerPROGRAMSearch for library LIBNAMElibrary-pathDIRECTORYsysroot=Set emulationprint-mapnmagicDo not page align datano-omagicSet output file nameOptimize output fileQyemit-relocsrelocatableGenerate relocatable outputjust-symbolsstrip-allStrip all symbolsstrip-debugStrip debugging symbolsno-strip-discardedtraceTrace file opensRead linker scriptunique[=SECTION]UrPrint version informationdiscard-allDiscard all local symbolsdiscard-localsdiscard-nonetrace-symbolTrace mentions of SYMBOLstart-groupStart a groupend-groupEnd a groupno-accept-unknown-input-archno-add-neededno-as-neededassertBdynamicLink against shared librariesdycall_sharedBstaticdnnon_sharedBsymbolicno-check-sectionscrefOutput cross reference tabledefsymSYMBOL=EXPRESSIONDefine a symbol[=STYLE]embedded-relocsGenerate embedded relocsfatal-warningsTreat warnings as errorsCall SYMBOL at unload-timeforce-exe-suffixno-gc-sectionsno-print-gc-sectionshash-size=Print option helpCall SYMBOL at load-timeMapWrite a map fileno-define-commonDo not define Common storageno-demangleDo not demangle symbol namesno-keep-memoryno-undefinedno-allow-shlib-undefinedallow-multiple-definitionAllow multiple definitionsno-undefined-versionDisallow undefined versiondefault-symverCreate default symbol versiondefault-imported-symverno-warn-mismatchno-whole-archiveTurn off --whole-archivenoinhibit-execnoinhibit_execnostdliboformatSpecify target of output fileqmagicreduce-memory-overheadsrelaxretain-symbols-filerpathrpath-linkCreate a shared libraryBshareablepiepic-executablesort-commonSort common symbols by sizesort_commonsort-sectionname|alignmentspare-dynamic-tagsCOUNTsplit-by-file[=SIZE]split-by-reloc[=COUNT]statsPrint memory usage statisticstarget-helptask-linkDo task level linkingtraditional-formatsection-startSECTION=ADDRESSSet address of named sectionTbssSet address of .bss sectionTdataSet address of .data sectionTtextSet address of .text sectionunresolved-symbols=dll-verboseversion-scriptversion-exports-sectiondynamic-list-cpp-typeinfoUse C++ typeinfo dynamic listdynamic-listRead dynamic listwarn-commonwarn-constructorswarn-multiple-gpwarn-oncewarn-section-alignwarn-shared-textrelwarn-unresolved-symbolserror-unresolved-symbolswrapbzP{ 1 -@ \:!> ,    b S =       {        w M *'  pd(xn_PA2#{l]K<0$vgVG8aG._0!: nU I  aI UAAhQ%bb`bcc:mdd,dee%EAj ff gPFF gg"GG[)h09IH$llcPkLLx(Pm YMMxnnNN0oo:Oqqrri7RR:<DssN`SSlpttLfTT:(guuQ `#vVHxx XXp% 2 yyQ ? Y X ((d r ))|   ( \   , I\     |!![ ! !!/!4!Q!X!j!"z! !!!!YQ !!D"p"""$"D"7"XQ I"b":f"w"""""@"d""##8#M#h#w###0###X#$$`$5$<$T$Z$:@n$ dt$ $$$$$$$$$%%%,%@4%C%hL%R%p%|%Q %%%%%%%% &%&.&%4&Q&q&Xm&y&:&Q &&&:&&''D&'l0'C'W'o'#8'Q d)! $#######$##$#####$####$"$######## $#######$##$#####$####$"$................VVGUGUVVGUVWiWGUGUUU`U|U!U!U3X=XGXYZZ[>[O\c\t\\^V^^*]]__``_p``jkjjjjjjjrPwqqMyyOxbxxxqqqqqIr{{{{t{`A0dxԣ8ƣƣ!@cload_symbolscompare_sectionlang_do_assignments_1lang_size_sections_1print_data_statement%X%P: unable to find version dependency `%s' %P%F: invalid syntax in flags %X%P: address 0x%v of %B section %s is not within region %s %X%P: region %s is full (%B section %s) %X%P: anonymous version tag cannot be combined with other version tags %X%P: duplicate version tag `%s' %X%P: duplicate expression `%s' in version information %X%P: unknown language `%s' in version information %P%F: bfd_link_hash_lookup failed: %E Common symbol size file %P: warning: could not find any targets that match endianness requirement %P%F: cannot open output file %s: %E %P%F:%s: can not make object file: %E %P%F:%s: can not set architecture: %E %P%F: can not create hash table: %E %P%F: bfd_hash_lookup failed creating symbol %s %P%F: bfd_hash_allocate failed creating symbol %s %P%F: failed creating section `%s': %E %F%B: file not recognized: %E %F%B: member %B in archive is not an object %F%B: could not read symbols: %E %F%P: invalid reloc statement Linker script and memory map %P%F: Illegal use of `%s' section %P%F: output format %s cannot represent section called %s %P:%S: warning: redeclaration of memory region '%s' %P:%S: warning: memory region %s not declared %X%P:%S: section has both a load address and a load region %F%S: non constant or forward reference address expression for section %s %P%X: Internal error on COFF shared library section %s %P%F: error: no memory region specified for loadable section `%s' %P: warning: no memory region specified for loadable section `%s' %P: warning: changing start of section %s by %lu bytes %P: warning: dot moved backwards before `%s' %P%F: can't relax section: %E %P%F: Failed to create hash table %P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported %P: warning: %s architecture of input file `%B' is incompatible with %s output %P%X: failed to merge target specific data of file %B %X%P: unable to read .exports section contents %F%P: bfd_record_phdr failed: %E %X%P: section `%s' assigned to non-existent phdr `%s' %X%P: section %s [%V -> %V] overlaps section %s [%V -> %V] %P%F:%s: can't set start address %P%F: can't set start address %P: warning: cannot find entry symbol %s; defaulting to %V %P: warning: cannot find entry symbol %s; not setting start address %P%F: multiple STARTUP files C++Javatypeinfo name for*typeinfo for*../../ld/ldlang.c?*[ Allocating common symbols %lx%08lx%08lx0x%V %T 0x%V %W %B %W (size before relaxing) %P%F: target %s not found biglittlesubsection alignment%B: file not recognized: %E %B: matching formats:%F %I ALL%F%P: invalid data statement Fail with %d SORT (CONSTRUCTORS) CONSTRUCTORS SORT(EXCLUDE_FILE(%s) Address of section %s set to CREATE_OBJECT_SYMBOLS FILL mask 0x%02x0x%V %W %s 0x%v0x%V %W RELOC %s %s+ *fill*0x%V %W %s0x%V %Wload base load address 0x%V[0x%V][unresolved]*undef* TARGET(%s) OUTPUT(%sLOAD %s START GROUP END GROUP Discarded input sections Memory Configuration AttributesLengthOriginName%-16s %-18s %-18s %s %-16s 0x%s !program header type/DISCARD/__load_start_%s__load_stop_%sCOMMON*?[-l.exportsphdr flagsphdr load addressNONE.startof.%s.sizeof.%s__start_%s__stop_%s*ABS*,:srecIEEEieeeCOFFcoff-m68k%P%F: unknown format type %s ../../ld/mri.cmri_alias%P%X: %s does not support reloc %s for set %s %P%X: Unsupported size %d for set %s %P%X: Different relocs used in set %s %P%X: Different object file formats composing set %s Set Symbol %G %X%C: reloc refers to symbol `%T' which is not being output %X%C: dangerous relocation: %s %X%C: multiple definition of `%T' %P: Disabling relaxation: it will not work with multiple definitions %X%P: error: duplicate retain-symbols-file %P%F: bfd_hash_table_init failed: %E %P%F: bfd_hash_lookup for insertion failed: %E %P: `-retain-symbols-file' overrides `-s' and `-S' %P%F: bfd_hash_lookup failed: %E additional relocation overflows omitted from the output relocation truncated to fit: %s against undefined symbol `%T' relocation truncated to fit: %s against symbol `%T' defined in %A section in %B relocation truncated to fit: %s against `%T'%F%P: bfd_hash_table_init failed: %E %F%P: bfd_hash_lookup failed: %E %X%C: undefined reference to `%T' %C: warning: undefined reference to `%T' %X%D: more undefined references to `%T' follow %D: warning: more undefined references to `%T' follow %X%B: undefined reference to `%T' %B: warning: undefined reference to `%T' %X%B: more undefined references to `%T' follow %B: warning: more undefined references to `%T' follow %B%F: could not read symbols: %E %B%F: could not read relocs: %E %P: warning: global constructor %s used %B: warning: definition of `%T' overriding common %B: warning: common of `%T' overridden by definition %B: warning: common of `%T' overridden by larger common %B: warning: larger common is here %B: warning: common of `%T' overriding smaller common %B: warning: smaller common is here %B: warning: multiple common of `%T' %B: warning: previous common is here Archive member included because of file (symbol) %P%F: this linker was not configured to use sysroots %X%P: can't set BFD default target to `%s': %E %P%F: --gc-sections and -r may not be used together %P%F: --relax and -r may not be used together %P%F: -r and -shared may not be used together %P%F: -F may not be used without -shared %P%F: -f may not be used without -shared ================================================== %P%F: cannot open map file %s: %E %P: link errors found, deleting executable `%s' %X%P: unable to open for source of copy `%s' %X%P: unable to open for destination of copy `%s' %s: total time in link: %ld.%06ld %P%F: BFD backend error: BFD_RELOC_CTOR unsupported %D: first defined here %X%P: %s: %E %B: reference to %s %B: definition of %s %X%C:../../ld/ldmain.c+%v%Xusing multiple gp valueswarning: %C: %s%s %P: %s%s %B: %s%s %B: warning: common is here %B: warning: defined here %s(%s)%B (%T) %s/ldscripts/usr/share/locale--sysroot=/usr/bini386-redhat-linux-gnuCOLLECT_NO_DEMANGLE_init_finiLDEMULATIONelf_i386-m%P%F: missing argument to -m -mips1-mips2-mips3-mips4-mips5-mips32-mips32r2-mips64-mips64r2-m486/usr/libusing external linker script:using internal linker script:%P%F: no input files %P: mode %s %F%B: final close failed: %E .exe.dll%P: Error writing file `%s' %P: Error closing file `%s' %s: data size %ld a.out4::KKbreloc_overflow.stabstr$GDB_STRINGS$$GDB_SYMBOLS$%F%P: final link failed: %E ../../ld/ldwrite.c%F%P: cannot create split section name for %s %F%P: clone section failed: %E %P%F: bfd_new_link_order failed d2build_link_order%X%P: %s ../../ld/ldexp.c%F%S %% by zero %F%S / by zero MAXPAGESIZECOMMONPAGESIZENULL TREE %B:%s+0x%vPROVIDE (%s, ASSERT (, %s) (%s)+=-=*=/=<<=>>=&=|=||&&==!=<<>>%F%S can not PROVIDE assignment to location counter %F%S invalid assignment to location counter %F%S assignment to location counter invalid outside of SECTION %F%S cannot move location counter backwards (from %V to %V) %P%F:%s: hash creation failed %X%S: unresolvable symbol `%s' referenced in expression %F%S: undefined symbol `%s' referenced in expression %F%S: undefined MEMORY region `%s' referenced in expression %F%S: unknown constant `%s' referenced in expression %F%S nonconstant expression for %s korrrVj)c k f 8\ ;\ >\ A\D\H\L\O\ R\U\X\[\E\I\^\a\iggggggg&dh-h4i5`6i7!i8%i9+i:0i;;i<7itj=@ib!h"h#,hEsiGi+h%s: Supported emulations: %S HLL ignored %S SYSLIB ignored GNUTARGET no emulation specific options. %P: unrecognised emulation mode: %s GNU ld version %s 2.17.50.0.6-14.el5 20061020 Supported emulations: %s Copyright 2005 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License. This program has absolutely no warranty. 0x%sno symbol[%s]%s generated--defsym %s%s:%ubuilt in linker script:%u%s+0x%v (type %s)%B%F: could not read symbols %B: In function `%T': %s:%T%B:(%A+0x%v)%ld%lu%%%c%P%F: please report this bug %F%P: internal error %s %d o+ + + + + + + + + + + + + + + + + + + + + + + + + + + +0/--/m/- +p- + + + + + +Q- +,1e1 +1h02 + + + + + + + + + + +, + + + + + + +a, + + + + + +0, +++%P: internal error: aborting at %s line %d in %s %P: internal error: aborting at %s line %d %P%F: cannot represent machine `%s' %P%F: cannot open linker script file %s: %E %F%P: invalid BFD target `%s' %P: skipping incompatible %s when searching for %s %F%P: attempted static link of dynamic object `%s' %F%P: %s (%s): No such file: %E %F%P: cannot find %s inside %s cannot find script file %s opened script file %s attempt to open %s failed attempt to open %s succeeded %s%s%s%s%s%s%F%P: %s: No such file: %E .a%F%P: cannot find %s L%B%F: could not read symbols; %E %X%C: prohibited cross reference from %s to `%T' in %s %P: symbol `%T' missing from main hash table %X%P: bfd_hash_table_init of cref table failed: %E %X%P: cref_hash_lookup failed: %E Cross Reference Table SymbolFile No symbols ../../ld/ldcref.c%X%P: cref alloc failed: %E /* Script for ld -r: link without relocation */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) /* For some reason, the Solaris linker makes bad executables if gld -r is used and the intermediate file has sections starting at non-zero addresses. Could be a Solaris ld bug, could be a GNU ld bug. But for now assigning the zero vmas works. */ SECTIONS { /* Read-only sections, merged into text segment: */ .interp 0 : { *(.interp) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.hash) } .dynsym 0 : { *(.dynsym) } .dynstr 0 : { *(.dynstr) } .gnu.version 0 : { *(.gnu.version) } .gnu.version_d 0: { *(.gnu.version_d) } .gnu.version_r 0: { *(.gnu.version_r) } .rel.init 0 : { *(.rel.init) } .rela.init 0 : { *(.rela.init) } .rel.text 0 : { *(.rel.text) } .rela.text 0 : { *(.rela.text) } .rel.fini 0 : { *(.rel.fini) } .rela.fini 0 : { *(.rela.fini) } .rel.rodata 0 : { *(.rel.rodata) } .rela.rodata 0 : { *(.rela.rodata) } .rel.data.rel.ro 0 : { *(.rel.data.rel.ro) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rel.data 0 : { *(.rel.data) } .rela.data 0 : { *(.rela.data) } .rel.tdata 0 : { *(.rel.tdata) } .rela.tdata 0 : { *(.rela.tdata) } .rel.tbss 0 : { *(.rel.tbss) } .rela.tbss 0 : { *(.rela.tbss) } .rel.ctors 0 : { *(.rel.ctors) } .rela.ctors 0 : { *(.rela.ctors) } .rel.dtors 0 : { *(.rel.dtors) } .rela.dtors 0 : { *(.rela.dtors) } .rel.got 0 : { *(.rel.got) } .rela.got 0 : { *(.rela.got) } .rel.bss 0 : { *(.rel.bss) } .rela.bss 0 : { *(.rela.bss) } .rel.plt 0 : { *(.rel.plt) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(.init)) } =0x90909090 .plt 0 : { *(.plt) } .text 0 : { *(.text .stub) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini 0 : { KEEP (*(.fini)) } =0x90909090 .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .preinit_array 0 : { KEEP (*(.preinit_array)) } .init_array 0 : { KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) } .fini_array 0 : { KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .got.plt 0 : { *(.got.plt) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } .bss 0 : { *(.dynbss) *(.bss) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } } /* Script for ld -Ur: link w/out relocation, do create constructors */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) /* For some reason, the Solaris linker makes bad executables if gld -r is used and the intermediate file has sections starting at non-zero addresses. Could be a Solaris ld bug, could be a GNU ld bug. But for now assigning the zero vmas works. */ SECTIONS { /* Read-only sections, merged into text segment: */ .interp 0 : { *(.interp) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.hash) } .dynsym 0 : { *(.dynsym) } .dynstr 0 : { *(.dynstr) } .gnu.version 0 : { *(.gnu.version) } .gnu.version_d 0: { *(.gnu.version_d) } .gnu.version_r 0: { *(.gnu.version_r) } .rel.init 0 : { *(.rel.init) } .rela.init 0 : { *(.rela.init) } .rel.text 0 : { *(.rel.text) } .rela.text 0 : { *(.rela.text) } .rel.fini 0 : { *(.rel.fini) } .rela.fini 0 : { *(.rela.fini) } .rel.rodata 0 : { *(.rel.rodata) } .rela.rodata 0 : { *(.rela.rodata) } .rel.data.rel.ro 0 : { *(.rel.data.rel.ro) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rel.data 0 : { *(.rel.data) } .rela.data 0 : { *(.rela.data) } .rel.tdata 0 : { *(.rel.tdata) } .rela.tdata 0 : { *(.rela.tdata) } .rel.tbss 0 : { *(.rel.tbss) } .rela.tbss 0 : { *(.rela.tbss) } .rel.ctors 0 : { *(.rel.ctors) } .rela.ctors 0 : { *(.rela.ctors) } .rel.dtors 0 : { *(.rel.dtors) } .rela.dtors 0 : { *(.rela.dtors) } .rel.got 0 : { *(.rel.got) } .rela.got 0 : { *(.rela.got) } .rel.bss 0 : { *(.rel.bss) } .rela.bss 0 : { *(.rela.bss) } .rel.plt 0 : { *(.rel.plt) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(.init)) } =0x90909090 .plt 0 : { *(.plt) } .text 0 : { *(.text .stub) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini 0 : { KEEP (*(.fini)) } =0x90909090 .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .preinit_array 0 : { KEEP (*(.preinit_array)) } .init_array 0 : { KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) } .fini_array 0 : { KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .got.plt 0 : { *(.got.plt) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } .bss 0 : { *(.dynbss) *(.bss) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } } /* Script for -N: mix text and data on same page; don't align data */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("/usr/i386-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = 0x08048000); . = 0x08048000 + SIZEOF_HEADERS; .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = .; /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) } .got.plt : { *(.got.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /DISCARD/ : { *(.note.GNU-stack) } } /* Script for -n: mix text and data on same page */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("/usr/i386-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = 0x08048000); . = 0x08048000 + SIZEOF_HEADERS; .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /DISCARD/ : { *(.note.GNU-stack) } } /* Script for -pie -z combreloc -z now -z relro: position independent executable, combine & sort relocs */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("/usr/i386-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = 0 + SIZEOF_HEADERS; .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.got) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /DISCARD/ : { *(.note.GNU-stack) } } /* Script for -pie -z combreloc: position independent executable, combine & sort relocs */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("/usr/i386-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = 0 + SIZEOF_HEADERS; .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /DISCARD/ : { *(.note.GNU-stack) } } /* Script for ld -pie: link position independent executable */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("/usr/i386-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = 0 + SIZEOF_HEADERS; .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /DISCARD/ : { *(.note.GNU-stack) } } /* Script for --shared -z combreloc -z now -z relro: shared library, combine & sort relocs */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("/usr/i386-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = 0 + SIZEOF_HEADERS; .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) } .fini_array : { KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.got) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /DISCARD/ : { *(.note.GNU-stack) } } /* Script for --shared -z combreloc: shared library, combine & sort relocs */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("/usr/i386-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = 0 + SIZEOF_HEADERS; .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) } .fini_array : { KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /DISCARD/ : { *(.note.GNU-stack) } } /* Script for ld --shared: link shared library */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("/usr/i386-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = 0 + SIZEOF_HEADERS; .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) } .fini_array : { KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /DISCARD/ : { *(.note.GNU-stack) } } /* Script for -z combreloc -z now -z relro: combine and sort reloc sections */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("/usr/i386-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = 0x08048000); . = 0x08048000 + SIZEOF_HEADERS; .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.got) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /DISCARD/ : { *(.note.GNU-stack) } } /* Script for -z combreloc: combine and sort reloc sections */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("/usr/i386-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = 0x08048000); . = 0x08048000 + SIZEOF_HEADERS; .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /DISCARD/ : { *(.note.GNU-stack) } } /* Default linker script, for normal executables */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("/usr/i386-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = 0x08048000); . = 0x08048000 + SIZEOF_HEADERS; .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } . = ALIGN(32 / 8); . = ALIGN(32 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /DISCARD/ : { *(.note.GNU-stack) } } %P%F: --just-symbols may not be used on DSO: %B -Bgroup Selects group name lookup rules for DSO --disable-new-dtags Disable new dynamic tags --enable-new-dtags Enable new dynamic tags --eh-frame-hdr Create .eh_frame_hdr section --hash-style=STYLE Set hash style to sysv, gnu or both -z combreloc Merge dynamic relocs into one section and sort -z defs Report unresolved symbols in object files. -z execstack Mark executable as requiring executable stack -z initfirst Mark DSO to be initialized first at runtime -z interpose Mark object to interpose all DSOs but executable -z lazy Mark object lazy runtime binding (default) -z loadfltr Mark object requiring immediate process -z muldefs Allow multiple definitions -z nocombreloc Don't merge dynamic relocs into one section -z nocopyreloc Don't create copy relocs -z nodefaultlib Mark object not to use default search paths -z nodelete Mark DSO non-deletable at runtime -z nodlopen Mark DSO not available to dlopen -z nodump Mark DSO not available to dldump -z noexecstack Mark executable as not requiring executable stack -z norelro Don't create RELRO program header -z now Mark object non-lazy runtime binding -z origin Mark object requiring immediate $ORIGIN processing at runtime -z relro Create RELRO program header -z max-page-size=SIZE Set maximum page size to SIZE -z common-page-size=SIZE Set common page size to SIZE -z KEYWORD Ignored for Solaris compatibility %F%P: place_orphan failed: %E %F%P: map sections to segments failed: %E %P%F: failed to set dynamic section sizes: %E %F%B: Can't read contents of section .gnu.warning: %E %P%F: failed to record assignment to %s: %E %F%P:%B: bfd_elf_get_bfd_needed_list failed: %E %P: warning: %s, needed by %B, not found (try using -rpath or -rpath-link) %P: warning: %s, needed by %B, may conflict with %s %P%F: invalid hash style `%s' %P%F: invalid maxium page size `%s' %P%F: invalid common page size `%s' .rela.dyn.rel.rel.dyn.gnu.warning..note.plt%s/lib%s%s.soeelf_i386.c%P%F: looping in map_segmentsLD_RUN_PATH.gnu.warningincludelibc.so%F%P:%B: bfd_stat failed: %E found %s at %s %s needed by %B LD_LIBRARY_PATH/usr/etc/ld.so.conf%s/%s.so.sysvbothinitfirstinterposeloadfltrnodefaultlibnodeletenodlopennodumplazymuldefsnocombrelocnocopyrelocnoexecstacknorelromax-page-size=common-page-size=elf32-i386disable-new-dtagsenable-new-dtagseh-frame-hdrexclude-libshash-styleBgroup.rodata.interp.sdatah[iSihOih ! 2 ? L W ldscripts/i386linux.xrldscripts/i386linux.xuldscripts/i386linux.xbnldscripts/i386linux.xnldscripts/i386linux.x%s/lib%s%s.saei386linux.ci386linuxa.out-i386-linux/* Script for ld -r: link without relocation */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) /* For some reason, the Solaris linker makes bad executables if gld -r is used and the intermediate file has sections starting at non-zero addresses. Could be a Solaris ld bug, could be a GNU ld bug. But for now assigning the zero vmas works. */ SECTIONS { /* Read-only sections, merged into text segment: */ .interp 0 : { *(.interp) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.hash) } .dynsym 0 : { *(.dynsym) } .dynstr 0 : { *(.dynstr) } .gnu.version 0 : { *(.gnu.version) } .gnu.version_d 0: { *(.gnu.version_d) } .gnu.version_r 0: { *(.gnu.version_r) } .rel.init 0 : { *(.rel.init) } .rela.init 0 : { *(.rela.init) } .rel.text 0 : { *(.rel.text) } .rela.text 0 : { *(.rela.text) } .rel.fini 0 : { *(.rel.fini) } .rela.fini 0 : { *(.rela.fini) } .rel.rodata 0 : { *(.rel.rodata) } .rela.rodata 0 : { *(.rela.rodata) } .rel.data.rel.ro 0 : { *(.rel.data.rel.ro) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rel.data 0 : { *(.rel.data) } .rela.data 0 : { *(.rela.data) } .rel.tdata 0 : { *(.rel.tdata) } .rela.tdata 0 : { *(.rela.tdata) } .rel.tbss 0 : { *(.rel.tbss) } .rela.tbss 0 : { *(.rela.tbss) } .rel.ctors 0 : { *(.rel.ctors) } .rela.ctors 0 : { *(.rela.ctors) } .rel.dtors 0 : { *(.rel.dtors) } .rela.dtors 0 : { *(.rela.dtors) } .rel.got 0 : { *(.rel.got) } .rela.got 0 : { *(.rela.got) } .rel.bss 0 : { *(.rel.bss) } .rela.bss 0 : { *(.rela.bss) } .rel.ldata 0 : { *(.rel.ldata) } .rela.ldata 0 : { *(.rela.ldata) } .rel.lbss 0 : { *(.rel.lbss) } .rela.lbss 0 : { *(.rela.lbss) } .rel.lrodata 0 : { *(.rel.lrodata) } .rela.lrodata 0 : { *(.rela.lrodata) } .rel.plt 0 : { *(.rel.plt) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(.init)) } =0x90909090 .plt 0 : { *(.plt) } .text 0 : { *(.text .stub) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini 0 : { KEEP (*(.fini)) } =0x90909090 .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .preinit_array 0 : { KEEP (*(.preinit_array)) } .init_array 0 : { KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) } .fini_array 0 : { KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .got.plt 0 : { *(.got.plt) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } .bss 0 : { *(.dynbss) *(.bss) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ } .lbss 0 : { *(.dynlbss) *(.lbss) *(LARGE_COMMON) } .lrodata 0 : { *(.lrodata) } .ldata 0 : { *(.ldata) } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } } /* Script for ld -Ur: link w/out relocation, do create constructors */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) /* For some reason, the Solaris linker makes bad executables if gld -r is used and the intermediate file has sections starting at non-zero addresses. Could be a Solaris ld bug, could be a GNU ld bug. But for now assigning the zero vmas works. */ SECTIONS { /* Read-only sections, merged into text segment: */ .interp 0 : { *(.interp) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.hash) } .dynsym 0 : { *(.dynsym) } .dynstr 0 : { *(.dynstr) } .gnu.version 0 : { *(.gnu.version) } .gnu.version_d 0: { *(.gnu.version_d) } .gnu.version_r 0: { *(.gnu.version_r) } .rel.init 0 : { *(.rel.init) } .rela.init 0 : { *(.rela.init) } .rel.text 0 : { *(.rel.text) } .rela.text 0 : { *(.rela.text) } .rel.fini 0 : { *(.rel.fini) } .rela.fini 0 : { *(.rela.fini) } .rel.rodata 0 : { *(.rel.rodata) } .rela.rodata 0 : { *(.rela.rodata) } .rel.data.rel.ro 0 : { *(.rel.data.rel.ro) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rel.data 0 : { *(.rel.data) } .rela.data 0 : { *(.rela.data) } .rel.tdata 0 : { *(.rel.tdata) } .rela.tdata 0 : { *(.rela.tdata) } .rel.tbss 0 : { *(.rel.tbss) } .rela.tbss 0 : { *(.rela.tbss) } .rel.ctors 0 : { *(.rel.ctors) } .rela.ctors 0 : { *(.rela.ctors) } .rel.dtors 0 : { *(.rel.dtors) } .rela.dtors 0 : { *(.rela.dtors) } .rel.got 0 : { *(.rel.got) } .rela.got 0 : { *(.rela.got) } .rel.bss 0 : { *(.rel.bss) } .rela.bss 0 : { *(.rela.bss) } .rel.ldata 0 : { *(.rel.ldata) } .rela.ldata 0 : { *(.rela.ldata) } .rel.lbss 0 : { *(.rel.lbss) } .rela.lbss 0 : { *(.rela.lbss) } .rel.lrodata 0 : { *(.rel.lrodata) } .rela.lrodata 0 : { *(.rela.lrodata) } .rel.plt 0 : { *(.rel.plt) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(.init)) } =0x90909090 .plt 0 : { *(.plt) } .text 0 : { *(.text .stub) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini 0 : { KEEP (*(.fini)) } =0x90909090 .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .preinit_array 0 : { KEEP (*(.preinit_array)) } .init_array 0 : { KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) } .fini_array 0 : { KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .got.plt 0 : { *(.got.plt) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } .bss 0 : { *(.dynbss) *(.bss) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ } .lbss 0 : { *(.dynlbss) *(.lbss) *(LARGE_COMMON) } .lrodata 0 : { *(.lrodata) } .ldata 0 : { *(.ldata) } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } } /* Script for -N: mix text and data on same page; don't align data */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("/usr/i386-redhat-linux/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/i386-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = 0x400000); . = 0x400000 + SIZEOF_HEADERS; .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.ldata : { *(.rel.ldata .rel.ldata.* .rel.gnu.linkonce.l.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rel.lbss : { *(.rel.lbss .rel.lbss.* .rel.gnu.linkonce.lb.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rel.lrodata : { *(.rel.lrodata .rel.lrodata.* .rel.gnu.linkonce.lr.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = .; /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) } .got.plt : { *(.got.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /DISCARD/ : { *(.note.GNU-stack) } } /* Script for -n: mix text and data on same page */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("/usr/i386-redhat-linux/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/i386-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = 0x400000); . = 0x400000 + SIZEOF_HEADERS; .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.ldata : { *(.rel.ldata .rel.ldata.* .rel.gnu.linkonce.l.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rel.lbss : { *(.rel.lbss .rel.lbss.* .rel.gnu.linkonce.lb.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rel.lrodata : { *(.rel.lrodata .rel.lrodata.* .rel.gnu.linkonce.lr.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /DISCARD/ : { *(.note.GNU-stack) } } /* Script for -pie -z combreloc -z now -z relro: position independent executable, combine & sort relocs */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("/usr/i386-redhat-linux/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/i386-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = 0 + SIZEOF_HEADERS; .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ldata .rel.ldata.* .rel.gnu.linkonce.l.*) *(.rel.lbss .rel.lbss.* .rel.gnu.linkonce.lb.*) *(.rel.lrodata .rel.lrodata.* .rel.gnu.linkonce.lr.*) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.got) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /DISCARD/ : { *(.note.GNU-stack) } } /* Script for -pie -z combreloc: position independent executable, combine & sort relocs */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("/usr/i386-redhat-linux/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/i386-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = 0 + SIZEOF_HEADERS; .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ldata .rel.ldata.* .rel.gnu.linkonce.l.*) *(.rel.lbss .rel.lbss.* .rel.gnu.linkonce.lb.*) *(.rel.lrodata .rel.lrodata.* .rel.gnu.linkonce.lr.*) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /DISCARD/ : { *(.note.GNU-stack) } } /* Script for ld -pie: link position independent executable */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("/usr/i386-redhat-linux/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/i386-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = 0 + SIZEOF_HEADERS; .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.ldata : { *(.rel.ldata .rel.ldata.* .rel.gnu.linkonce.l.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rel.lbss : { *(.rel.lbss .rel.lbss.* .rel.gnu.linkonce.lb.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rel.lrodata : { *(.rel.lrodata .rel.lrodata.* .rel.gnu.linkonce.lr.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /DISCARD/ : { *(.note.GNU-stack) } } /* Script for --shared -z combreloc -z now -z relro: shared library, combine & sort relocs */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("/usr/i386-redhat-linux/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/i386-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = 0 + SIZEOF_HEADERS; .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ldata .rel.ldata.* .rel.gnu.linkonce.l.*) *(.rel.lbss .rel.lbss.* .rel.gnu.linkonce.lb.*) *(.rel.lrodata .rel.lrodata.* .rel.gnu.linkonce.lr.*) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) } .fini_array : { KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.got) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /DISCARD/ : { *(.note.GNU-stack) } } /* Script for --shared -z combreloc: shared library, combine & sort relocs */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("/usr/i386-redhat-linux/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/i386-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = 0 + SIZEOF_HEADERS; .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ldata .rel.ldata.* .rel.gnu.linkonce.l.*) *(.rel.lbss .rel.lbss.* .rel.gnu.linkonce.lb.*) *(.rel.lrodata .rel.lrodata.* .rel.gnu.linkonce.lr.*) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) } .fini_array : { KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /DISCARD/ : { *(.note.GNU-stack) } } /* Script for ld --shared: link shared library */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("/usr/i386-redhat-linux/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/i386-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = 0 + SIZEOF_HEADERS; .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.ldata : { *(.rel.ldata .rel.ldata.* .rel.gnu.linkonce.l.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rel.lbss : { *(.rel.lbss .rel.lbss.* .rel.gnu.linkonce.lb.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rel.lrodata : { *(.rel.lrodata .rel.lrodata.* .rel.gnu.linkonce.lr.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) } .fini_array : { KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /DISCARD/ : { *(.note.GNU-stack) } } /* Script for -z combreloc -z now -z relro: combine and sort reloc sections */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("/usr/i386-redhat-linux/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/i386-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = 0x400000); . = 0x400000 + SIZEOF_HEADERS; .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ldata .rel.ldata.* .rel.gnu.linkonce.l.*) *(.rel.lbss .rel.lbss.* .rel.gnu.linkonce.lb.*) *(.rel.lrodata .rel.lrodata.* .rel.gnu.linkonce.lr.*) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.got) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /DISCARD/ : { *(.note.GNU-stack) } } /* Script for -z combreloc: combine and sort reloc sections */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("/usr/i386-redhat-linux/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/i386-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = 0x400000); . = 0x400000 + SIZEOF_HEADERS; .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.ldata .rel.ldata.* .rel.gnu.linkonce.l.*) *(.rel.lbss .rel.lbss.* .rel.gnu.linkonce.lb.*) *(.rel.lrodata .rel.lrodata.* .rel.gnu.linkonce.lr.*) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /DISCARD/ : { *(.note.GNU-stack) } } /* Default linker script, for normal executables */ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("/usr/i386-redhat-linux/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/i386-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = 0x400000); . = 0x400000 + SIZEOF_HEADERS; .interp : { *(.interp) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.ldata : { *(.rel.ldata .rel.ldata.* .rel.gnu.linkonce.l.*) } .rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) } .rel.lbss : { *(.rel.lbss .rel.lbss.* .rel.gnu.linkonce.lb.*) } .rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) } .rel.lrodata : { *(.rel.lrodata .rel.lrodata.* .rel.gnu.linkonce.lr.*) } .rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(.fini_array)) KEEP (*(SORT(.fini_array.*))) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) } .data : { *(.data .data.* .gnu.linkonce.d.*) KEEP (*(.gnu.linkonce.d.*personality*)) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) } .lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) } .ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) : { *(.ldata .ldata.* .gnu.linkonce.l.*) . = ALIGN(. != 0 ? 64 / 8 : 1); } . = ALIGN(64 / 8); _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } /DISCARD/ : { *(.note.GNU-stack) } } eelf_x86_64.ci386:x86-64elf_x86_64elf64-x86-64& 3 ! 2 ? L W T%dconst volatileconst __restrictconst volatile __restrict__ct__dtassign_operatoroperator _imp____imp__GLOBAL___std____sti____vtbl__:: virtual tableglobal constructors keyed to global destructors keyed to import stub for _ada____<%s>falsetrueJArray1Z~unsigned__complexvoidboolwchar_tlong doublefloat%xint%u_t...-2147483648U__pt____tm____ps____S{anonymous}template <> class0123456789Qt__thunk___t type_info node type_info function staticDemangling disabledautoGNU (g++) style demanglinglucidLucid (lcc) style demanglingarmARM style demanglinghpHP (aCC) style demanglingedgEDG style demanglinggnu-v3javaJava style demanglinggnatGNAT style demanglingnw newdl deletevn new []vd delete []aseqgtplusaplminusamimultamuamlconvertnegatetrunc_mod%amd%=trunc_divadvtruth_andifaatruth_orifootruth_notpostincrementpppostdecrement--mmbit_ioraorbit_xor^aer^=bit_andaadbit_notcoclalshiftarshiftarscomponent->rfindirectmethod_call->()addrarrayvccompoundcmcond?:cnmax>?mxmin*szsizeof E 7   7  7 EXXXXXXXXXXXXXXXEXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXE 8 8 YYjuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuutuuuuuuuuuuuuuuuuuuuuuujuuJuuuuuuuuuuQu.~-~-~-~-~-~-~-~-~-~-,*,*,*,*,*,*,*,*)-*,*,*,,*.,*,*,s,,*,*,*,*(,,*+,*,**,*,*,*,*,*,*,*,*+,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,***virtual function thunk (delta:%d) for Automatic selection based on executableGNU (g++) V3 ABI-style demangling999999999999999999999999999999999999999999999999999::::::::::::::::::::::::::::::::::::::::::: R1A1ABAAAL{LLK, std::allocator >std::basic_istream >std::basic_ostream >std::basic_iostream > out of memory ;p\? @@ AA,k$6<> 6L><6>`6>6L?6?6@6@7LA,7AP7Al7LB7B7C7C7 D 8DD8 Eh8E8LF8 G8,>P>t>> ><>> ?D?|h?|?AB F >rAB A @?AB F8 AAB FFX BAB AGx D AB FI GJAB AF HAB C HAB KFF `IZAB  I]AB D0 JbAB DL JpAB Fl KcAB D pKAB E PLAB AG pMAB E NAB D NAD  NAB D8 O!AB BFX TwAB AGx pX0AD  X AB FH Pb#AD AC bmAB F bAB IfAB E0 guAB D LgAB KFFpphZAB IhAB FHj|AB A0kHAB FFkAB FI lGAB C ,mAB FLEPncAD Fp0p]AD DpbAB BIIAG PnAB U!AB EEAB LE$@3AG I@AM X#AG pЈAB Fp^AG Њ)AG #AG 0#AG `/AG  AB F(&AG @AG IN`@4AB F [AB FEE AB ACFvAB AFpNAB BFAB AG(hAB ADlAD ACd`AB C AB I #AB PiAB FAB OAB  0ZAB F, AB D AB  \wAB ACF0-AD `-AD .AD .AD /AG  )AB PAB MI0PAB HpAB TFh -AB P AB F`2AB FAB C0AB IIMAB F AD 8 bAB NFXbAB NFx+AB F0AB FPAB D AB D AB FLKAB F 4AB KFF XAB FOH|AB F 0AB FIFAB RNAB I0AB AF ?AB (8 D  F AB D dAB LF[jAB I0uAB FT&FB .AB (AB @6GB  (aAB FFFLAB FHl1AB AB D AB IFF *AB P1AB A AB IFF AB ACC@pAB D\0-AB t`3AB ,AB AAB MF AAB MFp BAB MF kAB 0!yAB 4!AB L@"jAB d"FB |"FB "FB " FB "FB #FB #FB   #FB $0#FB <@#FB T`#FB l#FB #2AB J#FB #BAB O@$FB `$FB A$FB ($FB @$FB X$AB p$AB $AB %,AB 0%FB AP%FB p%AB F  &^AB BF,&AB FL`'+AB d'+AB |'(AB 'HB ("AB @(AB D`)AB )AB )AB F0p* AB BIP7 AB h7"AB 7"AB  8AB FFF8:AB 9"AB 09AB FF 9lAB E,0:1AB IHLp;AG Il<AB FE 0=AB FFF =dAB FFF@BAB FEgAB F pF;AB , FAB D FTAB FId 0HAB F J{AB F LAB F M3AB F PSAB FF!PQAB F$!R]AB D@!@S AB F`!PV{AB O!WAB FI!`X AB D!]fAB F!b:AD O!0d$AB FK"`eAB AD<"0fAB F\"hAB Ax"iAB "i)AB F"mAB IE"oAB AI"qAB F#tAB KI 0#ujAB IIFT#@wAB Ft#x0AB #@xAB O #}|AB FIF#P~WAB #~AD FI$AB  $aAB FI@$BAB X$`0AB p${AB O$AB FI$ AB D$fAB F$0:AD O %p$AB FK,%AB ADL%pAB Fl%AB A%AB %)AB F%AB IE%0AB AI&@AB F &0AB KI @&jAB IIFd&AB F&P0AB &AB O &|AB FIFzR| \AM 8`AD FXvAB JxPFAB A AB BCAB  AD  TAB FGNDEAB I 4tNAB AD XAB AD |, AB AD AB A  AB IE  oAB ACFd #AB A x SAB FPE D RAB FPE h aAB FH < gAB FPE  wAB FNF  AB BF ` _AB FZ yAB I < AB IE ` AB IE4(AB CDAB CnAB DMAB DLAB  PAB BF<AB I\\AB O|LAB C #AB AG(EAB F-AB C 1 AB ACF $=AB ACC H`>fAB BF l@yAB IEA6AB F (GiAB FV tG"AB ADH'AB F NTAB AD <UdAB BF`WPAB CHWoAB C\4AB \4AB \+AB ]+AB ](AD A ,,]jAB FQE Px]OAB FNEt]1AB FF];AQ ]8AD  ^AB E|^^AD A^AB AC(P_AB FFH_/AG d_+AD C _NAB BFaMAB DHa5AB FN haqAB AG  arAB IE( bOAB FF H PbAB ISl L%AB AC \AB IE AB IE ZAB ACF ЄRAB ACF AB AC < AB INL ` AB FQ dAB IE Њ)AB F AB  ԍwAB IE 0SAB J ( pAB BFL L AB h P AB  TAB BF @AB AG AB FI AB IE tSAB F 4 "AB IEX `AB Fx AG C ОAB  ԞEAB F [AB F DAB F  $zAB BC8 oAB F X ФCAB AG| AB F AB F \tAB C ?AB A mAB IN 0BAB AG <\RAB FW `AD BC AB FL\PBAB C|AB A MAB FNFAB E( AB EH#AB E- [  \ c X\ ,\ 2\ O\ S\ h\ k\ \  \ \ @c \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ] mf/ [\ ] X\"I\ ] ^ XE\ [ ] I] I] 8\] ]  ] ] ] ;\#] 3j -] 3j (] >\,] >\0] I8] ] ?] I] L] I] K] O] R] L]] L\] A\`] U\l] U\o] R\z] R\}] L] L] I] I] ] ] ] ] S\] S\] O\] ] ] ] ] ] ] V\] V\] L\] $[ ] $[ ^ ^ ] ^ ] ^\" ^\! D\] a\] a\] H\] ^ ,k^ ^ ^ ^ 3j ^ ^ !^ V\&^ ] ,^ ] /^  \8^  \;^ @^ C^ @^ F^ J^ M^ J^ P^ T^ W^ T^ Z^ cgP\ ^^ b^ e^ j L\j mfl] U\] V\j V\] ^ 8^ G] $[ j A\j j [ 3j \ \ ]] Lj ] j ]  ] X\"I\ ] ^ !] j D\XE\" ^\ [ j ;\j >\ ] ] -] 3j ] ] j j / [\f] ] L\ \ j O\z] R\] S\j 8\] Ij ^^ ] Ij I,k^ j U^ j O] j H\P\ I] ] a\&e^ b^ e^ j  j  >[ j j j P[ P[ K[  K[  W[ W[ j  j  j  j  k  k k  &[ k k  k  k  $k $k k k 6k 6k -k -k 9[ 9[  C[ j Ek  k `U0 :D`òSP0`G@94E@Eop5p l@8ڹ6ٳP6>Pojq`߹a 8~k`a2cp-XABwpjp2<Ͳ<@=PPVв4K@B00nPp4H rpSp 9`a޲ `Т+cP7v b Cj੻P=Gp˲pPj5n<Ю3@< 2>l P vp  @% 'hZ 0 7`   cg\  x'`'$q$%(0fPVY 0db]}@x`XW@^ +:#5+f +n #`'`'$$$%(P~  '~P'`'$@$%(pMY XY p0@^ +:#5+f +n #$.$ ` a CBBBBQ00000000000000000000000000000000  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~`e a  ddlibbfd-2.17.50.0.6-14.el5.so__gmon_start___Jv_RegisterClasseshtab_find_slotbfd_elf_set_dt_needed_namebfd_getb64bfd_link_add_undefbfd_check_formatbfd_hash_newfuncxexitbfd_target_listbfd_get_archbfd_set_gp_sizebfd_emul_get_commonpagesizebfd_und_sectionbfd_search_for_target_sch_tolowerbfd_set_errorbfd_get_reloc_sizebfd_set_error_program_namehtab_hash_string_sch_istablebfd_elf_get_dt_sonamebfd_section_already_linked_table_initbfd_elf_set_dyn_lib_classxmalloc_set_program_namebfd_check_format_matchesbfd_closebfd_elf_get_bfd_needed_listxcallocbfd_errmsgbfd_elf_size_dynsym_hash_dynstrbfd_openr_next_archived_filebfd_new_link_orderbfd_hash_set_default_sizebfd_abs_sectionbfd_hash_lookupbfd_section_already_linked_table_freebfd_arch_mach_octets_per_bytebfd_cache_closebfd_get_section_by_namebfd_elf_get_runpath_listbfd_emul_set_maxpagesizebfd_map_over_sectionsbfd_elf_get_dyn_lib_classbfd_scan_archunlink_if_ordinarybfd_elf_get_needed_listxmalloc_bfd_elf_map_sections_to_segmentsbfd_get_unique_section_namebfd_putl16bfd_arch_get_compatiblebfd_elf_size_dynamic_sectionsbfd_set_default_targetbfd_link_hash_lookupbfd_set_format_bfd_elf_match_sections_by_typexreallocbfd_emul_get_maxpagesizebfd_elf_discard_infobfd_get_reloc_code_namebfd_set_error_handlerbfd_putl32bfd_coff_get_comdat_sectionbfd_octets_per_bytebfd_link_hash_traversebfd_emul_set_commonpagesizebfd_record_phdrbfd_hash_table_initbfd_hash_allocatebfd_scan_vmabfd_get_section_by_name_ifbfd_getb16lbasenamebfd_statbfd_hash_traversebfd_i386linux_size_dynamic_sectionsbfd_putl64bfd_hash_table_free_bfd_fix_excluded_sec_symsbfd_wrapped_link_hash_lookupbfd_get_errorbfd_make_section_with_flagsbfd_getb32bfd_get_section_contentsbfd_reloc_type_lookupbfd_openrbfd_openwbfd_hash_table_init_nhtab_findhtab_createobjalloc_free_blockbfd_elf_record_link_assignmentbfd_set_start_addressbfd_initbfd_printable_namebfd_canonicalize_relocbfd_get_reloc_upper_bound_finibfd_make_section_anyway_bfd_elf_tls_setup_xexit_cleanuplibc.so.6_IO_stdin_usedglobfree64strcpy__rawmemchr__printf_chkfnmatch_IO_putcstrncmpoptindstrrchr__strdupdcgettextglob64ftellstrncpy__stack_chk_failputcharabortstdinstrpbrksbrkrewindisattyfeoffgetsstrlenmemsetstrstrstrcspnfseek__fprintf_chkstdoutfputcgetrusagefputsmemcpyfclose__strtol_internalstrcatstrcasecmp__xstat64getenvsscanfoptargstderr_obstack_newchunkgetopt_longstrncat__realpath_chkfilenofwritefreadstrchrqsort__sprintf_chkmemmovefopen64_obstack_beginbindtextdomainaccess_IO_getcopterrstrcmp__libc_start_mainferrorgetopt_long_only__strtoul_internal__environ_edata__bss_start_endcplus_demangle_operatorscplus_demangle_builtin_typeslibiberty_concat_ptrlibiberty_demanglerscurrent_demangling_styleGLIBC_2.2.3GLIBC_2.4GLIBC_2.1GLIBC_2.2GLIBC_2.3.4GLIBC_2.0/lib/ld-linux.so.2ld.debug-{ ELF@4PD4 (444444|1|1|1| | |<  HHH Ptdl l ttQtd 44HH !ohh+ LL 3  ^ ;ojjxHopW TT`  i d! o@@+uc{d l t8{ 8D6| |1 1 1 1d  < <$ < ? ` TC TCdC.shstrtab.interp.note.ABI-tag.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.dyn.rel.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.ctors.dtors.jcr.data.rel.ro.dynamic.got.got.plt.data.bss.gnu_debuglink.dynbss.gnu.liblist.gnu.conflict.gnu.prelink_undo 44HH !ohh+ LL o  <HH ;ojjxHopW TT`  i d! o@@+uc{d l t8{ 8D6| |1 1 1 1d  < <$ < ? ` `C|  G 3 Oq l[|[l`!