ELF>V@@#@8 @@@@@@88@8@@@I!I! N!NN(3 N!NNTT@T@DDPtd 5 5_ 5_\I\IQtdRtdN!NN/lib64/ld-linux-x86-64.so.2GNU GNU6(YAN~p~R2$~3|<NŹ@ĉ9L> >[~juݣkgUa`)>a = INC#\KagJ1 5|'fvU+$"T}n O <4Dn)P BhG])I,8 ^ w#Tv0S`i=$@ p$L&Zi "LBhiC!hii4 $LjiZ'@o #L6pi "LD!hiHi "L@ilibdl.so.2__gmon_start__dlclosedlsymdlopendlerrorlibc.so.6fflushstrcpy__rawmemchrvasprintffnmatchreaddirexecv_IO_putcsetlocalefopenstrncmpoptindstrrchrpipe__strdupperrorclosedirftellstrncpytime__lxstatunlinkputcharreallocabortstdin_exitstrpbrkkillchmodsbrk__assert_failrewindstrtolisattymmapfeoffgetscallocmsyncstrlentmpfilememsetglobstrstr__errno_locationfseekmemcmpgetpagesizedup2vsnprintfstdoutfputcfseeko64getrusagefputsstrnlenlseekmemcpyfclosestrtoulmallocstrcatumaskstrcasecmpftello64realpathremovegetgidopendir__ctype_b_locgetenvsscanf_obstack_allocated_poptargstderrmunmap_obstack_begin_1wait4_obstack_newchunkgetuidgetopt_longexecvpstrncasecmp__fxstatqsort_rfileno_obstack_memory_usedgetcwdfwritefreadwaitpidstrchrvforkmkstempsfdopenqsortsleepobstack_alloc_failed_handlerbsearchfcntl__xstatgetrlimitmemmovefopen64pread_obstack_beginaccess_IO_getcpipe2opterrstrcmpstrerror__libc_start_mainferrorstpcpyvfprintfglobfreegetopt_long_onlysysconf_obstack_free__environGLIBC_2.2.5GLIBC_2.9GLIBC_2.8GLIBC_2.14GLIBC_2.3GLIBC_2.11 ui L8ii Xii blii wui LOB@iHi`i~hipiiiP P(P0P8P@PHPPPXP`P hP pP xP P PPPPPPPPPPPPPPPQQQQ Q!(Q"0Q#8Q$@Q%HQ&PQ'XQ(`Q)hQ*pQ+xQ,Q-Q.Q/Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q:Q;Q<RR=R>R? R@(RA0RB8RC@RDHREPRFXRG`RHhRIpRJxRKRLRMRNRORPRQRRRSRTRURVRWRXRYRZR[S\S]S^S_ S`(Sa0Sb8Sc@SdHSePSfXSg`ShhSipSjxSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzS{T|T}HH=,AHtKH52,A%4,A@%2,Ah%*,Ah%",Ah%,Ah%,Ah% ,Ah%,Ah%+Ahp%+Ah`%+Ah P%+Ah @%+Ah 0%+Ah %+Ah %+Ah%+Ah%+Ah%+Ah%+Ah%+Ah%+Ah%+Ah%+Ah%z+Ahp%r+Ah`%j+AhP%b+Ah@%Z+Ah0%R+Ah %J+Ah%B+Ah%:+Ah%2+Ah %*+Ah!%"+Ah"%+Ah#%+Ah$% +Ah%%+Ah&%*Ah'p%*Ah(`%*Ah)P%*Ah*@%*Ah+0%*Ah, %*Ah-%*Ah.%*Ah/%*Ah0%*Ah1%*Ah2%*Ah3%*Ah4%*Ah5%*Ah6%z*Ah7p%r*Ah8`%j*Ah9P%b*Ah:@%Z*Ah;0%R*Ah< %J*Ah=%B*Ah>%:*Ah?%2*Ah@%**AhA%"*AhB%*AhC%*AhD% *AhE%*AhF%)AhGp%)AhH`%)AhIP%)AhJ@%)AhK0%)AhL %)AhM%)AhN%)AhO%)AhP%)AhQ%)AhR%)AhS%)AhT%)AhU%)AhV%z)AhWp%r)AhX`%j)AhYP%b)AhZ@%Z)Ah[0%R)Ah\ %J)Ah]%B)Ah^%:)Ah_%2)Ah`%*)Aha%")Ahb%)Ahc%)Ahd% )Ahe%)Ahf%(Ahgp%(Ahh`%(AhiP%(Ahj@%(Ahk0%(Ahl %(Ahm%(Ahn%(Aho%(Ahp%(Ahq%(Ahr%(Ahs%(Aht%(Ahu%(Ahv%z(Ahwp%r(Ahx`%j(AhyP%b(Ahz@%Z(Ah{0%R(Ah| %J(Ah}%B(Ah~Si@AL QAHc@ADL@AL=@AI9smAAtD@MHcf@MMEDEHcA`MHc? ~M9tM=~DM6MID?AL?A[SHHH =CAt7 Ht$xV>A1ɿHtM)H4ŀk1uHT$^uH|$vM1/HT$H1htM19H [HPH=AUSHHpHTI9v uMI)̃x<u1I(A1A9~ HHMcz@u7H>AHB .HcH>AHH{>AH>AHLH >AHHBHp>AHujHH-H>AH{H){(t3HCHHuHHHHCHSHCHpfHCHCHCHd8uMH41HHEH~H9tOH t*AGAFH9wA^HA^H AF AFAN A AVAuIɉAI I LLDHLT$8LD$0LL$([ LL$(LD$0LT$8L9t ^,^l^ML|$fALtBw(fAAAAWAVAWAVfAML1M)21pH,ALETEDDWOH HHI9uwALET EH L HET~DRIDI J DRI9tA WA HI9t ^x^{^LLLMIwLd$ LH+AD$,H9t ^^(^H|$DžAD$HE^KLd$LDžAT$(HHIH\$A\$,HI9szHEA~AHEA~EPAHEHL$HHT$@LHPHEDHT$@DHP HfA u AVHDPLt$HJDPHhIE1|$HAt^1{0  ^1f0 H$ J J/ HHu LH$ J J HHtH$ J J HHtH|$`H|$X JH|$x JH$H|$hH$H$H$ HH]HhLhN$LuLIHLHD$WMHH L1LAH\$E1D$0D$(Dt$ H\$HhHH FHHT$H HfEHH\$HH+Ht$LBDIH;\$AGD$vHE{AHE{EPAHE{PAHEHL$HHT$@HHP3H% HD$HEDHT$@DHP IAE v#E`^1H1/ '$^|$ T$t  HH 1H|$@ D$(fE|$ T$t  HHh 1H|$@ D$0fE|$ T$t  HH gOfEX|$ T$t  HH *sHw fEI HT$H8H H|$ T$t  I}H C19;L$ u!H;hwHt$4fE|$ T$t  HHO ]EHh^1Dt$ , H ّ^1+ H T$(ƿ^1+ H T$0ƿ^1+ H ^1+ H;hHD,Et!Ht p HLy L`HD$LHEA|$ u>A4$H" 8u-AD$19D9u!H;hw HD,J1HX[]A\A]A^A_AWAVILAUIATI1ULSHHH u1AuLL7 HtLL=8 Pv uLLC LLA7 HIĿ^1E* MuB N\ ^H- #IHH y{ H_ HzDLH HHtIHL$1H u3LDL HIuL H߉_ LLd$1L^) LH[]A\A]A^A_HH@H1:duRit 1XAV1AUATUS HӃ8HHzAHCH@L HCA|$iLpHXu.H [H LDH A|$Xu ^H HSDH H[A|$it ]H 8u"H{tHDHq  =H} HDH_% []A\A]A^ÐAWAVAUATUSH8|$Ht$D ]HD$]1HD$H8H=}6A Ht$H|$a =0t `wN1H=J6A]0AcPAH_%A2`AHF%A D$HL$ HQE1H\A<}NA @LLLL@I @8MDHH9uM A9/uAy]LDL k4AA9$H5AH8 Hq!3A~HcЀ|/e}NuwNe}NܣR ~}N4A4A:4AH4Aq4Ac4A4A4A2A3A3A3AH2A]H2AT g2A Z2A H2A~*2AD2A 62A`02AH2A}NwH2A}N2A2A2A2A2A2A1A:2A貲l$}NL|$?HIƸ*}NLDEAS^D$&9\$0OtfD9mHcùLM$L LuA|$t}NLt}NLt}NLxt}NLgt}NLVv}NLAa}NL,L}NL7~NL"~NL ~NL#~NL-~NL7~NLA~NLLK~NIkMELȐHt$|$H2An虋4|$Ht$APH=1AHT肌H= A=1AH= AMh~N1荟1wN聟H= A8 I H=j AHH޿lN1=H > A HHuH= AHwN1=0Ati .A =0A|$.At.A<t wN1O=Aua=O.Au =/AtC1 V.A<u%I.A뇿}N1 L Hn0A~N1=N0AcH=/AHt(?-HAH/A -Aj-A<H.AHD-AtHDl@HD]H={/At<=.AtHd/AHHDAAH艹H=q,Atʼ=.AfhH=,/AHW^ HIeHA1~NLwHHAHtHS1~NLUHHuL `HAHt@HS1~NLHHuL}=*.A=A=.At ;,AHs W^$HH".ANʽH5.A0xN1ל,L~N1#`D8H=n-AHt"褬*AH=A3H|$,݈|$,Hz*AHAH=+AY`+A<'=v,AH!A1HHHHY~2Hcþ~NLdL~NL {IHc HAHIHS^H.exe@W^ILMI0Mu HcLLK9LLHL?L7LL=+AHA)ANH17=)A:s21f`}NFHI7G}NEIH sNLDH5)AxNVL HH+\$H=MA(Hع@BH=AHPyNHIH}+AH1H=\A @HD~N1@H|$,1H1'H5@xN1诙tL~N1蛙SQ~NHHAEH5*AXxN1eLN1Q>LyN1=H5A@xN1%1I^HHPTI@MHMHI@fD/iUH-(iHHw]øHt](i(iUH-(iHHHH?HHu]úHt]Hƿ(i=AuUH~]A@H=8@tHtUNH]{sU HSHpMHH fA H9w#@H=NA1g]HH9sH52AH []f.HcƁSH ŠfMzMMHHOоM1AH޿)[SHMHDb%Au HH=AS1zlNH=Ay[H5A HAHuGyAv1M1HH1MH i1H̖@H|$F@!MH1诖HT$AWAVAUATUSH}$AL$H$E1T$AR$AHD$H\$ LD$0Dl$MD$fAHD$HHTI9LH)HHH|$'+#H=''HGH HD$HH|IHI"L4MoHHHLIHt$ MHLH$H9tHcq#AOt4I\KDD$@|1D$@&$D$@D$@ D$@/D$@*D$@-D$@+HD$@HHD$@H;UM1|rHD$@HcHD$@HcHD$@HcHD$@{HcHD$@nHcHD$@aL8W6H;>)8H{HsmHt7H{\Hs{ArcQAAHCHsH{sAHC}Hs[AH{eHD$`HD$hH|$`D$pHC$AHD$xHs)HsA1HAH|$`HD$hD$p1HD$`HCHD$x_HAH|$`1HD$hD$pHD$xHD$`&( HHHD$@HPHSHPHSHPHSHP g(M HSHHHD$@HPHSHPHSHPHSHP - HH@HHD$@  HHHSHD$@HP HS@@HD$@HP H:!HP@HSHD$@HP f H:!HP@H@HD$@GHCHD$@HCHD$HHCHD$PHCD$PHD$XHCHD$@HCHD$HHCHD$PHCD$PHD$XHCHD$@HCHD$HHCHD$PHCD$PHD$XHCHD$@HCHD$HHCHD$PHCD$PHD$XHCHD$@HCHD$HHCHD$PHCD$PHD$XRHCHD$@HCHD$HHCHD$PHCD$PHD$X!HCHD$@HCHD$HHCHD$PHCD$PHD$XHCHD$@HCHD$HHCHD$PHCD$PHD$XHCHD$@HCHD$HHCHD$PHCD$PHD$XHCHD$@HCHD$HHCHD$PHCD$PHD$X]HD$PHD$@HCHD$XHD$H6HD$PHD$HHD$XHD$@HD$@SMHD$@^HHD$@2H{Hs4hHR2fH{1@SA ЈAAƒȀAHT$@kSA ЈAMAƒȀxAHT$@+S`A ЈRA FAƒȀ8AHT$@H;11返H;11讔H;11蝔H;1Ҿ艔H;1ҾuH;1Ҿa|g1k0fD[H{fKHsH{9H;,'H;1H{ H{0fDV/H;{H{cfD AAAH{1趑qHSHsH`SA@D2@5 0+.H;軐0H31ҿ^rdHJD{/fD/HKHLKLCH:/;/HsH`|/-f /vHO@1ɾM1HD$@WB/HKHSHsH;^9$/@.&CL@LCH`H HD$C@$^.@K-fD[.D$@D$@~D$@}D$@|HD$@HCHD$@vD$@iD$@\HD$@NHCHD$@@HD$@2HCHD$@$HD$@HHD$@ HsgaHD$@HsPbHD$@HsNaHD$@HsH{cHD$@HSHsFH`HD$@HSHsE,`HD$@rH3aHD$@[Hs`HD$@CHseaHsH¿1_HD$@Hs&`HD$@HSHs%_HD$@HSHs$_HD$@HSHsh_HD$@HsP`HD$@Hs`8`HD$@~Hs࿂`HD$@fHsD`HD$@NHsCp`HD$@6HsAX`HD$@HsB@`HD$@1+*`HD$@HsH;]HD$@Hs;_HD$@HsH a^HD$@HsHF^HD$@HSHs?H ^HD$@mHsH| ^HD$@RHsH^]HD$@7HsH&]HD$@HsH>]HD$@HsH<]HD$@HsH]HD$@HsHj]HD$@HsH= A@*-@)@HcHi N@]HCHD$@OHD$@AHHD$@HCHD$HHCHD$PHCHD$HHD$@HD$HHD$PHHD$@Hx8LxE1IIJ4-MLuDZHD$@@KċSHsH`LKLC"mX)[(fDK6)HsH;Z5 )(&fD'H;s H@HPHSHHD$@HD$@HD$@`MHHD$@HD$@HD$@HD$@HCHD$@H HD$@sHCHD$@eHD$@WHCHD$@I7@:(@+@ @ @H@H31HD$@H@H311HD$@HsH`HD$@Hs1|HD$@H{1gHD$@}H{1RHD$@h11?HD$@UH{H3 HD$@?H31 HD$@+HSHsH`7HsH{1#Hs11&%fD&-@%@HcHiM@H{Hb@1ɾMHD$@lHE@1ɾM1HD$@MHCHD$@HCH@4H @HD$@HCH@HKHHHHuHHHL$@HCH@H@HD$@HCH@H{H@H3HD$@H{H|@1H3HD$@S$@HcHiBM@[F%H{H3 ZH=$+H@1ɾM1FHD$@ H{11H{'H{1yH{$u$DH;1H;1ѴH;1{f$fDk#fD[HD$@MH;E @H;8 3H;k&H;^H;q H;cH;1#fDF"H;k;OH; fH{1H{H31 H;nyH{H3hH{H3WH{H3FH{H35H{H3 $H{H3 H{H3 H;H{H3H{H3H{H3HA^H3!M1Ss" -@H{H]@1ɾMHD$@gH=a@/MzlN1訫H=I@D)H5:@ 訪MMM1 ML1"M1rHHP3HHPYD$DD$@MLtGjM LuQtdRHD$@iL1!M1r1RHD$@GPtdRHD$@3H @H@HHHH H@H@HH@H @HH @@USHH=@Ht^H@HPH;@v H[]HXH,H輫HHr@tSHT(1He@HHH[]@HH>@tHH2@H/@냿tM谮SHGH@HtQH@HHH9t>r@==^:0PB>r@11^@HHJ@..6@,,"@GG|@OOh@##T@""@@!!,@@//@00@--n@UUZ@QQF@;;2@\\@|| x@&&d@,,P@<@PP(@PP@NN@NN~@~~j@}}V@||B@::.@99@88t@77`@66L@))8@**$@''@((@''z@::f@MMR@LL>@KK*@@p@\@H@4@JJ @II @]]@v@VVb@ccN@``:@__&@^^@ttl@rrX@hhD@ee0@dd@ii@aa@mmr@ll^@kkJ@]]6@"@VV|@cc @Xۉ@u@@u@?@bbH5N@vMY%H@ Ðf.H@HPH@@@Ðf.H@HPHֵ@@@ Ðf.H@HP@H@@@^@1҅)HŀkAUATIUSHHHHt$IHD$8H~@Il$Hu*f.HHtH{H輈uLk/f ZHHhLh@H%@HH@L0HLHMH[]A\A]fH޿pM1O_ff.AWAVAUATU-SHHHD$`践 @HD$H訵 @HD$P虵 HD$XHD$HE11ҿ-!N<HcH0HHL$PH1HpHqHpHqHpHqH@H=PNtpH t"LL$HHcA 1HDOq(DH8tăx8uIcH0H@HHL$XAH1HpHqHpHqHpH=PNHquHL$HHcLL$XHt$HHcHL$PHHD$PHIcHHD$XH:LcHS HӃ:-Hu+zGu%zu9vH26^uHxN9wELlfDIM9tLI<$?-ulutHxI IID$NLHP1uMt$M9uD$ D$AE1D$f.D9%@D$htHމ5:uD%j@HL$PHT$HLD$hHމl@wAA?|$hA IcH4FD9tH=@HM1LD9WDHt$HMcɃB:wt @HL$HHc1:@HL$XLD$h^HމD%@ADD9AAB$NM1LI >@ 2@tyNM<sNHE1K@@@@%C@߃@BL53@Mh"LHD$8H@HHD$(с=@L|$ IL|$(H\$0Ll$(@׉AfDHHt8LHL艀uB+@8DHāHuL|$ l$(H\$0HD$8J|("  @L@HHb@Iž N1蛆H=L@L-@@CIcAONL4I@I!NA}uIuHtA}0LuLNRJM1FJH|$XLH|$P H|$HH-9@HtHD$hEU<-x%H誀HD xL@H ߯@H@ NH|$h NLD1>wHD$hHtH@H@Ht 8D$l$t@1MdIOuMuDNfDHt;Lx:LHtA?tܾLHD$BMHD$HuH}+@fuf%f@@u @@<HT$`H<H:tg<v \$ \$ tYH @HH@HHHuHHH9@|$ # @<WfDHHuHHH}HHuH|$`|<@\$ t<H=@t M1GH=@t 0M1G@zH[]A\A]A^A_H=@1ҾY}DtD$T$p8l$Hw@[H%@ @@%@D9%@ @tyNM<sNHE1F@@t@@%#@߃@"H=@11X @T@@%@H=w@1 W@@ E@@H==@ӦH=@H1E1H?HAt$DHH8uHcHLnMu\ Hտ@H>@J(H3@J0@H@8uH@Ht :XH@H=s@Ht$p1觀)@HD$p8H5L@N1EH4@%$@Hn@H=@IkH@^[ @OH@HI@@LxL> IH5@HT$p`}&$%=@H=@1ҾU9@%̀@ H=@11~H@ Ј@H=@4Sr@蕬v@H=Z@EH=I@菂1#5@ @xH=@gH@6N HKNH6N H!N H HƿxM1]B @ @ d@p@H=a@NPH=b@T@w5@XH=@H=!@@Hn^ AuH5@M1AD^ B @6Hϻ@ NH'@ H=@诨 H@@@@%O@H5{@N1w NvHD$!ND$ @HD$HHHD$ lN1wD$ 1ɉAMN N1owIM$!NM3A$!Nt [uLlN1,wLvÃALHH!NLH!Ntǃ!NtS] N1vNH!@H@u@f%@Z@K@<@-%@!% @H=@111c@=@&@@ @H=L@H11zz,@H=(@H11mH@j@f%f@P @@D%@8 @ ,%@ @H=@11yH@H@@@ @%@H=X@\@ @@%|@ q@{ @@oH@H@\%@P;|$ DljD$ 3|$ DljD$ D$  H=@譤 111HϮH|$`H2H=v@L-@MHD$`L-@L@H@hH=<@H^H=@-1x@@^@@FH߶@HX@3L5̶@=L?sHIL^:MutA}uM1T<H@LH)HcHD$(HHL$ r HT$(H5f@HIŃHcEuHL$ Ht$pLAD jHD$ HD$p8tLpM1;H|$ 1HLC^H@Hh@K@<r@-{@-1 L-λ@H=@JKL-@@褤Hx@H@H=e@L-@ KL-z@@@H@XX|$ DljD$ &@q @ e @@YH@H@FD$9D$,H5Ŵ@&^H5@[H5@6[H5@^ NH5m@l N5@9@<)@ @fu f% f@ @n@]H@HE I N H0 T N Hu@H@ NH @C@x@H=d@H=@HeoH=>@IVoI|,  @L@HHt@Iž N1tH=^@mL-R@M*H=ܲ@@@Ν@HHt$p1sIHD$p8tH5@N1I81A@ ^@ W@H@<@H=>@11us@ @~@o@@V @J%@>@/@ R@ @< @}@H@ N H W@f% fJ@f;@ /@e@H=@?dclZH5@`~]X}褝 H5@8H=)@H9 HH@HGH @Nk @@H=@2vL-v@ NL)k @@I@H5-@| Nc~ @r @H= @]H@MH=@agMDnHٺIHM-nHٺv NnHٺtMmHٺMMmHٺJ`MmHٺ|MmHٺJ0MmHٺOMmHٺlMumHٺH@M^mHٺIMGmHٺFM0mHٺ7(MmHٺJ`MmHٺ@MlHٺ?MlHٺ?8MlHٺCxMlHٺ|MlHٺD@MxlHٺ@MalHٺBMJlHٺRM3lHٺKpMlHٺKMlHٺ8Mk@<uHٺBMk@HHMkHٺHMkH=@>  dd N| N13f1ܔ @D$ Af.LMN N1AeLE{eMIDM!NMtL~N1eLLe\ALHH!NLHL!NMtƋ!NtE1^]AEHDЅ8L] N1A.e3ffD 1$c%̀Q@m?@_D$// !@ @=@@3@ M1-H?@*M-H@HD$hIL|$ l$(MH\$0{@Z@ N HX NHmZ@f% fM@f>@ NLaBmNLa@mmN HU"@IL N1,Cm^Ht%QHtHƿPM1d, @ NHƹ@XM1#,RM hHٺR@Mgd/ N1+}M1+@H@H҈@tAH:Hu fDHHu`HuH@Ha`@H@HٺLPMPg N1?+8@H`@M1+8@ݻ@@f%f @f@b NHع@f%fʹ@f@#H@HƿM1h*Hƿ0M1T*8M1C*H=w@肑 H˺@ NL_A@HƿM1)M1)}IcĿhMH41) H@H]@H@H=HT$pHc$%=@=(M1U)Hj@DsNM1/)H=c@n H@`M1)H?@yNM1(Hƿ8M1(p`M1(_H-ع@H_H=@lOO H@@/I][H|$hHEȾ N1c]8DM1N(fH:tBDH21fE1H9=ƶ@HHAHt_1zwWJ$PNDHu+HJyt!HI9.uyuEtfE1f.HHHuHDfDHHE11HufDHtHR8HtHtB(HEHfHH1HB0H9A0@CHHHB8H9A8r w!B19A@C@fDHHHB0H9A0r w!B19A@C@fD@f.G(tJ( Ht HFHSHHt7St/v5t@ H{0u H8uHHHufH[H{tDH{fUHSHHHH9tx0XN&HCHHHUHSHEHH[]fSHHH/H臑HHCHpA@H4@:@HD1AHAAu{HB(B HǂHǂǂHB0HM@HB(HHH1H=γ@HpH˳@tHHHJ@H0HB8H@HH[f}1HfGAaf.HA;f.H߾HT$~HHHT$DH1[@HxA1HAfODAHDHH?\HHHvH\Hf^@tbwaUSHHHu$B@ tSu H=@HHt Ctw؃uH{HHuH[]f0XN1$HC Dٴ@A2kNHu"rNu AtSHHtHPLHHt8kNHHt؋PuAu@DPf.@@SuguRu= u u [f[mN1#W^1|#f.S^1d#fP^1T#fh]1D#fHHH=@1AHHtH~u*NHF(H=w@F@tHܬ@HNl@HìHD$XN1!Ht$UHSH2^HHt/HXHtHHSuH[]@AUIATIUSHWHx袇 LHWHx莇 AUHMEHلt^HIAAPuA$MD$Ht$f^HIQAPu[HomNH[HomNH:EuO1҄uGfDHt0LDb:LtHYUHQUHD[]A\A]G$EE1fAWAVAUIATUSHLMt9OL1PHփ@H HuHAMuMEH[]A\A]A^A_H1ɺ @P@T; M}IEIELl$H$Mu}DH$L<$L8MthMAGM'tI}L@ L0MtzAoIHtXIwH{WuGIމA2F8uL"TMuDH$HL$HIEHH[]A\A]A^A_fIM>`DL8HD$L|$L8Ff.HA USHH@HuKHY@HC HC8H{0HtctQ@tEH.@HC(H[HtQH{Ht3t!@uH3XN1F@H31XN1H[HuH[]f5B@@t T1DHi@SHH`~H@@HHt&H@H;@tH@HJHH @[HH=@HHHHc@> H_@H`@@f.U.SHH/HZTHH~P^t.H{Ht$ XHT$:uNHUH9tH=w=H[]fD>kNHtEkNHuɺH)H뼐fATUSHH$PN@H(HAuDu D)u(H;Hu[]A\TH2H;TuEx+Cx[]A\fDBx+FxufDWN0XN ff.AWAVIAUIATMUSH8@Ht$8 H=M@1LSMHHID8 AF6LI~Ht:HD$HD@1HD$Ht @M~,fDAGHރ8< t <LHE1yRt%M?MtmIHt?*uǀufL9tHOM9tLOL9tHOH8L[]A\A]A^A_HD$L8MuE1H=@LLIAFMM@H=@LKHHAFftRI~Ht$Ld$8 HIu1AG8<M?MtILRtAF|I~Ht$H\$8 HIu%\@AG8< M?M@t HG`~HH(HG`~HHHFp `fDtj@ E[@t EHBpHtH @H9tD@)uB(t%=tHz@tAHF8LF LN(L9r IM)M9v;ML9t Hu1lNNH}LXf ~HEpHtH @H9L-?@ELD @L1LLkNHHHEHL9tHu+HEpHtH5S@H9tRH[]A\A]A^A_#kuHuH ,@YkN1Hmc1ې+=@yTH=@H@A蛟 @IML;-h@xL-[@H[]A\A]A^A_@LmhLh0LMtIFIvHHi@HHR@HH)H9L=4@HL9H A@HHHH!H @HH @H)H)H9H@I1Ht@H8уImNUHSHHD$)@$2mNHmNHڅID1H9HL$Ht$HH HHu|$t YNH1HtH =t H[]A\Ðs0XNaH[]A\S11HH=@kH=@PmN*HHtCH=ۂ@Ht$lI K(@ HHD$H=@HC@Ht>H=@d H@H@Ht@H@0H@@HuH[H=Z@  ZNH1HC@K(@f.AT@UHSHE9Ct[]1A\HUmN Ht޿_mN HtͿimN HtvmN HtH=A@t+HuHAH)@HuH8uA9vH @j X[]1A\G GE9C;Dff.AUATUSHHHtHH[]A\A]Dn@HG(Lo0u;wH=ϑ@HhHھ`~HG0IH=Q@t@IHsH=@3HIxHƿlN1LA8L6.fD~1]HLI9%]H1l=H޿lN1]Hڋ H!%tDHJHDHH)ڃfDuH1'^HH[]A\A]]H1<`@Hs`ZNDmN1ZN1>~@f{1@;2HslN1PH{6t3?t4*t/[t*HD?t*t[tHu81y7fUHSHH~u^HH91Ht H8tYH9t&HHH0`@H[]H~HHL$/HL$tH1[]f.AULn(ATIUSHHHu'fIT$LHH-uYH[Ht`H+HHuIt$Ht/ID$(HtHHtH0H;uf.H[]A\A]H1[]A\A]AWMAVIAUMATIUHSHHHy'tH[]A\A]A^A_@IL$xHH[ILL]A\A]LMA^A_fAWIAVIAUIATIUSHHF(HoPHHu 9H[Ht0H}H3tHMMHLL0H[HuH[]A\A]A^A_AWIAVIAUIATIUSHHF(HHt\fDI\$ HuY@Hu'tHHt(H{HuHMMHLLHHuHmHuH[]A\A]A^A_H1IL$xMMLAHmHxfDAWAVAUATUHSHHHHGPLg`HT$HWXLhH~(HpHL$HL$0HT$ @HD$(HD$0D$8T$8HD$0IHD$ H}(HL$0@HpHD$0D$8OHD$0H$D$8HE(LMH\$LI/fLL$LD$LH|$HLSH[HtoL9H;$tsH+I|$HuIHtLL$LD$LH|$HLHL$HT$HHHH[]A\A]A^A_@LL$LD$HHL$ H|$LQ@LL$LD$HHL$(H|$L)ff.AWAVAUIATUHSH8HGPH_XL`H~(HL$HL$ HT$Hp@HD$HD$ D$(HD$ H$D$(IE(LMu(zfLL$LD$HLLHMvMtTL;4$tfM&H{LWuILGtLL$LD$LLLHMvMuH8[]A\A]A^A_fLL$LD$LHL$LHCifDHL$HT$LHH8[]A\A]A^A_@AWIAVAUIATIUSH(HGPH_XH~(HL$H$@HD$HpHD$D$`D$Hl$IE(LMuDDMvMt6I9tJH{I6tL$LMHLLbMvMuH([]A\A]A^A_f.L$HL$MLLL&@H$LLLH([]A\A]A^A_Df.AVIAUIպ@ATUHSHHLgPH~(HH$It$D$ND$H$u*HtMMLHHH[]A\A]A^@LLHHWH[]A\A]A^f.USHH1@ u HHtHGHHuNH+Htv@Hu-DHHt H{HTuH[]@H1[]HtHu0mN H[]@f.ULHLSHH9uH{ptH[]C(u쀥AVIHAUATILUHSt[]A\A]A^I^p"] AVIH@H@H(u@Mt AD$u2IVpHuHHBHuHZL+[]A\A]A^@HH HtA|$HHHxHH HuL+@?Ht5t=tmN1,fH mN1,HmN1,HmN1,AUIATIUHSHHH@auH{(HtYu6CXtH[]A\A]DHEHHH[HLL]A\A]@H{(1HufDH{(HHtHHtFXuHD$LLHUHHD$f.Ht@SHH=t@HH)H9wSHt@HH9tnH t@HHHH!H t@HH=t@H)H)H9v Ht@HH=tt@[fnH3( H=dt@HUt@H^t@HH9u t@f.AWIAVAUAATIhUHSHL5bY@q@HH@H{(IFA@@HI^;@I@WD1AHt HAt 1HfWAtL@CXHC L{Pփу @ SY  @怃w  ʈSY @׃ ACXHB$@RNHLcLc_A<$/TH H9Ix/tDA|$/ II9u,H1H.fHLcLcSYfH1@HHCHH#@HH[]A\A]A^A_fA<$:Lc1LmN1 HCCXKYCX@LcLcSYKX@LcLcKXoLcLc[0XNDL9HI))B {YHC KX@{YH{)C(A?@1HAfO@AHDA|$ID$KXHCf.USHHG<v H[]HW(HH;@tHtHHH}H up@Hfp@HH)HvzHKp@HH9H5Wp@IHHH!H5p@HH"p@H)I)L9v H p@HHo@HEHHHHEHUH[]n# Ho@H o@dfD o@f@Hm+HHC(HHmHEAVH0nMAUIATIUHSHtHt  HHtx tk0HMHlHLD@ Hh L`(Hu0LLhH)HPE)u n@IK.H)HHU@[]A\A]A^DH9h uH9O uH@f.UHSHHHt6HՃ{wmC$pRNH5}@HHHuH[]ftHsHHHuؐHs0HHHuf. 0XNQHHmH5ym@D@HH@HyS@H=0nsHPHfS@HWS@HH=MS@P"XN/0XNDf.H)S@H=mvHPH@HS@HS@PXN80XNDATHHIUStw?=mNHu]H=}@H11= |@1HljӃ|@L{@ []{@A\@[LH k@]A\HfmRfDAUATUHSHH$L%+k@AMt1LH;Hu%H[HuMd$MuEu"`M HtH1ZN1XiHIS I$H{Q@ID$ID$ID$ID$ ID$0ID$(ID$8ID$@AD$HAD$LAD$PL ID$H Q@EtH1ZNHL[]A\A]E1AWIIAVMAUE1ATE1UHSHHHHL$(DL$HtO{TC$RNf.HCHU8HD$(H+B0HCIIHE1HuHD$(HH[]A\A]A^A_H{8tH{XH HT$( `D|@EH|@H|@HHT$(t HP0HT$(HS8HeH>z@H@@{H `Ll$( H{X H{hmN@AEb DHID5HHH!HL)=h@HD$ HC8~CHH+P0HHt35{@u H{Xq Hs01H\NHL$HC8HL$H,HH8HH0H@hHSPDL$H{MHHS8H `MEB)Hr0HB@ #h@Ht$(Lk@M H{`HHmN1HS8J(HB8ȃ%=Hz@WH{Hf H `ELb@ og@IH{xLd$(HtHT$( `_Hs@HRHC8@(DL$HT$(HV8' HsHH"H;s@HC8@(9 HH8T$I̅Lf8H{81HE8Hw@H( fMHst9HLT$HL$8`~HGLT$D$8w@ IHT$(L]8LHII(H9I90HT$(E*HIAIHDL$HL$(MLH~HD$(fH{DL$HL$(MLHdHD$(f.HE8L{HC HU8HD$( `H{H+B0HT$(HC0HE8HC(|C-$pSN@HD$(Hu8HT$8HD$8Lcx@L7x@x@AD$uID$8.bH;-t@pLD$(HT$8L9t? d@L)HLHHM8HtnHE8H(HT$8HT$(H{0HU8HD$(H{H+B0HCHHE8HC@ 8d@HHU8HD$(B)HD$(,H+B0HHB@@AA,f%f=UAA)tnHI+C0IAhHHD$(II40XN@A>@=v@9HS0HsX0[N1 fuH}pHmNLT$ L\$LL$HT$|LL$LT$ L\$HT$AAxA9CxsACxAAxHHHL2HH!HH)\5s@ HE@HL@( b@L@ IA@HHI9AA*EIAHHt:I;A@t4IApI1(]NLT$LD$LL$H1LT$LD$LL$s@ IApLD$()g Eb@9CffffMHMI]DfD&fDJ(vHCHt H8]Hs01[NHS8HCJ(HpHF0J,HB8HB0vHF@HB@ifHt@H0H9(0XNXHt@H H90XN(Hz@0XN\N6LT$B@WN0XN@IA0I+C0IAhH@xLD>HHLH!H)HHB@GIE@HxH@8Ht$(H9p0\p@E1<Hq@H@xx _@IA@HHI{0H)AC)IQhu HH)HIS@@M(MYpHCHH@LH8LL$HS8J(LJ8ȃHC@HDB(At H0>*#J(t{ o@tl|$tdH0A`M LuOL^@MtCI0LϹ uIxt-=^@u$=p@H21[N+HC@HS8DbxLh8EHC8LHD$&o@<Hdo@H@xHHCXH@HD$HHzHC8H=P@>LE1HD$H;C@tH{hmNLL$#LL$AEUDHIIDMII!4@AAxr ]@ILHD$ LL$L\$LT$HLHLHD$ LL$L\$LT$HW1`MHT$8HP8m@<I]@1`MxI Hp@Hp@HH0HSXH{8h0XNE1LHD$IIE@HS8HtdDJ(AHp8HD$(H~0H9LR@M {\@ILH9H;~8Hs0\N1HS8J(ȃex`M DΉȃ DH[@HtHHtHLtH@Hu1`MAHS8HC@HB8H9B0t}HF8HB0H)E~DHIHD0IL!HB8DJ(WIApI\NLT$LD$LL$H01LT$LD$LL$HF@ 1[@HHF8x1\NHC@HS8Yff.AWEAVI1AUEATIHUHSHH6HIt3Eu.`M HuI$u'H[]A\A]A^A_fD1HI$tEtH1]N[]A\A]A^A_1DAW`M IAVAUIHATUSH LHL5Y@ME1L H[Ht3MH+LHu1L ^NEH[HuMvMuMtSLHiB HID$HCI\$H[]A\A]A^A_11]NL5Y@MWLL1`^N1E1fLHUMDGf.HAWAVIAUATAHmUSHA1AQBHHLhHMuL;iHu9H˃t)t A~tD9EuH HuE1tjL1m HHHHHCHBHCHBHLzLjHA~D  ȈHL[]A\A]A^A_fDL{fE1EtL^N1YHML^N1=뫐f.H1A$@pULn` =P@mH >@0n=u ^NH=@1Ҿ1HH@H(g@H%g@}HRg@HOg@}H V@H V@l1mNHW@HV@Hf@H@8 `Hf@mHf.SH{wC$ŘSN@H[{vfD[fDH{H[ ŐH{H{ H[(wH tH{11HtHx8u[1HfDU SHHHw0mNtky|HC8HHH{XH@pH@hHt H{`HtH{hHtH[8mN׿CxH[]D1mN^NxHs0H=cf@螹HC8oDHs0H=Ef@.HHC8TH*f@HS0 _NH@H01HC8-f.AWAAVIAUIATE1US1HI.Ht%EtpWII.HuHt:+L9㉃u @+I9܉t H[ HuH[]A\A]A^A_DMHtI9l$ t0XNID+HIIHD݉>fDd@ H}11H^DMEHMIL$ HS(HJ IL$ HHQ(HP IT$ HP HLb(HC(1HX 1L9t;H[ Ht2D+HS8HtHtHHuL9HuHAHx8H1H9tIHV LAHbLBLAMhIP HWHQHWHbHJ H~ 1HwHBIIMHIUHHIHME1DEH@(HuHuH_N[]A\A]A^A_1fH}gM6`_N1<HP(Ht1xHz8HtHHR(Hu1L5yR@'@IT$ Hb@1H Ha@L b@MMLb@IHb@HATUSLg0H_L9gt 0XNDHHt(L9cHu"9tuxHC[]A\[]1A\ÐAWAVI AUIATUSH8D$,t$ %HT$|$ D$$%@D$(Ha@HX HpHH\$\$ E1LMIHu8DHt"MD~(tI$LH=ua@AՅtA1A@LDHm HuLMH\$MIMW|$,Dd$ |$ 2|$$|$(@D$ %=D$ E1HDd$ tZf.Hs8Ht Mn(tILH=`@AՅt D1LDH[ HuMM~H_@E1HD$HX H|$,E1Hs8Ht Mn(tILH=`@AՅt D1@LDH[ HuhfDE1HdDd$ *D u@LDH[ H%Hs8Ht Mn(tILH=_@AՅtĉD1 @uIHItoDd$ 1E1DA!uEuFIH[ Ht5HS8HtB(1tȅuLDH[ HuH8L[]A\A]A^A_E1H[|$ %LMl$IƉ!DA@t D$LDH[ HtIHs8DHt!MDf(tILH=r^@AօtD1uIH[ HuLMIE1HDd$ @Hs8Ht Mn(tILH=^@AՅt D1@LDH[ HuXHD$HL HIL$ E1HS8HtB(1 LDH[ Hu@ATE1USHpH-~K@HDHE(@D@EXuy #_@toHHuaHH[HtJHCpHtH ]@H9tC(0uEuH ^@JnNAe Hm@Hc1mNI$H=e^@1AnNA!nN(nN/nN4nNH-LK@HHUH=%^@fnN1HU %]L1LmnN1L H!%tDHJHDHL) HuHu(1lNSH}HtUHEL1HmHI H}IĀ?AuLu Lut1McLL uC,t<.uC|,auC|,uANILs(ICYH{(HG`~sKYDCYuHH{(@HA`]A <A HH{(sH{HC(L-E@L5E@D%E@HIKXqE@A7@E@AΉʃ?怃@ sY 7E@ Ȉ+E@HC E@H 5@E@H4@Y7@L5D@I AI M L-D@-H=1@QH1@KY2DHs(1bNCYf.A1H{(H$HHHtWLE@Hl$HL$NH`~AH|$`~HWuHbNE1f@Hs(HhbNE1Lf.CYC$ ЈCYDBLs(`Hs(@bN1Hs(bNL$$I4$Ht 1I~NдI4$Hu翰nN1軴WNC 0XN袧fAUATUHSHHB@Ht%H{Ht Ho tUH[HHuHB@Hl@1ɾHLjHHL`HPHE@辿HH<@H@L(I<$tASYtHH[]A\A]@1HHDHH[]A\A]H@L`AWAVIAUIATIUSHHoHtxH舕HIH1@Hu@fDH[@Ht1HSHK(LHLtHLLLWH[@HuH[]A\A]A^A_H0@Ht@HLLLH[@HuH[]A\A]A^A_Et2?tc*t^[HuT@?tK*tF[tAHuHH_HLL[]A\A]LHA^A_鎼fDH/@Hu#)LLHLfH[@H Hs1HuDHSHu%CD t;u H=@@HHt Ctw؃uH{HHu[1Ҿ@HDf.UHSHHHu=Dtct>HHt&C uH@HuDH[]fH{HuH[]@H=@@HquH[]ÐAUAATIUHSHHHt2f{w"C$ŠVNH=?@HLfDHHuH[]A\A]DxH{HLxfDLcf.HCPHt x}H`'AHH=/@wHC HjAf.HHLHpHth]LuH-8/@+H{HL@Ht H}8oH{f.HC Ht @H{1 Hx8HSHPX1Hf.HH}8f1HsH{t$1@ƍvHE8Ht p(;H>@H@xAEfDSx@HHHspHkHH}HCpSH{H1=|9ǃ1Hf.UHSHuqHHtiH;=b@@u2^fD tcuH=<@HHHt7H90@@t.Ctw̃uH{HHHuf.H[]fH @H@f.AWIAVAUATUSHHtRAAAAAfAw)AG$ WNfDH=1<@DfM?Mu;@t nN1#H[]A\A]A^A_@Eu[I_HtRt5?tF*tA[t:H8H[]A\A]A^A_1zHLID$@HRH0ID$HHQHI$1O}f.LI qHT$(HH HT$ HLc(IHv~zIvHV@(LAH=@5HpHu}HvHhH `[HuF(HEL5'@@HB HrHHpHHF HBHHHB HPHf.L9%9'@tWID$8HtH9tHHHC9IL$(Ht1xHA8Ht HuHI(Huf.H '@HHCfHT$(HPHB HHHBHP fH @H@H@`MfD1f11Ҿ`M1IAE(HH@HDH `7E1E1E1(DMSHvHFH `9H9tHuF(tMA}x9~xLCHB H-HHALH9G8FHHEHw uHtrH9F8uIAH;P E1Hr HzHH~HHw HCEXHpHB HHrHP}HV SLDH9F8Hv(HEuH~ H9G8uIA_L@H5~@HAMAuEtHE1fD1MALEH;PIAHHIAII3HBH3AE(H=#@tup%@tt"H=#@fHHEHHEATAUH SH?uH@HSHHCHhD`H@[]H@A\ÐSHp? .@HHxHSHHCH@Hx[鿥Df.f.AWMAVI0AUIATAUSHLL$赞1HLpnNLH{LL$1HHE]DeL} LM(tpH1"@}HuEDHHHt5tHzuHzu11HcNPH1HHuH+H[]A\A]A^A_fD1D @f.SHB HK!@HX@H9!@ "@H[f.HH!@@H@UHSHHH=t@t*"0XNKH-\@HM@H[]fDH=8@uH=&@uf.SE11ɺHHL@H5@D$$H=@tbH H @H޿AHPH@H@H_uH5@Ht H¿EsH@H[fH޿C#uHt@f.AU1H`MATUSHH}@Hh0HHx MHÄII@_tIAt"DC^tIA IAuAHaHx8 HIHǾnN1HDVt1HL)uHaHHx HIHǾnN1{HAtHIſDsLHƿ+nrL1HtHHH[]A\A]'I2Df.AWAVAUATAULE1SHHLH(HH|$Ht$H|$AE1肳H @HLhH @+H5 @Aq1Hƿ^osL=h @IExME1fDLhMt|MHIGt HxPHT$HP@HT$HPHIHHtHEIti IWM7LHR0L(IHPMuMtLH @H @H @H @H([]A\A]A^A_Ht$ǀHp`RHY@HXPAVAAUIATIUHS HL(@ECLHHC6Ht`xNH$tOoNHt_ oNHuCH߃ǃ C[]A\A]A^QHcN1эCH߃ǃC[]A\A]A^$@CH߃ǃC[]A\A]A^LHx A $MI1E1DIAJE1At2Eu?tN*tI[tDA E1A8\AIAIu΅t2AfLccH1HLUHSHpH% HhHX8H@h0@@`H[]AW]AVIAUIATUSHH@HLDHT$Ht_A}t H{?u;cN1CHL[]A\A]A^A_ L dN HHtH{LtHHuI~kI~8kI^HL% @Mt}@I|$@HRCM|$HMuL@M?Mt@HkIwH0uAG2C8u1HHdNqM?MufM$$MuHHkI^8HfDL%a@Mtu@I|$ HCM|$(MuD@M?Mt8HkIwHuAG2C8u1HHdNɊM?MuɐM$$MuHHsHD$MnIFXA}?AFH@Hu>f.HHHuL2H[]A\A]A^A_H HIu{M?MlHkIwHTAG2C8uHHdN1H踨 HIu{M?MlHkIwH\TAG2C8uHHdN1虉CvM$$MQ@CM$$M@@AF`fAWAVAUATUSHxH=C@HthHj@H5@+AH@™1q&uHO@Htf.H{gfHHu 11iH@H=@1@H@i@H=@tl0XNH=@H@lH=@H=@sH=B@H=@t1eNވH-@HtgHu1lNˆH}9HHr@HzHvHuHt oN1脈Hu1oNtHmHuH@E1Hl$`HurDAP(H[@HtOH{(HD HHC0H{(PmNiEH@@P(tH[@AP(HuEHx@c/Hl@HufH[@HCY uHk(/@H5<@HԡCXIu=@<t @@t&MtH@HUH@@9BtED^M CX{ED@ug@E1 H@`~HH@H o@ LoH[@HH=@L-]@1MfI}(oNhHItgL`@L I}(1MHLHoDIL9s,11HH1HH$HXL9rAN( Mm@Mv11ɾ^1pH H=@HHhHX8H@h0@1@`l7$@O@^@uv@<k @Hl$`D$`H=@H꾐@D$`D$`vD$`H=@H꾐@H=O@5s@< @tH=@`~HGK@t9H@Ht-fD`~HC4u @HHuoH=@A_H=@11@H=T@joH-@HtgfDHE(HHuFfDH[Ht7H{puEXd{(j HCp `H[HuDHm@HuP@<t@H=@`~HGH=|@6[eHtD-@EH(H=Q@H=D@PmNzeHHH'@Hu fH[@Ht]Hs0HtHSH=@޵yH=@螖WHs(H¿gN1TH{0HC0H[@Hu@1D%@H=@@ƉED>H=@|H=r@t sXH@HufH@ HHP(HtHxHuHx`uHxXuHJ@H9H@uHRHHPH|$`1+||$`bHs(H¿`eN1_5t1LfN>L+h]LLuPP@<H >@HHy1H觵HE(`~HH@g@D5@A~E DLH+mHId=t@IN0HH޿8gN1hD=@EH |?H>1&^袥H[?HD@E <@<toH~@HHt\L#LGHx  LHHǾ&oN1詻HHaH}HE.sizGeaHH[HukPA L%@IHD$(MTDH- @1HfDDEHHH}8uHt[HD$(L|$(!@HM8؃I AGM?Mt;It$I}uA9wELDH IHD$(@Hm H[I|$(1Ht2oN1fI|$ E1Ht=oN1fI|$ IE1HIt$A1I|$(Lt$\$AD$H= @‰D$AD$$M$$MLL% @MtzE$Ex[I|$8tSI$HuD@HHt8DCEuHS&^HHtIt$010hN}HHuMd$ Mu= @y6 @<t(H=@Ht$`D$`|$`u%r @1=~ @@1iH?HH? ?L @H< @HH9t]H0VffuHV:.NMBE1AxLF(M@pAAMcLF(B< ouIP@HHH9HV0uhg= @Hz?HtFDH3H= @11AHt @<vH3XiN1(|H[HuH @ƒC½0HH(HQpHHqhHp0Hr0H=?踝"H5?iNOpHx[]A\A]A^A_H3hN11pp@蒏IL|$(L?HEeNIPH01H Hoy`(1mN=HxXItII}L1Hb=HH޿gN1oH=?1Ҿ@$?<tC(u1PIEXfMHIIp@"MIP@I@@HT$PIHH?HP@LW@HG@H(H~?K1HH ?@,0XNoH?%@Hl$`D$`H= ?H꾐@l$`u1M1E1I9vlIII9MLHI]HT$8HD$0LL$(H7WHs@ ?HT$8L{0HHMT7tAuLL$(HD$0uL9sH$LLH3LiN1LT$(mLT$(iH=n?hH=b? ƁgNH1mHE@M(mH5?jN1mUH= ?H?H?HH{0HC0H[@HuPH?H=d?H?DL苒HxXItoI~L1H谡lHcFHH;SHJIEfDL谡ZfdNH1l'H?W?<t C(y13MIFXiHD$hH?HT$HHPH?HD$XHH=?lHD$PH?HD$XH?@f.ATUHSH< HH"?IHu0HHt H{HluI\$L[]A\H1jNk[]LID$A\UHSHH ?Hu)fHHtH{HuH[]Ð HH HCH?H?HH[]Df.UHSHHHHt*H HHHuHHHH(H[]þ(3 H(H@ 0@HH1ɺoNZoN1moNH1ɺoNXHHd@H1ɺoN{oN1oNH1ɺoNXHH$@ATUHSuDH],t^@u}]Let),u"IA$,tt ^@tA$oNH诞u?A$t L@1HoNiA$u[]A\@U1jNSH.H?H{u~fD .H[H{tcHk8H+k oNH31HrH{(rHC(HtHx]H*HY x+H*^oN裟뉐H[]fHƒHH H*XfHHH H*XfAWIAVIAUMATUHSHHL'LL$MtIt$HubM$$ML#u8l HHhHHT$LxHHHLp@0HLh HHP(H[]A\A]A^A_@LM$$|@HE1HE11ɿXo8HE1E111ҿ`ofH=??AVAUATUSHL-?H-?Mt{HuL-?LfIEMmMHCtWHMeHtHsL负tHHuIUE1E11LhooMmH-?MuL-?MHMeHH{LDuC0HHuMmMuH?HLmE1fH{LuLc HHuHM?HlLmE1DH{L輞uLs(HHuH5E?H}0H}MLD$$E1Ƀ蒻(H? HU1HH@@HH@ HP1[H?HubDHHtUHuH{u( HS1HH@@HH@ HP1HHu111`M{HmH~?H[]A\A]A^fDHEHtKH?HE1E1tL-?LHHt@0HHu ^G뤐f.1ҾH?vfHE1E111ҿhofH8HHtE1E11ҿPoH8DH|$H|$g]1ҟH|$8 HHHL$uGpNfpNVFfD?Suu119;]fH1oNcH15GHH fIE1H11ҿHofIE1H11ҿ@of=J?f?_HuH:_t^Hu@r @8ru4JDu/J ^tHz H 1跛HÀItAU]ATUSHL'H.I|$H]HHDHHDOHADA9ź|(HEI9$MH[]A\A]DfAWAAVMAUIATIUHSHH?HumDHHt`H9kuD9{HC Ht}I$HtpH@HHt`HHHBH1H8/tIHupND( HH4?HkD{HCHC HH? x HLhL`HK LpHuPf.HHHuHHCH[]A\A]A^A_fDHuxpNH1[]A\A]A^A_`HK @?AAWAVAUATUSH??;~E1r~rL%>?MDID$@<At$H=?K;HIL/~At!yAGE1HHƿuT$H؁@u HĐ[H11f.AV=g?IAUIATUSHT$0HL$81IH|NLLS-?xP@sN?trHuLLtN1SMfDH[(CPv<rd<vx<w\HK(H `LHSLsN1aSHu\ON1[]A\A]A^HS[]A\A]A^N"qNF@HS1LsNSHtH|N1RMD$PqDAUMILATIUHSHH?u|NHt+HHM[]A\A]ALNLѿ}N1~RfDHtvMtAHLLuTH[`Ht&H9tHLLu1HHuHHL[]A\A]LN}N1 R@H[]A\A]HLLN[]A\A]}N1QDf.AWIAVAUATUSHtH[]A\A]A^A_f.II5qHHtH迷 IOHLLHD$HqHHHD$L$L9sAH(Ht9H H+Ht+HEHtHHtIwHx躉t>HI9wH|$H[]A\A]A^A_ՅDLHtN1PU@HMMOALNLL}NPA뤐LHtN1P@ff.AWAAVMAUMATIUHSHH=J?u5?tvAUATUHSHFLftdP1ۃqt}qNNH{HLH`uN}fDHV(Ln0HRHQvDt?M9saHHLHuN"pqN9NHtlHLHtNH1[]A\A]UMDHv(HvHHLHpvNDHthLHHvNLH uNH1[]A\A]L@qNLD$MLD$$f.LH0vNLH0wNLHvNfwE1LHuNkUHSH荲 HH蒳 H=?HCHtH?H?HH[]DH?H?H[]Ðf.SHH=M?Ht0H辳Ht [[yNKD@( =ZCHH?JtH=?DxyN1lKf.UHSHHHHHt;H)Ht H[]DHyN[]K@(H =HCHZCH譯t H{HxyN1JfAWIAVMAUIATEUHSHHHHHHt'11莲HtHH[]A\A]A^A_f.b?ZL=?MLH??H5?H?Ht$ HD$(NH\$0HD$8=HD$HT$ E1E1.NHD$HD$H$@ HItH5?zN1IL?HwYEILHLHzN1xIL?>~H覰 H??@EDN1"IDHLpzN1HVwsEHL{N1H*HٺNyN1HH5?EILHLtGzN1HH5D0EHLt=x{N1PHzN1?L{[H?]A\A]A^% ?|E1%fHh^@u&t!C\%IM9rMLL ICD%H=?LH |NF@P|N1E;xyNE{N1ExfH޿GN1[]A\A]A^EfDAUATUSHHG7Q  DHo@H?H9tNFE(u %=ukH=?HHH=HCHH{HEgHE7 HE SHK8HS(HHHEHPfDH[]A\A]DHo H-?H9tNUEE(u %=uH=?HHHEHCHEHCHEHC(HPHU(HE H[]A\A]f_Ho(H?H9t3NDE(u%=$H=e?HMHIAD$HC0ID$ ID$(H)?Lk HRz v ?@H?H9tgN/DS]$NfDH_C,f%f=rC)hHkpH?H9tNCE(u%=-H=n?HVHI5C(%"=I\$ H9kpAD$tNdCHC@ID$HChID$DH?It$(LH@PhID$AD$ f.H?It$(LH@PPID$f.H?It$(LH@P8ID$f.ID$(D(ID$qDC-$NAD$ID$(]AD$ LHUHݴILHZHµILH诸H臶IHS H5?EH9GHrpHpHJhHH<@NN3N1@ N1@N1@SNcN3N1@@AW1AVAUATUSHX[a趀AQ=?H?PHD$(Hۉ\$.1H{ H5?H??vH=?{?H D?EH=?Lk1ɺoL蠜HI EuE<wAL$!ױ?ID$ `AD$ ?jiH??H ?HE(EEHM0DKE ȃ ЈEDS(E H?HBH ?9H~?)fH=? `HCy?HZ?H_?HC HL?H[]A\A]f`N14T@=A=+=;=H`N[]A\A]3}H??H?H?&fD-~! fD=P=nHSN H NH| H?3?H??H{11WHHp8H';ANxH?H?H?H?;H=?*Hs ӄNH1[]A\A]1H{ u?~[tH޿N11- ?\H{ ?a=??  ?#H?H=^H5?Hl=?v H= `TH?H ?HHJ0H?H9 H= `x HH޿N[]A\A]10@H=?01AJHHxv @HsEDHC H?L%?HHhu bHHtWH{HhuC?H ?LcHt1LHHfDCH?x??H?L+`0H?L%i?@C@  f 6 1L9- ?H?H?=B?o?H? `H?jf?H?H= `qID$_?`f.5J?H{11THV H@8H0?>?H#?H$?HS:.u zH=Ž?E1A`~-HH @P?tQ=?CHSH޿N1-H=|?H=m?HHDHH`?H[HFfHE<H}( `11H޿oWHu@ 8?efHSH=?E11A`~ H p1ҍNw@??H?H?H?fDR? ?1҃tH=%?`~HGH=?16I1҉f.H{1U?HH@ H1?߽??H+B0H?H?Hн?kH{1>H}H@(}>HE0H?HE(H?#%]2$}3??H=f? `IH %?H5>? JD.1IIŋD1L9-a?Hf?HL?&?H=R? `N?PHN1:*Lc9H=?HHGH?HH=?H`~HG8H?3H?'a?H?H k?Ht HH0H [?HH\? `*?H[?HD1HH?H ?H&?HHD1HH1H=ߺ?Hպ?p1=?\H޿8N.HsH=L?1A蒪HHHsN1(H?w?HX?_H 4?IL9%:?L-#?+-@L+-?L9%?L-?f.E\FL9-?KL-??|/ Mu 1H=v?Hl?Hq?H} EHE(H=޶?H;o0HDHA?H ` H^ ?H=?uOHC p8HPhHC xu 8+$xHƸ??J( L N1&Hs11ҿo螎H@!@ 18ߣ?H`?HI??-?H+B0H?H?HE(HPpHIH `H@hHE0Hշ?۷?H̷?H?$H޿`N1H[]A\A]%1ML1-?L9%?JfDL9-a?1L9-M?HR?H8?H ,?LH?H ?s?HB?H=? `|?@ƃtS@L-?@5ö?&fDL-y?L9%? CL -`?L9%i?*fD1L9-??HD?H*?H ?IL9%$?L- ?fH ?HLHHH?cL-ʵ?L9%ӵ?L-?V1L9-?H?H?-H ?HLHHHn?1L9-`?He?HK?L%O?E1HSH޿N~D?EXN1Z#yH ?H=ϴ?HSH޿؃N21'=?uHSH޿؃N#Ŵ?H?H?H?'=`?Hs ݄N1"=>?Hs N1"1H@8H=? `H*?H@8,?H ?H^@H=ͱ?>1҉HH"H=? `H@hHE0Hͳ?ӳ?H?H?=}?vSHSH޿XN1!HH0Hs??H?H޿pNH>HU0HA?G?H8?H!?IDHY?^H \?HyHJHDHH!H-?H)HӲ?0HxHL9RHT1I)I!LH?8HѲ?H?%HPz HR:.zH@ pt.8HP b9HC =?=@HxŁbHPzTHBxF8:HHy1*HI9.yH@ xHxHB(xHxsf.S=?HHg?Hd?Ha? `|>?t H?HC CHC[UH(SH*HHCa?HkHC CCHH[]DATIUH(S)H>HC?HkLc CCH[]A\f.ATIUH(S|)HnHC?C HkLc CH[]A\f.H?H$?H5%?H?9f?H?H?H? `ATA(UHSHH(HSD HPSHXHh @{PtH[]A\fD}uAtA$AvHHD$HD$AUA0ATIUHSHH@(HSD(HPSHh HXL`(@{PtH[]A\A]}uA|$uHHD$]HD$fDU(SHH'HS(HPSHX@{Pt H[]t߁@t&tHHD$HD$Df.ATIU SM'HÉ(HC?LcCCH[]A\ATAUH0SH 'HS=HPS@HX HhD`(P[]A\f.UH0SHH&HS=HPS@HX Hh@(PH[]fATAUH0SHi&HS=HPS@HX HhD`(P[]A\f.UHSH(H&HS!HPS@HXHh PH[]SHH=,?^H{ KC$NH ?PNVH{HS H=٫?YN[1TS@HCHHt1,NdHCHS H01N[1L@;/H`HH1ZH K?HNVH{ H '?LNH{H5??QH{ H5?:QH=Ԫ?H[(fH?H?D;1HSH[H=?_N1RfH{H5m?P;dH[ ;1OH{H 5?^TH{[H5?)PfDH=?HS9N1qQH{ HsglN1[[`NPH5?(OPH{f;H{ l[fD1H5r? PH5a?(OH{H G?MN Tf[!N1H{H5 ?[/ODf.ATHUHSHt]IL?Hy?Hv?Hs? `P?u,Mt=?tLH޿N1d[H]A\@[]H?A\ff.HHH]Ht)Hv;1ҹ @tHɃH9wHf@H1fATHIUSHt]H\?H?H?H? ``?u,Ht=?tHH޿N1tL[]A\@H=?Ht LHHu?| H?HшP HH H []A\HhHH}@| H ?HpH(1HDAAPЃ vAPɃHuHHV@>HH1fATHUSHI)?HV?HS?HP? `k-?t)H?HtEH@0H?[]A\H?fDMt=?tLH޿N1Hc[]A\H?H (дAoytHf.^NHf1ҾpAo鏀Df.oFzfDHa?H@HQ?H@HA?H@H1?H@H!?H@ H?H@(H?H@0H?H@8H?H@PHє?H@@H?H@pH?HHtfDH?H@xHtfDfDHq?H@XHa?HHt1DHA?HHt1DH!?HHtfDH?HHt1DH?HHt1DH?HHt1DH?HHt1DH?H@HHpNRGHt HHQ?H@hHHH=ݏ?Ht?<vb?upH=H?t6H=F?u"5`?H=?@@iCH"?HDH=a?CH?B?u1oQDHt$1|@HD$8v5?H=)?Df.H? à?H@@ ?@ tNtQ?t>tAu5Hގ?Hu'H@@HtHP(HtHBx t @fDῈ P?@f.@f.@f.1kf ?<t =hDfD?<tH=+?`~@f.H= ?Hʢ?5?HGHDf.1zN1f1N1fUHS`UHH=Zv?u,fDH GHHHHx`PGH;uH[]ATIUS?gH v?Ht<`UDHH]Ht#Hs`LOHuH|?[]A\LN11N}H=Ή?1[]A\nN1alvdHGLDeDAT1IU`USH[u?HtNfDHt!HS`NL1GLHH]Huȅt []A\[]L!A\NJf.H?HHt1DHa?HHtH@HA?HHtfDH!?HHtfH?HHtfDH?HHtfDH?HHtNSH=և?1NaNeFuPu [flN&CHs?Ht߻`UDHp`H1NCHDmLAH{=CCHDmg]'?CHDmH|$P%]AHl$PH1AD$P<0u HE<0t<HH`;AL A;AuHPNL1=CMHDm%]LAH1V=C$I0H=h?Hm?X9H=Y?HF?A9H>?;C nNL1HDm[HL1A;LkHDm ]HHJHDmLALkHH}Z9HHIHGHH3H¾[L1:CPHDmALkHHB(HtHHt@ItrHzL8C HDmALkHHt&HHtBItLH8L8CH?NL9CHJHNL19[HH|NL19CuHHNL19#/HHD$X?D$THD$P)f HJjHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$H$HHT$1H==u H=?+و=~=,|-uwH=܄?+DNIG(dDC1ۃIwPN1I(1H{DΆ?H5ۅ?HsHHExtQ?tIWH޿(N1#I(1IG(hH޿`N1Hh?H@xuI(Yt蛇(f苇=H-?t,E1E1)tTHX*LP*LH*e蛤H=p?Bv?e+EHp?y?t\uRMLHDH|$1H|$H-DEkƆ=D$t"H)D$HMLHDL%‚?荆,tHD$|)Lt)D$f=uL-?S@f.AWAVIAUIATIUHSHFXu.H~t ?/HHE8/HY?HuHHUH{1ɾ[1 IHLDuL(HHEX t%݂?tHHLuFEX<uHMH{MML[1H$ IHLtL}H[]A\A]A^A_fH1[]A\A]A^A_HH=M?11 HHHnt H]H'fUSHHHH(tHH[]fGXtBH HHS1ɾ[1K HHHtiHkcXHHuHsH{[ HSHsN1?KY ?XH&H-!s?Hu%Jf.H}HDu#HmHt'H}QNzNHqt̀cX@CXHKH5q?Ht ?Ht$ HD$(rNHL$0HD$8HD$HT$ E1E1.NHD$HD$H$& HHH5q?zN1,Hd,H--r?HuHmHH}QN]HtH{ HsHH¿N1H{(葭HC(|@H?HHK9/HοTN1[rNyN1gH5p?Hs9N1H Hs~N13 Hο~N1f.1ffDfDUHSH"W HV HH@H-V?t@^HSuHU?HHHU?H[]USHH Ht+P ?HPH@ H?HU?H[]Dt-f?H[]HH޿ؖN[]1SHHHt3HZHtHNp?H@H@ H[H߾(HT$YH1HT$Htf.UHSHHHtLN.HsH=}?HHCt HEHHEH[]HCHCfDAVMAUIHATAUHSHH0yu H޿rNHHH߾BL,$Dd$ Hl$Lt$HD$H0[]A\A]A^AWAVAUATUSHLo(ML}yIL HD$MDAD$pIT$ HRpHtE1H*uMt$Hx{?HtcL{MuEDCu9M?Mt1IH%uIT$ 1ILLCtDHHuHD$HD$L MAH[]A\A]A^A_LrNAWI11AAVAUATUSHHwH={?nHH@<vH[]A\A]A^A_HE(H@pHtL%fz?L0MtfDMl$MtYfDI}L$u1I_ Ht(HKHU(MH}HHuAD$u MmMuM$$MuYIwPN1DfAWAVIAUATIUHSHHHFpHHBH@pHL(L#tRHELxMuCfM?Mt2IwH#uHELLD} HD$ HHxu(HH[]A\A]A^A_LHtN1HT$HT$HQ HMHLLHD$ HH@HD$LL9HD$HHH\$ Ll$(HLt$0Hl$EIMLd$8Hl$=@AD$tHD$H@I9D$ tODHI9L+MIEHtL MtEtID$ H=^t@)uAD$tHtqI|$Ht"tHD$(ML$NIMLD$ HT$8Ht$0H$1ifH|$HH[]A\A]A^A_XAD$HD$LHtN1OHT$DNx?HuHpHHx!HpHHx!AUIATUHSHHoj?1ɺH޿pPHII\$ Hu ;HHt0H9kuI^AE)uNKH[]A\A]piSHHID$ HI\$ HkcfDKH[]A\A]Ð(0BpMti?*KH[]A\A]ÿNֿN1N1off.AT@i?USDWi?Hh?H h?EHh?H h?E1D0i?L i?HHK4Ht?f.J<HF HtHQDHHHJHuHH6HHuIE9wH=[h?HLh?DHHH<HGh?:M pHAh?QHH*h? Hh?H h?H5Oh?HH5Zh?Ph?HH.h?HHHg?5g?H5g?Hg?g?H5g?1L$MtWh?HLwHg?HID$ Ht$HHHSHPHSHPHSHHuM$$Mu9-g?H~g?H5:g?H7g?Hg?1H=+g?eg?g?L$H=AsI^A@)x MD@$Pt8MD@uPAM%u/HfDHF(A}HAMH[]A\A]A^pVaHP(Ht BFNHh(MD@kfDAFuHUzuPJvg`HP(HRHHHBF>@HP(1HP(HRHHBF@HP(HP(HHuH=a?SHt"{(t C(1[f.eNDf.UHSHHH=la?t*HE HHE0HCHE8Hk HCH1[]fDNqDf.Ha?SHHtHX81[N1H`?HX81[fH`?SHHtHX01[NH`?HX01[fH`?SHHtHX(1[NHj`?HX(1[fH=X`?SHtHD 1H1[@NiH=`?SHt2HC 11HH¸HtJY0[fNDf.H=_?SHt2HzC 1ҾHKH¸HtJY0[fDNDf.AVH=V_?IAUATUSHLg8Ho0|HCHtL9ct]HDC(LcHHk1H=C^?H)IIILHtgC,ILk1M.[]A\A]A^H9kuI1NHS8I9hHs N1S{(1C,H$HyH;LeHItHHI)ML{(LHH48t@AWAVAUATUHSH(H=]?L?t$\$HcH@ HHD$Iĉ؃LlDIGLI$L8HHUH4H}1ɾ2k\1 HCHC}(E$N^AHC IGDsxIH0M9vT$Ht$LmH(1[]A\A]A^A_@Hu AHth1ҿ7N1 LHH$ HHD$L $*LHD$c^E1NHu AHu6[L贻*HEAHC] HE0N1H([]A\A]A^A_HHtHPzHs`N11x}t2utA~tCuCIu1CLHC0uuff"LLpH2>fHjfQNmSHHT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$H$HD$HD$ D$D$ 0HD$tuDNnNHE¹ONE1HHǾVN1躿 H=Q?HH=LQ?HT$H޹2H=3Q?H H1[1ɺONHN1] H=P?HT$HHƹHi H1[fDH=P?HT$1H5nP? D H1[fAWAVAUATUSHHH=Y?L'L$ EHAH@HLl0DH;ie?CI9H1@Du@҃h?S( fH,NSHD$bNHD$jNHD$ tNHD$(eMLDSHD$NHD$}NHD$ NHD$(NHD$0h]oHLHILN1H0L9H3H=Fd?11AVKHōA<HE1H=)d?t#HL`~^H9E1HAA!UB<B<-HU(C<HgH;c?I91H@D%҃sHH=c?E11A`~XH9Ht HE1HPKLHH N q1L${ qL$sDN`q1WA`q@HV?NHp1QUHE(HPNq1qDEOAEA6b?уtwuAu<t7fDfDfDHuH=b?谂uHa?H@xt<1{tT$ DADHH1[]A\A]A^A_Ui 봾NH$H$N NfD fDfDAUATUHSHHGFWJt 1 BHDHH[]A\A]L/HHX?QHE`?N1LA1 HH讝HHHDH3E 6[HpHIݾ@LwHIKHt$HJHuH9t$?D$Ld$0LM,$ID$ID$ID$AD$(HD$ AD$,ID$0HD$(ID$8eHS?ID$ D$ HuPf.L$ u>HS(Ht-HS?Ht$ H|$҅HS?t HCHzS?HHuH5kS?HA|$(tH}OT$ EJLmPLEJ<UIAEI AEIHH B[]A\A]HhHH HH߉HCHH@1HN1E14;AD$,ugEJLEJ 1q1NA|$(HH1[]A\A]A|$(fAD$(ID$I|$HH=UQ?HIt$H)5 q+xN1}LpHuHD$fHQ?NHHEff.ATIHUSHQ?h4 HHAH@@D1AHt HAt 1HfGAtLeLkHHEHtHUH;Su =DH9St2HHuH3?H- Q?H-3?H(H[H-P?]A\fL˛N1Q[H]A\%AH2HxAG@1HAfW LH¿N1ADf.H=hP?tsS?-Ht=3 HDP?HXHH2P?HH0P?H@ 1[-HGHw NHD)u[HO?NfHO?H~1fDHH HH9GHuAUzATHHUS1HH2 HIf NA$+$NID$PB@HIHuH[O?LHH{NHIHKLHt%f.HqH HBHrHuBHHN?AՅHN?HHuZZ?H5rZ?rH5yN?ƒHpB,Z?eN?H N?BH/Z?r KHH|M?H[]A\A]ID$PBAD$ID$PBH0?ID$ID$BID$BID$0BID$pBuID$BgID$`BYID$BKID$B=ID$B/ID$B!"Y?1҃<tt 1<ƒAT$AD$NrDHs¿N1YH{NHIHsH¿N1_f.USHHtNH{(iHtH{(HHoPtKY Hk(H[]˅fSHL?J?Ht=fHC0Ht#H@L?ЅH1L?t HCHL?HHu1H= L?[Ðf.SHL?Hu IHHt@HC8HtS@uC@HK?ЅHK?uH{HHu[fDHs¿N1nf.f@^uu tG@G@GPf.?mHu du5uuHֿdN@@8t׿iNHtƿ]HÐ?mHt(HֿiN@@8u(fDduҀ5ùuƸHֿdN@@8tHֿ]@0@8uHr6^tHH:t% 6^uՀ:uHf.À-t1fDAWAVAUIATIUHSHH>mu ~ddNHiNH*]HjH1D<:MH;tW^tS^tM4,AL{AHE.{LD A;u@Hĸ[]A\A]A^A_f~5"~H|$R HT$KLՅtH|$L H|$ HT$KLՅtH|$L螟 i@11nNDD$ 1FDD$ LIcHUDD$ 1A9<-fDS?<t S?fDHHHBpHqpHt-Ht(HIhHRhHN0HP0H9H9F1f.CS?5U?(N T?NqH S?HHH!H9jHHH!H9bHH9gIHI!I9gIHI!I9WHH9KHH9PHH9eHI9HI9EjR?ff+HH!H9)ft$Q?CQu$Q?QhQHDøHQffD=>S?NNHDÐ1R?O@R?HQ HFQHjQHcQHx QHpBQH QH QHqs QH\E M?H57?sωmDH7?NHl eQHWt*jQHFsQH1D[L?DH5I7?s?DH=IO?H7?H2O?H{HֿN@@8H# HN?t@K?H6?}QHփK?:gSznIzu?z5@`K? fH=Y6?$f.%-K?#?@#?@#?@r#?t@H=5?Ht$1%H"?HD$8@H55?N1M("?@"?@"?@H15?NHlQH3QHx"?fDZ"?l@>"?T@H4?H"?8"?$@!? @!?@HA4?H!? I?%I?H3?H=?!?t@H3?HNHQH8aHƿ`Q16@gf ?@ ?@ H?H?G?H H?f%fG?fG?qf1af6 ?D@G?/ kG?DSG?f%fEG?fQH G?`??F?f% fF?|Z?hxl1xl'x,?6H1?dNdNkF? VF?@1HֿQHƿ8Q11H޿QֶH{Ht$1E?H70?QHp 1 E?%E?MHY3=QHDGQH/QQHZQHgQHvpQHRyQH+;nu{ou{wu {\QHQHQHlQHWQHBQH-mQHJQH'QHQHQHNHQHt^NHQHttQHc%B?H C?B?B?cB?B?F%B?8 }B?*%nB? `B? OB?%FB? 8B?H%B?H B?H B?H B?A?A?H B?H B?uH uB? fH fB?W1H޿Q`>LB?-;B?*B? H%B?H%B?1H޿QH A?H A?@H A?H A?H A?H A?xAUIATIUHcHuSHcH#HI}H% :IE(pz:PfT(I<$H HI$Q`@uP@ur@1Ht t  f HtH[]A\A]HQG@_tf.HHfW@|@HHWcf.Ug]SHH??HCH(HHvH=/4?Ht4HyHH ?2H%H??HߺV`~1Ҿ%QH5\??Hÿ%QH3?8|HC(H3?H@(HtHo3?Hz(HՅuH2Q1[]ffDH=A3?HG(HDH*3?`~Hx(^H3?`~Hx(H[]_fH52?Q1H52? Q߮H?HQQ[]黮f.SH(,?Ht(H{(`~nH{(`~oH[@Hu=?<t'HN2?H@(Ht`~[聝H5?Ht=H==?11A/Ht HQv^[HpXQ1DH5i+?Ht'H===?11A/Ht Pjt[Q趭kHP(HJpHtHRhHP0%]HQ01r41?0.1?xHTH5?Ht"H*?Ht;?t Q1FH*?r[f5?S`~OH=dH=DHHHuHH(H[]A\A]@1@Q\H(1[]A\A]HEHfDA]A 1ɺ1AiH1g]蠸 6? 8? 9? %7? 7?Hft HwF,f%f=tF)uHFpHtH(7?H9uſ`~2D6?<t 6?fDHHHBpHqpHt-Ht(HIhHRhHN0HP0H9H9F1f.C6?58?R 7?(RqH 6?HHH!H9jHHH!H9bHH9gIHI!I9gIHI!I9WHH9KHH9PHH9eHI9HI9Ej5?ff+HH!H9)ft$4?(|Tu$4?hTHTHDøUTffD=>6?Q`QHDÐ15?OR@5?uR@Rf.hSf.Rf.XRf.4?1S@4?0US@ Sf.HxSøpSu4?x Ta4?0TøSfDSHHKQEHٺ6@Q.HٺExQHٺEQHٺBQHٺDPQHٺPQHٺ=QHٺF0QHٺJxQvHٺtȺQ_Hٺw@QHHٺGQ1HٺQHٺQHٺv QHٺRQHٺRQHٺ<HQHٺO[QDf.SPHI$TH{ Ht$1HT$H1?:B H9 H=o1?u Hb1?fH[fHI?|NHQH-QHQHQHQ H&Q H>Q HFQHjQHcQHx QHpBQH QH QHqs QH\E 0?H5?`slmDH?NHl eQHWt*jQHFsQH1D[/?DH5I?hs?lDH=I2?H?H22?H{HֿN@@8H H1?t@.?H?}QHփ.?:gSznIzu?z5@`.? fH=Y?$f.%-.?J?@*?@?@?t@H=?Ht$1%H~?HD$8@H5?N1M(~?@~?@^?@H1?NHlQH3QH?fD?l@?T@H?H?8?$@j? @N?@HA?H*? ,?%,?H?H!??t@H?HNHQH8aHƿ`Q16@Jfn?@V?@ +?+?*?H +?f%f*?f*?qf1af?D@*?/ k*?DS*?f%fE*?fQH *?`$??)?f% f)?|?hxl1xl'x?6H?dNdNk)? V)?@1HֿQHƿ8Q11H޿Q֙H{Ht$1(?H7?QHp 1 (?%(?MHY3=QHDGQH/QQHZQHgQHvpQHRyQH+;nu{ou{wu {\QHQHQHlQHWQHBQH-mQHJQH'QHQHQHNHQHt^NHQHttQHc%%?H &?%?%?c%?%?F%%?8 }%?*%n%? `%? O%?%F%? 8%?H%%?H %?H %?H %?$?$?H %?H %?uH u%? fH f%?W1H޿Q`>L%?-;%?*%? H%%?H%%?1H޿QH $?H $?@H $?H $?H $?H $?xAUIATIUHcHuSHcH#HI}H% :IE(pz:PfT(I<$H HI$T`@uP@ur@1Ht t  f HtH[]A\A]aHTG@_tf.HHfW@|@HHWcf.Ug]SHH"?HCH(HHvH=?Ht4H\HH>2H%H"?Hߺ`X`~f1Ҿ%QH5\"?Hÿ%QH?8_HC(H?H@(HtH?Hz(HՅuH2Q1[]ffDH=?HG(HDH?`~Hx(AHu?`~Hx(H[]BfH5Y?Q1H59? QߑHP>HQQ[]黑f.SH(?Ht(H{(`~QH{(`~RH[@Hu ?<t'H?H@(Ht`~>聀H5j>Ht=H= ?11AHt HQv^[HpXQ1DH5i?Ht'H== ?11AHt Pjt[Q趐kHP(HJpHtHRhHP0%]HQ01Bs?0?xHTH5>Ht"H ?Ht?t Q1FH ?@s[f5b>S`~OjH=?`~>GH=?`~GH=v?`~F`~?H3?Hxht[H5?H=?1\fDH1 ?HuE@`~=H{(`~Ruf.HsQ1pH[@HtH{(EH{(`~?tH{(`~GtAVPAUATUS^ H- ?IHE1A fHU(BDBHHut@H[HtgHKpHtHHtzuBtC)uS,fftH `tE9/DAI\H[HufHm@HcDGBL >`~DLHdt j?LH=?`~A$Qt 8?H=8?tn?<t`H=Y?`~tKPdB;H?H=-?AbBH >AcB`~Hp(QtF=?t []A\A]A^8j[]A\A]A^G4$LDH IQ1[]A\A]A^01E1fDHiH?HUHSHHHt7{C$0T@HsHu HHu1H[]Hs0HtfD~HtDHEH9CuHEHHHEHfDT|ff.AUHAATIUHHSH(HX?Hz(A0rrHHHDhxJHHLd$j1HHHzH$HtYMt$HuHtDHH([]A\A]fDH}Hu >DHHHuHH(H[]A\A]@1@Q\H(1[]A\A]HEHfDA]A 1ɺ1ALH1g]蠛 ? ? ? %? ?Hft HwF,f%f=tF)uHFpHtH(?H9uſ`~D?<t ?fDHHHBpHqpHt-Ht(HIhHRhHN0HP0H9H9F1f.C?5?.U ?@WUqH ?HHH!H9jHHH!H9bHH9gIHI!I9gIHI!I9WHH9KHH9PHH9eHI9HI9Ej?ff+HH!H9)ft$?Wu$?%XWHDø`WffD=>? U UHDÐ1?U@?U@Uf.XVf.Uf.Vf.?@qV@?V@pHVf.Vø Wu?ZWa?ȂWø2WfDSHHKQEHٺ6@Q.HٺExQHٺEQHٺBQHٺDPQHٺPQHٺ=QHٺF0QHٺJxQvHٺtȺQ_Hٺw@QHHٺGQ1HٺQHٺQHٺv QHٺRQHٺRQHٺ<HQHٺO[QDf.SPHI$NXH{ Ht$1HT$H?:B H9 H=o?u Hb?fH[fHI>|NHQH-QHQHQHQ H&Q H>Q HFQHjQH߼cQHʼN QHpBQH蛼y QH膼S QHq- QH\ ?H5>sOmDH>NHl eQHWt*jQHFsQH1D[?DH5I>s?ODH=I?ķH>H2?H{HֿN@@8H H?t@?H>}QHփ?:gSznIzu?z5@`? fH=Y>$f.%-?>@>@>@r>t@H=>Ht$1%H>HD$8@H5>N1M(>@>@>@H1>NHlQH3QHx>fDZ>l@>>T@H>H>8>$@> @>@HA>H> ?%?H>Hb?>t@H>HNHQH8aHƿ`Q16@-f>@>@ ?? ?H ?f%f ?f ?qf1af6>D@ ?/ k ?DS ?f%fE ?fQH  ?`>> ?f% f ?|Z>hxl1xl'x,>6H>dNdNk ? V ?@1HֿQ}Hƿ8Q1|1H޿Q|H{Ht$10QHp1|bH{Ht$1HT$Hv ?:u HPH4H>XQHp1=|g ?[ ?J ?> ?H7>QHp 1{  ?% ?MHY=QHDGQH/QQH{ZQHTgQH0pQH۳ yQHƳ;nu{ou{wu {QH薳QH聳QHlQHWmQHBJQH-'QHQHQHNHٲQHIJt^NH賲QH螲tQH荲% ?H ?????p%?b ?T ?F%?8 ~?*H%2 ?H # ? H  ?H  ?7?+?H ?H ?H ? H ?1H޿Qx?s?bp?QH%I?H%I?:1H޿QCx!H ?H ?@H ?H ?H ?H ?fDAUIATIUHcHuSHcH#HI}He :IE(pz:PfT(I<$HD HI$YX`@uP@ur@1Ht t  f HtH[]A\A]HYXG@_tf.HHfW@|@HHWcf.Ug]SHH?HCH(HHvH=/>Ht4HB?HH`>2HeH?HߺY`~$J1Ҿ%QSH5?Hÿ%QH>xBHC(H>H@(HtHz(HՅuH2Q1[]ufDH=A>HG(HDɻH*>`~Hx(D$H>`~Hx(H[]Y%fH5>Q1=uH5> QuH>HQQ[]tf.SHh>Ht(H{(`~R4H{(`~5H[@Hu?<t'HN>H@(Ht`~N!cH5*>Ht=H=?11AHt HQv^[HpXQ1=tDH5>Ht'H=}?11AHt Pjt[QskHP(HJpHtHRhHP0%]HQ01s4>0.>xH蔯H5]>Ht"H>Ht?t Q1sH>s[f5">S`~MH=?`~~*H=?`~*H=?`~)`~"Hs?Hxht[H5>H=>1.@fDHq>HuE@`~ H{(`~^5uf.HsQ1rH[@HtH{(^(H{(`~ #tH{(`~^*tAVPAUATUS H->IHE1A fHU(BDBHHut@H[HtgHKpHtHHtzuBtC)uS,fftH `tE9/DAI\H[HufHm@HcDdBL> t>`~DLGt  >LBH=?`~Qt >H=>tnW?<t`H=?`~tKB{H>H=m?A~BH p>AB`~Hp(,QtF=Z>t []A\A]A^xM[]A\A]A^G4$LDHL IQ1[]A\A]A^pp1E1fDH"M>HUHSHHHt7{C$YX@HsHu HHu1H[]Hs0HtfD~HtDHEH9CuHEHHHEHfDNXAp|ff.AUHAATIUHHSH(H>Hz(A0UHHHDhx芔HHLd$誀1HHH躣H$HtYMt$HuHtDHH([]A\A]fDH}Hu >DHHHuHH(H[]A\A]@1@QnH(1[]A\A]HEHfDA]A 1ɺ1/H1g]~ > >I> e>Hft HwF,f%f=tF)uHFpHtHh>H9uſ`~D><t >fDHHHBpHqpHt-Ht(HIhHRhHN0HP0H9H9F1f.>5A>؋X >XqH J>HHH!H9jHHH!H9bHH9gIHI!I9gIHI!I9WHH9KHH9PHH9eHI9HI9EjC>ff+HH!H9)ft$>0[u$>[XX[HDø0[ffD=~>tX^XHDÐq>X@Y>Y@-Yf.(BZf.xUYf.X|Yf.>Y@>Y@@Yf.xZøgZ>Z>Zø`ZfDSHHKQ腦Hٺ6@QnHٺExQWHٺEQ@HٺBQ)HٺDPQHٺPQHٺ=QHٺF0QͥHٺJxQ趥HٺtȺQ蟥Hٺw@Q舥HٺGQqHٺQZHٺQCHٺv Q,HٺRQHٺRQHٺ<HQHٺO[QϤDf.SPHI$[H{ Ht$1HT$H>:B H9 H=>u H>fH[fH>|NHQH-QHQHQHQ H&Q H>Q HFQH4jQHcQH N QH谜BQH۟y QHƟS QH豟- QH蜟 >H5> t3mDH>NH講 eQH藛t*jQH膛sQHqD>DH5>(t2DH=>H]>Hr>H{HֿN@@8H- H6>t@>H>}QHփ>:gSznIzu?z5@> fH=>df.%m>>@j>@R>@2>t@H=>Ht$1eH>HD$8@H5>N1d(>@>@>@Hq>NHlQH3QH8>fD>l@>T@H>H>8>$@> @>@H>Hj> ^>%F>H9>H>F>t@H>HNHQH8aHƿ`Q1vb@#f>@>@M>A>+>H >f%f>f>qf1af>D@>/ >D>f%f>fQH X>`d>P>>f% f>|>hxl1xl'x>6H>dNdN> >@1HֿQH`Hƿ8Q1/`1H޿Q`H{Ht$1|HT$H>:u HPH~H>0QHp1_bH{Ht$12HT$H>:u HPH4H>XQHp1}_>>>~>Hw>QHp 1'_ R>%D>MH虗=QH脗GQHoQQHZ{ZQHETgQH00pQH yQH;nu{ou{wu {QH֖QHQH謖QH藖mQH肖JQHm'QHXQHCQH.NHQHt^NHQHޕtQH͕%R>H >->!>>>p%>b >T >F%>8 >*H%r>H c> H D>H A>w>k>H >H >H > H >1H޿Q[>s>b>QH%>H%>:1H޿Q[!H ^>H O>@H @>H .>H >H >fDAUIATIUHcHuSHcH#HI}H :IE(pz:PfT(I<$H HI$[`@uP@ur@1Ht t  f HtH[]A\A]"H[G@_tf.HHfW@|@HHWcf.Ug]SHH^>HCH(H?HvH=>Ht4H"HH >2H襽H>Hߺ`[`~d-1Ҿ%QkH5>Hÿ%QHU>%HC(HE>H@(HtHtH=>HtH>Hz(HՅuH2Q1[]XfDH=>HG(HD H>`~Hx(H>`~Hx(H[]fH5>Q1}XH5y> Q_XH>HQQ[];Xf.SH>Ht(H{(`~H{(`~H[@Hu$><t'H>H@(Ht`~GH5>Ht=H=>11AOHt HQv^[HpXQ1}WDH5>Ht'H=>11AHt Pjt[Q6WkHP(HJpHtHRhHP0%]HQ01t>0>xHԒH5>Ht"HY>Ht.>t Q1VH3>t[f5>S`~0H=>`~ H=>`~ H=>`~< `~H>Hxht[H5<>H==>1n#fDH>HuE@`~.H{(`~uf.HsQ1UH[@HtH{( H{(`~`tH{(`~ tAVPAUATUS޻ H->IHE1A fHU(BDBHHut@H[HtgHKpHtHHtzuBtC)uS,fftH `tE9/DAI\H[HufHm@HcD湀BL~ 4>`~DL*t >L肉H=>`~Qt x>H=x>tn><t`H=>`~tKНBeH<>H=>ABH 0>AB`~Hp(lQtF=>t []A\A]A^0[]A\A]A^G4$LDH茺 IQ1[]A\A]A^S1E1fDHb0>HUHSHHHt7{C$[@HsHu HHu1H[]Hs0HtfD~HtDHEH9CuHEHHHEHfDs[S|ff.AUHAATIUHHSH(H>Hz(A08HHHDhxwHHLd$c1HHHH$HtYMt$HuHtDHH([]A\A]fDH}Hu >DHHHuHH(H[]A\A]@1@QQH(1[]A\A]HEHfDA]A 1ɺ1H1g] b > W>> >Hft HwF,f%f=tF)uHFpHtH>H9uſ`~DAVAUATU1SHH=4>WD%>IH Hx?/JD-DHD與HuHH| II4fHXHtSH)HLHHHIH赅;/5>uH5>LMׅ5h>HHuHL赅[]A\A]LA^fAWAVAUIHATUSHHt$S^I1MF Hf.I2L}HML9u>|+ t7HHH_ HIILLM)A4.ԇHuL9 H)Ht#HHtH H t tJvIQ[HH t utLHDA< t]< tYLA tEtHD:A uHBH$A EL $A< uI.=u$f=t t v HuI9uHI9x/tL)II}HIEIMHPI4H9IU>IUIEH<LL M}IEM}B8L蓆H蓂L˃HĈ[]A\A]A^A_HoH@HH0HHtYHKDHtCD@tH\>H@H9CtBH1H[]A\A]A^f >tHN1JDEHt$H*}HD$HthBH>>>Et:HD$HA[AfDHHtpHpLLuftHuwH;q IŋN>uJpBH>eH=>tmH[]A\A]A^H1fHL[1I@H޿[1iJu@H޿[SJHLzI<$HtZztQH${H>`~HHHH>HC7H޿bNI%fAWAVAUATUSHHHXHFT$0L$4DD$8/HD$HD;;HHD$@HD$HHD$HHHD$85y>HHHD$ SL|$ HD$8MI)I<r I9HHtLHLJ|%BD%/Ht$E1~(fj>zMtA$/A)E1L}D$HHHn/HLsmHIMItA$SL{LDOsHFMHt[HIHD$@H+HH/9/HL$(\ HL$(HD$Hj~H|$I]~I|3 HL$(HT$IHǾW>^1跃/L~HtMLM~EH)J<߭ MIML$MHHھ [1WL}DtHL?|xf.1HX[]A\A]A^A_~I.~B$Ft<}~ D$ ty@t\[[9HsSNMHHھ[1虂L}D4>A[E1DAzNH޿0[1Er@H設 IyT$4t$0H|$@Hl$HueH {HD$ 8HHH>HHP|HHD$ t$0xfDH=>tDATUSHHH(Ht TvtHĐ[]A\@H{(HdH>H9$H\>/HhH|Hu<[H衁HtH{(L`vHHH>LHHpH) Y bH>Hh[HPHp1D?Hs([1D#HD$H;>FH=H>H{3k Hhf.AWAVAUATUSHHHHWH LxL`0HH(ID$pHL$H= `LIoHHIl$hID$@HLpHCHuLHCHuE GNUI(HMHt$EHHP >}IwIt$h1HMl$@1҅tH[]A\A]A^A_HLH1I9I$H@I|$@腩 HSI$H"[1$Cf.SH@{wzC$0[HS:.t=DC(H=W>`~murHs[BbfHS1ɀ:.uÀztHDH[{vfD[fDH{gH{ ^H[(]DH{GH[ F@f.t HH>SHHtHx(rHCHH{(HH=>t ruxHCH>HHrU tVCXt+H{/xHtH>HxHrU t%H{(rHtHy>HHreU uHZ>[>uATUSHH(HtGD@u[]A\f.rHItxHd>HuDHHtHsLT tHk/HwHuҾ<[H5}HtHPHLH)T u>kHC(H8?g It><t v-H M>>t">~*H[1:@>H->-USHHWXŃ@Et Hw(FD@u3t H{(GD@u H1[]@pH1[]H[1?fUSHHH=>;xHu1[z?1H[]ÐHHt+@A[Hu&HtXH>@xH >HH HB0HB BHJ(HBHh@H[]1[>1mDAWAVEAUAATUSH|$t$L$ LL$-H>{@tH[]A\A]A^A_@H=>Ht/Ϣ H>H=>H@H0U HH>H>HtqH=>HuHHH0HGxuDEtHHt@XuSH=J>urH8>HQ>`~H@HxH-D>HuUDHHtDHExuHHt@XuHHtfx8uH0[1^=@><Ct>L >ME1E11AA DIHt @XIHE1Hxp `H_d[HL\t[HL9Hx@.AH@tHuE7DALοp[HE1YH=>`~HD$>mHHHDt$(f.H{Ht(lRH{Ht><H9It9I|$Ht QluHsI|$tM$$I9uοBHj>HW>HK>HtHx(kDD>HSHsEHT$0HT$@Ht$8H>Ht#H@H|$@DHD$HbE1Hl$ DD$(H=f>Ht$0DD*DL$Et@H=5>Ht4DD$(Ht$0IDDHLAMoEDD$E|$H{pH->HLxHmHEuH}kpI<B HKHUHIľW>^1uH|$@DDLd$HuKLnH=]>[mnHNDD$(Ht$0DDH.Hl$ HHH>Hu~fDHHtlCH<uCD@tHCxuH f uHt`~Hy[18fHHD$Hl>H><1`~@[8SiHH fA@AEtME9HAtMMM>A>E2>Љ9;H=g>T[҃At >gIAAxIDPAAHSHsh[1Hl$ l7EC[1R72H=>`~hHItRDl$, DMt3IE1AHHCI9GHkEM?uEDl$,^t$ E>H=>@HeHCDD$(Ht$PDHD$PHCHD$X4f[15VH5>[N6DD$(L$,Ht$0DH`DAH=>W[jHDDD$(Ht$0DDH$RfD >H=>HHCDD$(Ht$P1DHD$PHCHD$XHt$H=>1ɺӼ[1HD$PHD$`HD$X H|$PHILjH|$PHH|$PIH9>iL/>2H=>1Ҿ[1 S^IHoLIiMt%H|$PLẀnjHtULjֹ>H=>|LMiH=>1ҾӼ[1 H|$PHI(|$PEhntu|$Tut$`t$X1L`ntD$dxO INjD$dLLPiT$dH9uLH">Lh5f.AWAVIAUATUHSHL?MLiHHD$iD->HEf.HIt0HLHhuAtTD8tODLiHuHD$H|h  9>IHHI N1nI>gI @MtH[]A\A]A^A_H, IAWIAVAUATUS1HhH>oHt$HHT$@x@D$/fD$0H- >HL%>MufDM$MID$xuI$H HtЀ?t~ IfEtHIt5#>LhHt.AMtA}tH|$HLHD$ HD$ E1HD$XLL$HH _>H5@>H=)>MHD$HJ>HHD$`~H$6mHl$XHt$H=>HSHgHHE@L%Ȯ>MufDMd$@MAD$XuI|$([HItLx@I> I|$(1MHLHBD=H!>E1E11IL$(H`~P(HeIEpHtHHHIU@H9rH)HHHMd$@AM( IE@MLfDH=>`~Mt^HtD$/foL$0K(CHh[]A\A]A^A_It$([06@[10[1/f.H=Y>`~><H=>11A[RHPt H>HHD$ `~HRHxHD$ Piуt PiH@oS(CHC( `fT$0D$/HC0K(H|$@H|$@f.D$/1ۿB_@K[cHIAW1AVAUATUSHHjX@LbIH~IdLIdIǃLdI|裔 IVHHML[1'jHH5H{(Hk2¸tGHS(BD@t=CXƒt[.CXtxH{(Ll^H[]A\A]A^A_ÐI IVHHLW>^1~iHH5WHcbH1[]A\A]A^A_fH{T IwDf.AWAVAUAATUSHH(LH>Ht$I@xHBAƃxEAE1Et HDx#>D$<tM>t;C(t5EA1A D$F[HED$HD$DEEF5>uQ[H}Ht%11QHHEtu UH0Hp]rc>\><9<k(~HIf.ILHIMI~puAF(Āu1IuGD@uHHt@XuHHL^tAF( ŃfEs(@I HG H->HtRfHE8Ht7H= `t/HA t"DX(A1DةuG,9A,DHm HuHD$ [t%@HD$[t"[0[HDHD$H fD LA@]IHHHt$H$E1DH.H([]A\A]A^A_H|$11DL$OHDL$ADd$E1IAED1LVHIIt$8HF(93C(uE)E HHJ,9H,u Ӹ>u#HuHRH3PuDHH=>H\I|$8FfDL8@tE AA\A\~@A]lA \Z@AP\JTE&A t A;A\@I|$LH1Ld$9]LD$H([]A\A]A^LA_fHDd$-H}HH1]H(H[]A\A]A^A_Ht$O[Dd$8tHD$D$xa HD$F[OH3T[ u/Hp>Ht#HxH1HHD$e\HD$Mk(E11I8H11LD$LLD$HI@HIP`"HHLD$THHLD$H >D$HD$<[|Ht$b[A\8qHD$<[DE1AHy>Hl$E1LE1DD$E1H\$E1E1fzaEDɾ;g]H| D9MttIMttWHP8HtR(уLEft ILEHP HtHuHHHHAxu拁tHHt@XuHHtfDHHHB,Ht-H,HHH@,H= `tHxp `up,fftftHGp `B,O(@u2@HH[HHfDB,tHb,HHuHH@B,DATIUSHHHnHu HF@H;H9vAHsH;HT$HFHCxHL$1҉A $H9HDH[]HA\HCH1[]HA\f.US HD ~H=>HWB-><HH=>H Hh8`~t4H=>HH HQ8H9to~atrf["@1[t"H>HPBt6H[]fHr@H9rHi8HPBuH=ð>uHxH Ht`~ЅuH[[]!Hi>H@xf.SHH HH4$HD$HD$tH&>H@xt H [fDHpB#byH5`5[H1a!Df.SHH0HtGHtvHBt$HH$D$HD$BD$BD$HD$ Pbx H0[fDH54P[H1 H0[@byH44[H1 f.DHff.HH9Xf.SH1CH@uHCH0Ht-KJPJ ʈPJPIKIH ʈPI[@AWAVAUATE1USHHHGHHLhHTIHTaI9LH@HIHLHv\I9IELIH$HCI9HrtP>@LHE HEHE1HD[]A\A]A^A_fD ?@HHHHE HHHH9tB?fDH$?DE1LH-HHT$;HIHE=HT$H$Mt$E1H)H} H$IDHD$u/QHD$I~IIIIEHCIEL9} v$HCLH9$w ?HAQ\HH?HH)HHEKIAWAVIAUIATUSH(2 LHD$D LHILED HHHD$IDfAMt/u fDt IA/uu@t^@/tXHt HL-P>EAGH|@LLf../HH9uHLHھW>^1WL->LPH|$PH(L[]A\A]A^A_ÄY;/uA?}.AH=>T$oPT$>蚍HH>tpT$EIAGr>'HL@LPL]LQP2E11[T$w;T$E1fDHHHxHfDAU1IATIUSH(HHHQ H!%tDHSHDHH)L9r!LHLSH([]A\A]HHLrSI|L H)QH([]A\A]fAUHI[1ATIUSH(HHHP H!%tDHSHDHH)L9war'LHLRH([]A\A]fHHLRI|L H)PH([]A\A]D.:H(1[]A\A]ÐSPHrHH[GIt*HF1HHHEHH;N r(H9HHfDHHHFHH@f.[f.HSHHHH4$HxHt4H<7 Ht'H@KIPI ʈPIH[f.1ff.AUIATIUSHHHHhHtMH߾@HL LhHH9 HIHh(L`0H[]A\A]@1A$@ABBB2 HHtHHhyfD1ff.AWHAVAUATIUSH<HXHl$H'THHLI9|I{N,IM9fH$MM)JL8H9HL$sHqLI9uL|HIHLHGI9=Ht$H0HIHEL,$HLL$MLWGI9L$Kt=E1HKHCHH`H:/tlH>H{ r*1HuHLW>1|LH>mH0*Uz uHHHQ=HUzAU1ATUSHH(HH0rHt1H([]A\A]HھHEHuѺHH)Hu[Ht[HucHCHHHtHJLeIt I9vWHtR H)H@=HH@(H@06@HH@(H@0@LIt$HMe0IE(HHx(HtHLDL9t;%t (HHHp(-HH@(AHH@(B HHp(HHMHH9r8D<\t*HH9t&< uH9sc1z/H/LHsEHI$HHHH?H2H)HH;1f.AWAVAUATE1U1SHH8HGLt$(HT$HL$ @MHD$|U@IM7Ht @IuL0MtLLh t7A>/LtH3L>/t[HD9t$wARD;t$GIGHT$HL$@ MM2HH8[]A\A]A^A_CEtJDt$,HM@L+ IM1H8[]A\A]A^A_HŃ|$(H@HHEIHD$ML tLHD$ MH(ND$E1E1Ll$D$,HD$ DIHt @IuH(MtHLC Lt,}/Ht#HH8/tHH-Hf.HHt$c:9D$Ht$rCIt{IL9L*t;HL$LALH+HT$LH<H[]A\A]A^A_{1u΀{/uC^tFFL>La7PIƃI;T$t [HT$M!LHT$IT$H{0 u1qL<HS>HH9uA6L[D)H>H9fL& LI0f+pf.AUIATUSHHHHHLcHHt$ L8L;d$HEXLcHt$ L8L;d$Et_Lc"Ht$ L8L;d$E t?H(Ht$H8H;\$EtIH@HE01H[]A\A] AVIHAUIATUS% IIFLhg5HH9r/HLL!8H9v IF@AD[]A\A]A^fD[HLL]A\A]A^7f.AVIAUATUSHGHDhGDuyIt7MtwL4I9Hs2HwL9u HC@A.[]A\A]A^fH$ IHLLb7I9vHC@A.[]A\A]A^[[AVIHAUIATUS$ IIFLX'4HH9r/HLLH6Hw IF@AD[]A\A]A^fHLL6A|,.uA|,ouAD.ADo@@f.AWAVAUATUSHHH<$D$4t D0IGLHIH;D$(~!H1L=nHHLd$(IGHLHHD$ME1L|$ MH(2HT$IĉH@H<$L48HIHD$_H<$It$LD$IIH8H:JDHp0HD$ EnGl%IFIL;|$JLA HA u@)tH=^t;\$0HA8_9x_/1x_[@Hi>Ht$ 1`[h>wJDH@fL|$ IGL tRf.MMufDH|$H4@D$0HlHtJLHD$%H/H|$/Ht$8H<$舼HH1[]A\A]A^A_1E11L4$L|$Eًt$4IFLLH.L.Ht$8L(HH[]A\A]A^A_H|$v.HH1[]A\A]A^A_DL`[1g>'fAWAVIAUATUSH8 DoIHHD$HD$ HD$(AAH1CHL$t"HHt>CHHthuEtH߾1\H@HuIFHL$(HT$ Ht$L1H8 []A\A]A^A_fDCEH3HT$01vAFE t$HDŽ$D$LD$PD$HtjHIKL@8H AD$p ID$8ID$@I|$HID$HID$P[ID$XID$` ID$hH$LD$L$LI|$T ]L$PI|$Z ]L$HI|$`[HT$`I|$h 4LD$` LfAT$rHD$`LM$H3ID$IFL7H߉`f.LcL$0O-D$L60D$PI$D$HHD$``@11L5 AFI[HE$4HA Dl$lH\$ HwIHt6HHLL`HCAFItrHHuʀ|$t IFLu[uNHfHǃL*11H4Mtg*HM)tUI A H|$0MBEHL32L9IIH|$0LH2I9t1xH@L[2Hj@t$ LMHl$(H D$h HD$0HD$8HD$@HD$HHHD$PHD$XHD$`*H|$0HH-HSH|$` HNH|$0` L<fD$j1H<Ht$ H|$L1H;D$ L[1Huf.AWDDAVAUATAUHSHHHD$DETD$A2HDEHHD$tlAD$IH@L|MNHI9t8@LHI}I}HL8Kt=J<;4u,HD[]A\A]A^A_fDUt 8uHHuEt$,fD<:Ht1 ^DHHHTPH ^uHwkHHHxHp|Hg-oHCHVf.H PHFLH H fDE1A9D$ E1I;T$AHHHHI!J<;?:oL~fKH &H H u[`Ht0v%HPHVu+ 0H uHtE1@0 {H1Z=_H >CJ|;L fUHSHXHHt H1HMHH[]1N 9O u9uHVH9WHHHCHFHH@ @UHSZ^HfHHS8uH[HHuH1[]ÐHH[]fDZ^1 H@HJHuHHcH?WHt+HZ^fHr HHqHRHHuHH1f.HHDI EtHDF Eu=HHHȅu!WJtHW[H2uHHA0H1f.HH@ DHH@@H@DH@DHZ^fH@HHt9x uH9pt HuP,tfD1DSHHHHHt[@Hǃ@[c1[Df.kHtH@ Ð#[f.HGxt.HHpx 3Ht.@PHHtF+@tfDf.Ht@PHf.Rf.HGxtH} HHxH(x Df.h>fSHt&taFljHŀ[H[fD=Bh>HHH8h>H|$[H1tHD$H[@8TI fH럐f.SHH=[>Hۋ=g>t;u0KH=[>H¾N15[H=[>hH=[>HHھHmN1[H=[>5DHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$H$Ht$HD$HD$ D$D$ 0HD$O>HÐf.1YfHN>H=N>ÐH=f>HN>H=N>ÐGH<uHGHpnf>H@f.GH<uHGHx.f>H@f.GHƒtf>1DuHGwDH!9te>1fH[NHM>IHMHNt"[1[1[1f.=Oe>wPT[([@f.e>H= e>5d>wP@[([Mf.AWAVAUIATIUSH8H$0H$fHH9uL1t%tP%HHuEHHH$8$@[fDH%0LxA6^D$t#x$u1LxDp|$ IE7A޿[hHuA*L^t!fIA^uAA.D$1A[HAht'AltAALt3[([D$IE7fD鐃HsA0D$ DAO*~I^tIA^uA%pI@0t6^@t x$3HDŽ E7AOIw0t ^tA$uGIwHIDŽD6fA$0kIt$A$HHHH9H=U>Ha>H<H=U>[13HU>D$AEtA<%%LHL)L[HH1HcIՃuH5{U> H=jU>H8[]A\A]A^A_A$0It$A$@AT$It$AT$I|$HWHHrIt$*8 [M([@It$HVIT$D|$ANIGH3|$$x[It$HVIT$8It$HVIT$R|$D|$IB<mAIWw@HFt$ut1Ƀ룃Ƀ뙍OLx2[([AU%.0M}D$ %A^t A}$ALd$!@IIEt$E7E[DHuA*L!EDC-^t#fIIAD$A^uAA.D$D$A[WHjAht Alt?ALt/[([D$IIEt$E7D$D$L꾔lNH1A$.AWMt$*,IM^tIIAT$A^uApL$I@0t6^@t x$3LD$H11)g]XHE7IA0'H Q>[?H޿%IE4$AD$AHl$MoE<3$[Ht$ HH1H,D$AG@fDHx@f.HWH1tHWRtuHÐH@(DGH<tHG@tuHÐHp(DHt;WH1tHWRt$uHH1DHH@ ff.HtGGH<tfDHG@tuHHHHp P[J([Df. f.zHuHB HHHDH@HAWI1AVAAUMATAUDSHHHKAytH[]A\A]A^A_T$`HDL$ HHrHH$HIAH8LxDt$PI@AD$XDL$ H$D   D$`MAH8A@@MHu@HH HHuGHHHuLH[]A\A]A^A_fDHt$hIxHL$ L$1H@UHSHH]uH%]HH1[]| ff.UHSHH]uH%]HH1[] ff.HW1ztftCt&uHxP HfP:Hx$uDHx uDH1UH1Htzu HxH@HDS1&H1Htzt[@Hxu H@([H@0[fAWAVAUATAUHSHHtLHW:B$<$IDIA<$t<.tMMI)@LHHL)HxI@HbLLHB0IIDLLIMHu MLLIIHHDHK /HHHD$HH ${?HIt4LHHuK<.LLfH $HT$HLHOLLH[]A\A]A^A_D$IIE1ME1D$tUH)HXH>HIt9HHHHL[]A\A]A^A_DFH$D1a<.=oAUATUHSHGD@$HHWIzHxLH(IMx RPHEIt$1PPHEIt$H{@P8KxHEIt$HcP8CxIE0H[]A\A]HH`A$ZLIBH{@It$BCxH[]A\A]fRPHEIt$H{@PPKxHEIt$HcPPCxIE0믺[ ([Df.AUATUSHHHGxt1H[]A\A]@HB tHxHLD$H $HH(z t`P@AHCH}P(IHCH}P(LD$H $AuHHH!H9uL)HL$}DL$Ae@P@AHCH}P@IHCH}P@H $LD$@f.HW1ztfHt3HA tHxH( z EfDGFuSHHH˃tH[f.IHr~uHxH(HxH(q @8w tI0[t,@EuLH;HHtHS H H HDf[HH!@AWAVAUATUHSH(HGxtH([]A\A]A^A_IHRzuHxIH(HxH(@ 8A tIH6[EELD$uLHuLcLD$MtEHI]@<t IEHHHELHLD$1҉HHLD$I9wI IIt1HELD$HLsP@HELP(HD$HEH{P(HD$ID$HMm@PPID$HsH|$ImPPID$LH|$PPI7IUH{ H}LD$I(H(HL[]A\LLA]A^A_Y HELD$HP@HEH{P@IHEH{P@Im@HD$LmH HH9HHLD$ID$LD$H޿PPID$Hs1PPID$HsLP8ID$HsH|$P8IH{LHp I?ILD$f.fHG0Ðf.1f.H@LGHuN@uX@uj1Ht Ht 1HfGtIHF01H~@t1HfO@tDHfUSHHHoH}HHCH1[]ÐATUSH_tHw0Hx[L#L9vGHtgHnIH3IHI9r 1[]A\fDH{H7HHCtMHJ< 1L)HG0CLg0-Hwf.AVIAUIATUHSH_HO0HH H9v;LbHHHH{IL9r/HHLH[]A\A]A^DH{f.L6HHCt7H;I9wIM0HfDL1H)HH{IM0fDHDf.AVIAUATUHSLgHHW0II$H H9vH9w:H)HIſHU0HIt$HL[]A\LA]A^@E11Ȑf.f.USHeHHt1H1҉ljž13x1HH[]fSHHCII1fD@IuIHHIHXHuHHKXHt;L@HC0H9w HH)I9wH[ÐHI9sI)I4HCHtHHHHHH9tHS0H[H1@f.ATIUSH @AIuHHHuHCHtBHLHPHHtHC0I9LtH[]A\@[]HA\f.USHHHtPCIuJ1@@IuHHHHWXHuHSXHK1HHt HQHC0H)H[]H1HHt@IuHfHGHtH@(1f.Hf.@IuHHHuHGHt)P0x HfDD$ D$ HÿAVAUIATAUSHHCI1@@IuHHHHoXHuHCLsXHAv-Mv8[LEuCH;k0t-HC1<Du~MtLHPAu:Lk01[]A\A]A^DHCDHHPAuHk01[]A\A]A^8t5[]DA\A]A^f.ML]H1'QD{?gDSHHGItHG8HĐ[fH1uHD$XHC8HĐ[@f.SHHHHvPGHtHHtHǃ1HĐ[DHD$0HtHHĐ[fDuGHtHHuuDf.USHHHtVCIuPHHtDH8HhHtH:[]HtHH9HGH[]fDH[]f.SLL\$H\$MtYABItP@IuLIILOXHuIBMJXHtH\$L\$L[H@8iH[If.C>tDHH_u+H$Ht!H M‰C>HfHPHHIfSHHu:HS HC(H;#C>HB(HK(HQ t-HC- C>[f.1f1H9HEHB>@f.HB>HtTSHX CH t'H[ CH uH9u[f.H{HHC0[*f.f.1H[tHtHHSHHtu`;B>~HH B>HC[HtDHC(H@ HC HX(HC(HX A>HA>[1uH[(H[ fD[wff.H[tHt$@H=aA>SHtfDH[t!Hu[fDHtH=A>SHHOH L;A>CHy4H;*[HHCHtkHCHĐ[ÐH3HuH|$0t H; @H;-[KHHCHufSHĐ1[H;S^sHCDH;-[[HCDUSHHGEHHt @IHCHtLH?>H9t8Hs(HK HHq(Hs(HN tWHS(HR HS HZ(HS(HZ H?>H[]Ð1@uH`HtM@t%HCH[]f.H[(H[ fDHs0H{1qtȃuÿyHH¿0[11q`[[5`[[!AWAVAUATUSHGEH;=>>IHAEMHHHtfH|>>HtoHLHHIM!L)LL$HH!rLL$ADDHLHtcHT$PL!HHT$XHH*H[]A\A]A^A_fDH|$~XH|$HcH=>pHHHD$aHD$띺x[[fDSHHH;==>t7HHtMHډƿ9xH[HfD$ D$ H[fHH;==>t+ H1Ht xHfHfD$ rD$ HfUHSHH;=<>t,1@HHt$HH[]@Hf.H[]@H;=a<>SHtIHHt[kHHuHC0[fAUIATIUSHH;=<>t?1H1HtHLLI9HHH[]A\A]DHofHtٿHCƐAWIAVAUATIUSHH;=;>1xIM11MlHHuHL9|VL9}QMAI<I)LIMNLL9H}Lnu*fDHH[]A\A]A^A_fDvqLoRHf.@Ht5DFى@ttW LHH!H?HuDf.HFHLx|MMtD@AvVt)u 1HH[[PHtMtIP1H;Qv HQfDADA끐f.AWIAVAAUEATIUSHHHDD$IIt$}IIt$DAUAD$ GNUHۉT$D$ {{l$tk IEAK4,IKt,{t(tct1`[[*f.IDH{LD$DD4(D#t$ HH]H[]A\A]A^A_fIDH{LD$DD4(D#t$ 뾺`[[AUATIUSHHGxHAHpHpHt(H9to9sf9Xt[w HHHu L1pHtiHH@H@HUXDh HHEHH[]A\A]@D9h sDh HH[]A\A]ú[)[8[Lff.AWAVIAUATUSHH(LGHNL~ IxHD$H(x HD$R1HHH?I,I9HL)H"D$p؉D$t$ HD$P tDAHxHDLDHЃD$ F(D#D$ML9GHL)HLCLAIHCIIIHL)H9ACAAucE.1ҾH{H @@QINIV1H޿h[1H([]A\A]A^A_IVDH޿P[1DD9l$T$H߾|$ILHCt#ID$AD$f.PpID$fDH([]A\A]A^A_@IVEDH1[OHHǀpH(1[]A\A]A^A_DH޿[1HHǀp1DH޿[@AWIAVAUATUSHXHGPH_`H@HxHHD$8H(@ D$4A 1HۉD$0l$0ufDHHtBHCxuCD@uHHptHx9h XHHuIW 1ONRhIW 15[RhIW 1ONRhIo`HH9pED@cHEH|$HHD$HHD$(H|$xXHHE1LpHpH|$ MMLd$AEE1_HD$AUHHt3;Ps &fA;QfDr LLMuE1IMMHHL;A}EtAMIUH9T$IFuH9D$t"M_ AuIH$LD$Hٿp[1AShLl$ MmM(Ld$HD$L0MuMAvCAV HHQIVHIVHPIVHPM6ME1A~MF1HHLWuHAVHpHu:f.r.HHt&;Puxt[[E'MO 1MHHڿ[AQhM6MXH|$(t[H蜍HtH@p `HHwHE1|$4[HA]HF$H MoMyDH\PLh@HHD$8HHtHpLHLpM-DLHHHE@I>lH{LHEDHD$dHLL$LHHHH @t ALJHX[]A\A]A^A_MfA @H @AvfHIMqHfDIEAHD$AGt0Et`MlM_ AuIMNHL$Hڿ[1AShIEHL$ HMG HHڿ[1APh/MMG AuHH![1APhHHpHHL$(HxHp|$09x HET$HT$gLD$I9WM_ AuIHٿ[1ASh9H(@ ;D$4[HH}HT$IHHpHEp `HX1[]A\A]A^A_L;hvDLhHpMO AuIHL$Hڿ[1AQh8[1APhH0Z[[w[HHpHF1HxH(x @ƍ4f.AWAVIAUATIUS1HHLpHBHxH(x HFpLh@ÃXxDH;n@w=H4$LD$I6f.DATUSHFhHHtLHVHHLH{8 H[]A\f.UHHhSHH HCHHHCH3HCEDHC8HEhHC@HEpHCHHExHCPHHCXHHC HHC(HC0C4>HC`HgHChHH[]ÐAWIAVIAUATUSHH>H҉D$tHAGH4<)MH=qHHHD$ 4>AGHL$HDŽ$ AGHIGHD$IHD$hIHD$xAGDD$pIH$IH$A$IGhH$IGpH$IGxH$IH$IH$bIHHD$`HDŽ$H$!IGhH0CHHD$@V AGH@-H->D$PHEHHL$`1E1H\$8D$E1HL$ D$4HD$HHD$(H\$ Lt$XL$0+DH$cHHEHXH=0]tEtH=O^tAGH@uH9D$t̋D$MJ>tLAAgDILJLILJ@[L$H$HsLdLaIHE11LIGAWHIGLиHI"IwAGHH}O^VDT$0<H;5a>HtIcH4A;T$D$4IGT$HD$81HH[]A\A]A^A_fHD$`HD$HD$AgHH|$ IGnH$tH$L3Ht$Lv1fAGIuYHD$(H9>t HEHD$(Ht HcD$PHUHÃD$PfDHt$`Lt$~9$IGhH$IGpH$IGxH$IH$ IH$(^IHH$L$8H$0H|$@H0CbE1|$4H\$8Lt$XEHD$(H;>Dl$PD+-ArA`IcHD$ H=t$LDf.HH_HLD HxH9uK9AH$tH$LIAE] 詿MLA11L HL$`HL$AWHIGLиHIAGH<H|$ ;H$tH$LHt$Le1^H9\$HI_tD$Mz >tLAAgDLILJILJ@[LHt$`L?`11L#AWHIGLиH'[AOIHD$AgH IG>MHL$ IcAIHHDxHAHHHPAuMLAvH\$(H|$ HD$ H rIcHH4HgH\$(AHD$`D$4HD$HHD$(E1D$HD$H|$0]DD$4T$iH|$ (+HL$ H1D;l$4&t$1@HS9HA9H\$(1fSGHHu$ƒwt&19[f.膼1[f GHHG¸ucH0[@#[w,[wH0[f.DAVL4AUAATIUSHHHCtvMPH9HH8)PH8H)HH;t0L1Fc$kDk CLc[]A\A]A^fH{HCu[]A\A]1A^f.LpHHf. >DSHHHC[fAVAUIATIHHUSH1SHHKLh1L`LHHHHHUH(CC$PHSL I9>[[HH)HHH?HHLI;0r3(LH)HHH?HHHH;0IL9uHH9L4MII9MH{L]IM1LLtCtnH 1H<H1L MtIIAMH9Au IIHuH 1IITHIL H H1L MuHH9uL+DcHD[]A\A]A^ÀK$H[]A\A]A^LIHHL9LGH9IL/)GL/I) 1Df.AWAVAUAATIUHSHHL$ HE1L}t'fDIHHHH1AGuI)At$AGHIII11LHI$HHu 0HHt(L9suH{HuHH[]A\A]A^A_ED$ EI|$MuNGH9sSZIM~LLH0IHLL[]A\A]A^A_LIwHtGH9rIL)GLI)fI1EH[f1 Df.ATIUHSwHHB1HHHHHtH9u ,H9t#HHHu[DH[謶@HHHHHktsM1LEt)IHHHH1AHuI)ADDHHHH11HCHI$HHHH[]A\þH[At$tf.HOHFI1HHHHHt)H9u HHHtH9uHLHú[dH[衵SHHHtHHHu,Ht,H[ÐOH9rHH)OHH)HuԅtпHD$舵HD$H[f.HHtHGHG HHH(HHH1Huff.HHtH@HAVE1AUIATIUHSG$W҈G$t5IEDHHu9fHHt(HHAԅuAE$AE$[]A\A]A^fDAE9uw@HHH[[HH)HHH?HHH H;9r,XHH)HHH?HHHH;8s8HH9uHH9rPHH[腳1Hd>HHHHPH9tHnSfDH)>SHHHtE >(ZCHet1HHC(HC0HC8C@[D1[@HH1[@HHt@@HfDSHHHCH[fAUATIUHSHt,HHH@HtBH[]A\A]Ð(L$ HHtjL$ L`HCHC Lm(LLkLHPHU(U@u@H}0HE8HX H]8HCH[]A\A]fHH[]A\A]fDIHLkHE(fDLLhHD HtLLH6HCCDH]0zDf.HG(Ðf.AVAUIATUSHH^0Dv@Hu jfH[ Ht_LcLEHht#IEHHPhLH%HuLHLH9tH1[]A\A]A^DH[]A\A]A^fD0f.1f.1f.HҰ1HÐf.H貰1HÐf.f.f.f.f.f.f.f.H"1HÐf.1f.1f.1f.HүHHfD@f.@f.@f.f.H1fD@f.HR1HÐf.H21HÐf.H1HÐf.H1HÐf.HҮ1HÐf.HSHxHt[Ht虮1[DHSHt/Hx Ht[fDHta1[D[HfSHHHtH[HHD$#HD$H[UHSHBHHu HH[]HtH1HnHH[]@HHH@t$HH $HHHD$L$hHHfW HÐG HÐW HDf.G HDf.H@~Hf@>H@~@H@~HHHFH@>HH@~Ff.WHHH WH fDGWHHH H fDWHHH WH WHH Ðf.GWHHH WH HH Ðf.WHHH WH WHH кH1Hf.GWHHH WH HH кH1Hf.WHH WHH WHH WHH WHH WHH WHH Df.GWHH WHH WHH WHH WHH WHH HH Df.WHH WHH WHH WHH WHH WHH WHH Df.GWHH WHH WHH WHH WHH WHH HH Df.H@~HHHFHHF@f.H@>HFHHH@~FH@~H8HH0FHH(FHH FHHFHHFHHFfDH@>H8FHH0FHH(FHH FHHFHHFHHFfDu;BH1DJ~$fDEA)DDMcB<H9uH[@[舨@uDFH~2DV11EA)ȅDEHMcIBL 9u1H[U[@f.MUSHHF,0GHHՃ<HFHHLHH9rHHt@ItMH1HHLD$d1LD$uSLHHLD$I95fHHH1LH;PvD膧1H[]@HF@OH1H[6L1H[[ئATMUSLu[]A\f.HI1HHi1uHHLH9[]A\DHvH1@HufD1f.HWLz_.E:fAUHATUSHHH  >HtOHH=y=IANHtIH==IELH@[1H==HH | >H[]A\A]fH=a=Hj[1誽H11fDHAA)MAIL ExDfL9As{DHLȃEyyA(DAHLσHH EyL9uۃ?@HtDEt@tA@t HHH þE11E11ȾAf.H11fDHAA)MAIL Ex݃?wA@t HHH DÐH9w HHtHȀH9Gs1HGff.HH ?HtH@Hf.USHHIy9HHt-HHHǃcIH[][IHS~FH$[OHF(HC HF0HC[OHG ^HG[HF0HGHG Ht@)uH=^t[貢HC ][H tIGu[[郢HG ^HG[fD0[[t@OHG `HG[UHSHHHH9s,HHH,tdH[]Ht3HHHHHHt4HH|ff1ff.ATUSG8HuPHG8I%=t5=tpHk@Ht7HHMIt$HI|$t^[]A\I|$HGHHtIHCEHEHwHz011OHv뢺[ [Р1ff.USHHHGHHxMHH>HHt.HSHHHx!H[]HtH1[]Df.SHHHtCH[H1Ht#HBHB HHB(HB0H[H߾8HT$>HHHT$u1f.SHHHt#HkHt6@8H@@H[ÐH߾HHT$HHHT$uH1[AUAATIUHSHH~Ix Ht[ HC(HC0DC@LHtHC8lCMIHH[]A\A]@HtCHt>SD-Hu[fDtHQwH@(XSv[fD1DAWAVAUIATUSH(AHH|$LD$HBL$I9w4f.HEHA0I9G0s IG0fDHI9H+HE @)u E tHuI}(11AHIt@uHM A)<uMw(MI}(AGHIG(HE H}Hx0I0MG(GAHE LD$H=]H0LbLD$I@IG(HH@H(I9H([]A\A]A^A_WufH(1[]A\A]A^A_HD$HL$Ht$LIE HUtH|$LHG띾h]L{aLD$I@dH|$H>ff.AWEAVAAUATUHSHHHF@DD$ HD"HWD:bD:fIE111LHHLHx HHHD @αH__wrap_H|LH ӰH}(EDHHHHH[]A\A]A^A_Lk]A}_t)H}(L$ HHDE[]A\A]A^A_D[LuH}@I11LHtLHxHHtD LH@3+fD1CAWAVIAUATIUHSDH(B)H|$M|$ I@IHD$I9opt [聚ID$I9Ght [gID$I9G@t [MA<u2HD$HHHD$L,I9DE(%=I@HD$@IKLME11Ih[Lt$HLMG@LIHLcbHfDH([]A\A]A^A_fIB H=^t(@)u"H=PatHI91LAB8tIr(HtsLf [E@Mo@IGHI9LBLMHH1H2H(1[]A\A]A^A_ÐIz ^IrI~(A11LT$LT$HH/MA#HHD$[HPHD$H@HH01蕘1fDE1AH|$HLL<HD$AEL0HI MghIRH|$LAE11LT$7LT$Hf.H|$1A]HF`fY [QMghHHD$HX [ 9@AUATIUHSHHZHV:Bt(:Gt#[HtHH[]A\A]@HfLkI|$@11LHtHEH9t=DkHsE111҈CI|$(EHtDkHH[]A\A]I|$(HL[]A\A]E111rfAVE1AUIATIUHSG$W҈G$tIIEDHHuIfHAԅtHHt.{HuH{(HAԅuAE$AE$[]A\A]A^fAE9uw@UHSHHH~ t[~HC0HtHh H{(tHk0H[]Hk(Hk0H[]fHw(HfHHt<@u*HH H H@ H;G0uH9tH HW0HP HHuHG0ÐUHHSH}Ht(HpCHHHptHH[]f1@H1ff.Htf.G,HGp `f%fG,HG0HGh@f.AWAVIAUATUSHXGIHT$HHx HuHX[]A\A]A^A_@I@I1MtLt$0MHD$0D$LHHXH@ HH\$8HH9HD$IHD$1MD$,M fD<tAHH9\$AMA>ut$LtL9{tH3HI|$(11A\HHBuLsM9t=H|$0LHT$ 7`HHD$IHl4HT$ MID$(LD$LH LH|$Lp0HD$ЅT$L Ht$8DHHL9|u ADuID$(L9p0DD$,D$,1bH(莒HX1[]A\A]A^A_DA$H|NHxI|$(Hp11AHHTD$,ML @L1AWAAVMAUIATMUHSH(MHT$IPaA AAI^A€oAD$)sEE1D$<HD$8_x_u{1x_[@Hu`L`[1DT$D$DT$=fDD$hHT$`E1ɹHLDT$HI"DT$D$H|$x!HD$xHHEu&H}8HtBHt$11DT$HDT$t%HE MD$MLLHHPPH|$xtHD$xHHcD$DCAIKAIEJ؋[$@[H{ uHE(H9X0tH[ H[(DCDAt[DT$NDT$HE DT$E1LHHPLcT$AG<JuMo(H}(LAGDT$\LcT${L{(C AE1EHuH{ vHU(H9Z0h_HE(1HSHPHIIHI$HCID$HCID$HCID$HC ID$ HC(ID$(HC0AD$I\$(ID$0D$h^H|$`H}(LhDHHt$`LH¦ID$0H}(LHH|$xtHD$xL fDH([]A\A]A^A_HzHt$`tfHE MLLHHPAt\[{HE MLHHPL;s0Ls0LHk(FI]h]UtM9$?I4$LQHEHC(H@H(&fDHs0HsAEFhHE L\$E1DT$HSE1LHP(HC0H[(L\$LcT$DCAt[背HE E1LHHPDCCcLc(T$pLs0rHt$>_HaVH_u@H_tG;^H&PI@ƀD?x @8xAHE HS@MMLHP fHS(DBAHDHE MMLJHHPHE MLHHP{H{ mHE(H9X0_H[ VfDEH}(CHHC(Ls0LHk(FI]h]UtM9$I4$LOHEHC(H@H(c1C,fDCLk(`[[脊@Lk(H}(HCoH(1[]A\A]A^A_|$DT$H}(L$hE1Ht$>DT$HHH|$xtHD$xH1fI9_(HL$`HT$1LX[1@E1D$3E1D$DD$hHT$E1ɹHLDT$HPHU ALR(uH[(DCAtAB$[H}(H\Le=LeHD$`ID$0q[L$赈DT$c@fE1D$6E1D$&HS(HRHHPE1E1Ht$`HAzHS(HHK(1DE1D$d$`[[0AWIAVAUATIUSH8GH<tA<u0qCH8[]A\A]A^A_@61H8[]A\A]A^A_DHHA$Lt$(LlI9wJffI^A@)u0IPaHI9vH]KLC 8t HCIPaHtHuI9vHUHHRfDLKLLt$D$D$LH$HD$(?SHD$(tHtxuHC(JfIOPI|$H9ytAHC(0HCAPafDHuI9IH}HHHGXHp@HK HtSH^tA)tH~ ^uHX@SfDHX@f[-I$FfDI(HX@uN HCA^TAWIAVIAUATUSHHH<$HL$5IFpHtIHI@AMM,M9HK H^A)1HPa uAt c L;;/HS 1H `tHBpHPH/H;B u)t%Ht$H<$HlHtE8IM9I$S‚8(Hk(HIFPIH9x}_E$[@H[HH;CpuIGLHt3IHt$H<$H@@@HX HPHp1H[]A\A]A^A_Hm(C%CHU0HSHU(HS fH{ ^HsI~(A11HHC:fDC C'HE0HS HCCB)CH^t?[CHC ]C 2[%[@ HS HPaBtV1ADH4$H;f.HE@HI$HH^r(1HAF3t*0Ʌ$A<HLM1ɅHS ff HS 1HsI~011HC{fD1fDHhu+u H@Fu[[-DA1%=HSH<$AE11LfHo@f.AWAVIAUATUSH(<nHIq IHHHHELHCHE 0:HHC}HE E11ALLHPHP8H@HHC@u\HE H@HCA$I$HA$H([]A\A]A^A_HU @HRHHtH.ALMItHu1H([]A\A]A^A_HE H{LLLT$HP6LT$tQ[e [MDIF HU LE11Hr1PHuH(1[]A\A]A^A_@IF }HSLX8HE HJ L@HPLT$HD$E1H$1LALT$HmLLLT$zLT$MHLLLDGLT$LՒHCX~1H@Hi[& [?~[( [+~f.SH0Ht5@H HtHH [fDH1[@AWAVIAUIATUHSHHAB)LCMt]Dc L{(MM9LcHLLD${yLD$LIHLEL;{(tLD$耑D$H[]A\A]A^A_Dp[ [}@HE1[]A\A]A^A_f.AvU(LILD$@P@HILD$91u [q|@LLD$ HItLD$HMM)Iu GDIHs(HLHLLL)M9vMu LCHs(LH踔HC(LL0LD$f.AWAVAUATIUHSHHHHLJLJHD$Ht9fHHu fHHtxuHH HI,HuHRHuI\$`Hu9DHHt(HL$LHHyu1HH[]A\A]A^A_I|$(HD$HT$ nCLd$ Hl$(HD$0Ht$1HtA$<LMtxIHu4aHLLHrbwZ`HHt/CuAHLLH~1HHuMmMuuLMtIADžHuhDtsHHtCPwHAHuAt0H4HHIAM(ADžMmMrLs MLLxHDHH$ HIH$tcILLLLD$xLD$H$L薍H$HAH9tp[xH$AHt@1HtfOH?QHu1f.HHuH1ɺuff.UHSHuHHt HSHhHHCH[]DH1[]* kCuWu6fDAUATIUHSHHG(% ==tM= HFHBFDHHCp `H[]A\A]fHFHBFuHH@H9O@tIL$ 1HHڿ[QXHEfDu4H@JHFtHBFrH}1{P[ [w@HJ HH1[QXHE'HW@H;P@UH HHHHD$FAu3IL$ [HHQXH<$ҊH|$ȊHEHuHT$H@t;L,$HS@Ht$LLtIL$ [HH1QXH<$HUIL$ [HQXH<$sf.ATUSF(Htt[]1A\ÐH61HտuHpIHtHH[]A\fDuHtIT$HXHID$HU P[1RX뉐LF M1LfDH;A Ʌt*H@ Ht!@)uHHHu1H;ufIH@HtDA(AtHIHuH `HDfDLIMtE1I;I AEt'Lf.E1H;AEuDHtSDH(DD1t!V(D1uAt-AHE@@u"t*D3F(AHDH@D3F(AHDH9Q0HFHH1f.USGH<v[]HW(HtHHrpHtF)tHNHt*uA~MEMDPIEPHHLAWhHtPtMƐ1I8Mo8HHLAWhH@u,HP:*uczHL$IEHL$HL$IDHL$빐E1E1MteM|HL$1L9LH([]A\A]A^A_L|$nfDM?M@L|$MMuDtMMuL|$Mu1fDuHD$H(L[]A\A]A^A_HHT$ D$ *D$ HÐHGHf.HVPHGHR@ R 9tJtEt@HHt%[1n/p1Hp[m@f.1f. f.髿f.H@۾f.{f.黾f.[f.@f.@f.{f.kf.[f.H@HGH@ HOt't1tDHq 1fHq 1fSH_HHLC H3SHxHC [HSHO1HHQHtH1HC[@f.1f.H@IL_AHuz@@uRD1AHt HAt 1HfGAtICHt HLI3f1DAHH~A@t1HAfWmf.SHHt2HhIH|HaH[XH?HfDHSHt'H߾S^ڈH1Ht [[@n[lDf.AUIATUSHHHM[H.HItyHh@H͌HvgH9srHT$LH6t>Ld$HLPBH9r0HCI<P@IEHL[]A\A]H|$FfD1H[]A\A]Ht1[k5@[k&@AUATUHSHH HHH߾S^HmjHHtE1I@Hٺ L胀Ht=LDL9v(LfDAD2HHEJ3`[H9uAAH艀1I9H []A\A]H 1[]A\A]þL[j;M[j0f.AWAVAUATIUHSH(HT$ LD$L $M丱^LDH}aH4$HHH]8|$ UL}LHA|/LpuC|7/IFIMuvHILLHlCD5H} pHIHiA|/Hhu~A|//HEtHHuA/L?HHD$2HT$L9IBH|)HٺHHt'HHL N1|H4$HHD$ЅtZHb}LZ}LR}HH([]A\A]A^A_I~E1cIHL [HH4$HHD$Ѕut$  [Iغ)[ NH1ÃH4$HHD$Ѕ[>Iغ[ NH1葃H4$HHD$ЅLH}LHD$}L$ HH@HL$$HtA|/tA?/t/fLHHHH4$HHD$ЅH1{D[HL$lgHL$ LIغ)[ NH1踂H4$HHD$ЅL0f.1HfD{{qg1HE1HxIDg11H.{1HA|//fDS HH=uO=PC@=tHHttH{hHǃ@[ H0Cyt%H[Ë F=9=Q4=S@HuH1Zz1@>fH14zfSH'HtzHSHPHSHPH{[tPPHHPHKH⿃@ KJPHPJ ʈPJPIKI ʈPI[DHSHPfD1[@ATUSHHH/Ht/HzL`L诶H1HtmLHH}HH{hHtHǃHǃHǃHǃHǃHǃ[]A\[]A\fDATUSHHHG1҅uHĐ[]A\@HC1HP @tHHĐ[]A\@CH<uCDBtH3H}uD$%=u1T|AĉJ|DH;փI t$~@f.SGHHtHWtH[ f[@f.SGHHuVHtWHCHH@CHKDHC[HCXHC0CH[Ðfc1[f1[ff.SGHHƒuGEu.c1[f.HWu1[f.HCHtCIKDHHǃ@[HC0HǃHCXǃHǃCICHHHǃǃHǃHǃ#H߾菥[HHxgHtHHupHt2HDWH9rHH)WHH)fDHD$aHD$fa1fAWAVAUATUSHH(HHHt H8@A[Hs#HHHx@#6HT$HH+lLu@I .Hl$HCIH}HD$HCHIHCH}IUIHHI9LFMH|$I} G} N}Uu{}uuIwlH vHHB LI9rQIt$HDHIHxJt= LL xH|$LctLH([]A\A]A^A_ÐH|$Ft<`H(1[]A\A]A^A_`H|$t1밾B[_F@H|$s1_1vfDAWAVAUATUSHHH?HIHIHH|ŰHIH.build-id/IMIfAVMf AF AU1]LHL$I] 8zHc/LfMHL$HHt+Ld DHSH1]yHHL9u߸ugE.debEfEM/LH[]A\A]A^A_ÿ^11߿^1fDUHSHBHHt H1H uHH[]H$n@HH9s @2HHH3`[H9uÐ;f.AWAVIAUIATUSHHHMM8[HHHL`@H}II9HT$HH'tRL|$LL2tXH;]@sILH)I}躮HHt$IUIHuHL[]A\A]A^A_ÐH|$FqfD1H[]A\A]A^A_Hi1[\@[\@[i\@SHHT$HHD$H|$HpHH[Df.HA C CLL$Hf.E1AТC@CXUSHHHtrHtmHa[HHHuPHߺ![>"HHtNHnqHHHHp#t.CxHH[]D[H1[]D1@AWAVAUATUHSH H<HI0HI$S^HwHH%Lt$E1f.Hٺ LpHt CHH[]A\A]A^A|$+Pf.KHJH{mH1J.Xtnf@f.S^aATHIUSH}M1H߹S^1.HHt4HǾHtHtI4$H1H;tH[]A\HxH1n@א[Vo@[V`@AT1IUHS1҉4ltGt"*[ HL[]A\_S^ᐺ`[[V@kD HʼnmDeV[]1A\ÐUSHcHHt@HtCHHH[]É9mH1eVAUIATIUHSHHHHtPHH4HtXLkLH1HtDCHH߃CHGyHtHH[]A\A]f1@S1fDH@1ff.AWIAVIAUMATMUHSHHt$HHH|$H 4HtsLHHtcCHLH߃CHHHtF(HHT$PH(LhL`HPHCHHC[H[]A\A]A^A_Hp1@1@ATIUHSHHtYHHn3HtALHHt1CHH߃CHxHtH[]A\ÿTDH1ff.ATIUHSaHHt9LH^Ht-HtHEHCcHHkH[]A\1H1Bwd$\D1DHGHH@(HGH@ uR D@HGHH@XHGHH@@H3 \F[8Sۦf.AI$0\fDfDHGHLH@PHGHLH@8HGHLNj@ uO f.@2@HGHLH@hH' \m[xRۥf.AUIATIUHSHHHLHCHEHSHHH!H#CHHtH!LH H[]A\A]uZE1HE11ɅtHAIIKI ɉM!ItPrut@t{H@ \[QNAIIMLIHLHHI!t"1IL!I9ffI!IGwT$`\Dff.1Dff.f.H` \[Pu fDf.UHSHvHHZ@@t HBHHHE61H9w 1HH9H[]fAWMAVAUIATIUSHH8HHnHT$D$L0IV H^Ht=HEHt4L $MMHL$LHLЃtH8[]A\A]A^A_fIV H `gHtHCLLHD$KALLLL$HLLL$LL$tIF 1ɋP((MHppE1ELPhIEx4HSEHIʨtIL$pM+T$hL+Q0tL+SMCID$hHCIExHD$LSN4DeAt |$]HLIDL?IL+D$fHtyLV0HD$8I6HHHMH@ Ht"H= `tHxp `H=^aE1ELED$HT$(LL$8HHEt#HSpMHσLtCP_$Ր\Ht$8HIIE HLLBHP@II?HD$8I7HHHME HNHHt$h[1APXLV@HH1[]A\A]A^A_IM] AHLHL@HHrHAS0kME IHHt$[1APXLnV@ME IHHt$[1APXLFViIM] I1LHPL@HJ HH@HHRHD$H$AS8DMM AIHHt$[1AQXfDP,fffHFHHHD$ u=AIHL$(LD$ HHHxIH=HIH@H@\C) IEPI9E`fDL0UHD$(f%![@Ht$8@f.HfHH1H`[>1N[>@1H{f.kf.髐f.UHSHH=FFHGH(tUHCH=HtHC HXHHH[]fHC HH1[]Df.SHHHH觊H1HtCH~0@@@1Hu7uu HH[@1HfGtHtH߾HHT$6HHHT$F1뗐1HfO^fDHPfDFH~/'SHGHHHt6HH@HX @HPHH[1[ff.SHHLJHLJ1LJHhHTǃ[Ðf.HHh11Ht HHÐ1ff.AUATUHSHH^LfL.Hu 1HHt(L9cuH{LvUuHHC[]A\A]Ht3HHt'H}h11L菄HtHH[]A\A]H1[]A\A]Ðf.HHh11OHt'@BHptfD@*u1+HHu1HHfAWAVAUI1ATIHhUHSHHL$1HHtgLxLfDHHtPHCL9uH{HcTuLsHT$LLAՅtfHL[]A\A]A^A_fDE1AVIAUATIHUSHQxI|HHEHHLoTMt^A?BjIIhfD?BSھt)]L1ZV11HLHuMtAH[]A\A]A^ú[H]A\A]A^1)](()]A;ATUSGIHmNHt^x)]Hu-A]HCLH(L[]A\~)]HuA^A `)]HAPa8tH{h1ɺHށHHt&HzHpHxHjH[]A\$@1]f:1CDf.AVAUATUHSGIuwLwh1AպILVHHt`HxHpt/1LLFHtCHHpHHSHPHSHPHDn(L&H[]A\A]A^mD9[]A\A]1A^1YfATHUHSHHGImNAtRx)]HtA~)]Ht0)]HtH}h1ɺHSHtHxt[]1A\HXD`@H[]A\Hp9[]1A\Df.1)fw(H7HWHHhifAVAUATIUSHHt4II1HLLAH[HuA9$u []A\A]A^1麠)]i()]7f.AUIATIUHSHHHu/H[HtLHHAՅtHH[]A\A]ÐH1H[]A\A]HHHt@IuHw@H@71HATUSHHF)HF@H9~I9wyIJH9rmGHHHHt%HL9tLLHL$L$OHL$L$HELHH1t MIH[]A\D61H[]A\6H1[]A\61fHDN(IAGH<t`HFHHtWH9wbI9w]IH9rTMtAt^A@t}HHH4LLNPH@HF@H9v&61HL1LLHÐHfDHGLH0H@ADN(51Df.H@1f.1f.f.鋄f.HH9rwG0+F0f.fDFAuHvHtHGH(1f.HGHuuHH41HDf.UHHSH(ZHR HHR0HPDFu @@fAdu%EAAD Iu%@සiځEɁAAWEAACɃᩃwt1҃K!t$$HDT$*]1KH([]ÐguӁ҃⫃u%уOfHPCfS0HHtH[AWAVAUATUSHH_ HtC(u9H^tpHPaItoi@t:H[]A\A]A^A_%@H[]A\A]A^cA_f@ŀt2WDWU€twfDuu@?uH `H_L;AA +]A*] fLGILLLFuC47 *]/IHu\IMeMuS(tu tHru@g^aAEHIwHO LA0LGLCI<ARPENLNILI7HIGHt HH$L8Hl$LMILE1HHtL8H9t{:uɄuI.[]A\A]A^@[]A\A]1A^DATIU/]S]DHH]HtH3L9uH[]A\@`.]p+]@HH}Ht31Li8uH]Hu@HH]HtH[]A\@!H[]A\Ht=SHHtH0X9tH7HtHs=[f1ff.HSHHt4QHt3HtVcHHHtRHC[pN4HuHys=]HHDHtπKH@HC[fDHHu1[AUIATIULSHHHtMtAEHtHE3HHMtS 1A$MtCAEHHtL+'HIuLG4HHH[]A\A]fMtܾ-L5HtYLhHLL7uLH4fDHLHu-H5Huu@HLL^D1]1fDHH!LvL0ILvD1USH(tEHHc ^t@HL$T$D$4]H1H([]ÅuHL$¾vM1HHL$u-HL$@f.AWAVAUIATUSH x=11L0u&H|$PL .H t&@1HĈ[]A\A]A^A_@|$P:HD$QHL$Y^cHH9uD$WT$X^^ЃILH$V11L/ZH\$`Ld$HIDžHD$E1D$HD$ HD$0HD$8LH-Htx L$IH;4$t HtLpH$I1fDfjv=^@T$` d 9:L-H|$@LHD$(Y,HMHL$@f.Hc€^cHL9uD$@T$A^D^F4D$BGD6^DH;l$D$D$C^D$D$D^D$D$E^D$D$F^D$D$G^D$r&LHDD$`HIwDD$Hl$LHLDD$\+H9QDD$1@AHc€^cHA9wD$T$l$L$T$(D$HB<1HE<1f.4AT7D^A7^DD9uAIPCA@^^9wc$@7]@t$1LbKDD$Iu IDL "P`CfDE1T$L86]1  AAGAWHD$ ^^A^AG^HD$0bA~AGAWHD$ ^^AWAG^^AWAG^^A^AG^IAAGAWHD$ ^^A^AG^HD$8cHt$ Ht!HF@HT$0HT$8HHN0HH9E/A7]HߍP1<'Hڋ H!%tLDHJHDHH)Hr訩HHH HLHHHD$ HD$0HD$8DH~@HHD$(Hn0Hn8HHlA\AAGAWHD$ ^^AWAG^^AWAG^^A^AG^IE1?AGAWHD$ ^^A^AG^I^ELHF@OT$A4]L1=S LT$L5]11 *AT$L5]1 T$Lh5]1 T$L(5]1 ff.AWMAVIAUATIUSHHHH$Ht)H<$LL!HH[]A\A]A^A_fDIt$@HHHD$I$1HtI$1H'HD$ E1fDH|$0H$HtHH+\$I;\$@6]H1f.L1<D$0 t t:t9p6]H|$0H{$HuD$0T$1^D^T$7AD$6^^C H;D$ DHD$HHHLDL$$H9D$;DL$Et=1 ADAT^^ HA9wAAH\HH+D$I;D$@smHL#H{fDHLDL$,HHL$XHIHD$DL$,HL$HD$ *E1{L0I$H6]1 ED1f.HfATIUSHHHH@(uHH[]A\ÐHt&1 HHHp0HCH9wHtmH'Ht]I$HJHB(HtHf.HqL"H0HrHqH BHB `HBHrHujHSfAWIAVMAUIATUH1SHH H߉D$LtHHMt E(tH[]A\A]A^A_@LHHL$0HLLHI(k=HL$Lc|$K.1H}8IHHDH=v!H=A|$AD$LLILqHIL,ID$LiHtL;hsxI$LHuf.HHHtL;jwHHH9IL$DH1[]A\A]A^A_AD$Hu8Lc|$aHHIL$AD$H/Df.uHLJ@[sHHDUF0HSHH $SD$HhHD$HE1HHH@C]HHH C]HуC]HHHAHPC]HDHT$HE1L9sIIHfDHIDEӃC]D@AIC]AIL9uH)HBHGHHjH)H)HH?HHHHC]HA˃AC]EۈD$DAC]@t$HB B BAC]HLH9H[]fuIIHILEۃC]D$HHC]D$HD$fDHD$HE1HHHH@AC]HHHC]H f.g=SHtR0HUHtXH@HH@H@H@ H@([@"g=1[@UHSHHt({HC HKH ;]HH1[]HzH[]ifSHHHH|$Ht ¸tH[D$H[DMtVAWLAVAUIATUSHXHrEIHv@H9w9IIHtBJ4(LLHX[]A\A]A^A_fD.1f.HLD$(ÝIHD$I1MtI1HD$LdLD$(LHD$H1HD$HD$ Ll$0LD$8DHt$LH t tSt@;]H|$@HbHND$A^HHt[HtOP`CtKDH[]D^1H[]DT=qc@HH9t HtH诏H1@L1I9AD^Ac|IHEYEAEEH9v}E@E^ActOABE1 fDH9tCD E^Act>MEHIM ЃuϸHLfDH1L1E1HUSDA^ctbHh۸D1II9AIMs EEXDI@MQ9wENLB1LA9ۉ[]D[1]HH@HHtHH@0HuHfLHHu%uA1A@0ILfP0MPAAMA)fDHIH`I]APD9uHIDHf1f.ATIUSHHHH@Hu-DH!HtH9!uH[H]A\1t!L݌HtI$HHRH!H!I$HBH[]A\S8H蒌Ht HH@0[Sxu1҅‰[@HH饹DAUII)ATIEIUHHHSHH`I]`I]H9$%@t$T$L$HE1DHEvEH9uv@HAvLAvADAA`I]D$A`I]D$Hu- I]LHHH9u'H[]A\A]E1vE]C]E]C]vfDATHUHSHL'tnH&~AI|$A$0HHH 3HSHH9ˈPuHHu[]A\ÅtHcI|$p`I]A$@I|$A$11Nf.S H†Ht-H@HH@H@[Ð1[ff.AWAVAUATUHSHHX3HT$6Ht$0H|$H1HT$ HЄHH9Ld$0H9ssH@^^At2LHAEF, IHT$BƄ Ld$0HIHHT$Ld$0HuDHX[]A\A]A^A_@HT$$Ht$H|$0lu1HX[]A\A]A^A_Ht$0HsHIID$0HD$AHD$HD$H9xm0wLHHwHt$H|$HHHD$THt$(H|$H:ID$0HT$(H9v3HD$(ID$@HD$AD$(H9^fH)IT$@t1f8H3IHD$MD0HI/HD$HHt$MDH|$0HHPIW0HT$$Lxmt$$HHŃHIGPT$$Ht$0HǃD1A4Mg AGD<2u6IG `Ht$(H|$HHD$(I+D$0IG3<3u$AD$( tCH|$HD$IG @A8tA4uAD$(u AD$(fAD$(uH|$u1LAHHD$uAT$(σ I4$H蠪HHD${1Et$$HH蛂HH'D$$Ht$0HύPHHЫHI-11L賦HHD$AT$(σiDAWEAVAUMATUHSHHH|$HEHӹH$1H)$Mu)HB0HIHH4$E1H3HՁHEIu E1;AH9u EtHuH|$DHEuEtMHIIB0BƄ H[]A\A]A^A_f.P~C]H$H$@1F(uHH0E1HfD1F(uHH0A}HATUHSHt:u-HB L !HKH ;][]L1A\[]A\[]A\Hz f.HRH=10vHH uAvH$u_H=$YH=%avVH=&H='(HBuHDAVAUATUHSHĀG=HH\$L`ME1DI I DHA tLI$!H|$H\$HL$1B4(HcA4`I]QA 4HT$ `I] H|$HOHL$uHھ6HI M]HH1[]0HCfHEf.H~)fUSHHHHHG@uHGHHcHH4(蹌H{pHHw@H[]飌H(F<tlH(HH$HFHD$HFHD$HFHD$Fƃ@ t D$D$HtH $H(Ðf.AUIATIUHSHL$L$1H$0H\$0H$D$(HD$ H$HHD$(1HH|$LHD$(H{,PHp($|IAz]LLHH[]A\A]DH$0H\$0Ht$HD$(HD$ H$HHD$(1HHEH$PPHT$(HEHs D$0Hcz(PhHD$ IAHHHT$xHPHSPHPHSXHPHS`HP HShHP(HSpHP0HSxHP8HH@@H$UHSHHztHHH[]]DHHHHǂHHǂǂu+H{HjƂQM]HT$HT$f.Ht H~(@t HuuHPD*f.gDAWAVAUATUSHH(H<$Ht$%HCPD$HvMD$H$AHX`HDD"D$D$A D$DHHXHCxuHHt ?<uHLzXHu rfHmHtgHxpu@(tH;sE,uIH@@@,tHT$H<$H!HmD$Hu|$=HCH1HxLH(pHH91A9d]D 1MqHL9trILLHpuHp(F,uHT$H<$h uH(1[]A\A]A^A_D$tH$E1HX`H\H([]A\A]A^A_Å`HHuOH@H;H H#P(H u܀H,fDHtBHdHv h1f.SDd]H H[fAWAVAUATIU1SHH8H~(@<LpME1Xd]HIt~ID$E1MXd]LHHD$(LxHD$(HD$AD$H$D$+tgHt$(AFhH߀NkFiAt7<t-HLjd]H8[]A\A]A^A_ÐH8[]A\A]A^A_@HHDf.USHH^({@tH1[]{HuꃻtHiEtՋuH[] Avd]HւHHt@xƐUDd]SHHuHHh0t$ HH߾ 蟷H[]1HD$@s]벐ffH HHuHƿd]@ @@8SHƿd]@ @@81Hƿd]@ 8,&1@Hlm fDfDfDfDfDfDfDfDofD_fDOfD?fD/fDfDfDfD46M] UHSH HHApXDHH= =HXǃǃHǃǃHHWDǃHHHH5t1HC8WDHH[]1@HH1@Hx1@HHtHǀ@HǀHHHt ǀHHHt ǀHHHt'HǀHǀǀ@THfDSHHHX9H[SHHHH'HH@H@ H@8H@(H@0H@@@H@LH@P@XH@`H@pH@xH[H߾HT$HHHT$^DH1[SHHHHHƀHǀHǀHǀǀHǀHǀHǀǀǀǀǀǀH[@H߾HT$HHHT$6H1[f.LI8Mf.ATHIUHSHHL I$d]HHX01HH%H=H=uH=YH=Hf]DH,f] He]I$xAHFf]H'H=]HXe]sHWie]SH7 NI$xAetH^f]H []A\fD:M]I@@He]}@QH?MDHe]y,@H d]GHrd] lÀCHCDHe]wHe]Hie]qHfDHf]9@Hf]g@e]e]fd]ze]Hd]@H!N]i@H$xN]I@He])m@He] D@HIe]@H >e]@H 3e]@He]x@H#PN]iO@d]L)SDd]H2H[ fAWAVAUATUHSHHXLfPs@sHExtHX[]A\A]A^A_HHt ?uIT$zuI$Ht ?uEEHSPHxH$HPLi0L0DvED@u AH PX H @,tHHx0&I$ALH BXLh0衪H藪9LǪx,ID$HLyHH^HډLAՉHR]1MD1H9qHrH$LE|EH LA<D$0IxHD$IxHD$A<9t]A AtE t7 H4$HO]1L\$ LT$葬L\$ LT$D$0MMLd$ H\$(AMLMAEB$s]A$D$LAD$HHHt 8CH$HHHt 8At$HT$LHT$LtL$LA$H$H%HH} HHH@A$9D$=A;IDŽ$IDŽ$w H4]H<$6I$At uAIHAGH\$(HLd$ H=H4$H?#D$0vHI$tAtA$t.9t*H$1HQ]|AD$0MA$@IHtI$Ht IDŽ$ AAt"9t1HQ]AD$0A9$III$I$ A$LA9LH$HXQ]1茩D$0gA$AA$CA3AMsA$v&A$AR ADŽ$\AA$tA$A<A$<98~ADŽ$<mA$ANA$AAFS(Ȅ]9Ȅ]C AF;CA$E$,EAA$A,A$,AF;CA\A$\9t-t81HP]萧A$\D$0_A\A$\KA$LALA$L'AlA9$l A$lA$A9SSHO]1˦D$0t$0H4$DH:D$0zAk9cH$H KHhP]1T7;CfD#AL9 HO]1AA,A;$,t ADŽ$,A9II I$I$ Az9rADŽ$OIHAH<$0I$IHH<$0I$I$HA$Rt A A$LHE9ED@+HHAf]AA HLLHtf]HLH@HuA$\01H(P]PAlD$0 9H $H |f]wH`]|f]wH `]HP]1HxDPxDDH|$T$4L$L$T$4ADŽ$<_HǂH|$L$L$A$<(ADŽ$\ Հ]4ŀ]Մ]9L ń]9LʺĄ] Ht ; u;ruA$9M] A\q@(%=D%=ut9=ut*9t&DELAH8R]11PID$Hx`]HEHx`]ogEE1At6ADLAHR]D@0ۃ1ԡAtALH#R]11谡At'ALẗf]uf]HS]11耡At&ALẟf]HS]11QAt0D%=t!ALHxT]11AbALH?T]1AH4$HPO]1ڠD$0HHHO.Hǃ|t9tHN]1~1HHǃǃHH A$,ZIA<D$011H<$HT$8L$4?HT$8L$4HWRAH$HT]1賟PT]11蠟8S]11荟S]11z$DUHSHHHtHHH[])f0BHtHH1[] 選SDd]H2H[鹑fUHf]SHHbHtFHH DHzt*HHuHHHH H HHHHH[]@f.`vw"HH]DHHŀ]1D1@HHdt694]u<]wHH]fD{0DATUHSZwHH]HF[]A\I6HHEHu݉L1U]t芟[]1A\t-Htzt"N'wHHrfDDHЃl@AȉuD D Df.v/w L6  @AW%AVAUIATU1SH= @%= tU%= @ %=  A%= QHD[]A\A]A^A_IIκ 1҉߉D$AA‰A0%AA ؃@A B$v]@1ҹLD$AD$Lp=fD GAƉA HPu',p]k M]ӜDL%Af.At$LDT$ DT$ AEWAmfDىA FHĀ"t$LAq @Dd$LDT$ DSE'E1DT$ AGEWAE1AL}fDAlDۉEDD9DLAD9wrAE1't$LDT$ w1DT$ tEAE1f.ATIUHSHHHP@H%HL HRP[]A\ff. t&@tWv~@f.Ct@tA~1C)lj@G@HH9w#rN8O@f.AVIAUIATIUSHHHP@HI$H{P@HuHLH%H HtuHLH%H I$LHPPHI$Iu[]A\A]A^H@Pff.G t HG@H(fA=pt=puHA1@HLHL@XMQXHAA,t Hq@HtHz@HtHpHtH9tftЍrI; uI4Ѓ~uHVHuۅLoMtR(tA;sIHR@HtLJpMɍBucƍxI4L;N@tEuf.HI4F A(tHA19Åuf.GDBuH~ `tHFHt8$tPat уdu@<.tu߃N @xt@f.1wHhXu0uDH/M]D$ D$ HAUIATIUSHHEH;n@ru M]趖I$HHLH@PH[]A\A]DUHSHH@t^1ۋCLu-HHHHHA@H[]fDHt3HHHHE@H[]HHE땐$M]HT$HT$DH~Xt HuH uHHwx1~NHDHH?~1hU]H18U]ēڕ1HHH RXt;H9P0t3uFHHuG1V]sHfHH0HH @X1U],HfLH.d] Lt)f]LtR(yHH @pHHDf.SH1HH?tMH[fDH;1a4PvPvH[DH[D)M]D$ D$ Df.AUATUHSHH^({@tH1[]A\A]@{HuHI1HLV tɃHHLHLHtHǃHǃLHt*HHǃHHHHHHHEuHH[]A\A]H0HL辅EuPHǃHǃI$H/@&HLHǃHǃ뮺]M]4@ATIUHS@HtM1HH1Ʌu)H}u 0Ʌu1I<$f.[]A\fHHE릐SHH?1 t[fDH;1*ڸtӍSv˃1[fDEM])S1C~YM]  [f.AWAVAUMATUSHHA3Lg(1IA|$@6HH[]A\A]A^A_H$HH HHH4HH>HI$HH~hLFp1Ip0H$H$tHA$tt$u |$u-DH$|$HHE$H$Af.H$L)IIW]N3EEY[P1HH[]A\A]A^A_A|$HM$HHDD$(HL$ Ht$LLD$I$HAI$H1D$FLT$HL$ ED$<D$DD$(IBpH9MzhL$Lx0L}@ ƒɈT$31D$[]I$HH$H$HPHL$AAz( IIAA $ɸ t1A$DfDA]HH[]A\A]A^A_DI$1fE1A M]LT$0DL$8L$,T$(D$ ~LT$0DL$8L$,T$(D$ T$txIHvxEaDD$E|$<AB(*AA $|$I?Hw|$tIHv 3h|$]EEz(E&H$t;H$HHt'HH@0HHw fAA $t_]E$ E |$fDE$EK>f۹DE$Et|$I?IЃfM_1D31FE&H$H$AQAf]V]1L\$yL\$ a|$AB(H$LҿHV]12DM|$Ar(AA $&A$ |$A$ЃsH$LҿHV]1L\$脈L\$f.H$tEH$HHt1HH@0HHwuFEffDIIwAA$A $Ҹ A$|$xif VfDA$E5H$LҿHV]1L$JL$Ҹ늻H$LҿHV]1 1A$AA $ H$H$Af]AQV]1蘆sAVMAUEATIUHSH HtKHz HxHHtHMEHA$Ef]1\H H[]A\A]A^@'HL$Ht$tHHtHL$MHt$LAH]t IH[uE1D,$A$Hߋ1f]H H[]A\A]A^ff.AVAUATUHSHG(IH7IͿf] HMEA;HI$HH8tHHt H;X`IMIvMEHHHHtdI$X11H8HItHHLH[]A\A]A^ÐM]DL$ |EDL$ YH1[]A\A]A^fH9xpZD9HHPIHf]yHIVpHppPW]INhHJ0HPh1HV0HK0f]LfH] M]w1f]HDP]8M]DžHHt w$t1HM]irfwHǠ1HDP]PM]UDH~@H1DFLEu yHLDBDu'K4@HRHH9p@IrU@EHHIL;@@Iw6EHH@~HHEifDHj]%M]耄]%M]lff.AWAVAUATUSHHhHt$@腯Ht xptHh[]A\A]A^A_HHL$@HD$H@L9HxIO8H(PH9PH9HxpH@xH|$HD$HIGHHɿHD$XtIG 1HH|@HLHD$PMMLl$XE1LIM$$MAD$PJuID$ HHD$0苮HL$0HPXH(H HIhHH|$8HL$tHJ8I;O8HPpHHJ8I;O8HpHHD$ HHB 1HH1Ld$(MIHLH|$HD$LM$IH1LH+t$H @IHЋPH9VHPHHuu@H9tHIAI)M\$HD$ Mo8HHH8HtH@ 1HHH9d@LMLd$(HD$88H@HL$0IHT$M$$AH@pHQ@IEHIU*IEMAHD$@DpDIG8EIG tCAFHL$PLl$Lt$HLd$XHD@HHfDHHLLAMg8H9uH|$P蝕H\$@H{菕HCHh[]A\A]A^A_LLHH|$HD$IAIo8uHXHHD$ HtcHB 1HHtWLd$Ld$ 1HLHD$H|$II$Io8Hp8HtH@ 1HHH9rLd$ @Ld$1AHx`H@hH|$HD$Hp]z=M]FHD$@@IG p]=M]fUHSHH@tN1ۋCLt%HtOHHHHE@H[]þ$M]HT$HT$DHHE륺]$M]f.AWIIAVAUAATIUS1HH(@VEHLrHLD$lLD$Ix(IT$LHE@tHIHHE@t=EIF@H(HHH)ыIL$HIF@H[]A\A]A^A_HLALD$uuHDLD$H}@u HHE@H ID$oHIF@H[]A\A]A^A_fDHHDHLD$LD$afDH}@HHE@Ix(oAU1ATIUSHHo(}@tH[]A\A]@}HuH}hHt$ClChu-< Cm@uSk t>M]}ChƒSluzCm@HCPHǃHǃǃHDHmxEm@u}t>M]|HE(HC(HE0HC0H[]A\A]H{P~)< tLHuCitˀ{uDHCPHǃHǃǃclH[]A\A]@xA$kUT`HS(J(tDLHut H{Xu6fDHHL[]A\LA]8LHI|$(KkH{Pf.AU1ATUSHH@t H[]A\A]ÃHuHIIHxHHuM] {Lf]H1j11HAH%HHtHEHH[]A\A]1MHf]W]LƔuĿwIE봐AWAVAUATUSH(IIH;vM]NzAHHHL MHXLhH1E1ɃI$MT$pH$HEuAIUHHHPMtM&I]H(H[]A\A]A^A_HHIHH$3LHI;HII]AE1afAD$HHLjHZ'H<$DL$L$LT$HHpHD$4H:HT$H4$H躑LT$IHD$H.__stubL$LLI4L$LHIEL$DL$AJ(A DM]xAHHHJH4$W]11voDf.AWAVAUATUSH8}HIIMMuM] xH$MMAE;HHMD$IL$IvALH8HqHIoHX11LLD$HH$HLD$LH$܋H$5fDH$Ht$p11HXHH$趾HtqHT$xHP(H8[]A\A]A^A_fM]wAEM]v@M]v@LD$pD$IuH|$(HLD$ HHD$LD$BH<$1LƺHHLD$LL$LHH@ HD$(|$Lq0YHLy`HApHD$xHA($Aht$HD$pHAxH$HDH|$p'H|$pHL$L$ыL$HL$HpHHL$L$HL$HL$HAxtoAT$ tztu3tpHT$pHǾ!g]1H $H $PML¿W]ME1L$IsL$D$uL覉1$uHT$pHǾf]1H $uH $$bHT$pHǾg]1H $FH $HD$p g]0]PM]tD$fHFH΃x 9Htf.UHSHHHFx 9Ht'HHHHu[]~fDHHYHHu[]GAUATULSHHL9s;HIIH)Шu u5AHٺLHEH9wHH[]A\A]ËHH9wHFH΃x 9Htf.AWIAVAUATUSHHxLn(Ht$DD$LL$0A}@E1|$IMIHD$IHD$8HCHxL8H|$8MAH|$ HqAHt$Hd$Ht$L)Ht$(Hl$(H|$LT$I/LWhHwpLT$ Hv0Ht$ It$pH~0It$hL >M)I$L\$@vHL$HIHA]]HL$HLDHD$HQHHx(J AIHHLt$P8IWAHMH!IWAHMH IWAHM HHCHuH|$PPHD$AIHuHCHHHPPIW0AHMHIW8AHMHuIW@AHM H^IWHAHM$HG|$HD$ HD$`HD$P*D$A HD$0HD$XHL$HCHt$H|$0HPPAHD$ Hl$L|$HCH|$@LHHPPHHCHJt:PPHl$(oD%M]HL$oAHL$D\$EYI$IAHLt$PII$1HCHtPPIT$pIHJ0IL$hHTH)HT$PT$1IHL$XHD$(|$AtAHD$IHp(LHHx[]A\A]A^A_DAHD$8HHL$(HȸELHHx[]A\A]A^A_IME11HD$IHD$8A}HLE2DIHD$7HL$(HIH@EjfHD$IHE1Huff.AAfAHHH|$(H HCHPPIIHHL9)AJ`]uH T$ HMHLHL$HLdLt$ L+t$@HAHI LA%HHH L%H@ HH L%H H iLLA%HMHH HH LA%IHH L Lt$PAHMDHAHM HHE1L|$HuGf.AAHHIIHHL9AJ ]uIGpH|$ H+x0H HCHPPfDIHHH%H AHH0Dt7(E+D+t$@AUAAt(Dةt'&M]HL$HPkHL$HHD$HQL|$ HL+|$@M+Hx(LAHHH L%HH xLAAI @HHMHL H BAHMH*DHM AH HLt$P@HD$Xf.I0EHHD$(EHDhH,HD$@HHD$PIH@8HD$XHD$HD$`ELt$PHHLEEHD$ HUHD$`HD$PIH@8HD$XELHfAHHH|$(H IL$hIHHD$XID$pHL$0H@0HD$0HL$0HHHDHT$0HD$HT$8LHHp(!DHD$ HU HD$`HD$PIH@8HD$X@E"H@H,HD$@HHD$PIH@8HD$XHD$HD$`@EHD$Lt$ HQL+t$@HHx(IMD<E]ALAƏHHHH LAHMʌHH H yHMLJfH޿ X]f1@&M]gl@%M]HL$gAHL$AHMH޺xGAHMH%M]1g@#&M]HL$HgHL$Hf.0&M]f@LAHHHH QLAƌHMHHH )LAHMʌHH H HM AHMH޺xGAHMHf.AVAUATIUSH Hn(}@t1H []A\A]A^}HuHzPIHIu+LC@IHHSPE1LLftCkHAEHH#KhH9tIEyzHK@Ht C<v CM]HeHK@HS(HD$HBpH@0HC0HBhH;H$HD$HIt$(HLH9t-H9AEH []A\A]A^f#AEAeLAEHHppNHAEHBpH@0HCPHBhIECkfDH"@BM]dLC@IAW1AVAUATIUSH(H_(H4$HT$HL$LL${@Hl$`tH([]A\A]A^A_@{HuH<$MyHxMHIuM]cH$g]L1~11HALHHLwM|$(A@#M]E1(cILk0AMt7IHt+HH@0HHwu FE8MuLs0A$AOTAALLd$HALHH|$ID$Jt*MHPPM; Hu9$M]H$-bH$H([]A\A]A^A_f.Ld$LHAL}HALJL(]HA/LJL(=HHIT$Jt( HEpMH@0HEhH)L)H|$HRPAH#0#M]Aa"@L$H|$h1LQW];{Lzu18Lt$HALpHA/LJL(PHH|$IFJt*HI PPKHL$H$Af]AQV]1^]HT$hHIf.ATUSHH0HHn(I}@$M]1`HHf]#HHHxpHLA(IPpHMHhLI0H|$(LJ0HS(HHHsHH|$LH$Ht$H0[]A\fD}H@L$M]Q_M]$9_H(D$M]HD$_HD$f.$M]HD$^HD$f$M]HD$^HD$f$M]LD$HD$^LD$HHD$IPpf.EAWA@IAVLtAUIATIU1SHH ALLHL9t0AHuH%H=/uÁH@H[]A\A]A^A_AUIATIHʁUH H%HSHHH HI $;I$HځH AHHHHH ڸ@H »DHI $H]AHHH@uH[]A\A]DAW1AVAUATUSHXH^(Ht${@tHX[]A\A]A^A_f{HuHILkhHHL$tHL$Hyp `t¾f]LHD$HD$H@(DHLEcH|$HHD$ Ht H|$ HD$Hl$0LMLp@M9/L$$ffDHNHpHLM% ID$@H<$LHHD$8%IM9HLLHD$0H }H=oH=oQH=oH=oAug]uLLHHPpH@hHB0HD$8H<$LHIbM9AL$$HD$ Hx@HHL$HApLihHL$ Lh0HApHihHh08 HHQLt$ LI I)I#IDLHHH$IL^HHH$IID$LH $Hq PPDHD$ HPpL9hHHzH8H:HD$HH@@HH+1H0HMAAILSHl$0AEpIpELHLHHLH@8Һ@EHD$8EHDLЋHAMlҸpEHIDLLH@EHLH@8HD$8EHDLЋ]HHE1HEIULAHx(EtIT$H=LDH'IT$Ho H(IT$Dt>D[]A\A]A^fHE1HUDSt'LH[]A\A]A^fDHEIULHx(tM9uL1f1LHIT$G1LH)IT$HqIT$ 1HZIT$,IT$H.VUSHHG<t?<Ht0HuHߺ'HHHSP[H]\@H_(fH[]@AWAVAUATUSHXLf(Ht$A|$@t1HX[]A\A]A^A_A|$HuILHL$HT$lHD$HT$HL$Lx`HT$ HD$(HL$@MuMMAGD%uIHHl$0uHD$0H@HHD$0tHH]pHtC(tDu(D%=uH]HtDEuH}@tAuHL,=D$8tH|$ 1ҾsI$ ^I$I$(I$Ht`HHtTI$Xf.H;h]MHt'HspLH\$0荔HT$ ZEHD$8|H[HuI$Ht Hx@A$EI$HtHx@uYI$HtHx@uEI$HI$8HH|$ 1ZDHl$ DLH裚HD$Lx`MtIL Mt>DEt21@ITHtHJHe0tHHt$(8Ht$(HHHD$;LL$LuLL$-IEHD$HD$ eIE HD$AL|$HT$8LL $L6xHt$8HjLL $Df.ATIU1S]H(t)H;HtL6uHDH][]A\]@0H;Ht Lp6t;H(u]1H}Ht LH6t$H(u[]1A\ÉHDHŀ]HH]fAUATUSHHHWztH[]A\A]fHHt ?uHVHzuHHt ?@uLa0H Lj0IXDtCAu:E9t5DD1uXt AuTDA1ʼnA HEfHB0HHHH @XH[]A\A]"C1HHpY]1HUHSHHY1҅tHH 1҅H[]@f.AWAVAUIATIU1SH8HF(x@LHHspMcHLL$LHKhHN0H|$HLHD$ HL$HL$pID$LL$LHLPPHID$HJt:PPAMH8[]A\A]A^A_HMcHHB(HHpLq0Lr0LLphHCpIL$HShHHL$HP0HCpHL$HH@0HChHITID$LHH|$pPPHID$LJt:PPGfxHHDATIHUHSI HQdHL`@H@H(HtHPH H(tH[]A\Y@H Df.AWAVAUATIUSHD?I)$@HT$pHL$PLD$8LL$(D$`D$\H$(HX({@t!H[]A\A]A^A_f.{HuHFIxif`(M]qA $MA&DA)uH$PH$(L$@$~L$@AljHD$0D9tAtHL$]H{LHDŽ$H$IH$I H$tHH$HD$(Hl$8H@Hl$@HD$HHl$HAD$1IT$AL$HHH!HH|$hHHd$hH1HH!H!H)HHHHH$訇H|$0t H|$0 $HDŽ$HH$ LHMHD$xH$PH$PLXPLIHH$H$PIBH$'H$P1H$PzE1AmH|$0${]fMMA D?<zIFH|$@P@t'HHHH HHHL$0H$ HQH.Hv H|$0V(HH$HHDD,w)H|$0Uk)H%HHt$@H IFH PPjfD$HH$ HL$x!LM2H$H1H$H$HD$(H@HD$hH{f.DyI2BiA-H$(D$L;H$H$IMhIEpDŽ$HT$`H$ AJH@0H$ HL$xHE$ HL$xL$\EʈL$\H$Piv@H$1E1H$fEIFH|$@P@IFH|$@PXHt$0HVH7AHEH8AWH$x=IEpL$MMhLH0H$X@H\$(HCH$HLHL$8HT$PLLH$XhH$P2H$PH@@H+H\$(H|$pH$H$HD$PHPpH@hHB0H$HHDŽ$H$H$(Hp(H$XHHLH H H HH HHHHDH\$PHt$(H$ AHCpHHP0IFHShH)HHHHHH H H H Ht$@L PhIFLHPhL|$@IFLMgPXIIFLPXHtAHHLH H H HH HHHHDHD$PH\$(H$ AHPhH@pHHP0IFH)HHHHHH H H L|$@IFDŽ$DŽ$DŽ$DŽ$LPXHL$0LHEH$ IVHH$HHE%H@H RhH$XH$(<"H$(H@(HpH.NxHHHHH!H+F0H$ IHL$(HAH$HH$P_>HL$(Ht$8HD$pH1H$PH@H$HcHyhPPH$PHx@EH$PH$PHV@H#£HH$H$HKpHShHQ0HDŽ$HH$H$(H$H$H|$pHp(FH$PRL|$@IFLMgPXIIFLPXHtAHHLH H H HH HHHHDH\$PH$ AHCpHP0HD$(HIFHShH)HHHHHH H H +IFH|$@P@HL$PIH$0HApHyhL@0HD$(H%H$0HQpLJ0AOH@S ;1DEt.LLHLHHHHHHT$0H@H H$ LHH)HHH$H?HH1H)Hx3H$H= MHHt$@ALHHLIIVHH L RPIFH|$@P@HL$PIH$0HApHyhLP0HD$(Hv#H$0H@pH@0HD$8AGǾH`2 #:MEAMIMtMɹ@MD)IDIM D@$HHT$PLp[]1L|$@IFLMgPXIIFLIPXDI EtLHHAHDHD$PHt$(H$ HPpH@hHB0HH)HHWAIFHt$@I LHHPhIFALPhL|$@IFLMgPXIIFLIPXI Ņt4LLp%HHH AH HHAHEHD$PHt$(H$ HPpH@hHB0HH)HHH?HH1H)H=pHH$HHDAH%L HHH H HH HHHIFHHt$@HPhIFLPhDEIFH|$@P@H%H=/t9/M]&HHIFHt$@PP+H\$@IFHP@IFHH$ PPIFH|$@P@Ht$PIH$0HFpH~hL@0HD$(H!H$0H@pLH0AOH@u61DEtL%HAHHHHHD$0HCH)H$ LHH)HHH$H?HH1H)H.H$,H= MIVHt$@ALHHIHHH RPBH\$hH$ HHL|$@IFLPXIV%?LH HRhgLd$@IFLMd$PXIIFLIPXHL t1tL%HLH%HHAGƒvjH|$0tbH$ L)HHH$H?HH1H)HlH$H=MALHHIHgH$ HHH)HH$PH$HH|$HL,ImHr@0HHHH|$0 IAH$8H$0L$HHD$(DD$`Lt$DT$\Ht$ H|$H$ H$PHHHD\$0Ht$H<$Ht$PH$(h_DT$\AD\$0EDHL$(H$PIH$0H|$PhHD\$0DT$\tEHPHx HrhHRpH$ H$ HJ0H$ H$tH$XEHxHD\$0LXD\$0II@H$Pt&H$P@iA tH$Px H$DŽ$-M]D$D$fH$8Lt$L$HHT$(DD$`Ht$PH$(HD$ HHJDŽ$HHD$H8HD$H$PH$]SHHHpHPhHQ0H8HD$(x[@H\$PH|$(HCpHHH0HH)H+ChL$LI\$HHHHHHH?H H؃H1H HɃ 1  IN ʼnH\$@% ЀHމQhIFHHcHPhHL$(H$PAH$0H|$PI fHHPH@ HZhH$ H$ HBpH@0H$ oIFH|$@PXAL$HD$hID$H!D$hHl$hE-M]D$DL$xD$\DL$xD$H$0D_H$0LL$xH@pHL+H0AyH$PH$(AH|$pHHD$xH$6FHH HH E1AHD$hH%HHH H\$PHSpHR0HShH\$(HH)BH$PDAH$0H$0Ld$xH@pHL+`0H$( HL$PHDŽ$HHApHQhHP0HD$(HDŽ$HHD$pHxH$LTH$IVIcHt$@HHpH@hHA0HRPH$PHHD$xH$(H|$pMEH$H\$PHL$(HChHHKpHA0H)HD$pHLHt$8H@HzhLPP$Ht1[H$PH$PL@f]1LHʿXZ]D\$0D\$01HD$pH$HH@HPPHH.HD$(MD$ LHT$PZ]H1HHHH 6H$DL$\IFHt$@EkPhIFHt$HPh,M]2CLHH$(H$P1蜇H$XAwIFH|$@PHHH|$8HIF#Ht$(H)H>PXHHHHHH9HHDFIAf]HD$(HT$PLZ]H1q~HDŽ$\ Ht$pH$PHNHcH$HPpHH@hHB0HcH<QPH$PHP@H$HcHppH@hHF0HDŽ$HHH$H$(H$PH|$p~H HH_PH$(H$P1Å CLH$PH@@HD$@D$@H$H$XHDŽ$H$H$HH$H$HCpHx0HHChH|$pH$H$(Hp(\a\H$0H\$HH@pH [HHX0H$(IH L,EeAtHD$pH|$(H$Ht$8H@H7IcHyhPPAEHD$xIUH$H)IE1lH$3HD$HH$H$D$hH,HL,IH D 0HD$8H$0Ht$HH@pH vHLh0H$(DIH H,D}A Ht$PH|$(HDŽ$HFpHHP0HD$pHVhHHDŽ$HxH$MH$IVIcHt$@HHpH@hHA0HRPEHD$xH$(HUH|$pEDH$L)IgrE1E1'H@pg] H0a0H$(H$PD$D$躂D$D$HD$pHct$xH@L@PH$HH$(H@(HpH`JxHHHHH!H+J0HH$ DL$hADL$hHR H1HHt H|$0 iH|$0H|$0 HD$(H$`H$8HHD$(H$(Hx(gHIH$(HX({@N#M]1HHf]Me0HIcIAIp"AH$0t?H$0HHt+HH@0HHwu FEID$xGIE0HLl$pIHD$0LmILJL"FhmIHD$0JL"IWpHr0IwhHH)H)H$ HH L6nHD$0IL9IGpH\$PH@0IGhHSpHH+D$(H+B0H+ChH)Hl$@H+k0IAtj#M]GIFHLmPXHIFLHPXHHLLHLHHH?HM1I1  I AHc IFAHcHL L H HH PhIFLHPhH\$PHD$(H$HDŽ$H|$pHSpHHChHB0H$HDŽ$H$H$(Hp(ZHL$(H1H|$PAIXHHHQhHP HApHP0$H$HDŽ$׋H$ H$(H$LH|$pD$Hp(bZD$ H$(H$P1DD$\}DD$\H$PH@@.HHHD$0)H$(HX({@ $M]1H Hg]HI*I$I|$p Lc|$0N,I01 IILI$H|$0LD$8HHHHHHt$0H@PPHHHt$0IH@HPPHHHt$0/LH@HPPI0LD$8ID$pH\$PHH H@0ID$hHSpHH+ChH\$(H+B0H+LH%H E1MH$HL$HH  .M]H$D$H$D$-M]D$`HHPD$Q|$\DŽ$HL$pHcD$xH$D$HQHHH$RPHL$pH$H$D$HQHHtH$(HRPH@(HpH1HD$pHH1H@PPt?EVZ-M]DD$\YDD$\,M]@z,M]'aHDŽ$IFH|$@P@HHH1eCHH$ @iuH$(E1HDŽ$AE H\$PHL$(HDŽ$H$H|$pHCpH@0HH$HChHDŽ$H$H$(Hp(U#Ht$pH$D$H$HVHH1RPD$H$H|$pHcH$HW1HRPH$PHP@H$(H$Pxf)M]URH$D\$0ED\$0TIDŽ$HIrHt$PLAHFpLHH0HH)H+FhH¸HLDI $Ht2H$PH$PL@QLXZ]H1E1HBH$X{LO1҃Ht$PLDL$@VHHDL$@mHD$hHT$PH$(H|$pDL$@H$HD$(HHH$HDL$@HL$PHQpHAhHB0H$PH$t{H$PHP@HtiH$(t:H$PNmu! uH$(@Fl H$P@k|H|$0t*Et%t H$(t^)M] E1탻|$\ tH$(tDH$1AuHL$xH$E0L$dH|$pHH$H@EH$LL$xHD$(鉿E11HDŽ$GHDŽ$E1RHD$pHHDL$hH$H@PPDL$h#H$(H$ HQ(HpH+z0EKH$(HDŽ$E1u H$u#HD$pH$HH@HH|$xPPEH$tZHD$xHD$hHH|$pH$H$H$HXhHPpHHB0H$H$H$(Hp(PIMPhIFHt$HPh$H=HD$(L H$(HX({@U$M]1HHf]蚘HHHH{pH$`L|$pLL$ L$0H$8H$(HD$H$LqHLh0IFLt$@LP@H|$PHSpLLkhIO%H+w0HR0HHpITH+W0L)H+ShH)HH HQPHL$(H)H9P@HIHHCH6HAQHHHt$(HHpLHt$PH@hHA0HNpHPH+FhH+A0L)LL yHHDH H$ 4H$HL$pH$1L$D$HQHHtRPL$D$3-M]H$Ht$HL,Ime11H|$Ht1H$0^E1L$1LH$(H|$pLHHp(M1M]II$E1HDŽ$AAE1L$HH$n-M]DD$\DD$\$M]pI0{H:FA+h]HL$(H$PIH$0H|$PJHIt,H@HHhH@pH$ IO H$ H@0H$ H$EH$X21$H>%HXH|$(HHL$8HD$0IFHH)H|PXH D$0HDŽ$E1H$HH|$pHHApHQhHHP0M:5HAA+h]tH$M]#M]Q$M]$M]$M]{HH$8AQAf]LV]1 鮲DH$1H$0tzH$0H@pHtHHtDE@(H$(HQ(HHttHDE)M]HD$PH@pH$(u110]p1M]0]1M]H냾#M]j#M]V#M]B#M].T0]1M]50]0M]!0]y-M] 0]-M]H$(E1140]1M]0]/M]A9DŽ$]\$M]_@t&H$ MH$ qH$ غ0]1M],0],2M]0]1M]DȃD$\[$M]aZ$M]?V$M]{Hf.AWAVAUATIUSHHHw0DŽ$DŽ$DŽ$HDŽ$H~pDŽ$"IT$(1z@tH[]A\A]A^A_zHuHCHD$XCHHH?qu18tL{ D$xIHD$XLLHC(H$HC0LHPhH@pH@0H$H$HCPHHD$hCXD$T9E1H\$pL$E1MHEEaID$IcH}HPPIcADDAAHD;l$TuMH\$pL$D|$TT$xt HL$XIcHA@D9sLtM]L$L$L$LH{hLDED$T D$THl$XE1JcHL$hHs0H@HJcHC HcJz HDŽ$H$L{H@H$eL[`DKhLIT$PHH<]H$DL$(L$Ht$H $LHD$@H$L\$0D$ HD$]HHD$8Ld$I7D9t$T@fDuHEtAHƁHtM]HD$`HD$`HL$pHq@HH ML$IcHHAAQhML$Ic}H4HD$`AQhHD$`ML$}HtAQhM tIcADDAfM]A1%f.ID$IcH}HPP} ufDRfDAD$ IT$ []1RXH$H$LD$xDL$pL\$`HL$X(H$HH$LD$xDL$pL\$`HL$XHD$XD$xLx@L{ fDEHFpHNhHH0HK8}f.{HM]!P]EM](D$TE1HAWAVIAUATUSHHF(HL$PH$HT$HL$HHD$X1y@tH[]A\A]A^A_ÃyHuHD$HMHH$HH$HD$PH@II9HD$hMgDŽ$HDŽ$A&)u HD$XEA&HHD$`b H$IHDŽ$I9MIL$ASЃ(D$tH$JH$ttMtH=^ fDHD$X]H$HPpLPhLR0AM@* AS1ۃ H= `tHxp `AHHCH$tMtC< HډLL$LT$x&A9LT$xL$AZAEH CjH$Ll$PD$(D$tH$Ht$8L$MH$Ht$HH|$`HL$@LD$ H$H\$0Lt$L$HD$H$HD$˦ŋ$t/AE) tCku"IHT$PLH$iH(tB.$Ђ]IF AMHL$PHT$HLH$P0IL9|$hHDŽ$Xh]Xh]IF MLHL$PHT$HP@fDH {tIF Ht$`IH@8HN HH|$PHT$E1LL$HH$H<$Lbf.HDŽ$Ah]Ah]sf.H$HXf4M]qH$=@HDŽ$3h]3h]#f.H|$XŃADHH]HD$`1H$H LH)I~@HtHD$P@) tQfDH[(CPvPDŽ$<tXAVf%fA<t8f Aft E1CiAIF HsLMHL$PHT$HP0H$E1KhE1ۈL$tH&AA9$wDIHf]LL[If]LL<Ieh]LLIsh]LLIg]LLfA|$HLEff.AT1USHn(}@t[]A\Ã}HuHN`IH 11HHtPH@9BHuHHuӍ{HHHI$H1PH@9HBHu{HHHt]HHHH `HH9uI$HtB(t JHHRHu[]A\ÿ1댸11f.HG(x@t@xHuHVpJ;wHH H9H `tF(tȋVHHH:H1fAWAVAUATUSHXLz(H|$xHT$8A@t1HX[]A\A]A^A_AHuEHILMEVHDŽ$HDŽ$HCH|$xL֏H|$xHD$0跏H߉HT$0AIH\$xLIMH?AAMHIMH$I$DDI؄MDŸ?ILDAL\fIH= `Ht'I1HHȋPHHH H2HuHIHXhH@HQ@HQhH)I9v H΋VHH Hu HtuHȋPHHH9H H2uEH^@H^hHHtDHQ@HQhH)I9wpDHP@HPhH)I9W@HHHH2HuIM9HAAtAIXDŽ$ DŽ$D$pDŽ$ DŽ$DŽ$H$HD$8DŽ$D$tL``Mz$L|$0M$MMIIGxuMMtA ?uAGD@tItA @uAt$I^hH$MHD$`DŽ$MthLt$@LL$f.C(t1DEt%t!HCpHtH|$xH9 fDH[HuLt$@L$HD$0DEHD$`HI9HD$8@ HD$`IMML|$0$;D$t9$IHHt*H;h]苬HtHC@H[HuݻL HL HtHVHHtHUHP@uH$LD$0ED$p.A]A `AL\$PHD$@L\$0HxL\$0IHHD$`H9]H诌P$H$T$XH4@$HT$XH$xH ]][TIIE1\LLH_]1E1uLL _]1uH$E1E11H$L迒AHD$XHLHD$`|$pvM]%w a]1iuHT$8H$yDr=D$tH$DD$XƉ$HHH)DD$XH$H$PLLa]1E1tH|$XDT$@DT$@H$I$A$eILJALJ$CI;izMHD$@HxWvqH޿X`]1;tE1HD$H1Ht$`HExHD$Pl$pH9HFHD$HH$Hl$PI;HIt MqH$Hy$tǃ1@f.AUATIUSHHo(}@t1H[]A\A]@}HuHHHuUDHC@H[Ht?H;h]JHtLk@HLHHuMtHfIHMtHtoHHtIUHP@uHXL BEH0DžLH߾ BED$D$H[]A\A]þM]HD$lrHD$sfSH_({@DM]1@rH Hf]h HHf]P HHeh]8 HHsh] H(Hg] [Ð{Heq ;DU1SHHHF(x@t;<t!f]Ht u@H1[]H[]@xHu1@f.f]H# teh]H tg]H ttH߾sh]H[]f.UHSH<u-5fDH}PH2HtH( tփvH[]f.USHH<t.GD@Hu4HC(x@tC`M];p1Ht7H[]]M]pHC(x@uxHuHH[]DAWAVAUATUSHxHt$(HD$`<HD$(IH@(x@HD$@M]oHD$@H\$@HvHD$@HIHu@HmHstE)uME111HLLT$ 5HHHD$8HLT$ H@L$L9Lt$@MHl$ fDH(HI9HKHuH|$`H(&AHH9rIH)HHHtItHxPuHqPj{HpH|$(H(I9mfDHl$ HH|$`H9xHt dHH|$8H9HD$`=HmHHx[]A\A]A^A_@AH|$`HD$ HH@HHH(HD$`fDIGH|$`H;P@ƒHD$(Hh(}@XM]1T$0mHT$0IHcHDH0HD$08Hg]T$H/HHD$PT$H T$\iHHD$HT$\H|$Hh]1Ht$HE111HHtM]nlHL(HD$hHT$HLD$P H|$(HD$D$D$H$HD$hHD$hHl@hHD$PHt$0H@@ H(HH HH0H(%}HHM]T$0kT$0IGP -1La]i1Ht$ HT$`LHL$0(6HL$0Hl$ HH|$`H9zHt H1Ht$8H9iHD$ D$ TxHj}M]jT$\AM]jT$H ]M]jff.AWAVAUATUSHHHGxtH[]A\A]A^A_fDLMtA$ ?<uGD@uE$It$hE1E11H$D艅HtEtHAEHLt DH L9vuHpHItUuA$UH HItAwIHUQ2Df.HF(x@t@xHuHu䃺 tǀfDtAuǀfDHF(x@t@xHuH vvH1(b]RgfuǀÐf.HF(x@t@xHuH ttH1b]fMuDAWIAVAUIATUSHH^(HD$xD$l{@1AD<t IExtHĨ[]A\A]A^A_DIHt ?<uEDtAEDBuMMtE1Dt$@MDML\$0f.MMwMA|$uAD$tAG)uAG,f%f=tIp `tI7eh]tA$tIT$HHHT$xI$ƹuDs|A$tm1L|$8D$XMD$DLd$(AHD$(VHDHHD9H8AVH L$ xatwAD9wML|$8IH|$xH9xHt{HD$xD{HHE&fD M]L\$ dfL\$ Z9|$ AvDt$\IGAT$El$@ HD$xD4ugDA AT$A AT$A ƃD$pt]]L!M]eDAA AT$A AT$A H$HL$tHt$pDH tT$l|$pH$֎ED9d$ HD$(Dt$\WfuHL$lH$Ht$pDu1|$@Dt$XDd$D@ŃEHL$8I@L$ H$HL$tHt$pDHbT$l|$pH$E(߶IHD$8HD$XAE AEHD$0Lp(A~@M]E13dIHeh]9'HD$HHHD$P讵HHAh]H1LE111HL Ht(M]cMLD$H HDŽ$H|$0HIH\$D$D$H$H$(Hl@hHD$P袵HL$PLhh]A@ HH@PIEHHAH1e~E111HL#HD$DLD$8H|$0HLH\$D$DHD$H$HDŽ$H$HHl@hvIHuyHDŽ$IE1H\$H\$HH|$0h]D$D$H$IH$1ҾaHl@hH*IHL$HH1HA@HL$(IAIEHIELmD$D1D`^H$ A~HCPHT$xLL3,tI(Ht$`oI(Ht$`IU@QHIU@AHL$ HHB@fIE@HL$AHIE@AHD$ HH@@3@AM]M@H\$ I(HHǃ8I(Ht$`AhHs@H|$h]HHUII(Ht$`uI(Ht$`]HD$ILJ@IHH@IHHH@HB@IH HB@tAEH|$ho[HHtJHC@Hǃi]II}(LH#2AM]LfATUSH^({@t []A\D{HuB IHՉEǃE E E$ǃE4E8E@HEHHID$xuI$Ht ?tZ#M]KI$U( U,I$ []A\f.HErt|auxbuxsQHǃ`fEE E E$E0fDxeuxluxuǃf.xnǃf.Hƿc]1HUU U U$cSf.AWAVAUATIUSHhLj`HT$(L$4MtwIHuZf.H[HtGHHtxpuHHtHHx@FuHtH H[HuMMuVEMAHD$D$0IDE1HD$IL;t$~IHHD$tHHD$XtH HCH{p `tH}puHtHHD$8tH}HLHH|$XE~-IEP@HL$H;A0Ht$LE1A*H|$XH}  E1Lt$HHD$D$$H\$@M#fDAIL9u v0H|$XIEJ|7P@uEE1IL9u w@H\$@Lt$HH|$XH;}Ht\t$$HD$8HT$L(H t H̃IL;t$Ld$H\$HD$(<t H|$;Hh[]A\A]A^A_@T$49D$0AD$0tA DHD$(<L HLH@Xt/MH@tID$H|$ID$$@HL$MHD$LDHHېD$0gH|$tEkHD$Hx@[Ht$LE1;(FH} H|$XE1HD$D$$\EHt$L'HD$BHT$XHL8H|$XXAE1HD$LDf.HG(x@t@xHuAVIAUATIUHSHGHHHxDH}HCID$AEtbHID$H}HCE H}CE CID$=Ct?=w(C[]A\A]A^fDHD-CfDf1MtID$LCf.ATIUHSHGHHHHEI|$HCHC[]A\ATIUHSHGHHHID$H}HCID$H}HC[]A\ATIUHSHGHH;HHEH{It$[]A\HfATIUHHSHGHH}ID$HsH}ID$HsH}[]A\HDATIUHSHGHHHHEI|$HC[]A\Ðf.ATIUHSHGHH;HHEH{It$[]A\HfAUIATIUHSHHHGH~HID$HuH;ID$H{HuCE CE {=wMt/ID$LID$HuHH[]A\A]]x]B@f.AUATIUHSHHHGHHxDHEI|$ACHEI|$EHCI|$ HEHCHEI|$HCHEI|${HC t2HFcHt%HSH9r H)H9C vMJ H]1L@HEI|$C(HEI|$C,HEI|$ HC0HEI|$$HC@HC8HCHH[]A\A]HC'AWAVAUATUSHHxHG HT$0HxHD$8F(IHHHjpHHM8HHHHu qHHIHEHjE HD$(HD$ ECDBHD$t IG0HD$ASE1HD$1Ht$HHHL$ASIEHHHt'H{H9xtLHDL$8DL$IFHAHL$INLHt$PH߃ADHL$PHD$XIFHD$`HD$ Ld$(A9IL4IHH9L$HL$Ht_Hy `!HyE11fD1HHH9~?HD$0fHx[]A\A]A^A_ÐEItHD$8LHuf.HD$0HjXHD$( HD$ @E]x]>DAWAVAUATUHSHHhHT$,HhE1HD$HCHxHD$ HD$Lh IM/E1HD$HD$E1HD$ H@pHt DLHHt4MIV~#HDHHLyI`HuJlHEH|$cRH|$HD$H9GHtHKRHhL[]A\A]A^A_fHX HE1Ht$ LEڅuL HX1HL\$L\$@Iq@HPu@E1E11H$LHHL\$eXHHD$tKtmIL\$HHIIIM9tIG=HD$H|$4QH|$HD$H9GHXHIQ@HLL$0L\$VHIL\$LL$0Mt,IS HI9RLH޿]1LL$:LL$HD$1HD$IL` ILL$0M9ML|$8Ll$@L|$ MMDt$,Hl$HHIUHt$1HIT$0IUIT$8IUIT$@IUI$IT$HLZID$IEID$AuID$ ^CDBtID$ H@0I)D$AE uAL$AEf< w!$`]AL$@Et AL$HtHT$PHHHRD$PfAD$XIGhHtLHI I`L9l$0L|$8MHLl$@Hl$HM)ILGfDAL$jfAL$ZfAL$JfAD$@ AD$1fAL$@fAL$ fAL$DAD$Is1HLL$0L\$XL\$LL$0HD$~ID$ ]CDIUIT$ fAL$AE@AL$AE-DAUAL$AEH訁HID$ tCDfDID$ `h]HXHID$ CDKMc HLL$0L\$YI9L\$LL$0LLL$8L\$0gHIHD$L\$0LL$8t7HHLULLL$8HI9IH|$LL\$0LL$8I{  h]HH?kfE1HDQ8L\$LL$0@ATIUHSHH>HI${HuI$HuH{I$Hu H{I$HuH{I$HuH{ I${(HuI${,HuI$Hu H{0I$H{8Hu$[]A\HDf.AUATIUHSHHHHxDHHHFAHBHH~fC8I$H}fC:I$H}EHC(H}I$HCI$H}HCI$H} HC I$H}$HC0I$H}(CH3w DULE+HSLxI$(z U:AL$ 9t(A$ t9tA$$t9tffADMDEtKDA4$1HQ#ED$ ELm I3WELHH4HHHHH9QHCHIHD$BDuLHHDDLH4H$IEXLI}XH$HHIHHH$EIH$IGH$IGH$IGH$IG H$IG(H$IG0H$IG8H$IG@H$IGHtuIvHIF(H;D$v HD$Lt$@H|$uI~8IFHvH|$HHH!H!Hu1HL$ Lt$Ht$HH)HL$(dL$3@Q31 HExIDH|$H$HD$ Ht6$t+$t HL$@HHD$ HA(H;A0gfH|$vpHI$1ɋD$Ll$Hl$8IHl$@I@9$HMDI8uIpI@HIP(L9D$mL9HDT$HL$(I1II)LLH<AԅtLl$D$L1L11T$1fDLl$Hl$8L1HD$ H9D$HD$PIHD$XIGHD$`IGHD$hIGHD$pIG HD$xIG($AG0|nHI+HH>]H"HHE1HCHD$M|$I$CHLcCDHC[HCXCH45KIHC8HD$0Ht[HL$(HHfH)1fD111D$pf$f$HPLG07L:0L201,HL$8H9L$ vSHL$@HUHAHxH9D$ HR lHbHDHL$ HH!H9HD$HFHD$DDL濸]11 DL]1mAWAVIAUATUSHF(%=tH[]A\A]A^A_ÐHn@HtuIHG,HH4H@(H'G,IHAH3HH,0HH $HEOHCpHtgH= `t_LHID$XHEHrXHt F ID$pHIGHIc$HHHH9$t HjIHH9t&8]IGA~(HHH[]A\A]A^A_HHIGHIc|$dHT$HHT$ID$pHJEuHRpH8B .HHIGHIc|$|H H[HHHHHHDF,1 xHI)JHq@wDH@(Hq@vH@8fDIH H@HtDAvHH@(LH$dIHIH$HGHt Iv@E0"fAUIATAUHSHHBHtHD[]A\A]AU(HHyHt$IU@HP@IHAUxPxDE1뮐f.AW1AVIV]AUILATMUHSHHxHIH H!%tHDHJHDHL)Hr:HtmLHHHHHtJIHB@IEBxHHH HcHH9t-Hx[]A\A]A^A_fDHx1[]A\A]A^A_LHuHx[]A\A]A^A_fDAVI]]AUIպATIUHSMH1Ht3IHL)HC@MeLPHCx[]A\A]A^ATUHSHFHHt$Ht[]A\@[]A\O'HvHu[]1A\HǖHItHSHs HxHKL[]A\f.AWAVAUIATMUHSHH8IHL$It1IfJ+H9HD$I ILLd$ HHD$ID$HD$0HEH{HD$`HEHHS LHD$PH)HT$hHLH96HEH{LD$PIHD$XHD$ MT L#T$JMHHD$pL)HT$MHT$xt H;D$LH)HLI9EH<<HD$h@^H$AL|$@HH$Ld$HH\$8HD$(MEHDHI9rHsH|$( RAHAuL|$@Ld$HH\$8HD$0N O :L#L$LH;\$s!LH)LH 1f.H8[]A\A]A^A_fADItzIuHt$hc]pH|$`dIwH%IHHT$XIHh IWIHt$pHLh uf.HD$h8GxNxUxHt$PHu.1@McH\$8Ht$PK[HĐHD$PHL$ L|$XLd L#d$AVAAUIATIUHHS HpH(HHt`EO[]HDLHH¾ N1JH1HH Hxފ[]A\AEA]A^[]A\A]1A^DAWIAVAUEATAUHSHH>HGHT$Lxt8 8]QPLEHHEEtaI(CPHS8H HCHCHC HCHHC0H[]A\A]A^A_I(C P@HT$DHLm1cH[]A\A]A^A_fAWAVAUIATIUHSHHGHL>LxBHH-@ tF( tAd$@I$1LH Hx#jE1HHE(HCUxHE@HCC(>HC ѸHk@HH CM(HCHHHH!HS0uWCSЃ@jID$HxI(@HC8ȃ@tHKuHKtHKtHKHC8tHK uHHtHKtEHKH}@u6u1H HC HtHBHBHHC t CD%=&t\IEHt'K`Sx4 t0@@@E-HspHSXEȉHDLLYtWID{HtHHLЅt8AuH}@t CfH[]A\A]A^A_ÐHL]1AEH[]A\A]A^A_ȃYZH1X]D $M(CD $ȉ΃fD%҃t4H{Xu-HsX1ELLD $MGSxD $fDH{pHspEȹ@=oD=ouI(x @HHC8ȃWHE0HLDL$ H$xDL$ H$HCJH CfF+GDAzLHIGD ID$HxMI(@HC8ȃD=oC,HC8zI$LC,ȃWI(@HC8ȃ.fD I(@HC8ȃfDA_ AF(@HC8fD=oTHC8I(@ HC8ȃC,HC8I$HC,ȃRfI(@HC8ȃ7F,0<LHAzIDI$L9yD $. 8]M(D $ΉȁfDI$H19)D $" 뮾 8]H$lH$I@ATIUHSHGHHfID$H}fCID$H}fCID$H}fCID$H}HCID$H} HCID$H}HC[]A\ff.ATIUHSHGH>HID${HuID${HuID${HuID$HuH{ID$Hu H{ID$H{Hu[]A\Hf.ATIUHSHGHHHHEI|$HC[]A\Ðf.ATIUHSHGHH;HHEH{It$[]A\HfATIUHSHGHHfID$H}fCID$H}HCID$H}HCID$H} HC[]A\fATIUHSHGH>HID$}HsID$HsH}ID$HsH}ID$Hs H}[]A\HATIUHSHGHHHID$H}fCID$H}fC ID$H}HCID$H} HC[]A\fATIUHSHGHH;HID${HuID${ HuID$HuH{ID$H{Hu []A\HSHGHHf[f.HG>HHf.1fDHWt(HHHtH1HHH1Wu؉ÐHOtHHHHHQufATH AUHSHHHۉHH A?D ለ SHt6`H薉HtIHH HH H@8[]A\fD8]f@1[]A\Df.HG HxPUSHHHG1҅t/H H1H HH H[]Df.AVAUATUHSHHHXHt59v-L$I $HtHYHHHt"[]A\A]A^f[]A\A]1A^DLi HqMuIv1Wt#I $HA HYHH[]A\A]A^HXI9wALHHHItHLHI9uC.LI $LHHtS{@f.t f.]f.AUATIUSHHHHXHtc9vYAHHCHHtWHK Ht>|u7DH9s_HCHH[]A\A]Ãt51H]f.H1[]A\A]C=_vƉL,HtHK 뚐I$pP9t/LHK I1DL]1lA9uA]AWAVAUATUHSH8H<HILLIMMIHXAMf.AG(9vH94tMXMuIhL9MDL|$LxMI(D`MMujMML^MH$1LHLL$LT$LT$LL$tiE11H<$+L#H8H[]A\A]A^A_Ð1LIL9tE11H$f.HD$9fLHLLT$LL$I9LL$LT$lHD$HtkHx tdJHD$HL91E11k2LLT$L\$4HH$L\$LT$IDE1HD$pLHH4HD$HH9L|$H\$ IMLT$HLL$(-HD$pI MHH|$pHDD$pL9HD$pvZI(LHT$pLHP0uLL$(L1LT$H]L|$1L)IJ1GH|$]$L|$H\$ E1H|$pHD$HPJ4H1LL$LT$t1Ht$H|$pHH9D$LT$LL$1HHL9t#P ^8]aHLL$LT$HT$2HHZHT$LL$HD$LT$jH|$LL$ LT$HT$2HIHT$LT$LL$ ,HD$pHHBv(At.DHL$HHL$tWHt8uHHDr]@u׋rH;sLBXI4DrPEt]fAWIAVAUATUSHHHHDx u'ffDQ(-HǁH[HtAHAuԃyuHuڋ1L]H[1Hu@AT$HE1IDHp N,MI}@ImHHI} HHHfHIM@HHHMHtHQ@HuϋQ tكtԋIME@qP]1L]1fI;r1HH1P]H11H@HvXH4Hv@HtH1L]1IE9H[]A\A]A^A_LLD$qHHELD$P8f.HHf.HHtH1f.Mɸt6Bu0HVBuI@hHFH~tf@f.AWIAVAUATIUSHHOHHyLrXLPXtH[]A\A]A^A_HNyuH qXu$HR0HP0IH BXHHHI$IRPI$@t IBLLL$ghL$MNMEIIGHxHD$!ADIHpC=_w ]H{ RK,t C(@I$?IFHHt$Hs@HtLB@MtM@pMt L9$H9uɃf;Bt$9IHtCuHCH3BHuHC0H9B0uHC8H9B8uHC H9B uHCH9BuHC(H9B(tEHLLL$L$I$l{_vKHD$L$1HLLIL$fAD9o~D9tIHLELL$ I$L$9wI$SHD ED EDFX]AAt\HAHA9w_AHHPH H HY(u%Ht H~HtH]HD@H[D Ep1H[HX]HtHW0HuDHR(Ht J D9uHZ H8HuH[ÅtHPfA]Ҹ]HDqAVAUATIUHSHHBHB HNL0HEHxHHXLHHHIA1L]HID$ HA@)7IT$0HHgHL$ HLHHtH‹D$  ]H1lAT$Iur)J)Hٺ ]L~NH1 H[]A\A]A^HzH[]A\A]A^f.H])IT$HHAT$H߾N^1H[]A\A]A^LHHMl$ IT$8fD_NH1aH )Ņf.H޿ suf]H1@Hٺ]A@Hٺ ]!@A]f.AWAVAUATE1USHHH9gALH8iLA]IFXAvPN$A$At$HC LxP:o  o o I|$8eHI$ HHIT$HIT$HIT$HIT$ HIT$(H IT$0H(IT$8H0IT$@H8IT$HH@fLLH߉ HAHB*f.HD[]A\A]A^A_fDH1(] 'tD9hI|$@A9nPHT HHXHljH49n( ANA9h(t DAAfDAHE9HHXHH 9i(uA9DD$H$DHJH$DD$HD9 + D9 uHLHHH@XJ4LH HI6H1HAB*BfG H 9tI(IL$8p1H9uAD$,It$ HH9aH޿]1HYf]TLLH HAT$(9HwXHH:z HVz t'HFQH fDH9>HHz uB(AD$(HI$ HHHIT$HPIT$HXIT$H`IT$ HhIT$(HpIT$0HxIT$8HIT$@HIT$HHHHHtD9hPfH@XHu`H oHPI$hPHIT$HPIT$HPIT$HPIT$ HP IT$(HP(IT$0HP0IT$8HP8IT$@HP@IT$HHPHHHHHXHHHRXJH@H 9I(IL$8p1H9AD$,It$ HH9' I$HHPhIT$HPpIT$HPxIT$HIT$ HIT$(HIT$0HIT$8HIT$@HIT$HHHHPXHphJ4SDу@pKDt @HHHtf9h(H@XHuu9v!HOX 9vHxu9h(u9W9GHhFfDID$ HI|$8vnLLHDHN@H IT$8I(DH1H9AT$(A9։?DKDLWXABu]I‹@O FAvmIJ1@H1v tuuJǃHD9uޅt8A|$(I‹@ Et AD$AT$(H; wAt$,jA9aH@XHЋ@ KBHL$L$HAT$,1;HOXHLr@MIHPpHXA|$HEH:LLHA.LLH޿P]1 @HI$ HHIT$HIT$HIT$HIT$ HIT$(HIT$0HIT$8HIT$@HIT$HH oLtkA;`tbLHAEAT$=v=w AD$ LH޿]1\LH HLXH3H1HAD$,H}t AD$(H-H֋R(AT$(ALH޿]<1AD$HL$SL$'DKDAB I$HHXIT$H`IT$HhIT$HpIT$ HxIT$(HIT$0HIT$8HIT$@HIT$HHHHXH@XJ4KDI$HIT$HIT$HIT$HIT$ HIT$(HIT$0HIT$8HIT$@HIT$HHHHPXHJH4I$HIT$HIT$HIT$H IT$ H(IT$(H0IT$0H8IT$8H@IT$@HHIT$HHPHHPXHJH`]1H HuLHJv6HGXHDH9Hzu9j(uncPHLD$H$UfHH$LD$HǹLHAHIL$8HRXJ1Ht ID$ 1HI(R AN(IdžI|$ ID$AIt A|$uAN-KDHTf.AWAVIAUATAUHSH1HH{@tHĨ[]A\A]A^A_fDLHD$ɍHID\$HC@HHHHSHPHSHPHSHPHS HP HS(HP(HS0HP0HS8HP8HS@HP@HSHDHPHSPHSHPHSIS ADEHSDDEDDDD ADEtHK8AAD DEDHDED̀DEA<< }Au A>.=EHC1AO,Hs LIIG8IG07H{0FO]AGx LuID HDDDLHEHxHHt HЅ{WEG(AhHxDHH`RHy H11DH@9Hx H8uHx0IU@`]1HLD$HLD$Hp J1)fA t HSlH YHDx EuXDEPHwXE11HA9(H փyuLi IvHy8uAIAAHEҋ| Dd$1ED\$$ALt$(B1AAHp LL,Mt9IuHHIU HH1H HH;tH9uA9H@H3HHHt HI@HtHHHHHuAu(;KHGXDT$HЃx2H:"HAM,LL$`L$HLXhHD$PLH$L\$HL\$H$1HLHIDT$HLHIE@HtHLD| AL$IHHHLE2LJx HHǂp HHSs]L@]L+]L]L4] L>]LD\$D\$t5NLD\$tD]LD\$A DbA tAFHt$HXHHt$HHHD$HH9D$LT$HHL$MLd$MVHMn \$LHI3ML$1DH]LL$HALL$HHL)IDHHEIHZHT$HLM;nHHT$Ht29D$vHML$HRXHHHHxuyHBBIF@\$Ld$Ht @tH(HDl$6LH;[IFH-H苹fAVAUIAATIUHSHH@H97IELL$ LHHLtHMHphHD$H$H H9+tHH{H@@@HuIu,uH+NdH@L[]A\A]A^HfGt@HtJ9TIINt/fDCH{ fNHfO;H0fDE1AH9vH@XHH@@f1f.AWAVAUATUSHH(H|$T$1L;MAHHk HD$=DALA9|H|$K47H)H|$tl@HHm L}MtpDkE9|H|$McLLuHcS HD$B0t"t<.ttD$t { tH(H[]A\A]A^A_fD1@UHSHHHtHGHxH0Ht(U-HHtH[]f.;.u;Cbw/HH4 ^Ht U-HH[]H1[]UHSHHHtbHEHHHxC- ЈC-HtHHH@JHBHHH[]vWHt HH1[]AWI1AVAUIATAUHSHXOAIG0Hu+I(HX[]A\A]A^A_@IW(H\$HA]LDl]H1Hڋ H!%tHDHJHDHH)LbLRHHLH HH{HHIw(1HIGI1HHC0HIG HHIHC8IG0H)IwH!HC@HIG8H9HG I?CxIGK(1H9Ah]H9и]\$LFH\$LDl]1HHڋ H!%tHDHJHDHH)HHHT$LQHHT$HHHHzHHIGD1I8HL$H1HA0IG HHA8IG(HA@IGI(Hg I?HL$AxIGtUIG(I9G0D$A]HX1[]A\A]A^A_I8pI(fS(ЃC(IG`S(UfDQ(ЃA(IG`Q(UD$A]QSHHHBXHt,Hzpt 8]趱HH@X[fHBp[f.tSHWHHHxt;g]tHH[s-g]H{sHt[@%^fAWAVAUATIUHSHHH4$IHD$E1fDIM9tgNtLLI^[tH$E111HHx(HtHQw@ uHD$ILtHM9HD$uDHD$HHDH[]A\A]A^A_11f.Ht!HW0HvHL2H9w5HHH!@HW@HGHtHtHG HHH H@`H:Ht4W@x HcH9tHu$fHcH9tHtuH?H@Hu1ff.SHP2QHtHH@@@HXH[ÐAWIAVAUATIUSHxHGHxHD$0HH H8HDtF ЈFEtE$E#I$L IHteP@1t71DHtHN(ŀuuHxt HtHI;P@rEۉx@t HxIHHuID$HxH`HtLLЉ1tKI$1H HHtfHHuHD$0H(@ЉHA8Hx[]A\A]A^A_c@8 YHI1LD\$A$HAHH$sLE1H1D$D\$HI$HlHD$Htgt$L $LD$fA(t,1I HA@Hy8IHH!H!H9LBHIHuʼnA9$t$x H<$P FD\$I$D\$H H@8H( H\$0H(H1Ht$MHD$  IHD$8H\$8HHEMHD$8 AGD$(d$(DD$Et3HD$8HHPH$HH#X8HH!H#T$ H9иBD$(D$(o[LD\$HD$h=nID\$HD$hM AF(HD$t I~@ f]LD\$,mHHHD$@D\$,t@(HEHD$@AD$ED$(|$H$Lt$8HI1HQ8HH+\$ H!L!Mt:AGt3A(t-HD$ LH!HLH1Hu0H9\$8wH+\$8H!H9w H9T$ D$(H\$8E1Ld$ 1E1D$,11D\$\H{HEH\$HMH|$PKfDC(DDDE%1tHC@1AHHt$9l$HH$HAHtHQ8Hs8AIHL+Y0H+{0I97MtIF LXpMtHHt$ LAAEZDD$(T$,DH4$H|$ XHH|$HD$HC(AA%AAAA1AtHC@1D|$,HHt$A9l$D$(HDD\$\Ld$ MtO+D$,uC(%=t5DD$(T$,LH4$D\$衣HH\$D\$HD$HHt$@Ht(LD\$HH\$D\$HD$HI$HxE1E11LLd$EL|$ D\$(IL|$IfH[HtKC(tHz%…t ELDAMuH@ LEH[HuLELED\$(Ld$L|$ IMAD$EI$ Hl$EI@ tyx,wpAF(XLƒHۃHHHHEIHIHR,@@H8LpHHXUtdHxHEHMvMmHl$E뾆[LD\$iHHD\$t Hx@I$H HXHtHSpB(4HTMAHD$hHuDHHHxuP@tHHHHI0I;rI;s̃tĉHLHHy@tI(uپPLD\$;HHD\$tPH\$HH@RtdHH<$D\$謺I$HL$hD\$H H M聦H<$xHx1[]A\A]A^A_HH9H9H|$ DA|$XHxAmII1LD$H\E1{HsCxHNx9F(HxH{8IHILHI0HFHt:9Hxu5@(t/Hu"IHHIC@1ILH8L!H;V8tH4HH|$FHHH@h@vVLd$IH[t1j)C)I\Ht㾓8]蔤At$@H[uLLd$VH\HS(H|$HD$HH|$8H9H|$PH9HA(uC(t AE_MtAFtC(AD9E1EDC(AAA8]HD$跣S(HD$=D$(t$uHH#D$HHD$8H9?H9H1I8]D\$St$D\$fI9JD$(BL,$11ALD\$,L~HH\$IUD$(D\$,HR0H+T$ H8HXH\$H!HD$L!HP HPPLD\$,oDHHH8!HPH@H@LHD$h6DHLHH@@@LpHHD$HD$(D\$,iDLD\$H4HCHH8E)HH@Dh@H@D\$AUHH4HHB)H9HQHHRuH\$HD$HuD$(KHD$0H@HD$8 LLžD\$PLD\$&CHuy@tGL\H1AS(MS0t IC@1ILI9sLQHIR0I9v1DLTHIR0I9AwI9v Iz@hH9wMtf8]蓋@H@@@1Ht Ht 1HfO@C8HC0HE0HH)HB HE(zAVHdC@X{@BC8S HCH1L@0HC0IN XI8]袊Dd$pl$TLJtIHT,HIHD$hIHLd$`Hx`XIE1L|$`H L Mt`fAL$@DM$ǃv@Ifx81ITHH9wI|$HκP F/M$$AMu|$TvH|$` FHAFEHDŽ$tHD$H_HH$HD$Ht$TH(HD$HD$`H8HH|$Xu=G8 uNVHHHT!fH0H~uHF8 H9uAHD$XD$pHD$HD$0Lt$HD$ HD$0H|$`$L$A\$|fIH=IH=AH$]1L$&HD$@H<]Ll$8}D$(UHS(H|$HHCH)DžHuHHS(HC0Au HD$HCHD$HH(@D$pHD$E9HCH;D$ @HK H9L$H|$H)H)HCHK H$D] 1L$%HD$EHHCHBH+D$HC@HC 1It$H11fHƋRx9BHA9wH$HH9HBHKAH$]1L$9xIH HxhHr@tIHHt H #HHBIH LH HB@1??H$LG'H$"A)AD$(AFD:ƒC,DŽ$HDŽ$DŽ$H$FLy@$L Hp1LHD$HH|$xH(Hw`LPZ R|$p׉Hp8A9JDHLIMHx8IHUI)HELM0LM(H} HF(HFH)I9vHE(C8uHE8WHEJH+D$HC$D$8I1HD$ IHtfDHH@9BHujLHNHIjIH LhhHD$(.H|$ LdIICuPIM9uH\$ 1E1AHL9H3LvuH3LoDH{uHLouHC H= `tL;tH@p@I\tHCHt$XEH}?H1HfwH&ILL?21L 1E1MMt4fI$LHnuAD$I|Md$MuA/LƉD$0HHHD$D$(L|$ D$ E1Ll$(IDH'@A,ApH|$L,ljIE(II9t.M/LLtuLL8nu֋D$ pt$ Ll$(MMt8fDILHmuAGIDH8MMu΋T$0Ht$LM@X HH$IFMAHxAD$l_|$HHD$H(H<[HPA$I$HI$H HADŽ$ HI$HHHH9tztH$  HLsu9HHLsu(T$ ЃD$ H|$HHC(AA,AB_HIuHD$HH(@Ht?1HHH9t2sLևH$Y LHCHD$ OL^HHD$`tHD$`I$IHHDEEHLHHHD$0xHEHEH] HE0HE8HD$ IIGIGAGAGAGAGIG IG(HD$HHLЅD$T|$HIHŋD$HLd$pL|$(IHHD$hD$8B$DHq F)cMt IO0HuIdLHL$xHL$xLl$@IHMu0@ u&uuu  HI A)EMtH|$HOxHtT$xI0ыT$xL$XjɃMJAIAwJKdH\$@HHD$(L` IH|$0@xH|$ H\$ HL;d$hHXH\$8L(H@pHXPHx(|$THMLiYu%=HqH$1HHD$8%HMAE1 uHHtHPz%D$X=HA LHpM|Lhh$tMi0MAIG8I `HD$@LLLL$x=LL$xHMHMHI A)t:AFDI%ɃdHNH^@A1u!uÀ u AWL4C`Az^@I 7@HD$8j11HD$@HLEbID$ E1v]HL]L)1HlxE1Irf@Ƀ8]In{HD$HH@H$I1LLL$xn0HLL$xt"HLLL$x=LL$x HEI]]L|$(H@HHE1l0nMLd$pL|$(H$1 Ll$BHCHC(H|$0HM(H H|$`A@HC HLAP89l$Hr*H@HLHsHtH$%HCL藁H$I$(HD$ADŽ$ DŽ$DŽ$HIDŽ$IDŽ$@ADŽ$0ADŽ$4IDŽ$8I$ɃL FL)HEHcHp {L|$(IIGIGAGAGAGAGIG IG(HD$0HD$ IH HHHzuDB@EtHRH<Lt$]1LilQIT$pH HT$HP@LDtVBwHA0HA( `H?wGHD$HHiLLHMVIHH?PP7=wL]10iHM IH PLIH PPI ID$T ^8]j@AWAVAUATIUSH8GIHGLxt~AD$H<tQI$HT$,LD$,H@XHD$I(Hp(1D$,tP1H8[]A\A]A^A_AD$IH8[]A\A]A^A_1Ys1DI$HXXH HJ@L I@8L9I0f]HA@,@DLD$诪HI{MD$ LK H$1HD$D$ Dd$8LD\$DI8MLM9TAw(%=Mw@1LIH)MLs(L9s0LHCC0LI9 @IQtdIItoI Iu AG,@TD$xIwpHBDAM|$HCHtzH|$p@ulT$ udH~8t]U81tH|$0LE0Mt5tLRH}I9v.I)L;U(s%HtHrHUH9vH)I9v HHDAHIHt]HHrIAHH=RtdHuH$L|$LL$;HuME1DH|$0H4HHHHUHHEHu8Lm HA HQQ8Hq(HALi T$`փ@q8HHHu1HuAW<1H9U(@Q8 <$Q8t HIW1H9wEG@HH}(EGDLH9@@Q8 HQ8EHPE11HT$@HHT$HHHT$PHPHT$XPH|$X@Au'H|$@.H|$H"H|$PDBAtLRL9LR I)L;U(Mt7LZLUM9M)H|$8t ALR ML;U0HHz u?LU0Mt6AtLBL9I)L;E(syMtLJLEM9vgM)M9v_LCpENNDHDC(AtHHǀXHǀLHR1HĘ[]A\A]A^A_E1E EtaEEtIo1H޿8^1N<d>HHǂPHǀHu@EAv9AH88DH4HHHHH9t1=)AH=IPHHPDHHAGHHHP1H,кfUfMfD}fuH] NHHE(tsHE0 HHHE8tUHU(HPfDI`1[*H11@I1H[t1HMH]I9L HHtHLHXI9IHD$ HDH$AH|$@I11Hl$D|$Dd$MIA9fA9DBHT$XH1H4$L)H9w-IԃA9LLHKOT$DfuHl$17fDMhH\I9LHHHLHWI9 AtLHHKIXHHXHHIhEtHDEHD$Dd$8Hl$E1D$Hl$ IL4$Ht$LHPIT$H$I\$ ҋpDID$(]AD$fIID$0HD$HL$MD$H)I9HD$(fA|$N,Mt$0g1[IF ]AF IF(A9DBIFH/AT$9sIv0Iv(Ht$L)H9wDII09LLHPIVH$ҋptHTHIF yHl$ Hl$D|$DDd$EtA93ADH88H4HHD$HHHHH9&9HNHH4IHHHH9H.HID$0Hl$ H|DMfEL$ID$ID$8Ht=H $D$t9T$s IL$@IL$8H9D$(HD$I@9T$Hl$ Dd$8HD$HLLL*HRHID$(DHLyLH߉ $IPHHP $AHHHPHD$([HD$@Hl$D$8Hl$Dd$fD1QJ1wfHHLB[H9]A\A]A^øKfDLH޿^1#%1"DLH޿^LH޿^@f.H ^$8](%UHSHHHHOHHH9H}HF@Ptf8wI$^ff8w*$հ ^f.H HukHCHP H1d]"$H1[]Ð HHtPHK@2ytHSHSDHCH[]þnfD^fD f>fD.fDfDNfD >fD .fD fDH[]@H)S7USHHHHt GH<tHH[]BfH HtHxHtH8HWdHH[] ff.AWAVAUIATIUHSHHxHH HuHHx]H1I=IAI!%tHDIPLDIM)MxLQHt\LLH:HHHt9Lh@LHH@xH&Hx[]A\A]A^A_f.Hx1[]A\A]A^A_Df.AUATUHSHHxHFHv`H t2H u|H }t:HV(HvA]&Hx[]A\A]H Qt:HV(HvA h]&Hx[]A\A]Hu"HN(HV~]XHx[]A\A]DHx[]A\A]H~Lf wHx1[]A\A]HL HGLP@AEHEI|$P@Hs:HEI|$P@IHEI|$PXfHHH H`s:PA]H1;IH H!%tHDHJHDHL)HrH LH4HHHHS]HHP@HS(@xHH$4fDHH P2fHyr:@AVAUATUHSHH`HFHWH=HxH= H=H=, H=b H= H>AHv,]HK(HS]HAH=<H=  H=8 RH=H= H>AZHv,]DHK(HS]H_A'H=\H=bf H=  H= H>AHv,]HK(HS]HAH H=LH H= H>APHv,]:HK(HSG]HUADH=ELIFL 6H=H=H>AHv,]HK(HS]HAH=, H= zH= H>AurHv,]u`HK(HS]H{AFfDH=H=H=H>AA fDH`D[]A\A]A^HHHHfjHV(Hv1;"AfDH=H=8H>AuHv,]vHK(HSn]HAYfH= |H= H>A(Hv,]HK(HS]H-ADH=H=xH>AHv,]HK(HSN]HADH=|H=H>AhHv,]RHK(HS;]HmA5DH= H= H>AHv,]HK(HS]H ADH=+FH=IGISXHN(HV]AfDH.HAHxqH>A`Hv,]JHK(HS?]HeA-DH>AHv,]HK(HS]HADH AHHHDH>AHv,]HK(HSb]HAuDH>A`Hv,]JHK(HS{]HeA-DHN(HV]FAfDH>AHv,]HK(HS2]HADH>AHv,]HK(HS+]HA}DH>AhHv,]RHK(HS]HmA5DH>A Hv,] HK(HST]H%ADH>AHv,]HK(HS]HADH>AHv,]zHK(HS+]HA]DH>AHHv,]2HK(HSq]HMADH>AHv,]HK(HS]HADH>AHv,]HK(HS]HADH>ApHv,]ZHK(HS]HuA=DH>A(Hv,]HK(HSO]H-ADH>AHv,]HK(HS]HADH>AHv,]HK(HS]HAeDAUDH>A@Hv,]*HK(HS`]HEA DH>AHv,]HK(HSa]HADHN(HV]AfDH~vHv]AxH>A`Hv,]JHK(HS]HeA-DH>AHv,]HK(HS:]HADH>AHv,]HK(HS]HADH>AHv,]rHK(HS]HAUDH>A@Hv,]*HK(HS]HEA DH>AHv,]HK(HS]HAHv,]HK(HSr]HAH{ R@PHD$ ]HD$( HD$0]HD$8 HD$@]HD$H HD$P]HD$XHHKH;L(;fH{ HEHIP(]HH1=,H{ HEH P@A1HLHIIL迮HLLHH)HHxHfHSAM H9HP@HS(A@xHMHT HX^1As.HH{ L HEHP@AD$HH{ L HEHP@A$AH{ HEHP@]HH1+1HHHIIL賭HLHH<(HHlHIt[HCH{ H HID$@HC(AD$xH I$HEP@L h]HE1AE1HIP@]HH1U*H{ HEHP@ADH^1A ATIUH1HSH&HLH)HHEHs蠬HHtHHH*'H[]HA\Ðf.ATUHSHVHH HHH*H 0Ht[]A\f]I1MtHCHID$@HC(I$KPHAD$x묐1H~gvHHN L HGHyA$HHK L HEHy AD$HHs HL HHID$'@HN(HV h][H]A\OHN(HV]fHN(HV2]Ɛ[]A\HV(Hv1]f.ATUHSH~H@"Ht!Hx 13%HH BHSHHHtHA[]DA\@E1H{vHHK L HEHyA$HHK L HEHyPAD$HHL HC Hp|HK(ID$]HSHK(HS][H]A\HS(HsH[]A\Ht[v)t)Qt#HCH!t\H#t#AuHCH t9H"uHK(HS]nfHCH#tH%tHK(HS h];fDAWAVAUATUHSHHHFHWH HxwQHwnHHHN(HV]DHH[]A\A]A^A_fHvDH=H=ujHN(HV]빐HtJHuNHN(HV]DH Hu*HHV(Hv[]A\A]A^A_pH>AHD[]A\A]A^A_fDH@<<H~wH{ HHE1HxL HC AAEAHtN$N,pEyLIGHs HQHN4lAL EL9kIGHLH{ L HEAEH~kDE1H(Ht ЅH@<?<u˸0AH9CrHEH{ HuHLxHE7H{ IPpIHL AHS HEJ|"AFHIL$ IxHCIDH)L9(HK(L h]GH>HN(HV;]$@HN(HV ]fDHN(HV=]fDHN(HV%]fDHN(HV]fDAHS HEJ|"AHL H{ IIfAWAVIAUIATUSHH(HH $DD$ LL$D|$`HHhHHAWIc6H߃HcHT HHT$w HHAHT$HLcIEIAMcLIEIt$LIEHc|$ It$I H4$Ht7HLI,@Itf.IAD$I,H)ШuHt$LLMAtfAIAD$AuH(H[]A\A]A^A_f.11SHGHHxL0MtM1IȹAHt[fDH1[ff.AUIATIUHSHHHGHt$HxT$QT$QT$QT$HyPPHE{Ht$PPHE{Ht$PPHEHc{Ht$ PPHEHc{Ht$$PPHEHc{ Ht$(PPHEHc{$Ht$,PPHs(H|$03Hs9H|$@P $LL$LLHAz]KHĘ[]A\A]DPPHE{Ht$PhHE{Ht$PhHEHc{Ht$PPHEHc{Ht$ PPHEHc{ Ht$$PPHEHc{$Ht$(PPHs(H|$,tHs9H|$@ATUHSHHHvGH=PtdwyHHZ MtLHEHH[]Hx]A\HHHtJHp[uHH[]A\HLHLjHItLI A9D$(t1HX[]A\A]A^A_fDAD$t uھ;g]LL$HHD$tIFL$HLHxLH(P@L$IC@1IIt$8H @H$HL$(Hd$(HOH(L|$(E1HD$ @ HD$Hd$fHEL\$HHx H}M|L\$tHD$ x M| IHl$L9$$uLL\$>HIIELl$(L\$IH<$IHD$ E1@DHD$ AE@pltI0AEIH(I@ HHL9$$MHHt$LHtHuHH:I?HzIHzIHzIHz I HR(IW(AWuHL$ AWH+A0IO MoIG(IGHHpHHt$Ht$LHHD$uLD$MH} +0AExHt$0fAEHULI>|$00Ht$0u fH>0tHHt$JHt$LHHD$LD$M 6g]@g]HDfDHD$ L|$(HSHHzHuHGHx@BH uruF@u.1[B[f.[f^1f1^H fD18^\H i1^4H =f.1@O1AuH9w tHG HuHW8HHE~t 1F`!@AWAVAUATIUSHxLHGHT$L$MLx0HD$fDMmMMA`uHA9G,uI(Io8PH9t @H9uI~HI V:HHD$IO8Hu1D$L蝆HHD$ t)Iw1LUuIw H|$LI;G tjH|$MmD$M0D$Hx[]A\A]A^A_DIG 1HƉD$HsD$1뼋L$A$T$\1Hl$0HL$(HL$Ll$HH\$8L|$ HD$@l$I#IDI Ll$(;\$I(LLP;T$0HT$PPpAD$DBHD$Pt HL$8H+A0H|$XIGHu1H8:IHD$`HT$PLLIGAVHg1mH|$XH;D$@H|$Xv>HT$8I1L@]1H/8:IP`Rf.kHL$HDIHH ]Ll$HH\$8l$H|$IHL$ H:A$iDHGz`t AVAUATUSHLj@MLa@MM$HHIt!18]HL$H$HL$H$IHIAH A(B,tvH;sgHRXHHH@@HH@pHHHA,ǃH[]A\A]A^LH޿p^1>T11D1@LH޿^&1fLH޿^뮾28]H $H $[AWAVAUATIUSHHxHGHHxH$E1GDBM$MpALl$LIE HmHtWH{uI9C,uH{HtYHL^1E1,BHmHufDHx[]A\A]A^A_fDLn0XHS8҉T$0t+H$H(p9tA@9t9HLp^{HL0^kHx1[]A\A]A^A_Hs 1HHD$HH_LHD$-HHHCHLHL$M#AI_ 1Dt$4Hl$(MHLl$8D$HIHHD$ 1A,@PxD$Hl$H;\$ IH[ MIHHI9HD$HtHt$HL|AL|$HIIcHt!IL$H9HtLL)IcHD$IFHD$PIFHt`0HD$XIFHt$PLHD$`H$H(P;T$0H&Ph!HL濸^1뉋L$HT$(L^11ND$4HD$XqL$HT$(L濨^1D$4L$HT$(Lh^1E1rD$4Dt$4Hl$(Ll$8Hl$(L$L8^1Ll$8E1H$:HL^DSNlHL u6<t,GtFh<t3Ht B <t#Mtu[@1HSLAP HtKl K[@HHHA0H+B0HuHHCtAD$ tHIT$ @^RX1AUIATUHSHH9tMIHDHsLu*HCH @t,HHLuHH9uH1[]A\A]ÐH[]A\A]AWAVIAUIATIUHSHHLD$Hu HHt~H{H,uIM+|$L*H1Ht\It$IWHJD=BD=8@}I$H{Cdt31H{HShHt"HIH[]A\A]A^A_H{8t1H{8HShHtI|$@tAEuHD${@UHSHHHH?H;t|HH{HH;tH[]VfDH[]fAWIAVAUATUSHHGHt$ L$ HG(IIMHH@hH@HL$(LxHHD$8\T$ HD$ADH\$H<(HII9HD$ J,1L|$0HD$JHD$(MMMIH݉HHD$(t$ t A1LLH|$0Ht$ t@H1HIIH9uI(1x@Ht$(IHHHL9r1HcLHHHHH;D$dtIIL9d$GMLHD$8HH[]A\A]A^A_Ë|$ HD$I~HD$8HHT$8fD1 HHH*^I9rHuHwL$ tHH[]A\A]A^A_DHD$Ld$815HD$8AHD$m1<AWAVAUATIUSHXHHHCxt1HX[]A\A]A^A_fDHExuIHH@9BuHH7LHA7=AtAtHCL1LHxH(HIH1HD$HEHxH(HIHHHD$ 5H|$)MhIhHD$(MHD$MH|$HD$0H|$MGIW1f.L9s:IHH4@H@u uJlHH[fD1HfGtH@tfDH߾HT$.HHHT$1f1HfONfDH@fDBXHzY@7USHHHHHt/`HsRHH[]u&DSHHHt#HKHt6H@ H@H[H߾(HT$NHHHT$uH1[AUO[ATU]SHHHDHt>IHsHIhItLgIHHH N1LHH[]A\A]fGluH@tHHHHG@Df.GltH@tHHHHG@Df.AVIAUEATAUHSHxDHHtDDDHЅu4EiAAL$ƒ9s D Ei[]A\A]A^fEtAtAu݀Mm[]A\A]A^fATUHSH@tBHFHuAHCXH9E@|'HCHHS1HHCp[]A\fDH{(HE@1HKxLCAH4IIHHs`HHHK@L!HL$!LHH 0H0LE@HNI苋D!IHK8MI LHE@HUHSHHHvHwuHUH H9t H9H[]DAWAVMAUIATUHSHH(Ht$Hr HHbI1L;{ tH([]A\A]A^A_HE1HHHEHxHHD$HC8H(rH9 rH9HzpH|$I)Ms/I9F Lk8H@M9M4LLHD$HHL$IFH(HH H~ @HDMuHtLD$I1HH^:P1fH1HI@H(1[]A\A]A^A_DH([]A\A]A^A_@Hz`H|$fLL$M1LH^覿1^DHH1^r1HÐu-WtDP0)^'^AWAVAUATUHSHHHL$IIHfDH[Ht/H;LuHC0IEH[]A\A]A^A_@L@HDL}L,AI9w$LLLuK<4%^tHmHuH1[]A\A]A^A_H]@H|$HLe0!1҉HHLIE[fDATUHSWk t[]A\H@tIHHtHV H f uI$HxPHHXHuH[8HH;S uHS0HtHF(H9B upH9B tjHR(Hu0`HHHQ(HP QfPHS0HP(AT$Q@JAL$fP HC0f.fD@f`HHt=HH@ HC I$H@PHHXHS8HXI$HxP@AD$ 1ATUSH.HvHu8Hu _HHEHt@H1wHJ(HApH@0HB0HAhHL$HH8[]A\A]A^A_1AWIAVAUIATMUHSHHHL6LL$LHH@H=wgEA.~yASAsD$,5I~ LHL$ oHL$ IIMLHM9w ID$H=vJ1HH[]A\A]A^A_@A#I~L}HH|$@LLLL$ LL$ |$,BD$@M̅M'HEH|$@LHHSH$LL$HM`H|$@HLIH$CHT$@N^-1fD%^LA~:IVIFLL$H|$8MHLHDLI$D$H$H$HD$8HHMFL#M~@D$,&NLNLA~:IVIFLL$H|$8MHLHDLI$D$H$H$H$IH|$@LL$MHLLD$H$H$ HL$@H?{$1t HD$8H?H8H$LL$HM`H|$@IHLH$XHfDA~:IVIFLL$H|$8MHLHDLI$D$H$H$J$IH|$@LL$MHLLD$H$H$ HL$@H?H@NLA~:IVIFLL$H|$8MHLHDLI$D$H$H$-$IH|$@LL$MHLLD$H$H$GHD$@H9D$8HfHEH|$@LHH]HT$@WNmNLA~:IVIFLL$H|$8MHLHDLI$D$H$H$;$IH|$@LL$MHLLD$H$H$UHD$@H9D$8HrNLA~:IVIFLL$H|$8MHLHDLI$D$H$H$}$IH|$@LL$MHLLD$H$H$?$HD$@H9D$8H@HD$8HHvNLA~:IVIFLL$H|$8MHLHDLI$D$H$H$$IH|$@LL$MHLLD$H$H$Z$HD$@$H9D$8H1$HD$8HHNLA~:IVIFLL$H|$8MHLHDLI$D$H$H$$IH|$@LL$MHLLD$H$H$c1H|$81H|$@DHH2NLDL$ DL$ A~:IVIFLL$H|$8MHLHDLI$D$H$H$$IH|$@LL$MHLLD$H$H$H|$8H9D$8HTA~A!3A*A/A%A^)A||A&A+A-<A<{A>\A~:IVIFLL$H|$8MHLHDLI$D$H$H$$IH|$@LL$MHLLD$H$H$N$HD$@H9D$8H%H9D$8H A~:IVIFLL$H|$8MHLHDLI$D$H$H$1H|$8HA~:IVIFLL$H|$8MHLHDLI$D$H$H$WHD$8HHDH9D$8A~:IVIFLL$H|$8MHLHDLI$D$H$H$<$IH|$@LL$MHLLD$H$H$HL$@H$HD$8HHHuA~:IVIFLL$H|$8MHLHDLI$D$H$H$}%$IH|$@LL$MHLLD$H$H$?$tGHD$8HD$@H1HH1%^藧譩1HD$@HD$8HA^1^_A~:IVIFLL$H|$8MHLHDLI$D$H$H$s$IH|$@LL$MHLLD$H$H$5$HD$@hH9D$8HA~:IVIFLL$H|$8MHLHDLI$D$H$H$d$IH|$@LL$MHLLD$H$H$~&HD$8H+D$@HA~:IVIFLL$H|$8MHLHDLI$D$H$H$$IH|$@LL$MHLLD$H$H$$t/HD$8HD$@HdH9D$8HLHD$@HD$8H5A~:IVIFLL$H|$8MHLHDLI$D$H$H$=$IH|$@LL$MHLLD$H$H$HD$@H#D$8HA~:IVIFLL$H|$8MHLHDLI$D$H$H$B$IH|$@LL$MHLLD$H$H$\HD$@H D$8HA~:IVIFLL$H|$8MHLHDLI$D$H$H$$IH|$@LL$MHLLD$H$H$aHD$@H3D$8HLA~:IVIFLL$H|$8MHLHDLI$D$H$H$T$IH|$@LL$MHLLD$H$H$HL$@H$HD$8tHHH1HHf.AUATUSHHVJCi<v}Ho(HLHC@HMLk@LHHLL9E@HHCpH[]A\A]@B<xKlHo(ETtҀva_HC(H@HHG@I=@HF(HHH@Fp@HC(HHuK8HIHH1[]A\A]1LL8@f.AWAVAUATUSHHH$H$H|$L$ H$Ht$ HD$XHT$@H$H$H|$pHL$LD$HL$HD$`HT$PA$HIL$L$L$T$|HHD$AH^D$, H~(E11ɺHHHjHD$I/1UlH@A׉T$0HxA AHD$8t7@HHHT$0n EyHAHED}HAG<JH[(D{AG<vA$H9*E!El < Cltƒ 1~H{@HL$0DHL$0HxH9 H H H訸A$@AB$(^fDH9x@ UlHC(HpHt$hLHt$XHt@HC(LHD$hMt I} S|$,Aŀ$A ՉD$0MAʼnD$xtAHT$H|$ HHD$PD׃@@DEt H|$^ E$E>MmK~L9|$y M AGDA1AAt E9tKMHD$H=^ D`(A AAAD$,<AŀA!Aʼn$HD$@$eChDŽ$HL$Q8 EuHD$@)D$Eu {E @H9EېHD$8HH|$ elekemH}  HD$EHE(@L{(HD$hA<$[AA$PfDE1HD$hDT$,E DŽ$Mt9AGFu2HD$@Fu'HD$Sh@8t<fEHD$@Ck}; H{  HD$CHC(HD$@<HD$8HH|$ CkclCkHCXChCk@CiDt@uECL$0AEˉL$0ETL$,$t HL$@L$x L$0]HL$@HL$PE1@ $t(|$0u HD$DT$0@(DDŽ$D ؈$t {HD$8HHt[Ht$hD$MD$D$DHT$HHH4$Ht$ЅUHD$HD$D$HHD$EED$xD!D$|D D$0CkMtAGFtHD$@FH|$ H$HL$HT$HG LHPHD$`jfclHĨ[]A\A]A^A_Àu3HD$hHt$HD$$D$Ht$hALL|$HD$$D!$HsD EHL$HT$M^1腘蛚1ZKmL$,@DT$x$T$xEt {HL$@DE{ElElafDH|$^Ht$`KkMk<fDfDD$tPHD$L@L;CXtAH|$ DT$|HT$HHG PHD$DT$|H@H;CX+HD$P$t${AEt {AEL$0E6$0Ck&HC(CHHC(HD$PHD$@)t$tckChHD$@}HǃMtAGFtHD$A@FtHD$`E1HD$EEHHH(HD$PHD$HxH{@t*Ci<wHD$8HH|$ @E/EHD$@)D$x $$H|$ Ht$HT$HG LFHPH$HCXH;vHH|$XnHC(Ht$XPxHHt$PC}HC(Ht$@HE(HD$8HUH|$ HCHk(Ck?CkMk0HD$8D$$$D$ChHD$8D$$D$$D$,^Ht$ H|$E1E1HHPM}Ul$u E}GCkkD3D$0!HD$hHHDXAATE1mHD$@)|$,KmMmD$, D$0QHD$pHt$H0HD$HH^{HD$Pt'EHD$^W1nHCXHD$@CkHC(@($H{XD$$H{@H|$ HĨH[]A\A]A^A_OHt$D$,H~ADARCkCksHD$pH$H|$hL8HD$H@HHD$8Ht$HHD$EHHD$PXygHE1HsLL$hMHL$HT$8^1cLD$hHT$L ^1ϑE@+HT$L^1觑HD$ H@(H9X08CHC(4CL|$ HLt$8HLECAHD$Hk(@<t:HLACkclCkHCXChCkHCkCkھ ^蠒~ChDŽ$HSHC(HD$ H@(H9h0cEHE(AUATIUSHHGlG<GI<$HG(H@hH@LxIHtHЉ1I<$C<s<sit<Klƒ}Sm@Ht=HmxEm@uUku }HExH9tf.`mH@xH9uH[]A\A]H[(C<t<KkH{@Ck I<$HAD$룐H[(C<t<v ^ΐUkHHI<$AXHW(z@Smuu fuGt t @Ck@1HރAfH{8tIsisDʃ umH H#ShHRHASm@GkHO(HHHBxKk}@HC(HHtH@xIKkDfCkƒ HS(HBD@Ck ^V1H `t`ƒNAVAUATIUSHH H.Ht$D$Hl$u t$t AD$H []A\A]A^fHEPH@LxCktAH{@D$äHHtxH []A\A]A^fD CtH<wHC(H= `tHxp `u@,f%f=tf=tHHA<u@bHLp@oLD$HL$LHHwL$H|$tsT$/HHI$HHHsHT$VHHD$&LpHQE<vEHSHuPp^1YoAD$1@HHA5H{@mH}Pp.HHD$tI4$Lp@`@dHHtIzHHu(HH1HuPHHD$HHATUHSHH@(x@t 1[]A\DHttH}{HG(H@hH@LxCkCluV{h tPƒ tHEH@(HHCP@u$Cm@tHHRxBm@uHz@t@Kk@Cm@t(HHxGm@uOkH1$H{Xu'HHChuHs^1wHH}A$u EfDtWCkCiHsH{H{@H}HtHA$CkUSHHtHHuGl tH{@tH[]DCktHsHuH{@H}uHuE@f.AWAVAUATUHSHHHBHt$<uHm(E<t<$0(^HE(H@HHD$H|$HLMuFfM6M1I^H9\$tLA tHD$1E1HHIxHA Ix EM)MtIXE1E1H$LLH=HHD$ H1HHHL$貧HL$HHHD$H9D$H|$fCm CkH}t @HG(x@cGƒHW E1<ALR01CkuHS(HsE11Afff.HD$0HA*H}DfDD)^(^}@ D׃@t>@t$Hy<HS@LT$ LD$L$HHT$(BHL$LD$LT$ xHT$(Hu1H^zA$1DL$HX@HUBHS(tH `tHzp `B*HHBFf.HS(HvBFg@`L$H@HD$8ifH{8Cl@tT$H<Hz0Hs11H=DT$ HT$LD$ LD$HT$DT$ L}DDHC8NHHRfT$PHU fD$PIVpHu1L^y3{A$1Hz(I(H^@HC@AuAEHC@HUIDHI@4I(H(H_lH}yfDfL$PN1f|$P(J,fffH^`HELH@PXHD$HELH{@H@PhHs@LD$HEHUH|$It0H@IHPh(HELH@P@HD$HELH{@H@PPHs@LD$HEHUH|$It0H@IHPPCk<g\ft$P)^F)^%yDH9w(vHHHGHtTH+w0HG8HBHw@HR(BHvH1wWHB(H= `t Hxp `tC1DHpH T$ HT$ ttH= `t Hxp `t!1HP,fftftP,fftfuAVE1I1AUATI1UHSHH0H~(L5H@HD$(HCE1MLHHLxHD$(HD$AD$H$D$trH\$(HtxCiKkclChKƒt CiHHAH0H[]A\A]A^HD$(Gf.H01[]A\A]A^Ð^wtff.AVAUIATUSHn(HHGHLxt[]A\A]A^Et$8%^%^DA$ HD@LLL$$نH$LL$tI9x@ SlwKJH9u6@.H{ CLL $L $Ck EH<LKl@KkEt3IAHxCiƒt CiHHE<tH{@tCikCk uE<tHE(@ThCl^H{@SHHECm@6fH[xCm@uH{@HH^nH1[]A\A]A^A_1HHL $ύclL $kfHX(<CHǃ@SlSlfDIAHڀLxwfHR(B<vCL $HBHZ(HAL $#D"KlI9\$0AVAUIATUSH@HG(x@t1H@[]A\A]A^H`HIHu$@HHtH9XuL9`uD@H[ HHtHLL$ LE LHHphHD$H$VHuA$<.AEF#$H$HD$HMH(x EIMHAF(AĀA$t ED$11LLAAHhAH‰HkHH9s2HrHH9$wH+$HtHtNHH9wЉIH;tHZMvM5H$ZH$ZI @H$HD$HLLHDŽ$HDŽ$HDŽ$^D$xH$@)AzACx$x9? IJ(AEF AF<HD$h<n&^LH=H$II VpPHD$pL*_LH+$L$H$H¿h^1LHLC|$X EaAvEDŽ$h|DŽ$hAv`AC,f%f=6M L9$mH$LLL$E[L$$f$x $x H$ `; Av IDHD9$$WHPHHLJ(M%$H$H1HLHHHH$HHH1HH$HHHpHf$HHH|$PL$L$藍HH$H$H[HH$L$L$H@f$HxxAVtHx@@H$LL$H$HR[H$L$H$HH$^t(D$Xu AEItAFt AFH$|Ht$hL$L$LLHD$@H$lL$HD$8H$pHD$0H$HD$(H$HD$ H$xHD$H$tHD$H$HD$HD$`H$(V$L$H$Ht$|EHD$`HxWwH@(HQvIHPHt($vt$OH HHHD$HL$LE]D@Au tAJk L9t1Blu+l$XHD$h<t 1ABk @Ņ7H$$xu EARv&^L$8@$xL$AR0IJ(ADEHHtBD@u QxA9DG H$LA9sFHLADIDƿ^L$1AHH$=L$MFMt1ENEt( IRXHtI9t$l)MBXAB<E~AtUt|$xtD$tEt<tAzhu1EA ABhD9tt$pEzhH$AVLI}DL$XALT$xHH(uLT$xt#H$@) tHD$h<EAEFEAFABj$hABm ABmD$XtVH$@LT$xTHLT$xt5x@t/H$H$H$LHH$Iz@ABi<$0$|AzfABkIH$HD$hHHIJw&^L@ 1APhH$IHt f LHt$hxlDŽ$0ZLxHH$t6H= `tHxp `AEDBt H@0H)$D$xHDŽ$ `D$xL^1:8H|$`HD$`H@PHHD$`HFhHD$p1PAzL9tBl < H$ARlD$H$H$$HH$H$H$t@L$8+R$H$L$8D$ 8HH$x@Q ARlHD$`H HXHD$pA~HD$HL$L$H$H$L$L$=HD$Px@.Izx#H$L$IBx D$XABkAJkABkH$H$E1Ht$pE1H$LUHH$H|$`H$LH4HHHD$`"IHDIz@-;AD$LƃID EHH1LXLZH9HRHHH$xLHUH9WHH$IH$f.IHXHD$HA0HunfDH@(Ht_P A9uLH MfH$H1HLHHHH$HHH1H$Ht@HI8HzEH$DL^1685h]LH2 h]LHfIB(pHDŽ$HDŽ$ABkx@0ABm@jLH@x@m@u1Hx@@MH$@L1IR0IRXjAJkJkA~HD$HL$L$H$I>L$H$H$L$HD$`E1H$H H$HD$PHhHufDHHHuH IHP`@DHHHCH8RtdlH9HrLMA?IHD$PLHHuHHHCLHHNu5HD$h@>IHf$ H$H+$LH$8^1HHK4a6HDŽ$HD$HLLT$xH|$h1LT$xHL$L$AL$Hl$p w H|$`HL$pHWǃHxHT$`HL$pHT$`yHHL$`HL$`H|$xAD$`~I|$`2ILMt A?AM}8I>L$uH$LL$1$ $0[ IH\$`H I zHXHD$prIHHL0U(t#HKHE0H9rHE@HKH9wU(HmHuHL`[1H2AJkJkABkABkID$PI]H9XHD$PxLLLIzXfH$IEHL$hD$XL$PHxHy(H$@$H$H+$$pH$}HHH$H$H$8KH$8H$L$Ht$hL$LH$HHD$HD$LDŽ$DŽ$H$H$DŽ$HD$@H$HD$8H$HD$0H$HD$(H$HD$ H$HD$H$H$荏D$X$L$PAD$$$$LH$Ak u y H$}AH΃<wHv(F<vH$ABkABIr(t ABkFkFkt H~@L$LрyyH$1L$XHHHL$hHHBHy(H$Pc{HH$H$HH$8zIH$H$PH$8H)HH$HHHEIH$H$8L$Ht$hL$HD$HD$LLH$H$DŽ$DŽ$HD$@H$HD$8H$HD$0H$HD$(H$HD$ H$HD$H$H$Ky$L$X $&AzH$x HP(ABIR(HP0IR0@LP(H$zH$@LL$H|$hL$H$AARmL։ Hm ARmHm ʃ PiHmH$I}D$L$H(eL$ $U HD$h@<H$hk@AED@DEX1RP,ffmfbHDŽ$^D$xAFVA]L|$xL$yBfDŽ$H$DŽ$kH\$PH$H$H3IIFHH[(HH$HX0HH$ HH$(X$4X$HtHH$HD$Px1ILd$hIH,Hupf.<tHHmHtYAW LHIEAW EI<uLe(LLEAG IAD$ID$(IHIVH@IF랃A;_sLd$hqH$H8CF.ABk #HD$h@IHaH$H$@A$<AH$2E1H$u!f.IL;$H$@NHD$PxLd$XLd$PI$H,Hu[fDAT$ DxLHBAT$ EAAHI<tH<t,AAED AHmHtG}HuHE(IHA(IHIVHPHM(LHrBHAD$ IA똃A;\$ALd$XHD$HLLHDŽ$HDŽ$HDŽ$H$HDH$MDX^1LT$xb'LT$xH$k=H$L$ILzHHIHIL9 1ILd$`IH HI9HHt{uHD$H{hHT$hHT$huIHIHL$PH$XzH$H$3H$L)HH<xHH$LT$x0HhEH$H$M^1L$c$MFL$ARlzn&^LHL^1$$0;LHH\$PLhHHHIG0H9E0IG(H9E(HD$HHLHD$HEHL}(LLIHH1H;$HHH;hHH$QHLLd$``/GHH9L$@MLMAFM~xIFx<wHMN(MF0tH1t HPH9tHHHtL;F0yHHv(~A9yxuDHtL;N(uL;F0u HH9uHHH9]HLL;I(NL;A0DHI9tANm@INxHHyxu fDHHAxH9uI~@Lqxt Hz@eHz@I~@LL}H71I fσf? f }H|$hLLT$xLT$xABm@tLH@x@m@uHx@tiH$H$@<NH$8L^1L$ L$"D$LHvxFm@uH~@uH|$hLT$x[~LT$xbH$hkL9HHD$`E1H$^1[ q"H$H$8E1H|$hD$APa LL$H$H$HD$$LD$H$H$CH$L$H$ *^^|!H$5HD$PH$Hxi1H$5nHD$hHHkHqH$L$XH$PH$PL$XHH$HH$H$@L$8HH|$hL$8b|$XDŽ$e|HA(L$PHH|$hHH$8H$@H$H$AI}D$HH(RiH$8HWH$8H$Hm@ rm HmBm  ȅBmL$PuL$u6HD$h@<~1Bk @oHI(H$TjkRHAE*^^iHLHT$`){HT$`~HDŽ$.HD$h<H$yH$H$8H|$hE1D$APaHD$$L LL$PD$H$H$HH$L$PH$DH|$hL$8SzL$8HA(HHI@F?AHA(2Hp11E^ZC*PH{p `BHL$LHLLLHS,fʀfS,1GluWJv vHG(HxpSH_`HuL@HHtt:HD$(Hk@hH0[]A\A]A^fDH0[]A\A]A^@01LL^HEHC0HEAWAVAUATUSHH$XH$`H|$(Ht$HHT$PHL$XHH}(LD$`LL$h@t H[]A\A]A^A_fHGhHHD$p_LE<Ht$HHX HE(H詰HHD$xJH¾HZ2HHHD$0{DHD$0LhMMuJfM6M<AF<uHD$(IvH@HHt$@Dh/1EL$HD$0HT$8H@HHD$ /I|IukHHHT$8Ht$@ID(H<LIY2Ht$ I|$LA$@B2H}(E111HzHIt@<8Ht$ I|$LAD$@2H}(E111HmzHI-MAEkAE<ANM6MDHD$0HHHD$0H}(H$GH$DŽ$yD$EhECLM3fI\$HuHHC<uIT$Hs&^11HHlHD$(L$0HHH}(f.HD$(E@H@LxtA'H|$pt DGLEHHGpHHGxE< IHtHH|$(ЅTEHD$(HH @TH|$p?HE(HL H[IHtHH|$(ЅHE(@LHD$(HH E HHtH蹶HHt E<&oH艶teHD$(HLZHHtH|$(1HrHHXH|$pYg]iH(=1.fH*H+1EFH$0GH$DŽ$D$E1*Le`E1M E1DAD$DBuEI$Ht8@,f%f=t*T[LH @(IDEfM$MuM HD$(DAHH PTE<IGpH= `H(~@H|$pug]HIx H\$(H}(OGH$HHDŽ$EЉ$H$A~$2HE11HXHk fDHF0AHt H@(HuHv8HuL|$(Iv@L(HHIILXM"Dd$ IF0Hj E1fH@(AHuDfAFIF fA6HHHV HE(1H蕩H;I~8IFIF DHHIFHLL)Mf0HMuCKDI|$(ID$HLLHHHЃID$)Md$(M I|$ =*I$HE(1It$ HHu1H$IH$IGH$\|H}(HD$(HH @T@M$$M H|$pfg]\HI! HH DKEu HH E D$0 T$0HDDAEt#HAXHHtHHHuH HủT$0H|$(Iv@¯HIIX E f$f$f$f$HDŽ$(HDŽ$L|$xIH HE(LHGH|$Hm(L$H$H|$(H$LHDŽ$Mt$%E Ht$pH$HT$HE1A `HD$HHDŽ$HFHxD$H$D$~3H$flNkH~@FhHdž 1HH|$(f$Lf$HH$HMt$(HDŽ$H$'$H|$(H$LMfL$$HLt$(C}HCXE1Ht HAHuHt$pHSE1Ll$A `HDT$ HDŽ$HFHxD$H$D$}L$AglAOkI@AGhIDT$ 2f$1H{f$EH{DT$ <fCf$ABf$ &H$HHDŽ$HDŽ$HtADPEDT$ H8t)v^[HHtDHDT$ EH$LLn"HE(IwpIT$HT$ HH$8H{XHDŽ$HT$ t HDŽ$H$H$LIC`"L{XMu_p`HE(HH$ŤI?H$LLHIHЃH$"M?M-IGHuHDŽ$HD$xH|$po[IH$`HHEvH|$PtLHE(Ht$PHHUHHHHH譬H|$XtIIuIT$D$HLHRhD$@IuBL$HHAH L$LHHD$0ID$PXH D$0fD)^#^@L$LHHD$0ID$P@H D$0fDHHD$HD$H)D$L)D$1HIHMH|$(DHt"#^D$fDD$HH[]A\A]A^A_@IuAmHD)^"^@IT$D$HLH RPD$LfHLD$8t$H# 1H?蛘fDG(% tHt[ HtH׾&^Eff.AUATUHSHHHt*C+HUHHt IL$LH|$HI$Hp(Hp|(MMH[]A\A]A^A_@HD$01HD$XH(pHD$(HHHD$ fD@uHDŽ$]]H+HH$sH,HffmAN\HIH$H|$HhIH$)@HDŽ$ ` `f<AF<EJID$pD$@bH|$H;1IHD$0 MH(x E׿T$HHEMH$H$IHHD$hLl$PAG,I$AG(B uIO@HuIHrHH& H|$0H$tIWHHt H9%f0HD$0HHtH$LI4$H|$Ѕ9AG,f]fYH$I4$LH|$f1fII_pDh,<t3+^L9l$ HD$PJ,H LHHL$8A< ID$XL4(I HDp,AG(gf.Hz0Ht$11&HI$@Hv(HpH$ H+F0H$SID$`J<WL+l$XHD$hJxWwfDH@(xWvH@8H@,AG(R`` HH1 ^H1EfH}HIL$8IT$0E1H|$PLtHH$@ IW@H9$swI>kNHgIOpj]H1 N@<.tu:HD$0H(@ HAH$H9 AO(DAG,fHw$HH%tD$HCf.IH@HxHPHt LЅuHD$0LXD$HAH$|$HHH@L,Ɖ$L9$L|$`MLd$PfDI$ IG`J,HMy HLHt$pLHHT$8DJADL$@DL$@H$AAHt,|$Ht%LuMtI `tI~p `DHI9HSL$IIMtL9t$ LLHL$PLD$@H|$(LD$@HL$PHHV@I)uBH$1HtHuPL$H(HDŽ$H(H~pHvhHw0HH9uHH$H$H(F'LF HuHN1E1HvH9HBHD$H0LH(FHHD$8HFpHD$PHFxHD$`M1A|$u IT$ HB@M$$MuL9T$ HcHRH<(1Ht$8H|$ HIHHL$hHIHL$h{H(ILx HLE؋D$@MHD$ht,Ld$pMIIAz^MMuLd$pLMHT$ LϹIGLL\$hLL$P1LL$PL\$hLσHH|$ L9uHT$ LIGH)LL$P趺HD$LL$PHp(HHt H;Zp LD$@MMHD$@t IHA}BMmMuHLL肹UIB D^1LH@LID^LHҺIHA-^1譤HE )^0^谤11L?IVpI|$@YID$pH= `H$fHD$@<HD$tu<HD$HP tS$^1RXHZLs@MKLH(FHD$8HF`HD$PHFhHD$`#^1RXlHP #^1RXYIZ HHHD$h1HHChHK@Ht$8HD$ LH9dLpL$L$LH$L$HLL$xLHD$PLHH|$A$@Hl$8L$H$AFLL$xL$M^Lt$ H9L$xH|$E1L1Ҿ #^11HG P(H{@L1I9HHHHpH3rLHEHHrH0HD$ L9uKDI 1yHH(L9uHD$8H9B@HHHxHHHL1IM L)Ht$ L1HD$8LHY@Ht$@I9HAhLL$hLD$PIt$LLHD$`Lt$8Ld$ LD$PLL$hL9wKHHHH9x cHIH [L"I$L &^E)^1^2&^ &^)^1^ &^E IH A1Ht+A<r<v<uHA(H@fHA(1DApHLQIɋI@IBHHSI;A(IHrqI+A0IQ8H Hu HI(A<vDImIl@HA@tH@xHl@@m@uMtA uOHHE1[LLDHHIQJuHIH[1LLf.HP,A[1HW 1I&^RX1[@AWAVAUATIUHSHHhHN,HHt F,HC(HL`L9H|$HH7HD$H9D$ w'fHD$HH9D$ HD$gHL$LHHtu1E1E1H|$HމD$ GD$ MAAuRHEHt'Ht"F,Hh[]A\A]A^A_@HhD[]A\A]A^A_fDHHtgH|$LHE1E16tLD$HHLLWH|$LAEQC1o_fAA,LH Hh[]A\A]A^A_fDE1E1DMAAfATIUHSHLD$ D$ HHu+ffDK,D$ tTHHU^HHt=C,uHHHyu@D@uLHHBu1f.H[]A\fAWAVAUATIUSH HHL`H|$Ht$MLuHHHExuLMtAF,f%f=tE1LE1EINf.AO,EI!'^HuIHMM AG*uLI#G(L9IHHtP,uiH$@HI,HHtdQ,u[tHT$H|$LIHH/@,%`,HHH @,uEfDAG) I'^ HMAMf.EETHHDIE1E1Gf uuIHHI#C(M[H9ظDDMAC(tILL@P(HH ADAEI9u tH,HHI9ur@x(AHD$IL@$^HH 1QXEIDt$4HL$(Hl$8@MMHI#G(HuIHHD$'ʼnLt$(HD$ MvMtHI#F(H9uM.L9s)HT$ Ht$I|֬uAf,EHILt$MmMkHI#E(H9uKGLL/uHH1[]A\A]A^A_HAK,Dt$4HL$(Hl$8EuHHHH[]A\A]A^A_f.UHSHHGHPvH[]DHH#WhHt4WktHCi<vEƒvDCl~eHC(H( H[]fD u<zfuCl aHX1HSHQ HuBHsH%t&UHSHH_xHu\@HHtPHsH}(E111,HtHQwH@(H=]rH=brHH( HuH[]fAVIAUATUSHPHn`HuHHHExuHHt@,f%f=tHLHnHAd[AHu@H[HtH3LLuꋃuHH$HD$1LHHHD$9HH<$H;t)EF11HHAA*HH$oHRHHT$fHP[]A\A]A^@f.AWAVIAUATUSHxHGD$LxAt HF(Hx@t%1$^YHx[]A\A]A^A_DHAxUL}(Le`Ѓ<DMI$H@,f%f=t[LUHHu_qDHL$ HHL9HHtC*uI$H`H|$ H H1UHHtH|$ HH(-uUM$<3HT$ JGLL$uHx1[]A\A]A^A_HT$GLT$tAGLu}yIHLfH]`IIHH$uHHH{uH ?A;GHuIvAtHHtA,f%f=uS@H t'@ t!H$HHHL$}HL$HIHSLa(uA* uE<HPurvH4$HAH]`IFHLxuHHH{uH HE(?;PHuIvAtLMtAD$,f%f=uMd$MtAD$(t&I$HJ,AT$, AT$,AD$,uĀùAD$(E tI|$@tHL濰$^1DHqHctDUH1SHHGLHxH(DHIIA x AH)MM M9uOIM9t?IHtC<wH9s(uH9K0uHHt9HtWHh"@H1H$^ 1H[]þY1HHu1fH@ǐAWAVAUATUSHHHGHHxH(D` OHHHH9(L@ADD$ {HcH*tHCXH *H9HCLlHDI!LHML4IxLHIHDL1HHH<H)L|HIGL$ HBL* @H@AHH[]A\A]A^A_f./HHfD1H[]A\A]A^A_LPHIh1H1H%^41tf.AWAVIAUATUSH(HVH|$H@HD$t3HL$1H!9uD$AFH([]A\A]A^A_fDHD$H^H@PHH@LxD$D$ 3DL$ ȃED$CH[HI8Ht H{ЅuHkE1DLHEHH *^ߤt;II uًCuHD$H@%^HP 1RXH(1[]A\A]A^A_uIA$(*^ D$ WDIIA$(*^ D$4T$ D|$A AFE ~AE11f.AWAVAUIATUSH(HGH9~PH|$HxH$t8^ƋI}(1@tH([]A\A]A^A_H$E1Im`HufDHHHExuHLMtӀ yjH$HH(J1HIMt11H$M'^H<$8HH.ݚHxHHD|$tVI$HHtHHH9H|$L 1I|$p `IG@+t&HHHtHHH9t}M?MuH4$M'^uHD$H@HyA@HHaHPB+uH27NLuHD$H96ID$p `(HLHmID$p `I$_HU P[RXMuDM?MIG+uHH蟭tIGHCp `HID$p `HHL HHL q|$#@1fDf.]f.HGHxH(@ ATUHSHHHtH[]A\fDI`HtHL EHHtHHAVAUATUHSHHHHtHH[]A\A]A^fDIAHDHDD$ ߷HItHLDHHtHH릋E(LL҃ AEGHHtDD$ HABDkxff.BhHE1A(FhBjRiFjAUIATUSHHHGDHLxA@I$(x@AHHN@HH9v2;^{I$(H@xHH[HL]A\A]f.AUIATUSHHHGDHLxA@I$(x@AHHN@HH9v=;^I$(H@hHH[HL]A\A]f.AUI1AATI1UHSHH(HHPB<Ckv ~ Km HǃCkCLc(HC0LCk}.tPSiu A SiuHH[]A\A]H{@uHL@H1[]A\A]IEPHLH@HxfDHW`Ht"HBHHpHtA(u HHu1ÐAUATUHSHH^(sLHGALxE<K\uHHx@t1ҾHCS`HHx@HE?1A H1ҾHI(HPCXt%EHU ^'^h%^<d'^HE1RX1ҾH3cf1ҾHtEAH <H҃ Ht1ҾHfD1H[]A\A]H꾀2GH0fDH[]A\A]1ҾHq21ҾoHQt1ҾoH>ViH#S1ҾH tLHHHEL9uIHL$HX HtJCt%thtK-^h+^?sHKSDLHHuAA KSDL7DKSDLCL fAWAVAUATUSHHXH~ uHX[]A\A]A^A_fI蘓H_HK H9HHHItHs@LC 1HL;t*HC AIFA?AHS HxHHHL$tLsHX[]A\A]A^A_@HHHL$0tLI_HJHT$H9HL$sL|$8HHkP@HHL$0H9HFHHD$ HD$ HLhL葈AAlEM9`Ht$HH肉E1M)J\%H9\$LD$HT$L1HLDd$LHLH;\$ IFHLcP@HL9IGHHD$(D$LH)LuyHD$H9HGL9v`HT$L1LILHŋD$LDLI|tr,^6h+^~pfDLDL+l$(H;\$s M HD$ H)D$0 H;\$IFQ@H{ HT$L1LLIT$LDLIԉ5HT$LLI1LT$LDLIԉML芅MdLDLPLhMdfD{guJ{nuD{uu>{u8ADHS@L+^1}mofDJ\-fDL|$8fDHHL+^1L|$8(mLf.AWIAVAUATUSHHHxHFPLIxDsEuAED$EHpIpuӸH[]A\A]A^A_fLkA}guuA}nunA}uugA}u`ED$ID$E9HD$uHL1tELL$]DL,^MLDMIEH1l1nfDLL1(,^kH1[]A\A]A^A_ID$LkHD$f.ATHUSHHLxHcHHxIċsuH{ttHAHHxpŋCA9D$tCHC[]A\@HsI|$HH8uHtHtD uDAD$HuI|$o랐AWAVIAUAATIUSHHLHX IX f.HHtHHt`MS9w^9vrHmLEtHGE1HxpAHHuMHۉtSfDSDHLIX fC9EuHsH}HH8uHtHtT$ ݃T$ uHHmLMHD[]A\A]A^A_@HHADRHIHRA9LD1DLL AF҅t8A0A @8u2z1HAtHA @8u H9uD)@)fSHHHtCH;Ht&H@ @@H[f.H1[H߾(HT$H1HT$Htf.SH%HHt](HH苯t7HC8HC(HC0@HHC@t HH[H~1[@1[ff.SH7H{@^~H[U~DAT1IUSH>tgH8HulLH2HHtr@@u4LCHU(H;U0t_HE@HJHM(HS HHC H[]A\fDP-^T$ EiT$ x@HH[]A\HH}@HHHE0(HHE@tHU({fDP-^hSff.UHFSHHHwH8Hu;H;](sHE@H؃@H[]f.P-^hP-^ihH;](rѐUHFSHHHw%H8HuCH;](sRHE@H؋PtPH[]ÐP-^hHE@H؋P@P-^gH;](rP-^gHE@H؋Pu뫐f.HG@H@@HW(Hv)HO@HAH f.HHH9BuÐf.SHG(HH< Ht*Hs(HH0vH{@H ׋ILHH9u[f.AUIATIUSHH8Ho(MI$H9HI](Iu@@HALHH9؉JuH9v!IU@fHHH9@@uH[]A\A]f.P-^qfMpH9of.P-^AfQwfHG8HuHG(ÐHG(Ðf.AT1HUSHt0H;w(HsYH}8thHE@L$AD$LtAD$HB []A\D$P-^eHU@AD$Hf.!P-^eH}8u"P-^{efATHUSHtdH;w(HIs(H}8t7HE@MHtHP I$[]H@A\/P-^!eH}8uɾ0P-^ ef[]1A\fAVHAUI]ATUHSH Ht1H[]A\A]A^H}(vdA/@pxHxLcLL迁I9uMHH9](v5HE@H؋PtƾDP-^OdHE@HAL9e8ePP-^D$ dD$ H[]A\A]A^DAWAVAUATUHSHHG(H<莵HIt^Hu(HvTHúfHH iHH9s!HM@H DAEuHAH9rHL)HHLwHU(HHM@AHAH4HDH ytHcy~LA IHH9uLE8 HH9t/HJtJyHz HOHcHO H9HJ uH[]A\A]A^A_f HLwL{LcAGIM9+I$HcSHsDjDkAGIOA9}2D)HcH4zu IAL{ M9DkvIHE8Vf.@LLHHHDEyHH9w1DI9Lr "fDIHIL L9H u@f.Gff.UHSHHHH9vdL@L8@@HDρwB$͠-^HT$HH0t$HHD$HH)H9DH+D1H[]HL)HvH HH[]fHL)H9wL¸HfDL9tHHDHL)HxHHqHL)HPHHIHHMfDHHHzy!H9ufDHHz"H9wDHHfDHHHzH9uf.HHMfDHHHz\H9ufHHzHHHHPpHHhHHJ0HHHppHPhHV01H9@C@HL1EEtlATE1USAHRHI\SH9wKHD9sCHH9sC#uCkH)IH)ըH Hf[]A\f.9vAtlK @tcLH)IAhH+nhI0HnhH)ƒHt{ N L9s@@HЍL HL9HBrfKRHIDC#t*H0H9wF@H)FfDK f.CݨHHGHx`S у``ttt&tHEI9HTAVIAUATUSBLH@IHI;@I@sZAVAVHH9IIr$BfLCI@H9CHCv.AFAFI9@s HLLHu[]A\A]1A^[]A\A]A^fATE1UHSHHH9t []DA\Ff9GuHv H uA{ eu{ hu { t@HE H9C uHE(H9C(uHE0H9C0uHE8H9C8uHu@H{@>t{HCHE1HHEHHH@pH9Bp\EP9CPPCS<2DHuUH{UE1sA&E1HH9w#rHVH9WHNH9OF@f.tKt6t!H4^[1HHtIH@`HHt)H@0HHt H@HHH@@HH@(HH@XHt;t&t4^"[fHHH@h@HHH@8@HHH@P@USHHH~@Ho(t9fF,u1IHVpHt H `tI@I;@tAH@HpHHu1H[]1LHtHHHPpHt H `S,ffS,HH@;Ht!HPJ@HH[]Ðu<DžDDžH螫HPHtF@f.HPH4H蔫HPK(?4^YHP@AWAVAUATUHSHHHz@Ln(HD$htfB,tHĘ[]A\A]A^A_Hzp `tHT$hHII#t HC@H9tTHD$H$5^HL19WH|$ADžTDmH|$h:mH<$1mo@IFHLHx`D$$tH|$hILc@H|$pL9LD$,D$(H)HHl$H$LL|$l$,D|$(JHGHD$pHCP@H|$pLAFAH)H9wMHI9H|$ptbLH)Hv1HGHD$pHCP@It3H|$pLH)HwIH$Ld$pHD$H$D|$(l$,EIH@Hl$H$L|$HHx@өHHD$YEH$2INLd$hHxLd$pHHD$XHC@HdHt$HRHHHtI` Ll$Hl$@MLd$0D$HHH\$MH|$0LD$8HHHD$pQ@H|$pHT$hAHHD$HH)LH;H@LD$8IMN<'I+MLH)ЉEFHEHHȅM LH)HHGHt$8HD$pIFP@Ht$8M#D$HHHHL H$L$0JHD$pHkH3I9HD$8AHpHt$pPCv,"HHt$HkH Ht$HLc HPLinH|$p1nL@LH+L$8LD$pU  ʈU IUIMH9sELH+t$hH;2v8HzHH92sHHzH9HrIUxe {v&HD$pHPI9vW;T$$uNxuHHHD$pHS H|$pLt*H|$pHHPHT$pJHI9wLl$H\$uH$N)D$HHHHHH9_ HCH9HuQ HCH9Ht HÈH9rH9tHCHHEHKHE#Q# ЈE#Q# ЈE#IUIMH9vCHt$pH+t$hH;2v4HzFHBH90sHHxH9HrIUHD$@*tI}taH9HD$pH+D$hH9HT$XHt$E1H|$@LHt&L9HHHUHHD$pHD$8CRƒ``<+ < <LH+D$8LcOLD$xI9qL\$8IMI}H9L\$ps8LL)H+t$hH91^HA@H@H9pBH9HrIELI~1L)H#{ zHD$x{QbIUIuH|$pH9v1HH+L$hH9 HBH@H9HH9HrIEHH+D$8E"{ zt LH)HD$xHD$xLH)H9xHIMHD$PHD$0JT IEHT$pH9v*H+T$hH;v HHH9P\H9HrIECRƒ``<<D$0t<D$0xHcD$0Ht$PE1H$HD$xHI9vHI9H$wH}Et E#nHL)EI9t E#tCSECRp<t E#A|$H茢HHE(D HD$PE1H$&f.T$xH$LH$I98uHH+D$8HU(AD1T$0H$LAH$HIH$|$(HirHH$M#CRHT$hE CQE!HD$0NHD$pHHD$0IHD$H)H@@H9'HHt$HH+D$0Hk0HHlINLl$H\$L|$p}IMH91IuT$$7HD$x1E1E1>MH\$Ll$I*MH\$Ll$IWt$$t$0D$0{@@H9HcHs(r HHHH H9HK(u{I9HBHD$pHC0IEIMH9vCHT$pH+T$hH9s4HxHH9sHHxH9HrIEC CQCRCPM+]IMD[@IuIEL;uHHH9rIED$0,HT$xH|$pLW2A~AHH)HH!LH)HD$xH9HHD$pJM AvHcL$$$HS8H|$pLLc OHT$hHL$pIuH)HIEIEH9H9HxtMHl$@H\$Ll$I#HGHD$pIFP@HLL$hH|$pHS@IHH)HwHD$pL)H9kIOH9sHxUHIGIGH9rHD$HD$L$,9t 4^HD$(9D$Ht 4^HHHL$HC,f%f fC,E<H$H$HAMH\$Ll$M_Hl$@H\$KCRmIFHT$LHt$@Hxh=CRpu$M#CQp'CTD$0D$HquCPpDHD9s~AJ Ht=HHHLRpLHBhIB0MPpHB@IPhIR0H9tXHHHw@uHwHH@HPDHJHHL\$0t5HHtAS AK#@AS HHHI tHPHJ LXHM]AHRI0HIDI9vMIHl$ I}=TAEDd$E1IEAH@HML1L9$fDU#ugMu @@D0!;EEDEۃt%E tH0L9rIW@IG@H9IWH4In(I^IHHH DH9VE1DH H9{wD;cuH;LLHtHA@IAE#ƒ AE#AuDu `@`t@t@tZ@uDT$AACACDH[HHT DBEL9sЉ9rھ4^HL$7HL$H)HB@H[]f9vHD[HTHuH[HHHPB x(tBTHH9tHD[HHHPHtX@tRDGDrH9rCD Et;H9Hb@EDI9D9vfDH[HD,HTHB#H)t{B ttHHf|(tWHH9H[HHD@  HD[HDTHH9H1[HxAWAVAUATIUHSHH(HzHHHt$LuHB@HBHC,f%f=t54^5C)uAF)tH([]A\A]A^A_fHKhHspLLCHH1tHELPHHKHIHvJAfHKHIL9v3IHEK<<Hu+AL$AD$H<$HH)HGpH@0HGhHlHHAD$#t%H<$HAL$HGpH+p0HH+GhH)HHt$H|$ D0HHt$0Htm|$PH|$ HDЋFH @HF t$8Ht$H,1HUD]Ht$0HEFHV HNH @H$HppH@hHF0At$HHDAD$!ƒpbAE WAD$#ID$(HAL$ E1ʃ``t2ʃtAtAAT$#At$AD$ t֍|H|$8AH\$@Lt$ LEUfDC#t#H<$HT$8HOpHWhHQ0HK(B HH)DHHLHC(AD9 K EDB,LHl$HHtS puSH+D$8HDn|$P҉|$8A[D$8E1KD$PAljD$ADIH\$@I0I9[fDAT$AL$H)H+L$`HDAAD$GAAD$'L9} zLhMCfDD$Lu AEI'f.Al$"E1`Hl$`t0ƒcAtAt E1fDH|$ DHPHLAT$!pAE t.H<$HAL$"HWpH+r0HH+WhH)AL$H)HH|$ DHH}\4^'4^D\$8'D\$8 ( HI9:HBxfHxrI9whIDIIDl$PkE1cD$8AD$8ADt$PpbHD$H@ /5HD$HHHHH|$0HQ4^HT$@5&HT$@HyAl$8LHl$H}H)Hp@E,AAT$AL$H)Ht86^1HT$@$HT$@HD$hHHt xOv%g4^HT$@%HD$hHT$@HHH(HihHh0HApHh0Ru랾X4^HT$@F%HD$HT$@HHfHHW(H8t G<tHfD@EtHP1HHLHpfHHHppL9upHHhHH@D9uH@pHHt5xt[xuJHH HIhHHHHuX1Lο6^"1GD1p6^"1Hú`4^ 4^9$fAWAVAUATIUSH8FLv(I8H<IIXuA@A;PLWuE1HHZt[LHH1IWAILLLxHT$ H$HAxCIXtAPA9@CCIGHsH|$ PP{IGAPHsPPAPIXH8APND$D$E1MGBHL$Ht HT$APPIXHL$MHT$HLHupHv0)H1HAxIOHtQPEt,AUIXHRH4HVHJ9CT$T$AE;PsdDHupML$RIXHv0J J)H1HAx HH9DT$T$@T$Dd$D$[E:AHMhHupHLE@L-H߅DD5IX5H8D[]A\A]A^A_@AH}@MHD$ HP@HH9uIGD$ HxHHLЈD$!HUpHt$$IGHz@HHPPHMhHupHT$ LE@LnAXfDCC;cHH9DL$L$<HfDE1 fD6^1l7^1TDd$AgfDHX4D 4^H@4^< 4^@Hxf.I@pHp0IphHB0HT$H)L)HHfAWA8AVIHAUATIUHSHH@@@E1AADHt HAt 1HfWAtL{M9v1H[]A\A]A^A_DIHP@HHEtL,M9rHHI9rILPXfE4DLcM9IHPXƒfc$07^fH~A7@@1HAfO@AHD1fE4f86LLL)4I\FfDH 7HI9#f f=ILP@E0HE fDHI9f=f=!ILP@HEDHI9sgI\$DHHI9sI\$}DLpILPXIM9sILP@IM9sLe(ILP@HEILP@HEfAWAVAUATUHSHHxH9VwH;Vr1Hx[]A\A]A^A_F tH~@IIH}HH}8Ht)Hu@1H;rH;\rSHHHH9w1HUHHufDHHvH;ZrH;ZsHBIYHUIHU@HDAHG(H3HE(L`M9f0HDILL$HLD$H $H@P@H $L,IHyM)H@P@HgfffffffHD$(LHI?I>HL)HHU8H HHE@H}8LD$LL$H $HQI;V0HT$ I1DLm@Ld$ HD$ IHLL$HLD$HT$IH $LH@P@IEII|$H $HM@H@IP@HT$HD$(LD$LL$HH;U8IEID$I;F0uHU8HU0HIN H9r?fftaft[ftUHT$8HIVIN H9IHt$0LL$L$HxU]D$dL$LL$fuI> LL$L$CH*HUHLL$L$HHT$XHEHHPHT$@HPHT$HHPXH?>]LL$L$pHL`HL$LL$MuL`@INI>1HLL$L$7HIF(ILL$L$Mf0\1@f.AWIAVAUMATMUHSHXHHj0H0H$IIHH{HsHtH;nr H;n8H6HuHS8HK H9rQHSHK H9HS8v?HHt$Hxt*f|$DHT$t5HuHS8HT$HK H9HS8wf1HX[]A\A]A^A_H;P{HtHSHL$ H|$(HHCHT$8HHHxHPT$@P HT$0HP(HT$HtHs8Ht$H;s r?H@0H9YH9PL$MLHHHN@ILCL9tHp0fDL$MLHHHX[]A\A]A^A_HI@HT$菸HT$HHH0]LHL@HMuL@@1LHLLD$迟HHCLD$HC8L;LsILC fDH?Ho8@HH9AUIATU1SHLgDIHtH{_*H[HuHHyuHL[]A\A]:*f.HHvH-HfAWAVAUATIULSHHI8L.tXH۸tI H9sH[]A\A]A^A_LH޿7^1H1[]A\A]A^A_LLL$H$IdHIH$LL$AFHMg@<t IGHHLELLL$H$5L9H$LL$LM!HteLL$H$WfHIH$LL$HHLHLL $ĝL $HIALe1HLL7^DMl$Mt)LLLL$H$RHIH$LL$I4$1x7^-C1^L4(1OM1HLLL $VL $.1#HATAIUSHHDODAA9t5HG(DAHHL hH D@DKH[]A\AAH(DD$ L$H4@HdHtHC(DKDD$ L$f.1ff.AWAVAAUIATI(UHSHL0H?DD$ DL$軰HHDL$DD$ HL`MDp$D@DHD$PC D$XC%t A}HCMtIOHqL9IA%tI(cHHU0L HXHPEHE0H]8H[]A\A]A^A_{%~H{H9rutcHE8H;xMHHu1H;x fDHHVHpHHH9wuQ$8S$w@fDA$8C$vH}8H I_H[]A\A]A^A_fL'H}Hp;HHCtLH&fH1[]A\A]A^A_D8q$A%;T$XH;M8HHI_P$8S$HHM;'HE8HH^*HL[]A\A]fu4 (Ht@HfHH[]A\A]@108^L R(HuH1[]A\A]HO H#H,H}/t LoMH$HI$I|C`I1MnHHW>^L)LSf.HH[]A\A]%fD 'HHHHfPI|$Luf.U(HSH 1HHtI HSHt HH[]H踯1@SHHHt#HXHt6H@H[H߾ HT$WHHHT$uH1[HHHPXH@f.HHHP@H@f.HHH@(@HH9rHwIHOHVLBL9Ar7w-R$8Q$r,@wHF 1H9G CfDHFH9Gr.w/HNH9Orw#F19GC@f.H@H9wwH;wr H?Hu1Ðf.AWAVAUATUSH(tH|$Ht$t5Hx~@HHpHHq0uH([]A\A]A^A_HT$Ld$E1HHjHX0M$MtlIGpHt I9tAG) tKI0uDM/HL#t]LAG(tL9d$ttAfMMuI9tIzAIcH\HIHD$E1HD$DtLt$Lx@MMIGpHtI9t AG) I0|I/HH"t]HAG(tL9t$tt>IoHHuIo@AGx Mo0LIM<$ID$IfDMMSHD$HhI9tI-HD$ǀtH9l$HHD$HLuRfDC) H3I<$!uID$pHCpID$hHChID$0HC0H[Md$HMuAOxHHHD$HDHH!HTIG0HT$fDp8^1 1NDUHSHHHv0[HtH[]Hu8Ht H7HuHA]AHtf.H0LLtH@Hu1fDAVHAUATIUStsHZHt_Ln0A1It$8Ht H t*]HLtH[Ht"H+LHl uH[]A\A]A^@[]A\A]1A^[]A\A]A^H9t[SHHHLFMu)HVHNH[@H;Ht:HHtBL@L9uHHH[f.f.HPH[ÐH?HL$H$蚥Ht%H$HL$HPHHHHHH[1_fATAIUHSHA9tHQL$ȸ[]A\fDqH}HXHt HE 1ff.HHw H HHGxtJ@HH9r[fD@@@A^p8^fDHxDIL9s 1H@@t@te@t@tiA^p8^5DH@0HHH@(HHH@XHHH@@HHH@HHHH@`HHAWAVIAUATIUHSLH(M9Liuw@7 JMȹBDfvu @HEH&@a18^+AHH([]A\A]A^A_tst>w~HC1I9HUfOtLw*Lc1M9HEH(L[]A\A]A^A_DLc1M9rI}HLc1M9rI}HDM1HT$HL^HED$H  ?+LLL$סHILL$HT$1HLMq^T$A$LL$HHI9IT$Le tG!!#9^1w1HfD'A$HS1I9HEA$HfDtruLLL$̠HILL$~LsM9`ID$A$LDA$PA$I|$LHxHEA$HUA$M$HI9HCE1I9IT$IIMMLHI$HD$MA?L}HfDA$I$M$HI9LHCE1I9H1T$MN`IVMFXLHjD$tM~XA?r@E1fHT$M1HLLL$[INjD$LL$HA!3ILLDH@LLL$螞HXLL$HSI9H@LHEHxfDI}HDLLL$6HILL$LsM9jI}HLL$A$LL$LEI9I}HLL$1HCE1I9!I}HA$AHCE1I9_I}HHL$A$I|$AHL$3HCE1I9sHHHL$^A$I|$AHL$GL9:HC@HxL9u)1$I}HHL$#A$II|$HL$HHHL$A$II|$HL$I}HA$II|$-[РHt1HHD$ HT$IH Mt[L*@tBMHT$MH޹LBWIƋD$LL$H)H$L蜘D$E1HAWAVAUATUSHHHHoHt$@H|$HL$0LD$8HpH9Ht$ sKHt$ HT$PI1HVHËD$PH6189^1D0EtIE1fHT$P1LIHAGVD$PHT$P1IHIL+VD$PIE8uHT$P1ILH VHHD$(D$PM<HL)H9cH|$(HD$H=Dt$I|$HD$pHD$xHDŽ$Hl$ E1HT$P1HILUT$PHHw$@^HD$THD$HD$pHD$HT$P1HILGUIŋD$PHL$H|$`M1IDHHI0IMHwHG*?AD:d$CH|$Ht)D$L$|T$xHt$pH|$0HD$8ЅHD$HHD$HH9D$(HD$@L8HD$THD$HD$XHD$ HD$|HD$HD$XHD$HD$xHD$HD$XHD$H$HD$HD$XHD$@Hƿ9^1aw1HĘ[]A\A]A^A_AD:d$HD$hHL$AD:d$HD$hH|$HHt$(1X9^1L|$ IfAWIAVAUIATUSHHHLHhhHIHhpHCHD$IufMH6%LH9H{LH+IH{H@IL I@ILL tzIuH|$K K&LtCMrHHPLHpHL@hH11Hưu4H1[]A\A]A^A_H[]A\A]A^A_HHhh@AWIAVIAUATIUSH8HLHoHXxHIrEHIGHD$MNL9r,A>w&A$@^A@LH9p1H8[]A\A]A^A_A@LH9rILHLL$ELL$H|$,1HD$HHO4ILQDD$,HT$H M@AH6%LH9[ILHLL$ALL$HIHD$DO4LEHMWfDHT$,LI1HLL$^PDD$,LL$HT$,L1HHD$O4IL3PDD$,J (MHT$H|$L%hILHLL$LELL$IO4.HHPLL@xHH11H&.IHXx@AT1IԺUHS Ht HSL`HHC[]A\[]1A\fAWAVAUATUHSHHFHvH|$HHt$Hu Ht$HD$@HL$H9HuHH~HpH9szHH9T$HD$HUH|$t8LmD$ HD$MdL9d$rH~HEMuM9HD$8HD$HE1HĨ[]A\A]A^A_ÐH8ƃHt$ HUHMHD$HB H9D$s"HEeHUHD$HHHrHyHUHD$HB fDHXLHD$`1 |$`AD$0u'IEE0I9rE}MuM9AED$0|$ |$ IFE1I9D$ |$`I4Ht$(tHVI96HT$(t$0Ht$(AHDHEƃ|$0HD$(;D$0tt HH$L$HDŽ$HHD$XHHHLhM/H$HD$H\$(HT$1H|$8MHtLD$HƉI؅Vy)Љ)I\Ht;3u .fD; t$H[Hu@;^1H|$8LD$ܒHILD$mHD$8Mo8MgpIIGD$`AD$0AD$ AHD$HK IHD$@IGX!IGHD$E1D$ E1Hl$8HD$0[fGu4$<3=!(AD;k sDH$MHHKHQqL$@HI$^%UfuAD;k H$AG@rHD$T$ Hl$8LLEMHMGhHLxIHD$LHEL@{H$HD$ IDAGPH$IG`AH$LHD$(Ht$0LD$(Hl$831$L$D$ zf$H$t<t7=!t0t+:^1LD$(LD$(1IoH2f.Ht:HLD$(H9LD$(tHtǀx.ux/HHHDfDH$IG0LD$(1_|$ E{p8^;H|$t@HED$ LhLmt$`9^1HUHEHrHxff.AWIAVAUATUSHDoDEu$Hxt DDOPEuAGD1H[]A\A]A^A_HGHO`HHD$(HHHD$XHHMohMwpIGxM9sIGHD$([:HHD$vHIGD$h DŽ$MHD$pH|$(H$1LMLL$ IoX4CD$LL$ HAO,@ $M郼$?M9wH|$}HD$XH6H|$(HPLH@L@8HPH;HC@HHL$XHY8HHIw`HD$(HH$HD$hHFH9s`H$HA: H$1L4HFI9<^D1IGx H|$hH$HVH$H 1H9 HzH$H)HH9HmHο;^1/zH|$h`D$0fH$f|$0AHPH$DJT"I9UHpHPI9H$ @H$/ HFI9 LD$HHFH$I9rL$Hf|$0H$HFI9I NH$Ɉ$6 HPH$HPI9rHDYEEkH$HPI9PHL$L$xH$HPI9@ȈD$ HFL$8H$HI9v H|$(]|$8HD$pvSL$8H\$pH$HH| HfDHr1I9r H$HH9HSH$uH|$(@HHHD$(f|$0Lc Hk HIGHCHC(C HC HCCHC0HC8H$I9:HBHxL9uMI)D$EIL$M9A<$IT$fDHzL9uLL)$IL$M9D$8DŽ$)$$Dl$`H\$8L$H$HD$8HD$@D@E[E1H$E1LHMD$0D$PE1IΐI9HpI9b:T$ H$*T$ |$ʉt$$i$DD$HDHIƉt$L$`ˋD$0DL$PAHL$@H|$8AD$L$DH$L9D$0IGM9MBI9+MH|$@L;$H\$8L$I`u HD$XHCD$ H1 $0A^HH1I9YHFIE1H$H|$(H$M1IWHxHRR(HL$ HA(fIx$HL$ HAbH$HQIHuHHH;ruHD$ Hx u HB HL$ HA HD$ HxHD$ xu BHL$ AHD$ Hx0HB0HL$ HA0H$HD$ @8Hƿp;^14zu'DŽ$E1H|$hHiaHHzI9wL)E1ɉ$Xƿh<^1 $HL$ƒHHtHUM p8^ ~H|$(@LL$0sHHHD$ CLL$0A8AIHLIH)HAHHL$8HT$0Hu8H|$pskHH׽@=^1+d$hH|$Hct$hLl$ H#HHD$LL$ :HzHHT$xHL$ HT$xHAHk(H;HD$ oHI_Ls0HE1KIHELH(HEIFLeHEIHEIFHD$(D9d$HD$(vIMu^p8^uHtgp8^_Ht$ I(LDCIEAHpvzLH9p(Hx8s H9wv$Hp(9HwvALP(Mk(MMIyH(D9uLk0SH|$CL)Mщ$H\$8L$Dl$0>A^p8^IWHxHRR@IWHxHRRX@AWAVAUIATUHSHhHGdT$4HL$(=^LD$LL$HD$ LfHD$HRF= H]pLMXHL)I9MO4!H|$ HT$D1LI)HƉD\$Dt}Vy)‰)HHE8L$Mt#A;4$u\@A; $NMd$Mu@;^11Hh[]A\A]A^A_DHD$HH\$(HHh[]A\A]A^A_HMLHHP tI9s*O4!IM9wXw@I_pL9v7L=^1Hh1[]A\A]A^A_ÐIoHt L9uXw L9upHmHuI/HtL9uXw L9upHmHuA} L>^1q1AD$ O,Dt$4E1ADt$ ML$H:u*HjH}xt$X赼HL$HDAE9|$ qDH|$PMHID$IHpT$PHPHI9D$P;nn= GuLL$LD$HL$HT$ Ht$PL,$Ha1fH|$HLD$Ttt=!t.fDHD$XHD$HE@HHwYHD$@D$Ttt=!t fHD$XHD$HHD$fDHD$XAEfHHLH-HHLLLHp@^lMLMML=^HL8AEMLD@= @L@HusIH5HHHHHH;YrH;YsIDLD$HH$HH|$HILD$H'Ht$L$LL0f.HW8II9EYHw@HOHHt"@LRL9IGLRHL9IBHuH?IqI II0HuMH4$HǺ ILD$HD$H<$HD$H|$LD$HpHH|8w~fDHr0H H9gHJ0H9vHM9LHHH;ZLL(E11H2HH8uJff.HHt0HPH9rHHH9sH)HtL9sHIHHuIM9vIQI I;YsH\(H}NIH`;H9wHuH;^tH}HE TLM1KtH;^p9~fHcIMqHhIHtIHtMoMMMID$xI$I$Ht I;tHx(tID$xHx fI$YHIDŽ$tMH{7H{HC&HCHHuHtH}HEHmHuM$$MIIHtHx(IHx I蘸I}XI}HI}hI}8I}(I}M9tMH[]A\A]A^A_IhZIxNAuIHtH[]A\A]A^A_YI YfAWIAVMAUIATIUHSH(IDL$HHXH9HLHߺv@|@1HHXL+L{A$@A'@HpH`H 蜶HHA$@A'@HpH`H gHHPMIL9D$LLHHID$LctHH%ELLL菲HMHD$IV@!fDIF@HHT$H9HT$LLL:HIuH|$x HHC LLHD$臱HHu)Jf.HLLHH&Lu@MtHS HT$LHLCHtYLt$f.+1HfOHL[V1H([]A\A]A^A_H HHhtHH҉pH|*DHJhHN0HHRHHH9HrpHuHJ0HԐDD;pHLhHE1,HHhHN0I9 H@HtuHA9vlHppHuHH0DN1H{|f1HfwrfDHdfDH{DD$E|HJgD|$-[H^HI1L`LIMAL$DLLLͮHILY#M$ǃL{ZfDvYHHDID$IF@LL$LC 1LLHD$HHp0轡]DHC HCHD$HC(?-[H[HI$1uLHH0Ht/A$H1HQHHH)Lt(1rn^0n^xn^0n^wn^0n^wff.HSHt!H{׼H{HHu[@@f.@f.@f.@f.@f.@f.@f.FHHBHVhF) HHVpHPuHt fHFhHvpF;sHHBHH@HVhHFpAWIAVAUATUSHHDCt6HT$HL|$<HD$H[]A\A]A^A_DF(tH$E1IL!Ht$HLd$0HHHH$PH$`H$hHHǃH$Ht$H$(HD$`LMH$ LHDŽ$ IHH~@HDŽ$0IHDŽ$@IHDŽ$PIHDŽ$`IHD$hpIHDŽ$ID$8H|$HHt$P|$ H褎HHD$(HT$ IHHHD$x8f.AHrI AHHˀ(t:ANIt_HM9wIHL˿HDJ8@ANIV?^tfH ?^uLrHD$xLT$xMIH$L$L$H$L)L$L9t9h@o^L$L$LL$xlLL$xL$L$H$LL$L$LL$x9HIOLxLL$xL$L$MtlHl$xH$LH$MLM?MtI9_uI9ouIHLuIIMHl$xL$H$ LL$L$LL$x! HHt$@H+$MLL$x@L$HHhLHHHH$ LT$&HHH}tC$bAuH HEIHH9AwDKlmH|$8HH $}I)l$@HD$8H $u AL$( MtZHD$HMFHHM11HwI4HHL9tIHAGCI>HEHPPAueM9t@o^fHEHPPHD$H8HT$藴HsHHT$IEpLMHsHP@HHHHzAQhH I IL9|$QL)IM9E@t@o^~eME@IMhIupH(HL[]A\A]A^A_).HJhHrpLB@ِf.ATUSHV0HHzp `t;HH>LbhdzHS0IHJpL;a@wVHHrhH1t 1[]A\fDH3H蕳tH;H{[]A\fD@o^dHS0HJpHHt@HGHH9s?H~Ht.HHHHHH9DtHH+@HH)HHG@DATIUSHӋ6H;HR舽A4$H;HHSu[HH]A\&|fDUSHHHHHHhHH1H9stHH*Y f.sZH,H9H4}HHHH1H)HfLheHff.AVAUIATIUSH~It$IAVMAA}>Au I|$0eAt$u`IL[]LA\A]A^dfDI\$8Hu @HH{HtdHkHdHuAt$tL%HHtIEA|$PtAIt#AItIIAHDHxHqLIT$HL/@A Et$ @HL@t6tH9r HH!H;hwHBLf1f.UHSHHHHvHQKxHH1H[]D HSff.UHSHHHvHdKH{+cHHHH[]c@f.AW1AAVAUE1ATUSHHxHH$HHHfD$Ƅ$Ƅ$ tLH}AH}PU IM ILEAwB$@y^@I@HmHuH0I$D$(D$(H L$L$H$LH߉D$H$HD$H$H$D$D$1$$r^$貯D$(H(L$L$H$LH߃D$lD$H$HD$H$H$`D$D$1$$Ps^$'HHufDLHuH LuyIHt H;EBMuHDL$(H$EHL$83H$HH*f(HYbH*f.vHDŽ$HL$8H$H$HHHL$@H*HYH*f.$Ht$@DI Iw>H@MlƒMloMl\@HIL@HHMH$HL$@$H1H@HHu4HD$8DŽ$DŽ$DŽ$ T$@$$ $ $$Aʼn$IE4D$HHD$`cHHD$02HL$0H$HH$HAH$HAH$HAH$HA H$HA($ A0HA4HD$XtHHt HQHGHxHtHD$0HHP *H$ H$ HD$HHD$PI$8 1s^M$0T$(A$@E1I$8t$8DHT$H$t$$HT$XLHL|$XL|$8H$ I$8 1t^fT$(A$@E1I$8t$@DHT$H$t$$LLHc8L$L|$@E1M L$MM D$lDD$PLHL$HLH߉$ L$H|$HK'E1IHD$(\LMt3f.IwLHIIiIGMAD$MuL9HD$(HL$0L$苄$HD4I9ILMHl$8fDHA1AHAPA IwLA@H, H5`A4$ IA D$Ÿy^fEw AE1H fIG0AHH9uIA? MA$IMFfDHl$8$HL$0HD4I9hH٣HH$H$董H$c H|$(H$L$pIHH$H${_HT$`H$HHt$0aHI Lt$`H$H$K<4^H$H$Al$0}ZHD$|D$LE1E1HD$H11H$LHD$HH HHHH H HHHLHHLHHHHHHHHHHHxHxHH@HH0H0HHHHH H H(H(H0H0HHHHH8H H8@@HHHHH(H(H0H0HH HPHHHHHHHHHHHHHHHHPH@H@HHHHH8H8HXHXH`H`HhHhHpHpCxExPPHHHH @[ @h 1Ht t  f HtHLHHHHHHHHHHHHHHHHHH H H(H(H0H0H8H8H@H@HHHHHPHPHHHHHHHHHHHHHHHHHHǃeHxALxHxHHHǃxHǃHǃHǃHǃHǃ HǃxHǃHǃHǃHǃHǃHǃHǃ Hǃ(Hǃ0Hǃ8Hǃ(Hǃ0HǃHǃ@HǃHHǃ8HǃHǃǃHǃHǃHǃu@@1Ht Ht 1HfwtAHǃHHǃPL纐D@L@T1Ht Ht 1HfGtL$0HǃHǃHǃHǃLH޸8HHH@@1Ht t  f Ht@HL8@@1Ht t  f HtDžH}1Hx[]A\A]A^A_@IW8AG@I IO0AT$AD$AL$fMMfDAG0AW4I A G8AD$fIG0IID$뱐Mo8MtAE(A$LHIAD$Iu謘MmMunfDA Mo8~MMDIEIU A$AT$AD$IuHt LHJMmI MuHȖHVLHHC@HDŽ$I$0Hff9HD$PH|$PTHHD$H%I$0HL|$HL$0L$@H$0IIGI$0E11A JLLZ4t=sH$R1s^M$0HD$(DL$P1LD$HD$D$8D$H$$j@MIE IUA$HAT$AD$ H AL$IuHt LH辖MmIMu|H$OH|$0O H1(t^脝D$lDL$P1LD$HD$D$@D$H$$'E1HDŽ$1DD$(DD$PLHL$HLH߉$ x"L$T$|x^1H1cH|$0NH|$HNGDLMtI$0_ID$(_I$ 6I$(I6LHD$PzHуHH H*XH|$@HHH H*XHփHH H*XHHHH H*XNLL$0L$If.H$0IIGI$ 1LL.t=tH$0IIGI$(1LL.t111LRMt$|H6HHHHfW7HHW,HHfWHHWƃHwvE1HfDGlHdƃH1HfOHEHHu7HHfWHHW$0H}HE7z^q^Pt^9Nz^;q^t^ Nz^q^x^Nt1u@H bHf.H3@HHhHJHfDAWIAVAUATUSH(H9HHHIHD$HHHD$udfMtVLALkH#CL9vI{ AsHsI2HL*MuIHu&HtHH9n H^vLHuI9MhIH(1[]A\A]A^A_DL蘏HHD$eI{PHL$OAItAItAHD$HDD$HxHHL$1HL$HSLHfDs AM VH([]A\A]A^A_6H([]A\A]A^A_HHHP1ufHHfATUSHHHELD$DHH9tuAH|$ҁD WSڃHHHH HHH HHH HHH HHH HO HHW0SW8HHH[]A\D.HH[]HA\Df.AVAUATUHSHHH9DH|$HAAtH|$HcHtW1IDDHHt>DH $AI҉i  AQtUHL[]A\A]A^DHI[]A\LA]A^fFHI[]A\LA]A^H9AD9u!H;hsD!H9\$AHD$i D`Hy OH$Hߋpu87D!H;h'HD$ff.AUATUHSHHHH|$bywqywhIH9?HAtgH|$H*bH H|$LH|$HPvCt>HHH[]A\A]1蹢H|$H蜡1IDHHAH $ҁ:QSDa0ڃHHHH HHH HHH HHH HHH Hq SfQ6SfQ4H[]A\A]fDHH[]A\A]fDHH[]A\A]ADADfDAUATUHSHHHH|$AH2Ld$HtLz`HHsLHl$``HtsHsHo tz1IDHuHtGAH$ɁB JH HJ0HKHJ8HKHJ@H[]A\A]DHH[]A\A]fDLHt^!1T!HD@ATIUSHH,taHHt H}tH߾_[]A\f.I$HE0ID$HE8ID$HE@1[]A\H߾ []A\@f.AWAVIAUATUSH(t$H|$9HIB jI̅t H|IuH9E1JAE1ۅuffDE EEHI9vOI4E1Lt$HtH|$4^HKM DL#H([]A\A]A^A_@t$LD$1ҹL(Htr|$HT$Ɂ JIMJ AE t MALz0H([]A\A]A^A_f H([]A\A]A^A_LHD$AHD$FfH|$F]HHHfDH-FHI LKLfDL@Hff.AVIAUAATIUHSHHt&ٛHHtHL覡 LD$HDLHHt9HD$AҁPI9v(L@ Dp(H P$HH[]A\A]A^Dp HH[]A\A]A^@I$H(fD1fAVIAUAATIUHSHHt&HHtHL趠 LD$HDLHHt9HD$AҁPI9v(L@ Dp(H P$HH[]A\A]A^Dp HH[]A\A]A^@I$H'fD1fAUAATIUHSHHt"HHtHH˟ t^LD$LDHHHt(HD$Aҁ"PHpHR(P HH[]A\A]HH&AVHIAUAATIUHStOMHHt=HH tHHʙuEHHD[]A\A]LA^L@LDHHHu[]A\A]A^[H]A\A]A^f.AUAATIUSHwyHAHt藘HtH[]A\A]LD$HDLkHHH9tAHD$ҁ&X PHH[]A\A]ÐH[]A\A]Ðf.ATUHSHH H9H|$HAtH|$HHT$XHHT$tKLD$ DHHt0AHL$ҁ*Y QH []A\f.H H[]A\þ6H []A\f.AWAVAUATUSHH(Ht$XH|$hH|$XHHIWHIVH|$XHYH/A4$H|$XaHD$8HD$XA|$HAHD$XA|$HPD$0HD$XA|$HPH|$XHT$hHD$H7HITA Dl$DD$0t.HD$88t$t$DHHUHIfD$OD$@IAEH|$XHT$pH荣UIuH$LH$HVHHD$PH$LH?HL$PH$yHP H$H|$p=vAH|$XLHH4 IH(L[]A\A]A^A_fDIxH"HuH|$hL试D9wH|$hHUHtHT$hxHR;D$HtDl$DUf.H|$X=HnIKfDAgHD$XIxHH$HDŽ$H$L$H$HDŽ$ pA;D$0z^H|$XHHt$XLHHHt%t$0HL$pHHI@I^IwfAD$D$D=fH|$XH߉lIIHH)ID$@A9 ˆT$OA |$@ u"AA AHD$@LD$8EL<$u^H߉D$1jHͻIH|$XHȓHt$XLHHHIQHT$8t$0HHIDI&L$DHT$8Hߋt$0I|$O|$@ H|$XH$pIHYu H$pILH=LD$8MPv^H1dHǺIHD$XIxHL$DH$HDŽ$H$H$L$HDŽ$:L$DL$O|$O$|$@ H|$XH藥LIH艥I9LHuH|$XHIeLD$8MH$u^H1Ld$kHιIAT$Ht$XLHHH$DŽ$DŽ$t$0H$1HsIH|$XH$HƣH$Ht$XLHH$Ht$XLHH$H$H$aHWIH$LHH2H$H$8n$LD$8M`u^H߉D$(H$HD$ H$HD$$D$H$HD$H$H$1ԃH7IH|$XH+Ht$XLHHH`t$0DHHIL' Hʫ$I}'L'fAVAUATUSHHH|$H ILE(t-HIIHt:H]H[]A\A]A^H߾ CH[]A\A]A^fDH(LHuH|$LBHtjtLH uDL)HHt"LHL1oH& H跪UH襪C;HH1HHATIUHSHxHt)HLHH(HxH[H]A\Ð11Ҿ J J- HHxu[H ]A\AUIATIUS4HHoHL#HH~HHH)uIIHuH1[]A\A]HH)tHLۧHH%0LuH[]A\A]f.AWAVAUIATAUSHXIEIHHT$HPL$HT$HPHT$ HPHT$(HP HT$0HP(HT$8@0D$@^jHHHD$)HI:IIHt$Hǻ4Hl$ jAfHHD%HHxrH)H@HHHlHT$LH!HT$HH)HHT$HDl%Hy$0L(x^c$0L w^11L1sL#HX[]A\A]A^A_L˧Dx^I11L1;sf1@1LIعw^11sLu뉸ff.AUIATIUHSHHhHHD$L9Hx4(HHHEH{4HHHPHSHPHSHPHSHP HS HP(HS(@0I$4C0L;wMKHt$HHhAubHD$I$HH[]A\A]HT$HTcHH&HI$HH[]A\A]1@H+DCx^I111HqH"1pfD HLD$18x^11HI4_q1:AUIATAUSHIm4f.HHD"H~}HH)uIIHufH1[]A\A]HH)tHHDj"H!y^HË1L1p3LH[]A\A]DK!hx^Hɸf.9wH {^H |^DH(H¸{^HHEHfHHHHVH9HqHDf.USHHH/HVH}Hut HE0HCH[]f.SHGHHPHtH?HtHCH@Ht H{HtH[@AVIֺAUMATIUHSH H4$HHD$HD$ HHt}HHt5Mt HAHMt HxAHLpHH []A\A]A^@MuMtL$HHtH(H@.$Hfk 1렐UHSHHHHVH8HpSt H;H H[]USHH(LMI80Jt H([]fDI9X8uAx IXH9I@0}@H8w:HHI:D_wDAII@0L9L9Ax I@0HHtH0H2HtH@HI@01Ax efH?HL$HT$Ht$HŸ!H;I M%HHt$HL$HT$H@IX8A@ IhI0JI@0LLHt$謡Ht$HfDUSHHHHH9Jt H[]fDH9Y8uy LYL9HA0}@H8w:HHI9DWwDAIHA0M9M9Éy HA0HH0tHHHEHHA01y _@HT$H4$ZHŸ!H<蔠H H&HCH4$HY8A HiHJHA0HT$HHH4$XH4$H1[ff.AWIIAVIAUMATIUSHHMHHtrH;JtHH[]A\A]A^A_L9s8@uS H;CwMtHHHK0H I MtHHC0H@I1S @H?LL$!H$*HHD$HD$(oNHH@ [H|$HIHC0L$LL$Ls8HD$0II@HD$8I@HL$8HT$0Ht$(LLL$L\$L$L$L\$LL$t=$uYHl$H{0MLL$H9C HkHJL$I$f.@Hh$jHV]H@FI$EfH?H_7@H6H?H^7H?HH6H?H@USHHH;^7H{^7;H[]ÐHH1H2H91tfDHBH9AfUSHHHc;V^7H{J^7;H[]ÐHH1291tHBH9AÐHHf.AWAVIAUIATIUHSHHAHEAtqHHtoHu M$@tJA$@AULLLHHt;EHtHkLcH[]A\A]A^A_FH덐1HD1ATE1UHSH?1HJt7IL,HHt4HtHj1[]A\@1Mu[]A\@LeH]fD[]A\@H(H?H4$HHD$HD$[H(fDH?8H?HH(H?1H4$HHD$HD$HtHH@H(1ff.UH1SHH(H?H4$HHD$HD$AHt,Ht HHHUHt(HH@HH([]fH(1[]fHH?H4$HT$pJH#H@f.H(H?H4$HT$JHHD$HD$H(H(H?Ht$HT$JHH<$H(fH6H?DHSHtH?H[fDHA$@HAULH1ATIUSHHHt5H8Ht ID$HtHHt HHEHU1[]A\ f.HHt HHEHfHt fD@f.HHHt HHE1H<HtHHtHHDH@1HÐHSHHt HHE1HHtHtHHtHHDH [Ð1ff.SH_HH9r+HH9vHHvHtHHD[Ð1[ff.A$@AULLlff.HHfAUIATILUSHbYAuHD[]A\A]f.HtC8uHE1[]A\DA]DE11ɉHLHuDfDfAyI$uI$hEAtff.;f.H(H$H1HD$HD$<HtHH@H(1H(ÐHt fDf.@USHHtuH_HF@9C|_H[]fHBH.H7HT$H(HHT$HHHBH(HtHufDfSHHHtnH[DAVI AUIATIUHSHHtUHHHtEI$(LsLkH-I$(HHCg1x[]A\A]A^fD1HH~L a[]A\A]A^H8Ht fDATIUH)^HSHubS0uAHkك^Ht6LcHھJLfxnA$Pt;C 1[]A\DHHkfDHs(LtAC Hھ` JLHgC x1fC []A\Df.AWAVIAUIATUSHHH@Ht]HIt0H0LHHtAHH[]A\A]A^A_H@LqHIufMH|$ 辤HItuLHHtAH0LHdx+HLLrALL?)^Lj?\H1kL: HF8T$ 1HMM`^1^t$ H DAVAUATUSHH HrPB ItEHSHsH;HIHsLHJHH []A\A]A^ÐHH;%HuH;=<=tHCLKMH;Ѕ^1ҾH$1]fDH;^11]H;%H []A\A]A^@Lh=AJIHHxHtHsH{HHtSLxMtGH<$H;MHD$HT$11ҹ^ ]AH;1y@Lx߃^MLDIx߃^HHDiH;16LwHH=DAVIAUIATIUHS1HHH$~fILHI%HL|$hLAAʼnD$`H<$LL$`HL$PHT$HHt$@APJD$<AEHt$HHD$Xt>I(HHtH}HUHt-Ht8HHHL)HA끐Hl$PfHuffDHT$<)^AHHD$HD$HHHL)HHD$ fDHHH}LD$LH3HHH~I$HHHIH1HLH1[]A\A]A^A_@J$@ J JHI$H11f0L聃HHH[]A\A]A^A_D1ɺ$@ J JRHItI$HHHA2L@DL$@ J JHHI$@M=HXH`ÐHhHp1Df.AW1AVAUAATUSHHH(PLd$PHD$ LHH\$PtvH0[HHHt AAH(L JwH8HtvH01ҾJSHK1HĘ[]A\A]A^A_Ht$HHHhHHHHT$HHt$ 1t=QH߹(^1MHfc&^FH"HHHHHD$(HL$8HT$0Ht$(@D$OLl$8HD$0HT$@HLHD$EHHZHHH?HH1H)кH9Ld$@Mt HHL$HHLH:HIKH|$tHI HHt$LI$,HL$HALLtHL$HLD$ALL_HI0|$PuHLLwHHLLLH|$HHIHH|HD$E1E1111H$IcHI"I>+1HLHOLo&LGHHH=-fDH|$ @0OJ$@ J JHH0| H~=t'11 ^H+Jt$H~p11HHIXHL$H1HH HI:I.HL$HE1DLHqHL$HLD$@E1DLH^HIH;t1D$@H9HI> %HL+H߉}LD$P^11H19IHLLHL$LH|$HH|$(}XHH.LxMD^11H1E1HMt1fI|HR$I9uL%H|$HLHD$HI|$LD$Ht$H11=ID$HD$@HxBH|$H|Hl$@Ht$H}{lL|$H}L)HD$@LHHPHpzHD$@H(H0H@H@P^11H1GLx߃^MLDH8q(HI}_(HHd(HHt$LxMtP^11H1TGLx߃^MLD1HIx^1!GH{LH߉m{LD$(^LD$T$1H߹^1Ft$H8{H|$(E1F{x,H|$HHIHH)xI>!"LH|$(zL2H߉zLD$^11H1@FIHHwI>!L`^.^HG06^^HGI<&HOHItIH0HC HzH߹^111ELD$@H9I1I9It1HN ItH4 xrHHHLxM^11H1DD$@H9I<%H0H`I=t¹^1H1>H0HtH꾀JMHEHD$HHH|$0H4]H-Ht$HHxHD$0E1HHHD$0H)^HXHt5H`)^HHItHD$0LJL0H0HD$HH|$@H4HhHt$HHxHD$@HHHD$@HHHKHD$HHL$0HL|$@HPHL$H$[HL$H$MLe|1HH~HI11HLfHIu6fHLL=HuHH tH|$0Me1H|$@L H|$Xt%fHD$PHH9l$XwH|$P-MH10^11;Hh1[]A\A]A^A_E1A^^E1A^PE1A^BA^E1SA1^0Ho9A^HA^oAG^E1AɄ^SH6H?1H{H[%DSHHGH?40H{H[@f.ATIUSHӋHCH;40A$HHCH;40[HH]A\AVIAUIATIHUHSHHH}HE1HHIMtFII9uID$@tHH[]A\A]A^1`^L$$Lt$k8IuI8JHID$H믾 L*n1fDUHH4SHHHHt;HHH1H)HIADD uL;4$In^HqHILD$A*ABMM)BD8wHHL;^HHHt/>tLL@u HEI9_HHuHuҾHlLMH;hHT$HLHHLH8DIċI9w:AE!M;hw+L;rIHJHB,LHH uNLH#C8u>LHCAE#M;hw L;HB,HhH9HD`A LcHufHL$D#HH;HHHH|$LCHX#HL$HHEH;8HL$HD,MNfDII ՅHA.@MLH(H[]A\A]A^A_EjDM,IEADD tIIEADD u*LHILD4$IFADD tfIIVADT uMH M)ID$H9(LLH B H HuH@HIH}f.HHIIŸII H\$IHD$H^LLLT$LT$#MLLHHH * HhHIH HH([]A\A]A^A_HD,M1EDLHHt I1LHA,H1vfDATIUHSH?>HHtsu5D#MtIL;hw@HEHBH[]A\DLHHtH]H[]A\H}g[]1A\H}ug1믐UHA8JSHH(H`Ht$HXH<$HHD$Ht @H([]fHHtHH([]DHfȐH8H8Ht`@H9s%HHt,HH8HHtHH8f(^H8HG@Ht?H;s6HWPHt^i^<^^^^fHhHHH|$H$)^HD$Ht$H|MHD$ )^HT$(HL$0LD$8Ht$ tjHD$pHT$@HD$@)^HD$XLL$HHD$PL$D$HL$x HhD1Huf1Muf1ff.H(HD$8D$HD$HD$HD$0H$H(@f.IE11Hp@DH0H01HJH9N v V1ATLgUSH_Hu $DHHkHL>H辽Hu[]A\@SHH[鞽@f.H뛐f.AWMAVAUAATAUHSHHHxץEIuHt`f.H[]A\A]A^A_ÐHHH$GMLxt-I~t=HHL[]A\A]A^A_H$f(HIHHH@H@H@H@ 蛿HIHHxLH:HEM7IG u7ELH4$IL|$<HHD$HLAwϣxCI?能D1LH<$޻Hֻ11HxLHHH2H8_Df.UHSHHH;r t!H~u<uHCHSHHHKH,H[]fDATUHSH;r Ht/H~7<u'EuL#H}蠼IT$HDID$HC[]A\t8Ht3tBtH;BsRHHtH 01H;rHB@HHHTuHHtHfD;sHH1ifH1U^HHEHHÐSHH Hx[Ht#HE11ҹHt@H1D1ff.U`fJ$@ JSH JH辠HHxtwHt0]HHm} tS1H[]fD11Ҿ J JeHHuHx=Hǃx붸HHǃf.Ht+HIйuHt@H1D1@HtkATE11A1UHS5HHtBHDPHt=HKx[]A\D H[<[]1A\@1D11ҿ J JEHHHtS뜐AUATIUSHHx藠Ht$HXHtLhHL9cHktHuH[]A\A]LH8Hͷؐf.HHxH4$HT$fJHOHf.SHHtHx1ҾfJ迠Hǃ[fAV]AUATUHSH@HxH$HD$HD$HD$ HD$(HD$0Hd$膟HHHxHT$hJHD$0/HD$^Hp1Ht$H|$VHIzHHxHT$hJHD$ HD$(ӟHD$I}`hJHp7H|$MHH$H|$E1E11@ODApIP}HtfDHJHRH҉1uApIL9t$ApAwLEH3D$HT$H$H@[]A\A]A^HJHRHuH<$I0AX/KDIH8L9t$\7LgELTH8HDžYL0H$HT$H@[]A\A]A^úH1^1H$HT$H$H@[]A\A]A^fDATUPwSHHH HHHEHH80oJtmHu HtSH81H []A\H 1[]A\HHt HE8DH 1[]A\DH9X8trHu]HtH81HL$HT$Ht$8HHt$HT$HL$tHX8H0oJH'D17LeMt7HtAD$I\$LHs4L蛳H HHL$Ht$7HL$Ht$HHuHH:711fDHIAH1´HHDH黸f.AWAVAUATUSHHH~|AHIE1 I @A?tIHtBH)IHH~4ALHHDLHyA?tH[]A\A]A^A_fHL[]A\A]A^A_1f.~7tDH1^HY7I7H@:7fSHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$H7u H[H$H=6D$D$ 0HD$HD$ HD$kH 6>^`H=6HT$H輷f.HxXt.u91x^6H@6HD_H@f.SH7޿M^[1AVAUAATIUSHLD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$ IHHhH$H{HT$LD$ HD$HD$ D$ 0HD$u$EtnDƎHSH6mN!Et{D裎HSHBmNf^1{MI$H/H[]A\A]A^fMtKL蓎t?L臎@HSHu@HSBmNHmN1 fHS6mNDHH[]A\A]A^H޿Pw3/\@f.HPw/Df.SII11HHH $^HH߾[I2fATUSHHH.tH HH}uJtHH[]A\1Le8I9tHH߾[]A\1fu7E H;`HH4$1H4$LHfDHE0HtH@HHU0HBHRHU0H[]A\HT$H4$b1HHH4$HT$twHX8HuJt HHE0H.f.fDHXHH$4H$HE HXHDM Z Hf.AWAVIAUAATIUSHHH-H;PwJtH[]A\A]A^A_l0@Hk8H9uHsH9hrSt H H'HLxEuFHEAPu7HCHpH9hHssH0I$H^DMtHEAPAtLHSHBHCH H[]A\A]A^A_DHDHtMHX8Ht#f.s(H{LՅuH[Hu1H []A\A]A^{HD$LH\$A}HPPLlt3H|$TsLHՅ6HL9u1@AWIAVIAUIATUHSHHH|$H=H;JLc8I9uPLd$LunC HC00Mt HS0RAHC0k H[]A\A]A^A_fDI9wHHH|$tHS0HtlMHBt R(AHS0HRHS0H[]A\A]A^A_fHs$H1[]A\A]A^A_fHS$H1[]A\A]A^A_fHX$IEL#$1'@HIH|$HHI#HHH|$Hh81HKLHPHD$A|$Hu@H|$L;HHJtXHT$u9^` ^x^H#H[#1_@H@8HC0I]HD$uHA|$PLcC Lc0Ѿ H #1H"1UHSHHx;tH[]HHHtHHH[]vfDfAWMEAVIAUIATIUHSH8HH|$HoH;pJt&HI"H8[]A\A]A^A_f.L{8I9tH"H8[]A\A]A^A_tI9L|$LHsHtsHS(EMLD\$LT$3HHLT$D\$H|$D\$LT$|=LT$D\$H{(H|$cHCsHC0HMtH@HIHC0Mt H@IHC0HxHh H@HC0AMH{JHkHDL$LD$qHIH|$H跸HI HHLT$D\$H|$Hh8HSD\$LT$HL$(LHPHD$AHLT$D\$Ho HB DHHH|$;H ݚ^ ^}DHC ?H{D\$LT$HC00CnMLT$D\$tIMt HS0JI 8HS0jHC0 k mH|$LD\$LT$x7HHpJLT$D\$tMHT$u^m ^x^蛝H@8HC0I$ H HD$uHD\$LT$APL|$(LT$D\$C L{0HI$HCHbHCYHI$L7+MLT$D\$tIMt HS0JI HS0jJ H H ̀8tsHC0I]HC0HpD\$,D\$HC0HPHSrH|$D\$D\$u$HHX8HuBf.H[Ht/H{HˋuMtcS(AUH([]A\A]A^A_@L  H([]A\A]A^A_L H([]A\A]A^A_1HD${HPtLLt @HL9t3H|$HHuMtSAUHATIUSH H|$HHH|$HHHH|$HL$HT$HHPHD${HtH|$ H []A\C{AD$ I$HD$HPH|$AD$H"Ht;HX0AT$1tы uAL$ AT$H []A\@념H\$fAUAATUHSHH8HT$ H|$H|$HHHH|$HϡHItyH|$HL$HT$LHPH|$H!HtEH@0T$(A9AFՅtf.HHHHKu1H8[]A\A]LHD$뵸AWAVAUATIUSHHH0H|$@F'H|$@HLV($D1$$D$AAHD$HHD$HD$HD$HL$D$HHH@HsH|$(Ld$(zH|$(0.IvH|$@lN1)D;l$k w2$Ő^fH|$@L^1)kfH[HsD$9D$HD$H|$0$H|$@z*H|$@H&H8DH|$@L^1<)kH|$@L^1)kd@HsH|$(HT$0=l$8HIHsH|$(HH|$@1^1(T$8u\fDH|$@H¾lN1(LD$8PH9wD$<tH|$@1MNX(D$8HH9I4H|$(YHIuL詂H|$@%1Hĸ[]A\A]A^A_SH|$@^1'k<@A>H|$@LlN1'kfH|$@^1'kH|$@L^1'kH|$@`^1o'kH|$@V^1O'kHsL4RL|H|$@b$DEʉL$ArDH|$@^1A&@D$<u9H|$@wM1&Lk1HbH|$@^1g&봾 LH|$@#$L1E1H|$(0H|$@wM1&jDf.AVIAUIATUHSHHtRHʁHIĺlNHL1RH*I9sL[]A\A]A^fLܐHUHSHHoH9HsHHxH[]H1[]HE1A]$HfHH7HFHHt HpDHwÐf.HGHwHHHFtH0@H7ff.HHVHtHPHVHtHH@HWf1HtD1H?fDHVHt/HHt/HPHVHHHHFHfDH>uHWf.HwxunLHRDHT$AH0I ft$H;pAAfT$DL$DD$rQH(^@HPT$D@ PLHRDLD$HT$I H0H;psHhH0DHwxuvH2LBHRAIHt$AHH0HT$LD$LfEL;pDL$ft$s\LhLHL$@pH҉Hu;P ÐH2LJHRAHt$H0L;pHT$LLL$rH(^륅u@ @f.AVHAUATUHSHt]HtPs~IHh~N$0HIIt$dHHtbפGH9D$w^LLA HH]HH H蔤^ ^MA^IMEĹ^1111] utDu0HHĸ[]A\A]@H|$P1HHtHt$PE1E111Hl$H$HH?HT$PHE1E1H1HH,$1W Hĸ[]A\A]fHHHHǀ0JH;Dkt0H"@\ǐ\MA^IMEĹ^1111iHHL HtSH,$E1E11H¾Hu!I\R\\^I11111lHt$PHY1XfAU1I1ATIUHSHTyt-HLLHuHH[]A\A]DMt6sA$H1[]A\A]1ff.H1vfDHHHHHlvff.HHUvD髝f.AW)^IAVIAUEATMUHSH8^H(HHD1HEILKHSHs(ApJH3#HHh`^1HHk LLLHH$)^HD$H+HD$HD+HD$~HHtHsH誤Ex DH HH([]A\A]A^A_MtA$H([]A\A]A^A_@1ff.AW1IAVAUATUHHSp^HxHt$ HHT$@LD$8D$g#HE(Ԣ^HHD$1 Hu'1҉NsHmHt$grHSHt$E11AعorHHD$(HD$(HH>bפGHT$E1HHL$@1HP HHH`uHHD$0HD$(H(MHD$XE11HD$MfDHD$0I4J< pHD$ HD$hHHHD$g$1ArHHD$PHD$HL$8ILl$hAH;@JHBHD$H@LLpHzII)uL|$HD$HLЅAEAMc@ILH=)M`H+T$HD$II1^1˺H[]A\A]A^A_f.I>떐f.AWIAVAAUIATAULSLHHD$PHD$nHED0uvLxHtH HH0HKHH8HKHH@HKHHHHt HMHHXHMHH`HMHHhHMHHp@x@|D`@PH[]A\A]A^A_ÐLhf.Et;EtMt IuLopjH|$0H[]A\A]A^A_fDL(fD@@wPtH?Df.HvHWH>bפGH9 Ht ÐHGHB HD@f.ATIUHSHHHvHWH>bפGH9t5HLHHHt(11H$MI1H[]A\Ð1ɿ܋1^11蕸1אAVAUIATIUSH覶11L oHƿnHt$0E11A]jHHHH>bפGH9u(HD$0H9kHĐH[]A\A]A^fDhHt$0Hh^InjMtAAEAMH111虷HĐ1[]A\A]A^;h^I븐+h ^I롐h@^I두Ht H7m@f.HSH7tuOuVH{(gH{ gH{kQSxulC|uUHagHHtHH[GgHHtH7lDH?DH{`gDH{8fD[fDE1H0HHw0IHWXIDHXIDhAUATIUHSHHHHt$OHtH[]A\A]HLHHIgiHHt_MtZH{Ht)LHNxBAHL[]A\A]@ JJ$@ JMHHHCuLHeMtA$ H1[]A\A]fD16fUSHHHHt HtH[]f.1HHtHH6HH[]鈐ULSHHuNHt))^HhtHt{EH1[]HCHH[]MHDCPpHtHtHHHD$ HD$H[]1@AWIAVAUATUSH(HHtWH;`JtMt.A1H([]A\A]A^A_ÐLc8I9twMtAH(1[]A\A]A^A_f.LD$L$HT$H<$)HHH<$HT$L$LD$Hx8H`JIa7uDC uC HL$L$IMYA1&Lws I~H9H|$vMn(MvHLIlɉs u'HC H;L$sHLIl C )^HLD$H$fH$LD$tHtH*H(HL[]A\A]A^A_LCMA 1lHG\ff.SHH bH{(bH{LHC HC(HC[f.f.tHGH@Ðf.AWAVIAUIATIUSHH8H0tH8t Ho@Hu%MA$1H8H[]A\A]A^A_LHMtH(wHC HJ,HtvH`wMt HC(JIH臄Ht!MtIHkwfMt H{@A$1UHD$MHD$ IEHD$!@LLHL3LD$HT$(Ht$ 1HJHIuHD$8HD$MHC J`wtA$MVI1fDMuHK(HD$JHK NHHQHHL>H@*W0Hf.AVAUATUHSHw:L,P^H0^LdHI$?Ht []A\A]A^A]HWLIWI|C[HItKLHWHHVLH:HIt"I$HH=x Ls H1\ff.AT1UHSHHHH$@t1H[]A\D1H޿H^虣HH?HH=HItHT$HL7uDH\$H1Hn@uHHOyH<$2b=MHH[]A\H޿0^1U0Hf.AUATIUSHHH*LjH =HtTHL =HH@HteH I|#ƒ u4@1{H[]A\A]ùX^M^H蝥CL^H1K붹Q[\^HgL^1HqfAUATUSHHHjL.H7H}X0HtqHIHMILD$ $NHIH1D0^腞At[AD$L\$H9wFKD;!D DM<0D11D激^71H[]A\A]A^A_fDMLIH H 8HHIHLHLH$rHIL $H~LL$/L1IEX^11LL$LNHH[]A\A]A^A_fDب^ ^LHDL^ ^L葠HH[]A\A]A^A_L1HD濈^L $L $HL_7HIu1^˜I9L $ILLL$7LL$HLLLH$MqHL$tkH8L-IE1LX^1̝L-HL[]A\A]A^A_^ ^L腟HM^ ^L\AWIAVAUATUHSDHL$H$HT$(L$LD$ L`AH$HD$hD(1tHĘ[]A\A]A^A_ÐH$LH HD$D$PK$HL18^:H1LY8D$8EL$L$1$Lx^ID$HۉD$@gH$H|$`Lt$`hH 0H|$`=|$8HD$0t EhHT$0HzDHA虧HHL$0DD$$1IL^MH?HAD$^DHD$@/H$LHD$D$MLD$ L$HHT$(H$HHT$0HDHHIfDMtUHLLA3^HIL$L$Mዴ$HD$LH$^1>1H|$0kHL$0E1A]H$LpHT$0DH> HI9A^LIHI*H$DL$L$$M1H1HL$^ H)HgfHT$0DH` HItqHD$pL|$ Hl$L$IL$pHLH6HT$hLLL{HHuLL|$ Hl$A)=NA^LHLH)H$DL$L$$I1H1HL$P^!L(Hf.H$LAHHT$0DHc IItILl$@H$1$^I M L HH$L0iA^.fDH$HT$pL{VH$LäHD$D$MLD$ L$HHT$(H$HHL$pHDHHIA^fDHD$pH$LHHD$8HD$pLD$ ML$HT$(HHHD$D$$.HHD$pwDd$xDKHHD$@HL$@H$DLD$xE1EDl$\H\$0Dl$PL|$PL|$@DAD9d$xDLD$ L$IHT$(Ht$0MHHD,$HD$pHHuAͣ^\@H$L(HD$D$MLD$ L$HHT$(H$ HDHDHHI@A^DH$HT$pLSHT$0HL$pEDHHIAۣ^H$HT$pLôKHD$pLd$(MLD$ L$HHHD$D$L$KHD$pHD$xMLD$ L$LHHHD$D$$H|$pHD$xHHT$pDHHI+Aˤ^H|$`CLH$L$Iع^1H1HHE1b AfDLCL$I1Hﹸ^1觔H DAˤ^%D11Ҿ J J+HH ^1H 1G H2D11Ҿ J J+HH\Aģ^A^HD$pHUHH-HH.vLtHLtHHt)^H tD$ID$@0A^A^Aۣ^LIHl$BHI#H$DL$HL,$M11HL$H^!H|$h I5A^H\$0Dl$\L|$PHL$@HT$8DHFHItH|$@CC^HsLdAT$pI1H^1茒t$pHx LAģ^H|$@Aͣ^BH|$@Aͣ^BE1AWAVIAUATMUHSLHXHH$Ht$(LΉT$0HD$@Lx*HI1HL-D$4H1H_-Ld$8L$FHD$HDL$4LLD$8T$0HHt$(L|$Ld$H\$H$HT$HHt$@L@$tA1At'D1H^DD$(DD$(HDwHX[]A\A]A^A_HL+D$41Hh^ 1运 H"H|$@D$(2D$(HX[]A\A]A^A_L,HHD$Ht{H$DL$4MT$0Ht$(HL|$H\$HL$H$LoHX[]A\A]A^A_IH8^11HzHX[]A\A]A^A_ùQ[^Hԑff.AWIAVAUIATUSHL$$T$@HL$8LD$HDL$0I McDd$DJHH輛H߉D$(0>T$(H$IH$I1D0^T$H$迍DT$0Eu%HHj$8^H$Hl$EH$HD$ $D$H$HD$LD$8L$@LH$LcHĘ[]A\A]A^A_ÐSHHHHI HY^H$Hl$E1H$HD$ $D$H$HD$[f.HT$pHHAHL$pMtH9(HD$8F$McHY^1WLd$xtI9HD$8BD$DLcMY^1 HT$pHHHL$pMtH98HD$8F$McH&Y^1跋T$x׉T$(CAHIT$(HHHE1HD$8T$xJHD$`1tRHl$hLl$(MISDl$DMHY^1&;l$xrHl$hLl$(L =fDHHt$DH¿p^1LIH L L%HIHH赘LH‹t$D1~^蟊H$LD$HMHL$8T$@LLHD$H$H$rffDMH1Dp^LD$0HL$(1LD$0HL$(ILH H $H.HT$pHHD$(D1~^H$LL$(LLD$HHL$8LT$@HD$H$H$VHMH1Dp^LD$0HL$(聉LD$0HL$(ILH H #HbHT$pHHD$(D1~^9Gv^^L蒊v^A^LvA^v^0^LOzv^^L3^v^^LBfAWAVAUATUSLHMHt$xHT$@HL$Hu^HĈ[]A\A]A^A_ÐEHH|$xMLI M #THIH$A~HHD$`HD$xHA6H|$xA}AI…tHt 8Eo$D|$\E1HD$PD$hHLLT$p4 HILT$pt?HD$PHT$@MHt$xL\$IDHL\$HH$ L\$HL@HD$`HL$HIHT$@Ht$xELt$D|$ HHD$0$LT$L$$LT$`D$(HD$PHD$DHID$hLT$`t3Mt.E_ALrA uT$\\HLLvHD$PHT$@MHt$xLt$IDHH$LA^H|$x4D|$IH\$L$$E^11H11H|$xHH|$x\4I$H$E^11HD$1t1z(60HA^ȹaERA D|$\T$\LHLT$hHHD$PLT$hS$D$hE_Av"A D$hD$\HD$`HL$HIHT$@Ht$xELt$D|$ HHD$0$LT$L$$D\$hD$(HD$PHD$0HID\$h1uAFD$\AWMAVAUATIUHSHh$L$HT$(HL$0DD$$L$H$HD$pAV$Mq/  HۉD$Ht  H$H MtL5HpHLH$Hھ$ $$Ű^@HۉD$Ht tuDHdH$Hm{H$HH$S6HHXH IHhL[]A\A]A^A_H$t$$HHJ$ IfH$LLHIHD$X肫[ H$L$LDD$$HL$0HHT$(HD$D$H$HI[ H3HpHLI}HھI} Hھ1Ҿ J L>HILHGD$D5HHD$` HDLL蛫i$1- Ll$PL|$hAH\$@Ll$`Hl$8L$\$HHH3HT$@HpHH|$PHAD;$DDD$$HL$0MLHT$(LH|$8L|$$HHuH|$`A^Hl$8L|$hH\$@0D1H$L/DL$$IL|$\$L,$^11H17E1sH$I$LLIHL$X1LPLHھH$Hl$PE1l$HL|$HHD$@HD$pL$HD$8L1HpLHL$DD$$LHL$0HT$(H|$PL|$,$]HI)Hi1HpHLzH|$xHھhMOLL\LD$@HT$8H$Ht$HE1LHHD$x\L$M+HDŽ$]]LLEII$H$H$LLHL$XPH$HھH$DD$$MHL$0HT$(LHHD$D$H$:HIHF0HpHLWLLH,Lp0I~Hھ.I~HھLt$XHL Le1HHjHIHLHtLH_A?^DH$I~HھHDŽ$DŽ$IHD$XxLLLjA(^H|$XHھ JLt$XHL:L:fI~HھH$HL$pHl$(HD$XII'H.HpHHHھLLLLL蘋HHuLHl$(A@^] =XDLLIH$DD$$HL$0HT$(LHHD$D$H$HIrH(.HpHL9H$HD$X H$LLHHD$XŚ H$L$LDD$$HT$(HHL$L$H $HL$0HIH-HpHL1Ҿ J LHILH H$t$HL$DD$$HL$0HT$(H|$4$HLHIH -HpHLHD$XHھHxLL Lt$XHLL:.HH?HHD$(H$HD$@HD$pHD$8f.HT$@Ht$8Ln HH$rHIHt$(1HuHt$(Ly}DI~Hھ'H$HD$XD1Ҿ J LoHIHl$PL|$HAU^{*0H!>@H$ H+H$HpHH$H$H$,HHHI}H$t$$HH"^D\H۹ D$HF5H|$`A^Z)]D=uLLt$(A?^-DLHl$PL|$H^=Lt$XHLL+HHHHD$(tlMH|$pHl$PAh^L|$H辬Ll$PHl$8L|$hH\$@H|$`(4Hl$8L|$h1L$Ak^A֤^\A^QA^FA^;A^0AP^%A^Ax^A;^LE11&IH$DL$$ȯ^11HH$1JwA^f.S1HHt[fDHHt H1[Ð$@ J L|HHuH߾ C[ÐAWLAVIAUAATIUS1HI|HHuIIIIIIII|Mt8Mt31I,HHHHQI9wALuQ@uc@uu1Ht Ht 1HfGtH[]A\A]A^A_fDHAƆ@t@1HfO@tDHy@f.AWAAVIAUIATUHS1HxMDD$HD$ t%I|#H¿^1HsL9rHE1H611Ҿ J JO HJDIIu1ҹJ J J! HH11Ҿ J J HH11Ҿ J J HH1ҹJ J J HHt}1ҹJ J J HHt[11Ҿ J Jt HHt<11Ҿ J JU HHt1Ҿ J LHHHu+11ذ^ Hs HT$Pt^1qMtoLE1%HD$$EH3LLH H;Ht$ 1ҹvHIuH;HD$=wIHM9r8^1^qHD$(DHHL$8HT$0Ht$(U;HD$0HD$@Ld$88t x ELq HvE1IHL$PHT$HHt$@LuHD$PHT$HL9~II@=DHT$HHt$@1LunH\$HLH>&tHT$01H޿^fpHH{yH|$(]A^lN11H1qHx[]A\A]A^A_=A^'f.H;HHޥH1^11[qLL$Hx[]A\A]A^DA_HT$PPJLHl$PLl$XD$` H=|$`2fHT$HHt$@1Lu]H\$HHH HtH IH I|2 tHL$0LHڿX^1oHH+=A^fD=t+A~^11^HPpH趤1^n1Ҿ J LHD$8 HIUHHT$@Ht$81Ld$@HHD$HLHH=1E1HT$PHt$HHHL$AHL$<HcD$TIDH9L9MHuL;vI;iH|$Hȣ6=tOLa 11ݥ^HoHtH1Hx[]A\A]A^A_Ht$@H~xAHT$@Ht$8Lt=uL 1c0H HaH|$8WAP^w^^HNp\H|$(ߢ=HG HtaHH M|HHT$LHT$LHyHƍCvBLLFIHH$ե^^HoHt>tHQHHHHtH twD1H(^1DD$[mDD$HD軡fAW1AVAUIATAUHSH^HLD$0DL$H|HHLJHL9rHHHD$MHD$1H߹X^ 1h H`1L=LDd$H|$HAL1H߹^D1hDH ‰D$1H߹X^1hDD$HD^ HϜ1L=ADd$u1^11H)h1[ ^HDl$(Dd$iHD$IHD$ #f.DSHH HHtBC(1D ȃ^S^DSHHuHH [1D^u @9tHBu=\6Df.ATIUS^DHktH3LRu[]A\AWH۵^AVAUATUSHH4$H4$8HFHEH$^^H$HxHcHHD$I ^KO+1AA^0f.HHHL^ML=ILLH,LcuILI^INI^A"HHHHHLq" TE{zNMH{\XSD_E<_#EH]^<_ A$. Mt$^@IHAN ^ u_.C^ ùNMHPt{(SX(KHkn:fHMbtntf_E^t*HKHk^tH@HD$H|$H$H9xHcF;u)HifHĨ[]A\A]A^A_Et L fǃ0IT$A?^:H-HPIHD4IG^Dg HH=EuuHƃHH@1IT$A7^9H-HPIHD4I<^DmHH=EuuHƃHH@1It$H5E1fD8/$Hx$H@AHuID$H$AEE1D$ H$D<H8D9d$ @HAMN+HrIHD4IOND HHE7uHƃHH@1HAc^/DHPIHD4I}^DHH=EuuHƃHH@1HAg^/DHPIHD4I}^D5HH=EuuHƃHH@1H0^0fDHPHHD,H>^DHH=DmuHƃHH@1HA$^/DHPIHD4I,^DHH=EuuHƃHH@1HA^/DHPIHD4I#^DHH=EuuHƃHH@1HA^/DHPIHD4I^D-HH=EuuHƃHH@1HA^/DHPIHD4I^DzHH=EuuHƃHH@1Lt$ IT$g]1LMAUI!%tDIULDIM)KHLM*@HPHHD$L9DHH=DeuHƃHH@1HAl$H=T)HPH@,@IT$3IT$H3IT$GxHA^3fHPIHD4I^DHH=EuuHƃHH@1IT$DE9HcJHr ^H HOH9H2Ml$H^Eu*HPHHD$H^DHH=DeuHƃHH@1IT$Md$Hth2HH=&HPH{Lƃ{H22HH=k&HPH}ƃ}HA`^/DHPIHD4I~^DHH=EuuHƃHH@1IT$Ht}1I|$1HH$AMN/DL~ILD43IONDLHEuuȾƃHHAH@1fA|$ IT$Hz^H0HHL*HBH ƃ fA|$^,fHPHHD$H^DHH=DeuHƃHH@1ID$8;H@8<IT$IL$ELHID$M|$LhH@LpL`IGH8q.xu.x.LHCLHBLHCH߾^SLHfCLJ0H(Ld$(D$0HD$ HD$ H(H IT$HD$8/DL$0Eu LH/HD$ H(H(H Lt$ Ld$(D$0L(IHL$ HD$8ML)IGs)LAHPw`DXEuOA$H0DAHHt HpHt(HpHt0HpHL I Ht8H(@HHuIT$H.DT$0L(EA(@AHDHHT(V.AuH(IT$Hz;e@ I|$t @@$H(IT$H=+IT$E1:'u3HRDjAr%A%AuIT$ u z+HH=$HPH(ƃ(IT$H,HH=D$HPH)ƃ)A<$>&A&IT$H,aLJ0RHA^-HPIHD4I^D,HH=EuuHƃHH@1Ml$Md$AE24+(IUH+)HA}3HIE8:HcHHp ^H HOH9HH=}(HPHH(Lƃ(c+HH=(HPH)ƃ)HA^0fDHPIHD4I^DHH=EuuHƃHH@1HA^/DHPIHD4I^DMHH=EuuHƃHH@1HAe^/DHPIHD4I}^D=HH=EuuHƃHH@1HA\^/DHPIHD4Id^DHH=EuuHƃHH@1HAr^/DHPIHD4I}^DHH=EuuHƃHH@1Mcl$Mt$MH1,fDHPHHD$I9DUHH=E$.uHƃHH@1HAQ^3fHPIHD4Ib^D% HH=EuuHƃHH@1HA;^/DHPIHD4IP^D HH=EuuHƃHH@1HA!^/DHPIHD4I:^D HH=EuuHƃHH@1HA ^/DHPIHD4I ^D HH=EuuHƃHH@1HA^/DHPIHD4I ^Dm HH=EuuHƃHH@1HA^/DHPIHD4I^D HH=EuuHƃHH@1HA^/DHPIHD4I^DQ HH=EuuHƃHH@1렃ID$LchL0MH1)HPHHD$I9D}HH=E$.uHƃHH@1뤋8ID$Aҋu %#1A9$'$H(DHD$ HT$ Ld$(D$0H(H HD$8IT$H#D|$0E HD$ EH(L H(E1HH=HPH~ƃ~IT$H#GIT$}#8Ml$HM^.@HPHHD$H^DHH=DeuHƃHH@1렋8HV^DmH=t7HPHHD,H[^D HDmH=uHƃHH@1@LpL(LpHLJ(IT$t:u znH$"< HH=8HPH<ƃHH=HPH>ƃ>L(LpVIT$!@H AL^-HPIHD4IN^DHH=EuuHƃHH@1렃Mcl$Mt$MH1+DHPHHD$I9D}HH=E$.uHƃHH@1HA^+HPIHD4I^DAHH=EuuHƃHH@1HA^/DHPIHD4I^DHH=EuuHƃHH@1HA^/DHPIHD4I^D=HH=EuuHƃHH@1L(HLJ(Ml$MAUH Lt$ HD$ Ll$(L(D$0BHt$84pHH[IF AAMmM#AH(AH(Lh@HpHAUJ4MH IIutIT$HL$$A}L$AEAEIFL$0Eu HL$JT$(HgL$IT$H(H HJuHJ qw9qHHuHE1@ǃ0)fAE9AMmA}G6AUB4HHAAAGDAHHHL HL HL(HL(HL0HL0HL8HL8I HL LLl(H(D0Ht8MmMt)AUJ4CLHH4Anǃ0H=_HPH.ƃ.IT$:GH!IT$H IT$HIT$HIT$HIT$HxIT$HA_^H0f.HPIHD4Id^DtQHH=EuuHƃHH@1IT$H!IT$H IT$HIT$HIT$HIT$HA~^H,fDHPIHD4I^Dt=HH=EuuHƃHH@1IT$H9IT$H%IT$HIT$HIT$HIT$HHH= HPH]ƃ]gIT$HHH=HPH)ƃ)*IT$H[HH=HPH]ƃ]IT$HIT$H 8HIT$-^8H4f.HPHHD,H/^DYHH=DmuHƃHH@1IT$H]IT$HIIT$H5IT$H!IT$Lt$ g]1LMAUI!%tDIULDIM)kHLM'HPHHD$L9D?HH=DeuHƃHH@1AT$Lt$ g]1LM1AUI!%tDIULDIM)ttHLM+fHPHHD$L9DtDHH=DeuHƃHH@1HH HBH}ƃ}HH- HBH}ƃ}ImEa<McB|- MHI-HPHHD$L9DHH=DeuHƃHH@1HpHtH HD$(HT$ HT$ H IT$:tHGHpHD$ H IT$HL@L9@L9ILLHkIT$Lt$ g]1LMA$I!%tDIT$LDIM)9HM+DHPIH@,M9@HH=A.uHƃHH@1ID$EH$)HA^)HPIHD4I^Dt=HH=EuuHƃHH@1IT$Hq,LchLpMH1&HPHHD$I9DHH=E$.uHƃHH@1뤽^3fHPHHD$H^DyHH=DeuHƃHH@1렽^+DHHHHD$H^Dt=HH=DeuƃHHH@1Lt$ Dg]1LMA$I!%tDIT$LDIM)tgHM"HPIH@,M9@tCHH=A.uHƃHH@1HH HBH}ƃ}H(IHuH(IT$U!IT$HHHA~^3fHPIHD4I^DHH=EuuHƃHH@1H HBH ƃ ImIt$vH8/" L HI$H HL EnMcHRHHpt HD$ H <l HH= HPHH<ƃ HH=z HPH>ƃ>IEL0AaA~dA~A$u !9L s%A~ZA~LHO1HufDHxtH@Ht8/tLt$ g]1LMA$I!%tDIT$LDIM)HM-HPIH@,M9@HH=A.uHƃHH@1ID$8u IT$:)LDLH!MAgu:A~sA~LH DLH!2sA~tA~wfD3HHHǃH@1IT$H A$Mcl$Il$IL9rAfDHH=HPHD$DHI9jLDeH)H~A_u}_u}UuLuM9v10HHIHM9 AHЀ vۍH7HƃHH@1KHƃHH@1HƃHH@1HƃHH@1iHƃHH@1A~P~A~sMA<$/ ID$1Hu8fMd$MA<$/ID$H8KuHpHU1Hu@HxtH@Ht8/tHƇH@1HƃHH@1 A=^HH$#H$HߋBpK^HH$HRHƇH@1-HƃHH@1>HƃHH@1ǃ0+H(H߃Ld$(D$0HD$ HD$ H(H IT$HD$8( Dl$0HD$ EH( H!sHƃHH@1HƃHH@1HƃHH@1HƃHH@1(L(IT$2>HA AB$^NH^HlHuHpX]H^fDHPH(Ld$(D$0HD$ HD$ HH(H HD$8QGDHWDXHPE~6H;AHHWHHfDHHH;BnH9uD;\IcAH HDXHHHr:h;lHc׃HH`hHyHzHHH HuH0 (HƃHH@1 HCL1H H H߾[IT$H]H-HHv r<_HH߾<访ID$HHP{H߾H^^ID$HHP[)Hn HƃHH@1IT$H |$0L(L7HƃHH@1uHrO^|IT$H^H~HHHHtnHH9t%HDHRHtSH H9t I9uH9tE1HpHH/<H謾HHWL AH 먋<HtHƃHHH@1[ƃHHH@1HƃHH@1IT$HV^H)ƃHHH@1ƃHHH@1XIT$HD$H HD$Ht$Ll$H q1E1fHu/ƃHHH@HǃHHPH ƃ Hu/ƃHHH@HǃHHPH ƃ 6c[xlQxGID$HHP:IT$HLHLA_=MHB<0<<16^GHP:)t ǃ0HPHA`HPzHR:>(H$ID$MmM~^HI}tHL HںLHMdLHR-診IT$fHM9A_<_xHAhHLZ~E1b^ǃ0Df.UHSHHHtB~Dž0H[]fD4ۃH$CHH4HHHHD$HD$HHk4H[]fDAVAUAATUHSHM$(^f.HA^+HPIHD4I^DHH=E4$uHƃHH@1@HRHD[]A\A]A^HK^,fHPHHD$HT^DIHH=DeuHƃHH@1@HU^4f.HPHHD$H^^DHH=DeuHƃHH@1@H_^4f.HPHHD$He^DIHH=DeuHƃHH@1@HHWHBH ƃ fHHLHBH ƃ HH=HPH ƃ HUfDAubHH=HPH*ƃ*7HH= HPH&ƃ&[]A\A]A^HN(fHPHHD$HNDtHH=DeuHƃHH@1H^,fHPHHD$H^DIHH=DeuHƃHH@1@H^4f.HPHHD$H^DHH=DeuHƃHH@1@(t)HH=HPH ƃ HUDH߽^rH3fHPHHD$H^D HH=DeuHƃHH@1@HA^3fHPIHD4I^DHH=E4$uHƃHH@1@Hf^4f.HPHHD$Hw^D HH=DeuHƃHH@1@HAx^/fHPIHD4I^DtMHH=E4$uHƃHH@1HH}5HHHBH(ƃ(HUDH3HH=HPH)ƃ)[]A\A]A^ÐHUHƇH@1HƇH@1HƇH@1HƃHH@1$HƃHH@1HƃHH@1HƇH@1HƇH@1 fDAWAVAUATUSHH8HH0AAIgIrLf.HK)CL H *teDHL HHt^0uTCuHSEuH4vHK*CL H uH HDHbL H8[]A\A]A^A_fH DHHL H8[]A\A]A^A_L(HDž(DHRH'AL(HulAL^*HPIHD|IN^Dt`HH=E}uHƅHH@1H=HPHD.ƅ.HCHXG4w2HHs"HȐH[;O4w HHHuHDH)L H8[]A\A]A^A_HƅHH@1LHA=^'HPIHD|IJ^Dt=HH=E}uHƅHH@1룋CLl$g]LP1YLH!%tDHQHDHL)ttHL#HBIHD|I9DtOHHE}uHL$HƅHH@1HL$HAK^'HPIHD|IN^Dt=HH=E}uHƅHH@1H[AWHIAVAUIATAUSHHHt)fDPHHu1LDHeHH=MHPH ƃ HHBH[ƃ[IUHtDHHH=RHPH]ƃ]H[]A\A]A^A_DH@8*{H^+DHpHHD4H^DtEHH=Duu;ƃHHH@11LDH0HHtKHBH)ƃ)HƃHH@1HƃHH@1HƃHH@1HƃHH@1L1DH0H@AVHAUIATIUSHIL*\HHPHpwHH1t< /HH.HBH=H ƃ  HƃHH@1@L(1LHǃ(HHHHBH(ƃ(I$HtHRHH=HPH)Lƃ)H߹L([]A\A]A^ƒ(HH=HPHL(1(Lƃ(Hǃ(H!HH=HPHH)ƃ)HƃHH@1HƃHH@1HƃHH@1NHƃHH@1AVAUATUS:2Ht[]A\A]A^HBLchLpMtoH1&@HPHHD$I9DvAHH=E$.uHƃHH@1@[]A\A]A^ATAUHSHv1uHHD[]A\DtHH=HPHD(Hƃ(HHH=t%HPH)ƃ)[]A\f.HƃHH@1HƃHH@1LAWAVAUATAUSHHBH01>ftH[]A\A]A^A_fHE1HL@LpA8<D<ǃ<F_1}_H貜HHtHS1:_HHHSHH-H8[S(;S,HcƒHHC @@S('^H@^DRSHS(;S,2HcƒHHC @@S('^H@^뵺^HL^HC(E1;C,}#LcILc AD$AD$C(Ld$A$,E0< ffAD$oHID$HD$HxH{xHC1Ҁ8tHPHS1Ҁ8sHD$fPS(;S,HcƒHHC @@S('^H@^S(;S,HcƒHHC @@S('@^H@@^YS(;S,HcƒHHC @@S('^H@^S(;S,SHcƒHHC @@S('`^H@`^S(;S,HcƒHHC @@S(' ^H@ ^S(;S,HcƒHHC @@S('^H@^MH1H¾KH#HD$fHcaHHC HcHH^@@K('HP71HHHsOHH*H謕H%1H"HHD$8bDcLHCLHHDcL1rf.HHT$HH#HD$HHDs(Dk8DcHHS:ItHkDs(Dk8DcHHD$HL$HS8;S<Hs0HcH S8H{&Ld$~DcLHCLHkH1DcLHDUSHHHWHD$CDuB0<w~$x^HBHCC(;C,!HcHHk HEEC(EMHuJ릹럹똹1FCH TfB1.uFP<_0< DHA.uD@AD@A w2DALIAHЀ LwDHDEHA vA.tHHKHH)ƄHNHHCHsHŀ>.W[H]A\DFHNA@<wf.HDA@<vA_tCDHHHOPHff.ATUSHGH8Lt1[]A\fHPHW@HCNH1=fUSHHHWwHHEt)HhHCD8(t0DcLHCLHDcLuH1[]A\A]HHCHD$H[]A\A]H11HGH.[]A\A]vAWAVIAUAATIUSHHHoD}gAVAK}HEHCE[DDm,!։|$}01DDl$F)\DD$1H@!1A͍8"kA 1AD!1ȋMDD qD1!1DDMFCyD1!D1AuAAE5!IAA1E!A1EDt$A EEb%DD1!D1DE@@DD$DD1D!D1DG QZ^&DD$AA1E!A1EG+ǶAAEA1A!A1EE]/A EDD1!D1DDt$DESDD1D!D1DF&AA1E!A1EDt$AAG.EA1A!A1EE!A EDD1!D1DE7DD1D!D1DDt$G& AA1E!A1EDt$AAG.ZEEA1A!A1EDA EDD1!D1DDt$DED1D!D1DG"ogAA1E!F/L*A1EDl$AAEA1EA!AB9A1Dl$A EE1AƋD$AEqDD1D1‹D$DF "amDD1G) 81DAE1A1EDl$A AG5D꾤AA1E1EDt$AEEKD1D1DE`KDD1D1AƋD$AAF pD1F)~(D1ADA E1D1DE'DD1D1AՋT$AAF20ԉD1D1A֋T$AEF"D1D1DE9D D1F/D1AĉAD1F6|AD1ADA1ED1DDt$DEeVDE#D1G#D")E1ADDt$ A A1EG**CAAADl$AE A1EAAAEDED AD1DE9DEDA ED1DFY[eD\$ |$A G AA1AӍ}EADAAAE EA1AEAED D1A]DD D1|$ FO~oDύN 1DF, 1DDD$ECЉ 1DDD$ 1ыT$ :~S 1A05:T$ 1A*Aӆt$ 1<0|$ 1 H9l$RHD$|$X\$8X\$X []A\A]A^A_Ðf.AUATUHSHHGW9ЉWvG7wxA8A)AL꾀^J|#:uCKt%H{D3KC HډD3 H5C 3KSE uHMUH[]A\A]AxA)DAWAVAUATIUHSHHDjEuPH@w*HtH}HLt]H[]A\A]A^A_@ILHI?LMEAM)J|:I9LGLLM:tDuI@wML)uDHELHHEHHHL$H$A?'HL$H$L?Ht HsDmDSHHH$#EgD$D$ܺD$ vT2D$D$D$HHHĠ[fAUIATIUSH$#EgD$D$ܺD$ vT2D$D$D$fD1۽ Ht+H$HLH)ھH<oHHvHtH$H@L(ou#HIu0LLH[]A\A]H[]A\A]H$LHD#EgGGܺG vT2GGGGHʉWʉVWʉVW ʉV WʉVfDAWHHHAVHHAUATUSHH$HD$̋HT$ԉD$BD$BD$B D$ċBD$ȉBBHH SH9H9CH1fD ɉLHH@uD\$܋\$H@|$D|$DD$DT$AyZ\$ċl$Dd$Dt$։AyZD1D!A1ڋ\$DD1!F;yZD1ʉщD1!D1DAADE(yZAA1A!A1AEAA1AEF'yZD!D|$1DEADF6yZ1D!A1DAADF9yZD1!1DAADDL$F yZD1!D1DAADDL$GyZAA1A!A1AEAA1AED $FyZD!1DEADDL$FyZ1D!A1DAADDL$F yZD1!1DAADDL$ F yZD1!D1DAADDL$GyZAA1A!A1AEAAEDL$A1A1D3\$A1D3\$D3$FyZDD3T$!1DEAAADDL$FyZ1D!A1DAADFyZD1!1DAADFyZD1!D1DAAD1DDL$E1A1D3L$ACyZAA1A!A1A؉DAE1D3D$1E1AFyZ!1A|$ AD1D1>n11Dt$AAD13t$D1D1n1D1AA΋L$ED13L$D1D nD11DEAAԋ$3T$3T$1DnD1D1ADEADD|$D3|$D|$D1\$1t$L$D|$G=nEA1E1AEAAED|$D3<$D|$D1T$1L$L$D|$F=nDD11DEADD|$ D3|$D|$D1L$1T$L$D|$G>nAE1E1AEAAED|$D3|$D|$D|$D1D$D1|$L$D|$GnAE1E1AEAAED|$E1D3|$EA1A1AGbD11DD1t$\$1t$E1D1\$D|$E1L$\$bʉD1t$D1D1AEA1΋L$1L$L$Dd$L$Dd$E bʉL$D1D\$D1\$DAADDL$D1L$AL$ADL$DL$F bʉD11DEA1D3L$DD|$AA1AE1D1CbAAA1DL$A1DDD$DE1D3D$AA1AFbDA1AA|$DD$E13|$1D>bʉD1DAAt$1Չ|$D13t$D1D1bʉDD1ىt$ADAD13L$AD1 bDډL$1D1ADD,*T$3T$3T$DD11DbʉDD1T$A܋\$AAl$D111AbE\$E1E1AADEDD\$D3\$D3\$A1AGbED$E1E1AEAAEDT$D3T$E1EA1E1AA1GbDT$EEAEDL$D3L$E1AA1E1AE1ACbDt$DL$ADDDD$E1A1DE1A1GbD1Dd$ADD$ DAADD\$E1A1DE1D1A1FbD\$AADDT$DAE1Dt$AA1ʉE1D1A1GbDT$DDL$DE1A1щE1AGbDL$EAA1L$T$A1΋L$EDAt$Ht$ԉNL$D6N|$\$H9D$̋|$ċ\$ȉ~ ^6H$[]A\A]A^A_AUATIUSHHWw8HHH퀃8HHH8HHwH9v{ALk AD ω| <  I| ^D HH)HP]HLHHHL[]A\A]ff.AWAVAUATIUHSHHB~H?wXHuH[]A\A]A^A_@DmLu HLK<.LV]H?|]H[]A\A]A^A_f.ILHI?LM%AALz M)I9K<7LGLL\uD@uwL9w5LRaNMv(HPHcLDC^u1E1aHIM~LHGÐf.ATIUHSHHHHt$QHt$HH+UHL$H9|H)I$H[]A\H1[]A\f.ATUHSH^u _t1ۀQt4H[]A\f0ۀ_uG1ۃT<IHHt$HtHI+$HD$H9|H)E^fATUSHHH?HtEHCHSH)H9v&H)HIH,6HxIHHLcHCH[]A\fDH HFHHt$xHt$HCHHHsH[]A\fATIUSHHHHHHPH{HLJHk[]A\USHHHtuHtkOts~Axt$ya^HHCH[]H_^kHHC[]ÀNuK{gut^HHDu1fHl^HHu1fDHH[]fDATIUHHSGHHu[]A\ÐHHEHEH}HHH9r@DHDDH}H9sHLIH][]A\fDATIHUHSHH{HL\IHk[]A\AUATAUSHHH8aAŃ11HH?HHk1H|$tɾMNH\HT$DHnH߾^L$;L$HH@H~Ht$HT$]HHHT$Ht HH^HHT$f.HBHHD$.11HHoHH1H|$tɾMNHHT$DH~Ht$D$H1HZ}_Pe^HLmEHD$HPHHT$FMM^fDEA^@Quff҃ )эQ)f%f A)A7D ˆT$JImI$p^HH oNHHtHc}cYHuHUmT^HHEH7DHH,!HnH߾W]H1DlNHHT$HBHHD$HM^fDEA^I@?^H{fB^HcvfDE^HK^fD<^H3FfD9^H.fD^Ht$H]MDe^H|$aLHt$HLd$HD$@A0D ˆT$wMHHuH߾{^kLHnfDd]HCH5H"H^HHD$HT$HD$fDHJHHL$th11HHHHM^H11HHH1H|$tMNHHD$HT$HD$늾d]HHD$HD$pfDAWAVAUATUSHH8HtjtcA<9w\II$0^@HDrH+IcH9}6AE11;QHD$LLHEuu1fDH8H[]A\A]A^A_fDKHvFpH ]HfDHLL ģ^LHH|$HvHD$ HD$HD$HT$HHD$H9H)Hcڀ?Q1HLLD HLk^HH|$H6 Hv15HDH~Ht$HHt^LHT$@HBHHD$HLLHH1H|$tʾMNLeHT$fDHv^LH?Rf.FAHHHH|$ HIHHD$HD$H$HD$0HD$(HD$ HD$PHD$HHD$@7H|$@HHHt$@HT$HHH9tH)HcHHt$ HT$(H9tH)HcHH߾lNH<$HT$H9t H)HcHurHtx+HD$HD$H$H|$ Ht O+HD$(HD$0HD$ H|$@IHt"+H`L[]A\fDHHH<$z@HCHf.AWAVAUATIUSH^HxH|$Ht$HHHL$ HD$x0H|$LHHIHD$@HD$8HD$0KE1HHt9#LH^tJMt ^HxIHMHE1҉)H9EA9yMcLHEH8H[]A\A]A^A_HsH|$`HuHHE1҉)H9EA9IcHHESHHH0*HtI8ZtPH|$HHHD$ HD$HD$5H|$HtHD$1"HD$H0[fDH0H[fDUSHH8H?z^Hu|HD$ HD$}^HD$Hu`Hl$^HH|$HT$H9t/H)~(HSHD$HD$H8[]H81[]Hl$H"HHHH$D$HH|$t8t6Ht1!HD$HD$ 1HD$1[HT$JfD$f.K!f.1HOt8/fD\DHHc־C^ƍDQufH'$Hf.ATUHSDHH9HHH#HA H [1E]A\f.AUATUSH(H-|w5HtH(H[]A\A]fD IŋJw5AEuӿ^HHt8/tZ@EeHA"u.HHPHHH"HtH-v5u@D%v5Ee1H$Hƿ#uH⾱^#sH$H9D$`H$H9$Nf.DH1H%H$HT$Hi@BHD$Hi@BHHD$HĘ1H9H4RBH )Dž'$\-4RB5))1׉)) 1ʉ)) 1))1))1))1Ή)) 1)1fA1fDAD9t@D)H^H9w9At)H^H9sAD9uH^H9wHHH=c5^1[!fDAWAVAUATIUSHHW(H+W0Lo HoDwhH<J\I9jHI9SID$XHrI|$PLHpID$Ml$ IID$0Et$hI)D$(ID$0IL9MuIvLA$AT$hAML$HH^D^WO IH )A)։It$ AOI^PInXIFHD$IFHD$PIF`HL[]A\A]A^A_H|$Pt LHT$PH1[]A\A]A^A_DAWIAVIAUMATULSHHL$,ÉpHD^AHIt_LHIEt=HD$Me A]hM}MuIm@IEHD$PIEHHL[]A\A]A^A_DH|$PtLT$PH1[]A\A]A^A_HL $M0HÐf.HD$H7HWHOLGPLOXHG`HAULH$$@MHÐHA'@H$$@MHÐAUATIUSHHH_ Lot5x0HcIlDHxH}HvAT$HyID$HHtLID$HHL[]A\A]@ID$`Ht&I|$PLI|$PID$`H[]LA\A]H[]A\A]f.AVAUATIUSHLo Lwt7Dx/HcI,DHxH}HvAT$HyIvVHcЉID$HHHc^HtbI|$ID$XHtiI|$PHID$Il$ A\$hJ1L.ID$0ID$([]A\A]A^ID$`HtIt$I|$P덾HAT$@ID$@AWAAAVIAUATUHSDHGhG8Lg HuHH^D^GO IH )A)ÉL,MIt7LD$LLUEhHuLD$HH^D^O GEoAUHt%HtHCHtHEHC0H[]ff.AUIATIUSHH_HG H, fHH9vH;vLHAՅuH[]A\A]fSHHHG(H+G0HO HH9vH w HH[HT$H4$HT$H4$HH[\ff.G8fWtW tE9E1E1^fD8tMDž(IDHfDI?I (L;uD(D)@DD9ቅ(~AIcD)M|HIDHfI?I (L;u勽(Hc HI8~ALIDHfH2LH(~H(HH;uLH!ʁ t€DHHHDҋA<$IL$HIA$t :IL$uI9uA.AG/AGH@LL xX%=uClfDE1IH< HH IE1HfDVfD1IfS HHt= HHCt.HH@HHCH[1[H1[UHSHHtbH^HH{H9wmUH9voHP HtGHUHH@HHPEHEHUUwx HuH1[]H؉HH])ʉUH]HH[]f HtHUHHUHPHEH[H]HH)HEMHH)[]ÐUHSHHHu @HH]HuHH[]Jf.AWAVAUATIUSHHHtFIHE1HSI9t7HHt'HkHuI9v HI9rqIHHuf HH9u fDLL/L9uI\$H{t@HH{uHI,$H)A\$H[]A\A]A^A_HtH9HD$I9LDOI9t%LML7uL;orJH|$uL|$H|$HD$HLELt$HD$L)M,$Al$ID$H[]A\A]A^A_H|$f.@HH==H5MN1 f.GPHuHG8HfDHHH@8@f.ATUHSHHHtmIHBIHHC0HDHH3Ht[HT(HCL!HSHSHHHHS H@cPH[]A\IDHD$F5HD$fDGPHuHG@HfDHHH@@@f.gPHO8LG@Df.OPHO8LG@LOHf.AVAUATUSHoHH+oLwHT5HHHHG0H?HLdH9HCH9HCH9IvxE1E5KD%LkMuHsHHC IEHC0MdHI!LCPuHS0IDHH!H9Ct:cPLLcHk[]A\A]A^fH9wHHHIukIFLHIE뱐f.HGHtH9vH;0vH@Hu1f.f.ATIUSHwHHu(HI9vHI9v(HnHKPHuMu#[]A\fLcLcHS Hs[]A\fDHW1HtDH H)HRHHuf.AVI1AUIHATU1SH Ld$XLD$LL$aLL$LD$L$$LLHHp;HHtH?H H[]A\A]A^HT$PH=uA$^f.@f.S1x߾W^[9f1[ff.S^@H8fUSHhD$4D$4D$4H|$t$HT$HL$(LD$ DL$HbC5D$8HD$HD$<D$<~3|$8GD$8D$8D$<D$AWMcL HfD1E11 ^G(tA0McL @G(1fDDV4HAHV LFL9E1111^F(0@0HV Hcu$H tD C ^L MI9wF(HH<@u'HAHV I9MH<@=H@HV @^:F(HH@H@H@AtL9sH><_@@HH< H9H~ rL9wHEtYH| _HytuADHMH<:_tMHuMtSL)H4 HLFHV E1E11HɿHHHDHpL@HE1HHF(HHxH@H@Ðf.UHSHGuDHGHH+WH9s4H)Hr%HHEH9w %DH9vHH9vEH[]DH}H$HtHEH]H[]H}wHEHEHEf.HW 1H;WsH 1@8t@HHW SH@f.HHGHHWHf.AWAVIAUATUSHHHO(L$H$L$L$H4MHH;fHHH9wH<LT$LL$CHH$HLL$LT$t'ILf@I@AUHPI9uMLt$ HD$MAHHD$D$E1MI$1AL)E1A$.fDa@H$HIIHH)LH9H$L9rHt HLHFM9aICt'@-^@uHv"AEHSA}_X@AE<$t<.tkHhIE1f.IH.t$tHH9uMd-HtIMH)tIN(AF(HH[]A\A]A^A_@HvA}.toHtVILHLM1I~(uH4$LH<$HH[]A\A]A^A_ú^LH@IGHD$H1LHD$L9HvK III9KL9BH<$J4LL$HLL$LHD$HH)LL$(IxHLL$2|$L$HL$LL$(D$AD$ ? кA@|$? A@?ȀM9A@HE11HD$LHt$1IHJ(Hv$fDHH$HHHwHHz&1HHM9L08HD$H $tM1Lt$ AF(.|$AxA@Hf2AEp@ w4pAEx@ w;0 <#p@pfDx@WAE @UH]H1SH(HHH H!%tDHJHDHH)H}(tH([]HH5H([]@f.UH[H1SH(HH-H H!%tDHJHDHH)H}(tH([]HHH([]@f.SHH Ht$HvH{(t9H [HuC(H [fDHt$H#H [D]HHD$!Hs HD$H)H3H{(uHHH [f.ATIUSHHHG(HtHH[]A\^MHC(t8Hk8L)HwKaH@l$uHt$H|f.HuHߺx^YH[]A\HtHH H[]A\x^HHo8H)HpfATUSG(Ht []A\DGHItH{(tg1DHC8HHL9t%HtH{(uٺMNHDH{(uHߺm^[]A\k(^HV@ATUSHHHG HWH9rC(H[]A\H,@Bu3HHG Fs,u΋K(Hk HC uHHk f@tHHC E<w$^fHC H9v'<nu!HH{(HC u^HS(THC(AC06Lc(MJa@@H,^HMHHH"DH{(x^HfDHt$H#HHHC(HHt$H t H C(.Ht$HHQHD$HH{(uĺ^HbC(f.1H!сကtDHPHDH1^HLc(DHH{(+^H@^HHt$HC(H taH tyH HVH\HHt$HffDH{(^HCH9^H#Hg?^HHtKHCH{(8 [HqH<^HP-^HHt$SHG HH;Gs2HLuHHG HH[mDKtH[HHC C(t [H[Df.AUATUSHHXHcG(WHW HOH9VH7D$ECHHW AT$-$Ո^HW H9C(1^L$/HnsH1H|$0HIQT$/Hl$0Ll$@ ^AHK(HCSlH.HHHD$0HH$HD$8HD$HD$@HD$HD$HHD$H{(LHH{(u [HfHX[]A\A]DC(HX[]A\A]fDs.Dk,C,HIDk,H{(HAMtH{(1HH{(u^HifH{(uNHs(1uHC H;C)H<EHHC f.sVH|$0HHvHT$0HH$HT$8HT$HT$@HT$HT$HHT$w{0H{()HHH{(d]Ht@KS,`Lc HC HLc EDH{(L^HfD  HHW @HtH{(t\HHK(INH^fB^H>fMNH@H^HHH{(fHD$0HH$HD$8HD$HD$@HD$HD$HHD$HHt$/HHK(yHp5^HwHK(U1^H\T$/HK(L^HMH6UNHfH|$0HLl$0Ld$8Mt H|$@UC(P@HLHHC(Hk^HHC(Pfp^Hf^Hn$fH^HNfNH.HSDH{(`k(HHSL^H<DH{(E NHfDu^HfMNH~fwMH^fMNH>fLH{(HLfk^Hef^HHS D^^HHC(/S^Hu^HHD$(HD$(!f.ATIHUHSHkCuH;H{HLHk[]A\fH?_H|$@HD$HHL$PHT$XHD$`D$hD$lt$pD$tHD$xt1HĈfDGA9AFMuMtA,$H[]A\A]tHLH)Hq`xfDfATUHSAH]8HE(HEHE0EXS0HCHC(HC xWt:11G*S1葇HE`HCLu[]DA\fDC9111@ډS0뢐AUSHH2H[811CPH{xHHChHf G蜣HcǃHǃǃǃ,ǃǃǃHǃH^^^BBH[]fUHSHcuHS8z0u Hj8[]fD[]ATIUHSH.u*Mt HS8HR(A$Ht HS84U[]A\ffAWAAVAUATAUSHHAuzHk8HE HH9rmAf4DAH)A9AN܉AA4E!AfD 0uAA)uHD[]A\A]A^A_AAAVAAUAATAUDSH$u0H{8DDD[]A\A]A^fAUHF?ATLfHUMHISLHL,0u1HE8P0tetxHH҃xTtJD*[]A\A]f[]A\IE A]DuHHHH HLHHHHHH @Hp8Ht_H~thV HHN(HtH)fH|uHN8HtH)fH|uvDHJHE/"fDfAWAVAUATAUSHHD$3A)H{Ls8$SAF=k QI~(ANLEfL=*>9 EfbI [NgNDSEuEEfIcA\HDL^H]{ ufDAFLD$H[]A\A]A^A_DH;HD$HC0f1AC<$4 )1҃)9AH͌D$HC0t@AFT 1AE Bȃ EEȉ)IV(Hr)INIv(@4IV(INHrIv(EEtdIV(HC`INHrHIv(@4IV(INHrIv(IF(S`INHpIv(@4IF(INHpIv(111̀HHC`AFqhI~(UAF@A^cH8D[ E#AF=eDSE~f.EA~fAAF0w  IV(HC`INHrHIv(@4IV(INHrIv(IF(S`INHpIv(@4IF(INHpIv(HUAF0~AF01I~(D$4@I1H)HxIv`1LpAI>II@ AAA 1IV`IAdžʃfIID@ 1EH@M,AdžAIN`1A E1IʃfDVIA fAAA9 AAA=eLA=KEAdž1IN`A6fDA=@2E HtD>D8FDND9DND9HLfDND9 DND9 DND9 DND9' DND9 DND9 HDD9uI9vDND9tHI)D)9A4 AA FIAʃfDIIDP EA@At111LiA'HC gDLHƒ/AF"IF8HpHh IV@IN(Mn)AIL9H4M~@HI~(D)MnIF8AM9HpvbIF@1HI~A)EHƉL$ LH $\IF8IVHDIV(H $tH9vH+T$ IvH{`l~HC`sIV@1HI~HLH $IF8M~(H $PDM~(t%I9v HIvH{`D)~HC`IF8IF@AFIHx(Iv(H3@HH(IF@HxI~@HzINI~(tAIV(IF8I9Vuˋ@Dt H9HI~(IF811fDIF8DxDEt#IV(H9v)IvH{`S}HC`IF8IF@AF[Hx8Iv(H3@HH8IF@HxI~@HzINI~(tAIV(IF8I9VuDhDEt H9 HI~(IF811@IF8hDt%IV(H9v)IvH{`|HC`IF8DAFgDXDEt`IF(HPI;VvHq1I~(\HHIV11IN(HK` IV(INHBIF(HC`H1|HC`AFqHI~()IvH{`{HC`=)IvH{`{HC`111{HC`IF(IVHHIN(IF(IVHHIN(IF(IVHHIN(IF8H"8IN(IvHQ@ǃxDIV(҃Hx҃Hx(҃Hx8ЃЈIF(IVHHIN(IN8HI IV(INHBIF(IF8H@HIV(INHBIF(IF8H@HIV(INHBIF(IF8H@HIF(HPIV(AIF tAIF(IVHHIN(IN8I IF8Hxt7IV(@ INHrIv(IV(INHBIF(IF8@ IF8pDIF@AFE@D$IF8AI1H)HxIv`L$fAI>IIH ҃'LdIvH{`AV(7yHC`IF89IF8IF8IF(IVHHIN(HK` IV(INHBIF(HC`HIV(INHBIF(HC`HIV(INHBIF(HC`HIF(IVHHIN(HK IV(INHBIF(HCHIV(INHBIF(HCHIV(INHBIF(HCHD$FIF(IVHHIN(IF(IVHHIN(IF(IVHHIN(IF(IVHHIN(IF(IVHHIN(IF(HPIFIV(AH tAIF(HIVHHIN(AFqI~(rAFAI~x11Hf G1AAdžIdžAdž,HGH>H58HHH AVAUIATAUHcS AOI]8 9A/HcHD9H^H89tBtXH^^^^D[]A\A]DA^(tH{x1ɃHf G1词ǃ(hfDHcHH9^HK0tXHSxHH)9v"@@,HCH[]DHt$H@l$Hu;H@[]HKxHHw`GhjH[]@AUATAUSHHHt8yu/Glu(HH=}HHHIuMuAHD[]A\A]fAVHAUATUSHyol/I֋W(IChDHC0EH{xH)ILLIċC(LAs(|trDk(D9siAUA<u^DHcHSAE9Dw?1DH~tWs(H{0E)DH~HC0DHCxD[]A\A]A^DHCx1MD kl[]A\A]A^@Hs`ChHffHHT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$H$HT$HD$HD$ D$D$ 0HD$ HÐUSHHHt+yu"WluwGhuHClH[]Hw`GhuܐAUATUSHHHt5yu,ol9wXAAtZKhu_S(uDcXDk\H[]A\A]tHyt8H{xDD9W\tKhtHs`ChHAuklfUSHHHtqyuhOhum1H}S(tC@twH{0x11H2H{ w{zHDwH[]DHw`Ghzkltkl{H{x'H{8wrfHt;G=yu!G(u*69w#F0w,f=Otff.Ht*G=yuOh1HWtHG`H@=OtHfHt*G=yuOh1HWtHG`H@=OtHfHSHtFG=yu5{1xHt'{Ot[D[H)D=OtH[@f.1Ht OtfDGT@Ht:G=yu)HtGll^tHWp]HHE=Ot1f.AUATIUSHHHpHt{ltuHCptMklLk LvLHvH|OzHHHCptkLvLHvHHtH[]MLA^A\A] N16wfDMklufDH[]A\A]DClH[]A\A]fDAWAVAUATUHSHHAHyHI@(@, H@p@@X@\@@DEtOE1E1A0EGXHDEtcA@< vA+AMwEB$^I t@LtH1[]A\A]A^A_HDAEuDAGt=OuAG@uAG@H1uHXHxHIG tlNHH1HAuAWA1Ot#AfɃခyD ETEgDOAL11AGh?A}111LT$@MH|$ LT$@IE HG`AE??|$,Au w EHEAHIDLHAE ЃAEA?A?HIAE@?@IfAEN?N?IlAudt[9s8EME7HEAHI9rމˉA)D!AE`IAEL?|$D$AU`)9)A;U@AED9)AE<)IEHAM\9Gi|$AEG?fAEH?AAMxAI}hADžAADD!HP0D@9AsNE7 E'HEAHIDD!HP0D@9Aw‰@@} AøEуD$@D!DH0D@@A9sZET$@ @EHEكAHDIljD!DH0D@@B 9wDD)I)AI@EE\AEM?M?AudAE\AAEJ?AM|AI}pAADD!HP0D@9AsTE E HEAHIDD!HP0D@9Aw‰@ AøEуD$@D!DH0D@@A9sYE T$@DE HEكAHDIljD!DH0D@@B 9wDD)EI-AER?fHh[]A\A]A^A_ÐL\$ D$(AMLT$HIE L$@AED?D?A1@|$THD$ |$t$LPx HH(D`M}PA]XH=HLS[ H(D`AEM}P\$A]X=??ADžqfHD$ H@0^AEQ?Q?:)IEHrDEE`AEK?Aud|$IEh^AEx IEp`^AE|AEG?G?!HD$ H@0^AEQ?Q?HD$ H@0^AEQ?Q?E@@QHD$ H@0^AEQ?Q?e|$AAEB?AE\1E1[A^HD$ H@0^AEQ?Q?p9s8EEHUAHI9rމˉ)IE3DA@IAE{I} Ht$PD|$PILT$@D|$Qt;AUIE LT$@Sˉƒw/Ѓ1_fAEuADžHD$8LL$0IIMEx1AExLT$@IIEh D$(LT$@HD$ H@0+^AEQ?Q?I} DHLT$HLD$@:LT$HIE LD$@p9s9E~EgHUAHI9rމˉI)1DI AEI?Aud LI} Ht$PHD|$PD$QLIHLT$@D|$SD$R9LT$@IE IU0Ht LH t AEpAE6?1E1JI} Ht$PD|$PILT$@D|$Q1E1j9AuIE LT$@%mL\$ AEP?D$(ADžAEF?E1EM8EuAE8111LT$@1E18Ht$PIE HD$PD$Q8AE5?IE 5?LT$@A}Q?9fAHD$ H@08^AEQ?Q?3LT$pL\$ D$MSAC I+EcM}PA]XL\$ 1E1I} Ht$PD|$PILT$@D|$Q8LT$@IE \HD$8MLL$0IMExAEx LDIIEhLT$HL\$@D$(L\$@LT$Ht>HD$ H@0^^AEQ?Q?HD$ H@0D^AEQ?Q?sIAME|LL$0AE|LٿLT$@IEpAIED$(LT$@pHD$ H@0z^AEQ?Q?L\$ Ie111LT$@AEA#2H\$ IIE LT$@HC`1ۃE1=?AEL\$ 1E1fDUSHHru?t8DDHLNuZC[]DA\A]A^{>?u'1110DLH~0H9C tAACR?A랐UHSHuHS8BtHj0EH[]fAVAUATUSHHAASHk8}S?LUXH}PES?уUXHH}PHL$IA8HHIHH9tHA8HH9IuH}PEXLDžLFSH3L8)CHHCIHCuDLs(HLkLs(E??HD[]A\A]A^Ð}XAfDHA[]DA\A]A^f1HWfDASH7u#HS8zA?t[@RX1[@[fAVAUATUHHSHA_HVLk8H{PS@HI@I}HAM8H{PS@HIHALLHEHCHEHCHEHCHEHC HE HC(HE(HC0HE0HC8HE8HC@HE@HCHHEHHCPHEPHCXHEXHC`HE`HChHEhK@a@1HIUhIXI,$H9sVIH)HMIXI$tAM8IuHLE 4EE)D9lE ADfD 04uED9E1DAH9AD@A9oHcË4ELA A)D9E #ELG(LoADf 0MpLw(f0CLHO(LGLiLo(D1E,D4DD)ABL(fD04 EA)A9BD Lw(MFEAHOLG(E fD0F1HO(LGLQLW(D1ED4DD)ABLfD0D4EALW(EEMJAHOD LO(f0BHG(HOLHLO(D1D 4D)AE䉇4fD0(f.HE1A9깊'[]A\A]A^A_ oD 4EE)D9D LW(LwEADf 0MzL(f0C HO(LWLqLw(D1E4 D4DD)ACLfD0E 4TALW(EDIJA HGfD0HO(FHG(HOL@LG(D1D4D) A4fD0ADDD AE Ѓ4fD0D AEAA 4fD0wfD 4EE)D9D LW(LwEADf 0MzL(f0C HO(LWLqLw(D1E4 D4DD)ACLfD0E艏4 A LW(EDIJA HGfD0HO(FHG(HOL@LG(D1D4D) A4fD0nfAfD 04fD0(4D0Af.D AfD 0D 4fD0ED 4f0 D 4f0D AfD 0D4fD0E@AVAUATUS 4D0$1ANDEKD)9aAL_(IkAAHOHo(E fD0FHO(LWLYL_(D1E D4DD)CLAf04; LAHGKF EMIcE _L$Al$A)A9|E,$Lg(EAHOE Mt$fD0Lw(F!HO(LWLaLg(D1E$ D4DED)ABL%fD04݋_t|D+ @ _D)9EiHo(EAHOE LefD0Lg(D)HO(LWHiHo(1A, 4D)AL+fD0Eʉ4AAEE _J,E]A)A9DeHo(LmEAHOLo(E fD0D)HO(LWHiHo(1A, 4DE)AL+fD04B@_F+ _EA)A9E`LO(EAHOE IifD0Ho(F HO(LOLQLW(D1E D4DD)A; BL fD0Eډ4DAA)A9A ҉4fD0[]A\A]A^E$$AE ≏4fD0EADE ډ4fD0mA ꉏ4fD0fEAAE _DAE ʉ4fD0DAE ډ4fD0mDDDHOA Hw(fD0LNLO(D1HO(HwLILO(D1D 4)D0A4fD0[]A\A]A^Ë45~HG(HWHHHO(0 1LJ4f0HG(HWHHHO(0 HG(HWHHHO(1 f.4t5~)HG(HWHHHO(0 f04DHG(HWHHHO(0 HG(HWHHHO(1 1LJ4f0HE1HLJh _HLJ _HLJ ` _HX H fD0LJ4Hp H H 1fD1fHH=xuf11f HHxu0f1f HHLuHLJ HLJfLJ(LJ DATIUHS4H f 04HHC(LHSHHHK(@,HC(HSHHHK(f HC(HSHHHK(ш HS(HKHBHC(fH{HH{(.Hk([]A\f.HO(f 0Hwf0HyH{(HC(HKHpHs(1@44) 4f0 Kf.4 ~}HwHG(f 0L@f0LG( HG(HOHpHw(1@44)Hf0 4.4@f 0 4~HG(0HWHpHw( HG(HWHHHO(1 4 1f0SAVAUIATIUSH|HzX}HX HCHp H4` HHx H HH H_9f Hu HH|H HH HJ HHH9HGIT$H9MLLH11fHH=xuf11f HHxu0f.1f HHLuHǃ fHǃǃ(ǃ []A\A]A^ÃH94 XUf 04f0׃ DPDx ` 0DEDHK( Hsf0LILK(@<HK(HsHyH{(1@<4D)Nf04 AALCAHK(D f0LILK(A<HK(H{LALC(D1D4)Of04 HK HC(f0L@LC(@4HC(HKHpHs(1@44)Nf041A~D LK(HDHK Iqf0Hs(B< HK(HsHyH{(1@<4D) AA9‰4fD0~B04 _u H A9‰4f0LL HLODLHALLHH[]A\A]A^~HcHLRT4 &Ef 04 _@_HxnHz1H91fDtfHHH=uHHu0fu&1fHH=MfTtBX}HsHS(f 0LBf0LC( HS(HKHrHs(1@44)Nf04]UHs҉HC(f 0Hxf0H{( HC(HKHpHs(1@44) 4f0AB 4f0) 4f0 4f01BXf LȃfA4@L Atd҃( _fw0 _f 9 f.DfAWAVIAUIATUSHHH)H|$H%HH|$ HT$ l^pD$(HD$`HD$hHD$p·HD$D$@AAHD$81 D$@uL9DLFHFÉL$@H)ËD$(uL9DLFHFʼnL$(H)H|$ 1ַtT$(IEH)H)IEHD$H9D$tZHD$HIH|$ L$L$1t tetWHĘ[]A\A]A^A_HD$HD$@H|$HtuH|$ L$XL$@D$@HtHHL$HL$MHl^f.f.)HH_@f.$fDHIH◆pDLDHHLHH?HJ HH)HHHHH)H/ HA)LL)IHHHH)HHHHHHHH)HH)HMHtIyHvIHHHCHHHBHH fDAWHDHHAVAUIATUSHT$HD$EHXH|$HT$Ht!HD$HIAMILI9uHD$HD$IIH/ H\$IBHHH)HHHHHHHH)HH)HHH []A\A]A^HA_H|$Hl$IMHD$fE+IEsEcAkA[ESMEKECMACA{MMAsLMAKHIASIIE{MMMMLMHHD$LD$HA{HD$LD$HACHLHHHHHHIHLHD$L;\$/H/ H\$MILH)HHHHHHHH)HI)H/ HHH)HHHHHHHH)HH)D$H|$H|$u`HL$HL []A\A]A^HA_IIILCHD$[]LHH=A\HBA]HL A^HA_H|$HD$LLl$HHD$Hl$HD$HIDHD$D*DrHDbjZDZDRDJMDBzMrJMBMLMHLIHMIMMMMLMHLHHHHIBL|$HL$LIBL|$HL$LDzIHLHD$H;T$4H\$Ll$HHHIHH\$HHHDt#ITHD$IAMILI9uHD$H/ LHLH)HHHHHHHH)HI)HD$HHD$H)HHHHHHHH)HH)D$HL$HL /HD$HJIfHx FfDf.Hx &fDf.HSu&H2N3 _H{@uHLRHILHLL f3A !_A3 _E3O3 _B3 _A !_A3 _E3G3 _B3 _D؉AB !_B3 _3G 3 _3 _D؉AB !_B3 _3G3 _3 _D؉AB !_B3 _3G3 _3 _D؉AB !_B3 _H 3G3 _3 _A !_A3 _E3O3 _B3 _ADA͋ _B3 !_E3 _B3 _L9HIILHv\LZHINT@3HADA _B3 !_E3 _B3 _L9uJtHtHH2N3 _H9u[ÐE1DJHt2H1f.tH3 HHuJ IIu1fATIUSHHH H$HH$H$HHHH9uH$HQH$HAH$H0At#HtHI1DtI3IHuItLH$HAt-Ht(H$H1f.tH3HHuIvHH[H1]A\HH[]A\D _f.Ht fD1f.Ht @1f.f.{f.AWAAVAUATUSGHLW8LGHAJ|MJhHD$G LIjp)-M<AB $$ =syntax errorError: discardingError: poppingmemory exhaustedCleanup: discarding lookaheadCleanup: poppingPT_GNU_EH_FRAMEPT_NULLPT_LOADPT_DYNAMICPT_INTERPPT_NOTEPT_SHLIBPT_PHDRPT_TLS$end$undefinedLNAMEPLUSEQMINUSEQMULTEQDIVEQ'='LSHIFTEQRSHIFTEQANDEQOREQ'?'':'ORORANDAND'|''^''&''<''>''+''-''*''/''%'UNARY'('ALIGN_KBINDSQUADLONGSHORTSECTIONSINSERT_KAFTERBEFOREDATA_SEGMENT_ALIGNDATA_SEGMENT_RELRO_ENDDATA_SEGMENT_ENDSORT_BY_NAMESORT_BY_ALIGNMENTSORT_NONESORT_BY_INIT_PRIORITY'{''}'SIZEOF_HEADERSOUTPUT_FORMATFORCE_COMMON_ALLOCATIONOUTPUT_ARCHINHIBIT_COMMON_ALLOCATIONFORCE_GROUP_ALLOCATIONSEGMENT_STARTINCLUDEMEMORYREGION_ALIASLD_FEATURENOLOADDSECTOVERLAYDEFINEDTARGET_KSEARCH_DIRMAPNEXTSIZEOFALIGNOFLOADADDRMAX_KMIN_KSTARTUPHLLSYSLIBNOFLOATNOCROSSREFSNOCROSSREFS_TOORIGINFILLLENGTHCREATE_OBJECT_SYMBOLSOUTPUTCONSTRUCTORSALIGNMODSUBALIGNPROVIDEPROVIDE_HIDDENAS_NEEDEDCHIPABSOLUTENEWLINEENDWORDNAMEWORDASSERT_KLOG2CEILPUBLICDEFSYMENDTRUNCATEINPUT_SCRIPTINPUT_MRI_SCRIPTINPUT_DEFSYMCASEEXTERNVERS_TAGVERS_IDENTIFIERGLOBALVERSIONKINPUT_VERSION_SCRIPTKEEPONLY_IF_ROONLY_IF_RWSPECIALINPUT_SECTION_FLAGSALIGN_WITH_INPUTEXCLUDE_FILECONSTANTINPUT_DYNAMIC_LIST','';'')''['']''!''~'$acceptfilenamedefsym_expr$@1mri_script_file$@2mri_script_linesmri_script_command$@3ordernamelistmri_load_name_listmri_abs_name_listcasesymlistextern_name_list$@4extern_name_list_body$@5ifile_listifile_p1$@6$@7input_list$@8input_list1@9@10@11sec_or_group_p1statement_anywhere$@12wildcard_namewildcard_maybe_excludefilename_specsection_name_specsect_flag_listsect_flagsexclude_name_listsection_name_listinput_section_spec_no_keepinput_section_spec$@13statement$@14$@15statement_liststatement_list_optlengthfill_expfill_optassign_opassignmentopt_commamemory_spec_list_optmemory_spec_listmemory_spec$@16$@17origin_speclength_specattributes_optattributes_listattributes_stringstartuphigh_level_libraryhigh_level_library_NAME_listlow_level_librarylow_level_library_NAME_listfloating_point_supportnocrossref_listmustbe_exp$@18memspec_at_optopt_atopt_alignopt_align_with_inputopt_subalignsect_constraint$@19$@20$@21$@22$@23$@24$@25$@26$@27$@28$@29$@30$@31atypeopt_exp_with_typeopt_exp_without_typeopt_nocrossrefsmemspec_optphdr_optoverlay_section$@32$@33$@34phdrsphdr_listphdr$@35$@36phdr_typephdr_qualifiersphdr_valdynamic_list_file$@37dynamic_list_nodesdynamic_list_nodedynamic_list_tagversion_script_file$@38$@39vers_nodesvers_nodeverdepvers_tagvers_defns@40@41opt_semicolon%P:%s: file format not recognized; treating as linker script Reducing stack by rule %d (line %lu): %F%P: unrecognised keyword in MRI style script '%s' %X%P:%pS: unknown phdr type `%s' (try integer literal) %X%P:%pS: PHDRS syntax error at `%s' Cy@%y@x@{@[@[@[@[@{@{@[@[@{@{@{@~{@m{@\{@K{@:{@){@{@{@[@[@z@z@z@z@z@[@[@z@z@z@[@uz@gz@[@Zz@Mz@@z@3z@%z@[@[@z@z@y@y@y@y@y@[@[@[@[@[@[@[@[@[@[@[@[@y@y@y@ty@n@m@m@m@m@[@m@m@m@m@m@vm@hm@[@Ym@Gm@5m@%m@m@m@l@l@l@l@l@l@sl@Ul@3l@l@k@k@[@[@[@[@k@[@k@k@k@k@qk@Jk@#k@[@j@j@[@j@_j@.j@i@i@ji@i@9i@i@h@h@uh@Sh@h@g@g@mg@Wg@g@g@f@[@f@f@[@f@[@f@f@[@yf@kf@af@Bf@)f@f@[@[@[@[@f@f@e@e@e@e@e@e@e@e@e@ve@ie@\e@Oe@Be@[@[@'e@d@d@d@d@[@[@[@[@[@[@[@zd@[@ed@[d@Hd@5d@[@[@[@[@c@c@c@[@c@c@c@[@c@[@c@c@uc@Sc@1c@'c@c@b@b@b@b@b@b@b@ib@Nb@3b@b@a@a@a@a@s@s@s@ds@Is@.s@s@r@r@r@r@r@zr@br@Jr@2r@r@r@q@q@q@q@~q@fq@=q@%q@q@p@p@p@p@p@wp@jp@\p@Np@@p@2p@$p@p@ p@o@o@o@o@o@o@o@o@Zo@Go@)o@[@n@n@n@n@n@[@n@jn@[@Un@Kn@MIMSM[MdMlM           ::./0=>?@ACDEFMNOPXYZ[\]^cdejklw&Cgnopqrtuvyz|}~ : ::12%%:%%%%%%%%%%%%%%%%%%&'345<BLQRSTUVW_aqwxs;; C%%: %%%%%%%%%%%%%%%%%%%% !"  :;;CKd; ;m  $%%m;$:%( %m GHIJK%%h]h_$%;%&$:%%  %ia;'%; %::; )*+,-68C`bfw%%%%%%6789%6;%:f%%%%%%%h6767;$%%%% MqvKW^$I   : ;:;6688o2 ;CQ   TG:m;m 6767mh6789m%m'm:: f12 !"#$%&'()*+,c:23% !"%nopG:% !"`bGHIJK%&' %%345%%% %%<%%%BRGHIJKL%%%/QRSTUVW%%s%_aqswx !";;  ;%%C:%%K%&':P% !"%%345%$<d%%%%BjklM%%%%%L%%%wQRSTUVWC%%% B_Ka;HPJ;p qVwxd jklkwr%&' 345;<%%CB*+K:L%PQRSTUVW_adjklq%wwx%&'(h]_$%;345%:&<%% B%iaL ;%%QRSTUVW::%%_a%%% !"q%;%wx%%&'%:%%%%%%%345%h;<$B%%L%%QRSTUVW_a !"qwx%&'345W%<XBf>LQRSTUVW _a)*+,-q68wxC !"`bfjklw !"./0=>?@ACDEFMNOPXYZ[\]^cdejkl$w./0=>?@ACDEFMNOPXYZ[\]^cdejklw !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !"&$&C !"%Cgnopqrstuvyz|}~gnopqrtuvyz|}~ !" !" !" !"Wg?k0`b}1@"L]'hi@OPxPVMV__-dd4_g[V^D(%VVajf,Tf1wqO=tuwxcz{|}~cq:;=yzxV`{abc'()|`ahi{|}} !"#$%&'()V >"#?@A>??@NgE#$%&'()     +mnopqrstuFEG./H9,%&'()57@E6XI 789`    :G<nUHBC\,^QUyYop=>iEIZ2[789\]^evfg:z,mmnopqrstu$mrG,-H,I789: $*+.04;3<?BGALCHJ3MVVRWY_apekrsw !"#$%&'()s    !"#$%&'() !R&'vl()- FjlsS !"#$%&'()789 !"#$%&'() !"#$%&'()*+,-./0123456*789:; !"#$%&'(<)*+,y-./0123456789:; !"#$%&'()< !"#$%&'() !"#$%&'() !"#$%&'() !"#$%&'() !"#$%&'() !"#$%&'() !"#$%&'() !"#$%&'() !"#$%&'() !"#$%&'() !"#$%&'() !"#$%&'()5 !"#$%&'() !"#$%&'()6 !"#$%&'()7 !"#$%&'()8 !"#$%&'()9 !"#$%&'(): !"#$%&'()T !"#$%&'()h !"#$%&'()n !"#$%&'()o !"#$%&'()t !"#$%&'() !"#$%&'() !"#$%&'()I !"#$%&'()IJJK !"#$%&'()KLMNOPQRSTUVWXYLZ[\MNOPQRSTUVWXYZ[\ !"#$%&'()# !"#$%&'() !"#$%&'() !"#$%&'()~ ]8=kQ2>Jv@AS/bBCDE!DXZ~Ku*l&%+FNK)Ij GHdeqqqqqq7qqqqqqqqqqQqqqBqqqqq1qcqqqkqqqqqq/qr#qqqqqqqqFqqqqqqqHqqqqqqqqqqqqqqqqqq"qqs$qqqqqqqqqqqqqq-qqqqqSqqq; YS> < dZ]TUOQPSsH=@F?BCDEAG.36juiqsd^qsVpHV_6r(1/ !$%4&'* eX[\>_ -87o_lvkrtWm#)onJGILN[^IJUqXYRad`KZ+20,#"59fgb`4,4WgcfT\)  :wtmca4p;<*MN]kbex./01257:=QKit   pw36-pNMhh4$OLln+RNj8%PB4C&9wvxz?u} ?>@{|uDy~@@'A!E("FqqqqqLqqqqqTqqAqxebqpAq-jqqqqq*q+,89q;qqqq`qqqqqqqq^`qbceqqiklmrsqtq~quxIeqqqPqqqqqqqqqqqqqqqqqqqqqzq*qqqwq"q#qq p4qq<qqqppp]dqqp qqgqqq=j{}qq$(qqqq  qqp"%q'p<q-qqq=qqqqp-qqqqqqqq?qq#qqqCqqqqqqqqqqqqqq$qqqq qppppqw 4H\p>co____qqqpppqqqppqqqqLpqq^q^qDqqqqqqq1.q_qqqqqqqqqqqqqq`qqqiqqqVrqq\+qp"qq,hq(qqqjqqq&:NpUppqqqqqqqpsqq\vxqqqq q(qqqqqqqqqqqbq}q>q"qqHq(qoq>qqqqqq%qqqqq"qqqqmqqqqqqqqqDDqqqqqqqqqqqqqqUqqqqqD`aOqqqqqqUUqqqqDWY[D]qqq NQOOqUSOUcqqqqqqdeqqglwyqqqqqGq qqqOOqOOqqqqqqqq qz|GGqq `qqqqqqqq  qqsMBmNxMy\x NMMMMMMMMMMMMMMMMMMMMMd]y\5\L\MMMMMM<]M M\MMMM$M]*MM3M<MBMIM\MsMMMMMMMMMMM M&M=MKMSMZMgMrMyMA\_]MMMMM$]MMM\MMMMMMMMMMM MMMMx\/M6MCMD\LMeMUM]MlMvMMzM{MtMMM'^MMMMMMj]aMM\MMMMM]M MM4\ M)M>MCMNMYMaMuMMMMMMMMMMMM^MMMMMMM$M(M6MIM[MgMxM|MMMMMMMMMMMMMK^MMMMM%M3MEMTM_MqMMMMMMMMMMMMMK_MM^$M9MJMVM[M`MlMxMMMMMMMMM&M6MAM=MFMUM\MfM{MMNMMMMMMMMMMMMM6^MMM M M" M+ M; M@ ME MJ MP MZ M_ Md Mi Ms M M M M M M M M MN M M!M !M!M!M'!M+!M/!M  !!&(*//56;<=>?@ABCDEGIKNPRTVXZY]`_cgklnprww| 5BKV_js|    #$)(.-4;CDHIMOTYZ_agikoqwz   %(.0 79;@B6LNLTSZ[\]^bcdhinotuz{  "++99CDHLPW[cfjnry}"% ! :; #$&'()*+,-./0123456789<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~%F%s: file not recognized: %E %P:%pS: ignoring invalid character `%s'%s out of dynamic memory in yyensure_buffer_stack()out of dynamic memory in yy_create_buffer()fatal flex scanner internal error--end of buffer missedfatal error - scanner input buffer overflow%F%P: read in flex scanner failed out of dynamic memory in yy_get_next_buffer()/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/ld/ldlex.lfatal flex scanner internal error--no action foundout of dynamic memory in yy_scan_buffer()out of dynamic memory in yy_scan_bytes()%F:includes nested too deeply \%03o%F%P: EOF in comment in script in expressionbad buffer in yy_scan_bytes()%F: macros nested too deeply @@Â@ւ@ς@݂@.@@D@@%@V@@^@@@Մ@@ć@@@@@@@q@]@I@5@@@@Ն@B@Ҍ@@@l@X@D@0@@@@|@h@T@@@,@@@@܈@Ȉ@@@@x@d@P@<@(@@@@؇@@@@@@@@̔@@@z@V@B@.@@@@ފ@ʊ@@@n@Z@F@2@@ @@@΋@@@@~@j@@@@ڎ@Ǝ@@@@v@b@N@:@&@@@@֍@@@@@r@^@J@6@"@@@@@ރ@ʃ@@@@z@0@@f@d@,@@F@F@@@@~@j@V@B@.@@@@ޏ@ʏ@@@@z@f@R@>@*@@@@̉@@@@@@@z@f@@@Ւ@@@z@]@@@@@x@,@F@ޓ@ʓ@@R@@@n@K@<@&@X@,@F@F@@ @@@ΐ@ΐ@ΐ@ΐ@ΐ@ΐ@ΐ@ΐ@ΐ@ΐ@yylexd&++^:&--:/!//zd^/1z21//2364064J0430"20h;99<=yf<#;<<9h=yJ@f@@f@@@kk@@mm{@|$|{| (((pp~[p~qpq[(~(ppq~ q qq%(( & rrrrssr'tstrr@sst s tt)*@ __+,-/0'''QQ~L''L'~X X x x1'X''34jGjGHHrG5HGGrHHjj68:;<=>?@ABIDIEAAAI##FGIIHNINJAKANLMNONNAP##QRASARARSTShShURVZS[_hRR`SSbhh\\\lllcde\\\\\\f%%hljlko%prs%%%uvwz\\\\\\gggt{|l~lggggggyg.g.gg~.u.yg..vggggggggggtgoooooooooooooooooooooooo     !"$&'($*,./13456789:;<=>?BCDEFGHIKLMNOQRTUVXZ[999\]^_`a999999bcdg9h9ijklnpqrntvwyz|~99999999  \\ \\\ \\\\\ \\\\\\ !"$%'(),-./035789:;\<=>?BCDEFGHJKMPWYZ[\]^\\\ll_lllLlllll`lLabdcLelllllcfghijklmortuvwxyz{|}~xllll     "#$%&'(*+,-/0123452679;<=>?A@BC2@EFGHIJKLIMNP@RSTUVWXYIZ[\]^bcefghinopqrstuvz{}~      !!!!!!!"""""###########$$$$$$$%%%%%%%%%%&&&&&&&&&&''''''''''((()))) ))********++++++++,, ,,,,,--. ........./ /////////00000000001112222223333333333444444444455555555556666666666~}|{zyxwvutsrqolkjihgfedcb`_^]\[ZYXWVUTSRQPONMLKJHGFEDCBA@?>=<9876543210/-,+*)('&$"     }|{zywvutqponigfedcba`^]\ZYWVUTPOK?61.-,+*)('&%$#"!     }xwvulba[ZYWUTOMHGFEBA?>875,$"! !"#$%&'(()*+,-./01234567%89:;<=>?@A%B%%%%C%D%%E%%%%%%%%%F%%G%%H%%%%IJKLMNO<QRSTUVWNN\=]   / MNOQRSTCUVWZ4C[0 >x!"y?#$%&'^(}`a_b~XYZ[X\]^_`abcdefghhijklmnopqrstuvwexyz{|}ee~eeeeeeeeXettttteeeeeeeeeeeeeeXYZ[X]^_`abcijklmnXXXXXXXXXXXX/XXXXXX<N4NCd8OeNPN9kf888gXQXXt88uCv03wXXXXXXXXXXXXXXXXXXXXXRNzNSN{N8N8NT8|C888XUXX88nopqCrsXXXX +-IJKN=>NNm8n88hN+,Z'([3 4 ST5NullljININNkNrNs8l8DtD88$8}~mIIUeVfDvDNmtlllN%AAA8DDDD88NN888CDDDDNCNNNN.N8888-8888999lll  999999b NcNdGD D 8ef88999999@@@DDABABAACNDND C!8"#E$%88&'ABABAA(C)D*D+C,-./EGGG012345GHGIGG6J789K:;J=>?LM@ABJC<DEFGHGNGNGGJJKLMNOJPIQRSJjjjTUVWXYjjjjjjZ[\]^_`abefijklmnocgpqrstjjjjjjduhvwxyz{|}~999999999  999999        !"#$%&'()*+,-./0123456789:;<=>?@ABCDFGHIEJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijknopqrstluvwxmyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX[\]Y^_`abcdeifjkZglmnopstuqvwxhyz{|}~r     PPPPPPPPPPP2222222255558888888!!!!!!!##~}|{zyxwsrqponmlkjihgdcba`_^]\[ZYXWTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!      |{zyxwvuqpoihga`_^]\YXWVURQPOMLKJHFEDCBA@?<;:76210/*)&"1   41F><;7icYXWVF;:76431.-,+*)    !!g!ooooo!!!!!!!!!!o!""#$%$$gg&$$$$$$$$$$$$$$'())))*+!!,ggA-ooo!!!!o!!!oo!!!!!!!!!!!!!!!!!!!!o!-""#$$../$$$$$$$$$$$$$$$$$$$$$$$$$$$$012222*+!,-!o!!!!!!!!o!!!!!!!!!!!!!!!!!!!!!!!!!!"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$222!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$3$$$$$$$$$$$$$$$4$$$$$$$222!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$53$$$$$$$$$64$$$$222!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$22!!!!!!!!!!!!!!!!!!!!!!$$$$$$!!!!!!!!!!!!!!!!!$$$$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!RF<pr2T U U Q U : L U YU U 8 7 6 bU X5 cbwbrjr q# + ^ ) , '  U U ? U ; U U U 2  U : # 5 U nU U ! U A!U U  U ]   i U U  U U U ;      U U U U !  U  U  U #   U U & U  U U U U U U  U U U  U U        U U U U _U U U U U U U 69     x { , ,    { 5 ~ ;  M~ r y t s s r S V [ L  U k t i h q u d e c t g o p n o Z > E < ; B F 7 8 6 E 9 @ A ? @ - c b TU U M I U R S I G Q Q N ? 8 O N E J : ? E = G D 1 A 8 4 9 , ; / 8 6 8 4 + % & + '  - #   + %     $  $ %  #            )      Y ; ~  x { s t v VE y |  ~ y x y u u w v d y l t l u n y r u e i X m q ` g i l g E A h i _ \ W c \ R F V F : 4 4   +   }QeCZLPSbRpr|v}H!%.2)-:7(5JEK8?RTPLG[YV^XZdilYfp_eDStyfmot}ot;    %)&0*8+*9)=4DGGH;KH?M;PF<PV-@RaQ[VNikknm_absoffu]dyfgyuovj}qvs     &* +(,:;-;/04A>B9HMJ,M[?PHQUTHTJY;LM`V^XXefXfZ[_gdh_noQnhntqngsxU    +"/"03*;+;3#65&EC57ED8H*A<23REGBCSFIN>/QASN^PS7YTJKj]_Z[n`chXIi[z{qpartpwuVwi{}{_rxn  %$()!#)%+&')*U R]hs~    # . 9 = F Q \ g r        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR &,+"#$%-.'(! yw*),+ &,+"#$%-.'(! *)$%yw "#$%-.(! ~ ~~ ^Hzx>?^H>?zx;5eqZrcDal;5qrD;5eqZrcDalX74pB`NM}db74pNX74pB`NM}dbAYCW6/o2LI_JA6o2IAYCW6/o2LI_JC=P|fiv[3=P|sv=P|fiv[3<V<@<@VOnOOn1tuKtu1tuKg]gg]R0jR0j\GG\GhFEhFEhFE:::kk888{{{QmQm9T99TSSUU%F%P: invalid hex number `%s' %F%P: Error: unable to disambiguate: %s (did you mean -%s ?) %P: Warning: grouped short command line options are deprecated: %s %F%P: use the --help option for usage information %F%P: unrecognized -a option `%s' %F%P: unrecognized -assert option `%s' %F%P: unknown demangling style `%s' %s: emulation specific options: --build-id[=STYLE] Generate build ID note --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] Compress DWARF debug sections using zlib Default: none -z common-page-size=SIZE Set common page size to SIZE -z max-page-size=SIZE Set maximum page size to SIZE -z defs Report unresolved symbols in object files -z muldefs Allow multiple definitions -z execstack Mark executable as requiring executable stack -z noexecstack Mark executable as not requiring executable stack -z unique-symbol Avoid duplicated local symbol names -z nounique-symbol Keep duplicated local symbol names (default) -z globalaudit Mark executable requiring global auditing --audit=AUDITLIB Specify a library to use for auditing -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 --no-eh-frame-hdr Do not create .eh_frame_hdr section --exclude-libs=LIBS Make all symbols in LIBS hidden --hash-style=STYLE Set hash style to sysv/gnu/both. Default: -P AUDITLIB, --depaudit=AUDITLIB Specify a library to use for auditing dependencies -z combreloc Merge dynamic relocs into one section and sort -z nocombreloc Don't merge dynamic relocs into one section -z global Make symbols in DSO available for subsequently loaded objects -z initfirst Mark DSO to be initialized first at runtime -z interpose Mark object to interpose all DSOs but executable -z unique Mark DSO to be loaded at most once by default, and only in the main namespace -z nounique Don't mark DSO as a loadable at most once -z lazy Mark object lazy runtime binding (default) -z loadfltr Mark object requiring immediate process -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 now Mark object non-lazy runtime binding -z origin Mark object requiring immediate $ORIGIN processing at runtime -z relro Create RELRO program header (default) -z norelro Don't create RELRO program header -z separate-code Create separate code program header -z noseparate-code Don't create separate code program header (default) -z common Generate common symbols with STT_COMMON type -z nocommon Generate common symbols with STT_OBJECT type -z stack-size=SIZE Set size of stack segment -z text Treat DT_TEXTREL in output as error (default) -z text Treat DT_TEXTREL in output as error -z notext Don't treat DT_TEXTREL in output as error (default) -z textoff Don't treat DT_TEXTREL in output as error (default) -z notext Don't treat DT_TEXTREL in output as error -z textoff Don't treat DT_TEXTREL in output as error %F%P: bad --unresolved-symbols option: %s %F%P: unrecognised option: %s %F%P: -r and %s may not be used together %P: SONAME must not be empty string; keeping previous one %F%P: invalid common section sorting option: %s %F%P: invalid section sorting option: %s %F%P: invalid argument to option "--section-start" %F%P: missing argument(s) to option "--section-start" %F%P: group ended before it began (--help for usage) %X%P: --hash-size needs a numeric argument %F%P: no state pushed before popping %F%P: invalid argument to option "--orphan-handling" %F%P: bad --ctf-share-types option: %s %P: no file/directory name provided for map output; ignored %P: cannot stat linker map file: %E %P: linker map file is not a regular file %P%F: cannot create name for linker map file: %E %P: SONAME must not be empty string; ignored %P: missing --end-group; added as last command line option %F%P: -F may not be used without -shared %F%P: -f may not be used without -shared Shared library control for HP/UX compatibilitySpecify target for following input filesForce common symbols to be definedForce group members out of groupsUndo the effect of --export-dynamicEnable support of non-contiguous memory regionsenable-non-contiguous-regions-warningsEnable warnings when --enable-non-contiguous-regions may cause unexpected behaviourAuxiliary 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 useProduce an executable with no program interpreter headerAdd 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 readonlySend arg to last-loaded pluginIgnored for GCC LTO option compatibilityIgnored for GCC linker option compatibilityIgnored for gold option compatibilityIgnored 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 SYMBOLRequire SYMBOL be defined in the final outputDon'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 unknownOnly set DT_NEEDED for following dynamic libs if usedAlways set DT_NEEDED for dynamic libraries mentioned on the command lineIgnored for SunOS compatibilityDo not link against shared librariesBind global references locallyBind global function references locallyCheck section addresses for overlaps (default)Do not check section addresses for overlapsCopy DT_NEEDED links mentioned inside DSOs that followDo not copy DT_NEEDED links mentioned inside DSOs that followDemangle symbol names [using STYLE]Do not allow multiple definitions with symbols included in filename invoked by -R or --just-symbolsDo not treat warnings as errors (default)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 sectionsKeep exported symbols when removing unused sectionsSet default hash table size close to Write a linker map to FILE or DIR/.mapUse less memory and more disk I/ODo not allow unresolved references in object filesAllow unresolved references in shared librariesDo not allow unresolved references in shared libsProvide a script to help with undefined symbol errorsCreate default symbol version for imported symbolsDon't warn about mismatched input filesDon't warn on finding an incompatible libraryCreate an output file even if errors occurOnly use library directories specified on the command lineIgnored for Linux compatibilityReduce memory overheads, possibly taking much longerReduce code size by using target specific optimizationsDo not use relaxation techniques to reduce code sizeKeep only symbols listed in FILESet runtime shared library search pathSet link time shared library search pathCreate a position independent executableSort common symbols by alignment [in specified order]Sort 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.Add data symbols to dynamic listUse C++ operator new/delete dynamic listRead export dynamic symbol listWarn 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 an object has alternate ELF machine codeReport unresolved symbols as warningsReport unresolved symbols as errorsInclude all objects from following archivesUse wrapper functions for SYMBOLUnresolved SYMBOL will not cause an error or warningPush state of flags governing input file handlingPop state of flags governing input file handlingControl how orphan sections are handled.Show discarded sections in map file output (default)Do not show discarded sections in map file outputEmit names and types of static variables in CTFDo not emit names and types of static variables in CTFHow to share CTF types between translation units. is: share-unconflicted (default), share-duplicated-pie--shared--library=%s%P: %s: missing argument nodefinitionsnosymbolicpure-text--defsym%F%P: invalid number `%s' Usage: %s [options] file... Options: @FILERead options from FILE%s: supported targets:%s: supported emulations: ELF emulations:both Report bugs to %s ignore-allreport-allignore-in-object-filesignore-in-shared-libs%F%P: bad -plugin-opt option %s%c%s%F%P: -shared not supported %F%P: -pie not supported descendingascending.text-segment.rodata-segment.ldata-segmentP,placewarndiscardshare-unconflictedshare-duplicated%s%s%s%s%s%s.map%P: unrecognized option '%s' %s-%c%s-%s%sKEYWORDSet architecturemri-scriptRead MRI format linker scriptdcdpdependency-fileWrite dependency fileforce-group-allocationSet start addressExport all dynamic symbolsno-export-dynamicenable-non-contiguous-regionsLink big-endian objectsLink little-endian objectsauxiliaryfilterIgnoredgpsizesonameFILENAMEPROGRAMno-dynamic-linkerSearch for library LIBNAMElibrary-pathDIRECTORYsysroot=Set emulationprint-mapnmagicDo not page align datano-omagicSet output file nameOptimize output fileout-implibGenerate import libraryPLUGINLoad named pluginplugin-optfltoflto-partition=fuse-ld=no-map-whole-filesQyemit-relocsrelocatableGenerate relocatable outputjust-symbolsstrip-allStrip all symbolsstrip-debugStrip debugging symbolsno-strip-discardedtraceTrace file opensRead linker scriptdefault-scriptRead default linker scriptdTrequire-defined[=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 librariescall_sharedBstaticdnnon_sharedBsymbolicBsymbolic-functionsno-check-sectionsno-copy-dt-needed-entriescrefOutput cross reference tableSYMBOL=EXPRESSIONDefine a symbol[=STYLE]disable-multiple-abs-defsembedded-relocsGenerate embedded relocsTreat warnings as errorsno-fatal-warningsCall SYMBOL at unload-timeforce-exe-suffixno-gc-sectionsno-print-gc-sectionsgc-keep-exportedhash-size=Print option helpCall SYMBOL at load-timeMapFILE/DIRno-define-commonDo not define Common storageno-demangleDo not demangle symbol namesno-keep-memoryno-undefinedno-allow-shlib-undefinedallow-multiple-definitionAllow multiple definitionserror-handling-scriptno-undefined-versionDisallow undefined versiondefault-symverCreate default symbol versiondefault-imported-symverno-warn-mismatchno-warn-search-mismatchno-whole-archiveTurn off --whole-archivenoinhibit-execnoinhibit_execnostdliboformatSpecify target of output fileprint-output-formatPrint default output formatprint-sysrootPrint current sysrootqmagicreduce-memory-overheadsno-relaxretain-symbols-filerpathrpath-linkCreate a shared libraryBshareablepic-executablesort-common[=ascending|descending]sort_commonsort-sectionname|alignmentspare-dynamic-tagssplit-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 sectionTtext-segmentSet address of text segmentTrodata-segmentSet address of rodata segmentTldata-segmentSet address of ldata segmentunresolved-symbols=[=NUMBER]dll-verboseversion-scriptversion-exports-sectiondynamic-list-datadynamic-list-cpp-newdynamic-list-cpp-typeinfoUse C++ typeinfo dynamic listdynamic-listRead dynamic listexport-dynamic-symbolExport the specified symbolexport-dynamic-symbol-listwarn-commonwarn-constructorswarn-multiple-gpwarn-oncewarn-section-alignwarn-textrelWarn if output has DT_TEXTRELwarn-shared-textrelwarn-alternate-emwarn-unresolved-symbolserror-unresolved-symbolswrapignore-unresolved-symbolpush-statepop-stateprint-memory-usageReport target memory usageorphan-handling=MODEno-print-map-discardedno-ctf-variablesctf-share-types=ޤ@@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ȧ@ק@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@@ޤ@@ޤ@ޤ@ޤ@u@@@ޤ@5@ޤ@ޤ@O@e@@@ޤ@ޤ@J@@@ޤ@ު@ޤ@@@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@@@@@,@B@С@ɩ@:@ޤ@ޤ@@С@Ҩ@@ޤ@@:@@ @ @6@ޤ@L@X@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@ޤ@i@@@@H@5@@С@ŭ@ݭ@@@u@ @@С@H@[@j@v@@@@@@ү@@@@@@ɩ@s@@@@@ @@@д@@@<@R@'@@@ó@@@@@@DZ@@@@@@@@@@A@I@1@=@@@@"@@@@@@@@@f@r@@@-@G@Z@r@U@a@t@@@@+@F@R@a@z@@@@@@-@@̹@@^@@@@9@H@b@x@@Ǹ@Ӹ@@@@-@P@_@k@w@è@@@a N`M NAAM N+]bbsNM Ncc/ N' NE NddMH NdK N/ N[ Nq NMQeeFN N NE N NM N8MhMM\ N\ N Nff]M" NFF]Mg) N1 NGGN@M8 Nh? NpMS NIH NMP NMNllu Nb N} NLL NM N0Mm}N N NMMXM Nnn N NNNM NM Noo/ N NO N N/ N NG N5 N< NN N]MY NM^ NMn N0Mz N`Mw N`M NM NqqM Nrr Ni NRR/ NM Nss N NSS NNMN0M!Ntt'NMTT/ N8NKN/ NZNuNyMuuN`MxN NMQNMNMNvNV MNxxNNXXHMNxMNyyNNY_]MN(($N2N))<NKNMHNMhNeNvN@MsNxMN NMNN^NNMNNNN0MNPMNxMNMNMNMNNN<NNNN^NPMgN xMNNNNNM9kNNNNMNHMNxMNMNM%NM6N(MVNIN3kNN[NtNxNXMNNNNNMNMNMN M N'NBNMXMXNmNNNNMNMNMNN N M/N>NPMGNsNONmNNNNNMNMNNN@NN/ NxNN_]NN_]Nm^N&NtNN1N@NLN(NdNpN}N`NNV]NNNNNNNNNNNNNNN8N0N>NNNkNFNpNNFNNNFNNNFNNNFN N*NFN9NVN`NNrNN|NN/ N@NNN`NNNNNNNN/ NN-NNCN_N/ N NzN@NNhNNNNNNNNNNN(NN`N/NNNNHNNNMNNNfN @NqN xN{N NNNNNNNNNPNNNNNp@@@@@p@@p@p@@p@@@p@@@@@@@@@@@@@`@H@8@@@@@@@P@@@@@@@`@@@_@@@@Z@@@@@@@n@@@1@@@@p@P@0@8@@@@@b@@@@@@@`@?A?A?A?AYA?A?A?APA?A?A?A?ApA0A?AApA(AAAAAAAAA` AAP AAA A Ap A A A0A@AA`A9A9A9A(AA4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4Ap4A4A4Ap4A4A4A4A4A4A`4A4A4A4A4AP4A04A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4Ap4A4A4Ap4A4A4A4A4A4A`4A4A4A4A4AP4A04Ap?AH?A?A?A0?AX>A?AX>Ap>AX>A?A?A>A>A@>A?AAACAAAAABAAAHCAAA0CAAAAAAABA BAAAcompare_sectionlang_do_assignments_1lang_size_sections_1load_symbolsprint_data_statementpop_stat_ptrpush_stat_ptr/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/ld/ldlang.c%F%P: bfd_link_hash_lookup failed: %E %P: invalid origin for memory region %s %P: invalid length for memory region %s %X%P: address 0x%v of %pB section `%s' is not within region `%s' %X%P: %pB section `%s' will not fit in region `%s' %F%P: invalid reloc statement SORT_BY_NAME(SORT_BY_ALIGNMENT(SORT_BY_ALIGNMENT(SORT_BY_NAME(CTF error: cannot get CTF errors: `%s' %P: warning: CTF section emission failed; output will have no CTF section: %s %F%P: could not define common symbol `%pT': %E Common symbol size file %P:%pS: warning: redeclaration of memory region `%s' %P:%pS: warning: memory region `%s' not declared %F%P:%pS: non constant or forward reference address expression for section %s %X%P: internal error on COFF shared library section %s %F%P: error: no memory region specified for loadable section `%s' %P: warning: no memory region specified for loadable section `%s' %P: warning: start of section %s changed by %ld %P: warning: dot moved backwards before `%s' %F%P: can't relax section: %E %F%P: Output section '%s' not large enough for the linker-created stubs section '%s'. %F%P: Relaxation not supported with --enable-non-contiguous-regions (section '%s' would overflow '%s' after it changed size). %X%P:%pS: section has both a load address and a load region %F%P:%pS: error: alias for default memory region %F%P:%pS: error: redefinition of memory region alias `%s' %F%P:%pS: error: memory region `%s' for alias `%s' does not exist %F%P: failed creating section `%s': %E %F%P: can not create hash table: %E %F%P: illegal use of `%s' section %F%P: output format %s cannot represent section called %s: %E warning: INSERT statement in linker script is incompatible with --enable-non-contiguous-regions. %F%P: %s not found for insert Linker script and memory map %P:%pS: warning: --enable-non-contiguous-regions makes section `%pA' from '%pB' match /DISCARD/ clause. %P:%pS: warning: --enable-non-contiguous-regions may change behaviour for section `%pA' from '%pB' (assigned to %pA, but additional match: %pA) %P: warning: could not find any targets that match endianness requirement %F%P: cannot open output file %s: %E %F%P: %s: can not make object file: %E %F%P: %s: can not set architecture: %E %F%P: invalid character %c (%d) in flags %P: %pB: file not recognized: %E; matching formats:%F%P: %pB: file not recognized: %E %F%P: %pB: member %pB in archive is not an object %F%P: %pB: error adding symbols: %E %P: warning: %s contains output sections; did you forget -T? %F%P:%pS: error: align with input and explicit align specified %X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them %X%P: unknown language `%s' in version information %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: region `%s' overflowed by %lu byte %X%P: region `%s' overflowed by %lu bytes %F%P: %s: plugin reported error after all symbols read As-needed library included to satisfy reference by file (symbol) %P: warning: CTF section in %pB not loaded; its types will be discarded: %s %P: warning: CTF output not created: `%s' %F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported %X%P: %s architecture of input file `%pB' is incompatible with %s output %X%P: failed to merge target specific data of file %pB %X%P: unable to read .exports section contents %X%P: error: unplaced orphan section `%pA' from `%pB' %P: warning: orphan section `%pA' from `%pB' being placed in section `%s' %P: warning: CTF section in %pB cannot be linked: `%s' %P: warning: CTF linking failed; output will have no CTF section: %s %F%P: bfd_record_phdr failed: %E %X%P: section `%s' assigned to non-existent phdr `%s' %X%P: section %s VMA wraps around address space %X%P: section %s LMA wraps around address space %X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V] %X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V] %X%P: required symbol `%s' not defined %F%P: %s: can't set start address %F%P: 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 %F%P: no sections assigned to phdrs %F%P: --gc-sections requires a defined symbol root specified by -e or -u %X%P: unable to find version dependency `%s' Memory region Used Size Region Size %%age Used .init.fini.ctors.dtors0x%V %W %pB %W (size before relaxing) %F%P: invalid data statement Fail with %d SORT (CONSTRUCTORS) CONSTRUCTORS EXCLUDE_FILE(%sSORT_BY_NAME(SORT_BY_ALIGNMENT(SORT_NONE(SORT_BY_INIT_PRIORITY(Address of section %s set to CREATE_OBJECT_SYMBOLS FILL mask 0x0x%V %W %s 0x%v0x%V %W RELOC %s %s+ *fill*0x%V %W %s0x%V %W load address 0x%V[0x%V][unresolved][!provide]*undef* TARGET(%s) OUTPUT(%sLOAD %s START GROUP END GROUP INSERT %s %s CTF warningCTF error%s: %s .ctfelf32-bigelf64-bigelf32-littleelf64-little Allocating common symbols /DISCARD/%10lu GB%10lu MB%10lu KB %10lu B-l$SYSROOTload basesubsection alignment*ABS* Memory Configuration AttributesLengthOriginName%-16s %-18s %-18s %s Discarded input sections %-16s 0x%s !%F%P: target %s not found 0x%V %pT %pI %F %F%F%P: multiple STARTUP files program header type__load_start_%s__load_stop_%sC++Java%pB (%pT) .exports.startof.%sphdr flagsphdr load address__start_%stypeinfo name for*typeinfo for*operator new*operator delete*SANE_EXPR%X%P: unknown feature `%s' %16s: %6.2f%%Y@%F%P: unknown format type %s /data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/ld/mri.cmri_alias Set Symbol %G %X%P: different relocs used in set %s %X%P: different object file formats composing set %s %X%P: %s does not support reloc %s for set %s %X%P: special section %s does not support reloc %s for set %s %X%P: unsupported size %d for set %s %X%H: reloc refers to symbol `%pT' which is not being output %X%H: dangerous relocation: %s /data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/ld/ldmain.c%X%P: %C: multiple definition of `%pT'%P: disabling relaxation; it will not work with multiple definitions %F%P: %pB: could not read symbols: %E %pI: no new IR symbols to claim Archive member included to satisfy reference by file (symbol) /arm-none-linux-gnueabihf/libc additional relocation overflows omitted from the output relocation truncated to fit: %s against undefined symbol `%pT' relocation truncated to fit: %s against symbol `%pT' defined in %pA section in %pB relocation truncated to fit: %s against `%pT'%F%P: %pB: could not read relocs: %E %P: warning: global constructor %s used %F%P: BFD backend error: BFD_RELOC_CTOR unsupported %P: %pB: warning: definition of `%pT' overriding common from %pB %P: %pB: warning: definition of `%pT' overriding common %P: %pB: warning: common of `%pT' overridden by definition from %pB %P: %pB: warning: common of `%pT' overridden by definition %P: %pB: warning: common of `%pT' overridden by larger common from %pB %P: %pB: warning: common of `%pT' overridden by larger common %P: %pB: warning: common of `%pT' overriding smaller common from %pB %P: %pB: warning: common of `%pT' overriding smaller common %P: %pB and %pB: warning: multiple common of `%pT' %P: %pB: warning: multiple common of `%pT' %F%P: fatal error: libbfd ABI mismatch %X%P: can't set BFD default target to `%s': %E ================================================== %F%P: --no-define-common may not be used without -shared %F%P: cannot open map file %s: %E %F%P: cannot open dependency file %s: %E %P: link errors found, deleting executable `%s' %F%P: %pB: final close failed: %E %F%P: unable to open for source of copy `%s' %F%P: unable to open for destination of copy `%s' %s: total time in link: %ld.%06ld %F%P: bfd_hash_table_init failed: %E %F%P: bfd_hash_lookup failed: %E %P: About to run error handling script '%s' with arguments: '%s' '%s' %P: Failed to run error handling script '%s', reason: %X%P: %C: undefined reference to `%pT' %P: %C: warning: undefined reference to `%pT' %X%P: %D: more undefined references to `%pT' follow %P: %D: warning: more undefined references to `%pT' follow %X%P: %pB: undefined reference to `%pT' %P: %pB: warning: undefined reference to `%pT' %X%P: %pB: more undefined references to `%pT' follow %P: %pB: warning: more undefined references to `%pT' follow %X%P: error: duplicate retain-symbols-file %F%P: bfd_hash_lookup for insertion failed: %E %P: `-retain-symbols-file' overrides `-s' and `-S' %P: %pB: reference to %s %P: %pB: definition of %s ; %D: first defined here__imp_%s(%s)%X%H:+%vusing multiple gp values%P: %C: %s%s %P: %s%s %P: %pB: %s%s armelf_linux_eabi--sysroot=/arm-none-linux-gnueabihf/binarm-none-linux-gnueabihfCOLLECT_NO_DEMANGLE_init_finiLDEMULATION%F%P: missing argument to -m -mips1-mips2-mips3-mips4-mips5-mips32-mips32r2-mips32r3-mips32r5-mips32r6-mips64-mips64r2-mips64r3-mips64r5-mips64r6-m486built in linker scriptusing external linker script:using internal linker script:%F%P: no input files %P: mode %s %s: \ %s %s: .exe.dll%P: error writing file `%s' %P: error closing file `%s' undefined-symbolerror handling script%X%X%P: %s: %E a.out8AAAAAAmultiple_definitionreloc_overflow/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/ld/ldwrite.c%F%P: bfd_new_link_order failed %F%P: cannot create split section name for %s %F%P: clone section failed: %E .stab$GDB_STRINGS$$GDB_SYMBOLS$%F%P: final link failed: %E AAAA@A֭A֭AAAAbuild_link_order%F%P: bfd_hash_allocate failed creating symbol %s /data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/ld/ldexp.c%P: warning: address of `%s' isn't multiple of maximum page size %F%P:%pS can not PROVIDE assignment to location counter %F%P:%pS invalid assignment to location counter %F%P:%pS assignment to location counter invalid outside of SECTIONS %F%P:%pS cannot move location counter backwards (from %V to %V) %F%P:%s: hash creation failed %F%P: bfd_hash_lookup failed creating symbol %s %X%P:%pS: unresolvable symbol `%s' referenced in expression %F%P:%pS: undefined symbol `%s' referenced in expression %F%P:%pS: undefined section `%s' referenced in expression %F%P:%pS: undefined MEMORY region `%s' referenced in expression %F%P:%pS: unknown constant `%s' referenced in expression %F%P:%pS: nonconstant expression for %s %X%P: %s %F%P:%pS %% by zero %F%P:%pS / by zero MAXPAGESIZECOMMONPAGESIZENULL TREE %pB:%s+0x%vPROVIDE (%s = ("", ASSERT (, %s) (%s)+=-=*=/=<<=>>=&=|=||&&==!=<<>>MAXMINASSERTضAзAPAAAAA`A`AAAHAAAAXAXAxAPAA^x NeNhNkNnN qN uN yN |N NNNNrNvNNNgMOM\MMM$M]*M+M3SM;M<sN=M>M?$]@MBMAMC\DMM`{MENFNfNn N$IM%\M&sMNMPM1=MGNUTARGET%pS SYSLIB ignored %pS HLL ignored Supported emulations: %s: %P: unrecognised emulation mode: %s no emulation specific options. (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 2.36.1.20210621Copyright (C) 2021 Free Software Foundation, Inc.This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or (at your option) a later version. This program has absolutely no warranty.GNU ld %s Supported emulations: %s %P: internal error: aborting at %s:%d in %s %P: internal error: aborting at %s:%d /data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/ld/ldmisc.c%F%P: please report this bug 0x%s%pB: in function `%pT': %pT%u%s(%pA+0x%v)%s generated(%s)%s%s+0x%v (type %s)%s:%uno symbol%p%%%c%F%P: internal error %s %d vAVA0A0A0AAA1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1AAA1A1AAA1A1A1A1A1A1A1A1A1A1A1A1A1AAA1A1A1A1A1A1A1A1A1A1A1A1AA1A1A1A1A1A1A1AA1A1A1AA1A1AA1AAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA#AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:Avfinfo/ldscriptscannot find script file %s opened script file %s /arm-none-linux-gnueabihf/libattempt to open %s failed attempt to open %s succeeded %P: cannot find %s (%s): %E %P: cannot find %s: %E .a%P: cannot find %s inside %s missing-lib%P: cannot find %s %F%P: error: linker script file '%s' appears multiple times %F%P: 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' %P: note to link with %s use -l:%s or rename it to lib%s %F%P: cannot represent machine `%s' /data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/ld/ldcref.c%P: symbol `%pT' missing from main hash table %X%P: %C: prohibited cross reference from %s to `%pT' in %s %X%P: bfd_hash_table_init of cref table failed: %E %X%P: cref_hash_lookup failed: %E %X%P: cref alloc failed: %E Cross Reference Table SymbolFile No symbols %F%P: plugin_strdup failed to allocate memory: %s /data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/ld/plugin.c%F%P: unsupported input file size: %s (%ld bytes) %F%P: unknown ELF symbol visibility: %d! %F%P: %s: non-ELF symbol in ELF BFD! %F%P: %s: plugin symbol table corrupt (sym type %d) unknown LTO resolution value %xunknown LTO visibility value %x%P: %pB: symbol `%s' definition: %s, visibility: %s, resolution: %s %F%P: could not create dummy IR bfd: %E %F%P: plugin failed to allocate memory for input: %s %F%P: %s: plugin reported error claiming file %F%P: %s: error loading plugin: %s %P: %s: error in plugin cleanup: %d (ignored) .gnu.linkonce.t.%P: warning: %P: error: DEFAULTPROTECTEDINTERNALWEAKDEFWEAKUNDEFunknown LTO kind value %x (symbol from plugin)%P: %s: duplicated plugin pass-through=_onload%F%P: %s: plugin error: %d UNKNOWNPREVAILING_DEFPREVAILING_DEF_IRONLYPREEMPTED_REGPREEMPTED_IRRESOLVED_IRRESOLVED_EXECRESOLVED_DYNPREVAILING_DEF_IRONLY_EXP BBB`BHBo%Ba%Bo%B7%Bo%B)%B%B %B$B$B$B$B$B$B$B$B$B~$Bp$Bo%Bo%Bo%Bo%Bo%Bo%BK#BNN N/NENSN`NlNzNNget_symbols    sha1uuid/dev/urandom/* Script for -Ur */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) /* 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 { .interp 0 : { *(.interp) } .note.gnu.build-id 0: { *(.note.gnu.build-id) } .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.iplt 0 : { *(.rel.iplt) } .rela.iplt 0 : { *(.rela.iplt) } .rel.plt 0 : { *(.rel.plt) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) } .iplt 0 : { *(.iplt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .ARM.extab 0 : { *(.ARM.extab) } .ARM.exidx 0 : { *(.ARM.exidx) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes) } /* 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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } } /* Script for -r */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) /* 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 { .interp 0 : { *(.interp) } .note.gnu.build-id 0: { *(.note.gnu.build-id) } .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.iplt 0 : { *(.rel.iplt) } .rela.iplt 0 : { *(.rela.iplt) } .rel.plt 0 : { *(.rel.plt) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) } .iplt 0 : { *(.iplt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .ARM.extab 0 : { *(.ARM.extab) } .ARM.exidx 0 : { *(.ARM.exidx) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes) } /* 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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } } /* Script for -N */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00010000)); . = SEGMENT_START("text-segment", 0x00010000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -n */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00010000)); . = SEGMENT_START("text-segment", 0x00010000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { *(.rel.iplt) } .rela.iplt : { *(.rela.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { *(.rel.iplt) } .rela.iplt : { *(.rela.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { *(.rel.iplt) } .rela.iplt : { *(.rela.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { *(.rel.iplt) } .rela.iplt : { *(.rela.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00010000)); . = SEGMENT_START("text-segment", 0x00010000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .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.*) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00010000)); . = SEGMENT_START("text-segment", 0x00010000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .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.*) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00010000)); . = SEGMENT_START("text-segment", 0x00010000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .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.*) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00010000)); . = SEGMENT_START("text-segment", 0x00010000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .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.*) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00010000)); . = SEGMENT_START("text-segment", 0x00010000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Default linker script, for normal executables */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00010000)); . = SEGMENT_START("text-segment", 0x00010000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } --thumb-entry= Set the entry point to be Thumb symbol --be8 Output BE8 format image --target1-rel Interpret R_ARM_TARGET1 as R_ARM_REL32 --target1-abs Interpret R_ARM_TARGET1 as R_ARM_ABS32 --target2= Specify definition of R_ARM_TARGET2 --fix-v4bx Rewrite BX rn as MOV pc, rn for ARMv4 --fix-v4bx-interworking Rewrite BX rn branch to ARMv4 interworking veneer --use-blx Enable use of BLX instructions --vfp11-denorm-fix Specify how to fix VFP11 denorm erratum --fix-stm32l4xx-629360 Specify how to fix STM32L4XX 629360 erratum --no-enum-size-warning Don't warn about objects with incompatible enum sizes --no-wchar-size-warning Don't warn about objects with incompatible wchar_t sizes --pic-veneer Always generate PIC interworking veneers --long-plt Generate long .plt entries to handle large .plt/.got displacements --cmse-implib Make import library to be a secure gateway import library as per ARMv8-M Security Extensions --in-implib Import library whose symbols address must remain stable --stub-group-size=N Maximum size of a group of input sections that can be handled by one stub section. A negative value locates all stubs after their branches (with a group size of -N), while a positive value allows two groups of input sections, one before, and one after each stub section. Values of +/-1 indicate the linker should choose suitable defaults. --[no-]fix-cortex-a8 Disable/enable Cortex-A8 Thumb-2 branch erratum fix --no-merge-exidx-entries Disable merging exidx entries --[no-]fix-arm1176 Disable/enable ARM1176 BLX immediate erratum fix %F%P: invalid --compress-debug-sections option: `%s' %F%P: invalid hash style `%s' %F%P: invalid maximum page size `%s' %F%P: invalid common page size `%s' %F%P: invalid stack size `%s' start-stop-visibility=internalstart-stop-visibility=protected%F%P: invalid visibility in `-z %s'; must be default, internal, hidden, or protected%P: unrecognized VFP11 fix type '%s' %P: unrecognized STM32L4XX fix type '%s' %F%P: error: cannot change output format whilst linking %s binaries %F%P: %s: not a relocatable file: %E %X%P: can not build stubs: %E %P: warning: '--thumb-entry %s' is overriding '-e %s' %P: warning: cannot find thumb start symbol %s %P: errors encountered processing file %s %X%P: .eh_frame/.stab edit: %E %X%P: could not compute sections lists for stub generation: %E %X%P: can not size stub section: %E %X%P: can not make stub section: %E zlibzlib-gnuzlib-gabisysvbothundefsmuldefsmax-page-size=common-page-size=stack-size=noexecstacknounique-symbolglobalauditstart-stop-visibility=start-stop-visibility=defaultstart-stop-visibility=hiddeninitfirstinterposeloadfltrnodefaultlibnodeletenodlopennodumplazyoriginnouniquenocombrelocnocopyrelocnorelronoseparate-codenocommonnotexttextoff%P: warning: -z %s ignored scalarvectorARM%F%P: %s: can't open: %E linker stubs%F%P: can not create BFD: %E earmelf_linux_eabi.cBgroupcompress-debug-sectionsdepauditdisable-new-dtagsenable-new-dtagsno-eh-frame-hdrexclude-libshash-styleno-pipeline-knowledgethumb-entrybe8target1-reltarget1-abstarget2fix-v4bxfix-v4bx-interworkinguse-blxvfp11-denorm-fixfix-stm32l4xx-629360no-enum-size-warningpic-veneerstub-group-sizeno-wchar-size-warningno-fix-cortex-a8no-merge-exidx-entriesno-fix-arm1176long-pltcmse-implibin-implibelf32-littlearmgot-rel1B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B0B6B6B6B6B6B6B6B6B6B 0B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B(5B5B4B4B4B4B4B84B 4B4B3B3B3Bx3B`3BH3B86B 6B6B5B5Bp5B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6BX5B@5Bp6BP6B03B3B2B@2B 2B1BpEBpEBpEBpEB`EBEBpEBEB`EBpEBpEBpEBpEBEBEBpEBQeQK[lQQPQQQQQQQpQ-Q.Q/ Q0Q1Q2'Q7=Q3EQ4VQ@kQ5Q6Q8Q9Q:Q;Q<Q=Q>Q?QAQB/* Script for -Ur */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) /* 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 { .interp 0 : { *(.interp) } .note.gnu.build-id 0: { *(.note.gnu.build-id) } .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.iplt 0 : { *(.rel.iplt) } .rela.iplt 0 : { *(.rela.iplt) } .rel.plt 0 : { *(.rel.plt) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) } .iplt 0 : { *(.iplt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .ARM.extab 0 : { *(.ARM.extab) } .ARM.exidx 0 : { *(.ARM.exidx) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes) } /* 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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } } /* Script for -r */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) /* 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 { .interp 0 : { *(.interp) } .note.gnu.build-id 0: { *(.note.gnu.build-id) } .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.iplt 0 : { *(.rel.iplt) } .rela.iplt 0 : { *(.rela.iplt) } .rel.plt 0 : { *(.rel.plt) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) } .iplt 0 : { *(.iplt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .ARM.extab 0 : { *(.ARM.extab) } .ARM.exidx 0 : { *(.ARM.exidx) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } .bss 0 : { *(.bss) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes) } /* 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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } } /* Script for -N */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00010000)); . = SEGMENT_START("text-segment", 0x00010000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -n */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00010000)); . = SEGMENT_START("text-segment", 0x00010000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { *(.rel.iplt) } .rela.iplt : { *(.rela.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { *(.rel.iplt) } .rela.iplt : { *(.rela.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { *(.rel.iplt) } .rela.iplt : { *(.rela.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { *(.rel.iplt) } .rela.iplt : { *(.rela.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00010000)); . = SEGMENT_START("text-segment", 0x00010000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .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.*) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00010000)); . = SEGMENT_START("text-segment", 0x00010000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .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.*) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00010000)); . = SEGMENT_START("text-segment", 0x00010000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .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.*) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00010000)); . = SEGMENT_START("text-segment", 0x00010000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .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.*) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00010000)); . = SEGMENT_START("text-segment", 0x00010000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Default linker script, for normal executables */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-linux-gnueabihf/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00010000)); . = SEGMENT_START("text-segment", 0x00010000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } earmelfb_linux_eabi.carmelfb_linux_eabielf32-bigarmNBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBMBSBSBSBSBSBSBSBSBSB MBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSB(RBRBQBQBQBQBQB8QB QBQBPBPBPBxPB`PBHPB8SB SBSBRBRBpRBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBSBXRB@RBpSBPSB0PBPBOB@OB OBNBpbBpbBpbBpbB`bBbBpbBbB`bBpbBpbBpbBpbBbBbBpbBQeQK[lQQPQQQQQQQpQ-Q.Q/ Q0Q1Q2'Q7=Q3EQ4VQ@kQ5Q6Q8Q9Q:Q;Q<Q=Q>Q?QAQB/* Script for -Ur */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) /* 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 { .interp 0 : { *(.interp) } .note.gnu.build-id 0: { *(.note.gnu.build-id) } .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.iplt 0 : { *(.rel.iplt) } .rela.iplt 0 : { *(.rela.iplt) } .rel.plt 0 : { *(.rel.plt) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) } .iplt 0 : { *(.iplt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .ARM.extab 0 : { *(.ARM.extab) } .ARM.exidx 0 : { *(.ARM.exidx) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { *(.persistent) } .bss 0 : { *(.bss) } /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { *(.noinit) } .stack 0 : { *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes) } /* 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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } } /* Script for -r */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) /* 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 { .interp 0 : { *(.interp) } .note.gnu.build-id 0: { *(.note.gnu.build-id) } .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.iplt 0 : { *(.rel.iplt) } .rela.iplt 0 : { *(.rela.iplt) } .rel.plt 0 : { *(.rel.plt) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) } .iplt 0 : { *(.iplt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .ARM.extab 0 : { *(.ARM.extab) } .ARM.exidx 0 : { *(.ARM.exidx) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { *(.persistent) } .bss 0 : { *(.bss) } /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { *(.noinit) } .stack 0 : { *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes) } /* 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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } } /* Script for -N */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x8000)); . = SEGMENT_START("text-segment", 0x8000); .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -n */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x8000)); . = SEGMENT_START("text-segment", 0x8000); .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { *(.rel.iplt) } .rela.iplt : { *(.rela.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { *(.rel.iplt) } .rela.iplt : { *(.rela.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_end = .); PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_end = .); PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_end = .); PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_end = .); PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { *(.rel.iplt) } .rela.iplt : { *(.rela.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_end = .); PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { *(.rel.iplt) } .rela.iplt : { *(.rela.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_end = .); PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x8000)); . = SEGMENT_START("text-segment", 0x8000); .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .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.*) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x8000)); . = SEGMENT_START("text-segment", 0x8000); .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .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.*) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x8000)); . = SEGMENT_START("text-segment", 0x8000); .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .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.*) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x8000)); . = SEGMENT_START("text-segment", 0x8000); .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .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.*) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x8000)); . = SEGMENT_START("text-segment", 0x8000); .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Default linker script, for normal executables */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/arm-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x8000)); . = SEGMENT_START("text-segment", 0x8000); .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } earmelf.carmelfkBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBjBpBpBpBpBpBpBpBpBpB jBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpB(oBoBnBnBnBnBnB8nB nBnBmBmBmBxmB`mBHmB8pB pBpBoBoBpoBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBXoB@oBppBPpB0mBmBlB@lB lBkB0B0B0B0B BxB0BB B0B0B0B0BHB`B0BQeQK[lQQPQQQQQQQpQ-Q.Q/ Q0Q1Q2'Q7=Q3EQ4VQ@kQ5Q6Q8Q9Q:Q;Q<Q=Q>Q?QAQB/* Script for -Ur */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) /* 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 { .interp 0 : { *(.interp) } .note.gnu.build-id 0: { *(.note.gnu.build-id) } .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.iplt 0 : { *(.rel.iplt) } .rela.iplt 0 : { *(.rela.iplt) } .rel.plt 0 : { *(.rel.plt) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) } .iplt 0 : { *(.iplt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .ARM.extab 0 : { *(.ARM.extab) } .ARM.exidx 0 : { *(.ARM.exidx) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { *(.persistent) } .bss 0 : { *(.bss) } /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { *(.noinit) } .stack 0 : { *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes) } /* 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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } } /* Script for -r */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) /* 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 { .interp 0 : { *(.interp) } .note.gnu.build-id 0: { *(.note.gnu.build-id) } .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.iplt 0 : { *(.rel.iplt) } .rela.iplt 0 : { *(.rela.iplt) } .rel.plt 0 : { *(.rel.plt) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(SORT_NONE(.init))) } .plt 0 : { *(.plt) } .iplt 0 : { *(.iplt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } .fini 0 : { KEEP (*(SORT_NONE(.fini))) } .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .ARM.extab 0 : { *(.ARM.extab) } .ARM.exidx 0 : { *(.ARM.exidx) } .eh_frame_hdr 0 : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table) } .gnu_extab 0 : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges 0 : ONLY_IF_RO { *(.exception_ranges) } /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gnu_extab 0 : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table) } .exception_ranges 0 : ONLY_IF_RW { *(.exception_ranges) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { *(.persistent) } .bss 0 : { *(.bss) } /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { *(.noinit) } .stack 0 : { *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes) } /* 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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } } /* Script for -N */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/armeb-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x8000)); . = SEGMENT_START("text-segment", 0x8000); .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -n */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/armeb-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x8000)); . = SEGMENT_START("text-segment", 0x8000); .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/armeb-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/armeb-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/armeb-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/armeb-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/armeb-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { *(.rel.iplt) } .rela.iplt : { *(.rela.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/armeb-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0)); . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { *(.rel.iplt) } .rela.iplt : { *(.rela.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/armeb-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_end = .); PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/armeb-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_end = .); PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/armeb-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_end = .); PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z combreloc */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/armeb-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.iplt) } .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.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_end = .); PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/armeb-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { *(.rel.iplt) } .rela.iplt : { *(.rela.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_end = .); PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -shared */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/armeb-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { *(.rel.iplt) } .rela.iplt : { *(.rela.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* 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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) } .fini_array : { KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) } .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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } PROVIDE (_edata = .); PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; PROVIDE (__bss_start = .); PROVIDE (__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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); PROVIDE (__end__ = .); PROVIDE (_end = .); PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z separate-code -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/armeb-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x8000)); . = SEGMENT_START("text-segment", 0x8000); .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .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.*) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z relro -z now */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/armeb-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x8000)); . = SEGMENT_START("text-segment", 0x8000); .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .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.*) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/armeb-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x8000)); . = SEGMENT_START("text-segment", 0x8000); .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .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.*) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/armeb-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x8000)); . = SEGMENT_START("text-segment", 0x8000); .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.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.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .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.*) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z separate-code */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/armeb-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x8000)); . = SEGMENT_START("text-segment", 0x8000); .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); . = ALIGN(CONSTANT (MAXPAGESIZE)); /* Adjust the address for the rodata segment. We want to adjust up to the same address within the page on the next page up. */ . = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1))); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Default linker script, for normal executables */ /* Copyright (C) 2014-2021 Free Software Foundation, Inc. Copying and distribution of this script, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/armeb-none-eabi/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x8000)); . = SEGMENT_START("text-segment", 0x8000); .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .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.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.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.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(SORT_NONE(.init))) } .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(SORT(.text.sorted.*)) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } .fini : { KEEP (*(SORT_NONE(.fini))) } PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } .ARM.exidx : { PROVIDE_HIDDEN (__exidx_start = .); *(.ARM.exidx* .gnu.linkonce.armexidx.*) PROVIDE_HIDDEN (__exidx_end = .); } .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } .gnu_extab : ONLY_IF_RO { *(.gnu_extab*) } /* These sections are generated by the Sun/Oracle C++ compiler. */ .exception_ranges : ONLY_IF_RO { *(.exception_ranges*) } /* 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) - 1)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) } .gnu_extab : ONLY_IF_RW { *(.gnu_extab) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } .exception_ranges : ONLY_IF_RW { *(.exception_ranges*) } /* Thread Local Storage sections */ .tdata : { PROVIDE_HIDDEN (__tdata_start = .); *(.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_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) 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 .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { __data_start = .; *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); /* This section contains data that is initialized during load, but not during the application's initialization sequence. */ .persistent : { . = ALIGN(32 / 8); PROVIDE (__persistent_start = .); *(.persistent .persistent.* .gnu.linkonce.p.*) . = ALIGN(32 / 8); PROVIDE (__persistent_end = .); } . = .; __bss_start = .; __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 do not pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; /* This section contains data that is not initialized during load, or during the application's initialization sequence. */ .noinit (NOLOAD) : { . = ALIGN(32 / 8); PROVIDE (__noinit_start = .); *(.noinit .noinit.* .gnu.linkonce.n.*) . = ALIGN(32 / 8); PROVIDE (__noinit_end = .); } . = ALIGN(32 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(32 / 8); __end__ = .; _end = .; PROVIDE (end = .); .stack 0x80000 : { _stack = .; *(.stack) } /* 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) } .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } /* 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_line.* .debug_line_end) } .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) } /* DWARF 5. */ .debug_addr 0 : { *(.debug_addr) } .debug_line_str 0 : { *(.debug_line_str) } .debug_loclists 0 : { *(.debug_loclists) } .debug_macro 0 : { *(.debug_macro) } .debug_names 0 : { *(.debug_names) } .debug_rnglists 0 : { *(.debug_rnglists) } .debug_str_offsets 0 : { *(.debug_str_offsets) } .debug_sup 0 : { *(.debug_sup) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } earmelfb.carmelfbPBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBІBpBpBpBpBpBpBpBpBpBBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBBЋBBBBpBXBBBȊBBhBPB8B BBBBȌBhBPB0BpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBpBBB0BBBЉBhBBBpBBBBBB8BB`BBBBBBB BBQeQK[lQQPQQQQQQQpQ-Q.Q/ Q0Q1Q2'Q7=Q3EQ4VQ@kQ5Q6Q8Q9Q:Q;Q<Q=Q>Q?QAQBincludelibc.sofound %s at %s lib64RIGIN}%.*s%s/%s%.*s%s%P: %pB: bfd_stat failed: %E .so..note.gnu.build-id.note.GNU-stack.eh_frame_entry.eh_frame.eh_frame_hdr%s needed by %pB LD_LIBRARY_PATHLD_RUN_PATH/var/run/ld-elf.so.hints/etc/ld.so.conf__ehdr_start.gnu.warning%s/lib%s%s.so.mbind.bss.mbind.data.mbind.rodata.mbind.text.rela.dyn.rel.dyn.rel.gnu.warning..note.tdata.interp.sdata.comment%F%P: %pB: bfd_elf_get_bfd_needed_list failed: %E %F%P: %pB: bfd_stat failed: %E /data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/ld/ldelf.cunrecognised or unsupported token '%s' in search path %P: warning: %s, needed by %pB, may conflict with %s %P: warning: .note.gnu.build-id section discarded, --build-id ignored %F%P: failed to record assignment to %s: %E %P: warning: -z dynamic-undefined-weak ignored %F%P: %pB: --just-symbols may not be used on DSO %P: warning: unrecognized --build-id style ignored %P: warning: cannot create .note.gnu.build-id section, --build-id ignored %F%P: %s: can't open for writing: %E %F%P: cannot use executable file '%pB' as input to a link %F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB %P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored %F%P: failed to add DT_NEEDED dynamic tag %F%P: failed to parse EH frame entries %P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link) %F%P: failed to set dynamic section sizes: %E %F%P: %pB: can't read contents of section .gnu.warning: %E ЬBBBBB@B@Bldelf_search_needed%F%P: map sections to segments failed: %E %F%P: failed to strip zero-sized dynamic sections%F%P: warning: CTF strtab association failed; strings will not be shared: %s %F%P: warning: CTF symbol addition failed; CTF will not be tied to symbols: %s %F%P: warning: CTF symbol shuffling failed; CTF will not be tied to symbols: %s %F%P: looping in map_segments/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/archive.c%pB: plugin needed to handle lto objectwarning: writing archive was slow: rewriting timestampReading archive file mod timestampWriting updated armap timestamp%-10lu` ! ! __.SYMDEF __.SYMDEF/ / /SYM64/ #1/20 __.SYMDEF SORTED__.SYMDEFARFILENAMES/ // %-ld:%-ldARFILENAMES///#1/%lu__gnu_lto_slim%-12ld%-8lo%-7lobfd_dont_truncate_arnamebinaryUNKNOWN!unknown ,[,[` CpC0 Cerror reading %s: %sBFD %s assertion fail %s:%dPlease report this bug. -+ #0'IhlL%s: BFD: %.*s%s[%s]coff-go32pe-i386pei-i386pe-x86-64pei-x86-64pe-arm-wince-littlepei-arm-wince-littleaixcoff-rs6000aix5coff64-rs6000mach-o.note.gnu.propertyno errorsystem call errorinvalid bfd targetfile in wrong formatinvalid operationno symbolsno more archived filesmalformed archiveDSO missing from command linefile format not recognizedfile format is ambiguoussection has no contentsbad valuefile truncatedfile too big#BFD %s internal error, aborting at %s:%d in %s BFD %s internal error, aborting at %s:%d /data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/bfd.carchive object file in wrong formatarchive has no index; run ranlib to add onenonrepresentable section on outputsymbol needs debug section which does not existsorry, cannot handle this fileC8CPCPC`CCPCCCCCCCCCCCCCCCCCCCCrCCCCCCCCCCCrCrCCCCCrCCCCCCrCWCCC.CCrCCCrCC*CC*C*C*C*C*C*C*C*C*C*C*C*C*C*C*C*CC*C*C*C*C*C*C*C*C*C*CCCCCC*CC*C*C*C*C*CCaC*C*C:C*CC*C*CCbfd_update_compression_header_bfd_set_gp_value_bfd_doprnt_bfd_doprnt_scanerror_handler_internalbfd_set_input_errorbfd_set_error[[[[p[[M[[[["[@[[[t[[[[[[ [[[/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/bfdio.cZ 0+C`*C(C)C`)C(C(C(C/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/cache.cr+w+reopening %pB: %s bfd_cache_lookup_workercache_bmmap9CP9C9C8C 3CP8C7C6C/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/elf-properties.c%pB: out of memory in _bfd_elf_get_propertywarning: %pB: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lxwarning: %pB: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%xwarning: %pB: corrupt stack size: 0x%xwarning: %pB: corrupt no copy on protected size: 0x%xwarning: %pB: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%xRemoved property %W to merge %pB (0x%v) and %pB (0x%v) Removed property %W to merge %pB (0x%v) and %pB (not found) Removed property %W to merge %pB and %pB Removed property %W to merge %pB and %pB (not found) Updated property %W (0x%v) to merge %pB (0x%v) and %pB (0x%v) Updated property %W (%v) to merge %pB (0x%v) and %pB (not found) Removed property %W to merge %pB (not found) and %pB (0x%v) Merging program properties elf_write_gnu_propertieself_merge_gnu_propertieself_merge_gnu_property_list_bfd_elf_get_property/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/format.cinvalidh][7X^/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/hash.cbfd_hash_replacebfd_hash_rename=???/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/libbfd.c%pB: unable to get decompressed section %pADeprecated %s called at %s line %d in %s Deprecated %s called _bfd_generic_get_section_contents_in_windowbfd_get_bitsbfd_put_bits/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/linker.cattempt to do relocatable link with %s input and %s output%pB: indirect symbol `%s' to `%s' is a loop%pB: ignoring duplicate section `%pA' %pB: duplicate section `%pA' has different size %pB: could not read contents of section `%pA' %pB: duplicate section `%pA' has different contents %F%P: already_linked_table: %E %pB: compiled for a big endian system and target is little endian%pB: compiled for a little endian system and target is big endianmC mClClClClClClC(C@CCCCxCPC0CCȁCCCCyC8CCCЀC(CCCaC[C[CNCNC%CCJCXCCChCC_bfd_handle_already_linked_bfd_default_link_order_bfd_generic_reloc_link_order_bfd_generic_link_write_global_symbol_bfd_generic_link_output_symbolsset_symbol_from_hash_bfd_generic_link_add_one_symbol           __real___wrap_/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/opncls.c.gnu_debuglink%s.debug/%s/usr/lib/debug/usr/usr/lib/debug.gnu_debugaltlink0w,aQ mjp5cd2yҗ+L |~-d jHqA}mQDžӃVlkdzbeO\lcc=  n;^iLA`rqg<GK k 5lBɻ@l2u\E Y=ѫ0&:QQaп!#ijV(_ $ |o/LhXa=-fAvq Ҙ*q俟3Ըx4  j-=mld\cQkkbal0eNbl{WٰeP긾|bI-|ӌeLXaMQ:t0AJו=mѤjiCn4Fgи`s-D3_L | jm Zjz  ' }Dңhi]Wbgeq6lknv+ӉZzJgo߹ホCՎ`~ѡ8ROggW?K6H+ L J6`zA`Ugn1yiFafo%6hRw G "/&U;( Z+j\1е,[d&cju m ?6grWJz+{8 Ғ |! ӆBhn[&wowGZpj;f\ eibkaElx TN³9a&g`MGiIwn>JjѮZf @;7SŞϲG0º0S$6к)WTg#.zfJah]+o*7 Z-bfd_fdopenr@C`CCCpCCCC/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/reloc.c%P%F: --relax and -r may not be used together INPUT_SECTION_FLAGS are not supported%X%P: %pB(%pA): error: relocation for offset %V has no value %X%P: %pB(%pA): relocation "%pR" goes out of range %X%P: %pB(%pA): relocation "%pR" is not supported %X%P: %pB(%pA): relocation "%pR" returns an unrecognized value %x %pB: unrecognized relocation type %#x in section `%pA'is this version of the linker - %s - out of date ?BFD_RELOC_SPARC_GOTDATA_OP_HIX22BFD_RELOC_SPARC_GOTDATA_OP_LOX10BFD_RELOC_MIPS16_TLS_DTPREL_HI16BFD_RELOC_MIPS16_TLS_DTPREL_LO16BFD_RELOC_MIPS16_TLS_TPREL_HI16BFD_RELOC_MIPS16_TLS_TPREL_LO16BFD_RELOC_MICROMIPS_7_PCREL_S1BFD_RELOC_MICROMIPS_10_PCREL_S1BFD_RELOC_MICROMIPS_16_PCREL_S1BFD_RELOC_MIPS_TLS_DTPREL_HI16BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16BFD_RELOC_MIPS_TLS_DTPREL_LO16BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16BFD_RELOC_MICROMIPS_TLS_GOTTPRELBFD_RELOC_MICROMIPS_TLS_TPREL_HI16BFD_RELOC_MICROMIPS_TLS_TPREL_LO16BFD_RELOC_FRV_FUNCDESC_GOTOFF12BFD_RELOC_FRV_FUNCDESC_GOTOFFHIBFD_RELOC_FRV_FUNCDESC_GOTOFFLOBFD_RELOC_X86_64_GOTPC32_TLSDESCBFD_RELOC_X86_64_REX_GOTPCRELXBFD_RELOC_PPC_VLE_SDAREL_LO16ABFD_RELOC_PPC_VLE_SDAREL_LO16DBFD_RELOC_PPC_VLE_SDAREL_HI16ABFD_RELOC_PPC_VLE_SDAREL_HI16DBFD_RELOC_PPC_VLE_SDAREL_HA16ABFD_RELOC_PPC_VLE_SDAREL_HA16DBFD_RELOC_PPC64_PLTGOT16_LO_DSBFD_RELOC_PPC64_REL16_HIGHESTABFD_RELOC_PPC64_ADDR16_HIGHER34BFD_RELOC_PPC64_ADDR16_HIGHERA34BFD_RELOC_PPC64_ADDR16_HIGHEST34BFD_RELOC_PPC64_ADDR16_HIGHESTA34BFD_RELOC_PPC64_REL16_HIGHER34BFD_RELOC_PPC64_REL16_HIGHERA34BFD_RELOC_PPC64_REL16_HIGHEST34BFD_RELOC_PPC64_REL16_HIGHESTA34BFD_RELOC_PPC64_TPREL16_HIGHERBFD_RELOC_PPC64_TPREL16_HIGHERABFD_RELOC_PPC64_TPREL16_HIGHESTBFD_RELOC_PPC64_TPREL16_HIGHESTABFD_RELOC_PPC64_DTPREL16_LO_DSBFD_RELOC_PPC64_DTPREL16_HIGHABFD_RELOC_PPC64_DTPREL16_HIGHERBFD_RELOC_PPC64_DTPREL16_HIGHERABFD_RELOC_PPC64_DTPREL16_HIGHESTBFD_RELOC_PPC64_DTPREL16_HIGHESTABFD_RELOC_PPC64_GOT_TLSGD_PCREL34BFD_RELOC_PPC64_GOT_TLSLD_PCREL34BFD_RELOC_PPC64_GOT_TPREL_PCREL34BFD_RELOC_PPC64_GOT_DTPREL_PCREL34BFD_RELOC_THUMB_PCREL_BRANCH12BFD_RELOC_THUMB_PCREL_BRANCH20BFD_RELOC_THUMB_PCREL_BRANCH23BFD_RELOC_THUMB_PCREL_BRANCH25BFD_RELOC_ARM_THUMB_MOVW_PCRELBFD_RELOC_ARM_THUMB_MOVT_PCRELBFD_RELOC_ARM_THUMB_ALU_ABS_G0_NCBFD_RELOC_ARM_THUMB_ALU_ABS_G1_NCBFD_RELOC_ARM_THUMB_ALU_ABS_G2_NCBFD_RELOC_ARM_THUMB_ALU_ABS_G3_NCBFD_RELOC_ARM_T32_CP_OFF_IMM_S2BFD_RELOC_ARM_T32_VLDR_VSTR_OFF_IMMBFD_RELOC_SH_IMM_MEDLOW16_PCRELBFD_RELOC_SH_IMM_MEDHI16_PCRELBFD_RELOC_BFIN_12_PCREL_JUMP_SBFD_RELOC_BFIN_24_PCREL_CALL_XBFD_RELOC_BFIN_24_PCREL_JUMP_LBFD_RELOC_BFIN_FUNCDESC_GOT17M4BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4BFD_RELOC_BFIN_FUNCDESC_GOTOFFHIBFD_RELOC_BFIN_FUNCDESC_GOTOFFLOBFD_RELOC_NDS32_PLT_GOTREL_HI20BFD_RELOC_NDS32_PLT_GOTREL_LO12BFD_RELOC_NDS32_PLT_GOTREL_LO20BFD_RELOC_NDS32_PLT_GOTREL_LO15BFD_RELOC_NDS32_PLT_GOTREL_LO19BFD_RELOC_NDS32_SDA_FP7U2_RELABFD_RELOC_NDS32_RELAX_REGION_BEGINBFD_RELOC_NDS32_RELAX_REGION_ENDBFD_RELOC_NDS32_TLS_IEGP_LO12S2BFD_RELOC_NDS32_TLS_DESC_SDA17S2BFD_RELOC_V850_SDA_16_16_OFFSETBFD_RELOC_V850_SDA_15_16_OFFSETBFD_RELOC_V850_ZDA_16_16_OFFSETBFD_RELOC_V850_ZDA_15_16_OFFSETBFD_RELOC_V850_TDA_16_16_OFFSETBFD_RELOC_V850_SDA_16_16_SPLIT_OFFSETBFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSETBFD_RELOC_V850_CALLT_6_7_OFFSETBFD_RELOC_V850_CALLT_16_16_OFFSETBFD_RELOC_V850_LO16_SPLIT_OFFSETBFD_RELOC_V850_16_SPLIT_OFFSETBFD_RELOC_V850_CALLT_15_16_OFFSETBFD_RELOC_MCORE_PCREL_IMM11BY2BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2BFD_RELOC_METAG_TLS_IENONPIC_HI16BFD_RELOC_METAG_TLS_IENONPIC_LO16BFD_RELOC_MMIX_PUSHJ_STUBBABLEBFD_RELOC_MMIX_BASE_PLUS_OFFSETBFD_RELOC_IA64_LTOFF_FPTR32MSBBFD_RELOC_IA64_LTOFF_FPTR32LSBBFD_RELOC_IA64_LTOFF_FPTR64MSBBFD_RELOC_IA64_LTOFF_FPTR64LSBBFD_RELOC_MSP430_16_PCREL_BYTEBFD_RELOC_MSP430X_PCR20_EXT_SRCBFD_RELOC_MSP430X_PCR20_EXT_DSTBFD_RELOC_MSP430X_PCR20_EXT_ODSTBFD_RELOC_MSP430X_ABS20_EXT_SRCBFD_RELOC_MSP430X_ABS20_EXT_DSTBFD_RELOC_MSP430X_ABS20_EXT_ODSTBFD_RELOC_MSP430X_ABS20_ADR_SRCBFD_RELOC_MSP430X_ABS20_ADR_DSTBFD_RELOC_NIOS2_R2_I10_1_PCRELBFD_RELOC_NIOS2_R2_T1I7_1_PCRELBFD_RELOC_MACH_O_LOCAL_SECTDIFFBFD_RELOC_MACH_O_X86_64_BRANCH32BFD_RELOC_MACH_O_X86_64_BRANCH8BFD_RELOC_MACH_O_X86_64_GOT_LOADBFD_RELOC_MACH_O_X86_64_PCREL32_1BFD_RELOC_MACH_O_X86_64_PCREL32_2BFD_RELOC_MACH_O_X86_64_PCREL32_4BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOTBFD_RELOC_MICROBLAZE_32_LO_PCRELBFD_RELOC_MICROBLAZE_32_SYM_OP_SYMBFD_RELOC_MICROBLAZE_64_GOTOFFBFD_RELOC_MICROBLAZE_32_GOTOFFBFD_RELOC_MICROBLAZE_32_TLSDTPMODBFD_RELOC_MICROBLAZE_32_TLSDTPRELBFD_RELOC_MICROBLAZE_64_TLSDTPRELBFD_RELOC_MICROBLAZE_64_TLSGOTTPRELBFD_RELOC_MICROBLAZE_64_TLSTPRELBFD_RELOC_MICROBLAZE_64_TEXTPCRELBFD_RELOC_MICROBLAZE_64_TEXTRELBFD_RELOC_AARCH64_MOVW_PREL_G0BFD_RELOC_AARCH64_MOVW_PREL_G0_NCBFD_RELOC_AARCH64_MOVW_PREL_G1BFD_RELOC_AARCH64_MOVW_PREL_G1_NCBFD_RELOC_AARCH64_MOVW_PREL_G2BFD_RELOC_AARCH64_MOVW_PREL_G2_NCBFD_RELOC_AARCH64_MOVW_PREL_G3BFD_RELOC_AARCH64_LD_LO19_PCRELBFD_RELOC_AARCH64_ADR_LO21_PCRELBFD_RELOC_AARCH64_ADR_HI21_PCRELBFD_RELOC_AARCH64_ADR_HI21_NC_PCRELBFD_RELOC_AARCH64_LDST128_LO12BFD_RELOC_AARCH64_GOT_LD_PREL19BFD_RELOC_AARCH64_ADR_GOT_PAGEBFD_RELOC_AARCH64_LD64_GOT_LO12_NCBFD_RELOC_AARCH64_LD32_GOT_LO12_NCBFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NCBFD_RELOC_AARCH64_MOVW_GOTOFF_G1BFD_RELOC_AARCH64_LD64_GOTOFF_LO15BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21BFD_RELOC_AARCH64_TLSGD_ADR_PREL21BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NCBFD_RELOC_AARCH64_TLSGD_MOVW_G0_NCBFD_RELOC_AARCH64_TLSGD_MOVW_G1BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NCBFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NCBFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NCBFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NCBFD_RELOC_AARCH64_TLSLD_ADD_LO12_NCBFD_RELOC_AARCH64_TLSLD_ADR_PAGE21BFD_RELOC_AARCH64_TLSLD_ADR_PREL21BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NCBFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NCBFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NCBFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NCBFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NCBFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NCBFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NCBFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NCBFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NCBFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NCBFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NCBFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NCBFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NCBFD_RELOC_AARCH64_TLSDESC_LD_PREL19BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21BFD_RELOC_AARCH64_TLSDESC_LD64_LO12BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NCBFD_RELOC_AARCH64_TLSDESC_ADD_LO12BFD_RELOC_AARCH64_TLSDESC_OFF_G1BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NCBFD_RELOC_AARCH64_TLSDESC_CALLBFD_RELOC_AARCH64_GAS_INTERNAL_FIXUPBFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NCBFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12_NCBFD_RELOC_AARCH64_LD_GOT_LO12_NCBFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NCBFD_RELOC_AARCH64_TLSDESC_LD_LO12_NCBFD_RELOC_TILEPRO_JOFFLONG_X1_PLTBFD_RELOC_TILEPRO_DEST_IMM8_X1BFD_RELOC_TILEPRO_IMM16_X0_PCRELBFD_RELOC_TILEPRO_IMM16_X1_PCRELBFD_RELOC_TILEPRO_IMM16_X0_LO_PCRELBFD_RELOC_TILEPRO_IMM16_X1_LO_PCRELBFD_RELOC_TILEPRO_IMM16_X0_HI_PCRELBFD_RELOC_TILEPRO_IMM16_X1_HI_PCRELBFD_RELOC_TILEPRO_IMM16_X0_HA_PCRELBFD_RELOC_TILEPRO_IMM16_X1_HA_PCRELBFD_RELOC_TILEPRO_IMM16_X0_GOTBFD_RELOC_TILEPRO_IMM16_X1_GOTBFD_RELOC_TILEPRO_IMM16_X0_GOT_LOBFD_RELOC_TILEPRO_IMM16_X1_GOT_LOBFD_RELOC_TILEPRO_IMM16_X0_GOT_HIBFD_RELOC_TILEPRO_IMM16_X1_GOT_HIBFD_RELOC_TILEPRO_IMM16_X0_GOT_HABFD_RELOC_TILEPRO_IMM16_X1_GOT_HABFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADDBFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADDBFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADDBFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADDBFD_RELOC_TILEPRO_IMM16_X0_TLS_GDBFD_RELOC_TILEPRO_IMM16_X1_TLS_GDBFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LOBFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LOBFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HIBFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HIBFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HABFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HABFD_RELOC_TILEPRO_IMM16_X0_TLS_IEBFD_RELOC_TILEPRO_IMM16_X1_TLS_IEBFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LOBFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LOBFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HIBFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HIBFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HABFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HABFD_RELOC_TILEPRO_TLS_DTPMOD32BFD_RELOC_TILEPRO_TLS_DTPOFF32BFD_RELOC_TILEPRO_IMM16_X0_TLS_LEBFD_RELOC_TILEPRO_IMM16_X1_TLS_LEBFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LOBFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LOBFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HIBFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HIBFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HABFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HABFD_RELOC_TILEGX_JUMPOFF_X1_PLTBFD_RELOC_TILEGX_IMM16_X0_HW0_LASTBFD_RELOC_TILEGX_IMM16_X1_HW0_LASTBFD_RELOC_TILEGX_IMM16_X0_HW1_LASTBFD_RELOC_TILEGX_IMM16_X1_HW1_LASTBFD_RELOC_TILEGX_IMM16_X0_HW2_LASTBFD_RELOC_TILEGX_IMM16_X1_HW2_LASTBFD_RELOC_TILEGX_IMM16_X0_HW0_PCRELBFD_RELOC_TILEGX_IMM16_X1_HW0_PCRELBFD_RELOC_TILEGX_IMM16_X0_HW1_PCRELBFD_RELOC_TILEGX_IMM16_X1_HW1_PCRELBFD_RELOC_TILEGX_IMM16_X0_HW2_PCRELBFD_RELOC_TILEGX_IMM16_X1_HW2_PCRELBFD_RELOC_TILEGX_IMM16_X0_HW3_PCRELBFD_RELOC_TILEGX_IMM16_X1_HW3_PCRELBFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCRELBFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCRELBFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCRELBFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCRELBFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCRELBFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCRELBFD_RELOC_TILEGX_IMM16_X0_HW0_GOTBFD_RELOC_TILEGX_IMM16_X1_HW0_GOTBFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCRELBFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCRELBFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCRELBFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCRELBFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCRELBFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCRELBFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOTBFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOTBFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOTBFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOTBFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCRELBFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCRELBFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GDBFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GDBFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LEBFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LEBFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LEBFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LEBFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LEBFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LEBFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GDBFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GDBFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GDBFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GDBFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IEBFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IEBFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCRELBFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCRELBFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCRELBFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCRELBFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCRELBFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCRELBFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IEBFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IEBFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IEBFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IEBFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADDBFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADDBFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADDBFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADDBFD_RELOC_TILEGX_IMM8_X0_TLS_ADDBFD_RELOC_TILEGX_IMM8_X1_TLS_ADDBFD_RELOC_TILEGX_IMM8_Y0_TLS_ADDBFD_RELOC_TILEGX_IMM8_Y1_TLS_ADDBFD_RELOC_WASM32_LEB128_GOT_CODEBFD_RELOC_CKCORE_PCREL_IMM8BY4BFD_RELOC_CKCORE_PCREL_IMM11BY2BFD_RELOC_CKCORE_PCREL_IMM4BY2BFD_RELOC_CKCORE_PCREL_JSR_IMM11BY2BFD_RELOC_CKCORE_GNU_VTINHERITBFD_RELOC_CKCORE_PCREL_IMM26BY2BFD_RELOC_CKCORE_PCREL_IMM16BY2BFD_RELOC_CKCORE_PCREL_IMM16BY4BFD_RELOC_CKCORE_PCREL_IMM10BY2BFD_RELOC_CKCORE_PCREL_IMM10BY4BFD_RELOC_CKCORE_PCREL_JSR_IMM26BY2BFD_RELOC_CKCORE_PCREL_IMM18BY2BFD_RELOC_CKCORE_DOFFSET_IMM18BFD_RELOC_CKCORE_DOFFSET_IMM18BY2BFD_RELOC_CKCORE_DOFFSET_IMM18BY4BFD_RELOC_CKCORE_PCREL_IMM7BY4BFD_RELOC_CKCORE_PCREL_FLRW_IMM8BY4BFD_RELOC_CKCORE_PCREL_BLOOP_IMM4BY4BFD_RELOC_CKCORE_PCREL_BLOOP_IMM12BY4@@overflow: BFD_RELOC_UNUSED@@HCPC`CC C0CCCȼCCCCCCCCȾCоCCCCCCPCCk\_bfd_relocate_contentswrite_relocread_relocbfd_check_overflowbfd_get_reloc_sizek\"k\4k\Ak\Nk\[k\hk\uk\k\k\k\k\k\k\k\k\l\*l\Al\Wl\kl\l\l\l\l\l\l\m\m\2m\Hm\\m\pm\m\m\m\m\m\m\m\n\+n\Bn\Yn\pn\n\n\n\n\n\n\o\+o\Bo\Xo\oo\o\o\o\o\o\o\ p\!p\/p\@p\Vp\lp\p\p\p\p\p\p\p\p\q\%q\;q\Qq\fq\{q\q\q\q\q\q\r\r\1r\Or\[[mr\r\r\r\r\r\r\s\%s\:s\Os\ds\|s\s\s\s\s\s\t\t\(t\>t\Tt\jt\~t\t\t\t\t\t\u\u\/u\Ku\gu\u\u\u\u\u\v\/v\Mv\iv\v\v\v\v\v\w\+w\Hw\ew\w\w\w\w\w\w\x\&x\:x\Ox\cx\yx\x\x\x\x\x\x\ y\%y\Ay\Xy\py\y\y\y\y\y\z\z\5z\Iz\]z\qz\z\z\z\z\z\{\{\8{\Q{\l{\{\{\{\{\{\{\|\)|\8|\I|\X|\m|\|\|\|\|\|\|\ }\$}\ [H[=}\p[[[}\r}\[[[}\}\}\}\}\~\3~\L~\g~\~\~\~\~\~\~\\-\J\c\\\\\\\\0\M\e\\\\ƀ\ހ\\ \'\=\X\p\\\\́\\\\9\U\k\\\[0[X[x[\[Ղ\\ \[)\[G\Y\m\\\\Ã\Ճ\\\\"\4\J\`\v\\\\Ʉ\߄\\ \\3\G\^\{\\\[8[X[҅\\\\/\K\f\\\\̆\\\\2\G\c\\\\͇\\\\,\G\b\}\\\Ɉ\\\\1\J\g\\\\։\\\\(\@\W\l\\\\Ŋ\ڊ\\\\6\N\i\\\\ԋ\\\\/\F\\\v\\\Ō\ڌ\\\'\>\U\o\\\\Ս\\\!\;\x[U\s\\\\܎\[\ \$\;\W\t\\\\؏\\\1\N\k\\\\ɐ\\\ \\2\D\^\y\\\Ñ\֑\\\\3\M\g\\\\ג\\ \#\<\W\r\\\“\ۓ\\ \"\:\R\j\\\\ʔ\[[[ [@[`[\\\+\D\\\v\\\\Օ\\ \&\B\\\y\\\ʖ\\\\8\[T\p\\\ė\\\[\:\P\l\\\\ɘ\\\[[[0[X[x[[[\-\E\W\k\\\\Ù\ܙ\\ \ \:\T\n\\\\ך\\\+\H\e\\\\֛\\\-\K\f\\\[[ [@[\h[ۜ\[[[[[\\@[h[[[*\D\W\f\\\\̝\\\ \9\R\k\\\[[ [@[ž\۞\\ \%\;\Q\f\y\\\\ן\`[[\ \'\>\[\x\\\ˠ\\\ \!\6\J\a\x\\\á\ޡ\\\&\@\W\r\\\\ܢ\\\'\?\W\o\\\\ң\\\\5\M\h\\\\Ȥ\\\\+\C\[\s\\[[[[\\ӥ\\ \!\<\T\f\x\\\\Ӧ\@[`[\\\2\H\b\~\\\˧\\\\.\@\S\g\~\\\\ר\\\\%\:\O\i\\\\\ԩ\\\ \\6\L\^\t\\\\ʪ\\\\-\J\f\\\\ɫ\߫\\\2\K\d\\\\Ǭ\߬\\\%\;\T\m\\\\í\ڭ\\\\/\F\Z\n\\\[\[ծ\\\\1\H\`\w\\\¯\ۯ\\\\8\T\r\\\\\Ͱ\ް\\\\%\7\M\f\\\\ű\ܱ\\ \#\;\S\k\{\\\\Ӳ\\\\/\I\a\{\\\˳\\\\(\?\R\f\|\\\\Ѵ\\\\.\K\d\|\\\ǵ\\\\-\E\b\\\\ȶ\߶\\ \#\;\S\[[[p\\\\([ɷ\\\H[p[[#\=\U\m\\\\\Ը\\\\%\<\S\g\z\\\\˹\߹\\ \ \5\O\i\{\\\\Ժ\\\\*\B\\\n\\\\»\ջ\\\\.\F\^\v\\\\ϼ\\\\)\A\Y\o\\\½\ٽ\\\)\E\a\y\\\\ھ\\ \!\8\O\f\}\\\ȿ\\\\(\@\X\n\\\\\\\\4\P\h\\\\\\\\1\K\e\\\\\\\\0\J\d\~\\\\\[[\\:\T\n\\\\[ [@[\\ \'\C\[\s\\`[\\\\ \*\>\X\u\[[\\\\\\"\8\O\d\y\\\\\\\3\O\k\\\\\\\0\[N\j\\\\[\\\4\Q\h\~\\\[8[X[x[\\\[\9\[[[([W\o\\P[\\\\\x[ \!\[8\S\i\\\\\\\\,\E\Y\m\\\\\\\\,\D\[\s\\\\\\ \#\=\W\q\\\\\\\1\F\`\w\\\\\\\\$\:\P\g\~\\[\\[\\\ \1\H\`\x\\\\\\\ \!\8\O\d\{\\\\\\\,\A\V\l\\\\\\\,\E\c\z\\\\\\\\:\W\o\\[0[\\\\ \&\B\V\l\\\\\\\\(\?\V\X[m\\\\\\\\x[\.\D\[\o\\\\\\\\/\H\a\z\\\\\\\(\8\M\`\s\\\\\\\\\6\S\p\\\\\\ \'\A\V\o\\\\\\\\\6\S\o\\\\\\\/\E\`\y\\\\\\\\0\E\Z\p\\\\\\\\\1\C\V\i\\\\\\\\\4\K\_\t\\\\\\\\(\;\O\c\x\\\\\\\\ \\.\G\Y\m\\\\\\\\\"\9\M\b\w\\\\\\\\\/\C\Y\p\\\\\\\\"\6\K\b\y\\\\\\\\2\K\d\{\\\\\\\'\>\V\m\\\\\\\\#\:\T\l\\\\\\\\!\6\L\e\|\\\\\\\\1\H\_\v\\\\\\\\/\D\\\t\\\\\\\!\;\R\j\\\\\\\\3\L\d\}\\\\\\\(\B\\\x\[[[[\\\\\\7\R\m\\\\\\\\-\D\[\o\\\\\\\\4\O\j\\\\\\\"\=\[\q\\\\\\\\)\A\Z\o\\\\\\\\#\8\M\c\}\\\\\\ \\4\K\b\z\\\\\\ \\2\F\[\p\\\\\\\\\3\J\b\z\\\\\\\\0\D\[\r\\\\\\\\\+\A\X\o\\\\\\\\7\S\m\\\\\\\\(\A\^\z\\\\\\\"\>\V\n\\\\\\\\!\;\P\h\\\\\\\ ]#]>]Y]t]]]]]]]7]R]n]]]]]]]-]F]`]z]]]]]]]]-]D]_]n]]]]]]]]]']9]T]m]]]][]]]]8[X[x[[[[[([-]E]b]z]]]]]]](]?]T]n]]]]]]]]]0]F]\]s]]]]]] ]&]?]X]s]]]]]] ] ]< ]S ]j ] ] ]H[h[ ] ] ] ] ]1 ]I ]c ]} ] ] ] ] ] ] ]" ]8 ]N ]f ] ] ] ] ] ] ]! ]7 ]Q ]k ] ] ] ] ] ] ] ]/ ]I ]c ]} ] ] ] ] ]]]6]Q]l]]]]]]])]D]_]z]]]]]]]0]E]a]]]]]] ]"]<]T]m]]]]]]] ] ]4]H]\]p]]]]]]]]"]6]N]f]~][]]][[][[@[h[]"][[[@][[]y]8[]]]]`[[ ]$]@]^][[[[@[h[[|]]]]]]]"]=]X]r]]]]]]]3]O][[[[@[`[[[[[[k]]]]]] ](]F]@[`[[[[[[@[h[[[[[0[X[x[[[\8\h\\\\\@\h\\\\ \P\\\\\8\h\\\\\8\h\\\\\@\p\\\\0\`\\\\\8\`\\\\d]]\]]]] ]&]C]_]y]] \]H\x\\\ \( \X \]]]]5]P] \n]]]] \]]]-]H]f]]]]] \ \ \@ \h \ \ \ \ \( \H \p \ \ \ \ \]]4]Q]l]]]]]8 \` \ \ \] \ \( \P \x \ \ \ \\@\h\\\\\0\X\x\]\\\\8\`\\\2]G]\]q]]]]]]]]8]R]\n]]]]]] ]*]F]`]z]]]]] ]" ]@ ]^ ]| ] ]\ \H\p\\\\\8\`\\\\\(\X\\\\\H\p\\\\\8\`\\\\\(\P\x\\\\\H\x\\\\8\h\\\\\H\x\\\\8\h\\ ] ] ]!]/!]M!]j!]\\\@\!]h\\\\!]!]!]!]!]"]"]4"]L"]c"]}"]"]"]"]"]"]#]##]?#][#]s#]\#]#]#]#]#]$]-$]F$]\$]0\P\p\t$]\\$]$]$]$]$]%]'%]>%]U%]l%]%]\\\8\X\%]%]%]%] &])&]F&]]&]w&]&]&]&]&]&]']6']x\T']r']\\\\']']']0\'](](]8(]S(]n(](](]P\(](](]x\\)]\coff-Intel-littlecoff-Intel-bigelf64-x86-64coff-z8k.debug_rangesunusedVRT32@@uninitialized@@BFD_RELOC_64BFD_RELOC_32BFD_RELOC_26BFD_RELOC_24BFD_RELOC_16BFD_RELOC_14BFD_RELOC_8BFD_RELOC_64_PCRELBFD_RELOC_32_PCRELBFD_RELOC_24_PCRELBFD_RELOC_16_PCRELBFD_RELOC_12_PCRELBFD_RELOC_8_PCRELBFD_RELOC_32_SECRELBFD_RELOC_32_GOT_PCRELBFD_RELOC_16_GOT_PCRELBFD_RELOC_8_GOT_PCRELBFD_RELOC_32_GOTOFFBFD_RELOC_16_GOTOFFBFD_RELOC_LO16_GOTOFFBFD_RELOC_HI16_GOTOFFBFD_RELOC_HI16_S_GOTOFFBFD_RELOC_8_GOTOFFBFD_RELOC_64_PLT_PCRELBFD_RELOC_32_PLT_PCRELBFD_RELOC_24_PLT_PCRELBFD_RELOC_16_PLT_PCRELBFD_RELOC_8_PLT_PCRELBFD_RELOC_64_PLTOFFBFD_RELOC_32_PLTOFFBFD_RELOC_16_PLTOFFBFD_RELOC_LO16_PLTOFFBFD_RELOC_HI16_PLTOFFBFD_RELOC_HI16_S_PLTOFFBFD_RELOC_8_PLTOFFBFD_RELOC_SIZE32BFD_RELOC_SIZE64BFD_RELOC_68K_GLOB_DATBFD_RELOC_68K_JMP_SLOTBFD_RELOC_68K_RELATIVEBFD_RELOC_68K_TLS_GD32BFD_RELOC_68K_TLS_GD16BFD_RELOC_68K_TLS_GD8BFD_RELOC_68K_TLS_LDM32BFD_RELOC_68K_TLS_LDM16BFD_RELOC_68K_TLS_LDM8BFD_RELOC_68K_TLS_LDO32BFD_RELOC_68K_TLS_LDO16BFD_RELOC_68K_TLS_LDO8BFD_RELOC_68K_TLS_IE32BFD_RELOC_68K_TLS_IE16BFD_RELOC_68K_TLS_IE8BFD_RELOC_68K_TLS_LE32BFD_RELOC_68K_TLS_LE16BFD_RELOC_68K_TLS_LE8BFD_RELOC_32_BASERELBFD_RELOC_16_BASERELBFD_RELOC_LO16_BASERELBFD_RELOC_HI16_BASERELBFD_RELOC_HI16_S_BASERELBFD_RELOC_8_BASERELBFD_RELOC_RVABFD_RELOC_8_FFnnBFD_RELOC_32_PCREL_S2BFD_RELOC_16_PCREL_S2BFD_RELOC_23_PCREL_S2BFD_RELOC_HI22BFD_RELOC_LO10BFD_RELOC_GPREL16BFD_RELOC_GPREL32BFD_RELOC_NONEBFD_RELOC_SPARC_WDISP22BFD_RELOC_SPARC22BFD_RELOC_SPARC13BFD_RELOC_SPARC_GOT10BFD_RELOC_SPARC_GOT13BFD_RELOC_SPARC_GOT22BFD_RELOC_SPARC_PC10BFD_RELOC_SPARC_PC22BFD_RELOC_SPARC_WPLT30BFD_RELOC_SPARC_COPYBFD_RELOC_SPARC_GLOB_DATBFD_RELOC_SPARC_JMP_SLOTBFD_RELOC_SPARC_RELATIVEBFD_RELOC_SPARC_UA16BFD_RELOC_SPARC_UA32BFD_RELOC_SPARC_UA64BFD_RELOC_SPARC_GOTDATA_HIX22BFD_RELOC_SPARC_GOTDATA_LOX10BFD_RELOC_SPARC_GOTDATA_OPBFD_RELOC_SPARC_JMP_IRELBFD_RELOC_SPARC_IRELATIVEBFD_RELOC_SPARC_BASE13BFD_RELOC_SPARC_BASE22BFD_RELOC_SPARC_10BFD_RELOC_SPARC_11BFD_RELOC_SPARC_OLO10BFD_RELOC_SPARC_HH22BFD_RELOC_SPARC_HM10BFD_RELOC_SPARC_LM22BFD_RELOC_SPARC_PC_HH22BFD_RELOC_SPARC_PC_HM10BFD_RELOC_SPARC_PC_LM22BFD_RELOC_SPARC_WDISP16BFD_RELOC_SPARC_WDISP19BFD_RELOC_SPARC_7BFD_RELOC_SPARC_6BFD_RELOC_SPARC_5BFD_RELOC_SPARC_PLT32BFD_RELOC_SPARC_PLT64BFD_RELOC_SPARC_HIX22BFD_RELOC_SPARC_LOX10BFD_RELOC_SPARC_H44BFD_RELOC_SPARC_M44BFD_RELOC_SPARC_L44BFD_RELOC_SPARC_REGISTERBFD_RELOC_SPARC_H34BFD_RELOC_SPARC_SIZE32BFD_RELOC_SPARC_SIZE64BFD_RELOC_SPARC_WDISP10BFD_RELOC_SPARC_REV32BFD_RELOC_SPARC_TLS_GD_HI22BFD_RELOC_SPARC_TLS_GD_LO10BFD_RELOC_SPARC_TLS_GD_ADDBFD_RELOC_SPARC_TLS_GD_CALLBFD_RELOC_SPARC_TLS_LDM_HI22BFD_RELOC_SPARC_TLS_LDM_LO10BFD_RELOC_SPARC_TLS_LDM_ADDBFD_RELOC_SPARC_TLS_LDM_CALLBFD_RELOC_SPARC_TLS_LDO_HIX22BFD_RELOC_SPARC_TLS_LDO_LOX10BFD_RELOC_SPARC_TLS_LDO_ADDBFD_RELOC_SPARC_TLS_IE_HI22BFD_RELOC_SPARC_TLS_IE_LO10BFD_RELOC_SPARC_TLS_IE_LDBFD_RELOC_SPARC_TLS_IE_LDXBFD_RELOC_SPARC_TLS_IE_ADDBFD_RELOC_SPARC_TLS_LE_HIX22BFD_RELOC_SPARC_TLS_LE_LOX10BFD_RELOC_SPARC_TLS_DTPMOD32BFD_RELOC_SPARC_TLS_DTPMOD64BFD_RELOC_SPARC_TLS_DTPOFF32BFD_RELOC_SPARC_TLS_DTPOFF64BFD_RELOC_SPARC_TLS_TPOFF32BFD_RELOC_SPARC_TLS_TPOFF64BFD_RELOC_SPU_IMM7BFD_RELOC_SPU_IMM8BFD_RELOC_SPU_IMM10BFD_RELOC_SPU_IMM10WBFD_RELOC_SPU_IMM16BFD_RELOC_SPU_IMM16WBFD_RELOC_SPU_IMM18BFD_RELOC_SPU_PCREL9aBFD_RELOC_SPU_PCREL9bBFD_RELOC_SPU_PCREL16BFD_RELOC_SPU_LO16BFD_RELOC_SPU_HI16BFD_RELOC_SPU_PPU32BFD_RELOC_SPU_PPU64BFD_RELOC_SPU_ADD_PICBFD_RELOC_ALPHA_GPDISP_HI16BFD_RELOC_ALPHA_GPDISP_LO16BFD_RELOC_ALPHA_GPDISPBFD_RELOC_ALPHA_LITERALBFD_RELOC_ALPHA_ELF_LITERALBFD_RELOC_ALPHA_LITUSEBFD_RELOC_ALPHA_HINTBFD_RELOC_ALPHA_LINKAGEBFD_RELOC_ALPHA_CODEADDRBFD_RELOC_ALPHA_GPREL_HI16BFD_RELOC_ALPHA_GPREL_LO16BFD_RELOC_ALPHA_BRSGPBFD_RELOC_ALPHA_NOPBFD_RELOC_ALPHA_BSRBFD_RELOC_ALPHA_LDABFD_RELOC_ALPHA_BOHBFD_RELOC_ALPHA_TLSGDBFD_RELOC_ALPHA_TLSLDMBFD_RELOC_ALPHA_DTPMOD64BFD_RELOC_ALPHA_GOTDTPREL16BFD_RELOC_ALPHA_DTPREL64BFD_RELOC_ALPHA_DTPREL_HI16BFD_RELOC_ALPHA_DTPREL_LO16BFD_RELOC_ALPHA_DTPREL16BFD_RELOC_ALPHA_GOTTPREL16BFD_RELOC_ALPHA_TPREL64BFD_RELOC_ALPHA_TPREL_HI16BFD_RELOC_ALPHA_TPREL_LO16BFD_RELOC_ALPHA_TPREL16BFD_RELOC_MIPS_JMPBFD_RELOC_MICROMIPS_JMPBFD_RELOC_MIPS16_JMPBFD_RELOC_MIPS16_GPRELBFD_RELOC_HI16BFD_RELOC_HI16_SBFD_RELOC_LO16BFD_RELOC_HI16_PCRELBFD_RELOC_HI16_S_PCRELBFD_RELOC_LO16_PCRELBFD_RELOC_MIPS16_GOT16BFD_RELOC_MIPS16_CALL16BFD_RELOC_MIPS16_HI16BFD_RELOC_MIPS16_HI16_SBFD_RELOC_MIPS16_LO16BFD_RELOC_MIPS16_TLS_GDBFD_RELOC_MIPS16_TLS_LDMBFD_RELOC_MIPS16_TLS_GOTTPRELBFD_RELOC_MIPS_LITERALBFD_RELOC_MICROMIPS_LITERALBFD_RELOC_MIPS16_16_PCREL_S1BFD_RELOC_MIPS_21_PCREL_S2BFD_RELOC_MIPS_26_PCREL_S2BFD_RELOC_MIPS_18_PCREL_S3BFD_RELOC_MIPS_19_PCREL_S2BFD_RELOC_MICROMIPS_GPREL16BFD_RELOC_MICROMIPS_HI16BFD_RELOC_MICROMIPS_HI16_SBFD_RELOC_MICROMIPS_LO16BFD_RELOC_MIPS_GOT16BFD_RELOC_MICROMIPS_GOT16BFD_RELOC_MIPS_CALL16BFD_RELOC_MICROMIPS_CALL16BFD_RELOC_MIPS_GOT_HI16BFD_RELOC_MICROMIPS_GOT_HI16BFD_RELOC_MIPS_GOT_LO16BFD_RELOC_MICROMIPS_GOT_LO16BFD_RELOC_MIPS_CALL_HI16BFD_RELOC_MICROMIPS_CALL_HI16BFD_RELOC_MIPS_CALL_LO16BFD_RELOC_MICROMIPS_CALL_LO16BFD_RELOC_MIPS_SUBBFD_RELOC_MICROMIPS_SUBBFD_RELOC_MIPS_GOT_PAGEBFD_RELOC_MICROMIPS_GOT_PAGEBFD_RELOC_MIPS_GOT_OFSTBFD_RELOC_MICROMIPS_GOT_OFSTBFD_RELOC_MIPS_GOT_DISPBFD_RELOC_MICROMIPS_GOT_DISPBFD_RELOC_MIPS_SHIFT5BFD_RELOC_MIPS_SHIFT6BFD_RELOC_MIPS_INSERT_ABFD_RELOC_MIPS_INSERT_BBFD_RELOC_MIPS_DELETEBFD_RELOC_MIPS_HIGHESTBFD_RELOC_MICROMIPS_HIGHESTBFD_RELOC_MIPS_HIGHERBFD_RELOC_MICROMIPS_HIGHERBFD_RELOC_MIPS_SCN_DISPBFD_RELOC_MICROMIPS_SCN_DISPBFD_RELOC_MIPS_REL16BFD_RELOC_MIPS_RELGOTBFD_RELOC_MIPS_JALRBFD_RELOC_MICROMIPS_JALRBFD_RELOC_MIPS_TLS_DTPMOD32BFD_RELOC_MIPS_TLS_DTPREL32BFD_RELOC_MIPS_TLS_DTPMOD64BFD_RELOC_MIPS_TLS_DTPREL64BFD_RELOC_MIPS_TLS_GDBFD_RELOC_MICROMIPS_TLS_GDBFD_RELOC_MIPS_TLS_LDMBFD_RELOC_MICROMIPS_TLS_LDMBFD_RELOC_MIPS_TLS_GOTTPRELBFD_RELOC_MIPS_TLS_TPREL32BFD_RELOC_MIPS_TLS_TPREL64BFD_RELOC_MIPS_TLS_TPREL_HI16BFD_RELOC_MIPS_TLS_TPREL_LO16BFD_RELOC_MIPS_EHBFD_RELOC_MIPS_COPYBFD_RELOC_MIPS_JUMP_SLOTBFD_RELOC_MOXIE_10_PCRELBFD_RELOC_FT32_10BFD_RELOC_FT32_20BFD_RELOC_FT32_17BFD_RELOC_FT32_18BFD_RELOC_FT32_RELAXBFD_RELOC_FT32_SC0BFD_RELOC_FT32_SC1BFD_RELOC_FT32_15BFD_RELOC_FT32_DIFF32BFD_RELOC_FRV_LABEL16BFD_RELOC_FRV_LABEL24BFD_RELOC_FRV_LO16BFD_RELOC_FRV_HI16BFD_RELOC_FRV_GPREL12BFD_RELOC_FRV_GPRELU12BFD_RELOC_FRV_GPREL32BFD_RELOC_FRV_GPRELHIBFD_RELOC_FRV_GPRELLOBFD_RELOC_FRV_GOT12BFD_RELOC_FRV_GOTHIBFD_RELOC_FRV_GOTLOBFD_RELOC_FRV_FUNCDESCBFD_RELOC_FRV_FUNCDESC_GOT12BFD_RELOC_FRV_FUNCDESC_GOTHIBFD_RELOC_FRV_FUNCDESC_GOTLOBFD_RELOC_FRV_FUNCDESC_VALUEBFD_RELOC_FRV_GOTOFF12BFD_RELOC_FRV_GOTOFFHIBFD_RELOC_FRV_GOTOFFLOBFD_RELOC_FRV_GETTLSOFFBFD_RELOC_FRV_TLSDESC_VALUEBFD_RELOC_FRV_GOTTLSDESC12BFD_RELOC_FRV_GOTTLSDESCHIBFD_RELOC_FRV_GOTTLSDESCLOBFD_RELOC_FRV_TLSMOFF12BFD_RELOC_FRV_TLSMOFFHIBFD_RELOC_FRV_TLSMOFFLOBFD_RELOC_FRV_GOTTLSOFF12BFD_RELOC_FRV_GOTTLSOFFHIBFD_RELOC_FRV_GOTTLSOFFLOBFD_RELOC_FRV_TLSOFFBFD_RELOC_FRV_TLSDESC_RELAXBFD_RELOC_FRV_GETTLSOFF_RELAXBFD_RELOC_FRV_TLSOFF_RELAXBFD_RELOC_FRV_TLSMOFFBFD_RELOC_MN10300_GOTOFF24BFD_RELOC_MN10300_GOT32BFD_RELOC_MN10300_GOT24BFD_RELOC_MN10300_GOT16BFD_RELOC_MN10300_COPYBFD_RELOC_MN10300_GLOB_DATBFD_RELOC_MN10300_JMP_SLOTBFD_RELOC_MN10300_RELATIVEBFD_RELOC_MN10300_SYM_DIFFBFD_RELOC_MN10300_ALIGNBFD_RELOC_MN10300_TLS_GDBFD_RELOC_MN10300_TLS_LDBFD_RELOC_MN10300_TLS_LDOBFD_RELOC_MN10300_TLS_GOTIEBFD_RELOC_MN10300_TLS_IEBFD_RELOC_MN10300_TLS_LEBFD_RELOC_MN10300_TLS_DTPMODBFD_RELOC_MN10300_TLS_DTPOFFBFD_RELOC_MN10300_TLS_TPOFFBFD_RELOC_MN10300_32_PCRELBFD_RELOC_MN10300_16_PCRELBFD_RELOC_386_GOT32BFD_RELOC_386_PLT32BFD_RELOC_386_COPYBFD_RELOC_386_GLOB_DATBFD_RELOC_386_JUMP_SLOTBFD_RELOC_386_RELATIVEBFD_RELOC_386_GOTOFFBFD_RELOC_386_GOTPCBFD_RELOC_386_TLS_TPOFFBFD_RELOC_386_TLS_IEBFD_RELOC_386_TLS_GOTIEBFD_RELOC_386_TLS_LEBFD_RELOC_386_TLS_GDBFD_RELOC_386_TLS_LDMBFD_RELOC_386_TLS_LDO_32BFD_RELOC_386_TLS_IE_32BFD_RELOC_386_TLS_LE_32BFD_RELOC_386_TLS_DTPMOD32BFD_RELOC_386_TLS_DTPOFF32BFD_RELOC_386_TLS_TPOFF32BFD_RELOC_386_TLS_GOTDESCBFD_RELOC_386_TLS_DESC_CALLBFD_RELOC_386_TLS_DESCBFD_RELOC_386_IRELATIVEBFD_RELOC_386_GOT32XBFD_RELOC_X86_64_GOT32BFD_RELOC_X86_64_PLT32BFD_RELOC_X86_64_COPYBFD_RELOC_X86_64_GLOB_DATBFD_RELOC_X86_64_JUMP_SLOTBFD_RELOC_X86_64_RELATIVEBFD_RELOC_X86_64_GOTPCRELBFD_RELOC_X86_64_32SBFD_RELOC_X86_64_DTPMOD64BFD_RELOC_X86_64_DTPOFF64BFD_RELOC_X86_64_TPOFF64BFD_RELOC_X86_64_TLSGDBFD_RELOC_X86_64_TLSLDBFD_RELOC_X86_64_DTPOFF32BFD_RELOC_X86_64_GOTTPOFFBFD_RELOC_X86_64_TPOFF32BFD_RELOC_X86_64_GOTOFF64BFD_RELOC_X86_64_GOTPC32BFD_RELOC_X86_64_GOT64BFD_RELOC_X86_64_GOTPCREL64BFD_RELOC_X86_64_GOTPC64BFD_RELOC_X86_64_GOTPLT64BFD_RELOC_X86_64_PLTOFF64BFD_RELOC_X86_64_TLSDESC_CALLBFD_RELOC_X86_64_TLSDESCBFD_RELOC_X86_64_IRELATIVEBFD_RELOC_X86_64_PC32_BNDBFD_RELOC_X86_64_PLT32_BNDBFD_RELOC_X86_64_GOTPCRELXBFD_RELOC_NS32K_IMM_8BFD_RELOC_NS32K_IMM_16BFD_RELOC_NS32K_IMM_32BFD_RELOC_NS32K_IMM_8_PCRELBFD_RELOC_NS32K_IMM_16_PCRELBFD_RELOC_NS32K_IMM_32_PCRELBFD_RELOC_NS32K_DISP_8BFD_RELOC_NS32K_DISP_16BFD_RELOC_NS32K_DISP_32BFD_RELOC_NS32K_DISP_8_PCRELBFD_RELOC_NS32K_DISP_16_PCRELBFD_RELOC_NS32K_DISP_32_PCRELBFD_RELOC_PDP11_DISP_8_PCRELBFD_RELOC_PDP11_DISP_6_PCRELBFD_RELOC_PJ_CODE_HI16BFD_RELOC_PJ_CODE_LO16BFD_RELOC_PJ_CODE_DIR16BFD_RELOC_PJ_CODE_DIR32BFD_RELOC_PJ_CODE_REL16BFD_RELOC_PJ_CODE_REL32BFD_RELOC_PPC_B26BFD_RELOC_PPC_BA26BFD_RELOC_PPC_TOC16BFD_RELOC_PPC_B16BFD_RELOC_PPC_B16_BRTAKENBFD_RELOC_PPC_B16_BRNTAKENBFD_RELOC_PPC_BA16BFD_RELOC_PPC_BA16_BRTAKENBFD_RELOC_PPC_BA16_BRNTAKENBFD_RELOC_PPC_COPYBFD_RELOC_PPC_GLOB_DATBFD_RELOC_PPC_JMP_SLOTBFD_RELOC_PPC_RELATIVEBFD_RELOC_PPC_LOCAL24PCBFD_RELOC_PPC_EMB_NADDR32BFD_RELOC_PPC_EMB_NADDR16BFD_RELOC_PPC_EMB_NADDR16_LOBFD_RELOC_PPC_EMB_NADDR16_HIBFD_RELOC_PPC_EMB_NADDR16_HABFD_RELOC_PPC_EMB_SDAI16BFD_RELOC_PPC_EMB_SDA2I16BFD_RELOC_PPC_EMB_SDA2RELBFD_RELOC_PPC_EMB_SDA21BFD_RELOC_PPC_EMB_MRKREFBFD_RELOC_PPC_EMB_RELSEC16BFD_RELOC_PPC_EMB_RELST_LOBFD_RELOC_PPC_EMB_RELST_HIBFD_RELOC_PPC_EMB_RELST_HABFD_RELOC_PPC_EMB_BIT_FLDBFD_RELOC_PPC_EMB_RELSDABFD_RELOC_PPC_VLE_REL8BFD_RELOC_PPC_VLE_REL15BFD_RELOC_PPC_VLE_REL24BFD_RELOC_PPC_VLE_LO16ABFD_RELOC_PPC_VLE_LO16DBFD_RELOC_PPC_VLE_HI16ABFD_RELOC_PPC_VLE_HI16DBFD_RELOC_PPC_VLE_HA16ABFD_RELOC_PPC_VLE_HA16DBFD_RELOC_PPC_VLE_SDA21BFD_RELOC_PPC_VLE_SDA21_LOBFD_RELOC_PPC_16DX_HABFD_RELOC_PPC_REL16DX_HABFD_RELOC_PPC64_HIGHERBFD_RELOC_PPC64_HIGHER_SBFD_RELOC_PPC64_HIGHESTBFD_RELOC_PPC64_HIGHEST_SBFD_RELOC_PPC64_TOC16_LOBFD_RELOC_PPC64_TOC16_HIBFD_RELOC_PPC64_TOC16_HABFD_RELOC_PPC64_TOCBFD_RELOC_PPC64_PLTGOT16BFD_RELOC_PPC64_PLTGOT16_LOBFD_RELOC_PPC64_PLTGOT16_HIBFD_RELOC_PPC64_PLTGOT16_HABFD_RELOC_PPC64_ADDR16_DSBFD_RELOC_PPC64_ADDR16_LO_DSBFD_RELOC_PPC64_GOT16_DSBFD_RELOC_PPC64_GOT16_LO_DSBFD_RELOC_PPC64_PLT16_LO_DSBFD_RELOC_PPC64_SECTOFF_DSBFD_RELOC_PPC64_SECTOFF_LO_DSBFD_RELOC_PPC64_TOC16_DSBFD_RELOC_PPC64_TOC16_LO_DSBFD_RELOC_PPC64_PLTGOT16_DSBFD_RELOC_PPC64_ADDR16_HIGHBFD_RELOC_PPC64_ADDR16_HIGHABFD_RELOC_PPC64_REL16_HIGHBFD_RELOC_PPC64_REL16_HIGHABFD_RELOC_PPC64_REL16_HIGHERBFD_RELOC_PPC64_REL16_HIGHERABFD_RELOC_PPC64_REL16_HIGHESTBFD_RELOC_PPC64_ADDR64_LOCALBFD_RELOC_PPC64_ENTRYBFD_RELOC_PPC64_REL24_NOTOCBFD_RELOC_PPC64_D34BFD_RELOC_PPC64_D34_LOBFD_RELOC_PPC64_D34_HI30BFD_RELOC_PPC64_D34_HA30BFD_RELOC_PPC64_PCREL34BFD_RELOC_PPC64_GOT_PCREL34BFD_RELOC_PPC64_PLT_PCREL34BFD_RELOC_PPC64_D28BFD_RELOC_PPC64_PCREL28BFD_RELOC_PPC_TLSBFD_RELOC_PPC_TLSGDBFD_RELOC_PPC_TLSLDBFD_RELOC_PPC_DTPMODBFD_RELOC_PPC_TPREL16BFD_RELOC_PPC_TPREL16_LOBFD_RELOC_PPC_TPREL16_HIBFD_RELOC_PPC_TPREL16_HABFD_RELOC_PPC_TPRELBFD_RELOC_PPC_DTPREL16BFD_RELOC_PPC_DTPREL16_LOBFD_RELOC_PPC_DTPREL16_HIBFD_RELOC_PPC_DTPREL16_HABFD_RELOC_PPC_DTPRELBFD_RELOC_PPC_GOT_TLSGD16BFD_RELOC_PPC_GOT_TLSGD16_LOBFD_RELOC_PPC_GOT_TLSGD16_HIBFD_RELOC_PPC_GOT_TLSGD16_HABFD_RELOC_PPC_GOT_TLSLD16BFD_RELOC_PPC_GOT_TLSLD16_LOBFD_RELOC_PPC_GOT_TLSLD16_HIBFD_RELOC_PPC_GOT_TLSLD16_HABFD_RELOC_PPC_GOT_TPREL16BFD_RELOC_PPC_GOT_TPREL16_LOBFD_RELOC_PPC_GOT_TPREL16_HIBFD_RELOC_PPC_GOT_TPREL16_HABFD_RELOC_PPC_GOT_DTPREL16BFD_RELOC_PPC_GOT_DTPREL16_LOBFD_RELOC_PPC_GOT_DTPREL16_HIBFD_RELOC_PPC_GOT_DTPREL16_HABFD_RELOC_PPC64_TPREL16_DSBFD_RELOC_PPC64_TPREL16_LO_DSBFD_RELOC_PPC64_TPREL16_HIGHBFD_RELOC_PPC64_TPREL16_HIGHABFD_RELOC_PPC64_DTPREL16_DSBFD_RELOC_PPC64_DTPREL16_HIGHBFD_RELOC_PPC64_TPREL34BFD_RELOC_PPC64_DTPREL34BFD_RELOC_PPC64_TLS_PCRELBFD_RELOC_I370_D12BFD_RELOC_CTORBFD_RELOC_ARM_PCREL_BRANCHBFD_RELOC_ARM_PCREL_BLXBFD_RELOC_THUMB_PCREL_BLXBFD_RELOC_ARM_PCREL_CALLBFD_RELOC_ARM_PCREL_JUMPBFD_RELOC_THUMB_PCREL_BRANCH5BFD_RELOC_THUMB_PCREL_BFCSELBFD_RELOC_ARM_THUMB_BF17BFD_RELOC_ARM_THUMB_BF13BFD_RELOC_ARM_THUMB_BF19BFD_RELOC_ARM_THUMB_LOOP12BFD_RELOC_THUMB_PCREL_BRANCH7BFD_RELOC_THUMB_PCREL_BRANCH9BFD_RELOC_ARM_OFFSET_IMMBFD_RELOC_ARM_THUMB_OFFSETBFD_RELOC_ARM_TARGET1BFD_RELOC_ARM_ROSEGREL32BFD_RELOC_ARM_SBREL32BFD_RELOC_ARM_TARGET2BFD_RELOC_ARM_PREL31BFD_RELOC_ARM_MOVWBFD_RELOC_ARM_MOVTBFD_RELOC_ARM_MOVW_PCRELBFD_RELOC_ARM_MOVT_PCRELBFD_RELOC_ARM_THUMB_MOVWBFD_RELOC_ARM_THUMB_MOVTBFD_RELOC_ARM_GOTFUNCDESCBFD_RELOC_ARM_GOTOFFFUNCDESCBFD_RELOC_ARM_FUNCDESCBFD_RELOC_ARM_FUNCDESC_VALUEBFD_RELOC_ARM_TLS_GD32_FDPICBFD_RELOC_ARM_TLS_LDM32_FDPICBFD_RELOC_ARM_TLS_IE32_FDPICBFD_RELOC_ARM_JUMP_SLOTBFD_RELOC_ARM_GLOB_DATBFD_RELOC_ARM_GOT32BFD_RELOC_ARM_PLT32BFD_RELOC_ARM_RELATIVEBFD_RELOC_ARM_GOTOFFBFD_RELOC_ARM_GOTPCBFD_RELOC_ARM_GOT_PRELBFD_RELOC_ARM_TLS_GD32BFD_RELOC_ARM_TLS_LDO32BFD_RELOC_ARM_TLS_LDM32BFD_RELOC_ARM_TLS_DTPOFF32BFD_RELOC_ARM_TLS_DTPMOD32BFD_RELOC_ARM_TLS_TPOFF32BFD_RELOC_ARM_TLS_IE32BFD_RELOC_ARM_TLS_LE32BFD_RELOC_ARM_TLS_GOTDESCBFD_RELOC_ARM_TLS_CALLBFD_RELOC_ARM_THM_TLS_CALLBFD_RELOC_ARM_TLS_DESCSEQBFD_RELOC_ARM_THM_TLS_DESCSEQBFD_RELOC_ARM_TLS_DESCBFD_RELOC_ARM_ALU_PC_G0_NCBFD_RELOC_ARM_ALU_PC_G0BFD_RELOC_ARM_ALU_PC_G1_NCBFD_RELOC_ARM_ALU_PC_G1BFD_RELOC_ARM_ALU_PC_G2BFD_RELOC_ARM_LDR_PC_G0BFD_RELOC_ARM_LDR_PC_G1BFD_RELOC_ARM_LDR_PC_G2BFD_RELOC_ARM_LDRS_PC_G0BFD_RELOC_ARM_LDRS_PC_G1BFD_RELOC_ARM_LDRS_PC_G2BFD_RELOC_ARM_LDC_PC_G0BFD_RELOC_ARM_LDC_PC_G1BFD_RELOC_ARM_LDC_PC_G2BFD_RELOC_ARM_ALU_SB_G0_NCBFD_RELOC_ARM_ALU_SB_G0BFD_RELOC_ARM_ALU_SB_G1_NCBFD_RELOC_ARM_ALU_SB_G1BFD_RELOC_ARM_ALU_SB_G2BFD_RELOC_ARM_LDR_SB_G0BFD_RELOC_ARM_LDR_SB_G1BFD_RELOC_ARM_LDR_SB_G2BFD_RELOC_ARM_LDRS_SB_G0BFD_RELOC_ARM_LDRS_SB_G1BFD_RELOC_ARM_LDRS_SB_G2BFD_RELOC_ARM_LDC_SB_G0BFD_RELOC_ARM_LDC_SB_G1BFD_RELOC_ARM_LDC_SB_G2BFD_RELOC_ARM_V4BXBFD_RELOC_ARM_IRELATIVEBFD_RELOC_ARM_IMMEDIATEBFD_RELOC_ARM_ADRL_IMMEDIATEBFD_RELOC_ARM_T32_IMMEDIATEBFD_RELOC_ARM_T32_ADD_IMMBFD_RELOC_ARM_T32_IMM12BFD_RELOC_ARM_T32_ADD_PC12BFD_RELOC_ARM_SHIFT_IMMBFD_RELOC_ARM_SMCBFD_RELOC_ARM_HVCBFD_RELOC_ARM_SWIBFD_RELOC_ARM_MULTIBFD_RELOC_ARM_CP_OFF_IMMBFD_RELOC_ARM_CP_OFF_IMM_S2BFD_RELOC_ARM_T32_CP_OFF_IMMBFD_RELOC_ARM_ADR_IMMBFD_RELOC_ARM_LDR_IMMBFD_RELOC_ARM_LITERALBFD_RELOC_ARM_IN_POOLBFD_RELOC_ARM_OFFSET_IMM8BFD_RELOC_ARM_T32_OFFSET_U8BFD_RELOC_ARM_T32_OFFSET_IMMBFD_RELOC_ARM_HWLITERALBFD_RELOC_ARM_THUMB_ADDBFD_RELOC_ARM_THUMB_IMMBFD_RELOC_ARM_THUMB_SHIFTBFD_RELOC_SH_PCDISP8BY2BFD_RELOC_SH_PCDISP12BY2BFD_RELOC_SH_IMM3BFD_RELOC_SH_IMM3UBFD_RELOC_SH_DISP12BFD_RELOC_SH_DISP12BY2BFD_RELOC_SH_DISP12BY4BFD_RELOC_SH_DISP12BY8BFD_RELOC_SH_DISP20BFD_RELOC_SH_DISP20BY8BFD_RELOC_SH_IMM4BFD_RELOC_SH_IMM4BY2BFD_RELOC_SH_IMM4BY4BFD_RELOC_SH_IMM8BFD_RELOC_SH_IMM8BY2BFD_RELOC_SH_IMM8BY4BFD_RELOC_SH_PCRELIMM8BY2BFD_RELOC_SH_PCRELIMM8BY4BFD_RELOC_SH_SWITCH16BFD_RELOC_SH_SWITCH32BFD_RELOC_SH_USESBFD_RELOC_SH_COUNTBFD_RELOC_SH_ALIGNBFD_RELOC_SH_CODEBFD_RELOC_SH_DATABFD_RELOC_SH_LABELBFD_RELOC_SH_LOOP_STARTBFD_RELOC_SH_LOOP_ENDBFD_RELOC_SH_COPYBFD_RELOC_SH_GLOB_DATBFD_RELOC_SH_JMP_SLOTBFD_RELOC_SH_RELATIVEBFD_RELOC_SH_GOTPCBFD_RELOC_SH_GOT_LOW16BFD_RELOC_SH_GOT_MEDLOW16BFD_RELOC_SH_GOT_MEDHI16BFD_RELOC_SH_GOT_HI16BFD_RELOC_SH_GOTPLT_LOW16BFD_RELOC_SH_GOTPLT_MEDLOW16BFD_RELOC_SH_GOTPLT_MEDHI16BFD_RELOC_SH_GOTPLT_HI16BFD_RELOC_SH_PLT_LOW16BFD_RELOC_SH_PLT_MEDLOW16BFD_RELOC_SH_PLT_MEDHI16BFD_RELOC_SH_PLT_HI16BFD_RELOC_SH_GOTOFF_LOW16BFD_RELOC_SH_GOTOFF_MEDLOW16BFD_RELOC_SH_GOTOFF_MEDHI16BFD_RELOC_SH_GOTOFF_HI16BFD_RELOC_SH_GOTPC_LOW16BFD_RELOC_SH_GOTPC_MEDLOW16BFD_RELOC_SH_GOTPC_MEDHI16BFD_RELOC_SH_GOTPC_HI16BFD_RELOC_SH_COPY64BFD_RELOC_SH_GLOB_DAT64BFD_RELOC_SH_JMP_SLOT64BFD_RELOC_SH_RELATIVE64BFD_RELOC_SH_GOT10BY4BFD_RELOC_SH_GOT10BY8BFD_RELOC_SH_GOTPLT10BY4BFD_RELOC_SH_GOTPLT10BY8BFD_RELOC_SH_GOTPLT32BFD_RELOC_SH_SHMEDIA_CODEBFD_RELOC_SH_IMMU5BFD_RELOC_SH_IMMS6BFD_RELOC_SH_IMMS6BY32BFD_RELOC_SH_IMMU6BFD_RELOC_SH_IMMS10BFD_RELOC_SH_IMMS10BY2BFD_RELOC_SH_IMMS10BY4BFD_RELOC_SH_IMMS10BY8BFD_RELOC_SH_IMMS16BFD_RELOC_SH_IMMU16BFD_RELOC_SH_IMM_LOW16BFD_RELOC_SH_IMM_LOW16_PCRELBFD_RELOC_SH_IMM_MEDLOW16BFD_RELOC_SH_IMM_MEDHI16BFD_RELOC_SH_IMM_HI16BFD_RELOC_SH_IMM_HI16_PCRELBFD_RELOC_SH_PT_16BFD_RELOC_SH_TLS_GD_32BFD_RELOC_SH_TLS_LD_32BFD_RELOC_SH_TLS_LDO_32BFD_RELOC_SH_TLS_IE_32BFD_RELOC_SH_TLS_LE_32BFD_RELOC_SH_TLS_DTPMOD32BFD_RELOC_SH_TLS_DTPOFF32BFD_RELOC_SH_TLS_TPOFF32BFD_RELOC_SH_GOT20BFD_RELOC_SH_GOTOFF20BFD_RELOC_SH_GOTFUNCDESCBFD_RELOC_SH_GOTFUNCDESC20BFD_RELOC_SH_GOTOFFFUNCDESCBFD_RELOC_SH_GOTOFFFUNCDESC20BFD_RELOC_SH_FUNCDESCBFD_RELOC_ARC_NONEBFD_RELOC_ARC_8BFD_RELOC_ARC_16BFD_RELOC_ARC_24BFD_RELOC_ARC_32BFD_RELOC_ARC_N8BFD_RELOC_ARC_N16BFD_RELOC_ARC_N24BFD_RELOC_ARC_N32BFD_RELOC_ARC_SDABFD_RELOC_ARC_SECTOFFBFD_RELOC_ARC_S21H_PCRELBFD_RELOC_ARC_S21W_PCRELBFD_RELOC_ARC_S25H_PCRELBFD_RELOC_ARC_S25W_PCRELBFD_RELOC_ARC_SDA32BFD_RELOC_ARC_SDA_LDSTBFD_RELOC_ARC_SDA_LDST1BFD_RELOC_ARC_SDA_LDST2BFD_RELOC_ARC_SDA16_LDBFD_RELOC_ARC_SDA16_LD1BFD_RELOC_ARC_SDA16_LD2BFD_RELOC_ARC_S13_PCRELBFD_RELOC_ARC_WBFD_RELOC_ARC_32_MEBFD_RELOC_ARC_32_ME_SBFD_RELOC_ARC_N32_MEBFD_RELOC_ARC_SECTOFF_MEBFD_RELOC_ARC_SDA32_MEBFD_RELOC_ARC_W_MEBFD_RELOC_AC_SECTOFF_U8BFD_RELOC_AC_SECTOFF_U8_1BFD_RELOC_AC_SECTOFF_U8_2BFD_RELOC_AC_SECTOFF_S9BFD_RELOC_AC_SECTOFF_S9_1BFD_RELOC_AC_SECTOFF_S9_2BFD_RELOC_ARC_SECTOFF_ME_1BFD_RELOC_ARC_SECTOFF_ME_2BFD_RELOC_ARC_SECTOFF_1BFD_RELOC_ARC_SECTOFF_2BFD_RELOC_ARC_SDA_12BFD_RELOC_ARC_SDA16_ST2BFD_RELOC_ARC_32_PCRELBFD_RELOC_ARC_PC32BFD_RELOC_ARC_GOT32BFD_RELOC_ARC_GOTPC32BFD_RELOC_ARC_PLT32BFD_RELOC_ARC_COPYBFD_RELOC_ARC_GLOB_DATBFD_RELOC_ARC_JMP_SLOTBFD_RELOC_ARC_RELATIVEBFD_RELOC_ARC_GOTOFFBFD_RELOC_ARC_GOTPCBFD_RELOC_ARC_S21W_PCREL_PLTBFD_RELOC_ARC_S25H_PCREL_PLTBFD_RELOC_ARC_TLS_DTPMODBFD_RELOC_ARC_TLS_TPOFFBFD_RELOC_ARC_TLS_GD_GOTBFD_RELOC_ARC_TLS_GD_LDBFD_RELOC_ARC_TLS_GD_CALLBFD_RELOC_ARC_TLS_IE_GOTBFD_RELOC_ARC_TLS_DTPOFFBFD_RELOC_ARC_TLS_DTPOFF_S9BFD_RELOC_ARC_TLS_LE_S9BFD_RELOC_ARC_TLS_LE_32BFD_RELOC_ARC_S25W_PCREL_PLTBFD_RELOC_ARC_S21H_PCREL_PLTBFD_RELOC_ARC_NPS_CMEM16BFD_RELOC_ARC_JLI_SECTOFFBFD_RELOC_BFIN_16_IMMBFD_RELOC_BFIN_16_HIGHBFD_RELOC_BFIN_4_PCRELBFD_RELOC_BFIN_5_PCRELBFD_RELOC_BFIN_16_LOWBFD_RELOC_BFIN_10_PCRELBFD_RELOC_BFIN_11_PCRELBFD_RELOC_BFIN_12_PCREL_JUMPBFD_RELOC_BFIN_GOT17M4BFD_RELOC_BFIN_GOTHIBFD_RELOC_BFIN_GOTLOBFD_RELOC_BFIN_FUNCDESCBFD_RELOC_BFIN_FUNCDESC_GOTHIBFD_RELOC_BFIN_FUNCDESC_GOTLOBFD_RELOC_BFIN_FUNCDESC_VALUEBFD_RELOC_BFIN_GOTOFF17M4BFD_RELOC_BFIN_GOTOFFHIBFD_RELOC_BFIN_GOTOFFLOBFD_RELOC_BFIN_GOTBFD_RELOC_BFIN_PLTPCBFD_ARELOC_BFIN_PUSHBFD_ARELOC_BFIN_CONSTBFD_ARELOC_BFIN_ADDBFD_ARELOC_BFIN_SUBBFD_ARELOC_BFIN_MULTBFD_ARELOC_BFIN_DIVBFD_ARELOC_BFIN_MODBFD_ARELOC_BFIN_LSHIFTBFD_ARELOC_BFIN_RSHIFTBFD_ARELOC_BFIN_ANDBFD_ARELOC_BFIN_ORBFD_ARELOC_BFIN_XORBFD_ARELOC_BFIN_LANDBFD_ARELOC_BFIN_LORBFD_ARELOC_BFIN_LENBFD_ARELOC_BFIN_NEGBFD_ARELOC_BFIN_COMPBFD_ARELOC_BFIN_PAGEBFD_ARELOC_BFIN_HWPAGEBFD_ARELOC_BFIN_ADDRBFD_RELOC_D10V_10_PCREL_RBFD_RELOC_D10V_10_PCREL_LBFD_RELOC_D10V_18BFD_RELOC_D10V_18_PCRELBFD_RELOC_D30V_6BFD_RELOC_D30V_9_PCRELBFD_RELOC_D30V_9_PCREL_RBFD_RELOC_D30V_15BFD_RELOC_D30V_15_PCRELBFD_RELOC_D30V_15_PCREL_RBFD_RELOC_D30V_21BFD_RELOC_D30V_21_PCRELBFD_RELOC_D30V_21_PCREL_RBFD_RELOC_D30V_32BFD_RELOC_D30V_32_PCRELBFD_RELOC_DLX_HI16_SBFD_RELOC_DLX_LO16BFD_RELOC_DLX_JMP26BFD_RELOC_M32C_HI8BFD_RELOC_M32C_RL_JUMPBFD_RELOC_M32C_RL_1ADDRBFD_RELOC_M32C_RL_2ADDRBFD_RELOC_M32R_24BFD_RELOC_M32R_10_PCRELBFD_RELOC_M32R_18_PCRELBFD_RELOC_M32R_26_PCRELBFD_RELOC_M32R_HI16_ULOBFD_RELOC_M32R_HI16_SLOBFD_RELOC_M32R_LO16BFD_RELOC_M32R_SDA16BFD_RELOC_M32R_GOT24BFD_RELOC_M32R_26_PLTRELBFD_RELOC_M32R_COPYBFD_RELOC_M32R_GLOB_DATBFD_RELOC_M32R_JMP_SLOTBFD_RELOC_M32R_RELATIVEBFD_RELOC_M32R_GOTOFFBFD_RELOC_M32R_GOTOFF_HI_ULOBFD_RELOC_M32R_GOTOFF_HI_SLOBFD_RELOC_M32R_GOTOFF_LOBFD_RELOC_M32R_GOTPC24BFD_RELOC_M32R_GOT16_HI_ULOBFD_RELOC_M32R_GOT16_HI_SLOBFD_RELOC_M32R_GOT16_LOBFD_RELOC_M32R_GOTPC_HI_ULOBFD_RELOC_M32R_GOTPC_HI_SLOBFD_RELOC_M32R_GOTPC_LOBFD_RELOC_NDS32_20BFD_RELOC_NDS32_9_PCRELBFD_RELOC_NDS32_WORD_9_PCRELBFD_RELOC_NDS32_15_PCRELBFD_RELOC_NDS32_17_PCRELBFD_RELOC_NDS32_25_PCRELBFD_RELOC_NDS32_HI20BFD_RELOC_NDS32_LO12S3BFD_RELOC_NDS32_LO12S2BFD_RELOC_NDS32_LO12S1BFD_RELOC_NDS32_LO12S0BFD_RELOC_NDS32_LO12S0_ORIBFD_RELOC_NDS32_SDA15S3BFD_RELOC_NDS32_SDA15S2BFD_RELOC_NDS32_SDA15S1BFD_RELOC_NDS32_SDA15S0BFD_RELOC_NDS32_SDA16S3BFD_RELOC_NDS32_SDA17S2BFD_RELOC_NDS32_SDA18S1BFD_RELOC_NDS32_SDA19S0BFD_RELOC_NDS32_GOT20BFD_RELOC_NDS32_9_PLTRELBFD_RELOC_NDS32_25_PLTRELBFD_RELOC_NDS32_COPYBFD_RELOC_NDS32_GLOB_DATBFD_RELOC_NDS32_JMP_SLOTBFD_RELOC_NDS32_RELATIVEBFD_RELOC_NDS32_GOTOFFBFD_RELOC_NDS32_GOTOFF_HI20BFD_RELOC_NDS32_GOTOFF_LO12BFD_RELOC_NDS32_GOTPC20BFD_RELOC_NDS32_GOT_HI20BFD_RELOC_NDS32_GOT_LO12BFD_RELOC_NDS32_GOTPC_HI20BFD_RELOC_NDS32_GOTPC_LO12BFD_RELOC_NDS32_INSN16BFD_RELOC_NDS32_LABELBFD_RELOC_NDS32_LONGCALL1BFD_RELOC_NDS32_LONGCALL2BFD_RELOC_NDS32_LONGCALL3BFD_RELOC_NDS32_LONGJUMP1BFD_RELOC_NDS32_LONGJUMP2BFD_RELOC_NDS32_LONGJUMP3BFD_RELOC_NDS32_LOADSTOREBFD_RELOC_NDS32_9_FIXEDBFD_RELOC_NDS32_15_FIXEDBFD_RELOC_NDS32_17_FIXEDBFD_RELOC_NDS32_25_FIXEDBFD_RELOC_NDS32_LONGCALL4BFD_RELOC_NDS32_LONGCALL5BFD_RELOC_NDS32_LONGCALL6BFD_RELOC_NDS32_LONGJUMP4BFD_RELOC_NDS32_LONGJUMP5BFD_RELOC_NDS32_LONGJUMP6BFD_RELOC_NDS32_LONGJUMP7BFD_RELOC_NDS32_PLTREL_HI20BFD_RELOC_NDS32_PLTREL_LO12BFD_RELOC_NDS32_SDA12S2_DPBFD_RELOC_NDS32_SDA12S2_SPBFD_RELOC_NDS32_LO12S2_DPBFD_RELOC_NDS32_LO12S2_SPBFD_RELOC_NDS32_DWARF2_OP1BFD_RELOC_NDS32_DWARF2_OP2BFD_RELOC_NDS32_DWARF2_LEBBFD_RELOC_NDS32_UPDATE_TABFD_RELOC_NDS32_GOT_LO15BFD_RELOC_NDS32_GOT_LO19BFD_RELOC_NDS32_GOTOFF_LO15BFD_RELOC_NDS32_GOTOFF_LO19BFD_RELOC_NDS32_GOT15S2BFD_RELOC_NDS32_GOT17S2BFD_RELOC_NDS32_5BFD_RELOC_NDS32_10_UPCRELBFD_RELOC_NDS32_RELAX_ENTRYBFD_RELOC_NDS32_GOT_SUFFBFD_RELOC_NDS32_GOTOFF_SUFFBFD_RELOC_NDS32_PLT_GOT_SUFFBFD_RELOC_NDS32_MULCALL_SUFFBFD_RELOC_NDS32_PTRBFD_RELOC_NDS32_PTR_COUNTBFD_RELOC_NDS32_PTR_RESOLVEDBFD_RELOC_NDS32_PLTBLOCKBFD_RELOC_NDS32_MINUENDBFD_RELOC_NDS32_SUBTRAHENDBFD_RELOC_NDS32_DIFF8BFD_RELOC_NDS32_DIFF16BFD_RELOC_NDS32_DIFF32BFD_RELOC_NDS32_DIFF_ULEB128BFD_RELOC_NDS32_EMPTYBFD_RELOC_NDS32_25_ABSBFD_RELOC_NDS32_DATABFD_RELOC_NDS32_TRANBFD_RELOC_NDS32_17IFC_PCRELBFD_RELOC_NDS32_10IFCU_PCRELBFD_RELOC_NDS32_TPOFFBFD_RELOC_NDS32_GOTTPOFFBFD_RELOC_NDS32_TLS_LE_HI20BFD_RELOC_NDS32_TLS_LE_LO12BFD_RELOC_NDS32_TLS_LE_20BFD_RELOC_NDS32_TLS_LE_15S0BFD_RELOC_NDS32_TLS_LE_15S1BFD_RELOC_NDS32_TLS_LE_15S2BFD_RELOC_NDS32_TLS_LE_ADDBFD_RELOC_NDS32_TLS_LE_LSBFD_RELOC_NDS32_TLS_IE_HI20BFD_RELOC_NDS32_TLS_IE_LO12BFD_RELOC_NDS32_TLS_IE_LO12S2BFD_RELOC_NDS32_TLS_IEGP_HI20BFD_RELOC_NDS32_TLS_IEGP_LO12BFD_RELOC_NDS32_TLS_IEGP_LWBFD_RELOC_NDS32_TLS_DESCBFD_RELOC_NDS32_TLS_DESC_HI20BFD_RELOC_NDS32_TLS_DESC_LO12BFD_RELOC_NDS32_TLS_DESC_20BFD_RELOC_NDS32_TLS_DESC_ADDBFD_RELOC_NDS32_TLS_DESC_FUNCBFD_RELOC_NDS32_TLS_DESC_CALLBFD_RELOC_NDS32_TLS_DESC_MEMBFD_RELOC_NDS32_REMOVEBFD_RELOC_NDS32_GROUPBFD_RELOC_NDS32_LSIBFD_RELOC_V850_9_PCRELBFD_RELOC_V850_22_PCRELBFD_RELOC_V850_TDA_6_8_OFFSETBFD_RELOC_V850_TDA_7_8_OFFSETBFD_RELOC_V850_TDA_7_7_OFFSETBFD_RELOC_V850_TDA_4_5_OFFSETBFD_RELOC_V850_TDA_4_4_OFFSETBFD_RELOC_V850_LONGCALLBFD_RELOC_V850_LONGJUMPBFD_RELOC_V850_ALIGNBFD_RELOC_V850_16_PCRELBFD_RELOC_V850_17_PCRELBFD_RELOC_V850_23BFD_RELOC_V850_32_PCRELBFD_RELOC_V850_32_ABSBFD_RELOC_V850_16_S1BFD_RELOC_V850_LO16_S1BFD_RELOC_V850_32_GOTPCRELBFD_RELOC_V850_16_GOTBFD_RELOC_V850_32_GOTBFD_RELOC_V850_22_PLT_PCRELBFD_RELOC_V850_32_PLT_PCRELBFD_RELOC_V850_COPYBFD_RELOC_V850_GLOB_DATBFD_RELOC_V850_JMP_SLOTBFD_RELOC_V850_RELATIVEBFD_RELOC_V850_16_GOTOFFBFD_RELOC_V850_32_GOTOFFBFD_RELOC_V850_CODEBFD_RELOC_V850_DATABFD_RELOC_TIC30_LDPBFD_RELOC_TIC54X_PARTLS7BFD_RELOC_TIC54X_PARTMS9BFD_RELOC_TIC54X_23BFD_RELOC_TIC54X_16_OF_23BFD_RELOC_TIC54X_MS7_OF_23BFD_RELOC_C6000_PCR_S21BFD_RELOC_C6000_PCR_S12BFD_RELOC_C6000_PCR_S10BFD_RELOC_C6000_PCR_S7BFD_RELOC_C6000_ABS_S16BFD_RELOC_C6000_ABS_L16BFD_RELOC_C6000_ABS_H16BFD_RELOC_C6000_SBR_U15_BBFD_RELOC_C6000_SBR_U15_HBFD_RELOC_C6000_SBR_U15_WBFD_RELOC_C6000_SBR_S16BFD_RELOC_C6000_SBR_L16_BBFD_RELOC_C6000_SBR_L16_HBFD_RELOC_C6000_SBR_L16_WBFD_RELOC_C6000_SBR_H16_BBFD_RELOC_C6000_SBR_H16_HBFD_RELOC_C6000_SBR_H16_WBFD_RELOC_C6000_SBR_GOT_U15_WBFD_RELOC_C6000_SBR_GOT_L16_WBFD_RELOC_C6000_SBR_GOT_H16_WBFD_RELOC_C6000_DSBT_INDEXBFD_RELOC_C6000_PREL31BFD_RELOC_C6000_COPYBFD_RELOC_C6000_JUMP_SLOTBFD_RELOC_C6000_EHTYPEBFD_RELOC_C6000_PCR_H16BFD_RELOC_C6000_PCR_L16BFD_RELOC_C6000_ALIGNBFD_RELOC_C6000_FPHEADBFD_RELOC_C6000_NOCMPBFD_RELOC_FR30_48BFD_RELOC_FR30_20BFD_RELOC_FR30_6_IN_4BFD_RELOC_FR30_8_IN_8BFD_RELOC_FR30_9_IN_8BFD_RELOC_FR30_10_IN_8BFD_RELOC_FR30_9_PCRELBFD_RELOC_FR30_12_PCRELBFD_RELOC_MCORE_PCREL_IMM8BY4BFD_RELOC_MCORE_PCREL_IMM4BY2BFD_RELOC_MCORE_PCREL_32BFD_RELOC_MCORE_RVABFD_RELOC_MEP_8BFD_RELOC_MEP_16BFD_RELOC_MEP_32BFD_RELOC_MEP_PCREL8A2BFD_RELOC_MEP_PCREL12A2BFD_RELOC_MEP_PCREL17A2BFD_RELOC_MEP_PCREL24A2BFD_RELOC_MEP_PCABS24A2BFD_RELOC_MEP_LOW16BFD_RELOC_MEP_HI16UBFD_RELOC_MEP_HI16SBFD_RELOC_MEP_GPRELBFD_RELOC_MEP_TPRELBFD_RELOC_MEP_TPREL7BFD_RELOC_MEP_TPREL7A2BFD_RELOC_MEP_TPREL7A4BFD_RELOC_MEP_UIMM24BFD_RELOC_MEP_ADDR24A4BFD_RELOC_MEP_GNU_VTINHERITBFD_RELOC_MEP_GNU_VTENTRYBFD_RELOC_METAG_HIADDR16BFD_RELOC_METAG_LOADDR16BFD_RELOC_METAG_RELBRANCHBFD_RELOC_METAG_GETSETOFFBFD_RELOC_METAG_HIOGBFD_RELOC_METAG_LOOGBFD_RELOC_METAG_REL8BFD_RELOC_METAG_REL16BFD_RELOC_METAG_HI16_GOTOFFBFD_RELOC_METAG_LO16_GOTOFFBFD_RELOC_METAG_GETSET_GOTOFFBFD_RELOC_METAG_GETSET_GOTBFD_RELOC_METAG_HI16_GOTPCBFD_RELOC_METAG_LO16_GOTPCBFD_RELOC_METAG_HI16_PLTBFD_RELOC_METAG_LO16_PLTBFD_RELOC_METAG_RELBRANCH_PLTBFD_RELOC_METAG_GOTOFFBFD_RELOC_METAG_PLTBFD_RELOC_METAG_COPYBFD_RELOC_METAG_JMP_SLOTBFD_RELOC_METAG_RELATIVEBFD_RELOC_METAG_GLOB_DATBFD_RELOC_METAG_TLS_GDBFD_RELOC_METAG_TLS_LDMBFD_RELOC_METAG_TLS_LDO_HI16BFD_RELOC_METAG_TLS_LDO_LO16BFD_RELOC_METAG_TLS_LDOBFD_RELOC_METAG_TLS_IEBFD_RELOC_METAG_TLS_IENONPICBFD_RELOC_METAG_TLS_TPOFFBFD_RELOC_METAG_TLS_DTPMODBFD_RELOC_METAG_TLS_DTPOFFBFD_RELOC_METAG_TLS_LEBFD_RELOC_METAG_TLS_LE_HI16BFD_RELOC_METAG_TLS_LE_LO16BFD_RELOC_MMIX_GETABFD_RELOC_MMIX_GETA_1BFD_RELOC_MMIX_GETA_2BFD_RELOC_MMIX_GETA_3BFD_RELOC_MMIX_CBRANCHBFD_RELOC_MMIX_CBRANCH_JBFD_RELOC_MMIX_CBRANCH_1BFD_RELOC_MMIX_CBRANCH_2BFD_RELOC_MMIX_CBRANCH_3BFD_RELOC_MMIX_PUSHJBFD_RELOC_MMIX_PUSHJ_1BFD_RELOC_MMIX_PUSHJ_2BFD_RELOC_MMIX_PUSHJ_3BFD_RELOC_MMIX_JMPBFD_RELOC_MMIX_JMP_1BFD_RELOC_MMIX_JMP_2BFD_RELOC_MMIX_JMP_3BFD_RELOC_MMIX_ADDR19BFD_RELOC_MMIX_ADDR27BFD_RELOC_MMIX_REG_OR_BYTEBFD_RELOC_MMIX_REGBFD_RELOC_MMIX_LOCALBFD_RELOC_AVR_7_PCRELBFD_RELOC_AVR_13_PCRELBFD_RELOC_AVR_16_PMBFD_RELOC_AVR_LO8_LDIBFD_RELOC_AVR_HI8_LDIBFD_RELOC_AVR_HH8_LDIBFD_RELOC_AVR_MS8_LDIBFD_RELOC_AVR_LO8_LDI_NEGBFD_RELOC_AVR_HI8_LDI_NEGBFD_RELOC_AVR_HH8_LDI_NEGBFD_RELOC_AVR_MS8_LDI_NEGBFD_RELOC_AVR_LO8_LDI_PMBFD_RELOC_AVR_LO8_LDI_GSBFD_RELOC_AVR_HI8_LDI_PMBFD_RELOC_AVR_HI8_LDI_GSBFD_RELOC_AVR_HH8_LDI_PMBFD_RELOC_AVR_LO8_LDI_PM_NEGBFD_RELOC_AVR_HI8_LDI_PM_NEGBFD_RELOC_AVR_HH8_LDI_PM_NEGBFD_RELOC_AVR_CALLBFD_RELOC_AVR_LDIBFD_RELOC_AVR_6BFD_RELOC_AVR_6_ADIWBFD_RELOC_AVR_8_LOBFD_RELOC_AVR_8_HIBFD_RELOC_AVR_8_HLOBFD_RELOC_AVR_DIFF8BFD_RELOC_AVR_DIFF16BFD_RELOC_AVR_DIFF32BFD_RELOC_AVR_LDS_STS_16BFD_RELOC_AVR_PORT6BFD_RELOC_AVR_PORT5BFD_RELOC_RISCV_HI20BFD_RELOC_RISCV_PCREL_HI20BFD_RELOC_RISCV_PCREL_LO12_IBFD_RELOC_RISCV_PCREL_LO12_SBFD_RELOC_RISCV_LO12_IBFD_RELOC_RISCV_LO12_SBFD_RELOC_RISCV_GPREL12_IBFD_RELOC_RISCV_GPREL12_SBFD_RELOC_RISCV_TPREL_HI20BFD_RELOC_RISCV_TPREL_LO12_IBFD_RELOC_RISCV_TPREL_LO12_SBFD_RELOC_RISCV_TPREL_ADDBFD_RELOC_RISCV_CALLBFD_RELOC_RISCV_CALL_PLTBFD_RELOC_RISCV_ADD8BFD_RELOC_RISCV_ADD16BFD_RELOC_RISCV_ADD32BFD_RELOC_RISCV_ADD64BFD_RELOC_RISCV_SUB8BFD_RELOC_RISCV_SUB16BFD_RELOC_RISCV_SUB32BFD_RELOC_RISCV_SUB64BFD_RELOC_RISCV_GOT_HI20BFD_RELOC_RISCV_TLS_GOT_HI20BFD_RELOC_RISCV_TLS_GD_HI20BFD_RELOC_RISCV_JMPBFD_RELOC_RISCV_TLS_DTPMOD32BFD_RELOC_RISCV_TLS_DTPREL32BFD_RELOC_RISCV_TLS_DTPMOD64BFD_RELOC_RISCV_TLS_DTPREL64BFD_RELOC_RISCV_TLS_TPREL32BFD_RELOC_RISCV_TLS_TPREL64BFD_RELOC_RISCV_ALIGNBFD_RELOC_RISCV_RVC_BRANCHBFD_RELOC_RISCV_RVC_JUMPBFD_RELOC_RISCV_RVC_LUIBFD_RELOC_RISCV_GPREL_IBFD_RELOC_RISCV_GPREL_SBFD_RELOC_RISCV_TPREL_IBFD_RELOC_RISCV_TPREL_SBFD_RELOC_RISCV_RELAXBFD_RELOC_RISCV_CFABFD_RELOC_RISCV_SUB6BFD_RELOC_RISCV_SET6BFD_RELOC_RISCV_SET8BFD_RELOC_RISCV_SET16BFD_RELOC_RISCV_SET32BFD_RELOC_RISCV_32_PCRELBFD_RELOC_RL78_NEG8BFD_RELOC_RL78_NEG16BFD_RELOC_RL78_NEG24BFD_RELOC_RL78_NEG32BFD_RELOC_RL78_16_OPBFD_RELOC_RL78_24_OPBFD_RELOC_RL78_32_OPBFD_RELOC_RL78_8UBFD_RELOC_RL78_16UBFD_RELOC_RL78_24UBFD_RELOC_RL78_DIR3U_PCRELBFD_RELOC_RL78_DIFFBFD_RELOC_RL78_GPRELBBFD_RELOC_RL78_GPRELWBFD_RELOC_RL78_GPRELLBFD_RELOC_RL78_SYMBFD_RELOC_RL78_OP_SUBTRACTBFD_RELOC_RL78_OP_NEGBFD_RELOC_RL78_OP_ANDBFD_RELOC_RL78_OP_SHRABFD_RELOC_RL78_ABS8BFD_RELOC_RL78_ABS16BFD_RELOC_RL78_ABS16_REVBFD_RELOC_RL78_ABS32BFD_RELOC_RL78_ABS32_REVBFD_RELOC_RL78_ABS16UBFD_RELOC_RL78_ABS16UWBFD_RELOC_RL78_ABS16ULBFD_RELOC_RL78_RELAXBFD_RELOC_RL78_HI16BFD_RELOC_RL78_HI8BFD_RELOC_RL78_LO16BFD_RELOC_RL78_CODEBFD_RELOC_RL78_SADDRBFD_RELOC_RX_NEG8BFD_RELOC_RX_NEG16BFD_RELOC_RX_NEG24BFD_RELOC_RX_NEG32BFD_RELOC_RX_16_OPBFD_RELOC_RX_24_OPBFD_RELOC_RX_32_OPBFD_RELOC_RX_8UBFD_RELOC_RX_16UBFD_RELOC_RX_24UBFD_RELOC_RX_DIR3U_PCRELBFD_RELOC_RX_DIFFBFD_RELOC_RX_GPRELBBFD_RELOC_RX_GPRELWBFD_RELOC_RX_GPRELLBFD_RELOC_RX_SYMBFD_RELOC_RX_OP_SUBTRACTBFD_RELOC_RX_OP_NEGBFD_RELOC_RX_ABS8BFD_RELOC_RX_ABS16BFD_RELOC_RX_ABS16_REVBFD_RELOC_RX_ABS32BFD_RELOC_RX_ABS32_REVBFD_RELOC_RX_ABS16UBFD_RELOC_RX_ABS16UWBFD_RELOC_RX_ABS16ULBFD_RELOC_RX_RELAXBFD_RELOC_390_12BFD_RELOC_390_GOT12BFD_RELOC_390_PLT32BFD_RELOC_390_COPYBFD_RELOC_390_GLOB_DATBFD_RELOC_390_JMP_SLOTBFD_RELOC_390_RELATIVEBFD_RELOC_390_GOTPCBFD_RELOC_390_GOT16BFD_RELOC_390_PC12DBLBFD_RELOC_390_PLT12DBLBFD_RELOC_390_PC16DBLBFD_RELOC_390_PLT16DBLBFD_RELOC_390_PC24DBLBFD_RELOC_390_PLT24DBLBFD_RELOC_390_PC32DBLBFD_RELOC_390_PLT32DBLBFD_RELOC_390_GOTPCDBLBFD_RELOC_390_GOT64BFD_RELOC_390_PLT64BFD_RELOC_390_GOTENTBFD_RELOC_390_GOTOFF64BFD_RELOC_390_GOTPLT12BFD_RELOC_390_GOTPLT16BFD_RELOC_390_GOTPLT32BFD_RELOC_390_GOTPLT64BFD_RELOC_390_GOTPLTENTBFD_RELOC_390_PLTOFF16BFD_RELOC_390_PLTOFF32BFD_RELOC_390_PLTOFF64BFD_RELOC_390_TLS_LOADBFD_RELOC_390_TLS_GDCALLBFD_RELOC_390_TLS_LDCALLBFD_RELOC_390_TLS_GD32BFD_RELOC_390_TLS_GD64BFD_RELOC_390_TLS_GOTIE12BFD_RELOC_390_TLS_GOTIE32BFD_RELOC_390_TLS_GOTIE64BFD_RELOC_390_TLS_LDM32BFD_RELOC_390_TLS_LDM64BFD_RELOC_390_TLS_IE32BFD_RELOC_390_TLS_IE64BFD_RELOC_390_TLS_IEENTBFD_RELOC_390_TLS_LE32BFD_RELOC_390_TLS_LE64BFD_RELOC_390_TLS_LDO32BFD_RELOC_390_TLS_LDO64BFD_RELOC_390_TLS_DTPMODBFD_RELOC_390_TLS_DTPOFFBFD_RELOC_390_TLS_TPOFFBFD_RELOC_390_20BFD_RELOC_390_GOT20BFD_RELOC_390_GOTPLT20BFD_RELOC_390_TLS_GOTIE20BFD_RELOC_390_IRELATIVEBFD_RELOC_SCORE_GPREL15BFD_RELOC_SCORE_DUMMY2BFD_RELOC_SCORE_JMPBFD_RELOC_SCORE_BRANCHBFD_RELOC_SCORE_IMM30BFD_RELOC_SCORE_IMM32BFD_RELOC_SCORE16_JMPBFD_RELOC_SCORE16_BRANCHBFD_RELOC_SCORE_BCMPBFD_RELOC_SCORE_GOT15BFD_RELOC_SCORE_GOT_LO16BFD_RELOC_SCORE_CALL15BFD_RELOC_SCORE_DUMMY_HI16BFD_RELOC_IP2K_FR9BFD_RELOC_IP2K_BANKBFD_RELOC_IP2K_ADDR16CJPBFD_RELOC_IP2K_PAGE3BFD_RELOC_IP2K_LO8DATABFD_RELOC_IP2K_HI8DATABFD_RELOC_IP2K_EX8DATABFD_RELOC_IP2K_LO8INSNBFD_RELOC_IP2K_HI8INSNBFD_RELOC_IP2K_PC_SKIPBFD_RELOC_IP2K_TEXTBFD_RELOC_IP2K_FR_OFFSETBFD_RELOC_VPE4KMATH_DATABFD_RELOC_VPE4KMATH_INSNBFD_RELOC_VTABLE_INHERITBFD_RELOC_VTABLE_ENTRYBFD_RELOC_IA64_IMM14BFD_RELOC_IA64_IMM22BFD_RELOC_IA64_IMM64BFD_RELOC_IA64_DIR32MSBBFD_RELOC_IA64_DIR32LSBBFD_RELOC_IA64_DIR64MSBBFD_RELOC_IA64_DIR64LSBBFD_RELOC_IA64_GPREL22BFD_RELOC_IA64_GPREL64IBFD_RELOC_IA64_GPREL32MSBBFD_RELOC_IA64_GPREL32LSBBFD_RELOC_IA64_GPREL64MSBBFD_RELOC_IA64_GPREL64LSBBFD_RELOC_IA64_LTOFF22BFD_RELOC_IA64_LTOFF64IBFD_RELOC_IA64_PLTOFF22BFD_RELOC_IA64_PLTOFF64IBFD_RELOC_IA64_PLTOFF64MSBBFD_RELOC_IA64_PLTOFF64LSBBFD_RELOC_IA64_FPTR64IBFD_RELOC_IA64_FPTR32MSBBFD_RELOC_IA64_FPTR32LSBBFD_RELOC_IA64_FPTR64MSBBFD_RELOC_IA64_FPTR64LSBBFD_RELOC_IA64_PCREL21BBFD_RELOC_IA64_PCREL21BIBFD_RELOC_IA64_PCREL21MBFD_RELOC_IA64_PCREL21FBFD_RELOC_IA64_PCREL22BFD_RELOC_IA64_PCREL60BBFD_RELOC_IA64_PCREL64IBFD_RELOC_IA64_PCREL32MSBBFD_RELOC_IA64_PCREL32LSBBFD_RELOC_IA64_PCREL64MSBBFD_RELOC_IA64_PCREL64LSBBFD_RELOC_IA64_LTOFF_FPTR22BFD_RELOC_IA64_LTOFF_FPTR64IBFD_RELOC_IA64_SEGREL32MSBBFD_RELOC_IA64_SEGREL32LSBBFD_RELOC_IA64_SEGREL64MSBBFD_RELOC_IA64_SEGREL64LSBBFD_RELOC_IA64_SECREL32MSBBFD_RELOC_IA64_SECREL32LSBBFD_RELOC_IA64_SECREL64MSBBFD_RELOC_IA64_SECREL64LSBBFD_RELOC_IA64_REL32MSBBFD_RELOC_IA64_REL32LSBBFD_RELOC_IA64_REL64MSBBFD_RELOC_IA64_REL64LSBBFD_RELOC_IA64_LTV32MSBBFD_RELOC_IA64_LTV32LSBBFD_RELOC_IA64_LTV64MSBBFD_RELOC_IA64_LTV64LSBBFD_RELOC_IA64_IPLTMSBBFD_RELOC_IA64_IPLTLSBBFD_RELOC_IA64_COPYBFD_RELOC_IA64_LTOFF22XBFD_RELOC_IA64_LDXMOVBFD_RELOC_IA64_TPREL14BFD_RELOC_IA64_TPREL22BFD_RELOC_IA64_TPREL64IBFD_RELOC_IA64_TPREL64MSBBFD_RELOC_IA64_TPREL64LSBBFD_RELOC_IA64_LTOFF_TPREL22BFD_RELOC_IA64_DTPMOD64MSBBFD_RELOC_IA64_DTPMOD64LSBBFD_RELOC_IA64_LTOFF_DTPMOD22BFD_RELOC_IA64_DTPREL14BFD_RELOC_IA64_DTPREL22BFD_RELOC_IA64_DTPREL64IBFD_RELOC_IA64_DTPREL32MSBBFD_RELOC_IA64_DTPREL32LSBBFD_RELOC_IA64_DTPREL64MSBBFD_RELOC_IA64_DTPREL64LSBBFD_RELOC_IA64_LTOFF_DTPREL22BFD_RELOC_M68HC11_HI8BFD_RELOC_M68HC11_LO8BFD_RELOC_M68HC11_3BBFD_RELOC_M68HC11_RL_JUMPBFD_RELOC_M68HC11_RL_GROUPBFD_RELOC_M68HC11_LO16BFD_RELOC_M68HC11_PAGEBFD_RELOC_M68HC11_24BFD_RELOC_M68HC12_5BBFD_RELOC_XGATE_RL_JUMPBFD_RELOC_XGATE_RL_GROUPBFD_RELOC_XGATE_LO16BFD_RELOC_XGATE_GPAGEBFD_RELOC_XGATE_24BFD_RELOC_XGATE_PCREL_9BFD_RELOC_XGATE_PCREL_10BFD_RELOC_XGATE_IMM8_LOBFD_RELOC_XGATE_IMM8_HIBFD_RELOC_XGATE_IMM3BFD_RELOC_XGATE_IMM4BFD_RELOC_XGATE_IMM5BFD_RELOC_M68HC12_9BBFD_RELOC_M68HC12_16BBFD_RELOC_M68HC12_9_PCRELBFD_RELOC_M68HC12_10_PCRELBFD_RELOC_M68HC12_LO8XGBFD_RELOC_M68HC12_HI8XGBFD_RELOC_S12Z_15_PCRELBFD_RELOC_CR16_NUM8BFD_RELOC_CR16_NUM16BFD_RELOC_CR16_NUM32BFD_RELOC_CR16_NUM32aBFD_RELOC_CR16_REGREL0BFD_RELOC_CR16_REGREL4BFD_RELOC_CR16_REGREL4aBFD_RELOC_CR16_REGREL14BFD_RELOC_CR16_REGREL14aBFD_RELOC_CR16_REGREL16BFD_RELOC_CR16_REGREL20BFD_RELOC_CR16_REGREL20aBFD_RELOC_CR16_ABS20BFD_RELOC_CR16_ABS24BFD_RELOC_CR16_IMM4BFD_RELOC_CR16_IMM8BFD_RELOC_CR16_IMM16BFD_RELOC_CR16_IMM20BFD_RELOC_CR16_IMM24BFD_RELOC_CR16_IMM32BFD_RELOC_CR16_IMM32aBFD_RELOC_CR16_DISP4BFD_RELOC_CR16_DISP8BFD_RELOC_CR16_DISP16BFD_RELOC_CR16_DISP20BFD_RELOC_CR16_DISP24BFD_RELOC_CR16_DISP24aBFD_RELOC_CR16_SWITCH8BFD_RELOC_CR16_SWITCH16BFD_RELOC_CR16_SWITCH32BFD_RELOC_CR16_GOT_REGREL20BFD_RELOC_CR16_GOTC_REGREL20BFD_RELOC_CR16_GLOB_DATBFD_RELOC_CRX_REL4BFD_RELOC_CRX_REL8BFD_RELOC_CRX_REL8_CMPBFD_RELOC_CRX_REL16BFD_RELOC_CRX_REL24BFD_RELOC_CRX_REL32BFD_RELOC_CRX_REGREL12BFD_RELOC_CRX_REGREL22BFD_RELOC_CRX_REGREL28BFD_RELOC_CRX_REGREL32BFD_RELOC_CRX_ABS16BFD_RELOC_CRX_ABS32BFD_RELOC_CRX_NUM8BFD_RELOC_CRX_NUM16BFD_RELOC_CRX_NUM32BFD_RELOC_CRX_IMM16BFD_RELOC_CRX_IMM32BFD_RELOC_CRX_SWITCH8BFD_RELOC_CRX_SWITCH16BFD_RELOC_CRX_SWITCH32BFD_RELOC_CRIS_BDISP8BFD_RELOC_CRIS_UNSIGNED_5BFD_RELOC_CRIS_SIGNED_6BFD_RELOC_CRIS_UNSIGNED_6BFD_RELOC_CRIS_SIGNED_8BFD_RELOC_CRIS_UNSIGNED_8BFD_RELOC_CRIS_SIGNED_16BFD_RELOC_CRIS_UNSIGNED_16BFD_RELOC_CRIS_LAPCQ_OFFSETBFD_RELOC_CRIS_UNSIGNED_4BFD_RELOC_CRIS_COPYBFD_RELOC_CRIS_GLOB_DATBFD_RELOC_CRIS_JUMP_SLOTBFD_RELOC_CRIS_RELATIVEBFD_RELOC_CRIS_32_GOTBFD_RELOC_CRIS_16_GOTBFD_RELOC_CRIS_32_GOTPLTBFD_RELOC_CRIS_16_GOTPLTBFD_RELOC_CRIS_32_GOTRELBFD_RELOC_CRIS_32_PLT_GOTRELBFD_RELOC_CRIS_32_PLT_PCRELBFD_RELOC_CRIS_32_GOT_GDBFD_RELOC_CRIS_16_GOT_GDBFD_RELOC_CRIS_32_GDBFD_RELOC_CRIS_DTPBFD_RELOC_CRIS_32_DTPRELBFD_RELOC_CRIS_16_DTPRELBFD_RELOC_CRIS_32_GOT_TPRELBFD_RELOC_CRIS_16_GOT_TPRELBFD_RELOC_CRIS_32_TPRELBFD_RELOC_CRIS_16_TPRELBFD_RELOC_CRIS_DTPMODBFD_RELOC_CRIS_32_IEBFD_RELOC_OR1K_REL_26BFD_RELOC_OR1K_SLO16BFD_RELOC_OR1K_PCREL_PG21BFD_RELOC_OR1K_LO13BFD_RELOC_OR1K_SLO13BFD_RELOC_OR1K_GOTPC_HI16BFD_RELOC_OR1K_GOTPC_LO16BFD_RELOC_OR1K_GOT16BFD_RELOC_OR1K_GOT_PG21BFD_RELOC_OR1K_GOT_LO13BFD_RELOC_OR1K_PLT26BFD_RELOC_OR1K_PLTA26BFD_RELOC_OR1K_GOTOFF_SLO16BFD_RELOC_OR1K_COPYBFD_RELOC_OR1K_GLOB_DATBFD_RELOC_OR1K_JMP_SLOTBFD_RELOC_OR1K_RELATIVEBFD_RELOC_OR1K_TLS_GD_HI16BFD_RELOC_OR1K_TLS_GD_LO16BFD_RELOC_OR1K_TLS_GD_PG21BFD_RELOC_OR1K_TLS_GD_LO13BFD_RELOC_OR1K_TLS_LDM_HI16BFD_RELOC_OR1K_TLS_LDM_LO16BFD_RELOC_OR1K_TLS_LDM_PG21BFD_RELOC_OR1K_TLS_LDM_LO13BFD_RELOC_OR1K_TLS_LDO_HI16BFD_RELOC_OR1K_TLS_LDO_LO16BFD_RELOC_OR1K_TLS_IE_HI16BFD_RELOC_OR1K_TLS_IE_AHI16BFD_RELOC_OR1K_TLS_IE_LO16BFD_RELOC_OR1K_TLS_IE_PG21BFD_RELOC_OR1K_TLS_IE_LO13BFD_RELOC_OR1K_TLS_LE_HI16BFD_RELOC_OR1K_TLS_LE_AHI16BFD_RELOC_OR1K_TLS_LE_LO16BFD_RELOC_OR1K_TLS_LE_SLO16BFD_RELOC_OR1K_TLS_TPOFFBFD_RELOC_OR1K_TLS_DTPOFFBFD_RELOC_OR1K_TLS_DTPMODBFD_RELOC_H8_DIR16A8BFD_RELOC_H8_DIR16R8BFD_RELOC_H8_DIR24A8BFD_RELOC_H8_DIR24R8BFD_RELOC_H8_DIR32A16BFD_RELOC_H8_DISP32A16BFD_RELOC_XSTORMY16_REL_12BFD_RELOC_XSTORMY16_12BFD_RELOC_XSTORMY16_24BFD_RELOC_XSTORMY16_FPTR16BFD_RELOC_RELCBFD_RELOC_XC16X_PAGBFD_RELOC_XC16X_POFBFD_RELOC_XC16X_SEGBFD_RELOC_XC16X_SOFBFD_RELOC_VAX_GLOB_DATBFD_RELOC_VAX_JMP_SLOTBFD_RELOC_VAX_RELATIVEBFD_RELOC_MT_PC16BFD_RELOC_MT_HI16BFD_RELOC_MT_LO16BFD_RELOC_MT_GNU_VTINHERITBFD_RELOC_MT_GNU_VTENTRYBFD_RELOC_MT_PCINSN8BFD_RELOC_MSP430_10_PCRELBFD_RELOC_MSP430_16_PCRELBFD_RELOC_MSP430_16BFD_RELOC_MSP430_16_BYTEBFD_RELOC_MSP430_2X_PCRELBFD_RELOC_MSP430_RL_PCRELBFD_RELOC_MSP430_ABS8BFD_RELOC_MSP430X_PCR16BFD_RELOC_MSP430X_PCR20_CALLBFD_RELOC_MSP430X_ABS16BFD_RELOC_MSP430_ABS_HI16BFD_RELOC_MSP430_PREL31BFD_RELOC_MSP430_SYM_DIFFBFD_RELOC_MSP430_SET_ULEB128BFD_RELOC_MSP430_SUB_ULEB128BFD_RELOC_NIOS2_S16BFD_RELOC_NIOS2_U16BFD_RELOC_NIOS2_CALL26BFD_RELOC_NIOS2_IMM5BFD_RELOC_NIOS2_CACHE_OPXBFD_RELOC_NIOS2_IMM6BFD_RELOC_NIOS2_IMM8BFD_RELOC_NIOS2_HI16BFD_RELOC_NIOS2_LO16BFD_RELOC_NIOS2_HIADJ16BFD_RELOC_NIOS2_GPRELBFD_RELOC_NIOS2_UJMPBFD_RELOC_NIOS2_CJMPBFD_RELOC_NIOS2_CALLRBFD_RELOC_NIOS2_ALIGNBFD_RELOC_NIOS2_GOT16BFD_RELOC_NIOS2_CALL16BFD_RELOC_NIOS2_GOTOFF_LOBFD_RELOC_NIOS2_GOTOFF_HABFD_RELOC_NIOS2_PCREL_LOBFD_RELOC_NIOS2_PCREL_HABFD_RELOC_NIOS2_TLS_GD16BFD_RELOC_NIOS2_TLS_LDM16BFD_RELOC_NIOS2_TLS_LDO16BFD_RELOC_NIOS2_TLS_IE16BFD_RELOC_NIOS2_TLS_LE16BFD_RELOC_NIOS2_TLS_DTPMODBFD_RELOC_NIOS2_TLS_DTPRELBFD_RELOC_NIOS2_TLS_TPRELBFD_RELOC_NIOS2_COPYBFD_RELOC_NIOS2_GLOB_DATBFD_RELOC_NIOS2_JUMP_SLOTBFD_RELOC_NIOS2_RELATIVEBFD_RELOC_NIOS2_GOTOFFBFD_RELOC_NIOS2_CALL26_NOATBFD_RELOC_NIOS2_GOT_LOBFD_RELOC_NIOS2_GOT_HABFD_RELOC_NIOS2_CALL_LOBFD_RELOC_NIOS2_CALL_HABFD_RELOC_NIOS2_R2_S12BFD_RELOC_NIOS2_R2_T1I7_2BFD_RELOC_NIOS2_R2_T2I4BFD_RELOC_NIOS2_R2_T2I4_1BFD_RELOC_NIOS2_R2_T2I4_2BFD_RELOC_NIOS2_R2_X1I7_2BFD_RELOC_NIOS2_R2_X2L5BFD_RELOC_NIOS2_R2_F1I5_2BFD_RELOC_NIOS2_R2_L5I4X1BFD_RELOC_NIOS2_R2_T1X1I6BFD_RELOC_NIOS2_R2_T1X1I6_2BFD_RELOC_PRU_U16BFD_RELOC_PRU_U16_PMEMIMMBFD_RELOC_PRU_LDI32BFD_RELOC_PRU_S10_PCRELBFD_RELOC_PRU_U8_PCRELBFD_RELOC_PRU_32_PMEMBFD_RELOC_PRU_16_PMEMBFD_RELOC_PRU_GNU_DIFF8BFD_RELOC_PRU_GNU_DIFF16BFD_RELOC_PRU_GNU_DIFF32BFD_RELOC_PRU_GNU_DIFF16_PMEMBFD_RELOC_PRU_GNU_DIFF32_PMEMBFD_RELOC_IQ2000_OFFSET_16BFD_RELOC_IQ2000_OFFSET_21BFD_RELOC_IQ2000_UHI16BFD_RELOC_XTENSA_RTLDBFD_RELOC_XTENSA_GLOB_DATBFD_RELOC_XTENSA_JMP_SLOTBFD_RELOC_XTENSA_RELATIVEBFD_RELOC_XTENSA_PLTBFD_RELOC_XTENSA_DIFF8BFD_RELOC_XTENSA_DIFF16BFD_RELOC_XTENSA_DIFF32BFD_RELOC_XTENSA_SLOT0_OPBFD_RELOC_XTENSA_SLOT1_OPBFD_RELOC_XTENSA_SLOT2_OPBFD_RELOC_XTENSA_SLOT3_OPBFD_RELOC_XTENSA_SLOT4_OPBFD_RELOC_XTENSA_SLOT5_OPBFD_RELOC_XTENSA_SLOT6_OPBFD_RELOC_XTENSA_SLOT7_OPBFD_RELOC_XTENSA_SLOT8_OPBFD_RELOC_XTENSA_SLOT9_OPBFD_RELOC_XTENSA_SLOT10_OPBFD_RELOC_XTENSA_SLOT11_OPBFD_RELOC_XTENSA_SLOT12_OPBFD_RELOC_XTENSA_SLOT13_OPBFD_RELOC_XTENSA_SLOT14_OPBFD_RELOC_XTENSA_SLOT0_ALTBFD_RELOC_XTENSA_SLOT1_ALTBFD_RELOC_XTENSA_SLOT2_ALTBFD_RELOC_XTENSA_SLOT3_ALTBFD_RELOC_XTENSA_SLOT4_ALTBFD_RELOC_XTENSA_SLOT5_ALTBFD_RELOC_XTENSA_SLOT6_ALTBFD_RELOC_XTENSA_SLOT7_ALTBFD_RELOC_XTENSA_SLOT8_ALTBFD_RELOC_XTENSA_SLOT9_ALTBFD_RELOC_XTENSA_SLOT10_ALTBFD_RELOC_XTENSA_SLOT11_ALTBFD_RELOC_XTENSA_SLOT12_ALTBFD_RELOC_XTENSA_SLOT13_ALTBFD_RELOC_XTENSA_SLOT14_ALTBFD_RELOC_XTENSA_OP0BFD_RELOC_XTENSA_OP1BFD_RELOC_XTENSA_OP2BFD_RELOC_XTENSA_ASM_EXPANDBFD_RELOC_XTENSA_ASM_SIMPLIFYBFD_RELOC_XTENSA_TLSDESC_FNBFD_RELOC_XTENSA_TLSDESC_ARGBFD_RELOC_XTENSA_TLS_DTPOFFBFD_RELOC_XTENSA_TLS_TPOFFBFD_RELOC_XTENSA_TLS_FUNCBFD_RELOC_XTENSA_TLS_ARGBFD_RELOC_XTENSA_TLS_CALLBFD_RELOC_XTENSA_PDIFF8BFD_RELOC_XTENSA_PDIFF16BFD_RELOC_XTENSA_PDIFF32BFD_RELOC_XTENSA_NDIFF8BFD_RELOC_XTENSA_NDIFF16BFD_RELOC_XTENSA_NDIFF32BFD_RELOC_Z80_DISP8BFD_RELOC_Z80_BYTE0BFD_RELOC_Z80_BYTE1BFD_RELOC_Z80_BYTE2BFD_RELOC_Z80_BYTE3BFD_RELOC_Z80_WORD0BFD_RELOC_Z80_WORD1BFD_RELOC_Z80_16_BEBFD_RELOC_Z8K_DISP7BFD_RELOC_Z8K_CALLRBFD_RELOC_Z8K_IMM4LBFD_RELOC_LM32_CALLBFD_RELOC_LM32_BRANCHBFD_RELOC_LM32_16_GOTBFD_RELOC_LM32_GOTOFF_HI16BFD_RELOC_LM32_GOTOFF_LO16BFD_RELOC_LM32_COPYBFD_RELOC_LM32_GLOB_DATBFD_RELOC_LM32_JMP_SLOTBFD_RELOC_LM32_RELATIVEBFD_RELOC_MACH_O_SECTDIFFBFD_RELOC_MACH_O_PAIRBFD_RELOC_MACH_O_SUBTRACTOR32BFD_RELOC_MACH_O_SUBTRACTOR64BFD_RELOC_MACH_O_X86_64_GOTBFD_RELOC_MACH_O_X86_64_TLVBFD_RELOC_MACH_O_ARM64_ADDENDBFD_RELOC_MICROBLAZE_32_LOBFD_RELOC_MICROBLAZE_32_ROSDABFD_RELOC_MICROBLAZE_32_RWSDABFD_RELOC_MICROBLAZE_64_NONEBFD_RELOC_MICROBLAZE_64_GOTPCBFD_RELOC_MICROBLAZE_64_GOTBFD_RELOC_MICROBLAZE_64_PLTBFD_RELOC_MICROBLAZE_COPYBFD_RELOC_MICROBLAZE_64_TLSBFD_RELOC_MICROBLAZE_64_TLSGDBFD_RELOC_MICROBLAZE_64_TLSLDBFD_RELOC_AARCH64_RELOC_STARTBFD_RELOC_AARCH64_NULLBFD_RELOC_AARCH64_NONEBFD_RELOC_AARCH64_64BFD_RELOC_AARCH64_32BFD_RELOC_AARCH64_16BFD_RELOC_AARCH64_64_PCRELBFD_RELOC_AARCH64_32_PCRELBFD_RELOC_AARCH64_16_PCRELBFD_RELOC_AARCH64_MOVW_G0BFD_RELOC_AARCH64_MOVW_G0_NCBFD_RELOC_AARCH64_MOVW_G1BFD_RELOC_AARCH64_MOVW_G1_NCBFD_RELOC_AARCH64_MOVW_G2BFD_RELOC_AARCH64_MOVW_G2_NCBFD_RELOC_AARCH64_MOVW_G3BFD_RELOC_AARCH64_MOVW_G0_SBFD_RELOC_AARCH64_MOVW_G1_SBFD_RELOC_AARCH64_MOVW_G2_SBFD_RELOC_AARCH64_ADD_LO12BFD_RELOC_AARCH64_LDST8_LO12BFD_RELOC_AARCH64_TSTBR14BFD_RELOC_AARCH64_BRANCH19BFD_RELOC_AARCH64_JUMP26BFD_RELOC_AARCH64_CALL26BFD_RELOC_AARCH64_LDST16_LO12BFD_RELOC_AARCH64_LDST32_LO12BFD_RELOC_AARCH64_LDST64_LO12BFD_RELOC_AARCH64_TLSDESC_LDRBFD_RELOC_AARCH64_TLSDESC_ADDBFD_RELOC_AARCH64_COPYBFD_RELOC_AARCH64_GLOB_DATBFD_RELOC_AARCH64_JUMP_SLOTBFD_RELOC_AARCH64_RELATIVEBFD_RELOC_AARCH64_TLS_DTPMODBFD_RELOC_AARCH64_TLS_DTPRELBFD_RELOC_AARCH64_TLS_TPRELBFD_RELOC_AARCH64_TLSDESCBFD_RELOC_AARCH64_IRELATIVEBFD_RELOC_AARCH64_RELOC_ENDBFD_RELOC_AARCH64_LDST_LO12BFD_RELOC_TILEPRO_COPYBFD_RELOC_TILEPRO_GLOB_DATBFD_RELOC_TILEPRO_JMP_SLOTBFD_RELOC_TILEPRO_RELATIVEBFD_RELOC_TILEPRO_BROFF_X1BFD_RELOC_TILEPRO_JOFFLONG_X1BFD_RELOC_TILEPRO_IMM8_X0BFD_RELOC_TILEPRO_IMM8_Y0BFD_RELOC_TILEPRO_IMM8_X1BFD_RELOC_TILEPRO_IMM8_Y1BFD_RELOC_TILEPRO_MT_IMM15_X1BFD_RELOC_TILEPRO_MF_IMM15_X1BFD_RELOC_TILEPRO_IMM16_X0BFD_RELOC_TILEPRO_IMM16_X1BFD_RELOC_TILEPRO_IMM16_X0_LOBFD_RELOC_TILEPRO_IMM16_X1_LOBFD_RELOC_TILEPRO_IMM16_X0_HIBFD_RELOC_TILEPRO_IMM16_X1_HIBFD_RELOC_TILEPRO_IMM16_X0_HABFD_RELOC_TILEPRO_IMM16_X1_HABFD_RELOC_TILEPRO_MMSTART_X0BFD_RELOC_TILEPRO_MMEND_X0BFD_RELOC_TILEPRO_MMSTART_X1BFD_RELOC_TILEPRO_MMEND_X1BFD_RELOC_TILEPRO_SHAMT_X0BFD_RELOC_TILEPRO_SHAMT_X1BFD_RELOC_TILEPRO_SHAMT_Y0BFD_RELOC_TILEPRO_SHAMT_Y1BFD_RELOC_TILEPRO_TLS_GD_CALLBFD_RELOC_TILEPRO_TLS_IE_LOADBFD_RELOC_TILEPRO_TLS_TPOFF32BFD_RELOC_TILEGX_HW0BFD_RELOC_TILEGX_HW1BFD_RELOC_TILEGX_HW2BFD_RELOC_TILEGX_HW3BFD_RELOC_TILEGX_HW0_LASTBFD_RELOC_TILEGX_HW1_LASTBFD_RELOC_TILEGX_HW2_LASTBFD_RELOC_TILEGX_COPYBFD_RELOC_TILEGX_GLOB_DATBFD_RELOC_TILEGX_JMP_SLOTBFD_RELOC_TILEGX_RELATIVEBFD_RELOC_TILEGX_BROFF_X1BFD_RELOC_TILEGX_JUMPOFF_X1BFD_RELOC_TILEGX_IMM8_X0BFD_RELOC_TILEGX_IMM8_Y0BFD_RELOC_TILEGX_IMM8_X1BFD_RELOC_TILEGX_IMM8_Y1BFD_RELOC_TILEGX_DEST_IMM8_X1BFD_RELOC_TILEGX_MT_IMM14_X1BFD_RELOC_TILEGX_MF_IMM14_X1BFD_RELOC_TILEGX_MMSTART_X0BFD_RELOC_TILEGX_MMEND_X0BFD_RELOC_TILEGX_SHAMT_X0BFD_RELOC_TILEGX_SHAMT_X1BFD_RELOC_TILEGX_SHAMT_Y0BFD_RELOC_TILEGX_SHAMT_Y1BFD_RELOC_TILEGX_IMM16_X0_HW0BFD_RELOC_TILEGX_IMM16_X1_HW0BFD_RELOC_TILEGX_IMM16_X0_HW1BFD_RELOC_TILEGX_IMM16_X1_HW1BFD_RELOC_TILEGX_IMM16_X0_HW2BFD_RELOC_TILEGX_IMM16_X1_HW2BFD_RELOC_TILEGX_IMM16_X0_HW3BFD_RELOC_TILEGX_IMM16_X1_HW3BFD_RELOC_TILEGX_TLS_DTPMOD64BFD_RELOC_TILEGX_TLS_DTPOFF64BFD_RELOC_TILEGX_TLS_TPOFF64BFD_RELOC_TILEGX_TLS_DTPMOD32BFD_RELOC_TILEGX_TLS_DTPOFF32BFD_RELOC_TILEGX_TLS_TPOFF32BFD_RELOC_TILEGX_TLS_GD_CALLBFD_RELOC_TILEGX_TLS_IE_LOADBFD_RELOC_BPF_64BFD_RELOC_BPF_32BFD_RELOC_BPF_16BFD_RELOC_BPF_DISP16BFD_RELOC_BPF_DISP32BFD_RELOC_EPIPHANY_SIMM8BFD_RELOC_EPIPHANY_SIMM24BFD_RELOC_EPIPHANY_HIGHBFD_RELOC_EPIPHANY_LOWBFD_RELOC_EPIPHANY_SIMM11BFD_RELOC_EPIPHANY_IMM11BFD_RELOC_EPIPHANY_IMM8BFD_RELOC_VISIUM_HI16BFD_RELOC_VISIUM_LO16BFD_RELOC_VISIUM_IM16BFD_RELOC_VISIUM_REL16BFD_RELOC_VISIUM_HI16_PCRELBFD_RELOC_VISIUM_LO16_PCRELBFD_RELOC_VISIUM_IM16_PCRELBFD_RELOC_WASM32_LEB128BFD_RELOC_WASM32_LEB128_GOTBFD_RELOC_WASM32_LEB128_PLTBFD_RELOC_WASM32_PLT_INDEXBFD_RELOC_WASM32_ABS32_CODEBFD_RELOC_WASM32_COPYBFD_RELOC_WASM32_CODE_POINTERBFD_RELOC_WASM32_INDEXBFD_RELOC_WASM32_PLT_SIGBFD_RELOC_CKCORE_NONEBFD_RELOC_CKCORE_ADDR32BFD_RELOC_CKCORE_PCREL32BFD_RELOC_CKCORE_GNU_VTENTRYBFD_RELOC_CKCORE_RELATIVEBFD_RELOC_CKCORE_COPYBFD_RELOC_CKCORE_GLOB_DATBFD_RELOC_CKCORE_JUMP_SLOTBFD_RELOC_CKCORE_GOTOFFBFD_RELOC_CKCORE_GOTPCBFD_RELOC_CKCORE_GOT32BFD_RELOC_CKCORE_PLT32BFD_RELOC_CKCORE_ADDRGOTBFD_RELOC_CKCORE_ADDRPLTBFD_RELOC_CKCORE_ADDR_HI16BFD_RELOC_CKCORE_ADDR_LO16BFD_RELOC_CKCORE_GOTPC_HI16BFD_RELOC_CKCORE_GOTPC_LO16BFD_RELOC_CKCORE_GOTOFF_HI16BFD_RELOC_CKCORE_GOTOFF_LO16BFD_RELOC_CKCORE_GOT12BFD_RELOC_CKCORE_GOT_HI16BFD_RELOC_CKCORE_GOT_LO16BFD_RELOC_CKCORE_PLT12BFD_RELOC_CKCORE_PLT_HI16BFD_RELOC_CKCORE_PLT_LO16BFD_RELOC_CKCORE_ADDRGOT_HI16BFD_RELOC_CKCORE_ADDRGOT_LO16BFD_RELOC_CKCORE_ADDRPLT_HI16BFD_RELOC_CKCORE_ADDRPLT_LO16BFD_RELOC_CKCORE_TOFFSET_LO16BFD_RELOC_CKCORE_DOFFSET_LO16BFD_RELOC_CKCORE_GOTOFF_IMM18BFD_RELOC_CKCORE_GOT_IMM18BY4BFD_RELOC_CKCORE_PLT_IMM18BY4BFD_RELOC_CKCORE_TLS_LE32BFD_RELOC_CKCORE_TLS_IE32BFD_RELOC_CKCORE_TLS_GD32BFD_RELOC_CKCORE_TLS_LDM32BFD_RELOC_CKCORE_TLS_LDO32BFD_RELOC_CKCORE_TLS_DTPMOD32BFD_RELOC_CKCORE_TLS_DTPOFF32BFD_RELOC_CKCORE_TLS_TPOFF32BFD_RELOC_CKCORE_NOJSRIBFD_RELOC_CKCORE_CALLGRAPHBFD_RELOC_CKCORE_IRELATIVEBFD_RELOC_S12Z_OPR/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/section.c.%d*COM**UND**IND*bfd_map_over_sectionsbfd_get_unique_section_namex)]]~)]^mN `)]Pa %c%c%c%c%c%c%c.drectve.$0123456789.stabstrunsupported .stab relocation.edata.idata.pdata*]i*]e*]i*]parm-*-fuchsia*unknown file formatECOFFXCOFFELFTekhexSrecVerilogIhexSOMOS9KVersadosMSDOSOvaxEvaxmmoMACH_OPEFPEF_XLIBarmeb-*-netbsdelf*arm-*-netbsdelf*arm-*-nto*nto*arm*arm-*-phoenix*armeb-*-elfarm*b-*-freebsd*arm*b-*-linux-*armeb-*-eabi*arm-*-kaos*arm-*-elfarm*-*-freebsd*arm*-*-linux-*arm*-*-conix*arm*-*-uclinux*arm-*-kfreebsd*-gnuarm*-*-eabi*arm-*-rtems*arm*-*-uclinuxfdpiceabiarm9e-*-elf/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/targets.c`CXCCCpC`CPC@C0C CCCCCCCCCCCpCbfd_flavour_namep+]]+]] ,]],]%,]].,]]=,]I,]Z,]j,]]x,]],],],],],],],],],]]-]]/]/]]@]]]C^ G^@]<]I]E]0]7]O^_binary_%s_%swarning: writing section `%pA' at huge (ie negative) file offset[{ pdC0eC@fCcCcCeCbCbCbCpdC0eC@fCcCcCeCbCbCbC0aCC0aC0aC0_CC0_C0_C0_Cp_C0_C0_CCp_C@CChC_C_CkC_C_C_C_C_C`C`C`CaC0_C0_C@BBPC_CB@BpBB0_CCCCCCCiC _CCCCCC CC`C`C`C`CpCp C0CCPCCzCC@{C`{CГCCCCC@CpCCCЙCpC@CPC0`CpC0C0`CC%pB 64-bit address %#lx out of range for Intel Hex file%pB: address %#lx out of range for Intel Hex file%pB:%d: unexpected character `%s' in Intel Hex file%pB:%u: bad checksum in Intel Hex file (expected %u, found %u)%pB:%u: bad extended address record length in Intel Hex file%pB:%u: bad extended start address length in Intel Hex file%pB:%u: bad extended linear address record length in Intel Hex file%pB:%u: bad extended linear start address length in Intel Hex file%pB:%u: unrecognized ihex type %u in Intel Hex file/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/ihex.c%pB: internal error in ihex_read_section%pB: bad section length in ihex_read_section.sec%dihexDD)DD*D~D0123456789ABCDEF$7]  pdC0eC@fCcCcCeCbCbCbCpdC0eC@fCcCcCeCbCbCbC0aCC0aC0aC0_CCB0_C0_CCB0_CCp_C@C`DhC_C_CkC_C_C_C_C_C`C`C`CaC0_C0_C@BBPC_CB@BpBB0_C `CpCCCCCC _CCCCCCC C`C`C`C`CpC CCCPCCzCC@{C`{CГCCCCC@CpCCCЙCpC@CPC0`CpC0C0`CC %-5s %s$$ $$ symbolsrec/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/srec.c%pB:%d: unexpected character `%s' in S-record file%pB:%d: byte count %d too small%pB:%d: bad checksum in S-record fileDDD7DDDDDDD3;]w pdC0eC@fCcCcCeCbCbCbCpdC0eC@fCcCcCeCbCbCbC0aC !D0aC0aC0_CPDB0_C0_CDB0_CCp_C@CpDhC_C_CkC_C_C_C_C_C`C`C`CaC0_C0_C@BBPC_CB@BpBB0_C D0 DCD DCiC _CCCCCC CC`C`C`C`CpC D D DPCCzCC@{C`{CГCCCCC@CpCCCЙCpC@CPC0`CpC0C0`CC9;]w pdC0eC@fCcCcCeCbCbCbCpdC0eC@fCcCcCeCbCbCbC0aC D0aC0aC0_CPDB0_C0_CDB0_CCp_C@CpDhC_C_CkC_C_C_C_C_C`C`C`CaC0_C0_C@BBPC_CB@BpBB0_C D0 DCD DCiC _CCCCCC CC`C`C`C`CpC D D DPCCzCC@{C`{CГCCCCC@CpCCCЙCpC@CPC0`CpC0C0`CC0123456789ABCDEF/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/tekhex.c%0781010 tekhex0D0Dn0D0D/D/D/D/D/D/D/D/D/D/D0D/D/D/D/DX0Dn0D/D/D/D/D/D/D/D/D/D/D/D0D0D/D0D/D/D/D/D/D/D/D/D/D/D0D/D/D/D/D/Douttekhex_write_object_contentsC]w pdC0eC@fCcCcCeCbCbCbCpdC0eC@fCcCcCeCbCbCbC0aC1D0aC0aC0_C&DB0_C0_C.DB0_CCp_C@C,DhC_C_CkC_C_C_C_C_C`C`C`CaC0_C0_C@BBPC_CB@BpBB0_C#D@#D$D -D%DCiC _CCCCCC CC`C`C`C`CpC$D,D $DPCCzCC@{C`{CГCCCCC@CpCCCЙCpC@CPC0`CpC0C0`CC0123456789ABCDEFverilogqI]w pdC0eC@fCcCcCeCbCbCbCpdC0eC@fCcCcCeCbCbCbC0aC0aC0aC0aC0_C3D0_C0_C0_CP4D0_C0_CCp_C@CgChC_C_CkC_C_C_C_C_C`C`C`CaC0_C0_C@BBPC_CB@BpBB0_C0`CpCCCCCC _CCCCCCC C`C`C`C`CpC3D2DC0C CCP_CCCP_CCCP_C@CP_CPC`CpCCРC@CC0`CpC0C0`CC0123456789ABCDEF/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/elf32-arm.c%pB: error: Cortex-A8 erratum stub is allocated in unsafe location%pB: error: Cortex-A8 erratum stub out of range (input file too large)error: %pB: unknown CPU architectureerror: %pB: conflicting CPU architectures %d/%d [floats passed in float registers] [dynamic symbols use segment index] [mapping symbols precede others]Error: %pB has both the current and legacy Tag_MPextension_use attributeserror: %pB uses VFP register arguments, %pB does noterror: %pB: unable to merge virtualization attributes with %pBerror: %pB: conflicting architecture profiles %c/%cwarning: %pB: conflicting platform configurationerror: %pB: conflicting use of R9error: %pB: SB relative addressing conflicts with use of R9warning: %pB uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may failwarning: %pB uses %s enums yet the output is to use %s enums; use of enum values across objects may failerror: %pB uses iWMMXt register arguments, %pB does noterror: fp16 format mismatch between %pB and %pB%pB has both the current and legacy Tag_MPextension_use attributeserror: %pB is already in final BE8 formaterror: source object %pB has EABI version %d, but target %pB has EABI version %derror: %pB is compiled for APCS-%d, whereas target %pB uses APCS-%derror: %pB passes floats in float registers, whereas %pB passes them in integer registerserror: %pB passes floats in integer registers, whereas %pB passes them in float registerserror: %pB uses %s instructions, whereas %pB does noterror: %pB does not use %s instructions, whereas %pB doeserror: %pB uses software FP, whereas %pB uses hardware FPerror: %pB uses hardware FP, whereas %pB uses software FPwarning: %pB supports interworking, whereas %pB does notwarning: %pB does not support interworking, whereas %pB does%pB: unsupported relocation type %#x%pB: unknown mandatory EABI object attribute %dwarning: %pB: unknown EABI object attribute %dwarning: not setting interworking flag of %pB since it has already been specified as non-interworkingwarning: clearing the interworking flag of %pB due to outside request%pB(%pA): warning: long branch veneers used in section with SHF_ARM_PURECODE section attribute is only supported for M-profile targets that implement the movw instruction%pB(%s): warning: interworking not enabled; first occurrence: %pB: %s call to %sERROR: CMSE stub (%s section) too far (%#lx) from destination (%#lx)unable to find %s glue '%s' for '%s'no address assigned to the veneers output section %s%pB: cannot create stub entry %s%pB: warning: thumb-1 mode PLT generation not currently supported%pB: relocation %s against `%s' can not be used when making a shared object; recompile with -fPICFDPIC does not yet support %d relocation to become dynamic for executable FDPIC does not yet support %s relocation to become dynamic for executablewarning: clearing the interworking flag of %pB because non-interworking code in %pB has been linked with it%pB: relocation %s against external or undefined symbol `%s' can not be used when making a %s; recompile with -fPIC%pB: warning: %s BLX instruction targets %s function '%s'%pB(%pA+%#lx): unexpected %s instruction '%#lx' referenced by TLS_GOTDESC%pB(%pA+%#lx): %s relocation not permitted in shared object%pB(%pA+%#lx): overflow whilst splitting %#lx for group relocation %s%pB(%pA+%#lx): only ADD or SUB instructions are allowed for ALU group relocations%F%P: Could not assign '%pA' to an output section. Retry without --enable-non-contiguous-regions. %pB(%pA+%#lx): %s used with TLS symbol %s%pB(%pA+%#lx): %s used with non-TLS symbol %s%pB(%pA+%#lx): %s relocation against SEC_MERGE section%pB(%pA+%#lx): unexpected %s instruction '%#lx' in TLS trampoline%pB(%pA+%#lx): unresolvable %s relocation against symbol `%s'%pB: error: VFP11 veneer out of range%pB(%#lx): error: cannot create STM32L4XX veneer; jump out of range by %ld bytes; cannot encode branch instruction%pB: error: cannot create STM32L4XX veneer%pB: special symbol `%s' only allowed for ARMv8-M architecture or later%pB: invalid special symbol `%s'; it must be a global or weak function symbol%pB: absent standard symbol `%s'%pB: `%s' and its special symbol are in different sections%pB: entry function `%s' not output%pB: entry function `%s' is empty%pB: --in-implib only supported for Secure Gateway import libraries%pB: invalid import library entry: `%s'; symbol should be absolute, global and refer to Thumb functionsentry function `%s' disappeared from secure code`%s' refers to a non entry function%pB: visibility of symbol `%s' has changed%pB: incorrect size for symbol `%s'offset of veneer for entry function `%s' not a multiple of its sizenew entry function(s) introduced but no output import library specified:start address of `%s' is different from previous link%pB: invalid standard symbol `%s'; it must be a global or weak function symbol%pB: BE8 images only valid in big-endian mode%pB: warning: selected VFP11 erratum workaround is not necessary for target architecture%pB: warning: selected STM32L4XX erratum workaround is not necessary for target architecture%pB: unable to find %s veneer `%s'%pB(%pA+%#x): error: multiple load detected in non-last IT block instruction: STM32L4XX veneer cannot be generated; use gcc option -mrestrict-it to generate only one instruction per IT blockerrors encountered processing file %pBinvalid TARGET2 relocation type '%s'SHF_ARM_PURECODE.ARM.exidx__acle_se_.note.gnu.arm.ident_TLS_MODULE_BASE___stacksize.rofixupIWMMXT2IWMMXTXSCALEprivate flags = 0x%lx: [interworking enabled] [APCS-26] [APCS-32] [VFP float format] [Maverick float format] [FPA float format] [position independent] [new ABI] [old ABI] [software FP] [Version1 EABI] [sorted symbol table] [unsorted symbol table] [Version2 EABI] [Version3 EABI] [Version4 EABI] [Version5 EABI] [soft-float ABI] [hard-float ABI] [BE8] [LE8] [relocatable executable] [FDPIC ABI supplement] .glue_7.glue_7tVFPFPAMaverick.dynamic.gnu.linkonce.armexidx.Thumb%08x_%s+%x_%d%08x_%x:%x+%x_%d.gnu.sgstubs__%s_from_thumbunnamed__%s_from_arm__%s_veneer.got.plt.rela.plt.rel.plt.dynstr.dynsym.gnu.version.gnu.version_d.gnu.version_rcould not find section %s.rel.iplt.rela.iplta local symbol.igot.plt%pB: bad symbol index: %d__real_%s.tls_vars.v4_bx.__stub.regshared objectPIE executable(local)unknown errorunsupported relocationout of range.vfp11_veneer.text.stm32l4xx_veneer%x:%x__bx_r%d__vfp11_veneer_%x__vfp11_veneer_%x_r$aVFP11__stm32l4xx_veneer_%xSTM32L4XX__stm32l4xx_veneer_%x_r$t/usr/lib/ld.so.1variable-size32-bitPre v4ARM v4ARM v4TARM v5TARM v5TEARM v5TEJARM v6ARM v6KZARM v6T2ARM v6KARM v7ARM v6-MARM v6S-MARM v8ARM v8-M.baselineARM v8-M.mainline$delf32-littlearm-symbianelf32-bigarm-symbianaeabi.ARM.attributes.init_array.fini_array.preinit_arrayelf32-littlearm-vxworkself32-bigarm-vxworkself32-littlearm-fdpicelf32-bigarm-fdpicelf32-littlearm-naclelf32-bigarm-naclR_ARM_RREL32R_ARM_RABS32R_ARM_RPC24R_ARM_RBASER_ARM_IRELATIVER_ARM_GOTFUNCDESCR_ARM_GOTOFFFUNCDESCR_ARM_FUNCDESCR_ARM_FUNCDESC_VALUER_ARM_TLS_GD32_FDPICR_ARM_TLS_LDM32_FDPICR_ARM_TLS_IE32_FDPICR_ARM_NONER_ARM_PC24R_ARM_ABS32R_ARM_REL32R_ARM_LDR_PC_G0R_ARM_ABS16R_ARM_ABS12R_ARM_THM_ABS5R_ARM_ABS8R_ARM_SBREL32R_ARM_THM_CALLR_ARM_THM_PC8R_ARM_BREL_ADJR_ARM_TLS_DESCR_ARM_SWI8R_ARM_XPC25R_ARM_THM_XPC22R_ARM_TLS_DTPMOD32R_ARM_TLS_DTPOFF32R_ARM_TLS_TPOFF32R_ARM_COPYR_ARM_GLOB_DATR_ARM_JUMP_SLOTR_ARM_RELATIVER_ARM_GOTOFF32R_ARM_GOTPCR_ARM_GOT32R_ARM_PLT32R_ARM_CALLR_ARM_JUMP24R_ARM_THM_JUMP24R_ARM_BASE_ABSR_ARM_ALU_PCREL_7_0R_ARM_ALU_PCREL_15_8R_ARM_ALU_PCREL_23_15R_ARM_LDR_SBREL_11_0R_ARM_ALU_SBREL_19_12R_ARM_ALU_SBREL_27_20R_ARM_TARGET1R_ARM_ROSEGREL32R_ARM_V4BXR_ARM_TARGET2R_ARM_PREL31R_ARM_MOVW_ABS_NCR_ARM_MOVT_ABSR_ARM_MOVW_PREL_NCR_ARM_MOVT_PRELR_ARM_THM_MOVW_ABS_NCR_ARM_THM_MOVT_ABSR_ARM_THM_MOVW_PREL_NCR_ARM_THM_MOVT_PRELR_ARM_THM_JUMP19R_ARM_THM_JUMP6R_ARM_THM_ALU_PREL_11_0R_ARM_THM_PC12R_ARM_ABS32_NOIR_ARM_REL32_NOIR_ARM_ALU_PC_G0_NCR_ARM_ALU_PC_G0R_ARM_ALU_PC_G1_NCR_ARM_ALU_PC_G1R_ARM_ALU_PC_G2R_ARM_LDR_PC_G1R_ARM_LDR_PC_G2R_ARM_LDRS_PC_G0R_ARM_LDRS_PC_G1R_ARM_LDRS_PC_G2R_ARM_LDC_PC_G0R_ARM_LDC_PC_G1R_ARM_LDC_PC_G2R_ARM_ALU_SB_G0_NCR_ARM_ALU_SB_G0R_ARM_ALU_SB_G1_NCR_ARM_ALU_SB_G1R_ARM_ALU_SB_G2R_ARM_LDR_SB_G0R_ARM_LDR_SB_G1R_ARM_LDR_SB_G2R_ARM_LDRS_SB_G0R_ARM_LDRS_SB_G1R_ARM_LDRS_SB_G2R_ARM_LDC_SB_G0R_ARM_LDC_SB_G1R_ARM_LDC_SB_G2R_ARM_MOVW_BREL_NCR_ARM_MOVT_BRELR_ARM_MOVW_BRELR_ARM_THM_MOVW_BREL_NCR_ARM_THM_MOVT_BRELR_ARM_THM_MOVW_BRELR_ARM_TLS_GOTDESCR_ARM_TLS_CALLR_ARM_TLS_DESCSEQR_ARM_THM_TLS_CALLR_ARM_PLT32_ABSR_ARM_GOT_ABSR_ARM_GOT_PRELR_ARM_GOT_BREL12R_ARM_GOTOFF12R_ARM_GNU_VTENTRYR_ARM_GNU_VTINHERITR_ARM_THM_JUMP11R_ARM_THM_JUMP8R_ARM_TLS_GD32R_ARM_TLS_LDM32R_ARM_TLS_LDO32R_ARM_TLS_IE32R_ARM_TLS_LE32R_ARM_TLS_LDO12R_ARM_TLS_LE12R_ARM_TLS_IE12GPR_ARM_THM_TLS_DESCSEQR_ARM_THM_ALU_ABS_G0_NCR_ARM_THM_ALU_ABS_G1_NCR_ARM_THM_ALU_ABS_G2_NCR_ARM_THM_ALU_ABS_G3_NCR_ARM_THM_BF16R_ARM_THM_BF12R_ARM_THM_BF18XUDTDTD TD0TDTDUDUDhUDxUDUDUDTDTDUDUD(UD8UDUDUDUDHUDbDbDaDfD!fD!fDeD!fD!fDfD0fDfDeDeDkeD!fDeD!fD!fD!fDeDeDdDbDbDEDDDDDDDDDDDDDDDDDDDDDD:EDDDDDDE EEEEEEEEEEEEEE EEEEEEEEEEEE E E EEEEEEEEEEEEEEEEEEEEEEEEEEEEKEhKE@LEKE@LE KELEOEOEOENEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPEpPENE]i]"i]]   )i]0i]7i]?i]Gi]Pi]Zi]ai]ji]si]{i]i]i]i]]i]i]elf32_arm_create_dynamic_sectionself32_arm_get_local_dynreloc_listelf32_arm_check_relocself32_arm_allocate_dynrelocsallocate_dynrelocs_for_symbolh]i]i]elf32_arm_update_relocself32_arm_write_sectionrecord_stm32l4xx_erratum_veneerbfd_elf32_arm_stm32l4xx_fix_veneer_locationsbfd_elf32_arm_vfp11_fix_veneer_locationsrecord_vfp11_erratum_veneerbfd_arm_vfp11_insn_decodebfd_elf32_arm_vfp11_erratum_scanbfd_elf32_arm_process_before_allocationelf32_arm_add_dynrelocelf32_arm_final_link_relocatearm_stub_required_alignmentarm_dedicated_stub_input_section_ptrarm_dedicated_stub_output_section_requiredarm_dedicated_stub_output_section_namearm_stub_sym_claimedi]?/dCeCfCcC0dC fCbCbCcCdCeCfCcC0dC fCbCbCcC0aCEPBE0_CnDB`(F0_C@FB0F`FpCnDgChC D_DFFpFF@zDYDEEEEBB`BBC`BBBPBBp_CF F@F6F`F`5FpF@KD0FFF`YDC CC0FFCoD`DPF FFPCCPWD@G@{CH wECGP{HHH1F1FC@HpCHHPFPF0!GFF]`]i]?/pdC0eC@fCcCcCeCbCbCbCpdC0eC@fCcCcCeCbCbCbC0aCEPBE0_CnDB`(F0_C@FB0F`FpCnDgChC D_DFFpFF@zDYDEEEEBB`BBC`BBBPBBp_CF F@F6F`F`5FpF@KD0FFF`YDC CC0FFCoD`DPF FFPCCPWD@G@{CH wECGP{HHH1F1FC@HpCHHPFPF0!GFF`]`] (A pDSDxD:DGD`vD0YFpZFzD`D{DG`GDG DQDPE HGEDpDNDQDIDoDrFyHxHpQDODD@DDMD0HG`D;DD DLDpHD:D&HHHH H\EEEf]Ig]Qg] %^4]j] j] j]-j]?/dCeCfCcC0dC fCbCbCcCdCeCfCcC0dC fCbCbCcC0aCEPBE0_CnDB`(F0_C@FB0F`FpCnDgChC D_DFFpFF@zDYDEEEEBB`BBC`BBBPBBp_CF F@F6F`F`5FpF@KD0FFF`YDC CC0FFCoD`DPF FFPCC0WD@G@{CH wECGP{HHH1F1FC@HpCHHPFPF0!GFF]`]Ej]?/pdC0eC@fCcCcCeCbCbCbCpdC0eC@fCcCcCeCbCbCbC0aCEPBE0_CnDB`(F0_C@FB0F`FpCnDgChC D_DFFpFF@zDYDEEEEBB`BBC`BBBPBBp_CF F@F6F`F`5FpF@KD0FFF`YDC CC0FFCoD`DPF FFPCC0WD@G@{CH wECGP{HHH1F1FC@HpCHHPFPF0!GFF`]`] (A pDSDxD:DGD`vD0YFpZFzD`D{DG`GDG DQDPE HGEDpDND^DID0IDrFyHxHpQDODD@DDMD0HF`D;DD DLDpHD:D&HHHH H\EEE;DH H0H G%GD0^Fp)G C] @Hi]i]uDpPuDyDAC0&GP&G +GN>Zj]?/dCeCfCcC0dC fCbCbCcCdCeCfCcC0dC fCbCbCcC0aCEPBE0_CnDB`(F0_C@FB0F`FpCnDgChC D_DFFpFF@zDYDEEEEBB`BBC`BBBPBBp_CF F@F6F`F`5FpF@KD0FFF`YDC CC0FFCoD`DPF FFPCCWD@G@{CH wECGP{HHH1F1FC@HpCHHPFPF0!GFF]@]pj]?/pdC0eC@fCcCcCeCbCbCbCpdC0eC@fCcCcCeCbCbCbC0aCEPBE0_CnDB`(F0_C@FB0F`FpCnDgChC D_DFFpFF@zDYDEEEEBB`BBC`BBBPBBp_CF F@F6F`F`5FpF@KD0FFF`YDC CC0FFCoD`DPF FFPCCWD@G@{CH wECGP{HHH1F1FC@HpCHHPFPF0!GFF@]@] (AA pDSDxD:DGD`vD0YFpZFzD`D{D;D`GDG DQDPE HGEDpDNDQDID0IDrFyHxHpQDODD@DDMD0HG`D;DD DLDpHD:D&HHHH H\EEE;DH H0H G%GD0^Fp)G C] @Hi]i]uDpPuDyDAC0&GP&G +GF>j]?/dCeCfCcC0dC fCbCbCcCdCeCfCcC0dC fCbCbCcC0aCEPBE0_CnDB`(F0_C@FB0F`FpCnDgChC D_DFFpFF@zDYDEEEEBB`BBC`BBBPBBp_CF F@F6F`F`5FpF@KD0FFF`YDC CC0FFCoD`DPF FFPCCVD@G@{CH wECGP{HHH1F1FC@HpCHHPFPF0!GFF] ]j]?/pdC0eC@fCcCcCeCbCbCbCpdC0eC@fCcCcCeCbCbCbC0aCEPBE0_CnDB`(F0_C@FB0F`FpCnDgChC D_DFFpFF@zDYDEEEEBB`BBC`BBBPBBp_CF F@F6F`F`5FpF@KD0FFF`YDC CC0FFCoD`DPF FFPCCVD@G@{CH wECGP{HHH1F1FC@HpCHHPFPF0!GFF ] ] (A pDSDxD:DGD`vD0YFpZFzD`D{DG`GDG DQDPE HGEDpDNDnDID@D`EyHxHpQDODD@DDMD0HG`D;DD DLDpHD:D&HHHH H\EEE;DH H0H G%GD0^Fp)G C] @Hi]i]uDpPuDyDAC0&GP&G +G>Q?/dCeCfCcC0dC fCbCbCcCdCeCfCcC0dC fCbCbCcC0aCEPBE0_CnDB`(F0_C@FB0F`FpCnDgChC D_DFFpFF@zDYDEEEEBB`BBC`BBBPBBp_CF F@F6F`F`5FpF@KD0FFF`YDC CC0FFCoD`DPF FFPCCUD@G@{CH wECGP{HHH1F1FC@HpCHHPFPFDFF]]T?/pdC0eC@fCcCcCeCbCbCbCpdC0eC@fCcCcCeCbCbCbC0aCEPBE0_CnDB`(F0_C@FB0F`FpCnDgChC D_DFFpFF@zDYDEEEEBB`BBC`BBBPBBp_CF F@F6F`F`5FpF@KD0FFF`YDC CC0FFCoD`DPF FFPCCUD@G@{CH wECGP{HHH1F1FC@HpCHHPFPFDFF]] (A pDSDxD:DGD`vD0YFpZFzD`D{DG`GDG DQDPE HGEDpDNDQDID0IDrFyHxHpQDODD@DDMD0HG`D;DD DLDpHD:D&HHHH H\EEEH H0H G%GD0^FvD C] @Hi]i]uDpPuDyDAC0&GP&G +GF>4 (   EEE EDKDPEEEEpEEE@E`]]@] ]]`]]]`]@]]]]]]]]`]0]]]]] ?/p% ?/ p%xGxG /HFD`GxG / / xGxGxG/ @/ 0`G_HF`G/@-?/  ?/  _M  - -  //GKNOLM \][Z XfY3WgV4srvwxy`tu^&_'` b*a)uZ[]\ zh{j|i~}klklmnopqedc+d,e-f.g/h0i1j29:;<=>?@ABCDEFGHIJKLMNOPQRS(RST1Fj]1Fj]1Fj]1Fj]@1Fj]@1Fj]@1Fj]@1Fk]@1F"k]@1F7k]@1FLk]@1Fbk]1Fwk] 1Fk]@1Fk]@ 1Fk] 1Fk]@1Fk]b@1Fk])@1Fk]@@1Fk] 1Fk]  //1Fk] A 1Fl] 1Fl] @1F!l]1F0l] 1F;l] //1FGl]@1FWl]@1Fjl]@1F}l]@1Fl]@1Fl]@1Fl]@1Fl]@1Fl]@1Fl]@1Fl]@ 1Fl] 1Fl] 1Fm] //1Fm]1F$m] b 1F3m]!b 1FGm]"b 1F\m]#b1Frm]$B 1Fm]%B1Fm]&1Fm]'1Fm](1Fm])1Fm]* 1Fm]+1Fm],@1F n]- 1Fn].@ 1F,n]/pp1Fo]> 1FNo]? 1F^o]@ 1Fno]A 1Fo]B 1Fo]C 1Fo]D 1Fo]E 1Fo]F 1Fo]G 1Fo]H 1Fo]I 1Fp]J 1Fp]K 1F'p]L 1F7p]M 1FGp]N 1FWp]O 1Fhp]P 1Fyp]Q 1Fp]R 1Fp]S 1Fp]T1Fp]U@1Fp]V1Fp]Wpp1Fp]X@pp1Fq]Ypp1Fq]Z@,q][1F>q]\1FMq]]1F_q]^1Frq]_1Fq]` 1Fq]ab@1Fq]bb@1Fq]cdFq]eq]fY 1Fq]gA 1Fq]h@r]i@1Fr]j@1F%r]k@5r]l@Dr]mb@1FSr]nb@1Fcr]ob@1Frr]pqrstuvwxyz{|}~1Fr]@1Fr]@1Fr]@1Fr]@1Fr] 1Fr]a 1Fs] 1Fs]/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/elfcode.hwarning: %pB has a section extending past end of file%pB: version count (%ld) does not match symbol count (%ld)%pB(%pA): relocation %d has invalid symbol index %ldwarning: %pB has a corrupt string table index - ignoringwarning: %pB has a program header with invalid alignmentwarning: %pB is truncated: expected core file size >= %lu, found: %luEEEpE`E@E0EE EExEbfd_elf32_write_relocsbfd_elf32_swap_symbol_out4 (   EEE EEEPEEEEpEEE@E/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/elf-nacl.c__GOTT_BASE____GOTT_INDEX__.rela.plt.unloaded.rel.plt.unloaded.tls_dataFFFFF`FRELRO%s/%ld.auxvstapsdtFreeBSDNetBSD-COREOpenBSDQNXSPU/GNU.rela.shstrtab(null)Base(*none*)elf %s %-11s .internal .hidden .protected 0x%02x.debug.gnu.linkonce.wi..zdebug.gnu.build.attributes.note.gnu.line.gdb_index.gnu.linkonce.gnu.lto_.lto.%s%d%s TLS: %pA non-TLS: %pA.symtab.strtab.gnu.libstr*unknown*.symtab_shndx%pB: too many sections: %uLOPROC+%7.7xLOOS+%7.7x%8.8xGNU_HASHUSEDVERNEEDNUMVERNEEDVERDEFNUMVERDEFVERSYMFLAGS_1RELCOUNTRELACOUNTSYMINFOMOVETABPLTPADSYMINENTSYMINSZPOSFLAG_1MOVESZMOVEENTPLTPADSZCHECKSUMPREINIT_ARRAYSZPREINIT_ARRAYFINI_ARRAYSZFINI_ARRAYBIND_NOWJMPRELRELENTSYMBOLICFINIINITSYMENTSTRSZRELAENTRELASZPLTGOTPLTRELSZFILTERAUXILIARYDEPAUDITCONFIGRUNPATHRPATHSONAME Program Header: 0x%lx%8s off 0x vaddr 0x paddr 0x align 2**%u filesz 0x memsz 0x flags %c%c%c %lx Dynamic Section: %#lx Version definitions: %d 0x%2.2x 0x%8.8lx %s Version References: required from %s: %-20s %pB: %s unsupported%s/%d.qnx_core_info.qnx_core_status/%ld.qnx_core_status.reg2win32NOTE_INFO_PROCESSNOTE_INFO_THREADNOTE_INFO_MODULENOTE_INFO_MODULE64.reg/%ld.module/%08lx.module/%016lxLINUX.reg-xfp.reg-xstate.reg-ppc-vmx.reg-ppc-vsx.reg-ppc-tar.reg-ppc-ppr.reg-ppc-dscr.reg-ppc-ebb.reg-ppc-pmu.reg-ppc-tm-cgpr.reg-ppc-tm-cfpr.reg-ppc-tm-cvmx.reg-ppc-tm-cvsx.reg-ppc-tm-spr.reg-ppc-tm-ctar.reg-ppc-tm-cppr.reg-ppc-tm-cdscr.reg-s390-high-gprs.reg-s390-timer.reg-s390-todcmp.reg-s390-todpreg.reg-s390-ctrs.reg-s390-prefix.reg-s390-last-break.reg-s390-system-call.reg-s390-tdb.reg-s390-vxrs-low.reg-s390-vxrs-high.reg-s390-gs-cb.reg-s390-gs-bc.reg-arc-v2.reg-arm-vfp.reg-aarch-tls.reg-aarch-hw-break.reg-aarch-hw-watch.reg-aarch-sve.reg-aarch-pauth.note.linuxcore.file.note.linuxcore.siginfo.wcookie.note.netbsdcore.procinfo.note.netbsdcore.lwpstatus.thrmisc.note.freebsdcore.proc.note.freebsdcore.files.note.freebsdcore.vmmap.note.freebsdcore.lwpinfonullshlibLARGE_COMMON.zdebug_line.zdebug_info.zdebug_abbrev.zdebug_aranges.tbss.rodata1.persistent.bss.persistent.noinit.gnu.linkonce.b.gnu.linkonce.n.gnu.linkonce.p.gnu.lto_.gnu.liblist.gnu.conflict.gnu.hash.data1.debug_line.debug_info.debug_abbrev.debug_arangesSHT_NULLSHT_PROGBITSSHT_SYMTABSHT_STRTABSHT_RELASHT_HASHSHT_DYNAMICSHT_NOTESHT_NOBITSSHT_RELSHT_SHLIBSHT_DYNSYM%pB: GNU_MBIND section `%pA' has invalid sh_info field: %d/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/elf.c%pB: invalid sh_link field (%d) in section number %d%pB: failed to find link section for section %d%pB: failed to find info section for section %d%pB: error: alignment power %d of section `%pA' is too bigwarning: section `%pA' type changed to PROGBITS%pB: attempt to load strings from a non-string section (number %d)%pB: invalid string offset %u >= %lu for section `%s'%pB symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section%pB: sh_link [%d] in section `%pA' is incorrect%pB: SHT_GROUP section [index %d] has no SHF_GROUP sections%pB: section group entry number %u is corrupt%pB: unknown type [%#x] section `%s' in group [%pA]%pB: warning: loop in section dependencies detected%pB: warning: multiple symbol tables detected - ignoring the table in section %u%pB: warning: multiple dynamic symbol tables detected - ignoring the table in section %u%pB: invalid link %u for reloc section %s (index %u)%pB: warning: secondary relocation section '%s' for section %pA found - ignoring%pB: unknown type [%#x] section `%s'%pB: invalid size field in group section header: %#lx%pB: invalid entry in SHT_GROUP section [%u]%pB: no valid group sections found%pB: group section '%pA' has no contents%pB: no group info for section '%pA'%pB: unable to initialize compress status for section %s%pB: unable to initialize decompress status for section %s%pB: TLS sections are not adjacent:%pB: sh_link of section `%pA' points to removed section `%pA' of `%pB'%pB: Unable to handle section index %x in ELF symbol. Using ABS instead.unable to find equivalent output section for symbol '%s' from section '%s'%pB: The first section in the PT_DYNAMIC segment is not the .dynamic section%pB: not enough room for program headers, try linking with -N%pB: section %pA lma %#lx adjusted to %#lx%pB: error: PHDR segment not covered by LOAD segment%pB: section `%pA' can't be allocated in segment %d%pB: warning: allocated section `%s' not in segment%pB: error: non-load segment %d includes file header and/or program header%pB: sh_link of section `%pA' points to discarded section `%pA' of `%pB'%pB: symbol `%s' required but not present%pB: warning: segment alignment of %#lx is too large%pB: warning: empty loadable segment detected at vaddr=%#lx, is this intentional?%pB: .gnu.version_r invalid entry%pB: .gnu.version_d invalid entry 0x%8.8lx 0x%2.2x %2.2d %s %pB:%pA: error: attempting to write into an unallocated compressed section%pB:%pA: error: attempting to write over the end of the section%pB:%pA: error: attempting to write section into an empty buffer%pB: warning: win32pstatus %s of size %lu bytes is too small%pB: win32pstatus NOTE_INFO_MODULE of size %lu is too small to contain a name of size %uGNU_MBIND section is supported only by GNU and FreeBSD targetssymbol type STT_GNU_IFUNC is supported only by GNU and FreeBSD targetssymbol binding STB_GNU_UNIQUE is supported only by GNU and FreeBSD targetsGNU_RETAIN section is supported only by GNU and FreeBSD targets%pB(%pA): link section cannot be set because the output file does not have a symbol table%pB(%pA): info section index is invalid%pB(%pA): info section index cannot be set because the section is not in the output%pB(%pA): error: secondary reloc section processed twice%pB(%pA): error: secondary reloc section has zero sized entries%pB(%pA): error: secondary reloc section has non-standard sized entries%pB(%pA): error: secondary reloc section is empty!%pB(%pA): error: internal relocs missing for secondary reloc section%pB(%pA): error: reloc table entry %u is empty%pB(%pA): error: secondary reloc %u references a missing symbol%pB(%pA): error: secondary reloc %u references a deleted symbol%pB(%pA): error: secondary reloc %u is of an unknown type]0Fk]Gs] G]PG]F]p F]FF)F)F)FPF)F)F)F0F)F)F)F)F)F)F)F F)F)F)F)F)F)F)FF)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)FFF)F)F)F)F)FF)FF)F)F)F)F)F)F)F)F)FF)F)F)F)F)FF)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)F)FF_bfd_elf_no_info_to_howto_bfd_elf_get_lineno_bfd_elf_assign_file_positions_for_non_loadget_program_header_sizeassign_file_positions_for_non_load_sectionsbfd_elf_get_elf_symsb]b^`^^^ ^^`^ ^^^`^^@^ ^o] |] ]]6[]h[] ]]*]([]]O[ ]] j];g]]T[b[>]2kNj] o[4]]]] ] %^Yg] ofg]oug]o] o"] 0] o8kNj] [:]]A] M] Y] g]f]Ig]Qg] ~[PmN&^v]]]]]]]]]]]]%P: %pB: warning: relocation against `%s' in read-only section `%pA' %pB: dynamic relocation against `%pT' in read-only section `%pA' /data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/elflink.c%P%X: can not read symbols: %E %pB:%pA: error: relocation references symbol %s which was removed by garbage collection%pB:%pA: error: try relinking with --gc-keep-exported enabled%pB: bad reloc symbol index (%#lx >= %#lx) for offset %#lx in section `%pA'%pB: non-zero symbol index (%#lx) for offset %#lx in section `%pA' when the object file has no symbol table%pB: too many sections: %d (>= %d)undefined %s reference in complex symbol: %sunknown operator '%c' in complex symbol%s: TLS definition in %pB section %pA mismatches non-TLS definition in %pB section %pA%s: TLS reference in %pB mismatches non-TLS reference in %pB%s: TLS definition in %pB section %pA mismatches non-TLS reference in %pB%s: TLS reference in %pB mismatches non-TLS definition in %pB section %pA%pB: version node not found for symbol %swarning: type and size of dynamic symbol `%s' are not defined%pB: internal symbol `%s' in %pB is referenced by DSO%pB: hidden symbol `%s' in %pB is referenced by DSO%pB: local symbol `%s' in %pB is referenced by DSO%pB: protected symbol `%s' isn't defined%pB: internal symbol `%s' isn't defined%pB: hidden symbol `%s' isn't defined%pB: could not find output section %pA for input section %pA%pB: no symbol version section for versioned symbol `%s'%pB: relocation size mismatch in %pB section %pA%P: copy reloc against protected `%pT' is dangerous alternate ELF machine code found (%d) in %pB, expecting %d%pB: invalid version offset %lx (max %lx)%pB: %s local symbol at index %lu (>= sh_info of %lu)%pB: not enough version information%pB: %s: invalid version %u (max %d)%pB: %s: invalid needed version %d%pB: unexpected redefinition of indirect versioned symbol `%s'warning: alignment %u of common symbol `%s' in %pB is greater than the alignment (%u) of its section %pAwarning: alignment %u of symbol `%s' in %pB is smaller than %u in %pBwarning: size of symbol `%s' changed from %lu in %pB to %lu in %pBwarning: type of symbol `%s' changed from %d to %d in %pB%pB: undefined reference to symbol '%s'%pB: stack size specified and %s set%pB: .preinit_array section is not allowed in DSOwarning: --enable-non-contiguous-regions discards section `%s' from '%s' error: %pB: size of section %pA is not multiple of address sizeerror: %pB contains a reloc (%#lx) for section %pA that references a non-existent global symbol%X`%s' referenced in section `%pA' of %pB: defined in discarded section `%pA' of %pB %pA has both ordered [`%pA' in %pB] and unordered [`%pA' in %pB] sections%pA has both ordered and unordered sections%F%P: %pA has ordered sections with incompatible alignments %pB: file class %s incompatible with %s%pB: no symbol found for import library%pB: failed to generate import library%pB: unable to sort relocs - they are in more than one size%pB: unable to sort relocs - they are of an unknown sizenot enough memory to sort relocationswarning: %s section has zero sizewarning: section '%s' is being made into a note%P%X: read-only segment has dynamic relocations %P: warning: creating DT_TEXTREL in a shared object %P: warning: creating DT_TEXTREL in a PIE %F%P: %pB(%pA): error: need linked-to section for --gc-sections warning: gc-sections option ignoredremoving unused section '%pA' in file '%pB'%pB: %pA+%#lx: no symbol found for INHERIT%pB: section '%pA': corrupt VTENTRY entryunrecognized INPUT_SECTION_FLAG %s %P: warning: GNU indirect functions with DT_TEXTREL may result in a segfault at runtime; recompile with %s .end0-division by zero.rela.got.rel.got_GLOBAL_OFFSET_TABLE_.rela.bss.rel.bss.rela.data.rel.ro.rel.data.rel.ro_PROCEDURE_LINKAGE_TABLE_.dynbss.tcommon%!%pB: %s not absolute%s: undefined version: %s.MIPS.xhash.gcc_except_tableELFCLASS64ELFCLASS32ELFCLASSNONE.gnu.attributes%F%P: corrupt input: %pB .debug_line.__patchable_function_entries.gnu.linkonce..gnu.linkonce.r.-fPIC-fPIESHF_WRITESHF_ALLOCSHF_EXECINSTRSHF_MERGESHF_STRINGSSHF_INFO_LINKSHF_LINK_ORDERSHF_OS_NONCONFORMINGSHF_GROUPSHF_TLSSHF_MASKOSSHF_EXCLUDEqGqGqGoGoGxoGG@G@G+G+GGGGGGG@G҉GGGGPGPGlGelf_link_adjust_relocself_reloc_link_orderelf_link_input_bfdelf_link_convert_common_typeelf_link_check_versioned_symbolelf_link_output_extsymbfd_elf_final_linkput_valueget_valuebfd_elf_size_dynsym_hash_dynstrelf_link_add_object_symbolsj'^t'^~'^'^'^ '^@'^'^'^'^'^'^%Ca  @/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/elf-attrs.c%pB: error: attribute section '%pA' too big: %#llx%pB: error: attribute section length too small: %lderror: %pB: object has vendor-specific contents that must be processed by the '%s' toolchainerror: %pB: object tag '%d, %s' is incompatible with tag '%d, %s'_bfd_elf_parse_attributes_bfd_elf_obj_attrs_arg_type_bfd_elf_copy_obj_attributesbfd_elf_set_obj_attr_contents/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/elf-strtab.cHHHخHH(HxHxHxH(HHH(HxHxH0HH(H(HxH(H(HHhHhHhHhHhHhHxHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHHxH(HhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHxHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHhHHHHHHHHHHHH.HHHHOHHHH write_compact_eh_frame_hdr_bfd_elf_fixup_eh_frame_hdr/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/elf-eh-frame.cdiscarding zero address range FDE in %pB(%pA). error in %pB(%pA); no .eh_frame_hdr table will be createdFDE encoding in %pB(%pA) prevents .eh_frame_hdr table being createdfurther warnings about FDE encoding preventing .eh_frame_hdr generation dropped%pB: %pA invalid input section size%pB: %pA points past end of text sectionDW_EH_PE_datarel unspecified for this architectureinvalid output section for .eh_frame_entry: %pAinvalid contents in %pA section.eh_frame_hdr refers to overlapping FDEs__GNU_EH_FRAME_HDR%pB: %pA not in order.eh_frame_hdr entry overflowH8HHHpHHHHHDWARF error: can't find %s section.DWARF error: section %s is larger than its filesize! (0x%lx vs 0x%lx)DWARF error: offset (%lu) greater than or equal to %s size (%lu)DWARF error: mangled line number section (bad file number)/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/dwarf2.cDWARF error: info pointer extends beyond end of attributesDWARF error: invalid or unhandled FORM value: %#xDWARF error: zero format countDWARF error: data count (%lx) larger than buffer sizeDWARF error: unknown format content type %luDWARF error: found dwarf version '%u', this reader only handles version 2, 3, 4 and 5 informationDWARF error: found address size '%u', this reader can not handle sizes greater than '%u'DWARF error: found address size '%u', this reader can only handle address sizes '2', '4' and '8'DWARF error: DW_AT_comp_dir attribute encountered with a non-string formDWARF error: could not find abbrev number %uDWARF error: line info section is too small (%ld)DWARF error: line info data is bigger (%#lx) than the space remaining in the section (%#lx)DWARF error: unhandled .debug_line version %dDWARF error: ran out of room reading prologueDWARF error: line info unsupported segment selector size %uDWARF error: invalid maximum operations per instructionDWARF error: ran out of room reading opcodesDWARF error: mangled line number sectionDWARF error: could not find variable specification at offset %lxDWARF error: abstract instance recursion detectedDWARF error: invalid abstract instance DIE refDWARF error: unable to read alt ref %luDWARF error: unable to locate abstract instance DIE ref %lu%s/%s/%s.debug_frame.zdebug_frame.debug_loc.zdebug_loc.debug_macinfo.zdebug_macinfo.debug_macro.zdebug_macro.debug_pubnames.zdebug_pubnames.debug_pubtypes.zdebug_pubtypes.zdebug_ranges.debug_rnglists.zdebug_rnglist.debug_static_func.zdebug_static_func.debug_static_vars.zdebug_static_vars.debug_str.zdebug_str.debug_line_str.zdebug_line_str.debug_types.zdebug_types.debug_sfnames.zdebug_sfnames.debug_srcinfo.zebug_srcinfo.debug_funcnames.zdebug_funcnames.debug_typenames.zdebug_typenames.debug_varnames.zdebug_varnames.debug_weaknames.zdebug_weaknamesII@I I`IIIIIIIII(I.I,I.Iq.I.I-I-I-I/I-Iscan_unit_for_symbolsread_addressY]]g]]]>^j>^M]|]M]|]A]o]x>^>^>^>^>^>^>^>^>^>^k\ ?^?^*?^:?^M?^a?^t?^?^?^?^?^?^?^?^?^?^?^?^ @^@^)@^;@^L@^^@^n@^@^@^%pB: relocations in generic ELF (EM: %d)imN?/dCeCfCcC0dC fCbCbCcCdCeCfCcC0dC fCbCbCcC0aCEPBE0_C@(FB`(F0_C@FB0F`FpCYFgChC@2F_CFFpFF_CFEEEEBB`BBC`BBBPBBp_CF F@F6F`F`5FpF _C0FFF`FC CC0FFC`CpCPF FFPCCzC`dI@{C`{CГCCGP{HHH1F1FC@HpCHPCPFPF0!GFF G^J^UmN?/pdC0eC@fCcCcCeCbCbCbCpdC0eC@fCcCcCeCbCbCbC0aCEPBE0_C@(FB`(F0_C@FB0F`FpCYFgChC@2F_CFFpFF_CFEEEEBB`BBC`BBBPBBp_CF F@F6F`F`5FpF _C0FFF`FC CC0FFC`CpCPF FFPCCzC`dI@{C`{CГCCGP{HHH1F1FC@HpCHPCPFPF0!GFFC^J^&A@dIPdIG HF0YFpZFG`GG``C$GrFyHxHoH tH@pF@H0HGPG&HHHH HEEH H0H G%G%G0^Fp)G C]@HoAC0&GP&G +G8@N/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/bfd/plugin.cFailed to load plugin '%s', reason: %s bfd plugin: /bin/../lib/bfd-pluginsplug`hI`hI0hI0hIhI4O^-O^G Nw/dCeCfCcC0dC fCbCbCcCdCeCfCcC0dC fCbCbCcC0aClIPB0aC0_C0_CB0_C0_C0_CB0_CCp_C@CgChC fI_CkCfIeI_C_CeIeIeIЅI`eIBB`BBC`BBBPBBp_C eIgIPfIeI@fICC _CCCCCC CC`C`C`C`CpCp ChCdIPCCzCC@{C`{CГCCCCC@CpCCCЙCpC@CPC0`CpC0C0`CCarch: armv2armv2aarmv3armv3Marmv4armv4tarmv5armv5tarmv5teXScaleep9312iWMMXtiWMMXt2arm_anyarmv3mxscaleiwmmxtiwmmxt2armv5tejarmv6armv6kzarmv6t2armv6karmv7armv6-marmv6s-marmv7e-marmv8-aarmv8-rarmv8-m.basearmv8-m.mainarmv8.1-m.mainarm2arm250arm3arm6arm60arm600arm610arm620arm7arm70arm700arm700iarm710arm7100arm710carm710tarm720arm720tarm740tarm7500arm7500fearm7darm7diarm7dmarm7dmiarm7tarm7tdmiarm7tdmi-sarm7marm8arm810arm9arm920arm920tarm922tarm926ejarm926ejsarm926ej-sarm940tarm946earm946e-r0arm946e-sarm966earm966e-r0arm966e-sarm968e-sarm9earm9e-r0arm9tdmiarm1020arm1020tarm1020earm1022earm1026ejsarm1026ej-sarm10earm10tarm10tdmiarm1136j-sarm1136jsarm1136jf-sarm1136jfsarm1176jz-sarm1176jzf-sarm1156t2-sarm1156t2f-scortex-a5cortex-a7cortex-a9cortex-a12cortex-a15cortex-a17cortex-a32cortex-a35cortex-a53cortex-a55cortex-a57cortex-a72cortex-a73cortex-a75cortex-a76cortex-a76aecortex-a77cortex-a78cortex-a78aecortex-a78ccortex-m0cortex-m0pluscortex-m1cortex-m23cortex-m3cortex-m33cortex-m35pcortex-m4cortex-m7cortex-r4cortex-r4fcortex-r5cortex-r52cortex-r7cortex-r8cortex-x1exynos-m1fa526fa606tefa616tefa626fa626tefa726tefmp626i80200marvell-pj4marvell-whitneympcorempcorenovfpsa1strongarmstrongarm1strongarm110strongarm1100strongarm1110xgene1xgene2error: %pB is compiled for the EP9312, whereas %pB is compiled for XScalewarning: unable to update contents of %s section in %pB'S^-S^4S^:S^AS^GS^NS^TS^[S^cS^jS^qS^xS^'S^-S^4S^:S^AS^GS^NS^TS^[S^ cS^ jS^ qS^ xS^ S^  g]g]poIoI0 CZ^  g]'S^poIoI0 C8[^  g]-S^poIoI0 C[^  g]4S^poIoI0 C[^  g]S^poIoI0 C@\^  g]AS^poIoI0 C\^  g]GS^poIoI0 C\^  g]NS^poIoI0 CH]^  g]TS^poIoI0 C]^  g][S^poIoI0 C]^  g]S^poIoI0 CP^^  g]jS^poIoI0 C^^  g]S^poIoI0 C_^  g]S^poIoI0 CX_^  g]S^poIoI0 C_^  g]S^poIoI0 C`^  g]S^poIoI0 C``^  g]S^poIoI0 C`^  g]S^poIoI0 Ca^  g]S^poIoI0 Cha^  g]S^poIoI0 Ca^  g]S^poIoI0 Cb^  g]S^poIoI0 Cpb^  g]S^poIoI0 Cb^  g]S^poIoI0 C c^  g]S^poIoI0 Cxc^  g]T^poIoI0 Cc^  g]T^poIoI0 C(d^  g]S^poIoI0 C$T^)T^0T^5T^:T^@T^GT^NT^UT^ZT^`T^gT^oT^vT^~T^T^T^T^T^T^T^T^T^T^T^T^T^T^T^T^T^T^U^ U^U^U^$U^.U^9U^ AU^ IU^ TU^ ^U^ fU^ qU^ {U^ U^ U^U^ U^U^ U^ U^U^U^ U^U^U^U^U^V^V^V^'V^4V^@V^MV^WV^QaV^kV^vV^V^V^V^V^V^V^V^V^V^V^V^V^W^W^W^+W^5W^CW^MW^XW^bW^mW^yW^W^W^W^W^W^W^W^W^jS^W^W^ W^ W^W^ W^ X^ X^ X^X^%X^5X^st_nameidx_setthis_link_sym != NULLerror serializing symtypetabsi == nvars(unnamed member)zlib deflate err: %sctf_write: error writingIIIII0IIIHIIIIIIIIIIIIPIhIhI IIIIIIIHI@IIII:IIIII;IIIIIctf_serialize?C?Unknown error"-Uk(JuCb{9`2\ 7NqCcAnFile is not in CTF or ELF format.BFD error.CTF dict version is too new for libctf.Ambiguous BFD target.Symbol table uses invalid entry size.Symbol table data buffer is not valid.String table data buffer is not valid.File data structure corruption detected.File does not contain CTF data.Buffer does not contain CTF data.Symbol table information is not available.The parent CTF dictionary is unavailable.Data model mismatch.File added to link too late.Failed to allocate (de)compression buffer.Failed to decompress CTF data.External string table is not available.String name offset is corrupt.Invalid type identifier.Type is not a struct or union.Type is not an enum.Type is not a struct, union, or enum.Type is not an integer, float, or enum.Type is not an array.Type does not reference another type.Buffer is too small to hold type name.No type found corresponding to name.Syntax error in type name.Symbol table entry or type is not a function.No function information available for function.Symbol table entry does not refer to a data object.No type information available for symbol.No label found corresponding to name.File does not contain any labels.Feature not supported.Enum element name not found.Member name not found.CTF container is read-only.CTF type is full (no more members allowed).CTF container is full.Duplicate member or variable name.Conflicting type is already defined.Attempt to roll back past a ctf_update.Failed to compress CTF data.Error creating CTF archive.Name not found in CTF archive.Overflow of type bitness or offset in slice.Unknown section number in dump.Section changed in middle of dump.Feature not yet implemented.Internal error: assertion failure.Type not representable in CTF.End of iteration.Wrong iteration function called.Iteration entity changed in mid-iterate.CTF header contains flags unknown to libctf.This feature needs a libctf with BFD support.Type is not a complete type..ctf.(unnamed)unnamed-CUopening CTF %s failediterating over data symbolsLD_NO_CTF_DEDUPnoutputs == 1deduplication failed for %soutputs[0] == fpdid->cid_sym.st_name != NULLsymbol name from linker: %s archive writinghash creationCTF archive buffer allocationfilepos resettingfilesize determinationseeking to endtempfile creationctf_dict reallocationname reallocationcannot create per-CU CTF archive for CU %s from input file %sshare-duplicated mode not yet implementedcannot link type %lx from input file %s, CU %s into output linkcannot link type %lx from input file %s, CU %s into output per-CU CTF archive member %s: %s: skippediteration error in deduplicating link input freeingerror in deduplicating CTF link input allocationcannot open main archive member in input file %s in the link: skipping: %scannot traverse archive in input file %s: link cannot continueiteration error counting deduplicating CTF link inputsInexpressible duplicate variable %s skipped. Variable %s in input file %s depends on a type %lx hidden due to conflicts: skipped. type %lx for variable %s in input file %s not found: skippediterating over function symbolstype %lx for symbol %s in input file %s not found: skippedsymbol %s in input file %s found conflicting even when trying in per-CU dict.iteration error creating empty CUsallocating CTF dedup atoms tabletoo many inputs in deduplicating link: %licannot open archive %s in CU-mapped CTF linkcannot add intermediate files to linkcannot create per-CU CTF archive for %sCU-mapped deduplication failed for %sCU-mapped deduplicating link type emission failed for %s/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/libctf/ctf-link.cCU-mapped deduplicating link variable emission failed for %siteration error in CU-mapped deduplicating linkdeduplicating link type emission failed for %sout of memory allocating link outputsdeduplicating link variable emission failed for %sdeduplicating link symbol emission failed for %ssymp->st_symidx <= fp->ctf_dynsymmaxerror iterating over shuffled symbolsreading archive from temporary filelinker input %s has CTF func info but uses an old, unreleased func info format: this func info section will be dropped.error checking for outdated inputscannot write archive in link: %s failureIndex section unsorted: sorting./data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/libctf/ctf-lookup.cLooking up type of object with symtab idx %lx (%s) in indexed symtypetab Symbol %lx (%s) is of type %x Looking up type of object with symtab idx %lx in writable dict symtypetab Looking up object type %lx in 1:1 dict symtypetab !sym.st_nameidx_setcannot sort function symidxcannot sort object symidx%s not found in idx fp->ctf_flags & LCTF_RDWRautoregister_Restrictctf_lookup_symbol_nameN]]]V^]]]]]L^M]]]]`^Q^]L^Z^ *ctf_set_base: CU name %s loaded %lu symtab entries detected invalid CTF kind: %x!(fp->ctf_flags & 0x0002)size == v2sizevbytes == v2bytesCTF dict %p is a child CTF dict %p is a parent %lu total types processed %u enum names hashed %u base type names hashed structenumctf_dict_close(%p) refcnt=%u PARENToverlapping CTF sectionszlib inflate err: %svbytes == 0ILP32LP64ctf_set_base: parent name %s (label %s) /data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/libctf/ctf-open.ccth->cth_stroff >= cth->cth_typeoff(size_t) t2p - (size_t) fp->ctf_buf == cth->cth_stroffinit_types(): unhandled CTF kind: %x%u struct names hashed (%d long) %u union names hashed (%d long) init_symtab (fp, fp->ctf_header, &fp->ctf_symtab) == 0ctf_bufopen: magic=0x%x version=%u ctf_bufopen: CTF version %d symsect not supportedctf_bufopen: invalid header flags: %xctf_bufopen: uncompressed size=%lu header offset exceeds CTF sizeCTF sections not properly alignedObject index section exists is neither empty nor the same length as the object section: %u versus %u bytesFunction index section exists is neither empty nor the same length as the function section: %u versus %u byteszlib inflate short: got %lu of %lu bytesvbytes == sizeof (ctf_array_t)vbytes == sizeof (ctf_slice_t)unhandled CTF kind in endianness conversion: %x@MJ0MJ0MJ@MJPMJPMJPMJPMJ MJ@MJ@MJ@MJ@MJ@MJMJC@C@rE@6C@E@6D@D@D@E@E@E@E@E@6C@ldJcJcJldJccJcJ/cJ/cJ cJldJldJldJldJldJcJctf_symsect_endiannessupgrade_types_v1init_typesflip_typesIJJJJJPJJNJ JJ0JJ@JJJJMJ JJ0JJ@JJJJMJ JJ0JJ@JJJJMJ.ctfu^{^(?)null string not found in strtab%lu bytes of strings in strtab. LIBCTF_DEBUGlibctf DEBUG: CTF debugging set to %i %s: %s (%s) ctf_version: client using version %d %s: %lu: libctf assertion failed: %stype %lx cycle detected(i->ctn_next == NULL)[%u](*) (struct %sunion %senum %s/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/libctf/ctf-types.c(dtd && (fp->ctf_flags & 0x0002)) || (!dtd && (!(fp->ctf_flags & 0x0002)))J0JJJJГJJhJJhJJJ(JHJϗJJJ`JҘJϗJJJHJNJJJJСJJJ`J@JJPJJ0JJJctf_enum_nextctf_member_next%p: attempt to realloc() string table with %lu active refs cannot close BFD: %scannot malloc symbol tableCTF section is NULLcannot read string tablecannot read symbol tablectf_bfdopen(): %s: %s(unknown file)cannot open BFD from %s: %sBFD format problem in %s: %s/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/libctf/ctf-open-bfd.csymhdr->sh_entsize == ((const struct elf_backend_data *) ((abfd)->xvec)->backend_data)->s->sizeof_symctf_bfdopen(): cannot malloc CTF section: %sctf_bfdopen_ctfsectctf_dict_open_internal(%s): opening ctf_dict_open_by_offset(%lu): opening ctf_arc_write(): cannot determine file position while writing to archivectf_arc_write(): cannot write CTF file to archivectf_arc_write(): cannot get current file position in archivectf_arc_write(): cannot write name table to archivectf_arc_write(): error writing named CTF to archivearc_mmap_writeout(): cannot sync after writing to %s: %sctf_arc_write(): cannot extend file while writingarc_mmap_munmap(): cannot unmap after writing to %s: %sWriting CTF archive with %lu files ctf_arc_write(): cannot create %sctf_arc_write(): cannot close after writing to archivectf_arc_bufopen(): cannot open CTFctf_arc_open(): cannot stat %sctf_arc_open(): cannot read in %sctf_arc_open(): %s: invalid magic numberctf_arc_open(): cannot open %sctf_arc_write(): cannot mmapheadersz is %lu J`JJJJJJJJJJJMarking %s as conflicted one_type != two_typetype_ids%i/%lx: unimplemented type parents[input_num] <= ninputstarget_idfunctionfunction argsfloat/inttypedefpointer or cvr-qualsliceforwardstructure/unioncannot walk conflicted typeerror doing memory allocationWalking: unimplemented type hashvalID %i/%lx has hash %s error hash caching00000000000000000000error getting array infoerror getting func type infoerror getting func arg typeerror: unknown type kinderror getting encodingerror tracking citerserror updating citerscannot intern hashscanning for ambiguous namesInput %i: %s Computing type hashes iteration failed: %stype_idconflictifying unshared typesTriggering emission. Populating struct members. u Out of memory marking %s as conflicted ctf_dynhash_elements (d->cd_output_mapping) > 0/data/jenkins/workspace/GNU-toolchain/arm-10/src/binutils-gdb/libctf/ctf-dedup.cLooked up type kind by nonexistent hash %s. Counting hash %s: kind %i: num_non_forwards is %i one_ninput < arg->ninputs && two_ninput < arg->ninputsiteration error populating the type mappingUsing synthetic forward for conflicted struct/union with hval %s Cross-TU conflicted struct: passing back forward, %lx Mapping %i/%lx to target %p (%s) cannot add synthetic forward for type %i/%lxLooking up %i/%lx, hash %s, in target Checking shared parent for target hval && td->cd_output_emission_hashes(target != output) && (target->ctf_flags & LCTF_CHILD)%i: Emitting type with hash %s from %s: determining target %i: Type %s in %i/%lx is conflicted: inserting into per-CU target. cannot create per-CU CTF archive for CU %s%s: lookup failure for type %lx%i: Emitting type with hash %s (%s), into target %i/%p %s (%i): cannot add enumeration value %s from input type %lx%i: Noting need to emit members of %p -> %p %s: unknown type kind for input type %lxout of memory tracking deduplicated global type IDsout of memory creating emission-tracking hashes%s (%i): while emitting deduplicated %s, error getting input type %lx%s (%i): while emitting deduplicated %s, error emitting target type from input type %lx%i: Inserted %s, %i/%lx -> %lx into emission hash for target %p (%s) looked up type kind by nonexistent hash %sout of memory tracking already-visited typeserror during func type info lookuperror doing func arg type lookupCTF dict corruption: unknown type kinderror during array info lookup%lu: Starting walk over type %s, %i/%lx (%p), from %s, kind %i Looking up ID %i/%lx in type hashes %s in input file %s at type ID %lxerror calling population function%s (%i): lookup failure for type %lx: flags %x%s (%i): %s: during type hashing, type %lx, kind %ierror doing array contents type hashingerror doing array index type hashingerror getting func return typeerror doing func arg type hashingerror doing referenced type hashingerror doing slice-referenced type hashingerror doing enum member iterationerror doing struct/union member type hashingerror doing struct/union member iteration%s (%i): out of memory during forwarding-stub hashing for type with GID %p%s (%i): %s: during type hashing for type %lx, kind %ierror finding commonest conflicting typemarking uncommon conflicting typeserror marking conflicting structs/unionsctf_dedup_init: cannot initialize: out of memoryiteration failure computing type hashesDetecting type name ambiguity Marking %p, with hash %s, conflicting: one of many non-forward GIDs for %s Marking %s, an uncommon hash for %s, conflicting error marking hashes as conflictingConflictifying unshared types iteration error propagating conflictednesscannot recurse over output mapping%s (%i): error emitting members for structure type %lxiteration failure emitting structure memberscannot populate type mappings for shared CTF dictcannot populate type mappings for per-CU CTF dictout of memory allocating link outputs array!cu_mapped || (cu_mapped && num_outputs == 1)JHJHJJJJJJJJJJJJ JJ J JJ`JJ J J J JJJJJJJJJJJ0JhJhJJxJJJJJJ{lN-^^sort_output_mapping0123456789abcdefOabs'Read'Write'Input'Output.Finalize.Adjust_elabb_ada_<%s>'Elab_Body_elabs'Elab_Spec_size'Size_alignment'Alignment_assign.":="OandOmodOnotOorOremOxorOeqOneOltOleOgtOgeOaddOsubtractOconcatOmultiplyOdivideOexpon**Demangling disabledgnu-v3javaJava style demanglinggnatGNAT style demanglingdlangDLANG style demanglingrustRust style demanglingԵ^^^^^ ^^^%^-^^Q3^4^8^9^=^>^B^C^F^G^K^L^P^MT^nNX^N\^rN`^^d^vNh^ oNm^^w^N^^^[^^N^L^^^@ȹ^^^Ѷ^ֶ^^^ ^^Automatic selection based on executableGNU (g++) V3 (Itanium C++ ABI) style demanglingKKKKKKKKKpKpKKpKpKpKpKpKpKpKpKpKpKpKpKKuKuKuKuKuKuKuKuKKpKpKpKpKpKKpKuKKKKKuKuKpKKKKpKpKpKKKKKKpKKKpKKKKpKpKpKKKKpKpKpKKuKKuKuKKKKK KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK:Kz9Kz9K;K8K8K7K7KL7K1KD1K0KT0K;K:K|;K/K5K5K4K$4K3K43K2K42KN=KN=KN=K@7K@7K@7K@7K@7K@7K@7K6K6K@7K@7K6K?=Kk-K2,K+K&*K+K)K)K )K(K(K'K=KX'KI'K.KK+K*Ko.Ko.K-K-K~.K+'K&K,&K%K<%K$KL$K=K#K\#K"K!K|!K@7K K@7K@7KNSK^>^^^,^yNG^MJ^N^N|^NYMM^V^Y^ c^M^f^i^ j]wMt^ Nw^z^|^nN^^^^ E N^ ^^T^M^^N^h]^^[^^^^^^Q^N^^^^^^^^e^vN:oNL^a^^SQ^^qN]^rN^^ NNY^N^hN^kNT^^^^^^^^U^N^^^tnN^N^|N^NC^N^eN^ oN^^ ^ oN^ oNM^^SM^^^uN ^#^g]oNq?^N4^7^ ^7^ ]A^ &^M^^Q^Y^Q^WQ^\^&^_GLOBAL_(anonymous namespace)[abi:{default arg#}::JArrayauto:VTT for construction vtable for -in-typeinfo for typeinfo name for typeinfo fn for non-virtual thunk to covariant return thunk to java Class for guard variable for TLS init function for TLS wrapper function for reference temporary #hidden alias for non-transaction clone for _Sat _Accum_Fractoperator__alignof__operator : new ulfalsetruejava resource decltype ({parm#global constructors keyed to global destructors keyed to {lambda()#{unnamed type# [clone >( restrict volatile const transaction_safe noexcept throw _Complex _Imaginary::* __vector((......) ... decltype(auto)decltype(nullptr)string literalstdstd::allocatorstd::basic_stringstd::stringstd::istreambasic_istreamstd::ostreambasic_ostreamstd::iostreambasic_iostreamboolbooleanlong double__float128unsigned charunsigned intunsignedunsigned longunsigned __int128unsigned shortvoidwchar_tunsigned long longdecimal32decimal64decimal128halfchar8_tchar16_tchar32_taSaaalignof awco_await azccconst_castcmco~dVdX[...]=dadelete[] dynamic_castdldelete .*dveO^=eo^fLfRflfrlSlioperator"" mImLmlmm--nanew[]nwoRoopLplpm->*ppps->qurM%=rSrcreinterpret_castsPsizeof...static_cast<=>sizeof sztwtemplate parameter object for std::basic_string, std::allocator >std::basic_istream >std::basic_ostream >std::basic_iostream >""%s: error: too many @-files encountered %s: error: @-file refers to a directory immutable shared inout\x\u\UuL__ctor__dtor~this__initZinitializer for __vtblZ__ClassZClassInfo for __postblitMFZthis(this)__InterfaceZInterface for __ModuleInfoZModuleInfo for NANNaNNINF-Inf\t\n\r\f\v[shared(const(immutable(inout(delegateTuple!(ubyteushortuintulongifloatidoubleirealcfloatcdoublecrealwchardcharucentextern(C) extern(Windows) extern(Pascal) extern(C++) extern(Objective-C) pure nothrow ref @property @trusted @safe @nogc return scope @live in out lazy _D_DmainD mainKPKPKKKKPKPKPKPKPKPKKhKKKKPKK8K|K|K|K|K|K|K|K|K|K|KhKhKhKhKhKhKhKKhKhKhKhKhKhKhKhKhKhKhKhK KhKhKhKhKPKhKhKhKhKhKhKhKhKhKhKhKhKhKKhKKK8KhKhKhKxKhKhKhKhKPKhKhKhKhKhKhKhKhKKHK0KKKK`K`K`K`K`K`K`K`K`K`K`K`K`K`K`K`K`K`KxKKKKKKKKKKKKKKKKK8KKKKKKKKKKKKKKKKKKKKhKPK8K KKKKKKKxK`KHK0KKKKKKKpK@KKKKKKKKKKKKKKKKK0KHKK`KKKKKKpKKK`KPKK0KKPWDCannot find prime bigger than %lu LLLLLLLLLLLL%I$ <;G]tB{= 0$~`2fCOmA oE!a  0P AA ?  &*"@ `0PHX? "A!)?cccccccccccccccccccccccccccccccccccccccccccccccc ccccccc cccccccccccccccccccccccccc cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccpex_get_status failedclosevforkdup2execvpexecv: error trying to exec '': waitp+LP+L%L%L+L%L%LP%L@%Lfor<\u{::{closureshim as mut const ; unsafe extern "fn( -> dyn + 17hi8f64f32u8isizeusizei32u32i128u128i16u16i64u64@?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~CBBBBQ00000000000000000000000000000000 %s%sout of memory allocating %lu bytes after a total of %lu bytes undocumented error #%dXXXXXXclosing pipeline input fileopen temporary filepipeline already completepipeopen temporary output fileopen error filewbrbcould not create temporary fileboth ERRNAME and PEX_STDERR_TO_PIPE specified.PEX_STDERR_TO_PIPE used in the middle of pipeline/tmpTMPDIRTMPTEMPCannot create temporary file in %s: %s /var/tmp/usr/tmp/tmpzLuLuL uL0pL 0pL0pL 0pL 0pL 0pL deflate 1.2.11 Copyright 1995-2017 Jean-loup Gailly and Mark Adler out of memoryinternal error: deflate stream corruptrequested length does not fit in intrequest does not fit in a size_tLȯLȯLȯLȯLȯLȯLȯLȯLȯLȯLȯLȯLȯLȯLȯLȯLȯLȯLȯLȯLȯLȯLȯLȯLȯLȯLLȯLȯLȯLȯLȯLȯLȯLȯLȯLȯLȯLLȯLLȯLȯLȯLȯLȯLȯLȯLȯLȯLȯLȯLȯLLȯLȯLȯL L`LȯL@LȯLȯLȯLȯLȯLȯLȯLȯLȯL0LȯLȯLȯLȯLPLpLincorrect header checkunknown compression methodinvalid window sizeunknown header flags setheader crc mismatchinvalid block typeinvalid stored block lengthsinvalid code lengths setinvalid bit length repeatinvalid literal/lengths setinvalid distances setinvalid literal/length codeinvalid distance codeinvalid distance too far backincorrect data checkincorrect length checktoo many length or distance symbolsinvalid code -- missing end-of-blockLLPL(LLPLLLXLLGL}LLLL0L@LLhLLLLL@LLHLL LL0LLA@!  @a`10  @`Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O `Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O      @@ !1Aa  0@`M #+3;CScs inflate 1.2.11 Copyright 1995-2017 Mark Adler _ _@_@__  0@`  0@`  (08@P`p        L,l\<|B"bR2r J*jZ:zF&fV6vN.n^>~A!aQ1q I)iY9yE%eU5u M-m]=}   S S  3 3  s s    K K  + +  k k     [ [  ; ;  { {     G G  ' '  g g     W W  7 7  w w     O O  / /  o o     _ _  ? ?     @ `P0pH(hX8xD$dT4tC#c      need dictionarystream endfile errorstream errordata errorinsufficient memorybuffer errorincompatible version4_D_]O_Z_g_r___]0w,aQ mjp5c飕d2yҗ+L |~-d jHqA}mQDžӃVlkdzbeO\lcc=  n;^iLA`rqgjm Zjz  ' }Dңhi]Wbgeq6lknv+ӉZzJgo߹ホCՎ`~ѡ8ROggW?K6H+ L J6`zA`Ugn1yiFafo%6hRw G "/&U;( Z+j\1е,[d&c윣ju m ?6grWJz+{8 Ғ |! ӆBhn[&wowGZpj;f\ eibkaElx TN³9a&g`MGiIwn>JjѮZf @;7SŞϲG0򽽊º0S$6к)WTg#.zfJah]+o*7 Z-A1b62S-+ldEw}ZVǖAOIъ OM~-QJ#SpxAaU׮.7׵Y-6]]wll?AԞZ͢$ Faw$eڪ]]FD(koipvk19Z* ,  m86F߲]qTp0ek*1u4yީ%8S1bSWĔՖk1**ykʬHpo].*F6fcTT"eM©g0&):{ϼkZ> 8$,52F*sw1pHkQ6Fzw]cN̵J #pAF]#l8?1(BOgT~yUbL8^#ܖTZ1ObbSyOIV~P-{b-R4٠~^eGnHl/Su6: #jT$+e?yHf'*b#ٽЧ ?&~?$pi;FBzw[keZ~7 Sv8H 3?r$7jnԄYFܨ |OQ;օ U d S - =G\ p&Gw)` /a߫i5&LsZ<#0zMzFM8,9; :R:(q-v,.7/pXqYs3r%w+OQvrtEux܉~OK }!b|tyBxʠz{.lD~m8onlk[wjR1h58ib?mcf+aQ`צedd"fig HINSKyuJcO NZLݘMFGN@E$DD2AsX@*IBCPhTg3U>uW ַVS:R|P~Q9ZS [fYX4])\ZEo^m/_5qϱ٥s\ۼqދ!K7 kfֶԁ-b3Πjp]$^'~*I@VW<âM˟ŏ{ tDCm-@wm.B+(铜>Td"ŀǼϭ~8y$owJ1}05_K^ iϏ은BI#ƈdX܁T̓cQ: rՆ⩗ fn|xK)o%ƭ/3vUuA?)C:|sĵ@͂ Ͳ;bIUeh"׻_HS1޼^Z4eg Wb27_k%8ם(ŊO}do׸Jj3wVcXWP0qB{߭gCru&op-?'Bs ưGz>2[Ȏg; i8P/ _Y=чe:ZO?(3wwXR @hQ+ğH*0"ZOWoI}@mNП5+#*'G| AH=XX?#1jvʬ`p^Y<L~i/{kHwâ hs)aLoD~Pf7VM'(@ﰤ ہg9x+n&;f?/X)T`D1 ߨMߒ.FgTp'Hq/L0UEc?kǃh6ry7]P\@TN%s7@'>$!AxUʰ\3;Y^U~PGl!;b F2ȂpԞ(Q_V:1X: n3 m:@/)IJNv"2x+ٗ Kx.HҥfAj^y9*O]#kM`~b_R 7zFh!1߈Vc0a"j6nS Nr)Υ{t*F8#vufz`rs"WG9^EMvc΍&DAdQy/4Aڱ&S֚E biLQ<6'5P..T&q]w4.6IE? v\[YI>U!lDa>Ԫ΋ϩ7~8A]&nv|oY yKiw\¹9~$ 66nQfq>,o,IӔ 渱{I .H>C-Yn馑gQz tafw0a, Qmpjc5dۈ2yܸو L+~|-dj qHA}mԵQӅlVdkbze\Ocl=c ;n Li^`Agqr<KG k5Blۻ֬@2lE\u ϫ=Y&0Q:Qa!V#Ϻ(_ ٲ $/o|XhLaf-=vAq *q3xɢ4 j m=-dlc\kkQlabe0bNl{WeP|b-I|LeMaX:QΣtԻ0JߥA=ؕפmCij4ngF`D-s3 L_ |Pq<'A  Wh% of a^)ɘИ"רY=. \;l  tҚG9w&sc d; mj>zjZ '}DhibW]egl6qnkv+zZgJoC`֣ѓ~8ORѻgWg?H6K +گ L6JAz``ègU1nFiyaf%oҠRh6 w G"U&/ź; (+Z\j1,ٞ[ޮd°c&ujm 6?rgWJz{+ 8Ҏվ | !Bhݳڃn&[owGwZjpf; \ebiaklE x NT9§g&a`IiGM>nwۮjJZ@ f7;𩼮S޻G0齽ʺŠS0$6TW)#gfz.aJ]h*o+ 7 Z-1A26b+-Sdl}wEVZOAي»IˬO ~M-JQS#xpaA.U7Y-۩6˚w]]llA?Z$㧲F waރ$Ųe]]DFok(vpi91k *Z  ,8mF6]pTqke0*1¶u4%y<8syjHA}X*ݹ1SbSW§ٖծ1k**kypH]oF*.f6TTcMe"¤0g)&Ůޟ:{kZ >8,$5*F21wsHpQkzF6c]wN̵ׄJ# pȄA#]F8l1?(gOB~TUyLbˁ8#^TO1ZbbySIOP~V{-b-4R^~Ge­lHnuS/:6# $Tj?e+y䏼Hf*'˼Ѝb# &??~p$iBF;[wzek~ZS 7H8v ?3$rj7nFY |OQ; U dؓS - \G=&pGw`)/ ai5&sL <:R=Pe6^X7}o5641W0ճ2k3$k%'1&-[#bML"'{ "!$*x(+)`F(> q-q,v.Ț/7pqXsYr3w%vQO+tru՛E~xKO} |b!ytxBz{l.m~Do8nkljw[h1Ri85bcm?a+f`Qeddf"giH IKSNJuyOcN LZMݥFĚGE@ND$A2D@XsBI*CThPU3gWu>V SR:P|Q~Z9[ SYfX]4\)^oEZ_/m5qs<\kg2z &J8 좞V`a/6i\lU,zB\uHƒ=&FW A+Ox]`غ7W>9q߳!7Kk ֩fض-bѠ3pj$]^Ĝ'*~@IWVÕ<ӂMʏş{ Dt͆mC-@mw+B.(>dT"ş~Ϝ8yo$w1J}50K_ ^ϋiBۉI#dXфTQc:r Р fΫnx|)Ko%3/uUv?A)ġ:C|sд@͉ ;IbeU"hH_S1ފZ^ھ4ge ȋbW72%k_ܝ8Ŵ(}OodJֿjw3XcVPW0Bq{gǧurCo&p-?О'sB zGɠ2>[ ;g/P8i_ Y=嗇e:ϏOZw3(?RXw@ Qh+HZ"0*WOIo@}m5N#+'*GA |􏒨HX=#?X1vjʨ`^pYL'!$UxAׯ3\Y;U^GP~b;!lڇF 2p(ԐQV_:X1: 3n :m@I)/NJ2"v+x xKH.jAf^O*9y]#Mk~`bю_޶ Rz7hFм!10cV"ajحn6 SrN){t*8Fv#fu`zrϮsɛW"G9E^vMcD&dA/yQA4S&ֿ EbLil!>aDƋΪ~7A8n&]|vYoᡱ Kyi׫w¡\~9$66 Qnf>q,o,ӹI 散 I{.C>HnY-Qg̰t zfa;\I* IJUJKHLLLLHz AA{0#x{w xI!IP"I"J"8Jp#XJ0HJHK0IPKIpK JKJKKKpKLKLaMpb MbPMpcMcMdM dN0dN@d0NPdHN`d`NpdxNdNdNdNdN`eOpeOe0OeHOfpOgOhO0hO`hOhPh(Ph@P iXPPipPpiPiPpjPБ0QHQ`QВxQQPQ`QQQ0 RPRhR R0RR@S0SpS0S@ST 0TPT`TTU@(U@UXUPpUUpU`VPV(WhWpWpW X8XpXPX Y@hYYZ@pZ`Z([h[[[ \P\p\\\8]h]]]]@]^ ^@`^^@_p`_x___`0``p` aXa@aXb bbb@(cP@cpXcxccPcc0 dXd@dddde8eP`eepePffPff 8gp hggg h@hXhxhhhiXii0i@iij(j0Xjjj0jpk(kPk%k`%k%k&l& l'pl@'l`'l'l(m)@m+m@-m- n0nNoNHoOo`OoOoOoPpQ@p@Rp`RpRpRpU0qUHqU`qPVq`VqVqVqVqVqWrW(rXhrPYr^@s0^XsP^psp^s^s`_s`(t0aXt@eteteu0gXu@hui0v kvkvmXw nwnw@o(xrxxrxptxy@yPyyy@zhz`0{P{x{`{{{|@|||Н| }p8}h}}@}Т~0@~`~~P~p~(@XpХ 0P0pH`x ؀@`p @p`x 0P؁ Щ8 `Ъ`؂ 8P h@Ь؃`p@`кpp@Hо@0؆ 0 H` p(@@pH`xp(pXx0p؋0XP0H@`Px08` ؎P0H`ȏ@ ` Ȑ x 80PhВ%&8`()*ȓ,0-H-x.ؔ.0// /8/P2h4@B`C E8F`GIIJ0KKK@Lؗ`LLpO PQ@_h `a`c`d8pff`gPhHph`hxiiКm @pPtЛuwXwxwxyzpz80{pP@P`ȞHP` ؟@H`x P@hР8`Pph@hPЧ0P(`@` x0ؤ( h0 @``hЦ(`x ȧ @p0ة@ PP@Ȫp00PhȫP0H `Px`Pp0H`x0ح `8@`pЮP0H`@ȯ00`Hpذ(hPp 8P@hp@@XpP(@p`ȴ( `ȵ0(@@`Pȶ0Hh0Phи  p Ⱥ 00Xpػ"H#$%%0%P%hp&@'''' 0)@)))* *80*PP*h`*p***ȿ****(*@+X+p0+@+P+`+p++++0+H+`,x0,`,,, -8p-P-h-----.0.P.(p.@.X.p/P//0p001 10p1H1` 2x23304`404H 5`56`6666@7HP899`::@@;h;<>0?CPD`D@EEF F8@FPPFhIpR8TY\p\^aHa`axab`bbbdP@ef0gPg h 0h8hX@j`jpjjj(k@kX kp0k@kPk`kpkkkk0kHk`kxk l@lPllll0`mHmhnop(sxtPuvv8 wXwx y {0P||||| ~X`~x~~P0HPx(@`0 P@p0`XP@` 0(@@p`x 0@X@pP`p 8МXx@` 08 @XPx0@P `8pPh@ 8PP`p0H`зx @@ Pл0 `xн``Hx`(H h0`@0`0(HPpp` ` `p(@x0@ `p0H`Hx0`` 80Ph XPP 0p(XpP(p !(!@"X0"pp""P#@$`$ )P)p`99990p:X:p;p;;<0<?X?0@`@@@A`A(B@@CXCpCDD EE8FPFpHH`I0IP@R S(TTT UPU@VZx [] __0b(ex ffg@g `tv0zP||P}xX 0x`  @ p   p0 б @    @`   ` h p  8 % ' pA@BCE pE8f hhhiPjxjopP@qhqqy {h|0P @H``P 0p`@PPХ@0`(ppP``xpпh`@H`p0xp P@Xpp0(XP  p( h p p !`!! "p"P"#p# #$`8$h$$P$$0(%X%x%% %P% %@&8&&&'P'Pp'''' (@X(p((H)p!)") #)$H*$*P%*((+(H+)`+p)+P*+*++,@+(,:, ;,<,p=- >@- p-u- u.u0.wx.0x.y.P./0H////0/`0``001 h1@1P1101`182@P2`h22`23@H333и44405H556`6P667(7 @7@X7p77777 7@8`808H8`8x88 8@8`889 989P9 h9@9`99999: (:@@:`X:p:::;X;;;0;@;8<@P<<<<=0=H=0`=P=>x>@>>@>`>>?@(?@?`x???@8@@@P@`A B hBBC0@CphCC@CpCC0HDD`DDDEP E 8E``E@EpEFxF@FFG8G`GG"G0$PHp6H8H@HXIKI@NIP JPPJSJaK`b(KcKdKPgLihLiLlLnHMn`MpoMoMpM`s0NtpN`uNvOw(OwHOyOyOpzOp{0P}P@QP(Q@QXQQ QHR0`RR0R@S`xSPST XTTpTT0T(U@UXUPpUpUUU@V V`pVVV W:hW;W 8X?hX`CX`DYD0Y0FxY JY KZLxZNZPH[@P[ T[W \X8\XP\ Xh\@X\X\pY\Y]0ZH]Z][]\]^8^^P^P_p^`^`^a8_a`_c_0d_pd_d`PeP`e``f`g0akambm0bobobpbpbpcqXc rcrcrcsc`sdPtHd`t`dptxdududv8ePxexexeze {f|@fp}fp~f~f@fg@gГgPg hP@h0hh0hiHi0xiPi`jp@jкjjj0j (kxk@kPk`lHl`lllmmn@n0hnPnpnnn0n`n`Hoxopo@ pPphpp`q`qpqr@Pr r0 r0pssXttu uu#u%@v /v0/v@/v/w/ w/8w/Pw0hw@0w`0w0w0w0w0x1x 10x01HxP1hx1x1xp2x3(y4@y4y7y9(z9@z:Xz0:pz@:zP:z:zP;{;p{={P>0|@?|?|B|E@}@F}0I}`I}J8~`M~M~N(`OhOP0P`PP@Q(Q@PRXRUU(PXx@^`HbcЂc c0c@c0PcH`c`pcxcc`ff( pxsȄ@uuXPvpvwЅPxxHyy0~(xȇ0H`0x `x@P8PhЦXPȋ8Ph @Ќ`xPxȏ0Hн``0pPȒ`p0Г p@PHppЕ 8Ph Ph Pȗ`p@PphИ 0H hؙ(@`0xȚ0hh0`8`؝@@@(0ȟp0( @`P@0phآ @X  أp  X 8`إ(@Xp 0pЦ p@`x(@ XPpة@P P !0"/`00ȫ0000(1@@1p`1p1@3`3(3P3444ȭ4558 6X607`77:;د;<p>@@p`@@0BChCCDE@pFpGIxIJ@JдJJJ0K L`MOPPUHpVVȷW@YXYp0ZP](@^x_bdк0f0ghi8noȼ@o`oo0oHo`px`pqqprr0rHr`rxsPst`twpxȿ{ |h0|P|`|p|}0ЂЃP h` @0X0p0@P `p 8Б pHx X0 ppP@8P  p@ 8000HpxP@Xp`@` `0pXp@p8`p@%&Hp/30P6P9:;P>?P?(?@?XIJL8PPQRYHpZ[p\ ]hP]^fHgijHnpors t`PtxptttttuPu pu8}p~p8 P@Ж@PHPp`x@Hx 00 pPPX8Ph00p 0X`(` x00PH``xp(@Pp0H`Px0`@h0 80P h0` p 0P0p P(@0x`PPh 0p00`Px`  0h0PP `P  0Pp @``P 8 X !`!!!("P ##$@+Xp+p ,,-@-``..018 303@4P4p4 485P7p8: ;p@DXJPLLPMNNOOXPPQb0d e@h0phHkln `op0qq r(sh`st`uu@vpwwx@xx x8xP yh z@}0 P}H `}` }  ~ ~ p  8 pP  p  `@ P `  P `   Ф( @  0 `@`PHp P`h P h 00@H0`0 @0XP`PXp zRx p*zRx $FJ w?;*3$"$DfANL FAlP=JnpYk]xD h L W I L$BBB B(A0A8G6Z 8C0A(B BBBI A<`ITmAJ0{Atլ!D4`AAD d AAD } AAA xAd A $8bDl H M K Q U4$BBA D(G0m(A ABB,\ YBDI | ABA ,PvBHD a ABN <BWB S(A0\(A BBB$AAD0AA$FAy J A,DHAC  ABA tD,H\BAA TABDxLED f ABB AADM , rBEG L ABA < AO\ t4$LAAD AAtXPH$@AG  DK <GBEA A(D@ (A ABBO $%<0%TH%l`%x%%%%<BGD A(J@ (A ABBC LTW'BBB B(A0H8J 8A0A(B BBBA @@HAPA:xA:A4A LA^AC D $lAGADG xAA,BAG  DC | CA CDQCDV4C PFG MAAT $, pD~EY J A O $T DD K I D D H H $| 0ELADD @AA< XE.BED A(D0 (D ABBD d HFeBBB E(A0A8DPI 8A0A(B BBBD  8A0A(B BBBC L PG $d HGACD AA G GHD D , XHAFD0\ AAG < HBDA Q ABE V ABG L4 HIBBJ E(D0A8Dp 8D0A(B BBBH  KP Lz xL8 LH L `MD^ N Od MBBE B(A0D8D@ 8A0A(B BBBD  8A0A(B BBBE < HPBED D(G@O (A ABBE T BBB D(A0s (A BBBG X (A BNBW  (A BBBN [ (A BBBA e (A BBBE  (A BBB[ A (A BBBK Q (A BBBW  (A BBBT < ]BGD D0  AABB S AAB$ ^AH  AA <^BGG [ ADH  ADH LD_@BBA A(GpJ (F ABBF d (F ABBI aG4aADG0Y AAI ^CAL(bBFD A(G0 (F ABBA D(C ABB\4bgBEE E(D0D8G@Q 8A0A(B BBBE I8D0J(B BHBDbxBEE E(D0A8D@S8A0A(B BBBLbBEE E(D0A8D@p 8A0A(B BBBA L,@cBBB B(A0D8Ge 8A0A(B BBBE d|d\BBB E(A0D8Dp 8A0A(B BBBJ A8A0A(B BBB\eBEB E(D0A8D` 8A0A(B BBBK v8A0A(B BBBTDfBEJ A(D0G@N 0A(A BBBE U0A(A BBB<fAAG [ FAE D CAH \AD,@g?AJG T AAH L PgBHB G(D0J (A BBBH \ (A BBBE \g`LthBED D(G@n (A ABBF H (D JBBF hHe C L(iBEB E(I0D8D@ 8D0A(B BBBJ 44kYAAG O FAA  FAD <lmBLE D(D0 (A BBBF ,mADG  AAC  n n  nAm$Hn;g<<pnBJC k AHE A MBH |n <n?BBA D(D0# (D ABBA LoTBHE E(D0D8Dj 8A0A(B BBBD \$~BEG E(G0D8G@r 8A0A(B BBBG [8H0A(B BBBL(&BOB H(A0A8D@ 8A0A(B BBBA LUBBE B(L0C8D@ 8D0A(B BBBG <DTAh G c,txAHG p AAF dX}BHE E(D0A8F@q 8A0A(B BBBF  8F0A(B BBBP 4 p_BAC G ABH AADLDBGJ E(A0A8Dp  8D0A(B BBBA 4؊BDA Dl  AABE |`|BEB E(D0A8G@ 8A0A(B BBBH T 8A0A(B BBBB [ 8D0A(B BBBX |L`BBB B(A0G8Ja 8A0A(B BBBK  8A0A(B BBBC K 8A0A(B BBBK ,pLBDD zAB<BBB A(D0 (A BBBD ,<@HF B u K H A D,lA\ C  I p H )NMED4 WAID s DAJ DAA$$HDAID sAALpb,dȖlADD O FAA 4BQH u AIF dAI,`AI h AE DC2ؗOD J,<DBID E(G0L (A ABBC $DADD xAA$DADD xAAH N D^BBB A(A0G@O 0A(A BBBJ L<BBA D(D0 (D ABBE Y (D ABBA |0BBE E(D0A8D@o 8A0A(B BBBH n 8A0A(B BBBH O 8G0A(B BHBK  @aDK A <,ADG H AAJ Y AAE \AA<lBHD D(G0{ (A ABBF ,ADD { AAJ L)BEB B(A0A8DPp 8A0A(B BBBE ,!LDBEJ E(D0D8D@ 8A0A(B BBBF 8Av JD A <P,BVB A(C0\ (A BBBG ,,@AD Q AA A\*DeL|ЬBBE B(D0A8G`m 8A0A(B BBBA 40TBED I(D0u(A ABB X9 $4 x>AID mAA\ 0$t >AID mAA, ?BDH mABD бBEE E(D0H8D@T8A0A(B BBB$!>AID mAA$Da K IT5h&l5p& 5h& 5`& 5X& 5P& 5H& 5@& 68& ,60& D6(& \6 & t6& 6&6&6 & 6&6 &7(&70&478&L7@&d7H&|7P& 7H&0DS I O7X&D ^ F 7'7'8x'8p'48h'L8p'"d8'!|8'8'$8'MADI |AA<8'BDA F ABH h ABM 49((BFF O ABH AAOL9(d9(|9(9(9(9(9($9(Ae J } C : )4:()L:0)FDLd:h) BBH B(A0A8GV 8A0A(B BBBA :(5G$:5AGA:@6;H6tG B 4;7G$T;(8XALGCA<|;`8BBJ A(D0j (A BBBD 4;8BFD ] ABD YABl;H9BBB D(D0D@7 0A(A BBBG Q 0A(A BBBG k 0A(A BBBE Ld<;"BEB B(A0A8GP 8C0A(B BBBH d<h?~BBE E(D0D8DP 8A0A(B BBBJ D 8C0A(B BBBA ,=@AAG`K AAJ L= Cd=C |=C $=CiADD ]AA<=PCmACG m AAF N AAH DIA$=CcAG n AI ,$>CjADG D AFI <T>DpBEH D(D0G`I0A(A BBBL>8D(BBB B(A0A8DP 8A0A(B BBBA L>EBOB B(A0A8D@k 8F0A(B BBBA d4?E;BBE B(D0D8Dw 8A0A(B BBBA ` 8A0A(B BBBM ?G0\?G4BEA D(G0g (A ABBH @ (A ABBB o (A ABBA <@H)BGC  ABA O ADA dT@KDBOB B(A0I8IP` 8A0A(B BBBA  8A0A(B BBBA @pN3TZ@N,@NUBAD t ABB \ANMBEE A(D0G@ 0A(A BBBG  0F(A BBBH |APAI\ K ,APQADG i CAG AQ>HO I ]A0Q>HO I ] BPQ>HO I ],BpQ9IZ E LBQQIm J lBQQIp G <BR\BMB A(A0r (A BBBD dB0SBBB B(A0D8D` 8C0A(B BBBE  8F0A(B BBBA 44CUwAG CD ~ CG kCLlCVZBBB B(A0C8D 8C0A(B BBBA CZ CZ dCZ^BBA D(Dpe (A ABBH  (F ABBH  (C ABBD TD]<lD]QBIA  HBC P DBE $D^K} H lDDX_nEI A(F0E(A ABBB0,EbWAAG A AAD LE@beA^lEbtAX G Eb5mEcoEpcLE8dBBB E(D0D8J 8A0A(B BBBJ $FeDyHKHHC IP$IA$DI AG d AC <lIBED H(K0 (A ABBD DI`AFD  HAK @ AAN DKA$IؔwA U t D J0GV [ dDy|K KKXK`CKK@A$K AG d AC <$LBED H(K0 (A ABBD DdLhAFD  HAK @ AAN DKA$LwA U t D L8GV [ dL BGB A(A0 (A BBBE A (A BBBA c (A BBBE \MDX,tMȲADD E AAH \MhBHD G(DPr (A ABBG b (D ABBE P (C ABBA NN7Dr4N(KLN`dNhC|NNHA$N AG d AC <NBED H(K0 (A ABBD DOpAFD  HAK @ AAN DKA$dOwA U t D O@GV [ dO BGB A(A0 (A BBBE A (A BBBA c (A BBBE PDX,,PADD E AAH \\PpBHD G(DPr (A ABBG b (D ABBE P (C ABBA PP7DrP0K<QhBBB A(C0(A BBELDQBBB H(A0A8Gj 8A0A(B BBBA \QgBEE D(A0D@g 0C(A BBBJ  0H(A BBBH LQ BBB B(A0A8Jr 8A0A(B BBBH 4DRxERAA JY  AABE L|RSBBB B(A0A8GP 8C0A(B BBBH RA G RPSXH4$SLAA SABL \SozZ4tSnAAG v CAE K CAI 4S0AAG c AAB i AFH LS BBE E(A0A8Gj 8A0A(B BBBE L4TBBE B(A0D8DP 8A0A(B BBBA LT(BEB B(A0A8F 8A0A(B BBBH dTaBDB B(A0A8G@ 8A0A(B BBBB A 8C0A(B BBBC |AZ E P H Edf(;BBB B(D0D8DPL 8A0A(B BBBF ] 8D0A(B BBBF LLgPg>AT K qdhH?tBBB B(A0D8I`N 8C0A(B BBBH d 8G0A(B HBBE |h`AhXAhPAhHA$hA/AAG aCA,iABCA x ABG <4ixBBEE A(D0B (A BBBF <tiCoBEB A(D0K (A BEBE i8Ci0C$i(CNAAD BDA$ jPCA} B z A 44jCBDA a ABE KAI,ljPDiAAD Y AAA jD3jDhD u G V A djEKBBE D(A0 (A BBBF ^ (A BBBA U (A EBBK ,DU G R F A$Lxj8AG N AI VA4txj<ADD Q DAA VDAxjGF }xkxkxk yk$ykAGD@ AAB txAVdxBBB B(A0A8D@| 8A0A(B BBBD N 8A0A(B BEEJ 4VADG n AAD SAA\L BDE D(C0c (A BBBD y (A NBBD Y (A BBDA dĚ^ BBB E(D0D8G 8A0A(B BBBJ  8C0A(B BBBH ,D\txph`ԛXPH@48L0Ld({BEB D(A0V (A BBBE A(A BBDDXBDF l ABE I ABD LABDHu C $Dt H q G P<DH/BED D(Dp} (A ABBJ 8y`T A ,ABID kAEԝxd 4 ,LBDD rAB<|PBJA D(D0 (A ABBA ,AJb AB Q CD dLBBB B(D0A8DP 8F0A(B BBBA 8D0A(K BBB,TxABFD oAD4An A CAZ,ܟiALJPB ADA L 1BBB B(A0A8Dp 8A0A(B BBBH D\/BBB A(A0I@Z 0C(A BBBK ,AAD@G AAA LԠ(BBB E(A0A8GM 8A0A(B BBBE L$BEE B(D0A8Dh 8A0A(B BBBG t,BDA d ABB dԡBEE E(A0F8GPB 8A0A(B BBBE  8C0A(B BBBH <T ,l6AGJ ADJ |GT E [4`GADG ` CAH HAA$xKAO k AD IA\LEB E(A0A8Dx8A0A(B BBBHd|`4BBB B(A0A8D 8C0A(B BBBH q 8A0A(B BBBE 80 ,(AAD`G AAA LDBFB B(A0A8G 8A0A(B BBBK < AAG0 AAG P AAF |CA4ԤAAG0w AAF P AAF  @,$}DAi DF ACT89l`X4BDA z DBI EAB0 A^ 0AZ,0 <D(*BHH N(J@ (A ABBA ,BDD R ABA DA} B CdԦKBBB B(A0D8G 8A0A(B BBBE ^ 8A0A(B BBBH L<,BEB E(A0D8DP 8A0A(B BBBK *TU-TXDUBCD c AGL A ABD AAB{Dv\0BBB A(D0D: 0C(A BBBE d 0C(A BBBA <| BEA J~  AABD  CAB, AG  AH D CA d !BEE B(I0A8GPx 8A0A(B BBBG  8C0A(B BBBH T l \Gu D [d BBB B(A0A8Gc 8C0A(B BBBA  8F0A(B BBBA X `V<$JSC k AHD IF dB|P4x>JĪSD0Kܪ (  )$8 $<0F[ G U C $dtAG O FC <ZBA A(D0 (A ABBC $̫a G H O A % WAp G ^, 'DV F F4L0AID  AAB D FAA <BBA F(G0U (C ABBA 4Ĭ8ADG s AAG \ CAH $=AAG mAA<uD0T H T<\ BED D(G (A ABBF ,p!ADG0J GAJ ̭0"5X" dP"jBBB B(A0A8G` 8C0A(B BBBD ` 8F0A(B BBBA dX$#|p$AQdp$EBBB B(D0C8Gp 8A0A(B BBEB I 8A0A(B BBBE 4X%AAD N CAH i FAH ,<%_AFG w FAD ,l'AID  AAH ()Dd(DX̯(DX(:Du( AZ,(AG  AD lC,Lp)AG  AE gC|0*,8*iBGD  AGG İx/AQLx/kBBB B(A0D8Gd 8C0A(B BBBD 44>YADG N GAN dCAl>>AQ$>rAIG TGA̱?;8?K4p?mBAD b ABD wAD4?LL?1d@,L| @uBIB E(A0C8FPW 8D0A(B BBBH ,̲PC4BDD aAG`C2C,,C2<DCBEE D(A0v(A BBB(D0DuER̳EHl [4F[BED A(G0@(A ABB4@FADG0s AAG b AAD TF;aYlFMFb H \Gi]rUpGQ4ĴGAN V DG n DF D FF L HBBA D(D0N (C ABBE  (F ABBI ,LIoBDD G ADJ $|IyA` G y G (J6At|ĵHJBBB E(A0A8De 8A0A(B BBBH  8A0A(B BBBH  8A0A(B BBBF TDhRBEE D(D0DP@ 0D(A BBBE `0D(A BBBTRnBBB A(D0D@ 0A(A BBBB l 0C(A BBBJ TD T)U$(T>D\ H DHT+W$\`TDo E Z F d(UGBBB B(A0A8G\ 8A0A(B BBBA  8A0A(B BBBI ,YADG0q AAA dpYBHB E(D0A8FP 8A0A(B BBBH  8A0A(B BBBG tZBDD A(D0N (A ABBE  (F ABBA e (A ABBE T (G ABEM L\BDA A(G0J (A ABBA o (D ABBH LL]1BBB B(A0A8D` 8D0A(B BBBH L_BBB B(A0A8Fp 8A0A(B BBBJ pb%4biADG h HAK SHA<<byBBA D(G0D (D ABBA |c%dc BEB B(A0A8GT 8A0A(B BBBF u 8F0A(B BBBD \oBBB D(A0DPP 0A(A BBBI @ 0F(A BBBC d\qBDB B(D0A8D`f 8A0A(B BBBE  8A0A(B BBBK 4ĻtBAA GP  FABG LpvKIG E(D0C8G@V8A0A(B BBB4LvBJM O(N0~(A ABBd8wk BDB B(A0A8DS 8A0A(B BBBC  8F0A(B BBBE D@BAD G0b  AABD H  AABD ,4UBGD N AEG dd BBB B(A0A8DU 8A0A(B BBBA  8F0A(B BBBF \̽BBE D(A0D` 0D(A BBBF  0A(A EBBF L, BBB B(A0A8J_ 8A0A(B BBBC $|pAG V AA DBDA G0y  AABE p  AABD $`|AFG@hADd_BBB D(A0\ (A BBDH  (A BBGC r (A BGEG 4|\AAG d LFI LFAL؝CBBB B(A0A8DW 8A0A(B BBBA $أA{ D Z F <,@BCD H ABD  ABI 4lBAA N ADI NABd8UBBE E(A0D8G`q 8G0A(B HBBO " 8D0A(B BBBA , 0oBDA  ABG <pBg WT.\NlLȨQBDB E(A0A8GK 8A0A(B BBBE <جBDC x ABD Q ADA LX BGA A(G0N (A ABBJ  (A ABBE $d(2ADG aCAL@}BBB E(D0C8Dp 8A0A(B BBBH ,pBGD _ ABI L ЯPBBB B(D0A8GG 8A0A(B BBBK L\BBB B(D0A8J[ 8A0A(B BBBD LPBBE B(A0A8Gu 8A0A(B BBBA d.BGB B(A0D8GPN 8A0A(B BBBG  8A0A(B BBBF LdBBB B(A0A8Gb 8C0A(B BBBA L(3BBG G(D0W (F ABBH @(A ABELh3BEB B(A0A8DPQ 8A0A(B BBBD <T4EBCA K ABA  AGA 5WL06R!BBB B(A0A8G^ 8A0A(B BBBA L@WNBBD A(D@P (A ABBE  (A ABBA L@XA B lX <XACG i CAH D FAE mAD$XYVADI EAA4YAAG | FAD sFAL$Y$BBB B(A0A8D 8A0A(B BBBE Lt^BBB B(A0A8GPN 8A0A(B BBBG _Z_U`KL P`BEB E(A0A8GI 8A0A(B BBBF |\gLBB B(A0A8G@N8A0A(B BBBE@  8D0A(B BBBN |h|LBB B(A0A8G@N8A0A(B BBBE@ 8D0A(B BBBH d\iBEB B(A0A8DY 8C0A(B BBBJ ` 8F0A(B BBBA dp BBB E(A0A8DT 8C0A(B BBBA  8D0A(B EBBK <,@zBAA K ABF  ABK Ll |BBB B(D0C8Di 8F0A(B BBBE <BEB D(D0 (A BBBG ,=BDD oAB,DHBDD zAB,t؀7BDD aAB,KBDG rAB,5BDD gAB,7BDD aAB<4(BED D(G0 (A ABBB <tOBBD D(G0 (A ABBH LBBB B(A0A8G 8A0A(B BBBB L(BBB B(A0D8G 8D0A(B BBBJ ,TBDD AB<8?BBD D(G0 (A ABBC <8<BBD D(G0!(A ABBL8iBBB F(A0A8Gq 8A0A(B BBBH |TXBEB B(A0D8Gp 8A0A(B BBBG & 8C0A(B BBBF N 8F0A(B BBBC LȑBBB B(D0D8Gpe 8A0A(B BBBJ <$BBD D(G0 (A ABBF 4dBED D(G0(A ABBDPnIJD G@s  FABF D CABLx~BFB B(D0D8J 8F0A(B BBBF L4BJB B(A0A8Jm 8A0A(B BBBE LxBBB B(D0D8JN 8A0A(B BBBF  ؤ4<LBAD Z ABD _ FEF LBJB B(A0A8Jm 8A0A(B BBBE <0BDA D(JR (A ABBC LBEB B(A0A8D` 8A0A(B BBBI Ll@_BBB E(D0A8D`( 8G0A(B BBBE <PTBBD A(D0 (D ABBE pZ$;ADoFL<аBBA A(G0 (A ABBD D (C ABBD PH\kD*BBB B(A0A80A(B BBB,ptAFG G DAF ,ADL c AAJ 4L@A~ A X H X H X H X H C,سTBAD i ADK RP<HBEE D(D0b (A BBBA DT,BAA m ABD i AGG H DEG ,DBAD yAB,GBAD |AB4wBDA \ ABJ AADL4NBBB E(A0I8I@ 8E0A(B BBBE F<@BED C(D0d (C ABBA LXBEB E(D0D8G@T 8C0A(B BBBC d,BBE B(A0A8DPS 8A0A(B BBBB K 8D0A(B BBBH <HuBEG D(G0N (D ABBH |BDJ H(D0D8G 8A0A(B BBBG D 8C0A(B BBBH O8A0A(B BBB<T(iBJJ D(D0C(A BBBLXBAD T AGE A ABL J ADI rABL9BBB E(D0D8J 8A0A(B BBBJ L4BEE D(G0\ (A BLEI A(A BBD\BEB E(D0D8DP 8F0A(B BBBH {8A0A(B BBBd BBB E(D0D8DP 8A0A(B BBBB ^ 8A0A(B BBBH ,L@BDD AB,|BDD AB, 5BDD gAB,07BDD aAB, @nBDD `AB,<pBDD ZAB,lnBDD `AB,pBDD ZAB@AT@H?p.44BKD  CBG [CBl $(QAAG CCA\`BBB A(D0t (A BBBJ A (A BBDF q (A BBBH  L$BBD A(D0L (A ABBA d (C ABBD LtBBB B(A0D8Dp 8D0A(B BBBB hD v F L#BEB B(A0A8DP 8A0A(B BBBD 4L#dBL|BEB B(D0A8DPd 8F0A(B BBBI ,/A D V A D A lBBB D(D0G@ 0A(A BBBD M 0A(A BBBK  0A(A BBBI LlBBB B(D0C8GP~ 8D0A(B BBBG LgBBE B(D0D8LX 8A0A(B BBBG D xBBI D(D0Gp 0D(A BBBH T#Ll BBB B(A0A8G` 8D0A(B BBBG <ADD z AAK h DAS DCA4 ADG X GAL \CAd4MBGB E(D0D8Dh 8F0A(B BBBE l 8C0A(B BBBH pFAu J E $WAo H S E LBBB B(D0D8DP 8A0A(B BBBA LpYdT|/AmdkBEB B(D0A8DI 8A0A(B BBBI  8C0A(B BBBA cLpBBA D(D0V (A ABED t (C ABBD lw,XAD0e AE pAL1BBE B(A0A8GM 8A0A(B BBBE dBBBB B(D0A8Dp] 8A0A(B BBBH U 8A0A(B BBBA lGGDh D xDGBAD G0g  FABB   FABB PI_IL@K\BGE B(A0A8GQ 8A0A(B BBBD lPf"4hgAAD Q DAD Z DAA 4gAAD [ DAJ Z DAA $hoaD p AA ,hADL b AAA L i(Afl0i+AiD@iAAD  HAG X AAA ] HAA Li5BBB E(A0A8D@ 8A0A(B BBBA L$j BBB B(D0A8J 8A0A(B BBBD dtt BBB B(A0D8G( 8A0A(B BBBJ & 8F0A(B BBBK ~AV~ ~,PDDX+L\pBEE E(D0D8GV 8A0A(B BBBH GD@B,AAG F AAG L `RBEE D(D0B (A BBBC  (D BEEA \pDDtxADG  CAB H FAA  FAE 4gAAG [ DAG mDA(d BBB E(D0D8G 8A0A(B BBBK D8C0A(B BBBtȄ<BBA D(Gz (A ABBH ^ (A ABBD \ (A ABBF D (F ABBI O (C ABBI DBBB A(D0Gr 0D(A BBBA ,DUBDI AEDt(BAD E ABA  DBL iABDpBAD f AEE  DBL L ABQ |BBB B(A0D8G@X 8D0A(B BBBG d 8I0A(B BBBJ T 8D0A(B BBBG LYBBE E(A0A8G`! 8D0A(B BBBK DAp G K<ȞBED D(J (A ABBF <48BED D(J (A ABBF $tLAG t AC С D [ء D [;D v D [ D [ D [, D [D( D [\0 D [t8 D [@ D [H D [P D [X D [` D [h D [p D [4x D [L D [d D [| D [ D [ D [ D [ D [ D [ D [$Ȣ D [<Т D [Tآ D [l D [ D [ D [ D [ D [ D [ D [t7 BED I(OP (A ABBA D (G ABHJ A (A ABBI a (A ABBI <BKF A(A0F (A BBBF DBAD @ ANJ o ABN r AEH :dU$,QA[ D Y G PTH<l@BBD A(D0j (D ABBH 9,^AG JDAs hL pBBE E(A0A8Dk 8A0A(B BBBG ,\%A~ A E K F J  8LȳBBB B(D0A8D 8A0A(B BBBF \$bBB A(A0D@ 0A(A BBBH `H@dBBB B(D0A8G 8A0A(B BBBG \ 8C0A(B BBBH PlAJ E [ $H;<pTxlQȼQ4eADG f FAG bAADBAD u AGD p ADC _AD4Hij\T)Ag4t BDA J0  AABC LBEA D(D0V (C ABBB D(F ABBL BBE E(D0D8DP 8A0A(B BBBD 4LpWADG w AAK DAALBBB E(A0A8G8A0A(B BBBdHmBEB B(A0A8D 8A0A(B BBBA s 8F0A(B BBBF L<BBB B(A0L8D@v8A0A(B BBBLoBBB B(D0A8D^ 8A0A(B BBBG L wBBE E(D0C8DP 8A0A(B BBBG \,PBBB A(A0 (A BBGE I (A BBGK K(A BBB$@AG  AG $;AAG hDA$XAG f AA dC48nBGA F(D0P(D ABB<p!T!LlBEE D(D0K (A BBBJ V(A BBBDBAD J AGG  AGK Z ABC $HtAf I p H ,ZD:\A K |Tl f(d `$;ADG lAA|BBE E(A0D8G`c 8A0A(B BBBI & 8C0A(B BBBF D 8F0A(B BBBE TX/DjlpMydBBB B(A0D8DPH 8A0A(B BBBE U 8C0A(B BBBA ,@BFD M ABD ,qBAA n AEH <LBBB A(A0 (A BBBJ "A`$ADG AA8^AT K dxBBE E(D0D8GpK 8A0A(B BBBF  8A0A(B BBGE d\HBEE B(D0D8Dp 8A0A(B BBBJ T 8F0A(B BBBA L3BEB E(D0D8J! 8A0A(B BBBE LBBA A(G0 (F ABBE  (C ABBD dd8BBB B(A0A8J 8A0A(B BBBA D 8D0A(B BBBE <MBBD A(G0 (A ABBD T BBB D(A0GPs 0A(A BBBC D 0F(A BBBG ,dHBAD P ABF ,rAAG g AAF d8EBBB B(A0D8GW 8F0A(B BBBA F 8C0A(B BBBC L, BBB B(D0A8G 8A0A(B BBBK |pt u[ T0$BJB F(D0G` 0D(A BBBH \ 0C(A BBBB <@BBE A(A0b (A BBBD <4uBBB A(A0P (A BBBA dtH5BBB E(A0D8D@ 8F0A(B BBBJ d 8C0A(B BBBH  d(BBB B(A0D8DPU 8A0A(B BBBH  8C0A(B BBBA \\BBE A(A0DpP 0A(A BBBI " 0A(A BBBA 0!Ih!e eH !D !-BAD G0t  AABJ g  AABE LT"BBB E(D0A8Dpb 8D0A(B BBBE <(%*BGB A(D0 (A BBBJ 4&BDD T ADE l ABI d&}BBB B(D0D8GPg 8C0A(B BBBF  8F0A(B BBBA '"'Ds I vD(@AAG  AAJ D CAH ~ DDA x)D  G $8*rd<*BBB B(A0A8D`N 8C0A(B BBBH  8F0A(B BBBF d8+XBBE B(A0A8D`^ 8A0A(B BBBG \ 8F0A(B BBBE t 0-dBFB E(A0A8GP 8F0A(B BBBC i 8A0A(B BEDH D8F0A(B BBB(.  .>H.'D bL`./BBB B(D0A8G@d 8A0A(B BBBF L@/!BJB E(D0F8DPX 8D0A(B BBBJ Ll 0:BBB E(D0A8G 8A0A(B BBBC j0j_AQ F FlkBEE D(D0D`U 0C(A BBBI  0C(A BBBG D 0H(A BBBE Ld 8lBBB B(A0A8GK 8A0A(B BBBJ 4 vBED D(D0\(A ABB< BBE D(A0 (A BBBA L, BBB B(A0D8GV 8A0A(B BBBD L| (BBE A(A0O (A BBBG (A BBB, AG  AA  AA  RAP :Qh,< {BDD mAB,l 0dAID { AAE  p* 2 = ؕ  (L, BBB B(A0D8Gpc 8A0A(B BBBG | 0UL xBBB E(G0A8D 8A0A(B BBBE  D<  BBA D(D0z (D ABBH L< 3BBB E(D0A8Gb 8A0A(B BBBE L /BEB B(A0A8Gm 8A0A(B BBBE  `@4  [p M d T XKX|,`7BBB B(D0D8G 8A0A(B BBBE D 8D0A(B BBBG  8A0A(B BBEG , BDD D0 AABdVBBB B(K0A8N 8C0A(B BBBA @8F0A(B BBB4DADG W FAF Z FAG $|PwADD kAADBBEB A(A0D*0A(A BBBdBBE B(A0A8D 8A0A(B BBBF  8C0A(B BBBA ,T8AFD  AAA dBBB B(A0A8GP  8A0A(B BBBK f 8A0A(B BBBH dPBBE B(A0A8D`~ 8A0A(B BBBG  8C0A(B BBBD dTtBBB E(A0A8D`y 8A0A(B BBBD  8F0A(B BBBH 41ADG M CAC DGALBBB E(A0C8DT 8C0A(B BBBE LDHBBB B(D0A8D`s 8A0A(B BBBB  ,XBAD W ABG D$BBB A(D0D@W 0D(A BBBG lp)4BEA A(G0e(D GBB4BEA A(G0e(D GBBL8 BMF D(D0 (D ABBA \ (C ABBD D/L\BBA D(D0 (A ABBA g (F ABBI `;nD[ A 4BAA U ABD GAB,PBID lAB\LBBB B(A0A8D@ 8A0A(B BBBA O8C0A(B BBB$@8ACG jAALXBFB B(D0A8Dpc 8A0A(B BBBF $r,<`5BGA cABlpfd\<jBHB D(D0} (A BBBH <rBHE A(C0J (A BBBD L8BEE E(D0D8D@O 8A0A(B BBBJ LTxgBBB E(A0A8DPN 8A0A(B BBBG dBBB B(A0A8GK 8A0A(B BBBJ  8A0A(B BBBE d  3BEB B(A0F8DPV 8A0A(B BBBJ  8C0A(B BBBA ,t BDA g CBE L ,BBE H(D0A8DP8D0A(B BBBx w,  sAG l AK D CI $<0 tA^ A K E Cd AUD BFA D0p  AABG d  HABI ,PoAEG f AAK ,AEG o AAB , D5\ FAD<|PBED A(D0 (A ABBK ,BFA v ABF 4`wBDA n AFD qADTTBEJ A(I0D@Q 0A(A BBBH 0A(A BBBL@BBB B(A0D8D@  8A0A(B BBBJ b4,ADG(r AAH W FAJ dL4|ZFA `ABL LBEB A(A0k (A BBDA A(A BBG,BDD L AED 42LSUdHL4|lAFG H AAH w AFB LBBB B(A0D8Jc 8A0A(B BBBD <8,BCA Q ABF K AGE LDx-BEE D(D0m (A BBDF A(A BBG-WAT K vL.BEB B(A0A8Db 8A0A(B BBBC 46ADD0t FAD \CA<7OD@ D F\@7fDt7SAAG` AAB o AFJ B FAG ,8/YAD0 AAC L:BBB B(D0D8G`U 8A0A(B BBBJ L< <BBB B(A0A8Dz 8A0A(B BBBN $ @KDb J  A L (L\BBB B(D0A8Dp 8D0A(B BBBE !8P!@P4!8P'LL!PPBHH B(D0D8G@e 8A0A(B BBBF L!RBBB B(A0D8GR 8A0A(B BBBH d!PVjBEB E(D0D8D 8A0A(B BBBH  8A0A(B BBBA T"XX l"PX 4"HXVBEA C(D0y(D ABB"pXDVd"xXBBB B(D0D8GP_ 8A0A(B BBBH ` 8C0A(B BBBD <# Z 4T#ZBJC G0B  AABD |#ZBBE E(I0D8DP 8A0A(B BBBH  8F0A(B BBBC t 8C0A(B BBBH t $\BBA A(D0 (D ABBC m (A ABBE _ (C ABBA  (D ABBK ,$h^LAID l DAA $$^XAG ^ AI dC$^DM$^DM %^ $%^Z<%_BT%H_&Ll%`_BBB B(A0A8D` 8A0A(B BBBA ,%bzADG R AAH \%`bBEB D(A0^ (A BBBE A (A BBDA A(A BBBDL&bFJ Z AE _F[ H FB y FA ,&cdBJD f ABG &Xc <&Pc Dw E { E K E K E K E K E Kd' d BBE B(D0D8G` 8A0A(B BBBH e 8D0A(B BBBF L'HmBBB B(A0A8J 8A0A(B BBBD d'p\BEB E(A0A8GP  8C0A(B BBBH D 8F0A(B BBBA L<(qlBEE B(D0A8Dpo 8A0A(B BBBH 4(sWBKD t ABH AADL(s BBB B(A0D8G 8A0A(B BBBB L)x~ BEB B(A0A8Gv 8A0A(B BBBD |d)8BBB E(A0D8D 8A0A(B BBBF V 8A0A(B BBBH b 8C0A(B BBBB |)BBB E(A0D8Gp 8A0A(B BBBA  8F0A(B BBBE D8C0A(B BBBdd*BEE E(D0D8G`Q 8A0A(B BBBE y 8C0A(B BBBK \*pBBB D(A0 (A BBBD  (A BBBA M(A BBGL,+BBA A(D`L (C ABBB  (D ABBC |+Kd+ȦBBB B(A0A8D@ 8A0A(B BBBA s 8A0A(B BBBE L+PBEE E(D0D8D` 8A0A(B BBBH dL,JBBB B(A0A8G 8A0A(B BBBB D 8C0A(B BBBH d,I BBE B(A0D8Db 8A0A(B BBBH  8D0A(B BBBC -p4-h$L-`?AIG0kAAt-x@Qn- -DU--9AX G X-DU.DU,.DUD.ȸDX\.иDXt.ظDX.DX. .AV,.FBDH i ABF  /$$/AGCLL/|BBE B(D0C8D@ 8D0A(B BBBB /D/BDD Ji  AABA e  CABC L/PBBE E(A0D8Jr 8C0A(B BBBE LL0BBB B(A0A8JU 8A0A(B BBBE 000#RL0 01RL,1BED A(D0q (C ABBA D(F ABDd|1@BBE E(A0D8G@{ 8A0A(B BBBA b 8C0A(B BBBB L1xBDD Q AEG [ AEG K AEG aGEl42H=BBE A(D0D@` 0A(A BBBF e 0C(A BBBA  0F(A BBBG T2BAA G0`  AABA g  AABE \  CABF 2rL3BJB B(A0D8Im 8C0A(B BBBI Ld3BTE G(D0H8HV 8A0A(B BBBJ <38BOI A(D(C ABBL3BBB E(D0A8GPc 8C0A(B BBBJ D4X&L\4piBEE E(A0A8Gp 8A0A(B BBBA 4BBE E(D0A8Ip 8C0A(B BBBF  8A0A(B BBBJ y 8C0A(B BBBA  8A0A(B BBBA D55D p<\5BBD A(G`F (A ABBD <5BBA D(D0{ (A ABBB 5]Ds I 505dP6X-OP,6p-OPD6ADf F O4d6AAG I FAG ^AD6w6x,6sAG u AB D CI d6@(BBB E(D0A8DP 8A0A(B BBBE { 8C0A(B BBBA 4d7tAIG X AAE ` DAK L7PBBH E(A0D8G` 8A0A(B BBBE d7BEB B(A0A8Df 8C0A(B BBBA U 8F0A(B BBBH dT8XqBBB B(A0A8G`Z 8C0A(B BBBI  8A0A(B BBBF d8pBEE A(D0j (A BBBF  (A BBIA  (A BBEA $9,DgD9(\9 t999999=: L: BEB B(A0A8Jq 8A0A(B BBBF ,l:`cAG ^ AI D CI L:B BBB B(A0D8JU 8A0A(B BBBJ L:fBBB B(D0A8D 8C0A(B BBBH L<;BBB E(D0D8D`k 8G0A(B BBBE <; BFA M ABG a AGG ;[,;:BDA eGB,<AAG  AAD <D<BEE I(D0R (A BBBF 4<8}BDC G0G  AABE D<BAA G@K  AABF N  FABI =d|=@:BBB B(D0D8GE 8A0A(B BBBJ ? 8F0A(B BBBB a 8C0A(B BBBC L=BGH E(I0A8D 8A0A(B BBBJ L=pBLE H(D0C8D 8C0A(B BBBA d<>BBB B(A0A8D 8A0A(B BBBD X 8C0A(B BBBD >h>p3dN>/<>BED D(J0s (A ABBF d,?PBBB B(A0H8GPb 8D0A(B BBBI  8D0A(B BBBG <?x<BBE D(A0U (A EBBK ?x ?pC,@TADJ i AAF $4@BADG lDAL\@YBOB E(A0A8J e 8A0A(B BBBE @3dN@8 @0|@8BEB B(A0A8D` 8C0A(B BBBF  8A0A(B BBBH N8A0A(B BBBtA.dI<ABAA G0  DABF N DAElAptBGB A(D0G@x 0D(A BBBF D 0H(A BEBJ N 0D(A BEBD l L>L>L>DT$L>/AAD aDCM>'$4M>/AAD aDC\M>tM>DNLM>BBE E(D0D8D@s 8A0A(B BBBI DM@?lBDD n ABE H ABE VAD$Nh?*D0eAW H E|ț5BBB B(A0A8DT 8A0A(B BBBA v 8F0A(B BBBA O 8F0A(B BBBI DtBGB B(A0A8 0A(B BBBF L@BBB B(A0A8Gp 8A0A(B BBBA  Х A E D,BNB B(A0A8 0A(B BBBD LtBBB A(A0x (A BBBI ((A BBBvh, @(BDG  ABK <@T8TlgBBE D(C0 (A BBBA  (A BBBE (LBBE E(A0A8G+ 8A0A(B BBBD ,D SD\t tȽBQE E(A0A8 0A(B BBEA  0A(B BBEA ^ 0A(R FIEA Ld|FG<BDA J  DDBA G DAB $<TlDBHB B(A0A8I 0A(B BBBF ZD8eBEE E(H0H8M@l8A0A(B BBB,`V@V@8 #@ DMNNo@@H@  P @@ ox@ooT@N#@#@$@$@&$@6$@F$@V$@f$@v$@$@$@$@$@$@$@$@$@%@%@&%@6%@F%@V%@f%@v%@%@%@%@%@%@%@%@%@&@&@&&@6&@F&@V&@f&@v&@&@&@&@&@&@&@&@&@'@'@&'@6'@F'@V'@f'@v'@'@'@'@'@'@'@'@'@(@(@&(@6(@F(@V(@f(@v(@(@(@(@(@(@(@(@(@)@)@&)@6)@F)@V)@f)@v)@)@)@)@)@)@)@)@)@*@*@&*@6*@F*@V*@f*@v*@*@*@*@*@*@*@*@*@+@+@&+@6+@F+@V+@f+@v+@+@+@+@+@+@jhm6[0nm8N' PAAРA@AAPA`AAApAA0AAA0A`.Ap.A.AUNU@WX@Z@p]rGBAABFB ABCBAABB+B*}NQ@B>BpBB*B=B/B-B B@B`BBQdBAABcB AB`BAA_BHBTT]B[BpBBGBZBLBJB B@B`BBQЀBAABB AB|BAA{BeBNXQ@zBxBpBBdB`wBiBgB B@B`BBQBAABpB ABBAABЁB~[TB@BpBB`B BpBB B@B`BBQ6[([+h[#[#&^+o[+w[#@~[CCx)]])]^~)]^*]_mN `@*] a)]Pap*]Pb]b]b ^cEO^#deEO^@e@fEO^fgEO^ghpLL@!L{]GCC: (GNU) 4.8.5 20150623 (Red Hat 4.8.5-44)8@T@t@@H@@T@x@ @ @ #@ #@ +@DM`M 5_~_NNNNOP T@i +@'@l0Hl;8lS0lj@Mp@M.z`Mn ~MPMnMLMP P}@I`lplPlXl u,@jkP# ,@!2 }@Hhl\ p=AS >Ap`n @A AA)PmHmXTXnlm!m2l>lKlY_ ADZXoӮ`opoo8oTho|Hoy@oPoGpN `T Ax Awxo A N  p$ , 5 NO  p^ pr p   0AX  A U  A 8p 0p!@p!U'!0! 0BcB!pP! Bj`! Bpk! B;|! B(! B! B0!p!p(!pp!hp!xp!p!p!p"p "p"`p#"," B;" 0BUI" BMW"rg"rv" BA"r" 0BQ" B>" B>" B>" PB9" BQ6 BQ# PB\#qL] B'# pBw/# BZ;#NPT# q@a#`q@n#q@{#N # PB # `B _ pB^#r<r#U#r#r$ ND$r#$/$ 0'B58$M$ *Bn$ *BC$ +B$ -B$ /B $s$sVP$V$ s% =B2%Q`B% >Bk%su% @Bw%r % BB% CB %s% PGBK& EB& FB:& 0EBG& FBg& GB>&& GBn$ GBC& HB& JB' LB $`s$hs`XP$@X$s)' ZB2%T`B% [Bk%xsK' ]Bw%@s % _Bh' `B %ps% PdBK& bB& cB:& 0bB' cB' dB>'' dBn$ dBC' eB( gB( iB $s$sYP$Y$s7( `wB2%YX`B% xBk%sM( @zBw%s % {B^( |B %s% BK& ~B& B:& ~By( B( ЀB7(( `Bn$ BC( ЁB( B( pB $ t$(t`[P$@[$@t) B2%[`B% @Bk%8t%) Bw%t % B7) B %0t% НBK& B& B:& BS) pBi) B7)) B) B) Bg) B)t)t*t * pBE*0u+* `B ?*[Y*8ug* BSv* B* B* B*pt*ht*t*xt +`t"+[-+8+ pBfQ+ B_+ B k+ B+ BL+ B + @B+Hu+@u+ @B+[+[,p]),f4, CA<,hu%Xu `uF,]Z, Cv,Pux],T[,@[, C ,[, [ -[ '-[A-[[-c- (Cp- (C~- (C- (C- `)C/- )C- `*C- 0+Co-- 1Cg-u- 02Cr .xu-u. 2Cf". 3C(/.[@;. p5C/S.`[m. 6C*y.pu.x[ . 7Cw. P8CW. 8C\. 9C7. P9C. 9C./ :CA"/ ;C;/[U/ ;Ciu/`[/[/[// HCC/ @IC/0[d/]0[(0[B0[pX ZCD\0c0l0[ 0[ 0[,0u00 kC#0 `lC 00[1 pmC.1[&H1 oCqn1 0qC1 tC1[1`[!1[!1[2p[!2u(C2P[]2 Cf2o2 C |2 C72 @C 2 `C2 pC"2 C2 C2 C2 CJ2 ТCA 3 C#3 C>3`[P3 Ci3ux3u3[@3 @C3 @C*3 @C13 C3`[ 44 C43 \ 44 C@4' \ Z4 `C]f4 C4@ \4` \4 \4 \(4 \J4\(55 C!5)];5)]U5)]a5h5 C*v5 +]Pz55 @C{ C5/]p5`.]`50.]5/]55 C6 C%6 C;6 C R6 C^6 Cy6 C6 0CL6 CA66 C6 C46 C6 @Ci7p7]7 C157 C/O7 C]7 Ck7ux7 `D77  D7 D7 0 D7  D7 D8 D $8  D668C];8 PD|I8uV8 DGh8 DKv8 pD8 D48 D8 D 8 D8 D8  D 8 !D9 9 "D9 "D}9 @#D959 #DS9 #D68`I]^9 $Dt9 0$D9 $D 9 $D9 %D c %D*9v9E]9 P&D9 &DD: @'DK : +D,*: ,D*F: ,D-b: -DUv: -D{:u: .D:E]: 1D: 1D:: 2D!; 3D0; 3D\A;wN; P4D68M]l;x; 9D; 9DV; 9D; 0:DB; :D4; :D>< ;DJ/< P;DSI< ;Dk< ;D < ;D)<  PKD=> KDu/> LDN> MDm> ND5> PD> ND > ODj> pQD#? QD/? QDED SDN? SD_a? UD? pXD?w? WD? WD ? VD)@ WD9@ 0WDb@ PWD:@ `YD@ YDi@ ^D@ _DkA]#AȄ] 3A`] JA]H]A`]sA nDYA nDA nDA oDrA oD; B]%B]@=B oDKYB] mB]B pDmB pDLB pD1B qD,B PqDuBp]C tD4=C uD2ZC PuD,tC uD2C uDC `vDC vDuC xDR D `xDHD xD[7D yDZD yD;qD yDMD @zDD zDQD 0{DD {DE]"E }DoFE ~Dy[E ~D6sE ~DE `DE @DnE DE]+F ЉD)5F]'OF D>nF @D+F]%F pDA-]F `DGFp]F D#G]=G @DZG DzG @DG D1G PDG0]G D%H @DiH Dy3H 0D%HH `D eH]PH]PH`]0H ]0H DI DI D2I DLI]fI pDk I]I`]@I DI DUI D I]J]"3J DTJ D rJ0]J DJ @DJ D|JP]J D_ K D\$K @DCEK ZE.VK DoK DK DK DUK DoK `DBK D.L D,L DQKL `DgL D L @D2L D}L DL DP M0]$M BE7MP]QM GElM \EM]M vEM wEM](M]!NP]N ])9N]-SN] mN PE N`]N@] N@]N ]N]N`]0O]HCO@]iO ]xO]`O`]HO]HP]`7P`]fP@]`P]xP]P]HQ]x>Q]bQ]Q]0Q`]HQ0]Q]R]$R]0KR]HwRR]R EOR]R ER pE?R E<S `E1Sd J<Td Jgd J8dd 8Jd 8J"d 8J@d 9Jd 9Jtd `:Je^e^Pe^7e EJNe[e fJqe fJ<e `fJe fJe fJe `hJe hJ:e hJIffPw)fDw6fBf |JGRf^lf^fff 0JEf ^ff PJf pJ f Jg J,g PJAg PJX^g`w8egpgk^{gg^@g@^`gg^@tgg^@ggggg Kg PKg KSh @K3h K?h pK8Mh Kbh pKjxh K-h Kh KVh pKh 0Kh KGh Kh Ki PK1i @K 2i PKbCi LzVieini{wi{ii  pL  Lwi Li^i L+6iiii @LGi Lj PL'j2jn`_@n_>nn L o Lo L o L(o @L7o_tCo@ _tOo@_x[o _xeo Lvoo Lxo _ o _ o` _ o_o _xo@_o_Loooo `Mpp P Mp _ p MG.p P M=p}GpIaUpNapNrpN{pNp 5_pPp Ep pMp `A&q H,(q AF2q 0FSq Lcq P~@xwqiq @Mq @Bq@~q RJ#qb0q p'Bor MrD~"r7r J?Kr PCvrr Jr Azr `CSr _Cr Lgr Jr C s C>(s CJs K_s hCs Aqss @Es @vs @Js bL,s CL E t PAt "CQ9t P K9Vt Ls$@_t C{t /Alt J(t eJ t pHt tK<t 0Ft A t _Cu H)u`U(7u H Pu GYcu `C!u @jC7u@Zu )Fu 0aCu L,u Hv `G;v F?v CLv `oIhv}v gL+v I$vbv G v P&Gvw }w .A)0w CJw G `w(^mw "Lw Hw @Jcw Lw @Ksw 3Cw РCw 0_Cx lJ.#x AC/xBx pKELx L*[xlox PBx \AV `iL xx P@x Kx Ax 3Axy A%y RJ4y HRygy}wyy H/A FTy Ay 1F#y Ay 0I y Cz xEE-z @Ct?z `EU[z L7kz Lzz `C>z ZII z (Bz@iz ОG  T{l0{ yJB{ C^ f{ I]{{ p`C{ I { \A3{ PG_{ pA"{ 1FB{ I5| `F 0| CS| EA8^|q| @SJ#| `^C| E| `Fg| C| G }} J'} C/D} gCf} @H} A} A0} oI} G}@W~ 00C~ @F.~ iJB~h[~ ?J n~ PC~ L~ C~ F5~ pK~ .F~ @G:  H3+ CE< XIJS RA[w$} A 0A> L` rJr L J= 0Aq AA It C  G-Y/ 0CH\ 0sCy `Iq A E] {Cր C @ C& Ce& @*A8jC A V Ho Jt JD [C|ǁ 0G _C ]" HWI `CD` Al @E| P C+ rFԂ H  C) G G Ca PF+ @ @B ^F߃ `B) PB  J? @L(Hi;R @Fs J@^E HFg oI#΄ B  Ah ``C M  A]# pA5 CZ@wh 0%J ptK<l PHƅ `A܅ I3 F M гC0 B[>} MK Cn @bCG P"J4 0L(pÆ %Fn܆ F .Ch  QI+ p CAEX  K1tq J LR 0JF Gub 0A FT TL 0C C. IC? eJO 0cCZ @G w^H} CF P`C B8 A ]ֈ G >C0 LA[M UJ^ A e C( 0dC3/] LF A Ή `C  `C  L(i Gr0 I.A X@xI LgQ ЦHoh Iy A" C `PA> C @G ׊ EZ B OJ Ax. J ? H_ "Lp J X@$j PcC J0 L+ GLЋ pC `C A1 fCX* @HJ ZC[ B P#J GXό yJ݌ cL "J L0~ +C) _0; FAU`ii ` J"z J I Mō @E pZFM ]FF* Jy9 @%L pI3Z Jo `G  МJ A/Ď J%Ԏ kC7 @CT  @C  ГC8 ACC ASf Hf cC3 PI- eJ PPAʏ}ݏ A' PL$ PL&  0J! C~+lD A ` @ J*jDMs `C psJ PC Jɐ Bv lJz @J ! L* JA*; G@W Enq PaC+|} J /CB wI֑ `JT AJ  E Ei2H Bem G9 pC @IfO^Ȓ KEڒ I C PwJ  @% J' eCQ: `IR bA^j Lw GQ 0A A Cx ``Fkܓ &HD G l' @3 `ITB JP pKb XF#} G  LG 0 C;”]ؔ p)G JQ 9 GH 0L>Y Ep ZAA uJ7 L p.A Gؕ I A A  @C  0J$ A3A^H H)l $F5 P@% L; C Ζ I.ږ `TJ`} B  PiC#$ IJk2 pdCQ= @G]` pSJVw OAT E SJ Bٗ L H( B4 0@Y$: pHrV Afoz G F K H2ژ M G  _C A # C; HtP AZ $F7t I  Gd /J @I 0Lg<Ι I ݙ PEG; pC-i L# jC9 @(FM UL:V @2Fu Ft P0A H/Śښ TC} A `K  rFw8US A]l @Jv &Cto B&ϛ pI  I  `J_  `Bq> p%FpXk -C3u A h} C  M pLxɜ GJw K\ޜ J L= Bo YL# pCXB piLP @%`^m p_FY @L pI pCҝ C# G  I E3 L(D0TMj[ HOu A  pCy J_ oI͞ @A  Hl  kJe3  JF @C k A? K C 'B P Csџ tI C A& CM GUb K[p Li| @L B 0+A)^  0 MԠ 0&G H3 0eCQF cLU I c 0CI pUL' &F p{Cҡ ЭLء #L6 A @F C" @fCJ( J<6 PAP Ig Bw TL/ތ p@ F 0JZϢ `J VL. !A qJ 0OJu }3 GO C;_ Cu bC @ Jr I &BtC^ң E  ОEV @C31 `AE KAS J!n oFc 0`F/ @ @Ȥ @B L7 G7  `A( J';Z^XH @Aat K pC I PKQ E 0Hw A) HjB 4AD[ +G A @L @&BeȦ IY @W'֦} _C C$ @! p H9 sK3R Ad pLy PAi_ ЩK# JՂȧ @gCb @H  B(< KKG @A U `Hj| F* @G A~̨ I C` `F3 uJE SA-X CYv ХG PlJ& J` zCWʩ C;ܩ F L pCK# F(@ 03Gi_ 0jJt ` G 0E HЪ _C٪ WJJ `{I SC PI) pBa L$ G^D @aLS @Ag C z PH5 C G ͫ C A SJ F K3 JWA'@U %G8q @1Cuz I @kJ TH~Ȭ I׬ ZCs I EK CA% I 6 QA>J JVk @J {@U L0 G  CЭ L_ح J E `L)HTb#j) I< HC\ SLxj Jx pC PM pL  AK ?J @Ϯ Aݮpi _C A  H4 "LC G Y J/n @w A G! PG _ɯ DG@ иC K H1 PL&) EJ \Ae ^F  SJ `.A PA9 @rΰ 0A ИHr  @qH75/] @ J/- G$I F i KGr `\Cl F H'ϱ G  `%Jl  bC L  L . ЋA8 p CS E$۽`~{  eJ  J=˲ 0@ز @%J qI  @C* p5A: PSClI C] !hiq K bChM C"ij G ݳ ~Ii} CV& ,C1E CL_ @{C { pJ8U Ht `@˴޴ @M BT I[]/ BQA aC>M @Bxb 1F{ PA0 KN cC% G  DA JC`M WC @) A2 `L7C~Th_e C<u rJ LW `uJ M G ɶ C(} H GD& HB 0oJV `J4hz A pC PWJW ʷ _C pI PB  G  CC 0CV L^] K3g 0Csyx C @pF B 'F? C(͸߸ 0 H= pG> pG55I `Ca B C G ҹ 0A  PC zCT C * ALd LT? JTO PRA3\hl C iJ Bf Cͺ iI p/Ab fA @ #A|( A0 H\T Li| P&Fp YC_ MĻ fC ϻ PJ G  0ZAI% $Lj3 0L7@0]K IB c I~ C] Aü iC oH@ J$  H/ EF  JVj P~I& 0pH  Ck Fͽ C PH p'F  ~@b p J/ IyE CVU Am @A C J OL)ƾ 0eLԾ PB 0K1 bC  0L= pE $ PHJ MeZs 0`C "B J iJ 0@H/ʿ E pJ@^ ^ CT& BG> _Cg{ pC TJW 0C9<] $L RAtl}p. CK Ac zHB PF I5 pC p G @G  .AW0 SL]C pMZQ Jf L7w Bn PHfX p J' L  PE J `]# G"C `A[ 0Lt F ^ PG %G @] E p$L&4 LC< ZAOL P{H` pCv At| A K CA PC  aC IA 0H A AC! `\A8 1AOLb 0$C @L @\ C P3C^`mp iJ p} Lr {J0 ` C(G /ADb %BWul} C B H  C$ A= V@/ FI PCN\ #Fux A L @AG zJ %Fn K^ ЅI C= `AG FRe SJ#t BT A  E QA? C @[X]% RA58 nC^ C| !G A<[@ JO FG SI, @XFI pTJWX Jm H pH B eJ2 L @L G/ H8 JD/ GX J9f H~u C _FT dJ `C sJ УA ~J  pyC6 `BG `C h Lb| PA Aӓh@T J  PLa H DA!  0J"  qJ<2 `CB Cb E~~ @H K 0,L  p/F# `LX Cu$o: ET xJf}s CEq L Jw @A L pH `1A20(i< ТAeS Fn A C; G0 sH `G  @% C)=T Ct^ `B pC< I@@  E 0CG xJ pCa L& %CPF G ` tHV B @G  pK @C fCJj L G' `G  tK 1 pL> ~Cp _ Ht `tIr IB RJ PQA IJR 0AF ЃLG I/ AM pE= Cf@S Cn pH G@ @ L eC" J EH L` J G 3 +CC [AT Hgq @G } pL5 H L  G  ]AQ& C9 ]C1L ЙCp C} K I- J PF C `L  M C 0KT.^; pKH J'` LEv @% C  C:] J E A pB E+ H PhLDY B*s `K 4CM PF+ PC @JM @J2 `E_ I< p_C# p L5 @%F FAJe B oCs H5 0C pC  BD 0Fo4 *FI P^C] _Cu `G  C J C } 06A^ bC YF  @@% `Jn#7 Ia pBt{ P"B \C `zC_ @@U p C{ p-Ci VL( I  J_ A ЎJ+ J?A JO pBp L E7 psI PI kJ< `4C  Ip C' G B F^ xCq GC6 I HS 0A  `J bC< TL @M  hC[& pI6 pA ?V C2`t p%C VL2^@ H(o `J L6 `A* LB TJM @EKg `B PHd @L J `C4 "H НJ @'F. J* PoI >Qlo EN &H B3 PLG A  L| J7 pF/UN VFxd 0kCO| 6F 0J JA 2G cC% L F; @Cx#+ H? B V ULke ICH ~ @J< `{C 1A E 0YF pA& @CA $G%a Iq LT `C cC  C p H Gu) PCD `Cw[ `Bs AU L!@}  @hL  aC8 H* PJ} pL  C @sF1? JR C2i| `G J  L7 E RJ E5  BJ L$#]: `EZ `NJm J~ lC` M pJe C `5F/ H: `pC|* @HD 0^FWc Jv A< ``L" C] 0KR 0A  F@ (FX A;ev J I, F__P H Hjhi @@( @BU K ` p@( Co `bA9 C L @A A! H G _| `G  iJ4( PA.5 A0K I Z J s(i @JT L A  G  09F A  иL C: FH^ @SCo 0rI= K @H BA C A@! H6 pJ0? A^M yHw^ 0HFs pcC~ \C pA I L7 `C cC PA> rJ+ SC!= _H TC \ CLx @#F G  @J9b C8 J C4 CG 0VLL% 0GB C2\ +CNl 0I PIK `C @J  `C^ `1J qJ `Cc JO  Jl3 J;D PLS CLf C | ,C @C/ C 7] C GI =C 0A" PLG0 0AF= PCX 0C n`] C C  G  zER! E4 C Z `Jdu K8 I `C LA @ &Fi M+ PM5 BI dCQT G j JAx dL@] @ 0L J 0 C- G} J iC 0[A% Lh1 HvO XC_ Jt `L J C# G: 0A_ PCL  0zEW& CF GA,Y pF"{ F\ YLT @B #@ I ULH I A  E7. J@S B=f C`{ `A `I G H `"HU `Ci ЄLWI]* C< pKYO @Fo] J.  C  _A A  bL J P4J? @K* UC- Kf9 CXu K< 0!G Й@ kCi `CM J`* HB `Cg @u Bb C G Am xH CA OI^ `HX K# ~ A A iIi 0HR B7 [CQ H{o P_C5/] .CK 0tK; E J, C 5AD) `(FQldlex-wrapper.cyy_get_previous_stateyy_startyy_c_buf_pyy_last_accepting_stateyy_last_accepting_cposyy_ecyy_acceptyy_baseyy_chkyy_defyy_metayy_nxtyy_load_buffer_stateyy_buffer_stackyy_buffer_stack_topyy_n_charsyy_hold_charlex_warn_invalidinclude_stack_ptrfile_name_stackyy_fatal_erroryyensure_buffer_stackyy_buffer_stack_maxyy_did_buffer_switch_on_eofyy_init_bufferyy_get_next_buffercommentyy_init__PRETTY_FUNCTION__.12016vers_node_nestinginclude_stacklineno_stacksysrooted_stackstate_stack_pstate_stackldexp.cset_sym_sectionsdefinedness_newfuncarith_result_section.isra.1.part.2exp_print_tokentable.11834is_sym_value.isra.8.constprop.14definedness_tableexp_fold_tree_1exp_value_foldelflink.cbfd_elf_link_mark_dynamic_symbolelf_sort_symbolelf_sort_elf_symbolext32l_r_offsetext32b_r_offsetext64l_r_offsetext64b_r_offsetcompare_link_orderelf_gc_allocate_got_offsetsmerge_sections_remove_hookinit_reloc_cookieon_needed_list_bfd_elf_link_hide_versioned_symbolfini_reloc_cookie_for_sectionelf_link_adjust_relocs__PRETTY_FUNCTION__.15701compute_bucket_countelf_bucketself_create_symbufbfd_elf_match_symbols_in_sectionself_sym_name_compare_bfd_elf_link_renumber_dynsymself_link_renumber_local_hash_table_dynsymself_link_renumber_hash_table_dynsymself_collect_hash_codeslocal_hash_newfuncget_dynamic_reloc_section_nameelf_merge_st_other.isra.15elf_gnu_hash_process_symidxelf_gc_sweep_symbolelf_link_sort_cmp1elf_link_sort_cmp2elf_gc_propagate_vtable_entries_usedelf_gc_mark_debug_section_bfd_elf_link_create_dynstrtab.isra.26elf_link_read_relocs_from_section.part.30check_dynsym.isra.31.part.32elf_link_convert_common_type__PRETTY_FUNCTION__.15941resolve_section_bfd_elf_link_find_version_dependencies_bfd_elf_link_size_reloc_sectionelf_collect_gnu_hash_codeself_adjust_dynstr_offsetself_final_link_free.isra.45_bfd_elf_link_sec_merge_symself_link_output_symstrtabresolve_symbol.isra.48eval_symbolbfd_elf_link_record_dynamic_symbol.part.50_bfd_elf_merge_symbol_bfd_elf_fix_symbol_flags_bfd_elf_link_assign_sym_version_bfd_elf_adjust_dynamic_symbol_bfd_elf_export_symbolelf_link_check_versioned_symbol.isra.39.part.40__PRETTY_FUNCTION__.15930elf_link_output_extsym__PRETTY_FUNCTION__.15970elf_gc_smash_unused_vtentry_relocsinit_reloc_cookie_for_section__PRETTY_FUNCTION__.14366__PRETTY_FUNCTION__.14952__PRETTY_FUNCTION__.15612__PRETTY_FUNCTION__.15594elf_link_input_bfd__PRETTY_FUNCTION__.16101__PRETTY_FUNCTION__.16234__PRETTY_FUNCTION__.16394elf_flags_to_namesctf-link.cctf_link_sort_inputsctf_link_input_closectf_link_add_ctf_internalempty_link_type_mappingctf_link_one_input_archive_memberctf_link_one_typectf_link_one_variablectf_create_per_cuctf_change_parent_namectf_link_deduplicating_variablesctf_link_deduplicating_close_inputsctf_link_deduplicating_open_inputsctf_link_intern_extern_stringctf_accumulate_archive_namesctf_link_lazy_open.part.2ctf_link_one_input_archivecheck_sym.isra.4ctf_link_deduplicating_count_inputsctf_link_deduplicating_one_symtypetab.constprop.7ctf-open.cget_kind_v1get_root_v1get_vlen_v1get_kind_v2get_root_v2get_vlen_v2get_ctt_size_v1get_ctt_size_v2ctf_set_baseinit_symtabget_vbytes_common.isra.3get_vbytes_v2get_vbytes_v1init_types__PRETTY_FUNCTION__.11737__PRETTY_FUNCTION__.11666ctf_dictops__PRETTY_FUNCTION__.12321_libctf_models__PRETTY_FUNCTION__.12025ctf-dedup.cmake_set_elementinternctf_dedup_populate_mappingsctf_decorate_type_nameCSWTCH.80CSWTCH.81ctf_dedup_mark_conflicting_hashctf_dedup_count_typessort_output_mapping__PRETTY_FUNCTION__.12044ctf_dedup_populate_type_mappingctf_dedup_record_originctf_dedup_maybe_synthesize_forwardctf_dedup_id_to_targetctf_dedup_emit_typectf_dedup_rwalk_output_mapping.constprop.6ctf_dedup_rwalk_one_output_mapping.constprop.5ctf_dedup_hash_type.constprop.8ctf_dedup_rhash_type.constprop.7cp-demangle.cd_make_compd_make_named_ref_qualifierd_count_templates_scopesd_append_chard_index_template_argumentd_number.isra.0d_number_componentd_compact_numberd_template_paramd_source_named_abi_tagsd_substitutionstandard_subsd_call_offsetnext_is_type_qual.isra.2d_discriminatord_lookup_template_argument.isra.8d_find_packis_designated_init.isra.10.part.11d_append_stringd_append_numd_growable_string_callback_adapterd_print_comp_innerd_maybe_print_fold_expression.isra.17d_maybe_print_designated_initd_print_subexprd_print_compd_print_expr_opd_print_modd_print_array_type.isra.12d_print_function_type.isra.13d_print_mod_listd_expression_1d_cv_qualifiersd_function_typed_template_argsd_parmlistd_operator_named_unqualified_named_bare_function_typed_encodingd_template_argd_expr_primaryd_template_args_1d_prefixd_exprlistis_ctor_or_dtord_demangle_callbackldmain.cld_bfd_assert_handlerdefault_bfd_assert_handlerld_bfd_error_handlerdefault_bfd_error_handler__PRETTY_FUNCTION__.12879symbol_warningwarning_find_relocadd_archive_elementheader_printed.12841ld_cleanupget_relative_sysroot__PRETTY_FUNCTION__.13010warning_callbackconstructor_callbackadd_to_setmultiple_commondependency_files_taillink_callbackserror_name.12975error_count.12976crtstuff.c__JCR_LIST__deregister_tm_clones__do_global_dtors_auxcompleted.6355__do_global_dtors_aux_fini_array_entryframe_dummy__frame_dummy_init_array_entryldgram.cyy_stack_printyy_symbol_print.isra.1yytnameyydestruct.isra.3error_indexerror_namesyypactyytranslateyycheckyydefactyyr2yyr1yypgotoyydefgotoyystosyytableyyrlineregionldgram_vers_current_langldgram_had_keepsectypephdr_types.12115lexsup.cset_segment_startld_optionsdefsym_count.12532ldlang.csection_iterator_callbackinsert_os_afterhash_entry_addr_cmpsort_sections_by_lmasort_sections_by_vmaignore_bfd_errorsgc_section_callbackfind_next_input_statementlang_list_remove_tailoutput_section_statement_newfuncget_targetversion_expr_head_equpdate_wild_statementslang_map_flagsinsert_undefinedstrcutlang_finalize_version_expr_headversion_expr_head_hashlang_do_memory_regionslang_memory_region_listarchive_pathlang_define_start_stopstart_stop_countstart_stop_allocstart_stop_symsget_init_prioritycompare_section__PRETTY_FUNCTION__.15478lang_vers_matchmatch_simple_wildlang_discard_section_p.isra.24find_relro_section_callbackos_region_check.isra.29init_opbopb_shiftprint_input_sectionprint_dotmap_obstacklang_do_assignments_1current_assigncurrent_sectionprefer_next_section__PRETTY_FUNCTION__.17101__PRETTY_FUNCTION__.16764lang_ctf_errs_warningslang_write_ctf.part.39ctf_outputclosest_target_matchwinnerlang_one_commonheader_printed.17284name_matchinput_statement_is_archive_path.isra.43walk_wild_file_in_exclude_listwalk_wild_consider_sectionwalk_wild_section_specs1_wild1walk_wild_section_generalwalk_wild_section_specs4_wild2walk_wild_section_specs3_wild2walk_wild_section_specs2_wild1walk_wild_section_specs1_wild0unique_section_punique_section_listcheck_section_callbackoutput_section_callback_fastlang_print_memory_sizewalk_wild_filestat_obstacknew_afilesort_def_symbolinsert_padstatement_listzero_fill.16875stat_save_ptrstat_save__PRETTY_FUNCTION__.15746__PRETTY_FUNCTION__.15750current_input_fileoutput_section_statement_tablelang_memory_region_list_taillang_size_sections_1lang_sizing_iteration__PRETTY_FUNCTION__.17007lang_get_regionsfirst_fileasneeded_list_headexp_init_osprocess_insert_statementsmap_head_is_link_orderoutput_section_callbackoutput_section_callback_tree_to_listcurrent_targetldlang_open_outputrequire_defined_symbol_list__PRETTY_FUNCTION__.16268lookup_namewalk_wildlang_gc_sections_1check_input_sectionsmap_input_to_output_sectionsdefault_common_sectionlang_find_relro_sections_1.constprop.65open_input_bfdsplugin_insertplugin_undefsentry_symbol_defaultmap_option_ffirst_orphan_note.16023overlay_vmaoverlay_subalignoverlay_maxoverlay_listversion_indexmri.cmri_add_to_listdone_treesubalignment__PRETTY_FUNCTION__.11655symbol_truncateldctor.cctor_prioctor_cmpcalled.11491ldwrite.cbuild_link_order__PRETTY_FUNCTION__.11652ldemul.cld_emulationldver.cldmisc.c__PRETTY_FUNCTION__.12296last_bfd.12345last_function.12347last_file.12346ldfile.ccheck_for_scripts_dirtry_opensearch_tail_ptrldfile_open_command_file_1processed_scripts.12562script_search.12542search_arch_headsearch_arch_tail_ptrldcref.ccref_hash_newfunccref_symcountcref_fill_arraycheck_refscheck_reloc_refscheck_local_sym_xrefcheck_nocrossrefcref_sort_arraycref_initializedcref_tableentsizerefsizetabsizeold_taballoc_markold_countold_tableold_sizeold_symcountplugin.cplugin_cleanupplugin_strdupplugin_noticeorig_notice_allorig_callbacksrelease_input_filecalled_pluginget_input_fileregister_cleanupregister_all_symbols_readregister_claim_fileset_extra_library_pathadd_input_libraryget_viewplugin_pagesizemessageget_symbolslto_resolution_str.14557buffer.14551buffer.14561buffer.14556__PRETTY_FUNCTION__.14583get_symbols_v2get_symbols_v1plugins_listplugins_tail_chain_ptrlast_pluginlast_plugin_args_tail_chain_ptrtv_header_tagsplugin_callbacksldbuildid.cread_hexearmelf_linux_eabi.cgldarmelf_linux_eabi_set_symbolscompare_output_sec_vmagldarmelf_linux_eabi_get_scriptgldarmelf_linux_eabi_list_optionsgldarmelf_linux_eabi_handle_optiondepauditgroup_sizein_implib_filenamegldarmelf_linux_eabi_add_optionsxtra_long.14954arm_elf_create_output_section_statementsstub_filegldarmelf_linux_eabi_finishbuffer.14918arm_elf_before_allocationgldarmelf_linux_eabi_after_allocationneed_laying_outbuild_section_listsgldarm_layout_sections_againelf32_arm_add_stub_sectionhook_in_stubgldarmelf_linux_eabi_after_opengldarmelf_linux_eabi_before_parseearmelfb_linux_eabi.cgldarmelfb_linux_eabi_set_symbolsgldarmelfb_linux_eabi_get_scriptgldarmelfb_linux_eabi_list_optionsgldarmelfb_linux_eabi_handle_optiongldarmelfb_linux_eabi_add_optionsgldarmelfb_linux_eabi_finishgldarmelfb_linux_eabi_after_allocationgldarmelfb_linux_eabi_after_opengldarmelfb_linux_eabi_before_parseearmelf.cgldarmelf_set_symbolsgldarmelf_get_scriptgldarmelf_list_optionsgldarmelf_handle_optiongldarmelf_add_optionsgldarmelf_finishgldarmelf_after_allocationgldarmelf_after_opengldarmelf_before_parseearmelfb.cgldarmelfb_set_symbolsgldarmelfb_get_scriptgldarmelfb_list_optionsgldarmelfb_handle_optiongldarmelfb_add_optionsgldarmelfb_finishgldarmelfb_after_allocationgldarmelfb_after_opengldarmelfb_before_parseldelf.cldelf_add_sysrootldelf_parse_ld_so_confldelf_try_neededldelf_vercheckglobal_vercheck_neededglobal_vercheck_failedglobal_statldelf_stat_neededglobal_foundldelf_search_needed__PRETTY_FUNCTION__.14936global_neededwrite_build_idldelf_find_exp_assignmentldelf_find_statement_assignmentldelf_check_neededinitialized.15052ld_so_conf.15053initialized.14975ld_elf_hints.14976orphan_init_done.15316hold.15305ldelfgen.cldelf_ctf_strtab_iter_cbhash_file_ptreq_file_ptr_bfd_calloc_wrapperopen_nested_filedo_slurp_bsd_armapadjust_relative_pathpathbuf_len.11010pathbuf.11009archive_close_workerpad.11119__PRETTY_FUNCTION__.11149report_plugin_err.11217archures.cis32bitbfd_error_bfd_error_internal_bfd_default_assert_handler_bfd_error_program_name__PRETTY_FUNCTION__.14898__PRETTY_FUNCTION__.14903error_handler_internal__PRETTY_FUNCTION__.15018__PRETTY_FUNCTION__.15075__PRETTY_FUNCTION__.14962__PRETTY_FUNCTION__.15240__PRETTY_FUNCTION__.15345bfdio.cmemory_btellmemory_bflushmemory_bmmapmemory_bstatmemory_bclosememory_bseekmemory_bwritememory_breadcache.cbfd_cache_max_openmax_open_filesbfd_cache_deletebfd_last_cacheclose_onecache_bclosecache_iovecbfd_cache_lookup_worker__PRETTY_FUNCTION__.10209cache_bmmappagesize_m1.10272__PRETTY_FUNCTION__.10271cache_bstatcache_bflushcache_bseekcache_btellcache_bwritecache_breadelf-properties.celf_get_gnu_property_section_sizeelf_merge_gnu_properties__PRETTY_FUNCTION__.13034elf_write_gnu_properties.isra.3__PRETTY_FUNCTION__.13087__PRETTY_FUNCTION__.12996__PRETTY_FUNCTION__.13059format.cbfd_preserve_finishbfd_preserve_restoreCSWTCH.15bfd_default_hash_table_sizeprimes.10131__PRETTY_FUNCTION__.10235__PRETTY_FUNCTION__.10246init.clibbfd.c__PRETTY_FUNCTION__.10132__PRETTY_FUNCTION__.10146__PRETTY_FUNCTION__.10166mask.10191linker.calready_linked_newfuncset_symbol_from_hash__PRETTY_FUNCTION__.10778generic_add_output_symbol__PRETTY_FUNCTION__.10794bfd_generic_link_read_symbols.part.14generic_link_check_archive_elementdefault_indirect_link_orderlink_action__PRETTY_FUNCTION__.10634__PRETTY_FUNCTION__.10756__PRETTY_FUNCTION__.10802__PRETTY_FUNCTION__.10830_bfd_section_already_linked_table__PRETTY_FUNCTION__.10915fix_symsopncls.copncls_btellopncls_bseekopncls_breadopncls_bwriteopncls_bcloseopncls_bflushopncls_bmmapopncls_bstat_bfd_delete_bfdseparate_alt_debug_file_existsbfd_get_debug_link_info_1separate_debug_file_existscrc32_table.13433find_separate_debug_filebfd_id_counterbfd_reserved_id_counteropncls_iovecget_build_idget_build_id_nameget_alt_debug_link_info_shimcheck_build_id_file__PRETTY_FUNCTION__.13274reloc.cread_reloc__PRETTY_FUNCTION__.10564write_reloc__PRETTY_FUNCTION__.10579apply_relocbfd_check_overflow.part.6__PRETTY_FUNCTION__.10542__PRETTY_FUNCTION__.10522__PRETTY_FUNCTION__.10717bfd_howto_32bfd_reloc_code_real_namesnone_howto.10790section.cbfd_section_init__PRETTY_FUNCTION__.10383__PRETTY_FUNCTION__.10509global_symssyms.ccmpindexentrystttargets.c_bfd_find_arch_match_bfd_target_vectorbfd_target_match__PRETTY_FUNCTION__.10315_bfd_associated_vectorbinary.cbinary_mkobjectbinary_get_symtab_upper_boundbinary_sizeof_headersbinary_get_symbol_infomangle_namebinary_canonicalize_symtabbinary_object_pbinary_set_section_contentsbinary_get_section_contentsihex.cihex_sizeof_headersihex_mkobjectihex_set_arch_machihex_write_recorddigs.10375ihex_write_object_contentsihex_set_section_contentsihex_bad_byteihex_object_pinited.10255ihex_get_section_contentssrec.csrec_sizeof_headerssrec_get_symtab_upper_boundsrec_canonicalize_symtabsrec_set_section_contentssrec_set_arch_machsrec_get_symbol_infosrec_write_recorddigssrec_mkobjectinited.10268srec_print_symbolsrec_get_bytesrec_get_section_contentsinternal_srec_write_object_contentssymbolsrec_write_object_contentssrec_bad_bytesrec_scansymbolsrec_object_ptekhex.cgetvaluegetsymtekhex_canonicalize_symtabtekhex_get_symtab_upper_boundwritevaluetekhex_sizeof_headersfind_chunktekhex_make_empty_symboltekhex_set_arch_machtekhex_get_symbol_infosum_block__PRETTY_FUNCTION__.10335writesymtekhex_mkobjectfirst_phasemove_section_contents.isra.1tekhex_set_section_contentstekhex_get_section_contentstekhex_print_symboltekhex_init.part.3inited.10125tekhex_write_object_contents__PRETTY_FUNCTION__.10378pass_over.constprop.5tekhex_object_pverilog.cverilog_set_section_contentsverilog_set_arch_machverilog_mkobjectinited.10329verilog_write_object_contentself32-arm.ca8_reloc_comparebfd_arm_vfp11_antidependencycalculate_group_reloc_maskelf32_arm_attributes_accept_divelf32_arm_get_symbol_typeelf32_arm_reloc_type_classget_arm_elf_section_dataelf32_arm_output_stub_symelf32_arm_count_additional_relocself32_arm_nacl_plt_sym_valelf32_arm_fdpic_omit_section_dynsymelf32_arm_symbian_plt_sym_valfind_stub_size_and_templatestub_definitionsarm_size_one_stubmake_branch_to_a8_stubtag_cpu_arch_combineelf32_arm_lookup_section_flagscheck_use_blxelf32_arm_additional_program_headerself32_arm_modify_segment_mapelf32_arm_allocate_local_sym_infoelf32_arm_create_local_ipltelf32_arm_is_target_special_symboladjust_exidx_sizeelf32_arm_swap_symbol_outelf32_arm_nabi_write_core_noteelf32_arm_copy_indirect_symbolelf32_arm_begin_write_processingelf32_arm_to_thumb_export_stubelf32_arm_symbian_begin_write_processingelf32_arm_gc_mark_extra_sectionself32_arm_gc_mark_hookelf32_arm_final_write_processingelf32_arm_always_size_sectionself32_arm_object_pelf32_arm_link_hash_table_createelf32_arm_link_hash_newfuncelf32_arm_use_long_plt_entrystub_hash_newfuncelf32_arm_link_hash_table_freeelf32_arm_nacl_link_hash_table_createelf32_arm_fdpic_link_hash_table_createelf32_arm_vxworks_link_hash_table_createelf32_arm_symbian_link_hash_table_createelf32_arm_find_inliner_infoelf32_arm_print_private_bfd_dataelf32_arm_vxworks_final_write_processingelf32_arm_merge_private_bfd_dataname_table.16179order_021.16165aeabi_enum_names.16217vfp_versions.16205elf32_arm_vxworks_bedelf32_arm_new_section_hookelf32_arm_mkobjectelf32_arm_nacl_final_write_processingelf32_arm_symbian_modify_segment_mapelf32_arm_howto_from_type.part.9elf32_arm_howto_table_3elf32_arm_howto_table_2elf32_arm_reloc_type_lookupelf32_arm_reloc_mapelf32_arm_howto_table_1elf32_arm_info_to_howtoelf32_arm_tls_transitionbfd_arm_vfp11_regnobfd_arm_vfp11_write_maskbfd_arm_vfp11_insn_decode__PRETTY_FUNCTION__.15022elf32_arm_abs12_reloc.isra.18.part.19elf32_arm_obj_attrs_arg_typeelf32_arm_obj_attrs_orderelf32_arm_compare_mappingcopy_exidx_entry.isra.25elf32_arm_section_flagself32_arm_copy_special_section_fieldself32_arm_backend_symbol_processingarm_stub_is_thumbarm_elf_add_rofixup.isra.31elf32_arm_allocate_irelocs.isra.32arm_list_new_cmse_stubelf32_arm_obj_attrs_handle_unknownelf32_arm_set_private_flagself32_arm_fake_sectionsusing_thumb_only.isra.37elf32_arm_create_dynamic_sections__PRETTY_FUNCTION__.14063elf32_arm_plt_needs_thumb_stub_p.isra.39using_thumb2.isra.40using_thumb2_bl.isra.43arm_type_of_stub.isra.44elf32_arm_stub_name.isra.46elf32_arm_get_stub_entryarm_dedicated_stub_output_section_required.part.49__PRETTY_FUNCTION__.14160arm_dedicated_stub_output_section_name__PRETTY_FUNCTION__.14172arm_new_stubs_start_offset_ptrarm_dedicated_stub_input_section_ptr__PRETTY_FUNCTION__.14179elf32_arm_add_dynreloc.isra.53elf32_arm_update_relocs__PRETTY_FUNCTION__.16396elf32_arm_allocate_dynrelocs.isra.56__PRETTY_FUNCTION__.15330elf32_arm_allocate_plt_entryelf32_arm_adjust_dynamic_symbolfind_thumb_glue.isra.59elf32_arm_create_or_find_stub_sec.isra.61elf32_arm_create_stub__PRETTY_FUNCTION__.14284put_thumb_insn.isra.63put_thumb2_insn.isra.64stm32l4xx_fill_stub_udfput_arm_insn.isra.66elf32_arm_populate_plt_entryelf32_arm_fdpic_thumb_plt_entryelf32_arm_fdpic_plt_entryelf32_arm_vxworks_exec_plt_entryelf32_arm_vxworks_shared_plt_entryelf32_arm_finish_dynamic_symbolelf32_arm_create_thumb_stubarm_put_trampolinearm_nacl_put_plt0.isra.67elf32_arm_nacl_plt0_entryelf32_arm_finish_dynamic_sectionstls_trampolinedl_tlsdesc_lazy_trampolinearm_allocate_glue_section_spacearm_make_glue_sectionelf32_arm_check_relocs__PRETTY_FUNCTION__.16310__PRETTY_FUNCTION__.14023record_arm_to_thumb_glue.isra.72allocate_dynrelocs_for_symbol__PRETTY_FUNCTION__.16517elf32_arm_maybe_function_symelf32_arm_section_map_add.isra.74elf32_arm_output_map_symnames.16820elf32_arm_output_plt_map_1elf32_arm_output_plt_mapelf32_arm_output_arch_local_symsarm_map_one_stubelf32_arm_swap_symbol_inelf32_arm_nabi_grok_psinfoelf32_arm_nabi_grok_prstatuself32_arm_filter_implib_symbolself32_arm_init_file_headerelf32_arm_add_symbol_hookelf32_arm_section_from_shdrread_code32.isra.84elf32_arm_get_synthetic_symtabelf32_arm_reloc_name_lookupelf32_arm_copy_private_bfd_dataelf32_arm_nacl_modify_segment_maparm_elf_fill_funcdesc.part.54.constprop.91insert_cantunwind_afterelf32_arm_final_link_relocate__PRETTY_FUNCTION__.15628arm_build_one_stub__PRETTY_FUNCTION__.14280elf32_arm_relocate_sectionelf32_arm_write_section__PRETTY_FUNCTION__.17175elf32_arm_output_glue_sectionelf32_arm_final_link__PRETTY_FUNCTION__.14907__PRETTY_FUNCTION__.15088__PRETTY_FUNCTION__.14834__PRETTY_FUNCTION__.15119__PRETTY_FUNCTION__.15141__PRETTY_FUNCTION__.14851elf32_arm_size_dynamic_sectionself32_arm_symbian_bedelf32_arm_symbian_special_sectionself32_arm_fdpic_bedelf32_arm_nacl_bedelf32_bedelf32_arm_stub_long_branch_any_anyelf32_arm_stub_long_branch_v4t_arm_thumbelf32_arm_stub_long_branch_thumb_onlyelf32_arm_stub_long_branch_v4t_thumb_thumbelf32_arm_stub_long_branch_v4t_thumb_armelf32_arm_stub_short_branch_v4t_thumb_armelf32_arm_stub_long_branch_any_arm_picelf32_arm_stub_long_branch_any_thumb_picelf32_arm_stub_long_branch_v4t_thumb_thumb_picelf32_arm_stub_long_branch_v4t_arm_thumb_picelf32_arm_stub_long_branch_v4t_thumb_arm_picelf32_arm_stub_long_branch_thumb_only_picelf32_arm_stub_long_branch_any_tls_picelf32_arm_stub_long_branch_v4t_thumb_tls_picelf32_arm_stub_long_branch_arm_naclelf32_arm_stub_long_branch_arm_nacl_picelf32_arm_stub_cmse_branch_thumb_onlyelf32_arm_stub_a8_veneer_b_condelf32_arm_stub_a8_veneer_belf32_arm_stub_a8_veneer_blelf32_arm_stub_a8_veneer_blxelf32_arm_stub_long_branch_thumb2_onlyelf32_arm_stub_long_branch_thumb2_only_pureelf32.c__PRETTY_FUNCTION__.13228elf_swap_shdr_in__PRETTY_FUNCTION__.13380elf_swap_shdr_out.isra.7elf_swap_ehdr_in.isra.8elf_swap_ehdr_out.isra.9elf_slurp_reloc_table_from_sectionelf-nacl.celf-vxworks.celf_vxworks_gott_symbol_psection_matchget_segment_typeignore_section_symelf_sort_sectionsmake_mappingelf_sort_segmentsconvert_zdebug_to_debugconvert_debug_to_zdebugelfcore_grok_spu_noteget_program_header_size__PRETTY_FUNCTION__.14513sym_is_globalfind_link.isra.16elfcore_maybe_make_sectelfcore_grok_nto_regs.isra.21elfcore_make_auxv_note_section.isra.22elfobj_grok_gnu_noteelfcore_grok_noteelfcore_grok_freebsd_noteelfcore_grok_netbsd_noteelfcore_grok_openbsd_noteelfcore_grok_nto_noteelf_parse_notes_bfd_elf_set_reloc_sh_name.isra.25_bfd_elf_init_reloc_shdr.isra.26elf_fake_sectionsbfd_elf_string_from_elf_section.part.31__PRETTY_FUNCTION__.13558__PRETTY_FUNCTION__.14795__PRETTY_FUNCTION__.14878__PRETTY_FUNCTION__.15320__PRETTY_FUNCTION__.15377tid.16146lcomm_symspecial_sections_bspecial_sections_cspecial_sections_dspecial_sections_fspecial_sections_gspecial_sections_hspecial_sections_ispecial_sections_lspecial_sections_nspecial_sections_pspecial_sections_rspecial_sections_sspecial_sections_tspecial_sections_zelf-attrs.cis_default_attrobj_attr_size.part.2write_obj_attribute.part.3elf_new_obj_attr.part.4vendor_obj_attr_size__PRETTY_FUNCTION__.13293__PRETTY_FUNCTION__.13378__PRETTY_FUNCTION__.13360__PRETTY_FUNCTION__.13425elf-strtab.cstrrevcmpelf_strtab_hash_newfuncelf-eh-frame.cread_uleb128cie_hashskip_cfa_opcmp_eh_frame_hdroffset_adjustmark_entrycie_eqvma_compareread_value.isra.5write_value.isra.6num_warnings_issued.14315CSWTCH.136__PRETTY_FUNCTION__.14478__PRETTY_FUNCTION__.14493dwarf1.cparse_die.isra.2dwarf1_unit_find_nearest_linedwarf2.chash_abbreveq_abbrevdel_abbreveq_asymbolread_sectionhash_asymbolline_info_add_file_nameadd_line_infoconcat_filenamecreate_info_hash_tableinfo_hash_table_newfuncread_2_bytes.isra.7.part.8read_4_bytes.isra.9.part.10read_8_bytes.isra.11.part.12compare_sequencescompare_lookup_funcinfoscomp_unit_contains_address.part.18place_sectionsfind_debug_info.part.27find_debug_infoarange_add.isra.28line_info_add_include_dir.isra.32line_info_add_include_dir_stubread_address.isra.34__PRETTY_FUNCTION__.14361read_attribute_valueread_formatted_entriesread_rangesread_rnglistsinsert_info_hash_table.constprop.39stash_comp_unitcomp_unit_maybe_decode_line_infoprevious_failed_abbrev.15061find_abstract_instance__PRETTY_FUNCTION__.15097comp_unit_find_linecomp_unit_find_nearest_linestash_maybe_update_info_hash_tableself32-gen.celf_generic_info_to_howtoelf_generic_info_to_howto_relelf32_generic_link_add_symbolscheck_for_relocscurrent_pluginbfd_plugin_sizeof_headersbfd_plugin_print_symbolbfd_plugin_get_symtab_upper_boundbfd_plugin_core_file_pidbfd_plugin_core_file_failing_signalbfd_plugin_core_file_failing_commandbfd_plugin_bfd_print_private_bfd_databfd_plugin_bfd_copy_private_symbol_databfd_plugin_bfd_copy_private_section_databfd_plugin_bfd_copy_private_bfd_databfd_plugin_get_symbol_infobfd_plugin_make_empty_symboladd_symbols_v2bfd_plugin_canonicalize_symtabfake_bss_section.10686fake_data_section.10685fake_common_section.10687fake_text_section.10684plugin_program_nametry_load_pluginbfd_plugin_object_pplugin_namehas_plugin_listpath.10610cpu-arm.cprocessorsarm_check_note.isra.1.part.2.constprop.3CSWTCH.13architecturesarch_info_structarchive64.ccompress.cdecompress_contents__PRETTY_FUNCTION__.10417__PRETTY_FUNCTION__.10434bfd_compress_section_contents__PRETTY_FUNCTION__.10398__PRETTY_FUNCTION__.10469corefile.cmerge.cstrrevcmp_alignsec_merge_hash_newfuncsec_merge_hash_lookupsec_merge_add__PRETTY_FUNCTION__.13319__PRETTY_FUNCTION__.13448__PRETTY_FUNCTION__.13469simple.csimple_dummy_warningsimple_dummy_undefined_symbolsimple_dummy_reloc_overflowsimple_dummy_reloc_dangeroussimple_dummy_unattached_relocsimple_dummy_multiple_definitionsimple_dummy_einfosimple_save_output_infosimple_restore_output_infostabs.cstab_link_includes_newfuncctf-create.cctf_sort_varctf_grow_ptrtabmembaddenumcmpmembcmpctf_symtab_skippable.part.7symtypetab_densityemit_symtypetab.isra.8emit_symtypetab_index.isra.10hdr.14433ctf_add_genericctf_serialize.part.13__PRETTY_FUNCTION__.14675ctf_add_type_internalenumaddctf-error.c_ctf_erridx_ctf_errlistctf-hash.cctf_hashtab_traversectf_hashtab_traverse_findctf_dynhash_item_freectf_hashtab_insertctf_hashtab_traverse_removectf-lookup.cctf_lookup_varctf_lookup_idx_namesort_symidx_by_namectf_symidx_sortgrow_pptrtabctf_lookup_by_name_internaldelimiters.11562qhash.11545__PRETTY_FUNCTION__.11688ctf_try_lookup_indexedctf-string.cctf_str_rollback_atomctf_str_purge_atom_refsctf_str_free_atomctf_str_purge_one_atom_refsctf_str_add_ref_internalctf_str_sort_strtabctf_str_populate_sorttabctf_str_count_strtabctf-subr.copen_errorsinited.11590ctf-types.cctf_type_rvisit__PRETTY_FUNCTION__.11589__PRETTY_FUNCTION__.11548ctf-util.cctf-open-bfd.cctf_bfdclose__PRETTY_FUNCTION__.14591ctf-archive.csort_modent_by_namesearch_modent_by_namectf_cached_dict_closectf_dict_open_internalctf_dict_open_cachedctf_arc_import_parent.part.2enosymctf-decl.cctf-sha1.ccplus-dem.coperators.3930special.3967md5.cfillbufargv.cbsearch_r.cconcat.cd-demangle.cdlang_numberdlang_decode_backrefdlang_backref.isra.2.part.3dlang_symbol_name_p.isra.4string_needstring_appenddlang_type_modifiersstring_prepend.part.7string_appendn.part.8dlang_parse_integerdlang_lnamedlang_parse_realdlang_valuedlang_typedlang_function_typedlang_parse_qualifieddlang_function_type_noreturndlang_parse_templatedlang_identifierdlang_parse_manglefilename_cmp.cgetpwd.cpwd.4464failure_errno.4465getruntime.chashtab.chigher_prime_indexprime_tabhtab_expandlbasename.clrealpath.cmake-relative-prefix.cfree_split_directoriesmake_relative_prefix_1objalloc.cobstack.cprint_and_abortcall_chunkfun_obstack_begin_workercall_freefunpex-one.cpex-unix.cpex_unix_cleanuppex_unix_fdopenwpex_unix_fdopenrpex_unix_pipepex_unix_closepex_unix_exec_childpex_unix_open_writepex_unix_open_readpex_unix_waitrust-demangle.cparse_integer_62parse_hex_nibblesparse_identstr_buf_reserveparse_opt_integer_62print_str.part.1print_identprint_uint64_hexprint_uint64demangle_const_uint.part.3print_lifetime_from_indexdemangle_binderdemangle_const.part.6CSWTCH.36demangle_generic_argdemangle_pathdemangle_path_maybe_open_genericsstr_buf_demangle_callbacksafe-ctype.cunlink-if-ordinary.cxatexit.cxatexit_cleanupxatexit_headxatexit_firstxexit.cxmalloc.cfirst_breakxmemdup.cxstrdup.cxstrerror.cxstrerror_bufxstrndup.cpex-common.cpex_get_status_and_timetemp_file.isra.2make-temp-file.cmemoized_tmpdirvartmpusrtmpdeflate.cslide_hashdeflateStateChecklongest_matchread_buffill_windowflush_pendingdeflate_slowdeflate_fastdeflate_storedconfiguration_tablegzwrite.cgz_initgz_compgz_zerogz_writegzlib.cgz_openinflate.cinflateStateChecksyncsearchupdatewindoworder.3763lenfix.3734distfix.3735inftrees.cdext.3642lext.3640dbase.3641lbase.3639pqdownheapbuild_treescan_treesend_treecompress_blockextra_lbitsbase_lengthextra_dbitsbase_distbi_windupbi_flushstatic_l_descstatic_d_descstatic_bl_descbl_orderstatic_dtreestatic_ltreeextra_blbitsuncompr.czutil.cadler32.cadler32_combine_.part.0crc32.ccrc32_littlegf2_matrix_squarecrc32_combine_inffast.c__FRAME_END____JCR_END____init_array_end_DYNAMIC__init_array_start__GNU_EH_FRAME_HDR_GLOBAL_OFFSET_TABLE_bfd_elf32_core_file_failing_commandget_crc_tablelang_memory_region_alias_bfd_elf_merge_unknown_attribute_listexp_relop_bfd_elf_write_corefile_contentshtab_try_createyy_switch_to_bufferobstack_alloc_failed_handler__libc_csu_finibfd_gnu_truncate_arnameversion_printedctf_getdatasect_bfd_elf_large_com_sectionvalidate_build_id_stylecrc32_zdemanglingmkstemps@@GLIBC_2.11ctf_bfdopen_ctfsectbfd_generic_get_relocated_section_contentsgetenv@@GLIBC_2.2.5ctf_hash_eq_type_id_keyexp_trinop_bfd_nearby_section_bfd_bool_bfd_bfd_truegzvprintfctf_dynset_createbfd_get_reloc_code_namebfd_emul_get_commonpagesize_bfd_generic_minisymbol_to_symbolcplus_demangle_print_bfd_generic_get_section_contents_in_windowlang_add_uniqueglobfree@@GLIBC_2.2.5elf32_arm_fix_exidx_coverageyyrestartctf_writepex_read_errbfd_get_section_by_name_ifldfile_open_filebfd_update_compression_headercplus_demangle_name_to_stylegzseek64_bfd_nosymbols_print_symbolprint_one_symbolctf_dict_openctf_bufopen_bfd_elf_gc_mark_fdescplus_demangle_fill_dtor_bfd_elf_get_linenoldemul_syslib_bfd_ptr_bfd_null_error_bfd_elf_add_dynamic_tagsld_emulations_bfd_elf_strtab_refcountelfcore_write_notebfd_default_reloc_type_lookup_bfd_read_unsigned_leb128ld_armelfb_emulationbfd_elf_string_from_elf_section_bfd_dummy_targethtab_hash_string_bfd_elf_strtab_addelfcore_write_xstatereg_bfd_elf_get_symtab_upper_boundbfd_scan_vmaregister_ld_plugin_object_pputchar@@GLIBC_2.2.5make_temp_file_with_prefixctf_add_functionVerilogDataWidthelfcore_write_s390_gs_bc_bfd_elf_slurp_secondary_reloc_sectionstrcasecmp@@GLIBC_2.2.5yynerrsldlang_write_ctf_late_bfd_nosymbols_get_linenoelfcore_write_prfpreg_CTF_NULLSTR_obstack_newchunk_bfd_elf_can_make_relativectf_dynset_inserthtab_deletereconcatbfd_cache_close_bfd_nolink_bfd_define_common_symbol_bfd_bool_bfd_false_errorctf_str_purge_refsexp_provideabort@@GLIBC_2.2.5buildargvdlang_demanglelang_has_input_file_bfd_construct_extended_name_tablelang_enter_overlay__errno_location@@GLIBC_2.2.5yyget_outconcat_copy2mri_loadlang_set_flagsunlink@@GLIBC_2.2.5lang_for_each_statement_workerctf_file_closebfd_elf_set_obj_attr_contentsstrncpy@@GLIBC_2.2.5nocrossref_listremove@@GLIBC_2.2.5_bfd_elf_eh_frame_section_offsetafter_open_defaultbfd_elf_group_nameldemul_add_optionsctf_add_pointerbfd_generic_discard_groupelf32_arm_setup_section_listsbfd_make_writablebfd_elf32_arm_set_vfp11_fixinflateValidatemake_relative_prefix_ignore_linksstrncmp@@GLIBC_2.2.5bfd_print_symbol_vandf_bfd_dwarf2_find_nearest_linegenerate_build_idstdout@@GLIBC_2.2.5bfd_elf_record_link_assignmenthad_output_filenamectf_type_iter_all_bfd_stab_section_find_nearest_linebfd_compress_section_bfd_void_bfd_asectionctf_add_restrictlang_add_nocrossref_bfd_elf_size_group_sectionsfinish_defaultbfd_elf_generic_relocbfd_core_file_failing_command_bfd_elf_get_symbol_info_bfd_nolink_bfd_link_split_sectionlang_final_exit@@GLIBC_2.2.5ctf_getstrsect_bfd_stringtab_emitbfd_elf32_core_file_failing_signal_bfd_elf_close_and_cleanupbfd_make_section_old_wayelfcore_write_s390_prefixstrcpy@@GLIBC_2.2.5ctf_decl_initbfd_calc_gnu_debuglink_crc32_bfd_generic_get_section_contents_bfd_elf_link_hash_copy_indirectmri_alignmodexp_fold_tree_no_dotbfd_plugin_set_pluginbfd_elf_link_record_dynamic_symbolld_armelfb_linux_eabi_emulationbfd_get_size_bfd_elf_write_object_contentsctf_strraw_explicitcurrent_demangling_stylectf_lookup_by_namebfd_make_section_with_flagsinflate_bfd_nowrite_set_section_contents_bfd_elf_canonicalize_dynamic_relocdupargvbfd_elf_sym_namebfd_elf_link_add_symbols_bfd_elf_merge_object_attributesbfd_set_filename_bfd_elf_find_functionlang_leave_output_section_statementyydebugldemul_find_potential_librariesldexp_inithtab_sizeinflateGetDictionaryctf_errmsgexp_unoppush_stat_ptrctf_add_reftypebfd_make_readable_bfd_elf_link_hide_sym_by_versionbfd_section_hash_newfuncferror@@GLIBC_2.2.5bfd_wrapped_link_hash_lookup_bfd_write_merged_sectionldemul_after_check_relocstekhex_vecbfd_generic_link_read_symbols_bfd_nosymbols_minisymbol_to_symbolbfd_arch_mach_octets_per_bytebfd_arch_listadd_excluded_libslex_stringldemul_after_parsebfd_elf_get_runpath_listqsort@@GLIBC_2.2.5ctf_openctf_dynset_lookup_anyisatty@@GLIBC_2.2.5bfd_hash_traverse_bfd_elf_adjust_dynamic_copy_bfd_bool_bfd_asymbol_bfd_asymbol_truearm_stub_a8_veneer_lwm_bfd_elf_adjust_eh_frame_global_symbolbfd_set_default_targethll_defaultbfd_elf32_arm_stm32l4xx_fix_veneer_locationsbfd_emul_get_maxpagesize_bfd_elf_section_from_bfd_sectionfread@@GLIBC_2.2.5_bfd_elf_common_definition_bfd_nolink_bfd_link_hash_table_createelfcore_write_s390_last_breakbfd_is_undefined_symclass_bfd_elf_canonicalize_dynamic_symtabstat_alloc_bfd_archive_bsd_construct_extended_name_table_bfd_elf_filter_global_symbolshandle_asneeded_crefbfd_generic_archive_pctf_hash_lookup_typegz_errorstdin@@GLIBC_2.2.5vsnprintf@@GLIBC_2.2.5elf_vxworks_finish_dynamic_entryctf_arc_bufopendeflate_copyright_bfd_elf_make_section_from_shdrbfd_link_plugin_object_pbfd_set_archive_headmri_alias_bfd_void_bfd_link_tr_tallyprint_nl_bfd_section_idldctor_build_sets_bfd_nosymbols_bfd_make_debug_symbol_libctf_debugctf_link_set_memb_name_changercplus_demangle_fill_ctor_bfd_elf_discard_section_eh_frame_hdrlang_new_vers_patternctf_update_bfd_elf_sizeof_headerscrc32_combine64bfd_create_gnu_debuglink_sectionldelf_before_place_orphansbfd_make_section_anyway_with_flagsbfd_write_bigendian_4byte_intctf_link_input_namefilename_cmpldfile_assumed_script_bfd_elf_swap_verneed_in_bfd_elf_get_dynamic_reloc_upper_boundbfd_stat_bfd_dwarf2_cleanup_debug_infobfd_default_set_arch_machfcntl@@GLIBC_2.2.5cplus_demangle_set_stylectf_hash_eq_integerdos_lbasenamectf_list_splicebfd_elf_stack_segment_size_bfd_elf_maybe_vxworks_add_dynamic_tagsxatexit_bfd_nodynamic_get_synthetic_symtabbfd_follow_gnu_debugaltlinkctf_dynamic_typectf_setspecificbfd_putl24elfcore_write_aarch_hw_breakfuncs_bfd_abort_bfd_void_bfd_bfd_slurp_extended_name_tablemri_publicarm_elf32_nacl_le_vec_bfd_elf_omit_section_dynsym_default_bfd_elf_parse_gnu_propertiesvasprintf@@GLIBC_2.2.5inflateResetKeepbfd_errmsgsctf_import_unrefvfinfo_bfd_count_link_order_relocsbfd_getl_signed_32_bfd_target_vector_entriesgzbufferldemul_choose_targetbfd_malloc_and_get_section_bfd_norelocs_bfd_reloc_type_lookup_tr_init_edata_bfd_elf_tls_setupctf_add_variableyyerrorgzdopen_bfd_elf_strtab_addrefctf_add_func_symldfile_try_open_bfd_bfd_final_link_relocatelang_add_targetbfd_openrelfcore_write_prxfpregbfd_elf32_arm_set_cortex_a8_fixbfd_generic_stat_arch_eltctf_reflang_add_vers_dependctf_hash_integerbfd_elf_add_obj_attr_int_string_obstack_begin_1ctf_list_empty_pyyparseyyinbfd_getb24ctf_dynhash_iter_findlrealpathelfcore_write_prstatus_bfd_nosymbols_canonicalize_symtab_bfd_nolink_bfd_group_nameexp_print_treebfd_put_bits_bfd_elf_section_already_linkedbfd_hash_newfunc_bfd_archive_bsd44_construct_extended_name_tablectf_link_add_cu_mapping_bfd_elf_strip_zero_sized_dynamic_sectionsctf_type_iterfclose@@GLIBC_2.2.5pex_get_timesctf_link_add_ctfgzprintf_bfd_real_fseekinflate_copyrightlang_reset_memory_regionsoptind@@GLIBC_2.2.5ctf_dynhash_iteropendir@@GLIBC_2.2.5ctf_elf32_to_link_symctf_add_enum_encodeduncompressbfd_elf32_arm_allocate_interworking_sections_bfd_elf_make_section_from_phdr_bfd_elf_single_rel_hdrctf_type_lnameldlex_version_filectf_serializectf_hash_insert_type_bfd_elf_default_relocs_compatiblectf_func_type_infomri_formatstpcpy@@GLIBC_2.2.5ctf_list_append_bfd_write_unsigned_leb128_bfd_generic_new_section_hookbfd_rename_section_bfd_generic_final_linkexp_assignlang_ld_featuremsync@@GLIBC_2.2.5_bfd_elf_obj_attrs_arg_typebfd_getb_signed_32bfd_core_file_pidctf_getspecificlang_default_entryentry_from_cmdlineexp_fold_treeunix_lbasenameinflateUnderminectf_elf64_to_link_symbfd_alloclang_statement_iterationldemul_before_place_orphansctf_dynhash_remove_bfd_norelocs_set_relocctf_setdebugbfd_get_section_contentsctf_dynhash_next_sortedbfd_bsd_truncate_arnamectf_str_write_strtabctf_arc_close_internalstrlen@@GLIBC_2.2.5gzoffsetlang_add_gc_name_bfd_elf_create_got_sectionbfd_elf32_write_out_phdrsbfd_mallocasneeded_list_tailctf_new_archive_internalbfd_get_mtime_bfd_archive_64_bit_write_armapctf_type_sizectf_lookup_symbol_namebfd_elf32_swap_phdr_outbfd_elf32_write_shdrs_and_ehdr__lxstat@@GLIBC_2.2.5bfd_generic_openr_next_archived_file_bfd_elf_rel_local_sym_bfd_nolink_bfd_discard_group_bfd_discard_section_stabsplugin_vecmd5_process_blockctf_add_typedefbfd_make_sectionctf_type_nextldlex_defsymctf_type_mappingbfd_getl_signed_64_bfd_write_stab_stringslang_register_vers_nodedeflatePrimebfd_get_elf_phdrsexp_binopldemul_place_orphanbfd_get_reloc_size_bfd_elf_map_sections_to_segments_bfd_elf_default_action_discardedelfcore_write_ppc_tm_sprlang_float_flagyyget_debugctf_dvd_insertctf_hash_sizecplus_demangle_v3bfd_section_from_elf_indexgetuid@@GLIBC_2.2.5elfcore_write_ppc_vsxgzclearerrbfd_lookup_archarm_elf32_nacl_be_vecmmap@@GLIBC_2.2.5_bfd_elf_copy_special_section_fieldsctf_archive_itergetopt_long@@GLIBC_2.2.5elf_read_notesinflateCodesUsedbfd_elf32_swap_phdr_inlang_enter_groupctf_assert_fail_internalgzseekldlang_ctf_new_dynsym_bfd_elf_omit_section_dynsym_allctf_add_union_sizedlang_output_section_getlang_list_initctf_hash_destroysyslib_defaultdwarf_debug_sections_bfd_elf_copy_link_hash_symbol_type_bfd_elf_swap_verdaux_inldlex_mri_scripthtab_remove_elt_with_hashbfd_follow_build_id_debuglinkctf_discardctf_cunameyytext_bfd_compute_and_write_armapdup2@@GLIBC_2.2.5bfd_log2ctf_func_argsbfd_getb64yyreallocarm_elf32_vxworks_be_vecctf_symsect_endiannesslang_section_startelf32_r_symstrchr@@GLIBC_2.2.5ctf_parent_dict_bfd_noarchive_truncate_arnamegetpwdbfd_elf_get_dt_sonameadd_crefrewind@@GLIBC_2.2.5yy_create_buffer_IO_putc@@GLIBC_2.2.5bfd_elf_add_obj_attr_stringexp_get_abs_intsaved_script_handle_bfd_elf_add_dynamic_entry_bfd_elf_rel_vtable_reloc_fnconcat_lengthbfd_elf_get_dyn_lib_classzErrorelfcore_write_ppc_tm_ctar_bfd_bool_bfd_asymbol_falselang_finishbfd_generic_gc_sections_bfd_elf_strtab_initmri_order_bfd_elf_swap_verdaux_outctf_add_constbfd_elf_add_dt_needed_tagctf_link_add_strtabctf_add_array_tr_flush_blockctf_dvd_lookup_bfd_elf_link_hash_table_freebfd_zallochtab_eq_pointerdeflateReset_bfd_safe_read_leb128bfd_elf_make_objectxrealloc_bfd_elf_copy_private_bfd_dataelf_vxworks_final_write_processingdprint_statement_bfd_elf_readonly_dynrelocsstrrchr@@GLIBC_2.2.5bfd_hash_table_freeinput_file_chainldemul_handle_optionconcat_copy_bfd_elf_modify_headersldfile_output_machine_namelang_append_dynamic_listctf_deduplseek@@GLIBC_2.2.5bfd_convert_section_contentserror_handling_scriptldelf_place_orphanctf_add_objt_symctf_add_integerctf_dedup_atoms_init__assert_fail@@GLIBC_2.2.5ldelf_acquire_strings_for_ctf_bfd_elf_swap_verneed_outfputs@@GLIBC_2.2.5bfd_flushldemul_before_parseparser_input_bfd_handle_already_linkedadler32_combinedeflatectf_lookup_by_symbolctf_type_anamehtab_find_with_hashldelf_after_parsepex_init_common_bfd_generic_link_hash_newfunccompressBoundldlex_inputlist_sch_istable_bfd_elf_assign_file_position_for_sectionfilename_ncmp_bfd_merge_sectionsbfd_set_section_contentsbfd_follow_gnu_debuglinkelfcore_write_s390_vxrs_lowctf_add_enumeratorbfd_elf32_swap_symbol_in_tr_stored_blockyylinenoyy_flex_debug_bfd_elf_eh_frame_presentfnmatch@@GLIBC_2.2.5ldexp_finishbfd_target_listctf_type_alignbfd_plugin_specified_pldfile_open_default_command_filememset@@GLIBC_2.2.5_bfd_elf_parse_eh_frame_entryctf_str_remove_refctf_dynhash_create_bfd_nolink_bfd_lookup_section_flagslang_memory_region_lookupsha1_finish_ctxbfd_get_errorcompute_build_id_sizebfd_arch_get_compatible_bfd_archive_64_bit_slurp_armap_bfd_generic_set_relocldemul_list_emulation_options_bfd_nosymbols_bfd_is_local_label_name_bfd_elfcore_strndupctf_sha1_finiinflateMarkhex_initldelf_new_dynsym_for_ctflang_get_output_target_CTF_SECTIONadler32_combine64_bfd_elf_init_secondary_reloc_sectionstrnlen@@GLIBC_2.2.5elf_append_relagetcwd@@GLIBC_2.2.5bfd_getb_signed_64pex_get_statusctf_add_floatbfd_section_already_linked_table_insertxmalloc_bfd_elf_swap_versym_out_bfd_generic_link_add_archive_symbolsgzeof_obstack_allocated_plfinfo_bfd_elf_make_empty_symbolbfd_set_errorbfd_putb64ctf_enum_namebefore_allocation_defaultctf_add_member_encodedbfd_slurp_armapxmalloc_set_program_nameyyget_text_bfd_elf_init_private_section_datactf_dynhash_nextctf_archive_nextxstrduplang_mapctf_munmapctf_dict_closeabs_output_sectionlibiberty_concat_ptr_bfd_elf_section_for_symbolbfd_get_gp_size_bfd_coff_write_armapbfd_getl_signed_16yyallocctf_dedup_finictf_snapshotplugin_call_cleanuppipe@@GLIBC_2.2.5bfd_elf32_arm_use_long_pltbfd_elf32_arm_keep_private_stub_output_sectionsbfd_set_input_errorlang_add_input_filelang_add_wildctf_arc_symsect_endiannessclosedir@@GLIBC_2.2.5is_debuginfo_file_bfd_elf_make_dynamic_segmentyyfreeyyset_lineno_bfd_noarchive_openr_next_archived_filegztell64elfcore_write_register_notemri_output_sectionctf_type_aname_rawbfd_arm_archldemul_unrecognized_filefputc@@GLIBC_2.2.5md5_process_bytesbfd_default_scanctf_symtab_skippablectf_dedup_emitbfd_elf32_arm_vfp11_fix_veneer_locations__strdup@@GLIBC_2.2.5_bfd_elf_strtab_strafter_check_relocs_defaultbfd_elf_add_obj_attr_intlang_for_each_input_file_bfd_elf_write_secondary_reloc_sectionldemul_extra_map_file_textdeflateInit2_plugin_call_all_symbols_readctf_add_unioninput_flags_bfd_bool_bfd_uint_truebfd_get_section_by_nameyy_scan_bufferbfd_elf_get_needed_listcplus_demangle_fill_nameldemul_parse_argsdeflateGetDictionaryldfile_add_archis_gnu_v3_mangled_ctorftello64@@GLIBC_2.2.5ctf_type_encoding__libc_start_main@@GLIBC_2.2.5bfd_get_bits_bfd_elf_strtab_delref_bfd_generic_read_ar_hdr_magmemcmp@@GLIBC_2.2.5expandargvldemul_finishbfd_elf_discard_infosbrk@@GLIBC_2.2.5fgets@@GLIBC_2.2.5elf_vxworks_emit_relocslex_redirectldfile_open_file_searchbfd_init_section_decompress_statusbfd_create_bfd_elf_find_inliner_infogetopt_long_only@@GLIBC_2.2.5ctf_variable_nextlang_insert_orphan_bfd_generic_link_add_symbols_bfd_elf_link_read_relocsctf_str_rollbackctf_arc_lookup_symbolbfd_link_add_undefbfd_get_arch_sizeelf_vxworks_create_dynamic_sectionsdeflateParamsbfd_link_hash_lookup_bfd_elf_canonicalize_symtabbfd_elf_reloc_symbol_deleted_pctf_str_create_atoms_bfd_elf_section_offsetbfd_elf32_arm_get_bfd_for_interworkingbfd_elf_lookup_section_flagsbfd_initctf_setmodelbfd_get_full_section_contentsbfd_hash_table_init_nctf_dtd_insertldelf_open_dynamic_archivepex_input_pipeldemul_print_symbolbfd_printable_name_bfd_elf_attr_strdupbfd_get_arch_infoelfcore_write_aarch_pauthglob@@GLIBC_2.2.5bfd_set_error_handlermri_truncatectf_parent_name_bfd_elf_validate_reloccplus_demangle_v3_callbackctf_type_kindcalloc@@GLIBC_2.2.5_bfd_elf_maybe_function_symbfd_mmap_bfd_add_merge_sectionctf_str_add_external__data_startld_canon_sysroot_lenctf_add_structbfd_hash_allocatectf_rollbackbfd_elf32_arm_set_stm32l4xx_fixbfd_set_symtabctf_add_volatilelang_add_assignmentctf_bfdopentmpfile@@GLIBC_2.2.5ctf_lookup_variablestrcmp@@GLIBC_2.2.5deflateSetHeaderelfcore_write_aarch_svebfd_decode_symclassgzflushctf_member_iterbfd_elf32_arm_set_target_paramsdeflateInit__bfd_srec_lenyyoutctf_compress_write_bfd_elf_convert_gnu_propertiesrust_demanglectf_set_errnobfd_generic_is_group_sectionzcfreegzopen64exp_intopctf_lookup_by_idyy_scan_stringmri_only_loadoptarg@@GLIBC_2.2.5_bfd_bool_bfd_falseldemul_after_allocation_bfd_elf_strtab_offset_obstack_beginelfcore_write_arm_vfpctf_hash_type_id_keyyyset_ininfo_assert_bfd_elf_archive_symbol_lookup_bfd_elf_reloc_type_class_length_code_bfd_elf_link_hash_newfuncbfd_fdopenrada_demanglebfd_elf_gc_common_final_linkhtab_find_slotbfd_elf32_arm_vfp11_erratum_scanlang_enter_overlay_sectionbfd_elf_get_default_section_typectf_parent_fileldlang_ctf_acquire_stringslang_add_entryyy_scan_bytesldlang_override_segment_assignmentbfd_elf_get_obj_attr_int_bfd_elf_gc_markctf_hash_type_key_bfd_elf_define_linkage_sym_bfd_elf_print_private_bfd_datafreeargv_bfd_stringtab_initbfd_elf_set_group_contentsftell@@GLIBC_2.2.5_bfd_elf_encode_eh_addresselfcore_write_ppc_dscrctf_linkbfd_getb_signed_16gzsetparamsfeof@@GLIBC_2.2.5htab_elementsmri_align_bfd_nowrite_set_arch_machbfd_elf32_arm_process_before_allocation__gmon_start__umask@@GLIBC_2.2.5ctf_getmodelfopen64@@GLIBC_2.2.5ctf_reallocyyget_linenoctf_link_set_variable_filterbfd_arm_merge_machines_bfd_generic_link_hide_symbolldlang_add_filebfd_set_format_bfd_clear_contentsstrtol@@GLIBC_2.2.5java_demangle_v3_callbackbfd_putb16__dso_handlebfd_generic_lookup_section_flagselfcore_write_s390_timerbfd_is_section_compressed_with_headerlang_phdr_listbfd_octets_per_bytebfd_bwriterealpath@@GLIBC_2.3bfd_generic_relax_section_bfd_generic_link_just_symsctf_array_infog_switch_valuebfd_elf_gc_common_finalize_got_offsetsyyget_lengmemcpy@@GLIBC_2.14uncompress2_bfd_get_elt_at_filepos_bfd_stab_section_offsetelf32_arm_size_infoplugin_opt_pluginbfd_realloc_bfd_bsd_write_armapbfd_elf_is_group_sectionlang_add_mapcplus_demangle_init_infobfd_getl32elfcore_write_arc_v2lang_enter_output_section_statementctf_next_destroy_IO_stdin_usedbfd_hash_lookupyypush_buffer_stateinfo_msginflateSyncPointconstructor_listld_sysrootexpldbfd_record_phdrctf_getdebuginflateEndctf_err_warn_to_openinflate_fastelfcore_write_ppc_tm_cfpr_bfd_nolink_sizeof_headersyychar_bfd_elf_make_dynamic_reloc_sectionelfcore_write_prpsinfobfd_elf_get_bfd_needed_listctf_errwarning_nextctf_type_name_rawkill@@GLIBC_2.2.5ldemul_new_dynsym_for_ctfbfd_generic_define_common_symbolctf_bufopen_internal_bfd_bool_bfd_ptr_truectf_add_sliceldelf_after_openelfcore_write_ppc_tm_cvmx_bfd_nosymbols_get_symbol_version_stringbfd_close_all_donegzputscountargvbfd_get_file_sizecommand_linebfd_openstreamr_bfd_elf_init_file_header_bfd_ar_sizepadbfd_elf_hashtime@@GLIBC_2.2.5bfd_elf_set_dyn_lib_class_bfd_elf_relocs_compatible_bfd_elf_create_dynamic_sectionsfileno@@GLIBC_2.2.5bfd_hide_sym_by_version_bfd_create_empty_archive_element_shell_bfd_default_link_orderelfcore_write_s390_vxrs_highgetgid@@GLIBC_2.2.5ldemul_set_output_archbfd_openr_iovec_bfd_generic_link_hash_table_createbfd_get_archldctor_add_set_entryctf_dynset_nextlang_startup_libctf_versionbfd_perform_relocationctf_strptr_bfd_write_archive_contents_bfd_nolink_section_already_linkedbfd_plugin_set_program_namelang_clear_os_maplang_processldlex_filenamelang_add_sectionldwrite_bfd_elf_write_section_eh_frame_hdrinflateSetDictionaryqsort_r@@GLIBC_2.8_bfd_elf_swap_vernaux_outbfd_hash_replace__xstat@@GLIBC_2.2.5adler32bfd_putl32readdir@@GLIBC_2.2.5ctf_member_infoelfcore_write_ppc_tm_cgprlang_add_output_format_obstack_freedeflateBoundbinary_vec_bfd_link_section_stabs_bfd_merged_section_offset_bfd_new_bfd_contained_inarm_elf32_symbian_be_vecadd_keepsyms_filebfd_generic_is_local_label_name_bfd_elf_gc_mark_hookctf_list_prepend_bfd_elf_merge_unknown_attribute_lowbfd_elf32_write_relocsctf_hash_stringdlopen@@GLIBC_2.2.5bfd_cache_section_contents_bfd_elf_gc_mark_rsecbfd_alt_mach_code_bfd_elfcore_make_pseudosectionbfd_get_debug_link_infoelf_append_relbfd_elf_allocate_objectyy_delete_bufferctf_dynhash_emptyctf_add_member_offsetbfd_symbol_infoldemul_new_vers_patternldemul_choose_modebfd_printable_arch_machctf_dict_open_sectionsrust_demangle_callbackchoose_tmpdir_bfd_generic_get_elt_at_indexmd5_init_ctxbfd_getb16get_run_timeelf32_r_info_bfd_elf_write_section_eh_frame_entry__libc_csu_init__rawmemchr@@GLIBC_2.2.5_bfd_long_bfd_n1_errorplugin_load_pluginsctf_enum_nextctf_strrawbfd_elf_final_linkbfd_elf32_arm_init_mapsctf_next_copycplus_demangle_operators_hex_value_bfd_get_gp_value_bfd_bsd44_write_ar_hdr_bfd_bool_bfd_asection_bfd_asection_truemalloc@@GLIBC_2.2.5strncasecmp@@GLIBC_2.2.5bfd_fopenctf_parent_name_setfflush@@GLIBC_2.2.5_IO_getc@@GLIBC_2.2.5bfd_set_section_sizesymbolsrec_vecpex_onelang_floatldfile_output_architecturebfd_get_next_section_by_namelang_print_memory_usagebfd_elf_parse_eh_frame_entries_bfd_elf_get_dynamic_symtab_upper_boundbfd_is_section_compressedbfd_fill_in_gnu_debuglink_sectionelfcore_write_linux_prpsinfo32elfcore_write_ppc_tm_cpprldlang_add_undefunlink_if_ordinary__popcountdi2ctf_add_type_mappinginflateGetHeaderldelf_load_symbols_bfd_elf_eh_frame_entry_presentld_armelf_emulationctf_hash_eq_type_keyhtab_emptybfd_elf32_slurp_reloc_tablectf_next_createarm_elf32_vxworks_le_vec_bfd_elf_link_hash_fixup_symbolldfile_add_library_pathhtab_find_slot_with_hash_bfd_elf_slurp_version_tableslibiberty_demanglersbfd_elf_size_dynamic_sections_bfd_elf_is_function_typearm_elf32_fdpic_le_vecbfd_elf32_core_file_matches_executable_p_obstack_memory_usedgzerrorlang_add_insertbfd_elf_gc_sections_bfd_free_cached_infominfolang_initjava_demangle_v3bfd_iterate_over_targets_bfd_nocore_core_file_pid_bfd_elf_common_sectionldemul_open_dynamic_archive_bfd_elf_link_setup_gnu_propertieslang_add_nocrossref_tolang_do_assignments__fxstat@@GLIBC_2.2.5bfd_check_compression_headergzputcyypop_buffer_state_bfd_nosymbols_find_nearest_linebfd_cache_initsscanf@@GLIBC_2.2.5bfd_elf_section_type_namesctf_str_free_atomsyylenginflatePrimectf_type_resolvebfd_default_compatibleldlang_add_require_definedplugin_maybe_claimentry_symbolreport_plugin_symbolscurrent_dynamic_list_pbfd_get_unique_section_nameldelf_setup_build_idbfd_elf_define_start_stop_bfd_nodynamic_canonicalize_dynamic_relocexp_nameop_bfd_elf_no_info_to_howtobfd_set_file_flags_bfd_elf_swap_verdef_outldfile_output_machineprint_spacegzclose_wexp_defsymctf_variable_iter_bfd_elf_swap_vernaux_instrpbrk@@GLIBC_2.2.5md5_buffergeneric_core_file_matches_executable_p_bfd_nolink_bfd_link_just_symsldversion_bfd_elf_set_section_contentsctf_getsymsect_bfd_look_for_bfd_in_cachelang_for_each_statementbfd_elf32_arm_add_glue_sections_to_bfdlang_add_databfd_get_machbfd_default_arch_struct_bfd_std_sectionfseek@@GLIBC_2.2.5lang_add_attribute_bfd_generic_link_write_global_symbol_bfd_generic_reloc_link_orderbfd_elf_bfd_from_remote_memoryfseeko64@@GLIBC_2.2.5lang_append_dynamic_list_cpp_new_bfd_memory_iovecctf_type_kind_forwarded_bfd_elf_find_line_bfd_dwarf2_slurp_debug_info_bfd_elf_get_special_sectionctf_cuname_setctf_str_append_noerr_bfd_elf_init_2_index_sections_bfd_elf_discard_section_eh_framebfd_dont_truncate_arnamectf_simple_opendeflateEndgzrewind_bfd_elf_link_check_relocsbfd_elf_obj_attr_sizectf_dynhash_lookupbfd_elf_link_record_local_dynamic_symbolctf_type_name_bfd_elf_parse_eh_framebfd_use_reserved_idbfd_assert_bfd_elf_find_segment_containing_sectionctf_simple_open_internalbfd_get_sign_extend_vmactf_err_warnadd_ignoresymctf_get_dictbfd_link_hash_traverse_bfd_ar_spacepad_bfd_norelocs_canonicalize_relocobjalloc_free_blockldemul_set_symbolsafter_parse_defaultentry_sectiondlclose@@GLIBC_2.2.5ctf_set_open_errnoconfig_bfd_elf_parse_attributeslang_add_outputctf_lookup_by_rawnamelibctf_init_debug_bfd_uint_bfd_0_bfd_nosymbols_read_minisymbolsbfd_elf32_checksum_contentsbfd_elf_gc_record_vtinheritmd5_finish_ctxpex_init_bfd_elf_setup_sectionsgzoffset64bfd_section_already_linked_table_lookup_bfd_srec_forceS3realloc@@GLIBC_2.2.5force_make_executablebfd_elf32_swap_symbol_outctf_type_isparentlang_os_listbfd_section_list_clearno_more_claiming_xexit_cleanupinflateCopyctf_dynhash_lookup_kvadd_ysymhtab_set_functions_ex_bfd_elf_strtab_sizefdopen@@GLIBC_2.2.5one_lang_size_sections_pass__bss_starttrack_dependency_files_bfd_elf_find_nearest_linelang_output_section_find_by_flagsbfd_set_gp_size_bfd_elf_hash_symbol_bfd_elf_gc_mark_relocelfcore_write_aarch_hw_watchldlex_version_script_bfd_nolink_bfd_copy_link_hash_symbol_typemunmap@@GLIBC_2.2.5setlocale@@GLIBC_2.2.5bfd_openw_bfd_archive_coff_construct_extended_name_table_bfd_norelocs_bfd_reloc_name_lookupmainbfd_elf32_slurp_symbol_tablebfd_reloc_offset_in_rangectf_type_ischild_bfd_set_gp_valuehtab_create_alloc_exbfd_get_compression_header_sizeelfcore_write_s390_todcmp_bfd_elf_gc_mark_extra_sections_bfd_noarchive_write_ar_hdrelfcore_write_s390_system_callcplus_demanglebfd_make_section_anywaybfd_putl64_bfd_elf_notice_as_neededelfcore_write_ppc_pmucplus_demangle_typeinflateInit__bfd_generic_link_add_one_symbol_bfd_elf_strtab_emitbfd_is_arm_special_symbol_namectf_dvd_deletectf_closelang_add_relocctf_func_infold_abortdeflatePendingctf_name_tableldemul_list_emulationsbfd_elf32_swap_reloc_in_bfd_generic_verify_endian_matchchmod@@GLIBC_2.2.5bfd_set_error_program_name_bfd_elf_write_section_eh_frame_bfd_elf_dynamic_symbol_pyylexdeflateCopybfd_putb32ctf_str_appendbfd_elf32_swap_reloca_inobjalloc_createctf_arc_open_by_name_sectionselfcore_write_aarch_tls_bfd_real_ftelllang_leave_group_bfd_elf_copy_obj_attributeselfcore_write_ppc_ebbwait4@@GLIBC_2.2.5inflate_table_bfd_elf_eh_frame_address_sizememmove@@GLIBC_2.2.5make_relative_prefixelfcore_write_ppc_tm_cvsxlang_leave_overlay_sectionbfd_check_overflow_bfd_stringtab_add_bfd_generic_section_already_linkedbfd_demanglebsearch_rbfd_core_file_failing_signalctf_archive_raw_iter_bfd_elf_fixup_group_sectionsbfd_find_version_for_symgzopencrc32_combine_bfd_new_bfdcplus_demangle_mangled_name_sch_tolowermd5_read_ctxctf_dynhash_iter_removecanonical_filename_eqldlex_scriptbfd_releasebfd_scan_archarm_elf32_le_vecctf_dynset_eq_stringbfd_elf32_object_pldemul_acquire_strings_for_ctf_bfd_noarchive_get_elt_at_indexbfd_elf32_core_file_p_bfd_elf_strtab_finalizewaitpid@@GLIBC_2.2.5_bfd_generic_write_ar_hdrsha1_streambfd_cache_close_all_bfd_elf_set_arch_mach_bfd_nolink_bfd_is_group_sectionctf_decl_pushctf_arc_bufpreamblenacl_modify_headersctf_dtd_delete_bfd_bool_bfd_truehtab_create_allocldlex_expressionstrip_excluded_output_sections_bfd_archive_bsd_update_armap_timestamp_bfd_link_hash_newfunc_bfd_elf_strtab_clear_all_refs_bfd_nolink_bfd_get_relocated_section_contentsbfd_install_relocationoutput_cref_bfd_elf_get_reloc_upper_boundbfd_elf_get_elf_syms_bfd_stringtab_size_bfd_bool_bfd_link_trueelfcore_write_ppc_tm_cdscr_bfd_nosymbols_get_symbol_infoctf_arc_open_by_name_bfd_nolink_bfd_define_start_stopbfd_getl16_bfd_elf_new_section_hookldlex_bothctf_type_cmpaccess@@GLIBC_2.2.5bfd_simple_get_relocated_section_contents_bfd_append_relative_pathplugin_opt_plugin_arg_bfd_stringtab_freebfd_link_repair_undef_listyy_flush_bufferbfd_perrorbfd_tellxstrerrorctf_dtd_lookupctf_dynhash_destroymri_basectf_member_countctf_arc_open_internalctf_arc_writeldelf_append_to_separated_stringfopen@@GLIBC_2.2.5inflateInit2_bfd_elf32_swap_reloc_outbfd_arm_get_mach_from_notesctf_add_funcobjt_symctf_str_add_refbfd_open_filectf_add_type_bfd_generic_link_output_symbolselfcore_write_s390_todpreg_bfd_elf_canonicalize_relocunwrap_hash_lookup_bfd_elf_convert_gnu_property_sizectf_add_enum_bfd_elf_maybe_strip_eh_frame_hdrldfile_open_script_filectf_type_visitbfd_zmallocxexitzcalloc_bfd_generic_set_section_contentsctf_add_forwardmri_namegetrusage@@GLIBC_2.2.5bfd_closeperror@@GLIBC_2.2.5bfd_convert_section_sizexstrndupcplus_demangle_builtin_types_bfd_elf_merge_sectionssysconf@@GLIBC_2.2.5previous_script_handlectf_arc_closeobjalloc_freeldemul_recognized_filehtab_create_typed_allocctf_importbfd_elf32_swap_reloca_out_bfd_generic_read_ar_hdr_bfd_elf_link_hash_table_create_tr_alignsearch_headctf_fdopenbfd_sprintf_vmabfd_elf_perform_complex_relocationctf_func_type_argsbfd_elf_gnu_hashctf_archive_countbfd_plugin_target_pvfork@@GLIBC_2.2.5delete_output_file_on_failureelf32_arm_build_stubs_bfd_elf_check_kept_sectioncheck_nocrossrefshtab_traverse_noresizeldemul_get_scriptgzfwritectf_type_kind_unsliced_bfd_elf_is_local_label_namevfprintf@@GLIBC_2.2.5ld_armelf_linux_eabi_emulationbfd_sym_from_r_symndx_bfd_read_signed_leb128bfd_elf_print_symbolctf_link_add_linker_symbollang_relax_sections_bfd_elf_maybe_set_textrelbfd_getb32htab_collisionself_vxworks_add_symbol_hookbfd_flavour_nameverbose_bfd_elf_strtab_len_bfd_generic_mkarchivexmalloc_failedbfd_check_format_matchesctf_enum_iter_bfd_generic_copy_link_hash_symbol_typesection_for_dot_bfd_elf32_core_find_build_id_bfd_elf_get_sec_type_attrstrtoul@@GLIBC_2.2.5ldexp_finalize_symsbfd_generic_merge_sections_bfd_elf_final_write_processingctf_add_encodedhtab_clear_slot_bfd_norelocs_get_reloc_upper_boundexecvp@@GLIBC_2.2.5bfd_putl16_bfd_generic_make_empty_symbolbfd_elf_size_dynsym_hash_dynstr_bfd_elf_link_create_dynamic_sections_bfd_noarchive_write_armap_bfd_relocate_contentsldelf_before_allocationlang_output_section_statement_lookuphtab_remove_eltyylvalmake_temp_filebfd_realloc_or_freebfd_elf_set_dt_needed_namectf_enum_value_objalloc_allocbfd_errmsg_bfd_elf_compute_section_file_positionsctf_type_referencebfd_canonicalize_relocpread@@GLIBC_2.2.5_bfd_elf_rela_local_symstrcat@@GLIBC_2.2.5ctf_decl_bufsort_sectioninflateResetbfd_elf32_core_file_pidctf_get_arcbfd_elf32_swap_dyn_inctf_symbol_nexthtab_findarm_elf32_fdpic_be_vecbfd_elf32_arm_set_byteswap_codectf_set_ctl_hashesctf_type_pointer_bfd_generic_link_hash_table_freezlibVersionctf_member_nextbfd_set_assert_handler_bfd_elf_get_symbol_version_string_bfd_elf_link_hide_symbol_bfd_link_hash_table_initbfd_elf_gc_record_vtentry_bfd_elf_plt_get_reloc_sectionctf_dynset_destroylang_append_dynamic_list_cpp_typeinfogetpagesize@@GLIBC_2.2.5pex_runbfd_generic_group_namearm_elf32_be_veccplus_demangle_print_callbackbefore_place_orphans_defaultelf_vxworks_add_dynamic_entriesbfd_elf_get_str_sectionpop_stat_ptrpipe2@@GLIBC_2.9ctf_hash_eq_string_bfd_merge_sections_free_bfd_elf_copy_private_section_dataz_errmsg_bfd_elf_fixup_eh_frame_hdr_bfd_dwarf1_find_nearest_line__environ@@GLIBC_2.2.5yyget_in_bfd_noarchive_construct_extended_name_tablemd5_streamldlex_popstatelang_new_vers_nodebfd_find_targethtab_createafter_allocation_defaultset_output_arch_default_bfd_elf_common_section_indexelfcore_write_s390_ctrselfcore_write_s390_tdbctf_str_addexp_get_fillldemul_default_targetctf_add_memberctf_dynhash_sort_by_namefwrite@@GLIBC_2.2.5__TMC_END__ctf_dynset_existsdeflateResetKeepldemul_after_openelfcore_write_ppc_tarbfd_section_from_shdrldfile_open_command_fileinflateReset2_bfd_generic_link_check_relocself_vxworks_link_output_symbol_hookbfd_check_formatbfd_arm_update_notesgetrlimit@@GLIBC_2.2.5writeargvbsearch@@GLIBC_2.2.5_bfd_elf_default_got_elt_sizebfd_openr_next_archived_file_bfd_nosymbols_find_inliner_infoexp_assert_bfd_elf_strtab_freectf_mmapexp_get_power_bfd_elf_gc_keep_bfd_elf_strtab_savebfd_getl24_bfd_xcoff_stringtab_initldemul_create_output_section_statements_bfd_write_section_stabsgztell_bfd_nocore_core_file_failing_commandbfd_putb24lang_add_fillctf_dprintfbfd_format_string_dist_codebfd_hash_table_initbfd_get_alt_debug_link_info_bfd_elf_swap_verdef_inelfcore_write_ppc_pprctf_arc_flush_cachesbfd_default_vector_bfd_unrecognized_relocctf_hash_createbfd_fprintf_vmabfd_get_linker_sectionxmemdup_bfd_elf_symbol_refs_local_pbfd_get_reloc_upper_bound_bfd_real_fopenctf_add_struct_sized_bfd_dwarf2_find_inliner_info_bfd_int_bfd_0ctf_arc_open_bfd_long_bfd_0_sch_toupperctf_link_shuffle_symsctf_preadbfd_map_over_sectionsctf_dynset_lookupctf_dynhash_insertctf_arc_write_fditerative_hashbfd_new_link_orderbfd_set_start_addressbfd_breadbfd_get_target_infobfd_arch_bits_per_byteihex_vecbfd_section_already_linked_table_init_bfd_elf_link_lookup_local_dynindx_bfd_elf_get_propertyadd_wrapfilename_hashexp_bigintop_bfd_fix_excluded_sec_symsbfd_set_section_flagsarm_elf32_symbian_le_vec_bfd_generic_read_minisymbolsbfd_link_check_relocsstrerror@@GLIBC_2.2.5dlsym@@GLIBC_2.2.5elfcore_write_s390_gs_cbelf32_arm_size_stubs_bfd_elf32_bfd_from_remote_memorybfd_section_already_linked_table_freectf_errnold_canon_sysrootsha1_init_ctxbfd_init_section_compress_status_bfd_nocore_core_file_matches_executable_pdeflateSetDictionaryyyset_debug_bfd_elf_swap_versym_inhtab_hash_pointerzlibCompileFlagsadler32_zplugin_error_pluginbfd_getl64elfcore_write_ppc_vmxctf_decl_finipex_freeyyset_out_tr_flush_bitsctf_dynhash_elementsbfd_arch_default_fill_bfd_elf_link_output_relocsctf_write_memsleep@@GLIBC_2.2.5_bfd_warn_deprecatedlang_new_phdrinflateSync_bfd_elf_init_1_index_sectionbfd_hash_renamectf_hash_define_typepex_input_filectf_decl_sprintfbfd_is_local_labelbfd_get_elf_phdr_upper_boundnext_matching_output_section_statementbfd_generic_define_start_stopelf32_arm_next_input_section_bfd_generic_link_split_sectionlang_size_sections_bfd_elf_copy_private_symbol_data_bfd_elf_copy_private_header_datapex_run_in_environmentoverflow_cutoff_limitldelf_emit_ctf_earlyctf_gzwritexcallocctf_createldemul_before_allocationbfd_elf32_swap_dyn_outctf_dynset_removeexecv@@GLIBC_2.2.5ldelf_map_segmentsbfd_sections_find_ifexp_get_vmactf_set_arrayelfcore_write_linux_prpsinfo64_bfd_elf_end_eh_frame_parsing_bfd_elf_match_sections_by_type_bfd_unlink_from_archive_parentdeflateTuneverilog_vecbfd_set_arch_infosha1_process_block_bfd_elf_symbol_from_bfd_symbol_bfd_elf32_size_infoctf_list_deletebfd_arch_bits_per_addresslang_leave_overlaystrstr@@GLIBC_2.2.5ldemul_hllpex_read_outputctf_type_compatctf_link_writesha1_read_ctxbfd_hash_insertsha1_buffer_bfd_archive_close_and_cleanupldelf_emit_note_gnu_build_idsha1_process_bytes_bfd_elf_get_synthetic_symtabyylex_destroy_bfd_generic_init_private_section_dataopterr@@GLIBC_2.2.5bfd_fdopenwctf_type_resolve_unsliceddlerror@@GLIBC_2.2.5_bfd_elf_strtab_restore_bfd_nocore_core_file_failing_signallex_push_filebfd_get_next_mapent_bfd_nosymbols_find_linetrace_filesbfd_section_from_phdr__ctype_b_loc@@GLIBC_2.3ldfile_set_output_archbfd_elf_gc_mark_dynamic_ref_symbolbfd_section_already_linked_table_traverse_bfd_dwarf2_find_symbol_bias_bfd_elf_get_dynamic_reloc_sectionis_gnu_v3_mangled_dtorconstructors_sortedmri_draw_treeldemul_emit_ctf_earlybfd_plugin_open_inputstderr@@GLIBC_2.2.5_bfd_elf_link_hash_hide_symbol_bfd_add_bfd_to_archive_cachebfd_hash_set_default_size_bfd_elf_link_hash_table_init_bfd_bool_bfd_link_false_errorbfd_seekcplus_demangle_fill_extended_operatorbfd_elf32_arm_stm32l4xx_erratum_scanctf_lookup_by_rawhash_bfd_nolink_bfd_relax_sectionlang_for_each_filebfd_elf_mkcorefile.symtab.strtab.shstrtab.interp.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.jcr.dynamic.got.got.plt.data.bss.comment8@8#T@T 1t@t$Do@N H@H V@^oT@T kox@xz@B@ #@##@#+@+r DMD `M`   5_ 5\I~_~tNN!NN!NN!NN!OO!PP! T T! @i(i!h 0(i!-Xi!3 `"<#