ELF@//@8 @@@@888XE-XE-O-O.O.xV/00  TTTDDPtd?*?*?*TTQtdRtdO-O.O.((/lib/ld-linux-aarch64.so.1GNU‡eߛ/}vXTGNU@`~ju>[N  h0S)#bf0 "X\c]U|"0Iu^o6 c8\>i!9D?iwKP' !\P*bTzD$ 7|{7h>cDm[u6 K02/'u|p.0 (j @ 8  $ libz.so.1_ITM_deregisterTMCloneTable__gmon_start___ITM_registerTMCloneTableinflateEndinflateResetinflateInit_zErrorgzwriteinflatecompressBounduncompresslibdl.so.2dlsymdlerrordlclosedlopenlibc.so.6fflushstrcpy__rawmemchr__printf_chkfnmatchreaddirexecv_IO_putcsetlocaletowlowerfopenstrncmpdcngettextoptindstrrchrpipe__strdupperrordcgettextclosedirftellstrncpy__stack_chk_fail__lxstatunlinkputcharreallocabortstdin_exitstrpbrkkillchmodsbrk__assert_failrewindstrtolisattymmapfeoffgetscallocmsyncstrlentmpfilememsetglobstrstr__errno_locationfseekmemcmpgetpagesizedup2__fprintf_chkctimestdoutfputcfseeko64getrusagefputsstrnlenlseekmemcpyfclosestrtoulmallocstrcatumaskstrcasecmpftello64remove__strncpy_chkgetgidopendir__ctype_b_locgetenvsscanf_obstack_allocated_poptargstderrmunmap_obstack_begin_1wait4_obstack_newchunk__snprintf_chkgetuidsetrlimitgetopt_longexecvpstrncasecmp__fxstat__realpath_chkqsort_rfileno_obstack_memory_usedgetcwdfwritefread__memcpy_chkwaitpidstrchrvfork__vfprintf_chkmkstempsfdopenqsortsleep__strcpy_chkobstack_alloc_failed_handler__cxa_finalizebsearch__vasprintf_chkfcntl__sprintf_chk__xstatgetrlimitmemmovefopen64pread_obstack_beginbindtextdomainaccess_IO_getcpipe2opterr__strcat_chkstrcmpstrerror__asprintf_chk__libc_start_mainferrorstpcpyglobfreegetopt_long_onlysnprintfsysconf_obstack_free__environld-linux-aarch64.so.1__stack_chk_guardZLIB_1.2.0GLIBC_2.17 '  O.(O.O.O.O.O.)P.P.ЛP.P.؛ P.(P.0P.8P.@P.HP.PP.XP.(`P.0hP.8pP.@xP.HP.PP.XP.`P.hP.pP.8!(P.xP.P.P.X)P.,(P.,(P.P.P.P.Q.Q.Q.Я(Q. Q.Ȝ(Q.М0Q.؜8Q.@Q.HQ.PQ.XQ.`Q.hQ.PpQ.xQ.(Q.0Q.8Q.PQ.hQ.Q.Q.Q.Q.НQ.؝Q.Q.Q.Q.Q.(Q.HR.`R.pR.xR. R.(R.0R.8R.@I(@R.HR.PR.XR.О`R.؞hR.pR.xR.P'R.R.R.R.X)R.R.(R.0R.8R.@R.HR.PR.XR.`R.pR.R.S.S.S.S. A( S.(S.0S.П8S.h'@S.HS.PS.XS.`S.hS.pS. xS.(S.0S.((S.@S.HS.PS.XS.hS.xS.S.S.S.S.S.S.Ȣ)S.ȠT.ؠT.T.T. T.((T.0T. 8T.0@T.8HT.@PT.PXT.h`T.phT.pT.xT.T.T.ȡT.ءT.T.T.T.T.T. T.(T.0T.8T.T.@T.PT.`U.hU.xU.U. U.(U.0U.Ȣ8U.@U.HU.PU.XU. `U.(hU.8pU.HxU.PU.XU.`U.pU.xU.U.U.U. )U.U.U.ȣU.УU.U.U.U. V.0V.@V.XV.p V.(V.0V.8V.@V.ȤHV.ФPV.XV.`V.hV.pV. xV.0V.@V.PV. V.`V.xV.V.V.V.V.V.ХV.V.V.V.V.(W.HW.`W.W. W.(W.0W.Ȧ8W.ئ@W.HW.PW.XW.`W.hW.pW. xW.8W.HW.0D)W.XW.`W.hW.pW.xW.W.W.W.W.W.W.*W.W.X.ЧX.X.X. X.(X.(0X.08X.8@X.@HX.HPX.XXX.``X.hhX.ppX.xX.X.X.X.X.بX.X.X. X.(X.0X.8X.HX.XX.`X.pX.X.Y.Y.`Y.h Y.p(Y.0Y.8Y.@Y.HY.xY. Y.PY.w)Y. Y. Y. Y. Z. Z. 8Z.С@Z. PZ.wZ. Z.@ Z.H Z.С[.X [.p @[. P[. x[.*[. [. [. [. \. \.@ @\.` P\. \. \.9(\.\.(].(].H8].X@].`P].x].X].].].].^.^.8^.@^. P^.Hx^.X^.`^.^.^.p'^._._.8_. @_.0P_.X_.p_._._.`.`.@`.P`.`.`.P`.``.`.Сa.@a.Pa.xa.Сa.a.8a.a.a.a.b. b.@@b.HPb.xb.Hb.b.b.c.c.@c.Pc.c. c.@c.Pc.xd.Pd.xd.Сd.d.d.d.e.(e.@@e.PPe.xe.e.e.e.e.Сf.f.8f.С@f.Pf.(f.0f.@f.Hf.xf.@g.g.8g.@g.Pg.g.g.(g.8h.Xh.@h.Ph.h.h.h.h. h.@i.08i.P@i.XPi.i.i.i.i.j.j.(@j.HPj.j.j.k.k.@k.Pk.hxk. k.pk.k.k.!*l.Pl.l.l.l.m.Pm. m.0m.Xm.hm.n.n.@n.Pn.n. n.Pn.hn.o.o.@o.Po.(xo.0o.Ho.Xo.ho.xo.p.p.H@p.XPp.xp.p.p.p.p.@q.q.@q.0Pq.`q.pq.q.q.r.r.@r.0Pr.Xr.pr.r.r.s.s. 8s.@@s. Ps.8 xs.@ s.P s. s. s. t. t. @t.!Pt.(!t.8!t.p!t.!t.!u.!u."@u.0"Pu.P"xu.h"u.p"u."u."u."v."v.#@v.(#Pv.`#v.x#v.#v.#v.#w.$w. $@w.0$Pw.`$w.p$w.$w.$w. x.$x.%@x. %Px.@%x.P%x.h%x.p%x.%y.%y.%@y.%Py.(&y.0&y.h&y.x&y.&y.Сz.&z.&8z.P@z.&Pz. 'xz.Pz.0'z.z.`'z.x'{.'@{.'P{.'{.'{.'{.({. (|.8(|.p(P|.(x|.(|.(|.(|.(|.(|. )|.0)}.8)}.`)8}.p)@}.)P}.)}.)}.)}.)}.*}.@~.*~.0*@~.H*P~.p*x~.*~.*~.*~.*~.*~.*~.*.*.+8.*@.+P.(+x.*.8+.X+.*.h+.+.*.+.+@.+P.,x.,.,.,Ѐ.,.С.,.-8.@@.(-P.-.-.-.-Ё...8..X.8.С@.h.P..x.@.....С..Ђ.../.0/@.H/P././././Ѓ./.0.H0@.X0P.x0.0.0Є.0.0. 1@.@1P.h1.x1.1.@.1Ѕ.1.@.1.02@.@2P.x2.2.2.2І.2.3.3.@3@.X3P.3.3.3.3Ї. 4.84.p4@.4X.Phh.x.Xh.`h.hh.ph.xhȈ.h؈.h.h.h.h.h(.h8.hH.hX.hh.hx.x.I(.М..ȉ.؉.....x(.О8. H.X.h.P'x....X).Ȋ.ء؊.0.h.h.h.x(.88.PH.hX.h.x.`.v.v.v.v.v.v.v.w.wȋ. wЋ.q.q.r0.rP.(rp.8r.Pr.hrЌ.xr.r.r0.rP.rp.r.r.rЍ.s.(s.@sP.qp.q.r.rЎ.(r.8r.Pr0.hrP.xrp.r.r.rЏ.r.r.r0.rP.sp.(s.@sА.q.q.r0.rP.(rp.8r.Pr.hrБ.xr.r.r0.rP.rp.r.r.rВ.s.(s.@sP.qp.q.r.rГ.(r.8r.Pr0.hrP.xrp.r.r.rД.r.r.r0.rP.sp.(s.@sЕ.q.q.r0.rP.(rp.8r.Pr.hrЖ.xr.r.r0.rP.rp.r.r.rЗ.s.(s.@sP.qp.q.r.rИ.(r.8r.Pr0.hrP.xrp.r.r.rЙ...0.ЊP.p...К..0.r0.rP.rp.r.H.XЛ.p..0.P.p.ȋ.؋М.q.q.r0.rP.(rp.8r.Pr.hrН.xr.r.r0.rP.p...ЊО...0.P.p.0.r.rП.r.r.H0.XP.pp...Р..ȋ.؋P.qp.q.r.rС.(r.8r.Pr0.hrP.xrp.r.r.rТ.r.r.r0.rP.sp.(s.@sУ.q.q.r0.rP.(rp.8r.Pr.hrФ.xr.r.r0.rP.rp.r.r.rХ.s.(s.@sP.qp.q.r.rЦ.(r.8r.Pr0.hrP.xrp.r.r.rЧ.r.r.r0.rP.sp.(s.@sШ.q.q.r0.rP.(rp.8r.Pr.hrЩ.xr.r.r0.rP.p...ЊЪ...0.P.p.0.r.rЫ.r.r.H0.XP.pp...Ь..ȋ.؋P.qp.q.r.rЭ.(r.8r.Pr0.hrP.xrp.r.r.rЮ...0.ЊP.p...Я..0.r0.rP.rp.r.H.Xа.p..0.P.p.ȋ.؋.'.'...(.'0.'8.ȫ'@.'H.'P. 'X.`.8'h.H'p.x'x.'.'.Ȭ'.'.'. '.H'.x'.'.'Ȳ.'в.X'ز.ȭ'.. ..p.8... .(.(.-0.@-8.,@.%H.p,P.+X.*`.Xh.p.x......'.'.'.'.'.'.'.' . '(.0'0.@'8.X'@.p'H.'P.'X.'`.'h.'p.'x.'.0'.H'.`'.x'.'.'.'.'.'ȴ.'д. 'ش.8'.P'.h'.'.'.'.'.'.' .'(.('0.@'8.X'@.p'H.'P.'X.'`.'h.'p.'x.'.0'.H'.`'.x'.'.'.'.'.'ȵ.'е. 'ص.@'.X'.h'.'.'.'.'.'.' .'(.'0.('8.@'@.X'H.p'P.'X.'`.'h.'p.'x.'.'.8'.X'.x'.'.'.'.'.'ȶ.('ж.P'ض.p'.'.'.'.'.'.'.('.@' .X'(.p'0.'8.'@.'H.'P.'X.'`.'h.0'p.H'x.`'.x'.'.'.'.'.'.'.('.@'ȷ.X'з.p'ط.'.'.'.'.'.0'.P'.p'.' .'(.'0.'8.'@.0'H.P'P.p'X.'`.'h.'p.'x.'.0'.P'.p'.'.'.'.'.'.'ȸ.'и.0'ظ.H'.`'.x'.'.'.'.'.'.' .0'(.H'0.h'8.'@.'H.'P.'X.'`.'h.('p.@'x.X'.p'.'.'.'.'.'.'.8'.X'ȹ.x'й.'ع.'.'.'.'. '.8'.P'.h'.x' .'(.'0.'8.'@.'H.'P.'X.0'`.H'h.`'p.x'x.'.'.'.'.('.H'.`'.'.'.'Ⱥ.'к.'غ. '.@'.`'.'.'.'.'.'.' .8'(.P'0.p'8.'@.'H.'P.'X.'`. 'h.@'p.`'x.x'.'.'.'.'.'.'.8'.P'.h'Ȼ.'л.'ػ.'.'.'.'. '.8'.X'.p'.' .'(.'0.'8.'@. 'H.@'P.X'X.x'`.'h.'p.'x.'.'.@'.`'.'.'.'.'.'.0'ȼ.X'м.p'ؼ.'.'.'.'.'.'.('.@'.X' .p'(.'0.'8.'@.'H.'P.'X.'`.0'h.H'p.`'x.x'.'.'.'.'.'.'.8'.X'.x'Ƚ.'н.'ؽ.'.'.'.'.8'.X'.x'.'.' .'(.'0.'8. '@.@'H.X'P.x'X.'`.'h.'p.'x.'. '.8'.P'.p'.'.'.'.'.'Ⱦ.('о.H'ؾ.h'.'.'.'.'.'.('.H'.`' .x'(.'0.'8.'@.'H.'P.'X. '`.8'h.P'p.h'x.'.'.'.'.'.'.('.H'.h'.'ȿ.'п.'ؿ.'.'.'.'.8'.X'.x'.'.' .'(.'0.'8.('@.@'H.`'P.'X.'`.'h.'p.'x.'.8'.X'.x'.'.'.'.'. '.@'.`'.'.'.'.'.'.'.('.@'.X'.p' .'(.'0.'8.'@.'H.('P.@'X.X'`.p'h.'p.'x.'.'.'.'.'.0'.P'.p'.'.'.'.'.'.'.('.@'.`'.'.'.'.' .'(. '0.@'8.X'@.x'H.'P.'X.'`.'h.'p.8'x.P'.h'.'.'.'.'.'.'.'.('.H'.h'.'.'.'.'.'. '.@'.X'.p' .'(.'0.'8.'@.'H.('P.@'X.`'`.'h.'p.'x.'.'. '.@'.`'.'.'.'.'.'. '.@'.`'.'.'.'.'.'. '.@'.X' .x'(.'0.'8.'@.'H.(P. (X.@(`.`(h.(p.(x.(.(.(.8(.X(.(.(.(.(.(.(.(.((.@(.X(.p(.(.(.(.(.( .((.8(0.X(8.x(@.(H.(P.(X.(`.(h.0(p.P(x.p(.(.(.(.(.(.0(.P(.p(.(.(.(.(.(.(. (.@(.`(.(.(.( .((.(0.((8.H(@.h(H.(P.(X.(`.(h.(p.@(x.X(.x(.(.(.(. (.8 (.P (.` (. (. (. (. (. (. (.8 (.X (.x (. (. (. ( . ((. (0.8 (8.X (@.x (H. (P. (X. (`. (h. (p. (x.8 (.P (.h (. (. (. (. (. (.( (.H (.h (. (. (. (. (.(.(.0(.H(.`(.x( .((.(0.(8.(@.(H.(P.((X.H(`.h(h.(p.(x.(.(.(.(.0(.H(.h(.(.(.(.(.(.(.(.8(.X(.x(.(.(.(.( .((.(0.0(8.H(@.`(H.x(P.(X.(`.(h.(p.(x. (.8(.P(.h(.(.(.(.(. (.@(.`(.(.(.(.(.(.(.(.0(.P(.p( .((.(0.(8.(@.(H. (P.8(X.X(`.x(h.(p.(x.(.(.(.(.8(.P(.h(.(.(.(.(.(.(.(.((.@(.X(.p(.(.(.( .((.(0.(8.((@.@(H.X(P.p(X.(`.(h.(p.(x.(.(.(.0(.H(.h(.(.(.(.(.(. (.8(.X(.x(.(.(.(.(.(.0( .P((.p(0.(8.(@.(H.(P.(X.(`.(h.8(p.X(x.p(.(.(.(.(.(.(. (.8(.P(.h(.(.(.(.(.(.(.8(.P(.p(.( .((.(0.(8.(@. (H. (P.@ (X.` (`.x (h. (p. (x. (. (.!(.(!(.@!(.P!(.h!(.!(.!(.!(.!(.!(.!(."(.("(.H"(.h"(."(."(."(."( ."((.#(0. #(8.8#(@.P#(H.h#(P.x#(X.#(`.#(h.#(p.#(x.#(.$(.($(.H$(.h$(.$(.$(.$(.$(.%(.%(.0%(.H%(.`%(.x%(.%(.%(.%(.%(.%(.&( . &((.8&(0.P&(8.h&(@.&(H.&(P.&(X.&(`.'(h.'(p.8'(x.X'(.x'(.'(.'(.'(.'(.((.(((.H((.`((.x((.((.((.((.((.((.)(.0)(.P)(.p)(.)( .)((.)(0.)(8.)(@.*(H.0*(P.P*(X.x*(`.*(h.*(p.*(x.+(.+(.0+(.H+(.`+(.x+(.+(.+(.+(.+(.+(.,(. ,(.8,(.P,(.h,(.,(.,(.,(.,(.,( .,((.-(0.(-(8.H-(@.h-(H.-(P.-(X.-(`.-(h.-(p..(x..(.8.(.P.(.h.(..(..(..(..(..(./(./(.0/(.H/(.`/(.x/(./(./(./(./(./(.0( . 0((.80(0.X0(8.p0(@.0(H.0(P.0(X.0(`.0(h.1(p.01(x.H1(.h1(.1(.1(.1(.1(.1(.2(.(2(.H2(.h2(.2(.2(.2(.2(.2(.3(. 3(.@3(.X3(.p3( .3((.3(0.3(8.3(@.3(H.4(P.4(X.84(`.X4(h.p4(p.4(x.4(.4(.4(.5(.(5(.@5(.`5(.5(.5(.5(.5(.5(.6(.06(.P6(.p6(.6(.6(.6(.6(.7( .(7((.H7(0.h7(8.7(@.7(H.7(P.7(X.8(`.(8(h.H8(p.h8(x.8(.8(.8(.8(.9(.(9(.H9(.h9(.9(.9(.9(.9(.:(.(:(.H:(.h:(.:(.:(.:(.:(.:( .;((.0;(0.P;(8.p;(@.;(H.;(P.;(X.;(`.<(h.(<(p.P<(x.x<(.<(.<(.<(.<(.<(.=(.0=(.H=(.`=(.x=(.=(.=(.=(.=(.>(.0>(.P>(.p>(.>(.>( .>((.>(0.?(8.0?(@.P?(H.p?(P.?(X.?(`.?(h.?(p.@(x.0@(.P@(.x@(.@(.@(.@(.@(.A(.(A(.@A(.XA(.pA(.A(.A(.A(.A(.B(.0B(.PB(.pB(.B( .B((.B(0.C(8. C(@.HC(H.`C(P.xC(X.C(`.C(h.C(p.C(x.D(.D(.0D(.PD(.hD(.D(.D(.D(.D(.D(.E(.8E(.PE(.hE(.E(.E(.E(.E(.E(.F(. F( .@F((.`F(0.xF(8.F(@.F(H.F(P.F(X.G(`.G(h.0G(p.HG(x.`G(.G(.G(.G(.G(.G(.H(.8H(.XH(.xH(.H(.H(.H(.H(.I(.0I(.HI(.hI(.I(.I(.I( .I((.I(0.I(8.J(@.(J(H.@J(P.XJ(X.pJ(`.J(h.J(p.J(x.J(.J(.K(.8K(.`K(.xK(.K(.K(.K(.K(.K(.L(.L(.0L(.HL(.`L(.xL(.L(.L(.L(.L( .L((.M(0. M(8.@M(@.`M(H.M(P.M(X.M(`.M(h.M(p.N(x.(N(.@N(.`N(.N(.N(.N(.N(.O(. O(.@O(.`O(.xO(.O(.O(.O(.O(.P(. P(.8P(.XP(.xP( .P((.P(0.P(8.P(@.Q(H.8Q(P.XQ(X.xQ(`.Q(h.Q(p.Q(x.Q(.R(.R(.0R(.HR(.hR(.R(.R(.R(.R(.R(.S(.(S(.HS(.`S(.xS(.S(.S(.S(.S(.S( .T((.0T(0.HT(8.`T(@.xT(H.T(P.T(X.T(`.T(h.T(p.U(x.0U(.PU(.pU(.U(.U(.U(.U(.V(.0V(.PV(.pV(.V(.V(.V(.V(.V(.V(.W(.(W(.@W(.XW( .xW((.W(0.W(8.W(@.W(H.X(P. X(X.8X(`.PX(h.pX(p.X(x.X(.X(.X(.Y(.(Y(.HY(.`Y(.xY(.Y(.Y(.Y(.Y(.Y(.Z(.(Z(.HZ(.hZ(.Z(.Z(.Z(.Z( .[((. [(0.@[(8.X[(@.x[(H.[(P.[(X.[(`.[(h.[(p.\(x.(\(.@\(.X\(.p\(.\(.\(.\(.\(.\(.](. ](.8](.P](.h](.](.](.](.](.](.^(.^( .0^((.H^(0.`^(8.^(@.^(H.^(P.^(X.^(`.^(h._(p.0_(x.P_(.h_(._(._(._(._(._(._(.`(.(`(.@`(.X`(.p`(.`(.`(.`(.`(.`(.`(.a(.0a( .Ha((.`a(0.xa(8.a(@.a(H.a(P.a(X.a(`.b(h.(b(p.@b(x.Xb(.pb(.b(.b(.b(.b(.b(.c(.c(.0c(.Hc(.`c(.xc(.c(.c(.c(.c(.c(.d(. d(.8d( .Pd((.hd(0.d(8.d(@.d(H.d(P.d(X.d(`.e(h.(e(p.@e(x.Xe(.pe(.e(.e(.e(.e(.e(.f(.0f(.Pf(.pf(.f(.f(.f(.f(.f(.g(.g(.0g(.Hg(.hg( .g((.g(0.g(8.g(@.g(H.h(P. h(X.8h(`.Ph(h.hh(p.h(x.h(.h(.h(.h(.i(.i(.8i(.Pi(.pi(.i(.i(.i(.i(.i(.j(. j(.8j(.Pj(.hj(.j(.j( .j((.j(0.k(8.k(@.0k(H.Hk(P.`k(X.xk(`.k(h.k(p.k(x.k(.k(.l(.0l(.Pl(.pl(.l(.l(.l(.l(.l(.m(.0m(.Pm(.pm(.m(.m(.m(.m(.n(.n( .0n((.Hn(0.`n(8.n(@.n(H.n(P.n(X.o(`. o(h.@o(p.`o(x.o(.o(.o(.o(.p(. p(.@p(.`p(.p(.p(.p(.p(.p(.q(.q(.0q(.Hq(.`q(.xq(.q(.q( .q((.q(0.q(8.r(@. r(H.@r(P.`r(X.r(`.r(h.r(p.r(x.r(.s(.0s(.Ps(.ps(.s(.s(.s(.s(.t(.t(.8t(.Xt(.pt(.t(.t(.t(.t(.t(.u(. u( .8u((.Pu(0.pu(8.u(@.u(H.u(P.u(X.u(`.v(h.v(p.8v(x.Xv(.pv(.v(.v(.v(.v(.v(.w(.w(.0w(.Hw(.`w(.w(.w(.w(.w(.w(.x(.x(.0x(.Hx( .`x((.xx(0.x(8.x(@.x(H.x(P.x(X.y(`. y(h.8y(p.Py(x.hy(.y(.y(.y(.y(.y(.z(. z(.8z(.Pz(.hz(.z(.z(.z(.z(.z(.z(.{(.({(.@{(.X{( .p{((.{(0.{(8.{(@.{(H.{(P.|(X.(|(`.@|(h.`|(p.|(x.|(.|(.|(.|(.}(.0}(.H}(.`}(.x}(.}(.}(.}(.}(.~(.8~(.X~(.p~(.~(.~(.~(.~( .((. (0.8(8.P(@.h(H.(P.(X.(`.(h.(p.(x.((.H(.`(.x(.(.(.(.(.(.(.((.@(.`(.(.(.(.(.(. (.@(.`( .((.(0.(8.(@.(H. (P.@(X.`(`.(h.(p.(x.(.(.(.0(.H(.`(.x(.(.(.Ȅ(.(.(.(.((.@(.X(.p(.(.(.(.Ѕ( .((.(0. (8.@(@.X(H.x(P.(X.(`.І(h.(p.(x.0(.H(.h(.(.(.Ї(.(.(.8(.X(.p(.(.(.Ȉ(.(.(. (.@(.X(.p(.( .((.(0.؉(8.(@.(H. (P.8(X.P(`.h(h.(p.(x.(.Ȋ(.(.(. (.@(.`(.(.(.(.(.(. (.@(.`(.x(.(.(.،(.(.( .(((.@(0.X(8.p(@.(H.(P.ȍ(X.(`.(h. (p.@(x.`(.x(.(.(.؎(.(.(.0(.H(.`(.x(.(.(.(.(.(. (.@(.`(.(.( .((.А(0.(8.(@.((H.@(P.X(X.p(`.(h.(p.Б(x.(.(.0(.P(.p(.(.(.В(.(.(.0(.P(.p(.(.(.Г(.(.(.0(.P(.p( .((.(0.Д(8.(@.(H.0(P.H(X.`(`.x(h.(p.(x.ؕ(.(.(.8(.X(.x(.(.(.Ж(.(.(.((.H(.`(.x(.(.(.(.ؗ(.(.( . ((.8(0.P(8.h(@.(H.(P.(X.ؘ(`.(h.(p. (x.8(.X(.x(.(.(.Й(.(.(.8(.`(.(.(.ؚ(.(.(.@(.p(.(.(.(.( . ((.H(0.h(8.(@.(H.Ȝ(P.(X.(`.((h.H(p.h(x.(.(.؝(.(.((.P(.x(.(.(.О(.(.(.(.0(.P(.p(.(.(.П(.(.( .0((.P(0.p(8.(@.(H.Р(P.(X.(`.8(h.`(p.(x.(.ȡ(.(.(.8(.`(.(.(.(.(.(. (.@(.`(.(.(.(.(.(.0(.X( .((.(0.Ф(8.(@. (H.H(P.p(X.(`.(h.(p.(x.H(.x(.(.ئ(.(.((.X(.(.(.Ч(.(.0(.`(.(.(.(. (.P(.x(.(.Щ( .((.((0.P(8.x(@.(H.Ъ(P.(X.((`.P(h.(p.(x.(.(.@(.p(.(.Ь(.(.((.P(.x(.(.ȭ(.(.(.@(.`(.(.(.(.خ(.( .((.8(0.X(8.x(@.(H.(P.د(X.(`. (h.P(p.(x.(.ذ(.(.0(.X(.p(.(.(.б(.(.(.8(.X(.x(.(.(.ز(.(.(.8(.X( .x((.(0.(8.س(@.(H.(P.@(X.h(`.(h.(p.(x.(.0(.X(.x(.(.(.(.(.8(.`(.(.(.ȶ(.(.(.((.H(.h(.(.(.з( .((. (0.H(8.h(@.(H.(P.(X.(`.0(h.X(p.(x.(.й(.(. (.H(.p(.(.(.(.(.((.H(.p(.(.(.(.(.8(.`(.(.( .((.м(0.(8.(@.((H.H(P.`(X.(`.(h.(p.(x.(. (.@(.`(.(.(.(.(.(. (.@(.`(.(.(.(.(.(. (.@(.`(.( .((.(0.(8.(@.8(H.`(P.(X.(`.(h.(p.((x.P(.x(.(.(.(. (.P(.(.(.(.(.8(.`(.(.(.(.(.((.P(.x(.( .((.(0.(8.@(@.h(H.(P.(X.(`.(h.@(p.p(x.(.(.(.0(.`(.(.(.(.(.@(.p(.(.(.(.0(.`(.(.(.(.(.( .0((.P(0.p(8.(@.(H.(P.(X.0(`.X(h.(p.(x.(.(.(.(.0(.H(.h(.(.(.(.(.(.(.((.@(.X(.p(.(.(.(.( .((.0(0.P(8.p(@.(H.(P.(X.(`.(h.(p.0(x.P(.p(.(.(.(.(.(.8(.P(.p(.(.(.(.(.(.(.0(.P(.p(.(.( .((.(0.(8.0(@.P(H.p(P.(X.(`.(h.(p.(x. (.@(.`(.(.(.(.(.(.((.H(.h(.(.(.(.(.(.8(.X(.x(.(.( .((.(0.(8.8(@.`(H.x(P.(X.(`.(h.(p. (x.@(.`(.(.(.(.(.(.(.8(.`(.(.(.(.(.(.8(.X(.p(.(.(.( .((.(0.(8.0(@.X(H.(P.(X.(`.(h.((p.X(x.x(.(.(.(.(.(.(. (.8(.P(.h(.H(.h!0/P( /"08/@P/#0h/X(/$0/p(/(/(/(/(/X1//0(/8(/ / / (/ 0/ 8/0 @/ H/ P/ X/ `/ h/ p/h x/ / //X //////////X////////8/////@/x/P/`')h/('0x/p')/')/')/')/8/')X/ȣ'/ )/)/)/I8/'X/')x/')/(/'/')/')8/')X/'/()/'/'/)X/`6x/HC/У'/()/()8/(()X/8()x/H()/h(/X()/h()/x()/()8/()X/()/h6/XC/ /()8 /'X /()x /() /() /() /( / ) /X )X /'x /: / /)) /)) / )) /0)) /@)) /P))( /`))0 /p))8 /))@ /))H /))P /))X /P<)h /0=)x /@=) /P=) /`=) /p=) /=) /=) /=) /=) /=) /=) /() /')( /()0 /')8 /L)@ /L)H /()P /')X /()` /')h /()p /p')x /L) /L) /L) /L) /L) /M) /M) / M) /8M) /HM) /' /`M) /pM) /M) /M) /M) /M) /M) /M) /N) /M) /N)( /N)0 / N)8 /8N)@ /HN)H /XN)P /hN)X /xN)` /N)h /N)p /N)x /N) /N) /N) /O) / O) /8O) /0( /8( /3 /* /`4 /h ///H// /8 /(/0/8/@/X/u)h/Xu)x/t)/s)/`s)/s)/r)/pr)/`p)/r)/q)/p)/p)(/o)8/n)H/ n)X/m)h/m)x/m)/xm)/`m)/t)/8t)/)/)/)/)/ș)/ؙ)/)/)/)/)/) / )(/0)0/@)8/P)@/X)H/h)P/)X/)`/)h/)p/Ț)x/)/)/)/)/)/)/ )/8(/// )//(0/(H/'`/H)x/I/c/P7/X7/ȵ)/0(/)/)/)/)/)/)/) /)(/)0/)8/)@/)H/ )P/()X/0)`/()h/)p/)x/)/)/ )/H)/X)/p)/)/)/)/)/)/)/)/0/x(/8)/@)/H)/P)/`)/ ( /h)(/x)0/)8/)@/vh/v/v/)/x)/()/8)/H)/X)/)/()/0) /8)0/@)@/H)P/P)`/X)p/`)/h)/p)/x)/)/)/)/)/)/)/) /)0/)@/)P/)`/)p/)/)/)/)/)/ )/()/0)/8)/@)/H) /P)0/X)@/h)P/x)`/)p/)/)/)/)/)/)/)/)/)/)/) / )0/0)@/@)P/P)`/`)p/p)/x)/)/)/)/)/)/)/)/)/) /)0/ )@/0)P/@)`/P)p/`)/p)/)/)/)/)/)/)/)/)/) /X)0/)@/)P/ )`/0)p/@)/P)/`)/p)/)/)/)/)/)/)/) /)0/)@/)P/ )`/0)p/@)/)/P)/`)/h)/p)/x)/)/)/)/) /)0/)@/)P/)`/)p/)/)/)/)/ )/p)/0)/8)/@)/)/x) /)0/h)8/)H/)X/)h/)x/)/)/)/)/)/)/)/ )/()/h)/(/)8/)H/)X/@)h/)x/)/)/)/)/P)//)/)/)/)/X)(/`)8/)H/p)X/)////////////////// /(/0/)h/8)/0!*/؊/!*/!*/"* /"* /"* /"* / "* /("*( /0"*0 /8"*8 /@"*@ /H"*H /P"*P /nX /X"*` /phh /`"*p /1)x /h"* /h /p"* /P+* /x"* /h /"* /1) /"* / /"* /1) /"* /( /"* /< /"*!/"*!/p!* !/!*(!/!*0!/!*8!/!*@!/!*H!/!*P!/!*X!/!*`!/!*x!/!/"*!/P)!/"*!/#*!/#*!/@#*!/H#*!/`#*!/h#*!/#*"/#*"/#*"/#*@"/@**P"/@**x"/p**"/p**"/**"/**"/**"/**"/**"/**#/** #/+*0#/ +*@#/X+*X#/h+*h#/x+*x#/+*#/+*#/+*#/,*#/,*#/,*#/(,*#/0,*$/8,*$/@,* $/H,*0$/H,*@$/P,*P$/P,*`$/`,*p$/`,*$/h,*$/h,*$/x,*$/x,*$/Ph$/Ph$/,*$/,* %/,*0%/,*@%/,*P%/,*`%/,*p%/,*%/,*%/,*&/,*&/,* &/,*0&/,*`&/-*p&/-*&/-*&/8,*&/-*&/,*&/ -*&/ -*&/8 *&/8 *'/8-*'/8-* '/H-*0'/H-*@'/X-*P'/X-*`'/h-*p'/h-*'/p-*'/p-*'/x-*'/x-*'/-*'/-*'/H**'/H**(/-*(/h(/-* (/n0(/-*8(/hH(/-*P(/1)`(/)h(/1)x(/@*(/-*(/-*(/-*(/-*(/-*(/-*(/-*(/.*(/.*(/.*(/.*)/ .*)/(.* )/0.*()/ph8)/8.*@)/@.*P)/H.*X)/P.*h)/wp)/`.*)/ w)/()/p.*)/n)/x.*)/.*)/.*)/.*)/.*)/(0*)/.**/<*/`w)*/.*(*/.*0*/.*@*/.*H*/.*X*/.*`*/hp*/.*x*/8 **/.**/8 **/.**/8 **/.**/8 **/2*/h*/K*/P&*+/.*+/P+*+//* +/x&*0+//*8+/xhH+/'P+/h`+/p)h+//*x+/ +/h+/P)+/1)+/ /*+/`h+/(/*+/hh+/0/*+/+/8/*+/(,/@/*,/H/* ,/P/*(,/X/*8,/$@,/hP,/X,/h,/!*p,/`/*,/h/*,/p/*,/x/*,/h,//*,/h,/("*,/1),//*,/Xh,//*-/1)-//*-//*(-//*0-//*@-//*H-/1)X-/`-//*p-//*x-/x)-//*-//*-//*-/h-//*-//*-/0*-/0*-/M)-/h./0*./ 0*./00* ./ 0*0./ )8./80*H./P'P./H0*`./-*h./P0*x./X0*./P0*./M)./`0*./h0*./p0*./././ ./ ./ // // // //  //H/(//P/8//(H//X(X//p(`//R/h//(p//U/x//(//R///(//R///(//R///(//(//R///(//0(//U///H(//(///X(0/(/0/h(0//0/x( 0/(/(0/(80/(@0/(/H0/(P0/(/X0/(h0/(x0/(0/(0//0/(0/(/0/(0/ (0/0(0/@(0/P(0/`(1/x(1/((1/(01/(/81/(@1/(/X1/R/`1/U/h1/z/p1/H~/x1/(/1//1/X/1//1/X/1//1/P/1/p/Z>/P[>/Y>/Y >/ (>/00>/(8>/`Z@>/H>/P>/ X>/`>/Yh>/ p>/ x>/>/H >/ >/>/(c>/Y>/>/>/>/>/ >/>/>/Z>/Z>/Z>/(?/0?/x ?/ ?/ ?/(?/P0?/o8?/p@?/wH?/(wP?/0X?/H`?/Ph?/p?/x?/?/?/?/?/`?/x?/?/?/Z?/?/8?/Z?/8?/x(@/^ @/^(@/p_0@/8^8@/P^@@/0_H@/x]P@/]X@/]`@/^h@/^p@/p_x@/8^@/P^@/0_@/x]@/]@/]@/p[@/= @/p[@/p[@/Y@/0 @/Ȼ@/Y@/Y@/8 @/8A/YA/A/(ZA/H A/@7 (A/hb0A/8Z8A/0Z@A/eHA/HZPA/PZXA/8Z`A/@ZhA/XZpA/[xA/0[A/ZA/P[A/YA/YA/ A/0A/(A/`ZA/A/A/ A/A/YA/, A/, A/. B/x7 B/h. B/B/(c B/Y(B/0B/8B/@B/HB/ PB/XB/`B/ZhB/ZpB/ZxB/(B/0B/8. B/7 B/x- B/B/PB/oB/pB/wB/(wB/0B/HB/PB/B/B/C/C/C/C/` C/x(C/0C/8C/Z@C/HC/8PC/ZXC/8pC/(C/^C/^C/p_C/8^C/P^C/0_C/x]C/]C/]C/^C/^C/p_C/8^D/P^D/0_D/x]D/] D/](D/p[0D/p[8D/p[@D/p[HD/YPD/? XD/Y`D/YhD/YpD/P@ xD/YD/YD/D/(ZD/HD/`D/hbD/8ZD/0ZD/eD/HZD/PZD/8ZD/@ZD/XZD/[D/0[E/ZE/P[E/YE/Y E/ (E/00E/(8E/`Z@E/HE/PE/ XE/`E/YhE/ZpE/xE/E/E/E/E/E/YE/E/E/E/E/ E/(E/0E/ZE/ZE/ZE/(F/0F/? F/> F/ F/ (F/0F/H8F/Z@F/PHF/XPF/ZXF/``F/PhF/ZpF/(xF/ZF/0F/8F/@F/hF/pF/F/xF/ZF/F/8F/ZF/8G/S G/(G/@(@G/^HG/_PG/_XG/H^`G/h^hG/P_pG/]xG/]G/]G/^G/_G/_G/H^G/h^G/P_G/]G/]G/]G/p[G/ G/G/ G/YG/8t H/ȻH/HI H/YH/p H/8(H/ 0H/t 8H/s @H/Hs HH/`PH/hbXH/ T `H/q hH/ pH/ xH/ H/ H/G H/q H/ H/ H/ H/ H/H/H/H/xH/H/H/H/pH/I/I/(ZI/ I/ I/( (I/X 0I/X 8I/V @I/h HI/O PI/P XI/ `I/` hI/q pI/ xI/I/I/x I/ I/I/pI I/xp I/x I/h I/ I/I/PI/Xo I/ I/wI/h I/` J/HJ/` J/h J/ J/`= (J/hS 0J/S 8J/@J/ HJ/xPJ/A XJ/ `J/ hJ/ pJ/l xJ/ J/ J/J/J/N/J/`(J/^J/^J/p_J/8^J/P^J/0_J/x]J/]K/]K/^K/^K/p_ K/8^(K/P^0K/0_8K/x]@K/]HK/]PK/p[XK/ `K/hK/ pK/YxK/8t K/ȻK/HI K/YK/p K/8K/ K/t K/s K/Hs K/`K/hbK/ T K/q K/ K/ K/ L/ L/G L/q L/ L/ (L/ 0L/ 8L/@L/HL/PL/xXL/`L/hL/pL/pxL/L/L/(ZL/ L/ L/( L/X L/X L/V L/h L/O L/P L/ L/` L/q L/ L/M/M/x M/ M/ M/pI (M/xp 0M/x 8M/h @M/ HM/PM/PXM/Xo `M/ hM/wpM/h xM/` M/HM/` M/h M/ M/`= M/hS M/S M/M/ M/xM/A M/ M/ M/ M/l M/ N/ N/G/N/N/hN/ | pN/ | N/xl N/w N/ N/ȇ N/px N/y N/0l O/ O/` O/p 0O/ 8O/i @O/` HO/ XO/ . `O/ hO/(\ pO/V O/G O/ O/p O/0 O/H O/ O/U O/pT O/@T O/A P/( P/ HP/ PP/( `P/ pP/XJ P/PJ P/ P/0 P/0 P/8 P/pL P/ P/  P/H P/ P/Ȩ Q/Ш Q/pQ Q/HH (Q/N 0Q/x} 8Q/L @Q/`XQ/]/pQ/ Q/(Q/X Q/hP Q/O Q/ Q/H Q/I Q/N R/Xs8R/^@R/_HR/_PR/H^XR/h^`R/P_hR/]pR/]xR/]R/^R/_R/_R/H^R/h^R/P_R/]R/]R/]R/p[R/ R/R/ R/YR/8t R/ȻS/HI S/YS/p S/8 S/ (S/t 0S/s 8S/Hs @S/`HS/hbPS/ T XS/q `S/ hS/ pS/ xS/ S/G S/q S/ S/ S/ S/ S/S/S/S/xS/S/S/S/pS/S/T/(ZT/ T/ T/( T/X (T/X 0T/V 8T/h @T/O HT/P PT/ XT/` `T/q hT/ pT/xT/T/x T/ T/T/pI T/xp T/x T/h T/ T/T/PT/Xo T/ T/wT/h T/` T/HU/` U/h U/ U/`= U/hS (U/S 0U/8U/ @U/xHU/A PU/ XU/ `U/ hU/l pU/ xU/ U/U/U/Y/U/~U/^U/^U/p_U/8^U/P^U/0_U/x]U/]U/]V/^V/^V/p_V/8^ V/P^(V/0_0V/x]8V/]@V/]HV/p[PV/ XV/`V/ hV/YpV/8t xV/ȻV/HI V/YV/p V/8V/ V/t V/s V/Hs V/`V/hbV/ T V/q V/ V/ V/ V/ W/G W/q W/ W/ W/ (W/ 0W/8W/@W/HW/xPW/XW/`W/hW/ppW/xW/W/(ZW/ W/ W/( W/X W/X W/V W/h W/O W/P W/ W/` W/q W/ W/W/X/x X/ X/X/pI X/xp (X/x 0X/h 8X/ @X/HX/PPX/Xo XX/ `X/whX/h pX/` xX/HX/` X/h X/ X/`= X/hS X/S X/X/ X/xX/A X/ X/ X/ X/l X/ X/ Y/R/Y/Y/`Y/ | hY/ | xY/xl Y/w Y/ Y/ȇ Y/px Y/y Y/0l Y/ Z/` Z/p (Z/ 0Z/i 8Z/` @Z/ PZ/ . XZ/ `Z/(\ hZ/V xZ/G Z/ Z/p Z/0 Z/H Z/ Z/U Z/pT Z/@T Z/A [/( [/ @[/ H[/( X[/ h[/XJ [/PJ [/ [/0 [/0 [/8 [/pL [/ [/  [/H [/ [/Ȩ [/Ш \/pQ \/HH \/N (\/x} 0\/L 8\/`P\/]/h\/ x\/(\/X \/hP \/O \/ \/H \/I \/N ]/ ]/ (]/ 0]/ 8]/ @]/0 H]/ P]/ X]/ `]/ h]/ p]/ x]/h ]/ ]/S ]/(]/S ]/(^/S ^/(@^/S H^/(h^/S p^/(^/S ^/(^/S ^/(^/S ^/(_/S _/(0_/S 8_/0(X_/S `_/P(_/S _/h(_/S _/(_/S _/(_/S `/( `/S (`/(H`/S P`/(p`/S x`/(`/S `/ (`/S `/8(`/S `/X(a/S a/p(8a/S @a/(`a/S ha/(a/S a/(a/S a/(a/S a/(b/S b/((b/S 0b/0(Pb/S Xb/P(xb/S b/p(b/S b/(b/S b/(b/S b/(c/S c/(@c/S Hc/(hc/S pc/(c/S c/0(c/S c/P(c/S c/p(d/S d/(0d/S 8d/(d/S d/(d/S d/(d/S d/( e/S (e/ (He/S Pe/@(pe/S xe/`(e/S e/(e/S e/(e/S e/(f/S f/(8f/S @f/(f/S f/((f/S f/P(f/S f/x(g/S g/((g/S 0g/(Pg/S Xg/(xg/S g/(g/S g/((g/S g/H(g/S g/h(h/S h/(@h/S Hh/(hh/S ph/(h/S h/(h/S h/0(h/S h/X(i/S i/(0i/S 8i/(Xi/S `i/(i/S i/(i/S i/)i/S i/8)i/S j/X) j/S (j/x)Hj/S Pj/)pj/S xj/)j/S j/)j/S j/)j/S j/()k/S k/H)8k/S @k/p)`k/S hk/)k/S k/)k/S k/)k/S k/)l/S l/8)(l/S 0l/`)Pl/S Xl/)xl/S l/)l/S l/)l/S l/)l/S l/)@m/S Hm/0)hm/S pm/P)m/S m/p)m/S m/)m/S m/)n/S n/)0n/S 8n/)Xn/S `n/)n/S n/)n/S n/)n/S n/0)n/S o/H) o/S (o/`)Ho/S Po/x)po/S xo/)o/S o/(o/T)o/^p/_p/_p/H^p/h^ p/P_(p/]0p/]8p/]@p/^Hp/_Pp/_Xp/H^`p/h^hp/P_pp/]xp/]p/]p/p[p/x6p/p/(Ep/Yp/h p/Ȼp/HI p/Yp/p p/8p/ p/0 p/ p/x q/`q/hbq/ T q/ q/ (q/ 0q/ 8q/ @q/ Hq/@ Pq/0DXq/@D`q/`Dhq/PDpq/xq/q/q/xq/q/q/q/pq/q/q/(Zq/ q/ q/( q/X q/X q/V q/h r/ r/P r/ r/` r/0 (r/ 0r/8r/@r/x Hr/ Pr/Xr/ `r/ hr/x pr/h xr/ r/r/Pr/ r/ r/wr/h r/` r/Hr/` r/h r/ r/`= r/hS r/S r/r/ s/xs/A s/ s/ s/ (s/а 0s/ 8s/ @s/Ps/Hs/v/Ps/T)xs/^s/^s/p_s/8^s/P^s/0_s/x]s/]s/]s/^s/^s/p_s/8^s/P^s/0_s/x]s/]t/]t/p[t/x6t/ t/(E(t/Y0t/h 8t/Ȼ@t/HI Ht/YPt/p Xt/8`t/ ht/0 pt/ xt/x t/`t/hbt/ T t/ t/ t/ t/ t/ t/ t/@ t/0Dt/@Dt/`Dt/PDt/t/u/u/xu/u/ u/(u/p0u/8u/@u/(ZHu/ Pu/ Xu/( `u/X hu/X pu/V xu/h u/ u/P u/ u/` u/0 u/ u/u/u/x u/ u/u/ u/ u/x u/h u/ v/v/Pv/ v/ v/w(v/h 0v/` 8v/H@v/` Hv/h Pv/ Xv/`= `v/hS hv/S pv/xv/ v/xv/A v/ v/ v/ v/а v/ v/ v/o/v/v/ w/X (w/X 8w/ @w/ Xw/ pw/ w/px w/y w/h w/ w/` w/x w/ w/8 w/h x/ x/ . x/h x/` (x/H 8x/G Px/ `x/p hx/0 px/H xx/ x/ x/ x/x x/A x/( x/ y/ y/( y/ (y/ @y/PJ Hy/ Py/0 Xy/0 `y/8 hy/ y/x>y/Iy/ y/ y/Ȩ y/Ш y/ y/HH y/ y/x} y/L y/`z//(z/ 8z/(`z/X hz/ pz/ xz/ z/H z/I z/N z/xz/^z/_{/_{/H^{/h^{/P_ {/]({/]0{/]8{/^@{/_H{/_P{/H^X{/h^`{/P_h{/]p{/]x{/]{/p[{/x6{/{/(E{/Y{/h {/Ȼ{/HI {/Y{/p {/8{/ {/0 {/ {/x {/`|/hb|/ T |/ |/ |/ (|/ 0|/ 8|/ @|/@ H|/0DP|/@DX|/`D`|/PDh|/p|/x|/|/x|/|/|/|/p|/|/|/(Z|/ |/ |/( |/X |/X |/V |/h |/ }/P }/ }/` }/0 }/ (}/0}/8}/x @}/ H}/P}/ X}/ `}/x h}/h p}/ x}/}/P}/ }/ }/w}/h }/` }/H}/` }/h }/ }/`= }/hS }/S }/}/ }/x~/A ~/ ~/ ~/ ~/а (~/ 0~/ 8~/H~/@~/ȁ/H~/{p~/^x~/^~/p_~/8^~/P^~/0_~/x]~/]~/]~/^~/^~/p_~/8^~/P^~/0_~/x]~/]~/]/p[/x6//(E /Y(/h 0/Ȼ8/HI @/YH/p P/8X/ `/0 h/ p/x x/`/hb/ T / / / / / / /@ /0D/@D/`D/PD////x/// /p(/0/8/(Z@/ H/ P/( X/X `/X h/V p/h x/ /P / /` /0 / ///x / Ȁ/Ѐ/ ؀/ /x /h / //P/ / /w /h (/` 0/H8/` @/h H/ P/`= X/hS `/S h/p/ x/x/A / / / /а / / /z//ȁ//X /X 0/ 8/ P/ h/ x/px /y /h / /` /x / /8 /h / / . /h /` /H 0/G H/ X/p `/0 h/H p/ x/ / /x /A /( Ѓ/ / /( / / 8/PJ @/ H/0 P/0 X/8 `/ /x>/I/ / /Ȩ /Ш / Є/HH ؄/ /x} /L /`// / 0/(X/X `/ h/ p/ /H /I /N Ѕ/3؅/*/`4/h///H// /8/ /(/0/8//S /(/S /U) /S (/T)p/S x/0U)/S /HU)/S ȇ/`U)/S /U)/S /U)؈/S /U)P/S X/U)x/S /V)/S / V)h/S p/@V)/S /`V)/S /V)/S /V)0/S 8/V)X/S `/V)/S /V)/S /W)Ћ/S ؋/(W)/S /@W) /S (/hW)H/S P/W)p/S x/W)/S /W)/S Ȍ/X)/S / X)/S /@X)/S /`X)(/S 0/X)P/S X/X)Ȏ/S Ў/X)/S /X)@/S H/Y)/S /@Y)/S /hY)/S /Y)0/S 8/Y)X/S `/Y)/S /Y)/S /Z)/S /@Z)8/S @/hZ)ؒ/S /Z)(/S 0/Z)P/S X/Z)x/S /[)/S /0[)ȓ/S Г/X[)/S /[)/S /[)@/S H/[)h/S p/\)/S /0\)/S /X\)/S /\)/S /\)0/S 8/\)X/S `/\)/S / ])Е/S ؕ/H])/S /p])/S Ȗ/])/S /])/S /])8/S @/])`/S h/])/S /^)/S /0^)ؗ/S /P^)/S /h^)(/S 0/^)/XȘ/gИ/А/XM/ ///px /y / 0/@/H/ P/` X/Xx/ /ة/d/(/ . /\/x//dș/qЙ/@\ؙ/x\/ /p /0 /Pd/ / /0/8/(c@/A h/pp/W/؎/b/a/H/`W/MК/PJ ؚ/ /0 /0 /8 /t /x>(/I0/hN8/ @/Ȩ H/Ш X/` h/HH p/P_x/x} /L /`/ // /)ț/(Л/(/x/В/7(/H 0/I 8/N p/S x/x)/S /)/S Ȝ/ț)/S /)/S /)8/S @/)`/S h/ )/S /8)/S /)؝/S /)/S /)(/S 0/)8/)`/^h/_p/_x/H^/h^/P_/]/]/]/^/_/_/H^Ȟ/h^О/P_؞/]/]/]/p[/x6//(E/Y/ /Ȼ(/HI 0/Y8/p @/8H/ P/ X/`/h/`p/hbx//q/ / / / //pk/0D/@Dȟ/`DП/PD؟////x////p/ /(/(Z0/ 8/ @/( H/X P/X X/V `/h h/`p/P x/ /` /`k/ ///x / //Ƞ/Р/x ؠ/h / //P/j/ /w/h /H /H(/` 0/h 8/ @/`= H/hS P/S X/`/ h/xp/A x/ / / /C / / ///`//)/^/^/p_/8^/P^/0_/x]/] /](/^0/^8/p_@/8^H/P^P/0_X/x]`/]h/]p/p[x/x6//(E/Y//Ȼ/HI /Y/p /8Ȣ/ Т/ آ///`/hb//q/ / / / (/0/pk8/0D@/@DH/`DP/PDX/`/h/p/xx////p///(Z/ / /( ȣ/X У/X أ/V /h /`/P / /` /`k/ / /(/x 0/ 8/@/H/P/x X/h `/ h/p/Px/j/ /w/h /H/H/` /h / /`= Ȥ/hS Ф/S ؤ// /x/A / / / /C / / (/8/0/`/8/ )`/^h/_p/_x/H^/h^/P_/]/]/]/^/_/_/H^ȥ/h^Х/P_إ/]/]/]/p[/x6//(E/Y/ /Ȼ(/HI 0/Y8/p @/8H/ P/ X/`/h/`p/hbx//q/ / / / //pk/0D/@DȦ/`DЦ/PDئ////x////p/ /(/(Z0/ 8/ @/( H/X P/X X/V `/h h/`p/P x/ /` /`k/ ///x / //ȧ/Ч/x ا/h / //P/i/ /w/h /H /H(/` 0/h 8/ @/`= H/hS P/S X/`/ h/xp/A x/ / / /C / / ///8//8)/^/^/p_/8^/P^/0_/x]/] /](/^0/^8/p_@/8^H/P^P/0_X/x]`/]h/]p/p[x/x6//(E/Y//Ȼ/HI /Y/p /8ȩ/ Щ/ ة///`/hb//q/ / / / (/0/pk8/0D@/@DH/`DP/PDX/`/h/p/xx////p///(Z/ / /( Ȫ/X Ъ/X ت/V /h /`/P / /` /`k/ / /(/x 0/ 8/@/H/P/x X/h `/ h/p/Px/i/ /w/h /H/H/` /h / /`= ȫ/hS Ы/S ث// /x/A / / / /C / / (/8/0/8//X/g/А/XM/ ج///px /y / // /xN(/` 0/XP/ X/ة`/dh/(x/ . /\/x//d/pd/@\/x\/ ȭ/p Э/0 ح/Pd/ ////(c/A @/ H/WX/؎h/bp/a/H/`W/M/PJ / /0 /0 Ȯ/8 Ю/t/x>/I/hN/ /Ȩ /Ш 0/` @/HH H/P_P/x} X/L `/`x/ // /)/(/(/x/Вد/7/H /I /N 0/P)X/^`/_h/_p/H^x/h^/P_/]/]/]/^/_/_/H^/h^Ȱ/P_а/]ذ/]/]/p[/x6//(E/Y//Ȼ /HI (/Y0/p 8/8@/ H/ P/X/`/`h/hbp/x/q/ / / / //pk/0D/@D/`Dȱ/PDб/ر///x////p// /(Z(/ 0/ 8/( @/X H/X P/V X/h `/`h/P p/ x/` /`k/ ///x / ///Ȳ/x в/h ز/ //P/i/ /w/h /H/H /` (/h 0/ 8/`= @/hS H/S P/X/ `/xh/A p/ x/ / /C / / ///0//h)س/^/^/p_/8^/P^/0_/x]/]/] /^(/^0/p_8/8^@/P^H/0_P/x]X/]`/]h/p[p/x6x//(E/Y//Ȼ/HI /Y/p /8/ ȴ/ д/ش//`/hb//q/ / / / /(/pk0/0D8/@D@/`DH/PDP/X/`/h/xp/x///p///(Z/ / /( /X ȵ/X е/V ص/h /`/P / /` /`k/ // /x (/ 0/8/@/H/x P/h X/ `/h/Pp/ix/ /w/h /H/H/` /h / /`= /hS ȶ/S ж/ض/ /x/A / / / /C / / /0/(/0//X/g/А/XM/ з/ط//px /y / /// /` (/XH/ P/ةX/d`/(p/ . x/\/x//d/`/@\/ //p ȸ/0 и/Pdظ/ ////(c/A 8/ @/WP/؎`/bh/ax/H/`W/M/PJ / /0 /0 /8 ȹ/t/x>/I/hN/ /Ȩ /Ш (/` 8/HH @/P_H/x} P/L X/`p/ // /)/(/(/x/Вк/7/H /I /N (/P/^X/_`/_h/H^p/h^x/P_/]/]/]/^/_/_/H^/h^/P_Ȼ/]л/]ػ/]/p[/x6//(E/Y//Ȼ/HI /Y(/p 0/88/ @/ H/P/X/``/hbh/p/qx/ / / / //pk/0D/@D/`D/PDȼ/м/ؼ//x////p///(Z / (/ 0/( 8/X @/X H/V P/h X/``/P h/ p/` x/`k/ ///x / ////x Ƚ/h н/ ؽ//P/h/ /w/h /H/H/` /h (/ 0/`= 8/hS @/S H/P/ X/x`/A h/ p/ x/ // / ///(//о/^ؾ/^/p_/8^/P^/0_/x]/]/]/^ /^(/p_0/8^8/P^@/0_H/x]P/]X/]`/p[h/x6p/x/(E/Y//Ȼ/HI /Y/p /8/ / ȿ/п/ؿ/`/hb//q/ / / / / /pk(/0D0/@D8/`D@/PDH/P/X/`/xh/p/x//p///(Z/ / /( /X /X /V /h /`/P / /` /`k/ ///x / (/0/8/@/x H/h P/ X/`/Ph/hp/ x/w/h /H/H/` /h / /`= /hS /S // /x/A / / / // / /(/ /(//X/g/А/XM/ ///px /y / /// /` /X@/ H/ةP/dX/(h/ . p/\x/x//d/pd/@\/x\/ /p /0 /Pd/ ////(c/A 0/ 8/WH/؎X/b`/ap/Hx/`W/M/PJ / /0 /0 /8 /t/x>/I/ /Ȩ /Ш /` 0/HH 8/P_@/x} H/0P/`h/ // /)/(/(/x/В/7/H /I /N 0/38/*@/`4H/hP/X/``/H/h/ p/8x//////S /h)/S /P)/S /`)0/S 8/p)X/S `/)/S /)/S /)/S /)/S /) /S (/М)H/S P/)p/S x/)/S /)/S /)/S / )/S /0)8/S @/@)`/S h/P)/S /h)/S /)/S /)/S /)(/S 0/)P/S X/ȝ)x/S /؝)/S /)/S /)/S /)/S /)@/S H/()h/S p/8)/S /P)/S /`)/S /x)/S /)0/S 8/)X/S `/)/S /؞)/S /)/S /)/S /) /S (/()H/S P/8)p/S x/H)/S /`)/S /p)/S /)/S /)8/S @/)`/S h/ȟ)/S /)/S /)/S /)/S / )(/S 0/8)P/S X/H)x/S /X)/S /h)/S /)/S /)/S /)@/S H/)h/S p/Ƞ)/S /ؠ)/S /)/S /)/S /)0/S 8/0)X/S `/@)/S /P)/S /`)/S /x)/S /) /S (/)H/S P/)p/S x/)/S /С)/S /)/S /)/S /)8/S @/ )`/S h/8)/S /H)/S /X)/S /h)/S /)(/S 0/)P/S X/)x/S /)/S /Т)/)/S /)/S /)@/S H/()h/S p/@)/S /P)/S /`)/S /p)/S /)X/H `/)/)/S /ȣ)/S /)/) /S (/)H/S P/)x/ )/0)/S /@)/S /P)/S /`)/S /x)X/S `/)/S /)/S /)/S /ؤ)/S /) /S (/)H/S P/)X/'/^/_/_/H^/h^/P_/]/]/]/^/_/_/H^/h^/P_/]/]/]/p[/  /(/ 0/Y8/@/ȻH/YP/YX/-`/8h/Yp/8x/(Z//`/hb//0Z/e//PZ/8Z/@Z//[/0[/Z/P[////x/ /(/0/p8/@/H/(ZP/X/`/xh/p/ȴx///Y/h///(////8/H//(/0///8//P/o /p(/w0/(w8/0@/HH/PP/X/`/h/p/x///x///Z//8/Z/8/X(0/h;/^/_/_/H^ /h^(/P_0/]8/]@/]H/^P/_X/_`/H^h/h^p/P_x/]/]/]/p[/ // /Y/0I /Ȼ/HI /Y/p /8/ / //0y /`/hb/ T /0Z(/ 0/ 8/ @/ H/@ZP/H X/ `/ h/ p/ x////x////p///(Z/ / /( /X /X /V /h /Y/P / /` (/ 0/ 8/@/H/x P/ X/`/h/0p/x x/h / //P/o//w/(w/0/H/` /h / /`= /hS /S // /x/A / / (/ 0/C 8/ @/ H/X/P//X/H;/^/^/p_/8^/P^/0_/x]/]/]/^/^/p_/8^/P^/0_/x]/]/]/p[/ /(/ 0/Y8/0I @/ȻH/HI P/YX/p `/8h/ p/ x//0y /`/hb/ T /0Z/ / / / /@Z/H / / / / ////x/ /(/0/p8/@/H/(ZP/ X/ `/( h/X p/X x/V /h /Y/P / /` / / ///x / ///0/x /h / //P/o /(/w0/(w8/0@/HH/` P/h X/ `/`= h/hS p/S x// /x/A // / /C / / ////(/0/ `/ x/g /px /y / /` / /Z@/G X/ h/p p/0 x/H / /P /> /A / 0/HA H/PJ P/ X/0 `/0 h/8 / /  / /Ȩ /Ш /` /HH /XH /x} /L /`//0/ x/7/H /I /N /X;/^/_/_/H^/h^ /P_(/]0/]8/]@/^H/_P/_X/H^`/h^h/P_p/]x/]/]/p[/x6//(E/Y/0I /Ȼ/HI /Y/p /8/ / //0y /`/hb/ T /0Z / (/ 0/ 8/ @/@ZH/H P/0DX/@D`/`Dh/PDp/x///x////p///(Z/ / /( /X /X /V /h /Y/P / /` / (/ 0/8/@/x H/ P/X/`/0h/x p/h x/ //P/o/ /w/(w/0/H/` /h / /`= /hS /S // /x/A // / (/C 0/ 8/ @/P/H//P/8;x/^/^/p_/8^/P^/0_/x]/]/]/^/^/p_/8^/P^/0_/x]/]/]/p[/x6/ /(E(/Y0/0I 8/Ȼ@/HI H/YP/p X/8`/ h/ p/x/0y /`/hb/ T /0Z/ / / / /@Z/H /0D/@D/`D/PD////x// /(/p0/8/@/(ZH/ P/ X/( `/X h/X p/V x/h /Y/P / /` / / ///x / ///0/x /h / //P/o/  /w(/(w0/08/H@/` H/h P/ X/`= `/hS h/S p/x/ /x/A // / /C / / //// / (/ X/ p/g /px /y / /` / /Z8/G P/ `/p h/0 p/H x/ /P /> /A / (/HA @/PJ H/ P/0 X/0 `/8 /x>/I/ /Ȩ /Ш /` /HH /XH /x} /L /`/ /(/ p/7/H /I /N /8/^/_/_/H^/h^/P_ /](/]0/]8/^@/_H/_P/H^X/h^`/P_h/]p/]x/]/p[/@//p[/Y/Y/Ȼ/Y/Y/Y/8/Y//(Z/H/`/hb/ /0Z/e / (/p 0/8Z8/@Z@/H H/ P/ X/6`/ h/p/x//x////p///(Z/x // /h / ///Y//// / (/0/8/Z@/ZH/ZP/(X/0`/h/bp/@ x//P/o/p/w/(w/0/H/P///////`/x///Z/ /8(/Z0/8`/kh/kx//////k/x//////k/)(/0/8/h/@p/@//////@/)//////@ /)0/8/@/H/X/p/@x/)//////@/h)///// /@(/)8/@/H/P/`/x/@/)//////@/)/////(/@0/)@/H/P/X/h//@/)//////@/p)/////0/@8/)H/P/X/`/p//@/x)//////@/)//// /8/@@/)P/X/`/h/x//@/)//////@/)0000(0@0@H0)X0`0h0p000@0)000000@0)000 000H0@P0)`0h0p0x000@0)000000@0)00 0(080P0@X0)h0p0x0000@0 )000000@0)0 0(000@0X0@`0)p0x00000@0)000000@0 ) 0(00080H0`0@h0h)x000 0p.0 0DX 0`0 0a0 0" 00 0x 00 0) 0;30 0Ȣ0 0:30 0\.0 00 000 0  0P30 0U/( 0`400 0@@ 0H 0./P 0(X 0(` 010h 0Tx 0@0 0Т0 0430 0 0آ0 0/ 0930 00 0(D 030 0`.0 00 0X0 030 00 0;* 00 000 00 0)( 0(C0 08 00@ 0@0H 0H/P 0P/X 0 ` 00p 0Px 0d0 00 00 000 0H 0 0(( 0h0 00 0<0 0H0 00 0p0 00000R/01/0X 0D(0W00(/8007*@00H00P0؝X0x!/`00p0@30x0000 00 00б.0h!00.0:000000000300(008600H00H000 000800:* 0(0P000@0#/H030P0X0(0`0830h0X0p00x0\000`00 09*0`00h.00800`C0XF 0800X0h00X0000000820 010(0x*00@0`TH0QP0X`X0_`0]h0Zp0dx0X0P0(P0P0ظ0000@0P0h0@b0000000000000`000 00(0000080@0H0(0P0X40X0)`0hwh0pwp0vx0xw0E0@w0Hw0Xw00500P 080`000 000X0000( 0X(0Xs00x80@0(H0ؠ`0hh0( x00،0@0`080@'080`00 '000H$00 0#(0p00u80Xs@0h#H0!P0(X0ؠp0X!x0)00،0@0`080C080`00C000@ 0(000H@809@0xH0xP0?X0h>`0(h0ؠ0=0E00<0،0@0`0800`080`00`0 0(08]0080@0\H0`VP0{X0{`0X\h0Zp0(x0ؠ0HZ0b0X0،0@0`080|080`0 0|(00080y@0H0P08yX0r`0~h0~p0xx0Xw0(0ؠ0v0x~0 u0،0@0`080080` 0(00080@0pH0P0X0(`0ȏh0p0x000(0ؠ0P0`000،0@0`080Ȋ`0h08p0`x00000H00000000й0(0ؠ0(080h0 0،@0@H0`P08p0Ȋ0(080`0000000000 0@{(0~00P80@0(H0ؠ`0@h0x00،0@0`080p080`00P000x00 0(0H00g80x@0H0 P0(X0ؠp0x0H00،0@0`080080`00000 0(000H80@0S!H0{P0X0h`0(h0ؠ00000،0@0`080@080`00@00 0P;(00080:@0P/H0w$P0X07`05h0(p0ؠx0.0@50xA010،0@0`080x$@0heH08P0`X0`0Heh0p0x0_000^0S0'00p\0Z0(0ؠ0S0Y0 f0V0، 0@(0`008P0x$00'0ȣ' 0P 0 0У' 0أ'!0'H!0P!0h!0H(!0h!0h"0.p"0h"0"0P(#0"0#0/#0#0#0@($0#0$00/$0$0$0X(P%0$0%0`/%0%0&0R/ &0)0&0 8&0")H&0H& P&08')`&00$ h&0H')x&0`" &0P')&0 &0X')&0`# &0h'&0H- &0)&0 &0&)&0&)'0')'0 ')('0`')'0('0((0H/0(0((0X(0j`(00gh(0pp(0mx(0i(0p(0((0y(0u(0~(0x(0(0Hq(0`)0)0)0 )0 )0=()00)0(8)0H)0PP)0X)0`)0(h)0@)0()0Xz)00)0д)0)(*0)0*0*0*0)P+0*0+0+0,0)x,0,0-0-00-0)-00-08.00.0`.0h.0p.0hx.000.0) 0 08 0p 0' 03 0?h 0K 0U 0[ 0\h0u80000000000 0 0 0 (0 0080@0H0P0X0`0h0p0x00000000 0!0"0#0$0%0&0(0)0*0+0,0-0. 0/(00001802@04H05P06X07`08h09p0:x0;0<0=0>0@0A0B0C0D0E0F0G0H0I0J0K0L 0M 0N 0O 0P 0Q( 0R0 0S8 0T@ 0VH 0WP 0XX 0Y` 0Zh 0[p 0]x 0_ 0` 0a 0b 0c 0d 0e 0f 0g 0h 0i 0j 0k 0l 0m 0n 0o 0p 0q 0r 0s 0t( 0u0 0v8 0w@ 0xH 0yP 0zX 0{` 0|h 0}p 0~x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0( 00 08 0@ 0H 0P 0X 0` 0h 0p 0x 0{ {_{0jCB    0nCb 0rC 0vC 0zC 0~C 0C 0C" 0CB 0Cb 0C 0C 0C 0C 0C 0C" 0CB 0Cb 0C 0C 0C 0C 0C 0C" 0CB 0Cb 0C 0C 0C 0C 0C 0C" 0CB 0Cb 0C 0C 0C 0C 0D 0D" 0 DB 0Db 0D 0D 0D 0D 0"D! 0&D"! 0*DB! 0.Db! 02D! 06D! 0:D! 0>D! 0BD" 0FD"" 0JDB" 0NDb" 0RD" 0VD" 0ZD" 0^D" 0bD# 0fD"# 0jDB# 0nDb# 0rD# 0vD# 0zD# 0~D# 0D$ 0D"$ 0DB$ 0Db$ 0D$ 0D$ 0D$ 0D$ 0D% 0D"% 0DB% 0Db% 0D% 0D% 0D% 0D% 0D& 0D"& 0DB& 0Db& 0D& 0D& 0D& 0D& 0D' 0D"' 0DB' 0Db' 0D' 0D' 0D' 0D' 0E( 0E"( 0 EB( 0Eb( 0E( 0E( 0E( 0E( 0"E) 0&E") 0*EB) 0.Eb) 02E) 06E) 0:E) 0>E) 0BE* 0FE"* 0JEB* 0NEb* 0RE* 0VE* 0ZE* 0^E* 0bE+ 0fE"+ 0jEB+ 0nEb+ 0rE+ 0vE+ 0zE+ 0~E+ 0E, 0E", 0EB, 0Eb, 0E, 0E, 0E, 0E, 0E- 0E"- 0EB- 0Eb- 0E- 0E- 0E- 0E- %A#`=XF- XOB1j@p@i @@N` %)B * RIT@9c4c8&Rx#4*+RyxqMTFf8 |@yxc c|@yx?kTxx4!`=*) _? qT qT{@R Ra@G(`R!@9 DF@9_k!T!b@%RR!FR (@.0@yR! ? qaT!@!LG!@ _T@ @{¨_R_{Sk cZ@b@F[TAa@ҡ{@sA @"@ @9_aTpF @9_aTpGB&R`-$@9_ qTB&ᕄR`-(@9R*Rkq@5$@`-!3ңOG@?T @@T;@@9qATR!0#@c@R!2Ry3@AR4`?ցA""$@9R"`T%@@O@d@CB9! Ú!?@9#@ A@?_q{@ jTA`@!(@9@?qATq T`4B&R`-qT4B&R`- sB sbss@@$@C@bRKTB&!R`-`?K@IT`??hTTaYҠGK@6 T`?`?TG@T`?ˠK@˟cTwc@T `@HT`?֜GTq)@T    9 @  R7@FcB9@!@AA1SA[BcCkDsE{Ѩ_{S[c}a) T"@b4"!ДCc@;hT"8"T@ B@c@k Tv5)bD` T#@?! e@TF@kT@ @d@d`@98cd@98C@cCBBCaUB|_TTR`-0SA[BcC{Ĩ_0qT,qT qThT 4QqhTDq`TT8qTXQqTR_{AR@R{_ R_{S3AcFd@DqTR @9qaT@9A  @"R! sF*@a@AArSA@{Ĩ_{S%D)&E)K@|S@cˁ@Ce@%f8<a4`Z @4`^@4`JaJA '+a^AAbZAb"B'SA {¨`( SA{¨_ @{S3[cFRd@Wcks;B @ 6#! c@&WR! *@,Bq%T @9qTq $T"N[ҜE)Rҡ?|sbT @y@y$@?k| SA)T*99?@ *3kIk@3@C* $C@!@kT:{@@[JfE)@7*C7@*2@@C@"KB9 Rj.?kBT#c@&! c@=R! *,>*@@T @yR@y$| SZ=@kA)T*C<@ҠC*ckc@k@q@qSh* *) TTq!T"qT6qhT@y {hT ``) A)@_1T*J * +*+F @T#c@&! c@ER! *`-:C@ q@T(TqT@y@y@ )9qT& zT@ @yF@yK@s@,A)`@@yTK)F &)`+ ZB J1!@$@xZ"D?@T#c@&! c@OR! *-CC@<x`@.@˟@T#c@&! c@"PR! *.@R 9Р?@!9!@\RE)@cT@@!@ ?<@*@!@ ?*@ @?֤@*O@*@?`'qT @!}jaBj!{?}ӡS@BAj{@B j;@ 4 .B2 @/64o@GGUyZ`Rs@Myb w@Gyj`JKk@@!P a@@ 4yrBA~!Ev@RRR?4Rc7q T TqT TS@@C@a`F3T@`@!@ ?*@`@!@ ?<@`@!@ ?*@7@?@ @?a@@*@O@?@*?֠CqT)T+q ThT#q@T'qTR!/`*}RR{}Rz7qi T;qTr@x@4@r@4O@s@9י4@Z@a4O@s@ט4@b@A44@j@4BBB**c@x4Ka @h4@x @@!4@` @B_qk◟kTBA hT@4x 4@r@4BBB**c@}x 4 BA`0j@ox*@0Z@ix**`@1b@bx**`1r@[x*@2R;@!FWA!@AASA[BcCkDsE{@ _@@@@9?qT@9qTx`qR R_C@cxqT{S[@@*4CAa@b@PAV@@9qAT?!Tc Q9`?`@`a@R"b`j!8`"9?!Tc Q9`?`@`a@` R"b`j!8`"9*@9`qaT!!' @*@@9q@Ta@?!Tc Q9`?`@`a@ R"b`j!8`"9@xqATB4* Ra@?!Tc Q9`?`@`d@R*`cj$8c"9 RR_SA[B@{Ĩ_{"BFS@@O[C"+;c#7RRs"&! $t aG`^@ 3$qT!@&RҙV|`G8@  ?  ? ` p@C@qTB Q"L79&ғ@Bs*;qvT@9q@;T F@95!!G3@(p!q!F Tb B_8_qTQ  8sB+J'r/TR!+K| RW 'c )c!@!F  !"G@ 9"R`G 3FGWR," 97h9"9"9"P9"@9b9b9v9684 t4b@9&c@9Bta@9B2c2b9"Be@9d@9!2c9cbB-Ec6!c,c"R22!xbBa9bZatR"arv9e9d9w*9t܀@ -C@?FqmT .3!.Q<R;  ՠ@k&T @?*k T@B}Ac-z`5` @94;@943@5`4!@.04!`.+ 4!.&4!.!4!.@4!/4!@/4!/ `4!/4!/ 4! 04!`04!0@4!04` ??@5tvC@@u!!tG i=t!uE@C@_9@ `G$@/3|5uvfF@.6G@9'5 GH@95!F @9qT!F @92 9 G@@9*5`K@q)T F@9 6@9 qTE@95 E@95 G@@94R7 F!@4RzG@95t `G @@9_q-TA ! 3!3`G`7!F @92 9S!F @9!(@q D@T2 D!F @@6"(@qRAr@D@*2@Dh `G`@(? G @94`@' E@@ GD@9'5t\7 `G`@`A ! 3i/5!RB@6F@? @Sb6c@!R5s@S@R @S6c@!R&s@S> `G@95 dG@9`5ֶG@9'5 R!-RҘUz@95 "!F&!@3R҉FzTx DR!4?@ zd @9x 963F`*@6r`T9F @9qTG @9 4F@q qT|@"8sc4!@8^@4ҥ|@F"8w@@@!;DCA ! 39:b~@!kT!qLT1T`GT@95FR$!`1Ry@c2ysfF`@ X`@7 ՟j 8yc@!`@@c2}yE@94A@ry G(@~zF!Ru@@Ss@ 5RF!1v"Rv zF R]GF@9`4`fF@!1RҲ?y#?G @94F@@9B5F@ n[Ss&yz7@!F @asFR!;v@H{G!RŚc@`@NbR!7ta*@0y`~R!`8ga@#y,R!6_!F!@yRVy&R!5Oa@ y~ R R!4Ea@y9R!:=xR! 95x@#xGcGEgF@W_   :!! :?T!EA _   :!! :!!C!A!ABGb@ _ { 3`"z9@5F ?9 R`":9 @{¨_ {"F`! @T˳   s y@!RDT @@F@RA@B{Ĩ"B?{?tqe` Dacc@ c!RbB ( @{¨ RBEB@b5_ {bB S*!RsF`@`@*a@@RSA{¨{!F  @9 5 @:NcQHq)T @{¨` ":x $  @`{¨҃c!0x a! Rk $x@ rc0{F[S@ ҳEcksb@bA5V!-E# FҿRO 2ҠWBSB5W@[y р_CTSsAs BT?7З|@yWO@{s{ӘK@`TE( sњ@-5W@р_TOGq =Tx@[zx* 1TEF!@@1 *TqTqDRT 5?qTS@ @!xx?k`$TY 5xxE 485|@+!RCE8 K|{D@` @  A '5 Qq(T@!Xexa a!@-?@>`4a!'9 4a!'44a!(/5`Ҁ)n_EXC@9{@yZ˂@xxb(5avQ9!|@3Cy@$xxAd qTS@|@xxk,T9Z "xx*4b*B"F!R@G!F@1TqART@4@_ qTq,'TT[{1{S@ Ղ@zx 1TqT@{x?q@TT!5`!=+s!xx\xE@ 4b|{xqTEdG @b A @5`R*Z  6RF@1TARZq T``,E@5Su@Ts5,s=xazxsaTK@`TF*M!@ASAr[BcCkDsE{@c0_ RFa4!F@`#@"D`8 4!R{cFc@$CbB @^C@{@{*@ C@@R@0{@6RA-! !`8@"!`8B5E` +A@!A7W A!1!Y xx*KqmTE@?q@ K5$cGZ !F$@dA` Ձ5M EBF!@@bB#F!R@  |@1Q9F{xxbB$ @q{@T`Q=C;8``%k;{ @*!R@{xs{x @!@@RAT{@@kF;@ФC!RC{Fc+BB `@`@*a@@RC@@4_C@@ @!cF`"c@b@N@`+!FA!1!Z xx* "!F@@#}@VR,R!RC9Fc$BB @@ @*I!@@RZ@QI U3 S RHO_M!F @9`2"9GӠ_E_C A H>0 ! NQ 86`VaZb^M1`^ҭM_,`@_)_'`Xa\M" 0R`\_`^ҘM_/R/R/R RH  a@#RG M_F@? qT! a`cZe\!@@d^b@L`Va\KF@? qT! aZc\b^`@dIa^@G@V g\f@HOaV`ReXcZd^cE a@RG`\L_`@`\a @ c8M_a@]V_ Ҡ_ aRH`@rw a@R lH a@RGңL_`Z_`^_a^M_`^__`@_a^-R_l_a@ *R|l_{a@)Rwl_v`Za^l_qaZ(Rb^l_kaZ(Rb^k_ea@` Ral_`a^"R:l_[aX` Rx^Vl &Rk_Q8$ C:N?OqLT?AR!`*?@c `99? AR!*G`\AL_6a^$Rl_1bZ$Ra^k_+aZ$Rb^k_%aZ"Rb^k_a^"Rk_a^ ,Rk_a^`0Rl_a@(R l_ a@(Rl_a@@(Rl_`^_`%Rk_`@4k_a^'Rk_a\!Rb@k_a\!Rb@{k_aXRb\c@k_a\Rb@nk_a\ Rb@hk_a\Rb@bk_a\Rb@\k_a\Rb@Vk_a\@"Rb@Pk_a\ "Rb@Jk_a\"Rb@Dk_a\!Rb@>k_a\"Rb@8k_a\`"Rb@2k_a\Rb@,k_a\`Rb@&k_a\Rb@ k_a\Rb@k_a\@Rb@k_}a@RWk_x`@_ua@ ROk_p`Za^Jk_k`^_ha@RBk_cU`@__ a@#RG`\bK_WI`^_S AR!*GUK_JGa\a@_B?a^a@_:_8RG5 RG2`@m/`@m,`@m)҆m&`^G# a@"RG> a@RG}> AR!*G`\K_F@? qT! a@G a@G `@u`@!R+0! a^"R`Z0k1Ga^R`Z*k+Ga^"R`Zj%Gx\` Ry^jb@*mjRjGa@R`\jGRR"R`"RR@RR`R_`^a@XT_`@BB'Al_`_`_`_a\*K`@R/ AR!*GҕJ_b\F@9A39`^RGFb\F@9A39xa\ _aZrb\F@9A39k`~` Rd`~`R]`~` RV`\a@ kP`@ kK`@_H:a^`ZjFBb\@!_bP`Z 5`@R*/0`@R%/+`@ҁR /&`@ҁR/!`@ҁR/ AR!*G`\J_`^PT`Za^3 `@!RfH`@RbH @:`@_a^``^H`^H`@t`_`_`@ta\`X:j%F @:`@_a^``^E`Za^E!RG9R$FR!FRF<9!R<9bXba^|9`!Da^|9`DbZ{a^|9c Da^|9 D`@ "|9`^{cDa@ |9Ҡc{C҉_b@?bA" b\_"b@bA" wta@|_qna@a^_ifa^@9_b_a@"@9_q7Ta\ @9_URa@"@9_q6T@9 _I`|`}@RB`~`R;`|`}R4`|`} R-`|`}`R&`~`R`~`@R`^_`R_`@R:`@R: `^#RNG`^!RA`^Rr`^D`^DGrGF@9!29!RGH9!RG9`^Rv`V#RaZb^"G`@R:_`@S`@S`@}T`@zT`@}T`@zT`@RD`@s`@T`@Sb@`\zT`\Ra@uT`@T`\a@TS NQ ZC:N?OqLT?AТR!%.RSA*GBCD/@ZF@@@9?q!T@9?qTb=3GCR @99#L @99 9ZF R@ /@SA!GBCD @ZFc R@ /@@SA!GBCD ZFc R@ /@@SA!GBCD }3Gc RZF@@"Q!Q!|@B|@ /@SA!GBCD @g` Bg@9"@9xcBQ`8@@4`1@c@` c@iT/OFqG/HO@ TqT@@5ZF/ T@"tL@/I@9 3GZF"cF!@c@ZF`:!@$ZFSAC@DB@9/@$/RSA*GBCD/@!/RSA*GBCD/@,RSA*GBCD/@!,RSA*GBCD/@*RSA*GBCD/@"RSA*GBCD/@+RSA*GBCD/@-RSA*GBCD/@-RSA*GBCD/@-RSA*GBCD/@A,RSA*GBCD/@A-RSA*GBCD/@,RSA*GBCD/@,RSA*GBCD/@ZFSAC@DB@9/@ZF.R@ /@@SA!GBCD rZF.R@ /@@SA!GBCD cZFRZSA@CD@9B/@X!,RSA*GBCD/@M*RSA*GBCD/@B"RSA*GBCD/@7+RSA*GBCD/@,-RSA*GBCD/@!-RSA*GBCD/@-RSA*GBCD/@ A,RSA*GBCD/@A-RSA*GBCD/@,RSA*GBCD/@,RSA*GBCD/@!-RSA*GBCD/@a.RSA*GBCD/@.RSA*GBCD/@+RSA*GBCD/@,RSA*GBCD/@0RSA*GBCD/@A&RSA*GBCD/@$RSA*GBCD/@+RSA*GBCD/@|!0RSA*GBCD/@q!+RSA*GBCD/@fA+RSA*GBCD/@[a+RSA*GBCD/@P+RSA*GBCD/@E/RSA*GBCD/@:A0RSA*GBCD/@/a0RSA*GBCD/@$b=F@QF5/@SAR GBCDA'RSA*GBCD/@ ,RSA*GBCD/@d,R/@ G*BGSA@B!CDD.RSA*GBCD/@(RSA*GBCD/@(RSA*GBCD/@a(RSA*GBCD/@!,RSA*GBCD/@(RSA*GBCD/@(RSA*GBCD/@-RSA*GBCD/@,RSA*GBCD/@(RSA*GBCD/@.RSA*GBCD/@v!(RSA*GBCD/@ka%RSA*GBCD/@`!&RSA*GBCD/@U'RSA*GBCD/@JA(RSA*GBCD/@?'RSA*GBCD/@4'RSA*GBCD/@)*RSA*GBCD/@a*RSA*GBCD/@*RSA*GBCD/@+RSA*GBCD/@'RSA*GBCD/@A*RSA*GBCD/@*RSA*GBCD/@С%RSA*GBCD/@&RSA*GBCD/@%RSA*GBCD/@#RSA*GBCD/@!$RSA*GBCD/@A$RSA*GBCD/@a$RSA*GBCD/@*RSA*GBCD/@%RSA*GBCD/@yZF`:!@jA%RSA*GBCD/@h!%RSA*GBCD/@]&RSA*GBCD/@Ra'RSA*GBCD/@G&RSA*GBCD/@<'RSA*GBCD/@1!'RSA*GBCD/@&С/RSA*GBCD/@/RSA*GBCD/@/RSA*GBCD/@!-RSA*GBCD/@a.RSA*GBCD/@b= 8AQ 8@{7ZFSAC@DB@9/@ZFb=SA:A@CDB/@#@9:)RSA*GBCD/@Ё%RSA*GBCD/@%RSA*GBCD/@!)RSA*GBCD/@A)RSA*GBCD/@a)RSA*GBCD/@A#RSA*GBCD/@a#RSA*GBCD/@|ZFBR3G@#_8cQcqT!1c@!3"h8ҩм/@SAC R!GBCD |aZFR@@9?qoTҗZF3GsG@`~A!_8!x!?4qlT?,q`kT@@9C Rq!jTA@9!x!?`q^TSABCD/@;С RSA*GBCD/@0a RSA*GBCD/@%ZFb=SA!RCZD/@8@B@9`@99bt @ZFC RңR@Iм/@SA!GBCD |@RSA*GBCD/@ЁRSA*GBCD/@RSA*GBCD/@ЁRSA*GBCD/@RSA*GBCD/@!RSA*GBCD/@RSA*GBCD/@ARSA*GBCD/@aRSA*GBCD/@СRSA*GBCD/@RSA*GBCD/@СRSA*GBCD/@}ЁRSA*GBCD/@rСRSA*GBCD/@gСRSA*GBCD/@\aRSA*GBCD/@Q!RSA*GBCD/@FRSAGBCD/@<ARSA*GBCD/@1aRSA*GBCD/@&a&RSA*GBCD/@Ё&RSA*GBCD/@С&RSA*GBCD/@)RSA*GBCD/@A/RSA*GBCD/@#RSA*GBCD/@!#RSA*GBCD/@!*RSA*GBCD/@"RSA*GBCD/@Ё$RSA*GBCD/@С$RSA*GBCD/@$RSA*GBCD/@!!RSA*GBCD/@A!RSA*GBCD/@С!RSA*GBCD/@!RSA*GBCD/@v"RSA*GBCD/@kA"RSA*GBCD/@`!"RSA*GBCD/@Ua"RSA*GBCD/@JЁ"RSA*GBCD/@?С RSA*GBCD/@4 RSA*GBCD/@) RSA*GBCD/@!RSA*GBCD/@a!RSA*GBCD/@Ё!RSA*GBCD/@!RSA*GBCD/@Ё#RSA*GBCD/@#RSA*GBCD/@#RSA*GBCD/@)RSA*GBCD/@)RSA*GBCD/@)RSA*GBCD/@,RSA*GBCD/@ZFc R@/@@SA!GBCD ZFc R@/@@SA!GBCD ZFc R@/@@SA!GBCD x+RSA*GBCD/@m@`@g'R`1g8 ZF/ @"t/|@H/Ixxa4`t g%F)|@azx!!|@xxk@Txx@v/@BCD`@SAB"R X`/@F@Fb! GExdzd@9SAB3CD9@$)im @*ZFxxl@qT`4tG/@c RSA!GBCD RZ%a B`1/ !xb4@t|@ZFH/I,@c@BRZFcQc @`cSABCD/@vӼ/@BC RCD`SAlӼ/@BC RCD`SAR{R[SFcd@' #@@9`5ZG@ s@3`@`5x  uZGb9@aRx W64F'@@ SA[BcC{Ũ_ բRa!$`L {S*[U@%FFc"@ks?w]kZoWҫk@sR& RRLR@9R Rk@ թo@B&@)&&A&!T&@9'@ f4 8|@%@QqTk@*|{H|{&8@ qATs@!&|) J&&}&AT9cCo@ Vh(h*ZqTa@fu"|F`#R"@9`_qT"@9_qAT!@95kTaZ`"@9bx7fZ#k)TaZ`"@9*k@}@q,&8Tk@*k@ l(8k@ ` C`F3R O;^F@@kT*ZrTU@GM**qTq@@zT*sZrT_1 TZQ_gqTC@R^`^F@@kT@;Xzxa ^F"Уs@B&** ռ~@`z|@9kT8F@Ra!7bz|_*X#!8F!@|RA!rC@9BB Ac! qA'XA!#Rd!XRA!!]A@X@`FCR@9 @9b39a3 9AR`GRh`,7 A @q`(T @qTA!@(R8WK@`GRA!.A@WA!`R&WF@@9v5R-@RSRA!@{V"G RR'BB@RA! R`)S#[q`$TDS@ RWS*-s-\RR@%& RRD "R@@qT RR! RR "R9?q(T`D*@@948@qT5[@ R@R*Y@% -W* zaxk` 8@q@TQqb4T#c&AW@!- RmaR g@  @7RҊ!`/ RYRҁ "RZ_qhT`D`wqTFa@R{qaTRjn)]T[@A!- R4!RA[@R@RwRA!QAaza WRA!HA@WRA!%@A@VA!R_8V\@_@A!#8S5!R`G,a!15`FAR#R@9"3 @99a3 9RA!A! VrRA! A!V8RA!@VzK@ss0`G@! BF_8q@@sBB(!RL6 @qTA!`'RVRA! RRF@R4sqTRA!  RRA!"G RB@%@"3`/ R}@=@RRA!0!RRA!?'!RRA!!RRA!!RRA! !RRA!!RwRA!!RnRA! !ReRA!@!R\RA!` !RSRA! !RJRA! !RA`F@9@q TA!Rҿ!R3sF`@9rTRA!`!R&A!Rҩ!RF@@O@RRA!BB@ RiRA!$RҎKT RA!!RAТR![@A!-c& RK!RAТR!@ P @@!R RA 9_RA_ @!hG!@?BA@?qT?q"T? qT?qBT4?qTCB@"_ ?,qT?(qT? qaTA@A"@!(@?@_ ?$q@T_ ?qT?qTB@RB?0qT?<qT_ A@%@ qT! @%@9qT!@955 _R@ @A@@?cT__@!@C@ @#T RT @B@_kcT__@!@C@ @#T RT @B@_kcT___ @94@(@ 2@(_{ @Sa @bB?qT)T? qTb?4qT@s@ @{¨_ ?qT {S@!@?T`ۃRS`@@@a SA{¨_{@%q{_{@!@q{_ { G@4qHTcwx` @ q`T T4qT8qTF@s@scC @@{ƨ_ @`@!R{ƨfS qT` @ մt@G+kzRR@@4 4@qT4qaTqT@AkD+@ ՛ qT@{ *7 77(77 @{¨_ 34SS6 @{¨-.S @;*S/6 `$S6  `S3'6 {+[`Fcb?kzSZ;@? aR!R7pRk@5Ro@?pqATIhq T{F?@`@ SA[BcCkD+@{Ȩ_֢Ra!@o@zIR `!ҁRR{$RRS*F@@`b@94SA{¨_`f@9!RF2`f9ab9@SA{¨a!RVR{ a`j`84`8 @859 @@{¨_ {S[@9B4cGdb8@8$85b@9?9a4cG`b8"@8859tss@9@9kT`4 4j`8*j`8?k@T*SA[B{è_s  szS R@@A@@9B@%@!Cӄc*Bd_{B@- !` Ӻ@B'`B@9w@@6@"RV@zB@9  մ@a@@l 5B@9AJ?rTA@'@ @ @@ C{Ũ_3t @{ 3@wF`@H4@9@4`@@aaHF@9A4 @`s @AB @{Ĩ_ `@tH4F@95RҠa@\QRa!a@TQ`@{cFc(@c@cA`? StB@@ @? TsB"x!@bSA{è_!"!|ӂ @{RF@C@@9|Fxax6 BR[@@9 5T{@hT*@ @F@@A!@@{Ĩ_a!@5 a!`@5 @  @@ J { q@TTqTqT *q@zKT`k @T@@A{è| q TqTz@z@KA{è_!x@@x@kTA{è_  @A@f4 ճ @b`B`a=R L {ccEFSk@@?[+{@tFR*@^* @` 7@7 @ AC@9 6!C?q TA 4?qaT!@ 7z@C@9 63 @X bB@9B_q`T_@qR`@4s@s `@@9?qT@95`T&`T"`TF?@@Aa SA[BcCkD+@{Ȩ_sFR`*@@*@bR  @6!@76 @7`B@9@qTs@S`@4!@S@Ҽ @7  `B@9qTs@`@47 `B@9 qTs@`@4!@a6Q@9"@9kTR*_ @9R#@9k!T@9#@9kT @9# @9k!T $hb8Bk!Thb8qAT"R B`A9 6@aFBhA@D@CFc@9cqT7#(@RDrc  @qT07@BFcA` cLGc@ #8 _ "F@AOG!@ D3@/s@scCkD@F/@7@@AASA@{Ǩ_4q T#T8qT/@F@/ `4qT` @b@@SL? q@T @FA@9@T?|qTA@8?|qT?qTA@9?q!TA@9?qTA @95 R9` @@ cD|<q@T=RMva@B0A/@!$š/`@cDF@9a 5@q T`@/@B0A$!/Z`@/@3/`@cAOG!@ bDF@9A5@q T`@pqTiTtqTxq T$R!R/@0A k $@/2` @(@7 @` @/@ @ @a@@``@pqTR @` AOGc!)D DR?qTA@95c@!Ra@9hqTRF@9qT-A!!RIMA!@!RBLckhBB`@B@3R'I@_q0T{ )T_,q T T_4q T>T_8q;T_<qOT @@@ &{ƨ!M_ q(T T_q/T-T@ңbG!*c@s @s@bG@ @B@!+@@{ƨ _q`1T+TRA!%a @L`@D @@{ƨH @R}HqT`ZD`@`@*c@B@ 'B @c@&šLa@!9@'L`@DBH @"@&@A{ƨ_ִcH`"@@@@ #L`"@@b/@L@L`b@9 55a @a5L`b@98 ?5 Lu@kZYZ$9%+@? q8T7T?q:T#9T?q8T@;R@%L @ 3@A5L41Lq`T~L@` yL@kD+@1sLXHs@3s@AcCB _$q T(TF@TaZC@(ZLV@`@B"X*8q<T.HBqTB@"@@ (b @$šCLC?TAR!@(5@9L`>@ 8BB!LG!@ B@Ht @@@ @@{ƨ_@4Rc#@'LGqT`@y @`@9Bc@@'B @b$š Lw@@"VbG&@8@!RmAT@BG`@cC"@$#@@a @@@*KG@`/K @@ {ƨK յc@bG!&@` @ @xVx&c@8@!R7ATbG@RcC @@@@{ƨ `@9@!4c4q@a@+K @B!RB*`Gu @R@@{ƨe@R-zGqT`B`@`@pq TThq!Tlq)Tc3ҵB5Rd@@&" @""&š{K`@@qTVG`@ մRPGqTb @@C@@ @ qT@9Rq T!qaTF9@ )[K@)XKF@)SK` @C @A@{ƨ2G `F@ G@9`4@"@KsFs@s@c @BB*`G!R @@@{ƨ շRBBAF@9a4a @"@_ q@T65@b@ @A @@(K5@a@@'!@K`@6 @`#KU @JV@9qc3m @@ #J @@b/@J@J@ @JW ?q T?qaT@;R#JF [RJAR?@[R$J: ;RJ5@*`#J0 tq TxqT%c4+ @"Jn1J RAc`G!@"t@c @!R @ @@@R{ƨJ@ @a@(JB@1 c3 Ec3 ա!LG!@ @[FF @ @a\ERPF!LG!@ >@(aJ@! @$RRFR@`@9! Q!?qT@(NJ@B@(C8@B4@!b@!CJ@BB`@зckB!hR+"F` @@qT@`)/J@@{RSЃFd@'vBR@EA!+F(@R@ҡN^*@R#@rR@!*"*^@@sB`R@VR F@ @F'@@ SA@{Ũ_ բRA!+R@@@I*@@2"*@BGB@_q@T_qT@"@k@TR_  @_qTR_ {@SA!,.@4A! -)4A!`-$4A!-`4BV@`@*V@@@k TBVBRSA@{Ĩ_ @5@"@kTB {S`@9bFqC@?`TsF R?@a@ASA{Ȩ_ Հ@@bGB@_q T_qT@@F(@c@cA`?r TbG@` еBB9 4FbR@*@@FIJ*Jq, TERqT@#8I@HT#cB!R?*I.*<qTEBqT@@ I[BcC A!.RIA! /R I R9 Ձ@I@ *!@kT@ Cc5B!RRA!-@H[BcCn RD !@kIT@d[c@9"4_qRDCzd RDDz TERb@8_qDEz4DDzaTR> {S @95@R"t@_kT RT!t@!@9q!F!(@9a9SA@{è_ `4R@SA{è_ {cS8[F 4rTs@S*@9t@* @5 4@`t@!!@`@5 RSA[BcC{Ĩ_ RSA[BcC{Ĩ_R_{[`@ScrT[BSAcC{ĨSA[BcC{Ĩ_ { @S*@H@S s@a@@r@Ts@sB@SA@{Ĩ_{ @H@  ?֔@@a@@"5s@S@B @@A{Ĩ_ {[SsF(@c"@Gk4@E@Z a@9??@B957@@@9??@B95@H@|&T@T_T@ @~rT3@@yrT3@<|FG@@ SA[BcCkDsE{ɨ_ գ7@" {(@F"@?,@a@@B /972@nA97@`5@ H@  s@@Te@@rT@r`Ts@ @F?@@ ABCD/@{Ȩ_  ;{(@F,@"@?@a@B 977@A95@ H@S a@@rATs@Ts@ @F?@@ ʠABCD{Ȩ_p {S[(@aFc@#@/@#C9B ' CA9'@`5FsF/@`@ ʠSA[BcC{ƨ_ | {S @r!T@AR-rTbA9  7Bd&@SA{Ĩ Հ@ҵ;@`A9d 7d&@?ր@,@@SAB{Ĩ_{BFS@@9 7`~@`@BA@?rT@A!/qSA{¨_ t@@  s@3`@X`5 RSA{¨_RSA{¨_{SraT`:@SA{¨_ `*@`7B9x9{rTA@{Ĩ_ֳ ҷKb@9@~5u@@5:@  @3`w @@A@{Ĩ_ sB`@@@s@7sb`@w @@ {StBr@n@˿hTbBB@@?TcBcb@d@!!"a $˟iTe sB@ajSA{è_ ՔbBAB@@?ATC@A9c2C@9 {ХEF[*!RSc@9 ҹRRF q@9@9` aFE3@`EScGef9 3@9`3 Cx*@3`b9 TITqT# TqT2vZef9 4qT22ef9`b9vZb"[B!lFcC#@sSA"{Ĩ_vZ*@9q`TT8џT_8q`T˦h48afA9``bA9!2af92`b9@ᒀRE @9?qTv @ 0h`abA9bfA9!2B2!2bf9ab9vZ2vZ`b9@9A42a `b9T@ҡ!!@yy`@9! Q!?qT R_ ա@!Fb|@!(@_$BT{StX@[@@BD?<)TB@!#@ TBBA@D@!@ ˟iTE Bb @"[Bs  RSA{è_ҰA "@A9B2"@9`@X {S[FET@@?(qT@@`ARX@*@LX70As&d˄ "SA[B@{Ĩ_@(qaT@?T@?T{S[@5F?` @ qT T4qTT8qaT@s@3SA[B{è_ qTa @s@<qTR2Ds@a@s@`@1ATs@3_ ա!F!@_{  `R!R~~~~~~~~~ R"Р!FhG!@#@s3A@aAс"hGS @4@{è_ մ@ @{è_ բRq@!@b @!_"TD d !F#@C _{BB`@BR?@A @? T#_! A F_{BB`@B@ᆀR? {S* @9?qTA!@0j 5F@asF*d@9xe9 C@a@93a9SA{è_*@SAcDA{è ՠ!F@ @{ 6@ `@4s@s @ @5!@'ڿ5 ҏ!`~~B"@~~B9@@ U@{è_5SA@@{è_ բRA!08B@@SA{è_֢RA!`1*B {c #`F@@WңOUGжLGҼ/R?@ C; @qT/q)TT7q&TC%T;q`'T?qaT@F(@ 9! 2(9@RAD@/@sFO@W@a@AzcC @#@{˨_ q!T q`,T Tq@*TT@6 @ R9@'qT0T @[ @1T /@@N#B9Тccx!LG#9!@ z9F@914@ @O@@O<@РF(@@@Qq4T+@46 @`@BWRA!3!@RB<@ @+@@@92b@ 9_7` @#4qATРO@|F@ @5 @>9@q+Tq`'T{F@xqT@@9?q)TB929B9 7F@DTIT@%0AB Ś9@@q@MT qGT@S@ (@2 (OR9@[ ՠG@ RR3B9@R! @$|@F@\A?r#TB9`4 R9F@@@9;@06`@D@T`[@yq#T`+@O@x7B97:@ <A!`9:F*`{@y@kbTByb{@!`A! š!@ ETF`#@!@9$š @06"@aF#BcET`+@6;RA!9a;@b@!@A;@`'@a#@T;RA! ;ھb;@a@B@A;@FO @9;07R9@SB9 O@R9@O ՠSB9O@FR9@O@O@ @B@!!'@!#@O@B0A#(@( O_7#@R9@ š  ՜R_ @5<R9@ @R9SB9 CO@RU9@O @ @C^@!LGc#!@ @#*8 @pq T TtqTxqaKT;R@ RO@!0AC(@ k $Oc_7C@R9@ @ ^?O@@R!@ 9@S ՀO@*`TG@ƂR*A@@Rk9@k7B@qTRA!@2#"@!/@@u@94 ՀK@$`TG@łR AA!8R@ hq@TRRA@`@R9@`7 ՠC@O@@#T /@` 7@A!69*q-#Tc ܚ!Bc?q[ˠ(T @ T@! ܚD˟!@T`G4@9`5 /@`R;A!7ν;@!@@ @@9h!249"+@SB9 C B9"@!LG2 9#@ _TA @7@(@C@OX7 @0Aj $Ś  Ś@ :#@Z 3@RBB79!@"(@ D B92 9$4@R@ qT @@#@`'@O@@T '@ LG@ ?@T B97@RB _q T; @0A{'O@ ?@!Oc!LG!@ .7!#@ @(@_@TO@"@%5!'@A #@?T @(@b7"B9B76@@{;4 aF @9qT )@@@qTҺ6 /R@'S@Ob{@&;#@+@;_@T`@@9?qT B97+@6AR q TF@@9q?jT{@{@)F )@@@q`TS@O B92 9 @qT!HAaG@߂R?_ '@` !B9@a 06!@"(@$D`KA@C)@kk7X7" šB!OS@OOn@_qTN?@R@AG@AӂR? @  " š /;"/F;@!@A@C)@kk7X7" šB!j;jOR@';!#@T 7@A;!68*;@qT  ܚ˄F@9qTY#!@@#@"(@D@D4 @O@EC T$ @1A$̚ T`TRA! 8z!@6?!@"(@D թF @9qAT!@'5 R@ A2{@q:;`K@_jT`O@_j T{ @;R@'<@;#'$C!TC$@qT$@˟qT$Ҝ ܚрˀ  B92 9@ "/@D!@0A$Ś`@c@'75D@d7@@;5;@@@BC@AqTRG94A!`4!@!@>@RQjTSAcC@#@{Ũ_ { #sB'[.`4*4@X?Ҵs@t@ 5RҗR>s@S @@@5ҿ(@@#@`[B @{Ũ_֢RA! >z6>@RA!p)> qX@_{_qRcB** $@ q`B9Bz@ux&ub 3`9 @AcC{Ĩ_ $@T q@Tq @zT`@k Tq@zT`@4B!b@ ` @ a 4RA! = ub@ @ҳ @@RA! Ҿ= @@{4G}cFSuBFУRFR!@%rTA!Rݺ=FsB@lFhG FAR"R`R@`e@cFdBLF!LG!@ `DSA{è_{ `@ q`TTq TT`@s@`@ qT`@qTTQq)T @{¨_ q T q!Ts@`@`@s@`@RR)@A @{¨{S@4/*4`96a@3X?`.@@`2@@`6@!!6>6a@ xSA@{è_ ՠa@F(@`a@*F*@?`RA! J*@b@!@!@=a@RA!><{ckF:F[S@t @ qTqTqT@`@! K`T`@ K`Ts@SSA[BcCkD{Ũ_ U@T A!R<@@ K @@9` 07 @RR b@9 55a@@"@ A@@ 5`$ տTs@a@b@KaA|@aTң@ T@b @D b @b D" @b " @B C% R@@!@@}@A6@RA! @[BcCkDSA{ŨW<h A! RҎK< ՀBO@[!hG" բ!BhGA @a@7a@a"|@s@3"FB(@CL"FB(@DL&F(@H {S`*@_T RK<  `&@!T`@k`Tq@zTs@@SA{è_`b@SA{è_ {cS*ksF[ hG@@FvRr@`(@*@"@`?rTJjT@@@JjT@5 R Dq T R v!R$q@T!R ?qT Rr4j@T R q T6F](@*@"@`?rTJ@s@3`@ w@jaTjs@`@ (@3@"@(@`?r`TJa!RrjATs@7Ҡ4SA[BcCkDsE{Ǩ_w@vRFr (@*@"@`?rTJ_js@`@ z@ R DqT R $qTR ՓvRFr (@*@"@`?rTJ_js@s`@ z@ E R*Rf Rb@`@B@(@J_jT#R@75s@SA[BcCkDsE{Ǩ__j5FvR|6_qs@S`@(@*@"@`?rTJjT |@7@SA[BcCkDsE{Ǩ_3a@`@A (@Jss@SA[BcCkDsE{Ǩ_^ { F!FS"@o[@ck/sURBbGs"@s`@RD@_jATabA9'7bG9@A94H@4 !R*@t:@F!|@(@?T*@ rT5@Rٷ!RM A!Rη:bGRA! @ƷRA!@RA!`RA!BB!R#@X#@+`Z97;c@@!Rd@c5 !R@C:*<qTp6CqTa@ (:`&@`J@@ 5`N@@ 5i6s @+@bGR!!s@s!RF`97@4GcF}N`@!kDFRFcFBF@@!eT@s@FbG (@@5Fo@@ `SA[BcCkD/@{Ψ_ ՠ7@9:`N@ 6`J@+U{[5(@Sc#*=@!!/q*4`:@@F97SA[BcC#@{Ũ_ ՔyFc(@c@cA`?rTa:@FLGB@9@ _z$@T@? T_yd@T@@R5j@TFbRz"r @9q@q@TqT q Tz2`(@a@9  `(a 6zJ_ rT6d@b@kTRtϿr *`(u7F@*@@@q T`z@z@kITzu:@K95@`R@ ` Հ#@[BLGcC@ `:SA{Ũ_֢R!! #@c~@[BcCSA{ŨE9F(@@@q` Tv2x2F!2a9*E(@@@`(`~@?6@a@R!! fd:@c~@@9@v ՂFaRar`R r  A@9?|v t@!!@5@!! µ 5@9q@zAT`*@2`*`~@#qaTRx !!`5@!!` `5zz2R յ2N *@I *Xn@  2x2> {[F#@G rTFG@@ [B@#@{ɨ_ ՠb@9 4 @S/` @qTb@94 @ t@@ @*` @|@ t@@ @fqlTaT*@4| 4; @4 5ZqTT@qEzTs@SAD/@@>@F@ b @7@6@>@F?@`@ agR8@T4Д@@T?@D/@SA@` @R; @|@ t@R:@ ` @|@@@5SAD@/@{ hRj8 @S/ {S!@a @Ҁ5a@@SA{è @SA{è{@94SRkзcqTz:T`@8qTz4Tu˺8Cҁ@|`@9h584`@9v5SAcCkD@@{Ũ_!G@`_ {pAvG!@AT@{¨_ր F@s"@` @qT`fA9@6;b@!Rr T`@@@ @vG @@@{¨_ @ @?$q@T?0qT@ p_ _ {S[F(@ R7u @lF@!8 s&@`fA96`@8 4=s&@@7sG׊G`@` 5F (#R!RBGC9@r TFDG!$GC(@@!@c@cLA`?rTFa*@!@!`A ?`@ F!F`*@!@C1b*@ `G@95@D@!`Gx@D!P@9A42@DFx2@[B@9SA@@D{Ĩ_ ROa @ 7 `@9q@D@T!`G2@D!P@95x@D բR!!86R!!06,*`a@ @?q_kTAC @k@T@ @aG!@}!!R6!!R6G@n lq`TR!!@6F(@eR!!֊G@6A@T բ@@q2*`@t2 ՠ@@{]24{_ {_ {S!8G"@b3c!F!(@`SA{¨SA{¨_ {!RSsBa@tSA{¨_֢@@G95hG@@7@A?|@@B@ R@9_ `@9B QB_qT R_ @_aT{SRd2sqTB  C8@B4@!b@!y6@ @u6 RSA{¨_{BFB@ bG@74QFa5 T@Qs@13AbG @B{Ĩ_ ՀдF@ s@bG@ @B{Ĩ_ {rT_d@@T`Gd@9a4@(@d(@J 6**@{è_ @@R R`@RR@T @"@ @?@*@{è_ ճ @@ ՂЃ%BDFfFC@@cC?qTB@CAcCЂ!F@F!@ {ІЅ!FBDFFFc@!@ sF@E@f@ҟ|8@9DEV@`@ ʀ @{è_ ՠ@$D@$!@B95cF"R@c(@Z @ (@! ?qaT @a !@?5(@#R*! ?qT  (@! ?qT @`LG@ _@L@!@ @ qT B9(7`F(@ @ (@x7 @B@_B4!@ B9`/6 @(@"R! ?qT(@! ?qT@`LG@ L@_aL@?a5 `H@`F(@L@ B9/7 @ @{_q0  @94 !и*8`qTHT$qThTq!T5`@826R5 @@@A@{Ĩ_qTITqTqTqTRb@9*4`@84`qaT@2@2Hq`T\qT@2q TqAT@2qT@2R 0qAT@2{!lF 3@SafA9A6?s&@s@ @{¨_ {! F 3@SafA9A6?s"@s@ @{¨_ {! FS@F#@4@ s"`T@ R4`@F!(@?TF!F6@!@@`@ `@6`@SA{¨!`'  ᥃R4`@{ bFdA9C@7ҡ65RsF*7@a@A% @@{Ǩ_ մp8fA9 7G@5G@94 `3@ARrT@c!Rr Tu.r T@#A9qTqaTlA) յ@u@K@@@9?q!T@9?0qT@9?0qaT @94~@5jv8 4qT@9qT @95'A92'9@fA9`7B@@!FBdA@?rTfA95R2f9@@ մ@@R!!@@3fA9@@A|_* .rTc6qkTLzT@иC\ֲF @j@@95bA9@9@9C$G&FӅfA9!EӀ3FBxF3 @3%R 39#R9C9a@99 C*uj2F@KfA92f9cCkD5R@@2fA9'7@k8:йZ#5RҀ@n!RJrTF@@3?rT3@B@BdA@?rTR!!@}R83Ru@R/3 ՀfA93f9BC@'@@JR!!`@3uR!!X@3/@@b/ 3@ `3a'p"B` B!R//{SnF@3b@b@4s&@3nFRBtGҤ@B@[F@@@@5@@`fA9qT@SA{è_ Ҁrs@SA{è_ֶ@ {@T F(@95@9@ 4qARAzb RBzRT @8qCz 4BzaTг F@ s"@a @R@5Cs"@ @AB{Ĩ_ ոrг F@ s"@b @crT!s"@s @@AB{Ĩ_րг F@s"@S W BA{Ĩ ո@{S5 )F` @ qTT4q T8qaT@s@SA@{è_q!T` @ g _ `{[SbF8qTq Ts@S` @4qTJB97SA[B{è_ ` @B97SA[B{è_ ՠ@B9@7SA[B{è__@ {SF!7` @ q TTq@ TT4qTt@ ` @[ 0q TT8qTT`*@#@q T! C@ #@ @s@SSAB@{Ũ_ `@``@95` @"RR@c@,RY q T` @ _ `@@ RqTa!RqTa R qT@ (@A*(`@Q?qT7` @x @u@5@b% 4@5@#@`b@9 5!a:@-:bB9` @B2b91aB9`@q!B?kT``R"@RF(@@@q!cTqT@R<qT~ (qcT RU!2q9C@4#@l {  @9 5FN@@T[F7`*` @ qTiT4qT8qT@s@N@!TAB @{Ĩ_ qT` @+ մ@{ F#*@Gғ@FuC7` @ qTTq`TqTqT` @@? q`T' 4q T8q`T0qaT` @s@D@F@96 0FG@@ ` @@#@{ɨ_ Հ*F@`fA96@a*Y4Y76a@" A9B_qT_qT D@06`b96 @@qT @Zy06`fA9x2`f9jG6@)rT`G9?@ jG@ TR!!a @]0@@GF@@@C`C@?aT7t @@9 4qCRCzb RBzT @8 4qCzBzaT@`@*V@F/82@*@@` @H@@@T@` @*?@@T@?@T@` @*0[@@@/@V ՠC@a@@@@?@` ա@6m@@@7@(@94@ 6t/S?qBEC@9cR!*!4#RC9!F _ {S[*c#*BR* ,@`q!R@Ra`V)`B`B9q 3`9z@aT#@vRw:[BSAcC{Ũ_ բR!! Ҡ/y.{!F 3@ "R!F!@b@@` @{¨_ ՠ@@@hG@B9!t9@F(@H@(@ @$AX7 @@_ ՂBF@@qThG@F @9(@ @7#@C`$@d(@7e @ @5`@(@bx7b7F5@` B9 72 9e @`@2d(   @Q!@A__ {R#RC_PkhG@F @9(@ @7#@C`$@d(@7e @@5`@(@bx7b7F5@` B9 72 9e @`@2d( @Q!@A{_ HELHELL@L@{BRS[5F*bR`R@ qTR`RSA[B{Ũ_ַcx.@Fb>@` @9`06d6@dF@c8@@ T` T` TRP-*F @9!A4F6@F.@cC c(@a2@k`L@y BR%f0A(@6@T! BT?qT @!$ƚ9x@ 9@FR?PTFY/*@7@TX/kD ՀFRP5cCSA[B{Ũ_ FkD @9!   R. {"FFd@C@qTB 974!!FS @?Q4 a@!`Ra9RM@95`@Q1`TSA@`R!R=F@@ ʀ@{Ĩ_ֳS { ҄!F"<@L @ <{¨_ _ {S[#V! `@aF@4@ @9qT @9@5Z@Rq? @? ?#??@?c9@"?!  #!c93 693@?`&? +{@['Rb RGRo:R@9 4qCzBzT @8qCz4BzaTҡha8qGz 4BzTha8qGz 5DSA[B#@{Ǩ_q C T@95o@o@@ZD_qLTc/XR| R@3W@@9qXznq@"@9 44cjc8qXz4\zAT4_qRDDzD\zTҤ"hd8_qDXzb4D\z!T`4낐4@3@`4cCD/@SA[B#@{Ǩ_c낐@5cb5"ҲR? @?c9? ?#??a*4RCzd RDz@T @8qCz4DzaT; 4_qRDXzD\zaTc!RE9,+@ro@  qTT q`T qT`) 'RBRc R @94qBz @8qBz4CzaT@@ $(ARb R`@94qAz `@8qAz4BzaT $(s@{@q TqT$ '0 '"n6 '; '"{ {cFS[s@'a@ `T[BSA{è_ Ղ!C8Gc@#*4B8G@F@9_փ@Fc@9#4_ց _ {!FS3@Ra@ `SA{¨_ @9a4@85_ {!FS3@aRa@ `SA{¨_ {BFS*S@ARa@ ` SA@{è_ {FS[c@* ҰaRa@ `$SA[BcC{Ĩ_ {!FS3@"Rb@@`SA{¨_ {!FS*3@a@ `SA{¨_ {SsB`@@!! R7+`@dA9P!2d9SA{¨_ Ձ!TF 9_{SsBdF@ ,@0@`F@(@@SA{èC{ScF[@?sk*F@9q@T*@@ TRHkG*R@?@3 *@@A T!@'Ҧ@FA+@a !@ C@c@qTT#@`TAf F#@ c` 7@`;@ 5@@7@7@F@@B@_ T`@aa@A ``@`ZkG[F?@@Aʡ"SA[BcCkDsE{Ȩ_ !`"@`@`&@@@bB@I !@'A Aa# ca AL@! @LAkG!@?Ta@T!`A@@s7@F7@@@B@_!T;@ ~@c@c@qTv@c@q T&t@@qT&(@6qTcA# @LG@ &4ht@@qTh(@!c @dGT@4@TC !@'AH@ @HNCLGFHC 4g@` Tc@cF 5#@T RA# f & I4# @ `1 @H@L,CHvALvc@a@7a@a&|@fc@#} Ch@T%R *@F6HAGH@LGc@ )4 R Tt@@q@TH @54JA @HT ү(@6x@z@kk1g@@AT%R*# @)RTFHCL*&Rj4JARH @L@H  *[*@C6V dG@d@zaTccGc@qT_`BzBG_ ?" {bBFSS@*xcqR@cGbAdFc@d@`#`9SA{è_ {a!FS4@[R@?"@ASA{¨5L {SS[uc#=Bb"b9f9a ZT F@3F@[BcC#@tSA{Ũ_c*3F`@#4s@`@ @?aT`@9!5d@95R!ئҔ)s@`@ { ab@9!FBE#@9D@L @@``2 9{¨_{`!RE@@9{_{SbB@AAOR)sBut@SA{è_ @A`@A  {RRStBBRAArAsB@(RcAdF@Cb a A(R^ @` SA{è_(R  {d@!@'S[@7i@94dR|Fax?|q @z`TA9Ba@85_9S8c`!RV(R R @4c!RC(Rz @(Rv `R R [BSA{è {kyS&FB*@?[R`A@`RaAb AB9c29cARx@Q sA?+;R`@u(@a@Fv@@5j3@+@9FB?@ @ ʁ?|?|@SA[BkD@{Ȩ_0 @w4a @B@ (@+@+Ӥ@{S[v@@9tw2`B94t5! 4!@ 4!`5`B@9R[B 3@`B9SA{Ĩ#R! r.(`B@9!R[B 3@`B9SA{Ĩ# `B@9tx`B9i@94RRGRf R բ8*@8R4_qC5DGzDFz`T_pq9@8549``B@9AR[B 3@`B9SA{Ĩ#ʤ`{S ҇ `B4SA{¨_{xF @3@94`@@9A4" s@`@|`5R'b@FZu@"@B@9! 5&@s@Sa@@Z`5aB@9B@9JrTRԤ@'s@@@@FZu@@B@9! 5@s@Sa@@4`5aB@9B@9JrTRҮ@j's@@@.@9 4!@ B F@Z  @ADC @7B{ƨ_ a4@!4@U! s@a@@5aB@9B@9JrTRn@*'  s@Sa@@ܣ5aB@9B@9JrTRV@'!RM ' @CB{ƨޣV"JCCa{C!Fcw"@_SF[ks@@tACvG *B@"Ҹ!`8G@`@_s@rTRBa`vGDC#DFRF@b@@Bb R2F@97F<@ЁR&`F8G <@bF`F@`J@ ``G@SC`@! R&s@֢!!a@&`@ޡptT"{{Ta @a&a@&s@` F@`R`Rг+Rrr!*4R(#@@T/@j (@44#@!*(\5@CPa` F@`G#"%gA9 (7Fb@9@*@-cA9a/ 7@9!?q`T@9!b(6G@@F@*@B@@@_k@TA7a07@4`G@9@4FB(@B@B@@?r!*T`G@9(5o#@`G$@@` F@5@&R&r@ @@Hr cTTRRFT*@**"@R!@a"GS$@S ``G @9`5F`@@@qdT R(aF"F@9_A 7@9qT`F`G@@a4?qT@@q TF@`F@]F@9qMT(6F(@B@B|A@?F`@@@?qZTF`@96u2@u``GrAT9@5`F`@#`DF`@@c`hG@vy` F@uvNGB @tH@ 9@ ;@bA9 6@FB@BhA@?9@"@uF`@9qTb*@B@BA@?`*@!D@a"`G(@#x!2BP@9_q!(TCR@F!+(@2` FR@6@vе)@ @M%`7R@"@6aF"`GAHA9DDA9b@9#2qaB_q"2A%`7@CP@9@CP@ @4#`hG@R @ @$@b0@",@ @" @aT!$@$ ա@?q`TR!!&@@$lR$`G@9 4#@ `G@9@4RSF(@O$#@ +@r-T6;Q``G@9]5F @9qA9T 6`URF@ 8R8;`RhG@`@7`C@`a@ `@Z3sC9@@@>`5kTzS!}0 `@ qT`@`(@ 6 @ T @@@;@Rҡ^${@[@RB,E*@ {B@,<{@@F@f@9?b@9@(@ @BrT@4`hG@Д"!B-@7@B@s@`B@95`@ޠ 4R]b@@$s@S@F`@906`@9qTFa@?qᗟ#BCC@a@@RI @!LG h*@&@   `T@A0@y ? q!TA@%@9q@T@G@p@98@qG!e8?qAT @ !$ɚATR6`G`9`*5ZCS@Fеb3a@$R@RRF`@9 QqTRa@#s@FaR@9 ?qT4R? q`Ta R qT`8G@ F$RRR`@ `@9 QqgT`R8G`@W@B@9j4F @9q)sT4~5`F_@@ @SB[CcDkEsF{AC_ !,RҺw#=a!@F4@9a R qTFx>@xduеNG @c`@R@RR`@9! Q!?qhT@0UT`8G@AaR!@!@9?q!TA@! @!$ɚFL8@5F@9qsTXC@}@LG@` F@sB'gA9(7@H@u*@h6@ܟ`4z*@#@{`СF?8H@B9@5`@9x`9``G@_qgT_ qT``GX@9e4/R*{5{@``G@qaTR!`(."@c@"XR"" (@H@е++v@!(e!R%x@@"ps@a!8G4@( `@@$RRR-A9!29@a@9!?qT*RR!'`@9qEzaTc*@*c@cAc@`?֠A9?qTt29A9f@9!292f9FT`*@Qa*@"3H@S6/ .`*@6b@`"@A!T?VTa@TXTs@F(@ @q)T||FAR(@H@{b`+@`6 qT`#@`|sj _ 9{@{i`Tc'ڝYC/@ +@6 C!#@ c$c?@?렂@cYT?CTc(@ b@|Ӂja!@?TT?VC?@BB0"@Ң7`@u @?ѵ&@;#@9"@@#@{'š{5?@2@C[TC?9?ATS@12s @`BA94` Bt@Rݞa@!!R!TC@F9R @xs`g@9@7a@+@ 8@<@|@?2T`@<`@@ ՜@|@``5|@sT@yc9@@_qT*@uA9@DӄA@?`A9` 7@R`c9aA9`A93xa9`9F(@0@? @p@9uuqTҔ~F?@H@8|@@9@4~F|qR `x` @zT !`x|q` @zT@@8@5(q9!R9B8D@B @k4b {@?@@?f BC@P[R! #q@")!` F@SY`@.s"@ts`F FanFB@@ @B @ 1`45FVCK@R@9@29`@B@%@@!@?@4TF#c@{` FvvnFrG@F@@@ @!t@?c @ 0dA9/6dA9Fӡ=06XC#84:@a$@_6Ta@FK@@AG@@1T[@d$@anFDW@$@1T`d@S@ F@/d @$O@d _3Ta`#DFaF4 FARb@@@B b#snF@O@g@%<@Dt@B) Ձ @?c$@ @?T @!$@ B@@ dA907@!t@A @  @&@t@T&@t@T#! @AEe@`@c #@b8@bB@c4@`*@!@!!r!TR!@5a!8G!@K !4R҇D F*@ϴrAT!5Rz7 Am6R!9rF@#(@@c@c@' `G@9@4[@ݜ5~)jRTR@@* @-R@`G@9K4`F`G@@G5!FQb (@A\G!@`44R!`6*a@@F@*@qrTR@,R` F3@sZ`@-s"@Rң{r{@TR/,@E @ @@A" @>Ra@Lb@ <@@G$@9Ҽ`G@9 H4eR!`7ٜa@ TCR@R!*ΜR@~`*@"2`*sRa@@Q 5F@!RҬX-eTVC^;@R'Қ'Fd@?@ @?N R#9("RR& ks@_#O@aTA"sF@9qT +@@AT/RY@KJRP@;a7@R3QG3@@d@??@o4R!`7Aa@qR!'9"@AC "R*,@`CF@9qT +@@ATғ`/R!9*@@#@@c@cA9'72 {SO`F@ s@s`@l`5SA@{è_֢R! ;SA@{è_ {BS3\@ s@3`@H`5SA@{è_ֵBa`^@`^SA@{è_@c@@`@@a_ {S !SA{¨_{R s!;R!@< @b{¨@F  {R s!<R!< @b{¨@F  { @94v~F#=q`Tsx`06@84@9qd@z`Tsx06 sx07@8qd@zaT9M5`!R`G`995AB@ @{Ĩ_֢R!`=2{ R!= `@` @`?> @R9s @` @`c@b@ Rt@S`@Q`@cBc R `bՙ@Rs @` @AB @{Ĩ_{S3@3a@ha@537@SA{è_ {Sa! @?P3 @SA|0{¨_{a! ! @?L? @ @|0{¨_a _ {w @A5[AS@5  ՠ@@`@a@4s@s@@@?X3 @@|0U @t8R@`@@5x2s@S@x @ @`@@5z@s@S@S @`@ۙ@5{@s@S @a2@@_qbRBRR8 ҝ@R@ s@s` @@`5҇d@Rs@B'@TD SA R[BC@{ƨ_ Ձ@A ҷҪ!R0@` RS WcҡRB {a! ! @?L? @ @|0{¨_{Ss`F@'a! !@sF'@b@b?P? @|0BSA@{Ũ_ *c,!RїW !R@9?LqAT@95#R@?B {R!`? Ҝ @{¨V {R{'{bB SA@?P? @|0SA{¨_ {bB SA~@?P? @L0SA{¨_ _ { @9|qT`@8|qT!?5a@9`&@9?kaT`"@9R$qAzT`a*@9|Fxax 6BR`*ј @{¨_  @{¨_{[@S4@A! @@ 3*!RkTlT@@?Tן*SA[B{è_{[uS>F*c@#s@3`@T`@k!T`@@~@@|@@ @A@@s4R!# A>Fv@`R8`db@ba@[BcC#@@ `SA{Ũ_A@!RΘ@[BcCSA#@{Ũ{`N9 5a"R9 GSt@94>F@9# @R) *@a7|@} @{"@Ba@ S4aQ#cL!@@"T3a@?9@yssFZ>F@wz/NG@FB 3@`@9 QqT3@@`*@#a@9!?q`T@@|@`@?*q@TT#RqT qT@9qj`~@"RvRss@` RS@R@*@S{{y7 cG@4@!@&@@)*HqTRqTa@A5R`| @T+@ 2+CFa@c@9cqT*]s@u*V@D/@SABC@{Ȩ" Յ@c@w?aw@?@*V!Rڗ R bA5R7@A|@R!@ȗ@@!@6@@c@z@{Ȩ_ #Rq@T!@Rү@*#RB@d[#RYR!3@@!(@!@@!@!|@R!@@!@!|@!@ de`GA9{bB`GC8@9C4_9b&@$ABAC@?{è_ {S[R!@b[BSA{è {S[R!@L[BSA{è {@S[6@`RR@LGT!@R)A!G @95@E@ ! RSA[B{è_ @G @95@E@ *j! R! R_{@907S["`@9_ q`T_q TBSLGs 87c:@BLGB@ `BdBT:@`BBT#9@@96! RՖXR! ʖS :sF`@ 4SA[BC@{Ũ_B3BCLGc@ x~@`CCTSA[B@ R! ! RҢ_@[B@RC`SA{Ũ_ҹBR#{SS[aF"@/ rTR! x4b@+9W!0sF@9/@a@AʡSA[B{ƨ_֎ {STcFCkC@_[ Ү@RU a `v3F@9 7F 6@_`T @Ε@R©RF_@@ASA[BcCkD{̨_ M)`fA9` (6A!lG!@9! 4@G@94` afA9R!xaf9 v@@dA9A 7 K@`G@ @$RRR; b@9qT qT`4@ss`B@94v@@`$A9! 6`@*rqTszqT! @!@G@95@G@?qT R!4?@!t@!$A9'6`Q Ra@a@2A`f9| ՠ@|@ Ҿ! RҮ R`B9 R  @4!b 5 @$RRR@ `  @ v@@@ s  q!T@@|@ {ȳ(@F@A!G!@9a5{_{{C`GB@SScF@d@W@Rv5;@ @qATsFW@a@ASA{˨_ٔk{TG@1`Tc @qTQ@TD s@ab@9 QqiT 4?q T?qTR!@Ac@b@!LG!@ Td|@cC @:@@@{Ĩ@@{Ĩ_֢R!@b@u`R!@ @cC@@@{ĨR!ؔ *@BB`ĀR {F`GcS[0@95!24tv"rT3@sTrTs@R![BSAcC{ĨOR![BSA@cC{Ĩ> SA[BcC{Ĩ_ բR!tSA`[BcC{Ĩ)C@9c4_ {c |TTcC @@{Ũ_֢R!#N @n6?T4@4 t@@s"b@@@ @4T@@cC#@ @@{Ũ# բR!@R!@@@ R9{STkbGS9[aFc@9"@75bG@95sF7@`@ SA[BcCkD{Ǩ_ բR!ܓbG@9`4@+@KR`@p@94 8 4B@C@B`@`@@$R**b@95 Rb9KRc5BC@B`@`@@9qTKR\!`RҜY !RR {SS[`bG*c@9 5sbG`@95SA[BcC{Ĩ_*[b@95 Rb9[BSAcC{Ĩ_֢R!f@"@`G@9 4{` QqS%`@9qq4@T Q_qiT@4𡎀R@!RESA{Ĩ _ "@B@U|@5q6@ATT R!,[BSA{ĨqaTqTR!!@5|@`4𡎀R U!R@SA{Ĩ qT5 R! TR! AR AR դ𡑀R@R!@!R! ْ[BSA{Ĩ@5R!@"˒[BR! #}𡑀R@@[B {SNa"@ @ @@!3SA{¨_ !S 3SA{¨_{SSsF`@ #R*]SA{¨_֢R!@@Ru`R!>ZwFA@9"3@_qTv5!@RޑDB3@BB3b_qT5DR!?V4!R!@=F?@wa@_qAT4!HT65!RҪeDz`Du R!! !` {SSsF`"@ #R*SSA{¨_֢R!@<}SA{¨8 ɶAУRR`"!4Fgr`T`"@!;Rh%`"@{XSF@9qT!;ҶAFR!4F`r T ҙ0*1T+[@kaFBc x`x706*@z`x`771TkD@@+@F@9rTFBR@SA@9A39@{Ǩ/  * zx@071Tj<8Tw* zx76F#Rj<8*@1 T`F/@zx! R!;RF#Rj<8*@7@RҐ R\@SA{Ǩ !`RgkDsE@@{SS@aFq"@/Ҡ TT(qT,qT[UЖ"@F~@(@?T!R *@@7AR k@T[BsF/@`@ 'SA{ƨ_ֵ[UЖ@F~@(@?TR y*@@7AR kTF*@@DRA @" [B qaTUзF@(@~@?TaR R*@ @7AR k@ T@@ @Z@yqT*@7[UЖ:@F~@(@?TR 6*@@7AR kaTF*@*@@R q`T:@!R TR "@6@[B ՠF(@o &@@ *c@@@R [BoF(@S @@R IF@+@@! @?qhT~@?T R @pq TITtqTxqaT@!*Y9cC#@"[B@ յF@*@B@B4@@?@@cRF$|@ *@T#F[Bb( @9/7@?pq T)T?tq` T?xqTB a R F@*@B@B(@@?րhq TF@*@B@B@@?! RP! RJs! RDBR !R  "Y! Ry6D?hqcTC+@~CĻ|+@uCUC+@l[c#B AR B {AR!F"@_Ԣ+@`G8@?1a'TB @W@F?(@C` TC@@H@w?qS@` T7@S[|FcksGS@@@?< OҠW@R @R?qF@@9Tq TRR @`G 8@kIT kT! @bT*@W@ @F?q@@9ATB@9R@B075@RqT6 @ ՠS@w@!Qw @S$@zATW@SA[BFcCkDsE(@CC@W@@!FBpA@?rT@F_@@ {̨_֡O@қ@5nj QaC `K`8qT @9qAT @9qT @95 Z9@6 @ !@ 4S@@KK@4@QA!|FJ`8!xbxA6 4QG@Ja8bxbx6* *qTQJ`8?qATJ 8C@@@QxrTTO@3`4! 497@C@ C@ W@#RR*F@`R@@9@c9*@X+@939d@z@@6@@{G?ր@ @"@!?@#"B ? @!@_qaT@A@** ! Q?qR  ! R}  @WF(@Cf4!R*R! S R[cksS[cks { @a@99!xa9 @{¨_ RT`R!ƍ`B@yx`By} Դ@ A@"FLG@ C$@T!F?_ @`G`@9 5C_{ @ SsNGsB ?T@$RRRF@@Լ`@9? qT@ R @{¨_@?!T@@@C@!{*B@!S*A R |T!hb*?k!TUbG@5s~|@!`@z@5SA@{Ĩ_ յbGRSA@@{Ĩ R@UbG`@5qT*!RB`?R?@`@{A5F `@q(TqbTqT4q T qATTF`@ qM/T<q%T7TqNTqa/TF@4`@RR`B96 0@@9@4@@!@@F@ @LG9@   q TT$qTTF@A4bA#R9 @CF! @FA{Ĩ_ `@TF@9 4b@_\q`#T1T_q@fTAT_qkT_q1TFR @CiT@A FBq @CT@FLG@ "$@_(TF!Rb@ 9F`@ @ a@"@9_q@!TqA&TU$RRRF@ӻ`@9qTf@97 @@A{Ĩ_`@M@F@?q T @A{Ĩ_ ARq@F @`@T6F@94`@q T`@c@@+@9`_4@Tv`w^F@@@LG @B ?96 `@8qT.Tq`TlPTqT]TqTq!TF@@?]TB @@X `@T @ @9@4`NB@?s @  @Aa@ @{Ĩ @a@XG@@5 @ s@`@`5`b@9@E5@`G@9D4@Ft@` @AB!Rab9F!R @&@99@˶@`@RwZ&@!R@99A@ @@ ճ @@ a@T`@F@QqiT@`@qTBF@9A5b@9A#4@qTF @@ R`@!4 @@?T|F"R @&@99!@ˀqj5Tq1Tq,T q@#TA @qR@{Ĩ"@95qTR!JTF@4`@!R9H9@qaT@9`[5!Ry@A @{Ĩ1`@59 @ Ґ@`G`@95`@#R #9"DqT qTu@!`Ԋ>4!ϊP5@F!R @F@9x@f _q9T_q8T_q`7TAг @!4R{Ĩ0 @u@@R"R`<@Ff@9DFA@@9 7b@9 Qqh T@9U q29JTNG?q9@ aTF"@9B4!@?aTPF@?q@,Tb@aRFf@9_qb9`3@@2f9@9 3f9`@9B4UF(@c@cA`? @@ ZTF*@c@clA`?ցF"@@d@92@d9 @@Pq ZTTDq@eTL2T<qcT@qRTFB @@@U_qaTF @4@"$@LG@ _T P@Q_qiuTQq TF @9!R 9F$@rF@4`@RR@@`B96 @!R @@9`@R.F R!@ @@9~b@@@9qaT@@9@/4U%RR*F (@ӹ-`@9 Qq 0TF@@qTq@2T@@924!@Reb@ F @_"s@Չ 5vb@9 QqT@@LG@ ?T@RR A@9 DF@9_kaT Ab@%RR!FR (@ `@9! Q!?qTd@97"ҔF Ra@@RR@9a7A@9 DF@9kU@F @92 9"4_q_T"(@B@BTA@?**@L` F!R @@9@@4`@RR .@a/`@q YT!x@ R! ` @q<T,T\q6Tq3TF"R @"4@!$@LG@ ?`YTFB @9@xq@@TlTq`6Tq0TFB @@@'Ua@$RRF*@`R!a@g b@9 qTB @@4F@ @B@! FA!LG @!@ 9_@Tš|F @F @@F @@  @ @ F@" @B@! lcC @@F!R @F@9t@| q3Tq#TF@@˘?끢TBA @@{ĨR!`G Hq-TLq TF@@#?끟T q -TqTF@ITq!T4qT RF @F|@B @@9!@R@b@A @{Ĩ F!@4!R F"R @@&@@9!@9ˀFB @B@A8@8@LG@ ?9TF$R@B4@9b @U@ T@!5@!Rb9F@@T lТR!@NG@ 8@@TĴ7?q9@BTF@(U@@F@@9*@2@9?֠@9@3@9U&@NG! TFC @8NGD@!@ qATA@V @A7!@FNG!@ @_A4T @v@F@q!TR!@{b@6 F RU&@@9NG@ _D@@T%4@$b@A@?q`6T@@B`ۈrTF@94NG$@!ATF@qxT ոF @FB @@cF@@?|!TBASR @@{Ĩ* F @š8 F@}TF @?T  FF@@?A{T@@MFB @@@'F@@'?xTFBR @$ @$0"`4@"$@LG@ _T"P@_qCQq㇟*4_q#4 4"T!<@%"T @B@`4` FB @@@F@qTF@@ʘ?apToF@@?aoTgFB @@@FB @@@7F @@ p@?qaaTТR!@@?q`TA`4FNG!$@_T@q@TR!a@> R @qTR!`wa@3 G@@g`@@@b5?q@T@@_\q BzT @ @qT @@5@_@qAT @D@C@ q`CzTB @C@9qTB@95@@_qAT @ @@?qT @TF$@ (@ 2 (!@  @"RLG@!@@ 9OF@?qT@!R9 3 @F(@j*` F$@ TFC4@"R@!9R!@" @`R @ P"8$F @@ TBBؚB|F%P@" qTq Tѿq` `VT5B"R @$"P ,?4@R!@ @A@{Ĩ @GR!XF_q!RT@R @B@R@PTѳ @@B  ,@B @@ @ @L `G`@9 4A@94A@?aT @#@"@ q@CzAT! @"@9_qT!@95@A@?qT@@B` rT`@!@ @* {Sҵ@ R`ݝt!`R`! G!@aSA{¨_{Sҝ@ R`ŝu"`@RB G`A@aSA{è_ {S҃-R`u"`@ RB G`A@aSA{è_ #D@cF9da$ !"!FBLGB@ ?9?"$ {  F@94 @B RRb`a @{¨_{S[*D@@)@?qTSA[B{è_֡@?q!TQ^q AzT {S[* @#R@)@?qT@SA[B{Ĩ_ ա@?qT@?qT{S*@CR@)@ ?qT@SA{è_ֿ^q@Tz$R_qAzT {S*@"`t`RB G`A@aSA{è_{STb@Rd@R9)SA@{è_{SҮc@Rd@R9 )SA{¨_ {STҘb@Rd@R9)SA@{è_{S҄c@%Rd@R )SA{¨_{!S4[bG6F@@`@qTTq T4qT qT`@ qTRc@bG!RB` @MqT T q@T$qT`@|@@`@[B@b@`SA@{Ĩ @ `@R|`@SA[B@{Ĩ_`@bGR@F`@@@RAs@@ [Ba@ SA@{ĨbG! @`@c@@B@ !RSA[B@{ĨF ՔbG!Rc@B@>`@@ RSA[B@{Ĩ`@qMTqTR2bGb!@o`@i@!bg`@SA[BR@{Ĩ`@@`@!Rs@\ TQ?qTR bGR@߂@R܂`@B@B!-@`@:bG R@ qT\qTbGR!@ł`@+`@!RSA[B@{Ĩj ՔbG[B`@@@SA{ĨobG@!B@#@ { ` F@955@qTR! = @A{è_ִA @{è_ մA @ @{è_ {@TR_T!!?@AT{_ { 5F@9`5@qTAB @{Ĩ_@@`HF@,9#|S"|S 9!|S$9(9AB @{Ĩ_ բR!  @AB{Ĩ_AӀ>%@R@8s"Q!Q_$q! "C 79RAB{ * !!F @94"@ @B@A @{è_ U @qTR! YA`~@ @{è_ մAA{@УRR!~rT{_ բR!~{: @!7`@9? qTR*_{!!LG @!@ TR* @{¨_d@9!RB6@R@R&@ @@ A!B!@ A!B!@ @B @@B@@B@@B@@B@@B@@B(@@B @@B8@@BH@` _ @B<@` _ A!B!,@ CcBc@@c` R_CcBcD@C`_ FBP@f _ A!B!T@a  R_BBBBL@b@ R_A!B!X@a  R_A!B!`@a  R_BBBB$@@{#@B4@{_ {S43ЁF"@5Р:G@3bFB@96BBF_q!@9T4R]@@9@4BF:G@9@@uFv@`sF`z@ a@9tG!F@`zF@@ ʀSA@{Ĩ_ ա5uF@v@ tG@v@"@F(@@9!29`@ @4qT G@q Tq T5  F@  @@ @ @q`T_ BF@@9x@9_ _ _ R F@9q`T _ !!F @9q`T (@[_ "! BF!DG$GC(@"@@c@cLA` {R!$${ү{R!`${ҥ{ 3sEa@ 0@s"b@RBYa@ 0@b@R@ @{¨_{S@9q T4ДE a2@f`4@sR!$!`%Rہ F@@SA{è` @@SA{è_֠@9qT @9?q{S4ДE@b&Rc^@!Rc2@%a^@ ?$R@@4SA@{è_֢R!%SA@!R{è BBBBd@b@ R_A!B!h@a  _ CcBcl@c` _ @Bp@`  R_BBBBt@b@ _ CcBcx@c` _ BBBB|@b@  {#ТRcF!&S*t@Q!Rc&À77SA{¨_ բR!`'@ RR!@(8 R 6R3!`+. RsE`@s"+0@ R`@`SA{¨_ !R!`G!@j !@R!`G!@d {S*bR!/*!@1R RR!0*{H@[6еcFI@ @+b{?_T'@9R|F*. RR4?qTA@8?q$@zT?qTA@9L?qTjax*6J@9_qT?\qT?q=TT?q>T?q<TjR?qaT q_TA@9}ӥj'A5ck/4QbRB@? qThT?q! Tb7%- }!@`_AT"#68ТGC*RRF4?qTR @9?q$@zaTT!"1@9?q@TA54 `G8@9 5:[5FA@ ʠRcCkD[B@/@ @{@+@_?qT(Y7%= } ?q TB/R19?q!T(O7!=*!}'@!=*!}%@%= *}!@`_aT #@94q Tcx*6 @9qTqITG@!R@99 ,Xcxa 9|Q4#@9?Xq'T?qhT? qT4@95 Ri!@9B@9*?q'T?qT@9?q$MzAT JR?'QA @9L ?\qT!Q?qTR3z|}@9lB }!R jcG@9` !R?z| c5}F9?@_q5T"@8_qT_q}@9D}@9=@9:R9 G@}@91!R B5z| @9&g*z`Bx` x`r@ T@ҁc@sF AC@ ?r{`TW@@9 R qAz T!@S@%!RB@6~@9W@ qqD@$TS@a@#4 q 5B4!R~4g@ג{@ 5@9+ `G9@9B,g!R ?z|Ђ c5H}F9?@?qA#T?@8?qT?q?@ ˠ?-}*qTR~#qaT?@!RB3~@9@9qTqaTB 2z|!R y~ @9@9q TqT$q`THq TLQ!x!!5 z|* @@@9_Lq )T_TqT @9!@\F!4Wg@e@@j~ @g~ @9R@9/Q*HQJq@Bz$NzT jR*R z|@!t@a"$A9b 6@| @9A@!B@_?A{4R!3~W@@? @*~?@S@??,?@ @{ @~W@# R! |~8 @#@B@5!R} @9q գF!4 z| t@@!"$A9'7#@!RB } @9B@=L z|@`|@@@BA@?֠!RB4} @9@9W@q_4!`4PqT z|@94 E@94 bRF(@ ?.|?@} @9jRf?X#!RcGB5c@} @9R!5}!Rs} @9!R"B1z|i}@9 !`5z|E@CA@@B@` @9s@S@?kTae`5@W@@K}5e|!qT!=!} hTAqT!=!} e TaqT%= }~'|cB/k!R1/{ @93$@!RB5} @9["C@B G@@ R!q T'= *}!@Q!q-T'- *}(*(* {(F/gc@ 3DERsF=#='=+=/=3=7=;=b@7Ҫ/'`7@`@ ʀ @{Ө_p| {(FS34#='=+=sF@/=3=7=;=?=a@?|Fs7#Rw@EF*@|?@`@ ʠSA@{Ԩ_7|{RS*!@6}*SA{¨ {( 3aGbFC@7ҥ!@=#='=+=/=3=7=;=@9/?q )T@9?qTaGEDR@sF7@`@  @{Ө_ @95c@'@7!<!}'d@7!<!}'c@6C cqlT+@!""!@ ALF"@@ {D cqT!<*!}'D cqMT!<*!}'+@c"*+@c"* { 3/cgDEsFR=#='=+=/=3=7=;=b@7Ң/'u7@`@ ʀ @{Ҩ_օ{{!6S3cFd@_R}Rj|5K@ @q{sF*_@a@AʡSA@{̨_`{ {[ !;z4RG@ (z!!F!@?kTa8qT{@ 9G@94R!7|@@ @[B{Ĩ_ !!G!@94R!7{ @[B{Ĩ_ !8@yq {5rT"B`GA\@9!5S* @B94`@9q@T!@0z4fSA@{è_a" F@ }@SA{è_  a{c7XSF'B*@/Su5` @4a2{ 4s@ky@'B0cu zy' q# T`@@ 9!@ #@_0 s@3`@|={v @_A9Ց! kD"R! GdF@"F/@@ ʠ SAcC@{ƨ_ բR!7J{ @ RюR! ;>{kD@_`@9!@ G@6"8G! '@ϐr T#9B !R3@"13# q@`!T zG"8!)@raTz֖G"B@ rT9z3@93@kz R3{S!(@+`"BGB@9B4R` !`5@F@97!;vza@ `@!R r`T @ `@6`bA9 (7a@!D@06R!@>WzR`@ʹ[B5`6c7FG+@B@9B@`bA960qATTrTck7/N F"R<xFR.R"9( GGkqlTqT qTG@yđ*55\F2F9@x9 55'@BC/@Q@@q`TG@9 4R!`=yb@`@Ro[BcCD+@@@qAT`@ARrTq TkTQqT?@@wy*qAT* qTU@~q TqTdyby`y G@9 4R!`=yb@y`@1/@[BcCkD;@@qTqaT77@!yq9K* q T4yV@>*qT:* qT#y!ypX@0{!`A9k7 @6@9?q Tr T @@9q T  G@ 8[F0 zzrTxs@bA9(6@9cqT>rTbA9g@q @!T҉zUrT @*@ kD[B@@{Ũ_ յ[B @@R*@kD@{Ũ_ֵ[B @@!R@*@kD{Ũ_#`F@ \z)rT @x @ @ {S4@F"@7@F7@@ SA{Ǩ_ `bA96`@@b @ҡ!0/zrT`bA9u x@`b9 ն8#@u ՠ@2@5@@:rT`bA9[BxcC`b9 ` @rT`A>4R! ?xa Ad afA9F!2af9@9!29`bA9`65F@`@@9qaTR! xa@@I$ 5vF@ c@GB@9@5c`>#@R R!>lxvF@'v# @U"@u@rT` @.R!Nxa @`@[BcC բR!@=>xD/@@R!?5xa@ նwZ յ[BcC բR!?"xa@zR!?xa@[c@w !RaAR_{SY"|a@9BpFT4"BGAa8a9a@85! SA"@#@{¨_{S*A@#! c$G!DGpFE @D@B@$eSA{¨_ 4 $GSA{¨_ բR!wSA{¨{ ~"A4B!A4 @{è_R=Ң@{S @a)R a@bRF(@<```@`@ R3SA{¨_{S3c7aF["@7rTR! }w9b@!` 9[sF7@`@ SA[BcC{Ǩ_֓v{@#r@Tb@6@6/ZRE; RS@j!TjT@!8@5@@@7@@@B@95s@`@v 5@RB@9`4@6@SA[BCD/@@{ƨ_֢R! wb@6@6@#@ {$RR FR@@E `@9 QqT@ R@{Ĩ_ Հ@8@7@E@ @B@9`5@5@bv 5@c@@!R@Is@3B@94@SA R[B@@{Ĩ_֢R!v@@ R{Ĩ_ֶB@{A@!8@7@:@@/v4 @ @S @AB@{Ȩ_ s@a@v`5#+@9@kTA T @#@+@AB@{Ȩ_ բR!/vC՛@ BT@'ZOG@7Z`@@5@! R_jaTs"iTc@c'@ABsE @#@@{Ȩu @?T!(@`7@AR_jT;@uqG47@R>v?@e @@@;@@@_aT ռ/@ HR!#v @!@BEB@95@!@u  @! @u {[5УS` @9 4R"R@͞`@S`@T`@Ts@R@v @`t`B@9p`B9LGT*@@`7`B@9[B2`B9@SA{Ĩ_ `B@9[B2`B9@SA{Ĩ_R!:`@r@T!RR"R 9@! Rut`B@9[B2`B9@SA{Ĩ_!@RҨue !Ru^{4"@9545*@łCi4 @(Q2@' RL(R$@d@B`!@C`*@ @@5R*@A{Ũ_?q` T?qTR*@A{Ũ_*`T 5J5)}}%@%B&!R*ڞ. D @ ;s@C) )6B @2:A4RXwT"@+s@"@sb @b>@a@@@@kIT@@R*@M)c&@2@ 8@ ) s*@:@64R# @BXwd"#@r@!#@b@sb a_@@@*@kT#@,@@ @cC*@t**@A{Ũ_ ҋB$"9m" %}{R!@#S#Fd@7t!R?tR!trrq T*Rs"tqaT3uR!t!R!t"@9`4`6Bc}B!f`.4! !>f,4! !`?f*5aR@F@DR4RF@9 @9h@393!~ 9h R* H յG@f8F@!mf54R@ R* P  R* L 4R!8F!@a 4R8F@B@4RF 24R9[BcCBR@F@@9A39 ա! SG4R@v ! ! 8%f@5F4RcC@929[Bh ն@@@F@939]4R@F@@9!29TaR@4RF MR4R@[BGR! !@8zf:F4R@4[BcC;@9qT @9qaT@9 5@R4R@[B-R:gdF#@@t!@95?@T! R!`9Rf:F@!8 F4R@"@92"9[BR! ! 7Af:F4R@@RF=dF#@@x!@95?@T! R!`:(f:F@!DF4R@"@92"9[BR.dF#@@!@9?q@JT! R!@; f:F@!,F @` 4R@[B4R@!F@ @92x 94R@!F@ @92x 9[ce4R@F@ @9!* 94R@F@ @9!x 9@@4RFh@!hh!R@F@R! !?e:F@z@@AR@F@z!R@F@s@@FmA!*e`-4! !@e+4! !e)4! !e (4! ! e`&4! !@e$4! !d4! !d 4@9q!T@9qT @9qaT@9)4! !d 4! !d@4!d4! ! d4! !`d4! !d@4! !d4! ! d4! !@d 4! !`d`4! !d4! !d 4! !d 4! !@d 4! !`d 4! !d4! !d4! !d`54R@ @F@2 @@@4RFh@!th@@4RFh@!zhR! !d:F4R@@@"R@@F*@!*b@4R@F@@9!t9BR4R@F@@9A39BRF4R@@@9A39"R4R@F@@9!x94R@F@@9!*9}4R@F@ @9!x 9t4R@F@ @9!2 9k!R@*F@c4R@F@@9!x9Z4R@F@@9!29Q@@4RFl@!lH@@4RFl@!@l?@@4RFLB@!y 5@@4RFLB|! +@@4RFh@!}h"@@4RFh@!uh@@4RFh@!|h@@4RFh@!vh@@4RFh@!{h@@4RFh@!h@@F@@4RFLB}!@ !RbF@@9q T!`G$P@9$4!@94aD@F@9%@@?T@%B`W@_` Tq Te@?@Ta@_T q T@$ TcF`@9 6q! !_  _ ! ! B`G B @9_q_ _ Bd@b6q! !`_ aF!d@6q! !@_q! !@_ q! !`_ q! !`_ q! !@_q! !@_`Fd@6q! ! _{R! ! ҂c!RbR! ! yc!RbR! ! pc!RbR! ! gc!RbR! ! ^c!RbR! !Uc!RbR! !)Lc!RbR! !*Cc!RbR! !@-:c @{¨!Rb {S8aaqSA{¨_{S|@[S|@@sRs{ӊ! !."@6! @"s Ѡ@~@[B!SAP{Ĩ!@9` C! !.{CДF*@@@b 3#Fb@)`|@Bc@eA)@|`b@5 0LaR$*@va@5@@*@6LAt**@t*?rT@R! !@0b @B@{ACsR! !.b{A! B!/Cia@BB"@ @{ACAD@!2ADF@9!?q`T!PC!@!H@{rT! !0RҊbG{ED F@0A95{ F @`@s"@ @{¨B] B] {SГF`*@ q+T"@T R 8a@9!?qTqSA@{ècb`@9q TF*@q`TT"*@CdA!@!@r@T:@1ATSA@{è_ բR! !1 bSA{è! !@3RbSA@{è ! R!@2{ R#b{_ { 3@ж6 F֢  ?q TT?qTa @ @?Ts@3a @? qTIT?4qTT?8q!TrTs@3A@R @{è_ aBr`T R@A @{è_ arT?<qTR?qaT@ Rb@@"@Aa% R 4R"RRRY{R .%R!FFB`G$@9@9E92_d9b2$99{_ {SЃFd@/@PC#Rr@n :@aRaz+ME#@`BdrT@@F/@@ASA@{ƨ_ յ@@! !5RQax` @?q@T_@ |@@``A9@'7 (@7"8@C|@F(@T {qSaF"@' ,TTPq@Tm T\q ,T TTq0TXqAT[зcF! :F!8@9@v9``04@9q3T@9q!3T @9q2T@925F4RcC@929[B*sF'@a@AaISA{Ũ_ q (TT4Rq T TqTqTq T Tq&TqAT[R:F@.@9'4 M`@'4 H` 04q 2TR! !`:F4R@~@[BDqTTHqTLq T"R*F@9A39 `q Tdqa Ta!:F@_!4! !6_`4! !6_(4! !6_05СR@4RF  @q!T!8F!@[@qT4RF@9!x9x 4RF@9!29p  R* j 4RF@9!t9b R_R:F@ x#@@d @954RR բRa! J`@4RH յз! :F!8@_`4! !8_4! !9_4! ! 9^ 4! "!:^$4! b!;^'4! !;_+4! !<_+4! !@<_,4! !<_ -4! !<_-4! !=r.T! !@=r]T! !=r@1T! !=l_/4! !`>g_`.4! !>b_,4! !`?]_*5aR@F@DR4RF@9 @9h@393!~ 9h R*  յдG@X_8F@a!3_54R@ R*   R*  4R!8F!@Z 4R8F@NBе@4RF 24R9[BcCBR@F@@9A39 ա! G4R@v  ! 8^@5F4RcC@929[Bh ն@@@F@939]4R@F@@9!29TaR@4RF MR4R@[BGR !@8@_:F4R@[BcC;@9qT @9qaT@9 5@R4R@[B-R:-]F#@@t!@95?@T R!`9_:F@!8F4R@"@92"9[BR ! 7_:F4R@@RF]F#@@x!@95?@T R!`:^:F@!DF4R@"@92"9[BR.\F#@@!@9?q@JT R!@;^:F@!,F @` 4R@[B4R@!F@ @92x 94R@!F@ @92x 9[c]4R@F@ @9!* 94R@F@ @9!x 9@@4RFh@!hh!R@F@R !?^:F@@@@AR@F@z!R@F@s@@Fm!!*])4! !@] (4! !]`&4! !]$4! !]"4! !@] !4! !]@4! !] 4@9q!T@9qT @9qaT@9&4! !]4! !]4a!]4! ! ]@4! !`]4! !]4! !] 4! !`]`4! !]4! !] 4! !~] 4! !@y] 4! !`t] 4! !o]4! !j]4! !e]`54R@ F@2 @@4RFh@!th@@4RFh@!zhR! !]:F4R@@@"R@F*@!*b4R@F@@9!t9BR4R@F@@9A39BRF4R@@@9A39"R4R@F@@9!x94R@F@@9!*9!R@*F@4R@F@@9!x9v4R@F@@9!29m@@4RFl@!ld@@4RFl@!@l[@@4RFLB@!y Q@@4RFLB|! G@@4RFh@!}h>@@4RFh@!uh5@@4RFh@!|h,@@4RFh@!vh#@@4RFh@!{h@@4RFh@!h@@F @@4RFLB}!@ !RbF@@9q T!`G$P@9$4!@94aD@F@9%@@?T@%B`W@_` Tq Te@?@Ta@_T q T@$ TcF`@9 6q! ! !!_  _ ! ! B`GB @9_q_ _ Bd@b6q! ! _ aF!d@6q! ! _q! ! _ q! ! _ q! ! _ q! ! _q! ! ""_`Fd@6q! ! _{R ! d\!R[R ! [\!R[R ! R\!R[R ! I\!R[R ! @\!R[R !7\!R[R !).\!R[R !*%\!R[R !@-\ @{¨!R[ {SZZqSA{¨_{S|@[S|@@sRs{l !."@6! @"s Ѡ@`@[B!SAP{Ĩ!@Y C !.{CF*@@@[ 3#Fжb@)`|@Cc@eA)@|`b@ 0aR*@v˟a@5@@*@6LAm**@m*?rT@R !@0[ @B@{ACUR !.[{A B!/CKa@BB"@ @{ACAD@!2ADéF@9!?q`T!pC!@!H@{qrT !0Rl[){'& F@0A95{ F @`@s"@ @{¨BV BV {SF`*@q+T"@T R 8a@9!?qTqSA@{èE[`@9q TF*@6q`TT*@CA!@`!@r@T:@1ATSA@{è_ բR !1[SA{è !@3RZSA@{è  ТR!@2{ R[{_ { 3@ F"#  ?q TT?qTa @ @?Ts@3a @? qTIT?4qTT?8q!TrTs@3A@R @{è_ aBr`T R@A @{è_ arT?<qTR?qaT@ Rb@@"@Aa R 4R"RRRR{R `#%R!FFB`G$@9@9E92_d9b2$99{_ {SFd@/@pC#Rr@P :@aRaz+/'#@`BdrT@@F/@@ASA@{ƨ_ յ@@ !5R3ZZY @?q@T_@ |@@``A9@'7 (@7"8@C|@F(@T {qSaF"@' ,TTPq@Tm T\q ,T TTq0TXqAT[cF Р:F!8@9@v9pY`04@9q3T@9q!3T @9q2T@925F4RcC@929[B*sF'@a@AaISA{Ũ_ q (TT4Rq T TqTqTq T Tq&TqAT[R:F@.@9'4 /Y@'4 *Y 04q 2TR !Y:F4R@`@[BDqTTHqTLq T"R*F@9A39 `q Tdqa Ta!:F@X!4 !6X`4 !6X(4 !6|X05R@4RF  @q!T!8F!@pT@qT4RF@9!x9x 4RF@9!29p  R* j 4RF@9!t9b R_R:F@p#@@ @954RR բRA! ,Y@4RH յ Р:F!8@X`4 !8X4 !9X4 ! 9W 4 "!:W$4 b!;W'4 !;yX+4 !IX`.4 !>DX,4 !`??X*5aR@F@DR4RF@9 @9h@393!~ 9h R*  յG@:X8F@a!X54R@ R*   R*  4R!8F!@S 4R8F@0B@4RF 24R9[BcCBR@F@@9A39 Ձ! }G4R@v  ! 8W@5F4RcC@929[Bh ն@@@F@939]4R@F@@9!29TaR@4RF MR4R@[BGR !@8"X:F4R@[BcC;@9qT @9qaT@9 5@R4R@[B-R:VF#@@t!@95?@T ТR!`9W:F@!8F4R@"@92"9[BR ! 7W:F4R@@RFUF#@@x!@95?@T ТR!`:W:F@!DF4R@"@92"9[BR.UF#@@!@9?q@JT ТR!@;ҲW:F@!,lF @` 4R@[B4R@!F@ @92x 94R@!F@ @92x 9[cV4R@F@ @9!* 94R@F@ @9!x 9@@4RFh@!hh!R@F@R !?gW:F@"@@AR@F@z!R@F@s@@Fm!!*V)4 !@V (4 !V`&4 !V$4 !V"4 !@V !4 !V@4 !V 4@9q!T@9qT @9qaT@9&4 !V4 !V4a!V4 ! V@4 !`~V4 !yV4 !tV 4 !`oV`4 !jV4 !eV 4 !`V 4 !@[V 4 !`VV 4 !QV4 !LV4 !GV`54R@ F@2 @@4RFh@!th@@4RFh@!zhR !V:F4R@e@@"R@F*@!*b4R@F@@9!t9BR4R@F@@9A39BRF4R@@@9A39"R4R@F@@9!x94R@F@@9!*9!R@*F@4R@F@@9!x9v4R@F@@9!29m@@4RFl@!ld@@4RFl@!@l[@@4RFLB@!y Q@@4RFLB|! G@@4RFh@!}h>@@4RFh@!uh5@@4RFh@!|h,@@4RFh@!vh#@@4RFh@!{h@@4RFh@!h@@F @@4RFLB}!@ !RbF@@9q T!`G$P@9$4!@94aD@F@9%@@?T@%B`W@_` Tq Te@?@Ta@_T q T@$ TcF`@9 6q !@--_  @%_  !@$B`G$B @9_q_ %_ Bd@b6q !@&&_ aF!d@6q !@))_q !@**_ q !@''_ q !@((_ q !@++_q !@.._`Fd@6q !@,,_{R ! FU!RTR ! =U!RTR ! 4U!RTR ! +U!RTR ! "U!RTR !U!RTR !)U!RTR !*U!R{TR !@-T @{¨!RpT {SRSqSA{¨_{S|@[S|@@sRs{Nz !."@6! @"s Ѡ@Bz@[B!SAP{Ĩ!@ R C !.{CF*@@@Tг 3#Gb@)`|@Dc@eA)@|`b@ 0aR*@va@5@@*@6LAvf**@wf*?rT@R !@0T @B@{AC7R !.uT{A B!/C-a@BB"@ @{ACAD@!2ADF@9!?q`T!C!@!H@{SrT !0RNT {  F@0A95{ F @`@ys"@ @{¨BO BO {SF`*@͐q+TС"@T R 8a@9!?qTqSA@{è'T`@9q TF*@q`TT֒*@CtB!@`:@!@tr@T:@1ATSA@{è_ բR !1SSA{è !@3RSSA@{è  R!@2{ RS{8_ { 3@ еFB/  ?q TT?qTa @ @?Ts@3a @? qTIT?4qTT?8q!TrTs@3A@R @{è_ aBr`T R@A @{è_ arT?<qTRx?qaT@ Rb@@"@Aa R 4R"RRRK{R `#u%R!FFB`G$@9@9E92_d9b2$99{_ {SЃFd@/@C#Rr@2 :@aRazٗ+ #@`BdrT@@F/@@ASA@{ƨ_ յ@@ !5RS+Q`.4 !>&Q,4 !`?!Q*5aR@F@DR4RF@9 @9h@393!~ 9h R*  յдG@Q8F@A!P54R@ R*   R*  4R!8F!@qL 4R8F@Bе@4RF 24R9[BcCBR@F@@9A39 Ձ! vG4R@v  ! 8P@5F4RcC@929[Bh ն@е@@F@939]4R@F@@9!29TaR@4RF MR4R@[BGR !@8Q:F4R@[BcC;@9qT @9qaT@9 5@R4R@[B-R:NF#@@t!@95?@T R!`9P:F@!8F4R@"@92"9[BR ! 7P:F4R@@RFNF#@@x!@95?@T R!`:ҲP:F@!DlF4R@"@92"9[BR.NF#@@!@9?q@JT R!@;ҔP:F@!,NF @` 4R@[B4R@!F@ @92x 94R@!F@ @92x 9[cO4R@F@ @9!* 94R@F@ @9!x 9е@@4RFh@!hh!R@F@R !?IP:F@@@AR@F@z!R@F@sе@@Fm!*O)4 !@O (4 !O`&4 !O$4 !O"4 !@O !4 !O@4 !O 4@9q!T@9qT @9qaT@9&4 !tO4 !oO4A!jO4 ! eO@4 !``O4 ![O4 !VO 4 !`QO`4 !LO4 !GO 4 !BO 4 !@=O 4 !`8O 4 !3O4 !.O4 !)O`54R@ G@2 е@@4RFh@!thе@@4RFh@!zhR !O:F4R@G@@"R@G*@!*b4R@F@@9!t9BR4R@F@@9A39BRF4R@@@9A39"R4R@F@@9!x94R@F@@9!*9!R@*F@4R@F@@9!x9v4R@F@@9!29m@@4RFl@!ld@@4RFl@!@l[@@4RFLB@!y Q@@4RFLB|! G@@4RFh@!}h>@@4RFh@!uh5@@4RFh@!|h,@@4RFh@!vh#@@4RFh@!{h@@4RFh@!h@@F @@4RFLB}!@ !RbF@@9q T!`G$P@9$4!@94aD@F@9%@@?T@%B`W@_` Tq Te@?@Ta@_T q T@$ TcF`@9 6q !@99_  @1_  !@0B`G0B @9_q_ 1_ Bd@b6q !@22_ aF!d@6q !@55_q !@66_ q !@33_ q !@44_ q !@77_q !@::_`Fd@6q !@88_{R! (N!RMR! N!RMR! N!RMR! N!RMR! N!RxMR!M!RoMR!)M!RfMR!*M!R]MR!@-M @{¨!RRM {SKLqSA{¨_{S|@[S|@@sRs{0s!."@6! @"s Ѡ@$s@[BSAP{Ĩ!@K C!.{CF*@@@M 3#@Gжb@)`|@Ec@eA)@|`b@0aRʌ*@va@5@@*@6LAX_**@Y_*?rT@R!@0aM @B@{ACR!.WM{AB!/Ca@BB"@ @{ACAD@!2ADF@9!?q`T!C!@!H@{_rT!0R0M{ F@0A95{ F @`@s"@ @{¨BhH BbH {SF`*@q+T"@T R 8a@9!?qTqSA@{è M`@9q TF*@*q`TT8Ѐ*@CB!@@, 4!@r@T:@1ATSA@{è_ բR!1LSA{è!@3RҾLSA@{èx R!@2{ RL{x_ { 3@ F";  ?q TT?qTa @ @?Ts@3a @? qTIT?4qTT?8q!TrTs@3A@R @{è_ aBr`T R@A @{è_ arT?<qTRZ?qaT@ Rb@@"@AaR 4R"RRRwD{R.W%R!FFB`G$@9@9E92_d9b2$99{_ {SFd@/@C#Rr@ :@aRaz+#@`BdrT@@F/@@ASA@{ƨ_ յ@@!5RKK @?q@T_@ |@@``A9@'7 (@7"8@C|@F(@Tv {qSaF"@' ,TTPq@Tm T\q ,T TTq0TXqAT[cF:F!8@9@v94K`04@9q3T@9q!3T @9q2T@925F4RcC@929[B*sF'@a@AaISA{Ũ_ q (TT4Rq T TqTqTXq T Tq&TqAT[R:F@.@9'4 J@'4J 04q 2TR!jK:F4R@$@[BDqTTHqTLq T"R*F@9A39 `q Tdqa TA!:F@OJ!4!6JJ`4!6EJ(4!6@J05R@4RF  @q!T!8F!@4F@qT4RF@9!x9x 4RF@9!29p  R* Tj 4RF@9!t9b R_R:F@b#@@ @954RR բR!! J@4RH յР:F!8@^J`4!8YJ4!9TJ4! 9I 4"!:I$4b!;I'4!;=J+4!<8J+4!@<3J,4!<.J -4!<)J-4!=r.T!@=r]T!=r@1T!=J/4!`> J`.4!>J,4!`?J*5aR@F@DR4RF@9 @9h@393!~ 9h R* H յG@I8F@A!I54R@ R* P  R* L 4R!8F!@SE 4R8F@B@4RF 24R9[BcCBR@F@@9A39 a! oG4R@v ! 8I@5F4RcC@929[Bh ն@@@F@939]4R@F@@9!29TaR@4RF MR4R@[BGR!@8I:F4R@[BcC;@9qT @9qaT@9 5@R4R@[B-R:GF#@@t!@95?@TТR!`9ҾI:F@!8xF4R@"@92"9[BR! 7I:F4R@g@RFGF#@@x!@95?@TТR!`:ҔI:F@!DNF4R@"@92"9[BR.GF#@@!@9?q@JTТR!@;vI:F@!,0F @` 4R@[B4R@!F@ @92x 94R@!F@ @92x 9[c~H4R@F@ @9!* 94R@F@ @9!x 9@@4RFh@!hh!R@F@R!?+I:F@@@AR@F@z!R@F@s@@Fm!*H)4!@H (4!H`&4!zH$4!uH"4!@pH !4!kH@4!fH 4@9q!T@9qT @9qaT@9&4!VH4!QH4A!LH4! GH@4!`BH4!=H4!8H 4!`3H`4!.H4!)H 4!$H 4!@H 4!`H 4!H4!H4! H`54R@ @G@2 @@@4RFh@!th@@4RFh@!zhR!oH:F4R@)@@"R@@G*@!*b@4R@F@@9!t9BR4R@F@@9A39BRF4R@@@9A39"R4R@F@@9!x94R@F@@9!*9!R@*F@4R@F@@9!x9v4R@F@@9!29m@@4RFl@!ld@@4RFl@!@l[@@4RFLB@!y Q@@4RFLB|! G@@4RFh@!}h>@@4RFh@!uh5@@4RFh@!|h,@@4RFh@!vh#@@4RFh@!{h@@4RFh@!h@@F @@4RFLB}!@ F@9!?q`T!R_ @ @b8@8@_$@T4@c4@!@B@!B#R_#Z_R_!RbF@@9q T!`G$P@9$4!@94aD@F@9%@@?T@%B`W@_` Tq Te@?@Ta@_T q T@$ TcF`@9 6q! ` _ _ բ!@B`GB @9_q_`_ Bd@b6q! _ aF!d@6q! ` _q! _ q!_ q!@ _ q! _q! _`Fd@6q!@ _{R! F!R`FR!F!RWFR!F!RNFR!F!REFR!F!R!@ArTB@1!TSAcC@{Ũ_!1R DSAcC@{ŨR!{S!}uiR!@3R!@2{ R D{_ { 3@F(  ?q TT?qTa @ @?Ts@3a @? qTIT?4qTT?8q!TrTs@3A@R @{è_ aBr`T R@A @{è_ arT?<qTR?qaT@ Rb@@"@Aa{[CS*F@@/#Rrquz+SK#@WBr TF/@@AaSA[B@{ƨ_  @  @"  !5RMC vB R 4R"RRRi;{R%IРТ%R!FFB`G$@9@9E92_d9b2$99{_ @?q@T_@ X@yq`T (@ 7"8@C|@F(@!T@{@Q$qSaF"@'҉TR !; X`xa ִR:F@Z#@@ @94!R! B@4RsF*'@a@AASSA{Ũ_֡ R* 0 յ!!:F@SB54!)NB;4! )IB?5aR4R@( ա R* $ ա R*  ՠ4R8F@j4RF@9!t9 ՠ"R*F@9A39DR4RF@9 @9h@393!~ 9h4RF@9!29 ՠ4RF@9!x9 ՠ4R8F@  ա R* H H4R յР:F@*!!A*4!! A)4@9q0TR!)\B:F4R@@i ՞G4Re ՠС4R8F@ ] ՠ4RX R* S ա R* M ՠ4R@H R* 4C ՠAR4R = ա R* 87 յ!!:F@#A4!6A`4!6A$4!6A`*5СR@4RF  ա4R!8F!@ =  յ[G@A8F@U!!4RfA5[B[зcР:FF!8@@9v9UA@4@9qaT@9qT @9qT@9`524R9cC[B R* @ ՠ4RDС4R8F@  յ[и:F!8@(A 4!8#A4!9A4! 9`@4"!:Z@ 4!;arA#T!;A@&4!<A@'4!@<@@(4!<@(4!<@@)4!=Br)T!@=<rUT!=6r,T!=@+4!`>@*4!>@(4!`?@&5aR[BF@\4R!8F!@O<S ՠ4R<N R* <I ՠе@4RF B24R9cC[B< R@* (6BRF4R[B@@9A39, R@* ,&4R@,!a! fG4R[B! 8{@@5F4R[B@929cC AR4R@("RaR@4RF 4R[BF@@9!29@9qAT @9qT@95AR4R@,!@)R@4R@@R!@8@:F4R@z[BcCR! 7R:>F#@@t!@95?@TR!`9ҡ@:F@!8[F4R[B"@92"9cCRF>F#@@x!@95?@TR!`:҂@:F@!DF#@@!@9?q@*TR!@;d@@!,F @[B cCl4R[B!F@ @92x 9b[cx?4R[B!F@ @92x 9U[BcCR4R[BF@ @9!* 9I4R[BF@ @9!x 9@и@[B4RFh@!hh7!R[BF@0R!?@:F@@[B%AR[BF@!R[BF@и@[BF!*v?@&4!@q?$4!l?"4!g?!4!b?@4!@]?4!X?4!S?4@9q!T@9qT @9qaT@9`"4!C?@4!>?`4!!9?4! 4?4!`/? 4!*?` 4!%? 4!` ? 4!?@4!?@4!?`4!@ ?4!`?4!?`54R[BF@@9!t9BR4R@F[B@9A39BRF4R[B@@9A39{"R4R[BF@@9!x9o4R[BF@@9!*9f!R[B*F@^4R[BF@@9!x9U4R[BF@@9!29L@[B4RFl@!lC@[B4RFl@!@l:@[B4RFLB@!y 0@[B4RFLB|! &R!?:F4R@@[B@[B4RFh@!th@[B4RFh@!zh@[B4RFh@!}h@[B4RFh@!uh@[B4RFh@!|h@[B4RFh@!vh@[B4RFh@!{h@[B4RFh@!h@[BF@[B4RFLB}!@ F@9!?q`T!R_ @ @b8@8@_$@T4@c4@!@B@!B#R_#Z_R_֣!RbF@@9q T!`G$P@9$4!@94aD@F@9%@@?T@%B`W@_` Tq Te@?@Ta@_T q T@$ TcF`@9 6q! _  ;_ բ!`:B`G:B @9_q_;_ Bd@b6q!;@<_ aF!d@6q! >>_q!>@?_ q!<=_ q!`==_ q!?_q!@_`Fd@6q!`_{R! =!Rj=R!=!Ra=R!=!RX=R!=!RO=R!=!RF=R!=!R==R! =!R4=R!=!R+=R!=!R"=R!=!R=R!=!R=R!=!R=R! =!R<R! =!R<R!x=!R<R!o=!R<R!f=!R<R! ]=!R<R!`!T=!R<R!"K=!R<R!#B= @{¨!R< {S@;;qSA{¨_{S|@[S|@@ss{Ӓb!."@6! @"sѠ@b@[BSA{Ĩ!@3: {!% [`F(@@@< ЀC%&` !Rdr T`F(@sF%0eK"aR$|a*@@5@@`*@6LAN*`*@N*?rTR!@0<@[B@ @{Ĩu@"@AD@!2AD@@A@@[B@ @@{ĨSBR!.<[B @! %{ĨWR!%4Re ՠ4R8F@ ] ՠ4Rl X R* l S ա R* h M ՠ4R H R* C ՠAR4Rx = ա R* 7 յ!!:F@-84!6(8`4!6#8$4!68`*5R@4RF  ա 4R!8F!@4  յ[G@88F@U!!4Rp85[B[c:FF!8@@9v9_8@4@9qaT@9qT @9qT@9`524R9cC[B R*  ՠ4R 4R8F@  յ[и:F!8@28 4!8-84!9(84! 9j74"!:d7 4!;arA#T!;8@&4!< 8@'4!@<8@(4!<8(4!<7@)4!=Br)T!@=<rUT!=6r,T!=7+4!`>7*4!>7(4!`?7&5aR[BF@\ 4R!8F!@Y3S ՠ4R N R* I ՠ@4RF B24R9cC[B< R@* 6BRF4R[B@@9A39, R@* &4R@ !A! ]G4R[B! 87@5F4R[B@929cC AR4R@ "RaR@4RF 4R[BF@@9!29@9qAT @9qT@95AR4R@ !@)R74R@@R!@87:F4R@[BcCТR! 7R:5F#@@t!@95?@TТR!`9ҫ7:F@!8eF4R[B"@92"9cCRF5F#@@x!@95?@TТR!`:Ҍ7:F@!DFF4R[B"@92"9cCR.5F#@@!@9?q@*TR!@;n7@!,)F @[B cCl4R[B!F@ @92x 9b[c64R[B!F@ @92x 9U[BcCR4R[BF@ @9!* 9I4R[BF@ @9!x 9@@[B4RFh@!hh7!R[BF@0R!?"7:F@ݹ@[B%AR[BF@!R[BF@@[BF!*6@&4!@{6$4!v6"4!q6!4!l6@4!@g64!b64!]64@9q!T@9qT @9qaT@9`"4!M6@4!H6`4!!C64! >64!`96 4!46` 4!/6 4!`*6 4!%6@4! 6@4!6`4!@64!`64! 6`54R[BF@@9!t9BR4R@F[B@9A39BRF4R[B@@9A39{"R4R[BF@@9!x9o4R[BF@@9!*9f!R[B*F@^4R[BF@@9!x9U4R[BF@@9!29L@[B4RFl@!lC@[B4RFl@!@l:@[B4RFLB@!y 0@[B4RFLB|! &R!6:F4R@Ҹ@[B@[B4RFh@!th@[B4RFh@!zh@[B4RFh@!}h@[B4RFh@!uh@[B4RFh@!|h@[B4RFh@!vh@[B4RFh@!{h@[B4RFh@!h@[BF@[B4RFLB}!@ bFA@9!?q@ T`GP@9D 4@9 4E@d$@ Ҥ @@ Tf @@ T@ B`W@_ T@`T?q@ T` @ T`@ T`@_ T` T? q TaF @R"@y q T@% TcF`@9@ 7b@9A !_@_ !_ ՂA !B`G@B @9_q_ /_ Bd@! !`@_}_@ 1_ Bd@ "6_ @ &_ ` _cF !`$bd@_}_dF d@6_֠ ._ @4_ _"d@ ` !_}_!d@ ,6_ 9_ {R! 5!R|4R! 4!Rs4R! 4!Rj4R! 4!Ra4R! 4!RX4R!4!RO4R!)4!RF4R!*4!R=4R!@-4 @{¨!R24 {S2r3qSA{¨_{S|@[S|@@sRs{Z!."@6! @"s Ѡ@Z@[BSAP{Ĩ!@t2 C!.{CF*@@@s4г 3@ #Hb@)`|@Ic@eA)@|`b@0ҽaRs*@voxa@5@@*@6LA8F**@9F*?rT@R!@0A4 @B@{ACR!.74{AB!/Ca@BB"@ @{ACAD@!2ADgF@9!?q`T!D!@!H@{?rT!0R4Ͷ{˱ʱ ՀF@0A95{ F @`@es"@@ @B {¨B ,BG/@ B B ,BA/{SF`*@pq+TСB "@T R 8a@9!?qTqSA@{è3`@9q TF*@ q`TT rB *@CD!@@>@!@fr@TB :@1ATSA@{è_ բR!13SA{èa!@3RҞ3SA@{èX R!@2{ R3{H_ { 3@V еF֢,  ?q TT?qTa @ @?Ts@3a @? qTIT?4qTT?8q!TrTs@3A@R @{è_ aBr`T R@A @{è_ arT?<qTR:?qaT@ Rb@@"@Aa"RR 4RR*W+{R.7ЀЁ&RFBF!`G@9E@9 @92&92c2E9?d99 9{_{SЃFd@/@D#Rr@} :@aRazw+q{#@`BbrT@@F/@@ASA@{ƨ_ յ@@!5R21 @?q@T_@ |@@``A9@'7 (@7"8@C|@F(@TT {qSaF"@' ,TTPq@Tm T\q ,T TTq0TXqAT[ЕзcF:F!8@9@v92`04@9q3T@9q!3T @9q2T@925F4RcC@929[B*sF'@a@AaISA{Ũ_ q (TT4Rq T TqTqT(q T Tq&TqAT[ЖR:F @.@9'41@'41 04q 2TR!H2:F4R@@[BDqTTHqTLq T"R*F@9A39 `q Tdqa T!:F@-1!4!6(1`4!6#1(4!6105СR@4RF  @q!TР@ !8F!@-@qT4RF@9!x9x Հ4RF@9!29p ա R* $j Հ4RF@9!t9b R_R:F@I#@@ @954RR բR! 1@4RH յз:F!8@<1`4!8714!9214! 9t0 4"!:n0$4b!;h0'4!;1+4!<1+4!@<1,4!< 1 -4!<1-4!=r.T!@=raT!=r@1T!=0/4!`>0`.4!>0,4!`?0*5aR@F@DR4RF@9 @9h@393!~ 9h R*  յдG@08F@!054R@ R*  ա R*  ՁР@ 4R!8F!@1, Հ4R8F@{Bе@4RF 24R9[BcCBR@F@@9A39 A! VG4R@v ! 8o0@5F4RcC@929[Bh ն@е@@F@939]4R@F@@9!29TaR@4RF MR4R @[BGR!@80:F4R@~[BcC;@9qT @9qaT@9 5@R4R @[B-R:.F#@@t!@95?@TR!`9Ҝ0:F@!8VF4R@"@92"9[BR! 70:F4R@E@RF.F#@@x!@95?@TR!`:r0:F@!D,F4R@"@92"9[BR.h.F#@@!@9?q@JTR!@;T0:F@!,F @` 4R@[B4R@!F@ @92x 94R@!F@ @92x 9[c\/4R@F@ @9!* 94R@F@ @9!x 9е@@4RFh@!hh!R@F@R!? 0:F@IJ@@AR@F@z!R@F@sе@@Fm!*g/`-4!@b/+4!]/)4!X/ (4!S/`&4!@N/$4!I/4!D/ 4@9q!T@9qT @9qaT@9)4!4/ 4!//@4!*/4! %/4!` /4!/@4!/4! /4!@ / 4!`/`4!/4!. 4!. 4!@. 4!`. 4!.4!.4!.`54R@ H@2 @@4RFh@!th@@4RFh@!zhR!C/:F4R@@@@ "R@H*@!*b4R@F@@9!t9BR4R@F@@9A39BRF4R@@@9A39"R4R@F@@9!x94R@F@@9!*9}4R@F@ @9!x 9t4R@F@ @9!2 9k!R@*F@c4R@F@@9!x9Z4R@F@@9!29Q@@4RFl@!lH@@4RFl@!@l?@@4RFLB@!y 5@@4RFLB|! +@@4RFh@!}h"@@4RFh@!uh@@4RFh@!|h@@4RFh@!vh@@4RFh@!{h@@4RFh@!h@@F@@4RFLB}!@ bFA@9!?q@ T`GP@9D 4@9 4E@d$@ Ҥ @@ Tf @@ T@ B`W@_ T@`T?q@ T` @ T`@ T`@_ T` T? q TaF @R"@y q T@% TcF`@9@ 7b@9 ! 6_@_ ` ` _ Ղ @ !`B`G@-B @9_q_` `_ Bd@ ` !+ _}_ @_ Bd@ ;"6_ ՠ _  2_cF !bd@_}_dF d@6_ _ "_ @1_"d@@ A ;! :_}_!d@` `6_ր )_ {R! Ҷ-!R*-R! -!R!-R! -!R-R! -!R-R! -!R-R!-!R,R!)-!R,R!*w-!R,R!@-n- @{¨!R, {Sl+ ,qSA{¨_{S|@[S|@@sRs{ӾR!."@6! @"s Ѡ@R@[BSAP{Ĩ!@"+ Cѡ!.{CF*@@@!- 3@!#PHжb@)`|@Jc@eA)@|`b@0VaRXl*@vqa@5@@*@6LA>**@>*?rT@R!@0, @B@{ACR!.,{AB!/Ca@BB"@ @{ACAD@!2AD{F@9!?q`T!8D!@!H@{rT!0RҾ,{{yx ՀF@0A95{ F @`@s"@@! @ {¨B B'@! B B'{SF`*@=iq+TB!"@T R 8a@9!?qTqSA@{è,`@9q TF*@q`TT?FkB!Ѐ*@CdE!@`3`;!@r@TB!:@1ATSA@{è_ բR!1T,SA{è!@3RL,SA@{è աR!@2{ RW,{_ { 3@ F  ?q TT?qTa @ @?Ts@3a @? qTIT?4qTT?8q!TrTs@3A@R @{è_ aBr`T R@A @{è_ arT?<qTR?qaT@ Rb@@"@Aa"RR 4RR*${R`#&RFBF!`G@9E@9 @92&92c2E9?d99 9{_{SFd@/@8D#Rr@v :@aRazGp+jwt#@`BbrT@@F/@@ASA@{ƨ_ յ@@!5R҃+@* @?q@T_@ |@@``A9@'7 (@7"8@C|@F(@T {qSaF"@' ,TTPq@Tm T\q ,T TTq0TXqAT[cFР:F!8@9@v9*`04@9q3T@9q!3T @9q2T@925F4RcC@929[B*sF'@a@AaISA{Ũ_ q (TT4Rq T TqTqThq T Tq&TqAT[R:F @.@9'4*@'4z* 04q 2TR!*:F4R@@[BDqTTHqTLq T"R*F@9A39 `q Tdqa T!:F@)!4!6)`4!6)(4!6)05R@4RF  @q!T@!!8F!@%@qT4RF@9!x9x Հ4RF@9!29p Ձ R* dj Հ4RF@9!t9b R_R:F@;B#@@d @954RR բR! |*@4R7H յР:F!8@)`4!8)4!9)4! 9") 4"!:)$4b!;)'4!;)+4!<)+4!@<),4!<) -4!<)-4!=r.T!@=raT!=r@1T!=)/4!`>)`.4!>),4!`?)*5aR@F@DR4RF@9 @9h@393!~ 9h R* X յG@)8F@!e)54R@ R* ` Ձ R* \ Ձ@!4R!8F!@$ Հ4R8F@tB@4RF 24R9[BcCBR@F@@9A39 !! KOG4R@v ա! 8)@5F4RcC@929[Bh ն@@@F@939]4R@F@@9!29TaR@4RF MR4R @[BGR!@8r):F4R@,[BcC;@9qT @9qaT@9 5@R4R @[B-R:_'F#@@t!@95?@TТR!`9J):F@!8F4R@"@92"9[BR! 79):F4R@@RF5'F#@@x!@95?@TТR!`: ):F@!DګF4R@"@92"9[BR.'F#@@!@9?q@JTТR!@;):F@!,F @` 4R@[B4R@!F@ @92x 94R@!F@ @92x 9[c (4R@F@ @9!* 94R@F@ @9!x 9@@4RFh@!hh!R@F@R!?(:F@r@@AR@F@z!R@F@s@@Fm!*(`-4!@(+4! ()4!( (4!(`&4!@'$4!'4!' 4@9q!T@9qT @9qaT@9)4!' 4!'@4!'4! '4!`'4!'@4!'4! '4!@' 4!`'`4!'4!' 4!' 4!@' 4!`' 4!'4!'4!'`54R@ PH@2 P@@4RFh@!th@@4RFh@!zhR!':F4R@@@@!"R@PH*@!*bP4R@F@@9!t9BR4R@F@@9A39BRF4R@@@9A39"R4R@F@@9!x94R@F@@9!*9}4R@F@ @9!x 9t4R@F@ @9!2 9k!R@*F@c4R@F@@9!x9Z4R@F@@9!29Q@@4RFl@!lH`@@4RFl@!@l?`@@4RFLB@!y 5`@@4RFLB|! +`@@4RFh@!}h"`@@4RFh@!uh`@@4RFh@!|h`@@4RFh@!vh`@@4RFh@!{h`@@4RFh@!h`@@F`@@4RFLB}!@ cbFA@9!?q@ T``GP@9D 4@9 4E@d$@ Ҥ @@ Tf @@ T@ B`W@_ T@`T?q@ T` @ T`@ T`@_ T` T? q TaF @R"@y q T@% TcF`@9@ 7b@9 !;`&_@_  `<_ b !`7B`G`B @9_q_ ` _ Bd@ !=_}_ _ Bd@ ,"6_  _  #_cFA ` !2bd@_}_dF@ G"`.4!>B",4!`?="*5`aR@F@`DR4RF@9 @9h@393!~ 9h R*  յuдG@8"`8F@!"54R@ R*  Ձ R*  aЀ@"4R!8F!@ `4R8F@.mB`е@4RF 24R9[BcC`BR@F@@9A39 !! GG4R@v ա! 8!@5F4RcC@929[Bh ն@`е@@F@939]`4R@F@@9!29T`aR@4RF MR4R @[BGR!@8 ":F4R@ڤ[BcC;@9qT @9qaT@9 5@R4R @[B-vR: F#@@t!@95?@TR!`9!:F@!8F4R@"@92"9[BR! 7!:F4R@@vRFF#@@x!@95?@TR!`:!:F@!DF4R@"@92"9[BvR.F#@@!@9?q@JTR!@;Ұ!:F@!,jF @` 4R@[Ba4R@!F@ @92x 9a4R@!F@ @92x 9[c `4R@F@ @9!* 9`4R@F@ @9!x 9`е@@4RFh@!hh`!R@F@R!?e!:F@ @@`AR@F@z`!R@F@s`е@@Fm!* `-4!@ +4! )4! (4! `&4!@ $4! 4! 4@9q!T@9qT @9qaT@9)4! 4! @4! 4!  4!`| 4!w @4!r 4! m 4!@h 4!`c `4!^ 4!Y 4!T 4!@O 4!`J 4!E 4!@ 4!; `54R@ H@2 `е@@4RFh@!th`е@@4RFh@!zhR! :F4R@Y@@@""R@H*@!*b`4R@F@@9!t9`BR4R@F@@9A39`BRF4R@@@9A39`"R`4R@F@@9!x9`4R@F@@9!*9}`4R@F@ @9!x 9t`4R@F@ @9!2 9k`!R@*F@c`4R@F@@9!x9Z`4R@F@@9!29Q`е@@4RFl@!lH`е@@4RFl@!@l?`е@@4RFLB@!y 5`е@@4RFLB|! +`е@@4RFh@!}h"`е@@4RFh@!uh`е@@4RFh@!|h`е@@4RFh@!vh`е@@4RFh@!{h`е@@4RFh@!h`е@@F`е@@4RFLB}!@ `F@9!?q`T!R_ @ @b8@8@_$@T4@c4@!@B@!B#R_#Z_R_cbFA@9!?q@ T``GP@9D 4@9 4E@d$@ Ҥ @@ Tf @@ T@ B`W@_ T@`T?q@ T` @ T`@ T`@_ T` T? q TaF @R"@y q T@% TcF`@9@ 7b@9`!_@_  _ ba !-B`GB @9_q_@ $_ Bd@A @!_}_ր _ Bd@` @"6_ Հ _ ՠ 5_cF !0bd@_}_dF `"d@6_ __*_"d@  !`._}_!d@@@26_`_ {R! !RhR!!R_R!!RVR!!RMR!!RDR!!R;R! !R2R!!R)R!!R R!!RR!!RR!!RR! !RR! !RR!v!RR!m!RR!d!RR! [!RR!`!R!RR!"I!RR!#@ @{¨!R {S>qSA{¨_{S|@[S|@@ss{ӐC!."@6! @"sѠ@C@[BSA{Ĩ!@# {!% s[`F(@@@ wЀjD7`&` !REr T`F(@sF70c,B#aR"]a*@a@5@@`*@6LA/*`*@/*?rTR!@0@[B@ @{Ĩs@"@AD@!2ADk@@"@@[B@ @@{ĨQ#R!.[B @! %{ĨUR!%jDNR!@%jDG&@{` FS@uF3`@&`@Q's"@3F@9!?q T!lD!@!H@("r@Tt$FF$RRR@L`b@9 Qq)TR!@'R@a@SA{è ss:Ga@F@@@q@TSA@{è_ Ձ!0R: բR!@'2`@}  a@ 8@"4@@B#d@Hc5҄Rx@!Rs3F@v:G@`@F@9 5@s:GB#@`RRDL`A9qTR!`&@F@{`vM F-`*@($`*@I$`*@$t"`@,@ @# @@C{è+` F@T(  R @"@@#@"r@T@?$rT@&'rT"@@F!@@# @@C{è { ScA` F@t`#RLGURYR@ @D@?jTH@ s@a:@`v@`@_qT@6`*@7`Z@yq$VT?k@ TZ8s@s"@@*#@c<sb*C$NbFqf+rT!R tF*@Xq+TB#"@T R @@9!?qTqSAcC@{ŨW@9q TsF`*@lq`TkT[B#b`*@CpF!@7=!@rTB#B@1!TSAcC@{Ũ_ց!1RSAcC@{Ũ͞R!{S!}}AR!@3R!@2{ R{ _ { 3@uFB  ?q TT?qTa @ @?Ts@3a @? qTIT?4qTT?8q!TrTs@3A@R @{è_ aBr`T R@A @{è_ arT?<qTR?qaT@ Rb@@"@Aa{[lDSt*F@@/#Rryfuz#`+[ZSd#@WBr TF/@@AaSA[B@{ƨ_  @  @"  !5RU~ "RR 4RR*q{R%Qb`a&RFBF!`G@9E@9 @92&92c2E9?d99 9{_@?q@T_@ X@yq`T (@ 7"8@`C|@F(@!T{@Q$qSsaF"@'҉TR  ! X`xa tR:F@2#@b@p @94R! @4RsF*'@a@AASSA{Ũ_a R*  յu!:F@Y54!)T;4! )O?5`aR4R@ a R*  a R*  `4R8F@pe`4RF@9!t9 `"R*F@9A39`DR4RF@9 @9h@393!~ 9h`4RF@9!29 `4RF@9!x9 `a4R8F@ h a R* (  4R յu:F@*!*4! )4@9q0TR!)b:F4R@@i դ4Re `a4R8F@ ] `4R Xa R* S a R* M `4R Ha R* C `AR4R= a R* 7 յu!:F@)4!6$`4!6$4!6`*5`R@4RF  a`@#4R!8F!@  յ[vG@`8F@U!4Rl5[B[ucw:FF!8@@9v9[@4@9qaT@9qT @9qT@9`524R9cC[Ba R*  `4R$`a4R8F@  յ[uи:F!8@. 4!8)4!9$4! 9f4"!:` 4!;_rA#T!; @&4!<@'4!@<@(4!<(4!<@)4!=@r)T!@=:rYT!=4r,T!=+4!`>*4!>(4!`?&5`aR[BF@\a`@#4R!8F!@US `4RNa R* I `@4RF B24R9cC[B<a R@* 6`BRF4R[B@@9A39,a R@* &`4R@ !! >G4R[B! 8@5F4R[B@929cC `AR4R@`"R`aR@4RF `4R[BF@@9!29@9qAT @9qT@95`AR4R@ !@)R4R@@R!@8:F4R@[BcCТR! 7wR:F#@@t!@95?@TТR!`9ҧ:F@!8aF4R[B"@92"9cCwRFF#@@x!@95?@TТR!`:҈:F@!DBF4R[B"@92"9cCwR.~F#@@!@9?q@*TТR!@;j@!,%F @[B cCla4R[B!F@ @92x 9b[c~a4R[B!F@ @92x 9U[BcCR`4R[BF@ @9!* 9I`4R[BF@ @9!x 9@`@[B4RFh@!hh7`!R[BF@0R!?:F@ٚ@[B%`AR[BF@`!R[BF@`@[BF!*|)4!@w(4!r@&4!m$4!h"4!@c!4!^@4!Y4@9q!T@9qT @9qaT@9%4!I4!D4!? 4! :`4!`54!04!+@4! & 4!@! 4!` 4!@4!@4! `4!@4!`4!5`4R[BF@@9!t9@BR4R@F[B@9A39{@BRF4R[B@@9A39q@"R@4R[BF@@9!x9e@4R[BF@@9!*9\@4R[BF@ @9!x 9S@4R[BF@ @9!2 9J@!R[B*F@B@4R[BF@@9!x99@4R[BF@@9!290@@[B4RFl@!l'@@[B4RFl@!@l@@[B4RFLB@!y @@[B4RFLB|! R!:F4R@@[B@@[B4RFh@!th@@[B4RFh@!zh@@[B4RFh@!}h@@[B4RFh@!uh@@[B4RFh@!|h@@[B4RFh@!vh@@[B4RFh@!{h@@[B4RFh@!h@@[BF@@[B4RFLB}!@ @F@9!?q`T!R_ @ @b8@8@_$@T4@c4@!@B@!B#R_#Z_R_CbFA@9!?q@ T@`GP@9D 4@9 4E@d$@ Ҥ @@ Tf @@ T@ B`W@_ T@`T?q@ T` @ T`@ T`@_ T` T? q TaF @R"@y q T@% TcF`@9@ 7b@9!@1_@_ ՠ_ B!?B`G*B @9_q_@6_ Bd@!  -_}_'_ Bd@,"6_ _   _cFA`!"bd@_}_dF@4d@6_`_ր"_ր<_"d@С`!_}_!d@6_ _ {R! !R>R!!R5R!!R,R!!R#R!!RR!!RR! !RR!!RR!!RR!y!RR!p!RR!g!RR! ^!RR! U!RR!L!RR!C!RR!:!RR! 1!RR!`!(!RR!"!RR!# @{¨!R {SqSA{¨_{S|@[S|@@ss{f:!."@6! @"sѠ@Z:@[BSA{Ĩ!@5 {!% S[`F(@@@ tзwD=W&` !Rn<r T`F(@sF=09#b$aRSa*@X@5@@`*@6LA&*`*@&*?rTR!@0@[B@ @{ĨI@"@AD@!2ADb@@@@[B@ @@{Ĩ'R!.s[B @! %{Ĩ+R!%hD$R!@%aD&@{@ FS@UF3`@`@'s"@3F@9!?q Ta!D!@!H@r@TtGF$RRR@pC`b@9 Qq)TR!@'(@a@SA{èSs:Ga@F@@@q@TSA@{è_ Ձ!0R͖ բR!@'`@}  a@ 8@"4@u@b$d@Hc5҄Rx@!RS G@v:G@@@F@9 5@s:Gb$@`RRC`A9qTR!`&@G@{`VHO F#`*@`*@`*@J`@,@ ``$ @@C{è@ F@T(  Rҟ @["@@@tr@T@rT@rT"@@F@``$ @@C{è { Sc8@ F@t@ж#RLGURYR@ @D@?jTH@ s@a:@`v@`@_qT@6`*@7`Z@yq$VT?k@ TZ8s@s"@@*#@cSB*C|ObFq<"rT`!RX tF*@Oq+Tub$"@T R @@9!?qTqSAcC@{Ũ-@9q TsF`*@Bq`TkT@Qb$B`*@CG!@` @!@rTb$B@1!TSAcC@{Ũ_ց!1RSAcC@{ŨR!{S!}S8R!@3R!@2{ R`{X _ { 3@UжF1  ?q TT?qTa @ @?Ts@3a @? qTIT?4qTT?8q!TrTs@3A@R @{è_ aBr`T R@A @{è_ arT?<qTRx?qaT@ Rb@@"@Aa{d[DST*F@@/#RrO]uzV+1Q)[#@WBr TF/@@AaSA[B@{ƨ_  @  @"  !5R+T "RR 4RR*G {R%'B@A&RFBF!`G@9E@9 @92&92c2E9?d99 9{_@?q@T_@ X@yq`T (@ 7"8@@C|@F(@!T{@Q$qSSaF"@'҉TR Ձ! X`xa TR:F@)#@B@ @94R! @4RsF*'@a@AASSA{Ũ_A R* h յU!:F@/54!)*;4! )%?5@aR4R@` A R* \ A R* X @4R8F@F\@4RF@9!t9 @"R*F@9A39@DR4RF@9 @9h@393!~ 9h@4RF@9!29 @4RF@9!x9 @a4R8F@  A R*  4R յUР:F@*!*4! )4@9q0TR!)8:F4R@@i z4Re @A4R8F@ ] @4RLXA R* LS A R* HM @4RxHA R* lC @AR4RX= A R* p7 յU!:F@4!6`4!6$4!6`*5@СR@4RF  A``$4R!8F!@  յ[VG@h@8F@U!4RB5[B[UзcWР:FF!8@@9v91@4@9qaT@9qT @9qT@9`524R9cC[BA R* x @4R|@A4R8F@  յ[Uи:F!8@ 4!84!94! 9<4"!:6 4!;_rA#T!;@&4!<@'4!@<@(4!<(4!<@)4!=@r)T!@=:rYT!=4r,T!=+4!`>*4!>(4!`?&5@aR[BF@\A``$4R!8F!@+ S @4RtNA R* tI @е@4RF B24R9cC[B<A R@* `6@BRF4R[B@@9A39,A R@* d&@4R@d!! 5G4R[B! 8W@5F4R[B@929cC @AR4R@`@"R@aR@4RF @4R[BF@@9!29@9qAT @9qT@95@AR4R@d!@)RҦ4R@a@R!@8:F4R@V[BcCR! 7WR: F#@@t!@95?@TR!`9}:F@!87F4R[B"@92"9cCWRFs F#@@x!@95?@TaR!`:^:F@!DF4R[B"@92"9cCWR.T F#@@!@9?q@*TaR!@;@@!,F @[B cClA4R[B!F@ @92x 9b[cTA4R[B!F@ @92x 9U[BcCR@4R[BF@ @9!* 9I@4R[BF@ @9!x 9@@@[B4RFh@!hh7@!R[BF@0Ra!?:F@@[B%@AR[BF@@!R[BF@@@[BF!*R)4!@M(4!H@&4!C$4!>"4!@9!4!4@4!/4@9q!T@9qT @9qaT@9%4!4!4! 4! `4!` 4!4!@4!  4!@ 4!` 4! @4! @4! `4!@ 4!` 4! 5@4R[BF@@9!t9@BR4R@F[B@9A39{@BRF4R[B@@9A39q@"R@4R[BF@@9!x9e@4R[BF@@9!*9\@4R[BF@ @9!x 9S@4R[BF@ @9!2 9J@!R[B*F@B@4R[BF@@9!x99@4R[BF@@9!290@@[B4RFl@!l'@@[B4RFl@!@l@@[B4RFLB@!y @@[B4RFLB|! R! :F4R@@[B@@[B4RFh@!th@@[B4RFh@!zh@@[B4RFh@!}h@@[B4RFh@!uh@@[B4RFh@!|h@@[B4RFh@!vh@@[B4RFh@!{h@@[B4RFh@!h@@[BF@@[B4RFLB}!@ {#YS FcW[@n bG8h@9@9*qT _ 2bG9Fj@9 * ˀsI `@9qAT!@ *  #@SA[BcC{Ũ_{SStaF"@gD@sFg@`@ @ SA@{ͨ_֠@h2raT@#)@5%'@"@?T%RD@@ @ բR!3 @!3 @r2%F@!@p`4B+@@ @T@R!3 F@"@B @   {k@@@LG!F@ YA:TB:@? T"@8t@ '@S6@sBwBRz @BL@@?ւ@aBL@@?ւ@a"`BL@@?B5*B@b"AB@@R6@"@a#)R 4B* @@AkD{Ũ_( @@B*AkD{Ũ_ֳ^@1"@^!4R\ !R*AkD{Ũ_{STF55`@qTT 4qaT`@`@s@`@qTs@qTTqT#Rb@@@9q Td@9*@rTs@@@95s@R! a@ݎs@RSA@{è_`@s@@?q@T_@{StD@^1rTa @`@`DU1rTa @%F@!@4`bA9@6` @R F@!@w 4`@p1`%!D@!@o5@SA{è_ֵ@{u%!@B95@a"D@07@{Ĩ_ֳ N1%L@д3 s@sa @B`4t @R]   B55% RSAB9B ճSAB@{Ĩ_ `@@l @@{@kF!;C@g RV S һs0 `6?uw aT_8(qTs0aK TAR @9aR @9@9,Qq!Iz BzT@8,Qq!Iz BzIT4?@ 5@9qIz T" @9qIzT44@9qdIzAT9 @955l 4  SA RsE@@A9Fg@!@ABkD{ͨ_ 99 @94qTR/  a C0;@FbR 5C@@ҡG@!xy9MC@?#T i 5@9#x",QBq@Bz◟?q$IzA4@8#x",QBq@Bz◟?q$IzA5T4ѿT_8?q`T@@CdTA!`G!h@9h"8@@h88 4z@  /~!! /@CSs  {XTFF*@76@*@*!@!@iM w!RbF@B2bF 2r T`F@@06*@a@@?TW5/r T3@W%@:_C9AOYX@CB9543@Z{7Z@@ @@5%! &` 5`@@G@9@ 5 %:XD @ I @RF*7@@A! ABCD{Ǩ_A!G5@954R!; RuI @D/ @O/r TR\/Fb"c@7@cdA7`?rTR!@  @R!6 R! 8 Y բR!7 R6I @ AR {!@ @w )F?@O @9q@ T`@94?@@X{C;/3@G`G!h@9> 3@4ˀ.TqRj48?@RQ E !84!8 5G@@ @9q T,mj.c8!RkR@9W@7s˚. *c:!RsTFv RB6 Rv5T9a@9?qaTa @9` ?0q@T?<qT@95tR9KABCD/@RA!FO@!@A @{ʨ_֢R  @9?$qT@9?qT @95o@q Tq T@7b8=.sT*c ;!R N)#K_rTk @94@3`G!h@9{y:@F(@@94 [.Rh ?qT@9@5o@q!T`[w@*)ABCD/@B2!DR8/{ S`F@9"_qTT7aF @9 9`F 96@! sF`N?Tb"@967av @{¨_ `z @{¨_h@@9Beh6tF@q T! <RX@9`F@ բR!RŠRA{è_ bR!?rRB$t@@@RBFc+RAB(@B@BF x RCA3 @{è_ !R @R{UST)F)@+*GNF{@`C@qTF@@ XSA@@+@{ר_ @G@ Z,a*@@!@!@K`. AS`G@F0@'@$@!@?qaT@!4@a!`A9'7~r"TFa*@!@!A!A ?v2@?9DQa*@!@!F!@?T(@!2(IQ@@qTֆ@VF @9q 4T @9'/ 6F@(@B4@?,8S`@`,r!T`@F! @9!?qTT@,rTa @ @4@TX%63DPUD@,r T a@ Gc@9`-5D @*g!Rr TRC @C@*G*`@^r T@@(4`@`@*C@*Q;5@4 G@a@1@`5a @!!G<@WC@95@W@ 7,e @@!RS@g**arTm@!4R!b@s@SF0@7@ 9Rs@`"A9qaT`F@ 76`@@qT`@Zy?Aj!TA`6*ҧd@``A9@'7@p@y?qT? qaTXu9 6RҔP"+r`Ts@F?@ 4 @9q TC@'@/@ `G@sG 30@89#OGc7C sW`@``A9@ 7zJ@R @;@\@T 4W@5@#@$6Z@ 4E ?rT! RB@C'@/@z@4`@Q@@*C@*yrTb ՁF (@+ q@j T @;Ra@@_!T@*C@*;YJ;@ VR@4kTC@@qT?@@ @9@3 9s@SC@@!BAB@@B2QARx`s@4! R}C@ qT7@@9rT`@!Rs@q`C ՠ@ 4 9R"@9@|C CSkTC@ բR!`b@F@`5@@54%B9! 4\@a @;@b@#R *CrTR!@@Y%WB9 4%T@ @Rb@ *CrT4 0@BxSBB2!P@CR!yqC@a3}@*C@*rT ;C{FҡG@W;`@ sW@r@ Tk@k@%;\%!R9 !@F@!;[!Ҡ@T%!R9%\@@Rr?kaT@qT@R@! Y1T@f*@!B@!TW@ T;@`@KW@m'/{ @8cGh@95`jt8k4T*`AT  *cG@!Rc@k@9@ZACB @{Ũ_ִACB @{Ũ_S* @B{Ũ_ {CS3[5tFkFG@OҀ@cs7@@q T4RҀG@x`F0@6#CbG {@`@@qaT`@A@94*| Tj@9$9@94C@3y3@GCbFG@@C@(@r TK@G@ ^`"  F@Rb r C`cA9` 7`@N @)`@>PrTgFk48c@@@?;@$@#@?cT!$+@#*+{#@{́aF (@s$r`TGb9FO@@ ` SB[CcDkEsF{A_ աC@Ra@ ! R ՠ7@ ! R Հ@94C@Y*@@9qTR4`6BG@:@*RR!'2@`@9_ qDEzT bRLGf@9B@ !2b9f9{RU`A956 @W@ 7"(@c !Rr`T`@!Ru 6+rT`@*D@@06abA9R qTA6`@*( @B@*A{Ĩ_ր (@c8!R{~rT* @B@A{Ĩ_* @B@A{Ĩ_ աR8?abA9` @{S4[F*kb~@Rc(@A@`@8@@q/aT`v@@F @9qT @9 7Rq EzATa*@6@@Tu96gv@@@6 hG@"h#RBLGB@ @BTt@@&6(@ JjT,@,@k 7T@+@ R?j3TA46 ?|a@ Tu92 T595 4[`%@599C><#@RRG @a5! @9?AT{% R`F@9q Tqt*@`T`~@L !;@ @A!+@7!J?@TD@a77@a!`A9'7b~@(r%T!+@R @4R*R `*@7+R55RRDG`FһG  (@`4b*@J@ATq EzT t@bv@,@C,@k TR)I @aR!I BQK+@n`@!65 G t*@ _qTR_'qT"7R*?q@T+n  RjT4 646q T!4@RjT47P7t694qT!` 5$@> $@> @ cCkD/@*+@SA[B{ɨYc@9cqT`@@B@,lTG@b~@(@5(rT@CJ+@/@SA[BcCkD{ɨ_  q T+!`R`5@9q@T7R" Հ@`RRF #ЂC*cGH hG@q T@9qs hG@z!cҠG, աC@Y@5 @9q53@A@!w!/4 N)k@@"_q?@{_!!4 (@6?}G@7@G@@ @@6@@ (@6 $@>V/R$@>@P @_qT$@>H_qs7R T7R ?@?@ ?{G@?7@@? " j$@>#b c$@>@_qDIz T$@>|CJ: _ F0@#$ЄLG@ c@c`@@qaT`@ 4`@``A9'7fH@ft@H@"@9b6$ @9t@B29H@@97T8@_TX@yBBQBxB<4(@8B2 @9( 5 @c@_  @9 6 @9"t@x 9AH@! @  @95{~ F(@"@B@_qT!@!F {_  @@C@@e|@@|@@@@@q@TqT@t@H@!@@K_ct@qcH@T R_֩_@t@ H@$@ TfF%F@@_CT RT"BFB@9B_qTc @"!@TT@@T R)T {[6S4@F@'Ҕ `  `@#cTG`t@`@GTF'@@AʁSA[B@{Ũ_ ա#@?|`{R  !е[R6FF` @ qTTq@TqTa @ 8@|@*@`Ts@[B @@*@{Ĩ_ 4qT8qaT@rT4Rs@ `@rT4R ` @rT4R `@1T` @r T4R(@7@7BR kTF@@@)_kTE$|@C||@bs@_qT"(@7!t@!H@a@!BxSBQA!|m%@Fa @C%%RFRa @{cb)[URS68#A9AT9F(@@!@?qTSA[BcC#@{ƨ_ Sah94!!hG9@t9@ 4G@ @a4@?kTF!@9!?q Tq)TRskT*a~|ӂ!@B@jaD @! @Ta " AB @_TskCTaK?qT@*kT`4@4  B@_kT!"||?k#TT|}$@}$@4QBP##@$@dz##Ac@C!Tb҂@_kTbzaxaC!BkT9@ R9F(@@!@?qTF!@9!?qT!@!FBF!@S@ F˳rTF(@@F @TqT R9qT!@R/F(@"@S@qT!!F!@!AA!@ ?raT*!`ցDA95 HTA93 5!RŁ F@ !Ra(9hG@9 _R!!@#@SA[BcC{ƨ_  F(@@@q_{ 3aF#"@'@!!F!(@!@5@q@T@sF'@`@ ʀ @{Ũ_ִ!-e7A *!ҶxfxmA{ 3cFd@/@C`@9&RE@D@G@b ) )Sy7@sF/@`@  @{ƨ_֦6!@!R}Tx-x4A @_@ @__ d {" A9 b07a@!@cAa*A9(A9$A9! C#3(9a&A9t!A"3$9 @{¨_ {@[@!@  ?@TjT0>@Ta@"!D@ ?T#@ T#@`R(?@* @cC[B{ƨ_@R@R* @[B{ƨ_ մ@@R @*[B{ƨ_C!| += @'˼/  b@{Ca#AD@ ?`@iTa@9!D@ ?*AT@RbkDsE պ'@/@@!5R `&A92`&9cC@#@+@#@+@@RRD@R@#@{ck[sSm ~?{y`@9q@zT@8q@zT@9߾q@zTa@8?q$@zTq$@z T`_T 5u *q$@z!T 4RR@8v4߾qTT_8?qT@85 Ҝ 4gT_'qA4@9qTsQ4R@S U(E@kTQW4!@!@`a6Tc8!RDESA[BcCkDsE{ƨ_֡_8?q!TsU(E@kTR(* x( E@9 {@@0< R{_{S3fF"R@/tTR@sF/@`@ `SAB{ƨ_  {S3`fF"R@/?TT RsF/@a@ASAB{ƨ_ յRi R@ `RR{  =` @{¨_$A96@?a@?Ta @!A__{R{_ B; | R_ {S@3aF@"@@ @&A9$A9!A"3$9sF@a@ASA{Ĩ_j {S@[@s2="RZ Rr@3SA[B{è_ %4GB!Ҹ R@ {S4[Fd@Wҁ TB!4B 5B99c! 29qTA9q Tq TqTA9qT@x@9R7'`b"a/@_|_|aFbGbHbO@b6@br`y #@xcC qT R7FW@@ASA[B{˨_ַcC#@RR~` @RWx@9u@@BR `@ 5@ @b T&A9  63@@9_qTBR`@ 5@ 8@Tҕ cch78cC#@C@R@ =A9qAT A9|Fxax6BR|@/@ W#T@T!/& T qTcC#@u @RҪ#@cCqk78~@Nc#> {@T  a!: @@A{è_ @A{è_ֳ @{S~@SA@{Ũ_ Rq7@!@# ?`&A96@  6@9qT @MT@E @4@Wz@ @< `5ARZ"rT!@ F@BbF@#@`2 x@*`F o92&A9 6.F@r*A9 *A9xF@b3*9 *F&A9(6#@B R @ 4qT@R!u,@c?B#@@z rTr9#@Bj.<#@b@R  @c @a!@MP%  A9DqTB_@qT@B@@{R {_ $A9#0@" 7"p@aB@!!T* @#@$ {@R {_ % {S4Fd@/# T!c&A9q!3c&9q7 4 v@:` a@!@ ?rTa@!@ ?rT`"A9`06`&A97@A@!*F/@@AaSA@{ƨ_  q@T`R9 2a&9Eua&A93a&9 A9!RBx 9K!rT`@@?`TR 9  q`T`R a@:@ҷ@v յ@@{S3[cF4Rd@wO4@qTRsF*w@a@ASA[B{Ϩ_* 5! 4!4! 4!@@4!4&A94Rx&9ҠTCP!T"R 5п9!4"!`5@!@@ ?@@CTR@U' %|W|@I@ᇟ*`4@RRs '@cC~#@/@RRk '@cCvcks#Y~?H T˼/BT#?jA T+,$ ?T8 Tj68y7$7@_@TCAT@R!!/5&A9!2&9@!@ ?@"@9_q@T4RcCkDsE#@@9 cCkDsE !@9?qT@@!!xA4RcCkDsEkDsE@[@RR /@cCkD{R@S3cF!@d@/4RsF*/@a@ASA@{ƨ_ֶ5R@`TB*5!@5@!@ ?@t@TUT@R @RBB!@4@B@7@ @TZ q`T@Rz @!@8@@!@?h 8@@@bTR?pqAT9_T@9?(qTbT_8?q?9@9h%85R@@b@_A@!!aPBt  R_{5@|@4x@9s@ cҹkң7?`&A9@ 6v@$A9A 7@4 @9q Ta@"@9_q@TU 5z@x cCkDsE @A R@{Ȩ_ `F@6z*kcTr@|@;7@5?q(T@J{8t@9?kT;@GkT@t@9J;8aF@P6r@;*7@4*1 R?qᇟjTq    &7?@V 7@|~@Q7@3`&A9Қ@` 6w@$A9A 7@`5kcT`&A9 6s@@@!t@98a&A9a 6/@ F{@\`&A9@'7`F@6kTs@?[@T?@|@Y@4R"$8AR9 շcCRkDsE @A@{Ȩ_ @@9q T`@@9_qT;k;@Tb&A9b'7  7@D`"R8|@3@/@K`cѪ^dR d!R {@|@x@9_?x[ @7RaF@@6@9RRa5*?qcHb8a5kc'*C4s@t~@g{@X[B @@ R@@{Ĩ_, R @[B@@@{Ĩ_{#p@`@f{_ {S4p@@`@9qT`@9qTP*@SA{Ũ_` @9qaT|Fa@9xax6F@c@#6   @v~TR@X r@@A`BrTR@cC#@@T3@T9raTcC@#@  r@RK?@cC#@  {F"@'p@ @vBBRH.#@TvrBR?#@`TvBR6#@@TsR-#@ Ts@RB @!@F'@@AA@{Ũ_ նB @R   {S @4x@9#T ]T@t@9j38AB @{Ĩ_BA{ĨL D@P7{S@x@96!@U"TSA@@@{Ĩ_ @ E#T"hT O(T`@t@9j68SA@@@{Ĩ_֤BB R@{S[@3x@9#T>T@t@9j38SA[B@{Ĩ_ _8qT_8?qaT@8A8 _ {*?q!!x!SsRJ !47 /~@b{@~\@E* 4RLGRR3w? Ձ@!@ ?KT! T@!@ ?r`T{@!RXr@TG@'6+A9'6 E94R9! tR@*s@*@?7@5@[B/@*SA{ɨ_ R@*SA{ɨ_7@Ry5*[BcCkDsESA{ɨ_֠3@+ T@BA@?֠GTT!R~[I4Cj:B4C@jz@ @z{!@3`< G@{`Tz{CRr"@ @_jaT(@g6?@ Tw@kT8@@9|qT@9|qAT @9!|q`5 E94R9!  z{@ xSR*w!|z{RRf^3CD["c0{[SF&A9@#~@wCӿC #A9 7#cR /79{@ #A9 7 s@ `RjT!Rq9{@D@/@@@?rATRN  G@ X7!@R5F@h64RSsV RoУs@@#{C=@@S@@k@@B _@A@rT!!@yAy@_@c@\:s!@`?֨ պD@/@RR*F*P@AʡSA"[B{@@#@c0_֠7@: @A@4R_D@/@?s R`5&A9c?|`T Tjk?@AT8 ~@/#Ҡ3"@#s@B@w@@?r T&A9 69{@D/@k@R@4B s@!@ ?rTRqT@  RD@/@?sR8*r T?@R 5w  ATTTD@/@c#RC@GABrTR@Q s@@`63@!TR@D/@C@R@cc@yyaTG?@T6!T`/{Ss*w cF|sS#`@k G ~@[4kQBR"k I@?Tep@cx@@BB@@T?T|`!TJa TÊ@F@h6cRG#`G@@=@ @99O` c@C?C@s:?@5*Aer!T@R@sF*@a@ASABkDsE{Ө_ *O@cR.5@{@ L*C*Ê@?cc@yyT@c*?BL@@? !T~@ 4`QR"|7 C@_Tap@'cx@ @@T_T?`!T@ GBL@@?@BL@@?  THcT@*?@BL@@? Tb7@@@ Tb7!Tw@5@@p@Rj!  @@c@*?@BL@@? T {D@ bFC@ah6 RsF@a@A @{Ш_ մ  1T@k@@T@ յ#c2' B@=L@R 5Z 0T!!R. RA ! !R#@ RRAF {R c[uS *F @e@_q /;*@`4kTX@T|`A T( CAT*kAT*'A9 7p@@@Tx@`EzT#RR*9A rTG@Ҁh7aB= C s  B@"cc@ygy TR#@*qNF*_@@Aʡ SA[BcCD/@{̨_*TrT@R?Z 4kTR@X@!T*`!TURҵo@Bk`TA!T*o2rT*'A9i 7 s@@) @T 9{@?`BzTsQbRsbT@@Xk `T @RR#@55#@#d! W #@ R_{Sp@aF"@'@C@#u@@TcR@][BsF'@`@ SA{Ũ_ֵ@[B[){  A96qT`&96a@!@ ? R @{¨_ `@x@Z/`@@T!'`@`@qlT@@  @" @kaT@"@kT@"@ 0_ _{[S@`5@9 5@6R` 4ARS@ E4`@9@ 4@9?q @zT`@8` 4@9?qAz@TqaTa@9a4sB|FBax 6"@a@8@baxB7ÃTh TAT T>`TITT TBRҡ@R?kT @cC?*SA[B{Ĩ_*@SA[B{Ĩ_`[5cC*SA[B{Ĩ_ a@9@9cC*SA[B{Ĩ_ K5ajx8`?q`T;5cC Ձ6!TTȃ T T4! T@@BR&`ҀTRcC ᣂT) TTAaTRң 9!TT;!T!@aTBRғ ``5cCBR҈RR҃bRBR@~BR{RxBR@uBRrBRo7!TBRhR.TaT!ƃATRZBR W {S&RSA{¨_h@@_ {SsF<"b@@?rTs&@3@b@@?rT@SA{è_{RS<"`FF*$@"c *d@ |}FaF#@!$@C"@_SA@{è_ {Bh@ a @4aj@$ @4 @b@{¨@4`j@ @{¨_(A9!?q T@!`"@`4h_R :   @A! T R_ @p { sB)`@ 5RT  `@@ @?T@AY `@*@ @@{è_ 5R @*@{è_{S A9F2"@W`"9!`Jk Tb"A9`@BC_qcTa"97R`5/@`@!@<.` a"A9!`2a"9@ R` @FW@@ASA{˨_ ! <` brT *r`Tb"A9`@BC_qTa!;`  `@!@<` a"A9!`2a"9`@!@<` T { D@X7`v@*`$A9 6` @"@)B@_TcBdd@"C@c sb@S!@)3@ @{¨_ t7z@` @7a@R47 R!`<RX[sN` @B9R :CB9R :={D@! X7[B)**!@/ ?`TRB)u@U57***, T@`\/@[BCD @@{Ǩ_֢7Q7@|@u "@ R@B9S[B`A7R :/{ A,E?TRM*Re*7* @{¨_ @ R* @{¨_{ !,E?T!R.R%*7* @{¨_ @ R* @{¨_{Sa,E*?T_q!xS *SA{¨  @SA{¨_{ !,E?T!R @{¨@`@ @{¨_{[Sa,E?`TR4!TSA[B{è_7 4 R 4@{c'a,E?TR_T#ҵ[ҳ S`sҙ!aן Tv5[B @#@'@cC@{Ũ_ Ք_T5@RDq @#@[BcC@'@{Ũ_  R5 7@%@fA@AR khT qTq TRRr khT5a@_ _ 4b@@? Ta_ R kT4`@@!a?kaRa_ R_a@@ |@`k_ aR Ra_ _ր@_{B<)R> {Sb@**BL@Q@?b@BQBL@@?b@"BL@@?֠5@#KR/`@ q@T` @*q@Tt@b@**"BL@@?b@* BL@@?`@qTqT"qT4B<BHR>T B5` @RrkATAcb@` @BL@@?֔  s@s@#@/@SABD@{ƨ_ b@ ` @B5 B@@@?B<BKR>* {[@S@qT@** A@k`TT@?kTT@@| b@"4X)a[BSA{è_  @?kBT SA[B{è_֢B<B!R>R!_ Ru{@cRR@#A"AB0@9_qi T* š! @t T{A/7 @4k T$AD **?qTq TQK  `TiT@D@v" ?@`!D@ ?@:TkTq T qT:5R*c@QK R ATu9!2AT59TD@/@ @ RAcC#@{Ǩ_ պD @@/@R!@#@ARcC{Ǩ_ ՠ7@R @* R RkHT_q T**"@!D@ ?֢F@a@z`_zRrAzT6@ Tu9d2 T59kT**"q@T!D@ ?`R`v !8@ ?`!@R*@RD @@/@?AcC#@{Ǩ_ բR! @**x @@RD@/@?R!R! **a {F*@2@"@W@A@AA@0@9)[1  . {@`@@?qaTaG@!77A@ @?kTA@0@9kT`@A: '@B{@"R@q@A2T;4#@ s:Rv4@5?փ@!Rv4@-?փ@Rs4@&`?֓2@3/LGC@ ;T`F@R!rjT`@S@?qT[`@ҶC@ Aw! ҡ7?@ qTRqaT @<R @ @k1T T  Հ@?kTcT$@D"E@ qT4 @T @T@R?@4@ @ @&@?@K@# K ! @?qTb@@Tu92@T59"@@A05@ @9@ @RqaT5 @6R7#rT`@" @A}T@@@_kaT@ q@TB<B`>R>a@"AGA! @ @kC@;!! .;&`;@8s@3/@@R! .qR+& @lTa@8A"BA! @?a@8A!QK@? q@T@*_q@T @! a@`"E@qmTa#**`@v@Tu99$@06@qT[B@RC @FW@@AD@@{˨_ր@4@4K@R! @?9@yG@  R! @?T  @ Հ@9(6@ 4@3< 5! R @3@@?֡K@@ @[BC @ҸT@R7@4@ @ @?!R* @a5RBAa@k`@A@Rr?kTT@@?kaT @ 5!xsb%R! .#& @av@q`zR RRr@a5"ҁRU@?T9R!@ @%@3@@?֖@!@<[BC @M`@@ KAfk!^R> @ҵ@@8!6 RR! W @3@@?gR! \ @CLG@ :[B@!Rv,@;?֓@ж#qTB<B`;R>[ /R "@R@RBA!ABAB0@9_qQK$@* qT @q@T" @B b!@a_ _{B@[c 8@BA@S! @BA @xA#~@B0@9_qs xHT@44R*""*SA[BcC#@{ƨ_ E/R@k/@ { !4@!b@@ ?֕A` @{è_{SdCbDa@g@f@`.@eBFa@bF)F`2@j ЀC`@`6@SA{è_{Ss`F*[@#bAB_#A9 6? qT@TuR(F@|[bA#A9#IKF 3G@@@k@@G@#9G!_k'{)U@g @K@(Rr@T#A9)06`ct@(F@'!@* R#ҵ!HGҡWR)!PFO3 9!$RҀ@ &5 #A9} @\@ ?@"@@PFA|@9@ T #A9q TC 'T[@@:@Z?kkT,T@ @@ GT_qX T!#A9?z_@ATbw?֠W@R kr G@? ? G#XaO@g@ ՠRRdsF*@a@A&SA[BsE#@{ۨ_ `p@@`*[Q ?k  R @? 'A9 7СC@C`T@C[@@@ "@|@9#O#A9_@!p[@#92@O@R ռK@! @ k@ G@K K@@ O@A @kbAo@ @;s!@`@(RrTm աgqTg@"@W ?ַcC'@7@Q)?@qT:4_qT[@`@p@%: ј@*qdT"@_`T! @9_kT@};@TbW?G@!HG xkG"g@0R5#A9@B}!!\@ ? cC'@#A9`qT'A92'9[@@5O@2*R5#A9@B}!!\@ ?@#OcC'@J#ҠO R;CСC@CT[@(F_@@KDAzMT[@B} '@cC@_@ qG @AT#ROM@C@=RcC'@G@!HG xkGV"g@R?5c'@@[@@c@kT@xx`@9?kT_kLTBM"#A9_@!p#9R@[@Q_ |@7"x`B@"x р6w?֠@cC'@[@_qT:5Ri@ ҹ{ A97C qT_@T@$}ӳ "3c 9al@ ?rTa"A9!pa"9 @{¨_֠RR{¨_ ճ @{¨_ k  qTqT q TqСB"! _ `_ Հ _ ՠ_ { [**` `~}cR`@9@xv`9 Ru~)w"[B @@{Ĩ_@?@"T@BKac` @ Rc@R @[B@{Ĩ_ RYR @[B@{Ĩ_cXA { @ @{¨_{S[c@`?@ aC)d@* ÚBxbZ x"`b@9 7! AkI T! %C@A" x`#TY@A$ x`T@?CT5@T CaT}` @@RJ`@4e@Q L @d@ @_T @`b՚Cxc x#@`T fuSA[B{è_`@9[B2`9SA{è_ ?AT@B"hT@BK{#S[c!!@9Vw84"D @8@@ʁ5ˡ@Q@F @ʀ Sx`s@` @T`@5#@SA[BcC{Ũ_6R@M @9} V44@ @4a!}AT@#@SA[BcC{Ũ/b@?@"T`@BKbaRd{@@ A@ Ś x`C_T ?`Ta@B BHR@@@ Sc@9a4dD #@8@ʃ5! @!Q!D @@Ś x`Ax {¨_6R@`@9} @%@@Ěd cx`?T `@T_{B BLR@ {*S@!!}T6 @z`TRSA{¨_ @?@"(T@BKa_{RҀ{_`_ R {@9@294R @Xws@3?rAT@9 @@@x9@@{Ĩ_ @?kT TˢB E!C!A!AC Axa#T)!A!AD AxaTa!CTa@TA_ _ATa@T{TR@/{A_{  >R!cXArT9 @{¨_V{ qRBR!9 @{¨_{ @ @{¨={_r[StT*"Rg @TSA[B{Ĩ_R5`@tA9@tC@SA[B{Ĩ_ շ@[BSA{Ĩ_ ճ շn*I@t @_{ F 3@@/sC@B(@@?\TVTs@Su@7A9?qT?qT@B4@@?A@TAR@9F/@!@AAC @@{ƨ_ִA@ R2 %R_R_R_{RR{_ {RR{_  R_ R_ R_ R_ R_ R_ R_{Rk{_ R_R__{R]{_ _ _ _ ___ _ {RGR{_ {R?{_ {R7R{_ {R/R{_ {`R'{_ { T. @{¨_ R @{¨_R {? +T! @{¨_R @{¨_R{ a@ @{¨_@ @{¨_  {SRSA{¨_ {*dX `PcHsF9e@ҡ99ң9I@a@ʡ @{è_G@yZ<@_@y_@yZ<@_y_H 9"9_H 9"9_PH#9"9 9_HP 9#9"9_@9@9@9@x@`_ @9@9@9@p _ @Z_ @_@aZR @ _@aR @ _ @9@@9@9!Z@9  ` @ _  @9@@9@9@9  ` @ _@9@@9@9!Z@9  ` @ _  @9@@9@9@9  ` @ _XPH$9#9"9 9_HPX 9$9#9" 9_xph`XPH(9'9&9% 9$9#9"9 9_xph`XPH(9'9&9%9$ 9#9"9 9__@aT_qE|qTcQRKqBk $8H!T_{B@rR?@T?q$|qTBQRK_qc!kc8` !T__{B@B@AuR {4R[ @9 rT"A9@qT!$@A`'*t4R[BR @@*@{Ĩ_֡"@`'*5v@N@ $A9 7r@ B@TRa 4[B @@R!RR @*@[B@{Ĩ_ @ @[B{B@BჀR< Մ!R*_{!L@SaRhR5*@SA{è_TR!A_R_@R!@9 Rcp@9|q?k_{ g:Eg Tж*cF`@f5й#RF!@y@*!R#@F@O@c:EBc5Ac: @{Ũ_ ТRF!w@h!R Rd@8q@gKT Ś?7G_$@B"TR҆@8qT@ Śf86Tq$ᇟ_jTz% Ś_ _Rd@8q@gKT Ś?7qTz% ŚG_ TCBGc`28CBG?TB9__  R_{R@ {_ {S$96t@5`&A9`&9SA{¨_ ՠabR$5t@"`@9_ qTT{_q `TT_q T @{¨__qTT@@"X6_@!LGB2!_ @"Ba b2` @{¨_ @!@a (@`7ЁNG!T!R$NGt@!LG!_"B_ִ@!2ALG!@ _֠R$B !R$ {@S$@*`@T|ӄ$R c@`b*x%!Rtc c*SA{¨_ Ճ|#{@95#@"R9b@9B_q T _qTv"@v@!@!A ?`@Y@@B2rT[B @4R*@{è_ յ[B @ `@Ra@R @@B B`"R${ ` @{è_ RҢ@{ `9 @{è_  RuҢ@{S $9[*`7 @:R$'*BrT!a&A9!`2&9SA[B{è_ $@@T{Bc jT @{¨_ @`@9!Q!?qiT @{¨_ _{#$ @Scw@[V@9p@9k`T $@9kTRRRY$99B&B@j#P`@**#R#@[BSAcC{Ũ_ ՠ@9|qT!&#4[B***`@cCSA#@{Ũ`"@RRT99{S!@S@!p@9`@9?kT&@9?kT!&4SA@{è_s!&5"@RvR@ T@9t@9RRR l8@Dt4t9@SA@{è_@SAR@R@R{è3@@{@9@29!4R @Xws@bb@9_qAT`@?rT@9 @@@x9@@{Ĩ_ @?khT {S @AUR$`@@`@@ttSA{¨_ @A`@9C@!x!A5@_? T@_ D Ձџ!_ {S  RB'rTSA{¨_ `@!{@S!@ ?g`b @Tb@BA@?` RSA{¨_ RSA{¨_ R_{c'97r T7@`@@T#s{ `39OG  "@` @@?BT"T@`@(@`7a@@R?jTa@$R@RRY`@9x?qATa@"(@`6qT@@Rb9R`@a @@K@qa@R?` T!@`@"@ (@2 (TSA*[BsE#@cC'@{Ǩ_ֳSA[BsE#@R*'@cC{Ǩ_ ա3@v` @ Rb@7@@9@?rT7@B@BdA@?SA*[BsE#@cC'@{Ǩ_ִ@@{c@(@S['@ @6@6R`"@`:@#y~@T@R$a6@ @?!Ta"@@?aT@9q TZ 4*@BR@Ra"@ kaTA'A96^@v6@v*d"@c|;r T #@*'@SA[BcC{Ǩ_֠@R$@9qaT( ա@R$a"@@?T v&@" @ TR#@*'@SA[BcC{Ǩ_ ՠ?R$ `@ 4F@R!'1!@R@!@B@ `R#@r T6@/6 @*))@ ?r`TG@`G@Cc@9 ~@ta$;Bg@9 }_}a!{`PqT4R*SA[BcCkDsE{Ȩ_ դA9R#RRR*SA[BcCkDsE{Ȩ_ ՁZ`xd! @@@@@TZZ@Cc@9qT;@AԀR@R@?`c@9q 0T@)4@c@9@&4RR@c9 [ @97@@+@@ +T_@*T@B@c@`?@@`@R@A`@B`@@z@bb9/44*@uG@ 4R @@`@9q $T@4@4R@?*SA[BcCkDsE{Ȩ_@R4R@?vqaT@R@?@@TW'S@qR!LG`@%T~@ $T@4RmA@`!@ (@* (O @@@@`T4RZE A@F@7@B@ҩ7 @?_Z@7@Cc@9q!T@cR@?Cc@9`R@c9@g@9Ut@g9{@@4`@9|qT`@9s|qT`@8|qTqTa!?J5`"@9$qq444b@9`&@9_kT@q"T@B@@?@KR4R @? @4RAc9R@ WS@qR!LG`T~@ T@A@`!@ (@2 (@g@94Rt@g9 @R4R@c9V @!RV4RAc9nqT`RA9R@"Ra:G@R4R@c9[ R_ ՟q(TA9R#Rf@!Rvac9A ՀAR$KT ՀˀR$E  R; uW)@@qB@@TZ@Cc@9qTq T qTC 4C@4R?Z`@TR!(RRQI Հ!R$ o7@RR4Ru7 ya!GA@4R`!@ (@* ((tR@@|@ BR$ a!FG@?qvqT@@@|@ҧTR`@9ҔR|q!T`@9|qT` @9!|q`5RЀ! hF B€R$ C{C A9#BF_qd@?T_qTR`RF*?@@Aa{A@#@C_B` ն/rT@/@@b@+ T' OGXR 7@c@d@jAT OGT(@ ?t@Tb@h7 OG `T`6"T@"@e @R9;rTa@;@X6`@94+@@c@`T`"hT[BCD @/@ @b@7@_ TB(@"`6b@_T !2a f@o6"iT@&@ R B(@ g7[BsEq[ / {'/1rT;@ !SK@s@`:@?TA@!A ?`B@!R r TG@Tc@#b#T+$3`OG7@AR`@jaTaOGb@#_TC(@! tDATu@+@@@!@?@Tb@9 qTTqTTqT@`@B 2b `a (7@9!?qT?q TBRa@rjaTbOGC ?@T`6@9rT`OG@ ?TrTu R9"?TSA*@#@+@B@'@/@{Ǩ_ֳ @R*@B'@/@{Ǩ_ a@`OGR@ ?`T 8@ @!!@?5b4 BRa@rjTb@_AT W6`OG@ ?`T 8@* @!N@?  _7`OGb@a@_ T@$RRR#`@qTqAT`@2`"@s ҂`@a@@2`b "(@Bg77@?T3@R`@aOGap`@Bx2b `ahRC?T#(@cg76 g7 @9qT4q@T@@ R?aTt a@R@Rl`@BRra@jT /6X%RRR#`X6@9q!TnSA@#@+@_5 |@D@7B"AR$ Հ@9qTc6ra@aT,SA#@FB"R$ {!@9!?q!TAD@SaK`@ @!@`` @ @_ q"@TA@a@97@@` @ RF@" @@sX!SA@{Ũ_ RR@SA@@{Ũ_ %RRRu@@!@$@? RR@SA@@{Ũ_ָ * @@TC @9 4!`@a@`@B@qT qT@@ @_ q@(@ATB@c@@c@?֔ @*c|d4C B"cB!%R$#%B"ScB$R$#B"B,R${ ҩa@ ` @{¨_ `f@qT{qS[c!T@(@ @6w@8Rx"@j@@9*@c @!EBD`?@x @*c|5a@`T*SA[BcC{Ĩ_R7R$w@8RRB"B 4R$ hTv@a@T a@.)Tww@a@$w@!@9 {[SFcJ@@Oҟb?`@@@?qT@A@9!2A9@c @2@s@RrTRF*O@@ASA[BcC{ʨ_ ՠ@S!!KhrT@9J@qTW@sD4 QqT|rTs@d @q!Tr`Ts@@# $7 /@ q Ts@S` @ Q?q(T@s@@A4!|}F*@2*@WkDsEJ@raTz@[@ $ @Tcc@{@@T7@!R@ kDsEv#@uks R@@! Q?qB$`*_R_`)" R"R)'{SR)Ra@P`!R*SA{¨_ CRR!)4 )z {S[F(@"@/Aq`TTBqTCq!T@|@!D@6`j R!LG!@ a:F/@@AASA[B{ƨ_֠@|@!D@7 @b"@_@TЀ!`)@  5a~@@!(A96|@!D@6R @!(Rv,@a~@?֠@  @a"@?T`~@#+ rT@!@*Rv,@a~@?ַ'@f+@d@@@C |@r`TDb"@4Ѐ!+@@RЀ!@*v,@@A|@?ַ'@B"BacR$  { (@R@66*@{Ĩ_ ճ !@R[)"RW @A[B @@@{ĨF R @[BL @@ գ@!+Rs,@i`?ֳ @[B@ $@(@x7 @c@4@ @e(@d @%x7d@`Te(@d @%6_L@c5 @_ L@T(@gRJj@T!(@"RJ?jAT6_7 6!(@J|_#|@cH@LG@ _ !(@J}_a@?__ `@9B QB_qT R_ @d8@D(@6 @"B@_B4{`4@ @@))  @) R{_"L@_B4 #@!&{S[@`@9qTR$`B@@U5"@*@cR@ t! cb9!2[B"* RSA{Ĩ_ 4*8TЁR$"@z@?k"T@z @ _ {$RR@ R`d@97`@9!Q!?qTaR`9 @{¨_  @{¨_{S+kcҵ`@wb@C@9qaTB@9_qy?@@9!2@97c6@`?֠@@9a6?@@9!2@9A656`9SAcCkD@+@@{ƨ_ `@wc6@`?֠@@96 R @"@9_qT!@9c6@?qz`?֠s@4SAcCkD@+@{ sFc@_|8z@9@a@Aʁ @{è_@BxA@  R_!(@@!@B @! @_k$BzDBzT R_ { 4RЀ!-`RV @R{¨_ բRЀ!`,`RG @R{¨_R_ִ  @|@  ժ  _ _ բ ՠ ՞ @|@ @9R 6@#R@T@0@IT  Ձ#X@!@BhT @9R!x 9*_#R*_ @@_ _q@T_q`T4R_ aR b@RAa_ { @a@d@?րa@!a @{¨__{@"@ !@@? @{¨_ RR__@_|_|_|_|_|_|_|_|# @c!@`R_{ @``e`@;`r@ @{¨`@`r@ @{¨{ !!;R`!R* @{¨_ ՀARM {SF@'ҳ7! `"@TU)Tr T#@ tB!CTa@B ! @ ?ֵ@F'@@A!SAB{Ũ_ յ@ ՀaR7ЁR#@H@  c0{[SF@'3@!!;aRc#.!b~@)Ta@8!!@za" BAT"S|@!cCF'P@A!SA [B{@c0_րR!Rc{[c'W  A@!`?@@94#+ 4[@Eaks8?qTbk`8_q@ T`s!?k38@@,Bka8_qTl Bk`8_qT a_9s`tc !R?rT@#@+@'@[BcC @{Ǩ_ Bs" N9a7ЁR&7@ c@!R?rTq/\0;{C'Є7!RϿ?r7@T/@Bs"Є!R?rT4 j`8qT@@9q`T@y`yYV?r!T/@ MR@EҴ@}@#@+@vj`8q@T@y`yRk{&  *JA5@@`B@` R(RHG!`j`6rT` @{¨_ C@!Q `Q@`B `@ERҼ{ b@a@ b@! _T A9"Rt(A9A3 9$A9b"A9BFA3 9a*A9! C$3(9a&A9!A#3$9 @{¨_ a @ @!{S@[WRվu[B`!`@~ b#R~*SA{è_ յ[B*SA{è_ #R*_ {@SF!@C@_ ?r@Ta@!@ ?q4F*_@@AASA@{̨_a"A9!?@q!TbF@AR_jTa@ 5K@! ? @qT*K@! R`@!6 !*! :@ { A9  6@!}A!|@ ?rT @{¨  @{¨_ {  A9rTR` |CR!PGb"A9`F@a!Rb32b"9`F.* @{¨_֠RR @*{¨_ { A9"_@q!TD@ X6@!}A!|@ ?rTa@!@ ?rTR @*@{è_ֳ @RR*@{è_`"A9cF@HG2b&A9c25RcFBxdjBx3b&9`"9.Jbv~ * @*@@{è_{?TS@ATC@?@#(T@@cKCAaZ@4tZSA{¨_ !!}TSARn{¨_{SF@/ t@t@ a!? @ @ TC r T"@3 Ta@+@"!D@# ?a@!D@ ?a@!D@ ?hT C~ DT2ab!5_qw@hTBT|t+@!BCF/@@AASA@{ƨ_֠+@RBCR ՠR+@R+@BCR+@@{#@?$@Tm @$ӯ S[U@&v@p@!Rr*6#@9F@0@yyTvd@8!R 7T`@0@2SA[B8C@{Ũ_ֹ#@Rҙ@{Ũ_ҸCRC {SRͽSA{¨_@ "|@?BT.#@8c_c@xc` @AT *_  {F@'u! "@TST r@T#@"@T`@#@! @F'@@AAB@{Ũ_ ճ @ ՀRᢀRRw#@ @  {SsFc@_ @@a@AʡSA{Ĩ_֑{"R  sFcf@@a@Aʁ @{è_z ҄@c"R {$@ Ts!RT @8!~! r TA@R`z @{è_ մARҧ @{è_A @{è_c0?D@{ScF @7s4RRF*7P@A SAcC{@c0_ֵ[!!; skZ.!j`"@)Ta@8!!@A{a" BAT"Y|@!VW˻~%`R@@AB(@@?i rT9[BkDsE[BkDsE R%[B[ks{R  (sFc@f@*@a@Aʁ @{è_֦ {S[}kXSA[B{è_ {S*[1 @T*(` @9R! RqBzAzaT@9?q@TqT`"A9!R 3`"9`"A9AR 3`"9ErT`"A91`2`"9aT2`"9@SA[B{Ĩ_ ՟1T*K@SA[B{Ĩ_` R`"A92`"9` @ ՀT*0 R "B;{S"B;R!Rr@T @R@#@_`TO*@SA{è_ ՀRR! q R4{S**aRx1TrTq,T*@SAb{èB *ABCD{ƨ_$C\Q#S#՚4Q@ s@S3 @/@Z zd@ZRBB@R {[Sck*~rT@9b6ņF}B%@BX#SA[BcCkD{ŨQRSA[BcCkD{Ũ_ {S[wrTR@SA[B{Ĩ_s @!`8@ӷ5@@@@R@SA[B{Ĩ_@BDA@ @BHA@ ?` qT{.q T{_ {_ _%qT! X`__@@9qT9 R_ {!`D@R ,@`? @@ R9{è_  R_!`{R`R{_  R_ R_{SS@Fc@Gu~@?`rT?@@FG@@ASAcCD@{ɨ_ չ#0 TT!@ @@C`/OGB7{C @T8@_`TOGBT`*@h6*@2@_T?@84*@a:@"@%D@CX"#q Tq@ThT qTqT@!`u,@R{@?ּ/@ Ҷ@#@ ն@#@ҙX@yBBQBxB<"4$@;*@G| @OG@!!BA84DR qT$qaTC@! @@@ @?@! @@C/@@Ra`!u,@0@c@?ֵ ҥH* ն@L ռ/@?@@#@D @%R@'@@$@@!@? @R7@`ge,@;g@@;@?ֹa`!@t @@I@C @@D@"@c@B@?֤ Ձ0R`)C@#/"D#_ {Sss[*Ra!ö*Ra!A!& RCRSA[B{è_    {@@SB@$bA# |@?rT@bA!bN@ ` NSA@{è_J {S4%R`LSA{è_ բ(RҢ@{@ AA ?`b@ Ra Ra @{¨_R @{¨_{R @4@~ B} @{¨_ {RR`{_ {_ _{S3^[6 s@` @T`@5`bSA[B{è_@RRTU`SA[B{è_ SA[B{è_ {RR``(@a6{_{_ _{ RR@ s@d @T`@ubD5?r T@SABC{Ũ_ֶBC @@{Ũ_ ճSABC{S[  ~@@GRrkLT֢9 aCQ! q T*!Rs RRL @@SA[B{Ĩ_ 3R@SA[B@{Ĩ_B 6!R7 {S$A97!!`Ӵ5ssB @B@@?rT@SA{è_ҵ@ ! 94!@94!`9@5ss  ճs ճssRҲR"R @` @SA{èk{$A97[ R*"R` @zb@ `b @` @@57([B@{ĨB ՠRu@{Ĩ_ֵ[B @@R{$@T$A97 !*!`H 4! 9C4!@9>4!`99@4R"R @`! @@SA{èSAҵ@{è_ մ@R0{è_R( R_ |@A {SH@R?s@SB@kTSA@{Ĩ_RB 6BAR7{ H@ s@?r T@A @{è_ִA@ @{è_ |@B$A97 R_ {RR{_ { (@@6  @HTT"A9` 6 \@ TC@PA?rT&A9!2&9 @@@{Ĩ_ R @R@{Ĩ_ RR@{Ĩ_֠RR @ ճ @@ {&(@87 A9@q`T%$@E% @T˿CT@6&p7@{@  RkR{_ R R{_  R{_  \@ Rx&(ROR_R__ R_ָ  @C@T RT!0@@0@K_ _#@B0RjT!@@BA@ R_ A9qT7`*_ {RR*{_{CC@SS@B@Cc@B`6q R RcyRRueRt R' Rh7j' R R7qRRR7 Rp7pR R! B9!R˲{ASB_ R5iRRc x{ A@ @{¨_ @@{ 3(@s`7BLGC?TC ? T@ Rt786p@Xj`Ra R @{Ũ_ R_֠R6@ @{Ũ_@ RA?6?p R@@TB@ R? T[c98@B#9: 5kv8Բ AUR 7S(6@R7j#@[B RcC R6д@!G `8  R"@9q T[BcC#@3@7j@ RaR#@[BcCsh7!Rs k RR#@[BcC R#@[BcCQTq Az_ {Sk`"9?Tq QAzT@` SA{¨_ր@ @@`@` SA{¨_{6rS@T!A ?TT@SAB{Ĩ_ !@ ?@5A@?TTR@BSA@{Ĩ_ A@?R@SAB@{Ĩ_@@_{S[s#9@c@ 7@w@@@$@_'a @_@c@@T*@҄Q|@T@@A}! xa?TB@}ˠxbTGT'@<R*@SA[BsE#@{̨_A}! xa?T@aT'@\@[@3UA@KA @@GTR q Tq! T@#! @ ??T@! @ ?֢G@@[_@!?B[{@3T@9qTHTqTqT@@@A@@#OR @?֡O@O?7*x4@,@?`O@n?BT@ R9`@9qK@@T[@S@AR7`9S@W@<R'@[B*SAsE@#@{̨_ ՠ@*5 R qAT @@)TnD ՠK@q*@K@4haV* K@C*@>[@*@   IA! !!@'@D@`TA$@a$@xU_!|؛8C~& _@" @D@T@R*@SA[BsE#@{̨_ @_A @@r`T@@_@ r`T@_@!?8@S@'bS@?4@'@R@KT TY@ S"`@@T?T@ @Oc @`?#@++A @c@O@@AB@j@b@))@B C@@ ?֠S@@Sy#@c@)@O*O@#@| `@) qT!@:R`R19@'@ A! [A!@ V@_4c@*@57 @*BT!@9?qT?qaT@! @ ?`*@ @!*93?T*@z!*5@'@c @*@*@! @ ?֠ @!C?T!C@9?qT93!R*!|9? A{*@ ҿ9RS@{@?k|#C-T @_T@@9q T TqTqaT@;C @ ?֚_@@C@;@@0Z T*@KS*@@0@* @@ !;@?֢C@F h"@@3@90K@S@ @|! @S ?֚S@T@I@_@@0!? @Z!Z?bTA@@9?qT@! @ ?ּK@_@S@!S?@T@`*@@5_@@G@cTG@;@C @@ ?֠GC@*@@0;@x@`*@s@0 *@Sl@ @ ?ց멋F T@_@; @A@ A!'@?֡C@F i! @@903@S@ @0*@C)@@?G @ !@?֡GG@ h"@@9"0K@"S@):|" @R @ c@_ >_ >_ >_ `>_ @>_ >_ =_ =_ =_ =_ `=_ @=_  =_ =_ <_ <_   _ `<_ @?_  R__R_ {S@~a!(l`@c !R}`@94R RB|F@`xjAT$9 @8`5@SA{è_ss"@SA{è_ {@@  tXR!)x`t!@ w~"@`xJt2!w~t"@`b!LGxz!@ a~@V @@~@B{Ĩ_ { A9 bFC@W07aR7b$R!/@ L *@sFW@a@AA @{˨_ `Rs RoҴ@ Ҵ@  {/$A9c7 K@3kR``R+! @"(@B _ qaT" @""@5! @#RZ{c Z9`R*e@a*@! ?q|eNT`"@@Ts@kD@+@'A92'9 @*@@@TH6 R/@AcC{ƨ_ R_֒ /@AcC{ƨRuS {!L@SRa4R@SA{è_ A@SA{è_R_{ KR`!R|* @{¨_ { *qR @ R{¨_{E|SL_ @T{PJ@S8R7a@7@"789a@b@a"@A7@aR!s@sb@@{RRq TLTVq TqT7@R79@c@ @B@A7@aR@`*q`T@@7!@LRqT TqTTqT7@AR79qTq!T7@R79!!Ѹ$!R!TF*o@@ASA[BcCkD+@{Ψ_֠7@79qaT7@79q`T>qAT7@R79`RFR*o@@Aa qTBBpRٯ{RxFd@R5w c[#G ՠcA9qT!:T[B!R @@#@F*@@Aʡ@@{֨_%TcA9kA9`8qTgA9`8q`TQ qT*!TJ58c*rATR @[B@#@[ #B {Ss@n9aF"@ 4R@5ҠT@9q!T`@9Ga8?q`T@9a8?qT@9a8q`TwrT* sF@a@ASA{è_ \ {@ *@ qT @ RABC{Ũ_ֳ @RABC{Ũ_ @@ut@T@ @@hT`S`@@ R @ R @5a R!HGah_ F {  n94qR`!R|* @{¨_  R .9{`+F@"@W@[Sк'"R/s@R9C@IT x|pthl`dӊji8jh8jb8jg8ja8jf8jd8jc8C'99999999 lX|SLP\T,H@A977b@9 qTAR:WA9bA9B!G"3b9@c R @{¨_aA9b* R!xa9 @{¨_ @97b?6@5a2@!"@B8@bB(@7!@" @a@@!(@6bdCchC!6a.@a @!`a aA9!`2a9 @{¨ǚaA9 R!a9b\Cc`C{ 3@bJC R @{Ĩ_@c`c! UAO9B@{2!A*!,@9dxcRA @ !,@9zO9vJ"7O97A R"@A!@" @B{Ĩ_c@ d`@R @AcC{Ĩ_*! b`A,@9zvN{SrTRSA{¨_SA{¨T {! R R{_{SS[aFc"@Gk@/!`+ @<T+@R\ yusFG@a@AʁSA[BcCkD/@{ɨ_֢_rT{#@;@{C{TR3 bҁ2<c@T3@7?@o@7@?(T!Tc@2T;@+@R+{ 8 (4 @{è_ R[Ң@`{ "~H @{è_ բRC@ @{è_ {S@`C@e`C@¥`"SA{¨~ {SU$RRB:r`T@. ba`a`!8b`"tRrTB!)`%`aC?@@T@<`SA{¨_}Ҩ{`S73RV4sqTB  6R@`SA{è_@SA{è_ @  {$@S[TC_@R!v@ @!Rc@VR!!R@Ra RSA[B{è_ ՠᓃR:Q {S5(@rT@@qT*@SA{è_ց@A Pu9qT@@qAT@Pu9B_qTF6@A`A9a4@kTF@@zs@Ơ@94@@@#R~@"FC`96*kaT@94@3LA**@SA@{è` {S!t@ bAEA @SA{¨eAґ`v RSA{¨_{H@ !& @{¨{H@ !& @{¨md"R 5 @R RkTR*_99k T@R `RR kT%Re9#8JAXV#R9*_ RkTRRdr rdRk RdEz Rkc5R Rk TR RkTR RkTR RkT%XVӁ9`C?֠[@0@> RV@w@L@`K@[wR!!Fo@!@AaSA[BcCkDsE{Ψ_u&@*Y[@@TC6+@T8B;@@@7@c` @c @S@O_O@_@` @\ 9 Y @RL@8GO_uG@0O@_@S@ O_Cp HO@_@@,;@"R{cu RTv@L@K@vfҥ?@ `_SqEzTh; S}qTH*IrT7C9`4@b'S_kTaSS?kTk@TC94@_kT?k`Tk Tҡ !R*c Eu @S@HaRs~@8Z*,`6@"@ u@GҠ6C@R3"R۟3@`R8``45@#@ C=rTv@@a4:?@K@3rTTw@@4 R(R!vwvsvv{@# CH@cҴb9x`@vCt"@·b^_ @ T!T"a^@!`"@ `"s@AcC"! 6i R @@#@{Ũ_R @AcC@#@{Ũ_@!@?q`T_  {S[ @*@#@!@*?q$)&)T@Pu9!?qTAZR:É@p a`t ?qTxM| !2x @* SA[B{Ĩ/#QA $Ú_@ _|Sx]!HS *_ R"Sr!pS !H@**_ {[cS#*$*q` T TqT q!T@!@ ?@9sF qTh T5@9SR!BQ*_q T @"_Tg gbg@a.f?q@ T?#q T? qTYu@@?!T@! @ ?@9sF qT@9 @y!BB$CB _qLTBQ#b š*BQ_qs HTHb8d"@ բ@B4@@?*#@SA[BcC{Ũ_ SR5*#@SA[BcC{Ũ_ ա@!,@ ?֣ @9SR @y!BB$CB _qlT#b š7s @B@@?#@*SA[BcC{Ũ_  @@_!T@B(@@?#@*SA[BcC{Ũ_ 2c<S< `*"RA !Q!|@?!TcHS0`*~"RA !Q!|@?Tc,SL `*tbpSRcSBHrc* `*k c4SD `*fcd`*bס x# sRR= !Q?qT_ {S Ha8a րSA{è_ Յ4R!Mu+@SA`{è_քtSA`{è_ c@tct` c`<@ c` ?ց@!P@`B ?ց@!P@`F ?ց@!P@`J ?ց@!P@`N ?[B`RSA{è_ !<@ ?` {S[Rb@" ߟR@`r@yBX@@?ւ@J`v@yBX@@?ւ@R`@BL@@?ւ@b` @B@@@?ւ@`@B@@@?ւ@`@B@@@?ւ@`@BL@@?ւ@`>@BX@@?ւ@`B@BX@@?ւ@`F@kBX@@?ւ@`J@BX@@?ւ@`N@kBX@@?ւ@`R@SAk@[BBX@{Ĩ@ {S@@BL@@?֢@a@BL@@?֢@a"@B@@@?֢@aB @B@@@?֢@ab@B@@@?֢@a@B@@@?֢@a*@BL@@?֢@a.@BL@@?֢@a@B@@@?֢@a@@SAB@@{è@{S[ aF@#@Occ.@ZR4RsFO@a@AʡSA[BcC{ʨ_ TF@R#kiT@ ,N@ߟR?k*iT@R@ߟRkiT@@(!z`N@4R@~z"yN@kT|zӡ@RG4#@ #@#k{@xAA @/F @_R 4RF*_@@A!BCD @/@{̨_ִt@ʼnjaTϗ?DTt@z@q Ty 4`@z !#?@RO@@! TG@bq р[@ T/@ O@`? 4@s4_C5Tbq` Ta@!8@ ?֠Sa@`"!8@ ?֠ aG@CRS@?j!*A4` LGA[@bq T+@ `@ ՀRS4K@!@BFRk@*K@~ RLGA ՠ?@kAp@7R?@k@j+@O@W@@_@RRf@[k {t#@@4R*@{ƨ_ յ[@ +!t@At5`*@ 6w@ 49,@'/8@x @ؚ<8@ @@ښ*TR[BcCkDsE @ `"@c8@k/x{{ y*rTdA*?r`TwB[B @+@4R @[B+@  @ؚ4R @[B@+@aR@ @? TaR@@?TĀR~ ҥ*rT`RR~{[S7`@"A!D@VO9 ?֡@!D@` ?֡@!8@`" ?֡@` B5!8@ ?֡@!8@` ?`@!8@ ?֡@!8@` ?֡@!8@` ?@[B`SA{Ĩ_!<@ ?֡@!<@` ?` {[@S AO9@07@"L@@@?ւ@a" @B@@@?ւ@aB@B@@@?ւ@abB@@@?ւ@a@B@@@?ւ@a@B@@@?ւ@a@BL@@?ւ@a@SA[BB@@{è@ {SF@?B4[VQ~zӵv sTĆT[B[BRF?@@AʡSA@{Ȩ_ֵ[i {c@SCk s@[EcFAb@ҼCBCD+@?G@4Q`Rcs?T@B4Ҡ7C{|f@ffAfOfBffCffDfҠ?֠@ q Tg@?S@?֠?@ikT{F R@a@AʁSA[BcCkDsE{ר_ *h`\@e(@7@xe(OrT?@3i{ScFd@ޅTC9q`T`R}sF@a@A=SA@{ר_P|qT`Rp}C9qTC90q!TC9qTC9q/TC9qTC9q TqT@@5p@ ?r T@"r@yqT@?Tq`TN@4B`RCD/@:}J@?q`TN@5@5AA!(@9?qTv@y@_k@T:Cq CzT>Cq Cz@TB5q T qTF@2FF@4F@2F@K{r@T5@ TN@5R@5F@"5@0R@ 4@T@BqT7Rk T*r!TBCD/@l Հ@@?q@T 4@@9q$@z T r T6@ ?r`T @J@ յ@v@ @$qDzAT!,@4(@`o6*@2*F@2F /@*BCD1 R@5aTaN@5C@ N"Q?|`B@zTR@R_kaT@RF@R_kT?qT`fR`fr?kT!QR@!\?TR5΄T@R!4 R!|٨ @N@*a}Ш@./@ͩ@ AF@G@H@I@J@4"QBBB@c,@`h!@! _ATN@qIT7R R( ?qT?q`T?HqTߟ qT@07@?q$IzT/@?kbT@6@ q@TA@š F@xFN@k TcaTj+@kT@?,qT,T?qT? qmT?q T bC"IF@$B|›?HT@!zU@2 0@`@R5@F@70@4й{c%ZR@!@T*A9Rc2*94h{F@kITTҼ/@BCD2F@@@4F @R@!BkT Rh@ q@TRRЃ*A9!`$c2*9hz/+g{SbFC@'5z? !5B9qT`Ro{sF@a@AA(SA@@'@{Ԩ_֠B9qTB90qTB9q!TB9sqA TB9q TB9q Tq T@@ 5"#Aq T'A4R|!'A@@B|?*5'A`@4@R7O ՠ'A9kT@;zӖ!cTk{aT @@ O@OG@@@T7@!B7@B@ˠ[ ՠ@@q`TCsE@f`Rz@CsE @`/A!4+A4O@!|;bB_T'AR@5  Z?kT@zӅk`!TG@A@TO@BٚC@BB?*5'AZ?kTfcTJҢKLMa!`&@@"R[RPG"A9FA3."9e&A9!2&9?@ C@CsE@Ҽyygff Ruzf@@CsE ն* Rizf@ ոCsE@gfdf@CsE^f RRzf@CsE;@ T@O@A!@B@`B)T"@딂Z@fҸCsE@;@QҶ@CsEse  _`_@F @_@F@_@F@_{S@@?T`@@@#@_T`@!RF@s@Reeq*SA{¨_ RyR*SA{¨_ ! e!R 5{ScFd@*TB9q`T`RysF@a@Aʁ SA@{Ө_֜xqT`RyB9qTB90q!TB9qTB9q!TB9q@TqT@ @!5x@ ?rT@")@v@yA@k`T:C?q`AzT>C?q`Az`T 5`t@ @@_q!TAAB(@9_qT @k T8C_q`Bz T@R>@_k@TT 77A6@7`B@5u@@B@57`B@@4a&@ |@u*c&@b@`@|TiT@ `@&@ |@u*&@@c@9U@~{SS!@`(@a 7a!`s@@9"@@Fs_q T@! .BFBT@_qs @sJ@E(@4t@!@?qT @(@!s@F@7A@6@Tu97@@?1 Ts A@@@9|SA{Ũ_sx@  (@x@!kTA4t@c@q!T @P6@(@W7B @  @?s նz@J@*ka:+v@@!6,@@qHTz@kBTzs@C@'@ @s@Rbv@c,@u@@b`иB'1R,'v{S3@@`8 Rz@"R@*@ xL*SA@{è_ յ@R@*SA{è_ {Sy`*gR8Q R`@SA{è_{Sb`aqSA{¨_{SQ` ?ER$x**`@SA{è_@BAB0@B@b@ARr R_j!Tb@!LG!_`T@(@0L_ {@S,@Bk TZb*vrT&qTzf*jrTkTRSA*@{Ĩ_ բ?`СR,@u?@@{@)@j@-@_!q)A  T*$A?rT*@b4@B_kT![bB 48R`*.@4@07A8R@`.* @C@{Ũ_ մA@8R* @C@{Ũ_ բRa!.a*@*t@* @AC@{Ũ_![`*B4a@!za բRa!@0a*nt@A*@AC @@{Ũ_`(@`5@(@`(`.@`5.@8R`.Ra!/sa*Pt#(@BR@Rc k`T_ { 3 @ +[@9{ 5!t@ ,@ 5 X@`@`@@cFdH@k"Tc@`X`@ ,^@;R#9`@ 'жZOGZC  Ձ:@b@?Tv@;4?T7t@.@a[ 4@s"@fBw"bL@@?:@a 4@s"@~Bw"bL@@?@sBL@@?֖v@+@ @{ƨ_1T `@t@\@|@t@@c,@Xu9d7@cAxcc@``@9QqiT`@ , նB^@'@sT`ÁR,3t@*@CADQӻ+@ @BL@{ƨ@ .@`@O7:@:@@`O6  R@9+@A ^v@ $"@#z{Sw RSA@{è_b*@ϫR`z@c"@bN@"L x R# SA@{è_{ScfFcc1kC@_!R ^^~@S` Re@DR@@!F!@ R@CLDx T@@RsF_@a@ASAcCkD@{̨_ @}_{a R! 13@ !a"@#cNwq|! R!|! azA @B{Ĩ_ RAB{Ĩ_ #@ TAT R_{ !@R @{è_ִ!< b@a@] RAA{ F/@ңO)TR?}TF@@AAB/@{ۨ_ ՕҀѠKCT.) Ta!@17k +?;@#!D@ ?֠g@!D@ ?֠_3k!hT@!D@ ?ֺ_@O@S/css! K@ThT"A9q`T qaT?@Ҍ]k@RGb@_#Ta@G@WT^@W@ 4Qc`ѿ1ATC@ssK@y T,TkD @+@R@ RCD @ _T_#T7@k@^ 5g@ Taca@@o@c@cFCoJ]_@@s.ssk@@9?qT@9?8qT@9?Tq!T @95;@raT|@;@Bxe@?r`TKs.ssCD @ R? V^ {w+]qd!`@ !Rc %]@RF@ @1AB{Ĩ_RAB{Ĩ_ {[@vS@c8A#`R,4r W4`AV5 R`@ @9`!*#@B,@9! ša[BSAcC{Ũ_րR`@@9*raTSA[BcC#@{Ũ_ {X @95[S3t@@@#WA@ @7@RF@`1T@T "@z@*q Tb @!! *@!t~Aaa@65!Raa6a@!a7a@!@a 6a@!~a6a@@!|ca6a@!{a5v@!X@a@!waP6a@"@!vab@@7@AA!aaRa(!X? @q@T`6@ab@bz@?+T@9eba*~cBӡGrTb@w@`?rT"qTSA[B@#@@{Ũ_֢Ra!`1%^z@q R"9SA[B@#@@{Ũ_ Հ*@ o6!@9?qT!@9?|qaT2*8R`n*@a6D@!!x! 5@9!?@qaT!@9?qT`R,BqO#RjTC RjT5Rai4? qT 6Ra!`2]p*@!RaX a@!aa'@p*|'@` 2?@q(T?8q T?q TT?q T?qTA! @9a: !Ra6 @9cq`T @9/6 5`:@*#RarT!@9?qT*{A!@9aRr?kT TRr?kT?kaTAa Հ"@[B#@wSA@R?$qT?,qaTA!@9a@c.@!HC#4?qdAzT`AR,p*@ ա@!A!O9a6A! @9aa.@@5aLCa.A!(@9!Ca@!A!O96A!@9a`.@`4*RabIrTbz@"4 ?DqTRr?kTA!(@9?q!~a cLCq$Cz T`R,sp*@ @ ,@#B bT@ "@6!@!Q?qTT R_R_{@SBLGfFA@F@ ?d@T&(@`7B?T CL?rTR yp  մTL?rATsF*@a@ASA{è_ִ'@[ {k@[cS@F@X;@9J@$ 7%4Rb@!bv@`@C@DqTc*@6b@8@ 8¢@`@BQ¢b@!J@!Ê@bF@@S7!@f?1T*XÊ@bF@@:@!@~?1T*LÊ@bF@@s@uv@@?DqT **@?1T*9Ê@bF@@.@***:@fs@*~*s@5RA@TL"@?1F!L@PTL!}W@, R`4@@"F5,AL@z!s,5J@t y95+NGB v@`@bf@a~@ 4c.@"A5a.@Ê@"@c@M#)@z `@86v@H@Z_@;@`T`T,t@@`*`@,qTTq` THT q"T@! Z5Z BAk{8?qTA@9?qATA@9?qTA @95l!@Y_k;8[`w@b@(@+@ RSA[BcCkD{ƨ_ Ճ T**" F@dR! ?qTAk@t@ ߟR?k)T@tA`!ցR,o ʜ@aR!3FyRt`@8`1@T @4A A3RF@@YP9 s@F@@KRa!3[*nRSA[BcCkD{ƨ_YR4R YR4RF@xFA[@y!!Q!x!<A4R[b"@D@cn@8@Zb:@!a.@Ê@"@d@MBz$)"a:@c@M"@#)@z ?4b:@!Ê@ Rrk` TTDq T@@@M`*o q T$qT`*@5*@7@@M`*v@@_'qDDzT@Ђ!`Z5a_q T~@B@BABA@?`t@@`@!@za.`TDa! 3t@@@`*9 աRrkCT!kTkTa!`5פ`@&*@bB@3a! 3@Aʤ@ qT@4 RrkTa!`5`+@RSA[BcCkD{ƨ_J@)J`N:Š@@RB@Mz"@B_k TtAS`R@z @@Ma*FA#P@z @FP@@ a!`5t@@`*@4tRa!@4Zb"@D@m RBnR+@`܁R,mR`@9aqT`*@4R{S@!P@ ?֡@`y !P@ ?֡@`y!P@ ?֡@` y!P@ ?֡@`y"!D@ ?֡@!D@`2 ?֡@!D@` B ?@`SA{è_{S@@yBX@@?֢@a @yBX@@?֢@a @yBX@@?֢@a@yBX@@?֢@a"@BL@@?֢@a2 @BL@@?֢@aB@@SABL@{è@ {S@!D@ ?֡@!D@` ?@`SA{è_ {S@@BL@@?֢@a@@SABL@{è@{S@!P@ ?֡@`y !P@ ?֡@`y!D@ ?֡@!D@`" ?֡@!D@` 2 ?@`SA{è_{S@@yBX@@?֢@a @yBX@@?֢@a@BL@@?֢@a" @BL@@?֢@a2@@SABL@{è@ {S@!D@ ?֡@!P@` ?֡@`y!P@ ?֡@`y"!D@ ?֡@!D@` 2 ?@`SA{è_{S@@BL@@?֢@a@yBX@@?֢@a@yBX@@?֢@a" @BL@@?֢@a2@@SABL@{è@ {@aP@  ?`y @{¨_@ @ybX@@ a# d"`B`CA@8C@5*_ @94A@b@8!5|@_ {?5S*ITS`Pu94Ra"A93P59!? q T F`b@@*@SA{è_ R@*SA{è_`R,}l @BAB@ {@!p@  ?rTt@a@@ F @{¨_ {@u,@cBkT *zsA4$@ @A{Ĩ_ַc7@HT?cC @4$A{Ĩ_ ! @Ru`4zs@ A{Ĩ_ 5v@TӘt!Tk78zs@ҳ @ә@RNlzs@B4 _ @,@ {B *kiTXs&@*@c`_85*T&@@A @{Ũ_ւ@_ qBCzIT@ մA@ @{Ũ_֣@Rca! 8wP@#}Xk@@Tdk6AT*OkҴABC բRa!7cX*@k@ҴA * _{@@qAT@uA Ҽ/B -@(@_kT"Yb_@T,@ ?AA@9~؛~@6 @Y[?RҾt?@4WWCD @/@@B@{Ȩ_ զtG sF?@Ts `@ ~Ӝ~s@ R?a tҤ?@F5?sF?@ATҜ{7bT  ւ)TA?@?rF?@T?RAР!@8W҂BؚBjFW?@{Ӥ?F?@G`bB'`SB`2R,/j`Rkg`R kҤ?@b?`Rk?@]Q {D@!(@ D5A`@9! ? qT`@ @{¨_** @@{¨9_ s@94 @{¨_ @{¨ _ @B@#B_k"T#,@!P@bXbC@C5{+S@sK@[8MW9 R 4(@4 5?Hs@av@"@"?7"@_Dq!T!`@RWbv@B@is@RQ? 1(TWX:;'/a@*!F9xz9 !#@ 3'@ 4@BӔQt@Ta@" @bAt@"#@"\TZkTC'@/@SA[B@+@{Ǩ_ b@CBkTB,@BXtB @b"HRA! 9Va~@*iav@R"H!@?q$IzTRV`@c @)5$#@*iR բRVZ*iRkT a@o!P@o@ R t@`@_  t@\@X@_ _B@R@7" @B@96"@B_"@@R4@B"_# @Rc@97B@C(@co6(@#o6C8@"@c@B"_ @B@_q`T R_"@B@_qaT{"@@cDFx,@`A9#Y,@5f@%RF`9dxADxd@9D9c @9C4C 9 $@T@@ B+q[AiT6R'S3[v `@ qZzi T`@ `.@`4`*@ 5@#BqI T{c*c"`"@D @8@?A`TkhT4RA@k@TBkT[tb`@ qT@@a@yaTA@`@?TA@`@?aTA@`@?TA@` @?aTA@`@?T*rT@*r@BTqTB4RkAT`@kTdA?@ BkTSAD@ R@cC#@{ƨ_ֻ+@k T@@B {@HM$4LMB4$@y 8r|Sd9TqHC T[kTAsQ Rst@B*5 @@Uq!  @4[B  դPM5@{è_ ճ @"@{è_ բRA!<}U@A#R@@@@y?kT@9B@ @[B@{è_ դ4A@yqT_q@<" @@{è_{qS`F[@'* T 4qTsF'@`@ @SA[B@{Ũ_ @ @@A@# `?` BB`=!RT@(@`6@Mm"RX A9@5BB=!RT&A9q Tc4q T q T@b! >T!RB`/pT@ @S !@ =T @m@B*B@=YT U< @B` !RKTURRKqMTR6TqT@:@B!={T B!RB`>,T@!=mTS {@DBk T*AAS"Hw8B 5"R'}"H78Y @/@6xw@ 5@@+(q;A TTLq@)T T@q)TDq@THqa2T@@tA`P@kT P@?k>T,@ k?@5R@ +@A %tAB$,@ C D P, tx7@/R*@{Ǩ_ բRA!>KTR(g@SA*@{Ǩ_ q THTq T 4q /T q)T"@5R@ +@ S@w@R@AH38*SABC'@@{Ǩ_֡RrkT TRrk@Tk!%T@R@TD*@SH ABCD+@@8qBT,qa!T@5R@DMkTcAR@c@9?!T.@@a|?1T:4a!RS*f5R@+@5R@+@ARr ?qT*M+@@S@,@k1T@M$Xc(@k2TDM%Xd(@kTq@zT/Bqi8T8Rk7T,@!h{{#!(@?kTk =T*r <T@@M?k .TDM?k!T/@,@@*ABCDh:+@@V  q(TqTq@TqaT*r@TAB*@kh"T@,@Xc'c@ q@TCDM)5?qT@d@,q@-T@!QL!@d@,q@,T?aT+@'@*@` L @@*@ P 6$q@aA`TqT (@9C@R?TWB*@?kT@,@Xa@qKz@'TF@@R?j`T@@7*@4@A@MkT.@?q"WzT@,@Xa@$qq5c@rTAB.@kbTA,@ X` @@/qw@`/T/@c(dA*?r@%T R@c9sERrkTa{Ck@TdS@*?rT@@7R ?kTR khT@@G6RA!R@e@+@ Ղ@5R@@Mk`TcAR@c@9?T.@@a|? T@5@ADF,@A#@S@ F@$E2&B($&C($&D($x7FC607@@tA@(@kT(@?kT,@EBakT@,@L!!k T@ d@Hq!Tc(@kT?k!T5R+@Q@ T@?aT@TR@+@E @99*rT+@@6+@5R.1 @9%=dq`T q!T*@ߟ@ +@q!@@6xRA!@@R*@*em@ +@A B CD$x7@R+@,@/@ 5R@ +@A B C D  x7@Xc+@(@*D`F@@SD H,@2*ABCDy7F+@@AРR!`?`(@+@*/@BrT#kTqT@,@!R !k T@ d@Hq!Tc(@kT*@+@*NrTRA! Q*dsE@RsE!R77 7@`@@ A B C D@ @B,@@h:@A@aA+@@c2!$@9+CS @qT@929F@*sE2@F[R;@ {SbF[*C@w'Ҵc*"@5RsF*w@a@AeSA[B@'@{Ϩ_ ջ+y t@@/" A@ @B@ C D @aO_ q@#T_Dq R R@r?2U?@2U62 6@ 2b?{܊@2U!H7?v2@@9?a2u qT$qT 47@9q T @a@9!2a9Bښ@b raT/@R+@6@Tu92@T59@6@Tu92@T592U@?~`{A! O5aw@2!`@?*LrT@AT@ ?rT@q`CTe+@6@D@0@a4@$Q |zcR "@"@_T"@_!?TqTsET ա!`zO $4A!tO`#4A"! nO"4A! hO!4A! CrHTA! =rAGTA!@ 7rT! 1rTA!` P 52o Ղ|zӪB ?`TT@?!T@dvW7i6@!qGT@@T@ @c c (TI!?~A6T@6@5!q T@@?iT@!?T @ @BTa˟T@>5!!!ښaT@@c(Th6@9q1Tq7TA! N@5Ң1r.T*A9B9 3*9sE5S;ME5#B94/@&QRb FL& TB c@d@Dq!Td@Tc@aT@!;Mk)T; 24C1T?MR@ F}9x`$'@!@? iT!BC@TTkb<T! T@ @`t@C`@aw@@X@ X#`[` #@`t@`8= CX@@Š@!+@B?kb T/@Xa@q Tr@ T#/@@#C"OVO@/`1aw@Ɋ@ X;`5#@; Rr*|@dvW6ic#6@!qT @ @cTcHz$GT@@(TRORAЀ!`pOR"#@Lb@ RO@!F?h#bCsERCsE`w@; !|}ӥZ܊@F@и XРK@ҠG?kT/@xx@Dq!T@T@?aT@!T*kCr#T@C@@!F@$X%ӟ$C  @Rs?ks@?@5@srlk@@s@?@TC@;{c 7{@;@ #{jc@{@F TC@@%$< 7@ ќѥ3s!D@ ?*Gs@$@T?kiT@!,@ X`@@!w_DqTG@R7@N@*aG@RAЀ! NRasEZr! TRsEQsEO#@/@1T4?M @ @c@9|qTr`TF@x7a#@F@aw6@"7W@4_q!DQן_k`T#r T R*A96@9?q!Tq`TF@ɏ6 `E@9|qATC`w@@!qaT ; RAЀ!eNCa Ra`w@C2:FA@W@RW@My@@!!!ښa C@RaC@@$K@RC>NC@@a Ra܊@@s]M @ @hTcˬ @܊@6 (@@2 (DrT@R@C/@ `+@2`+A! R NR`sEAЀR! *sEaw@2C C@@$$ {S[FV@c"@7@"T@#C"!`@T `"LusxF7@@ASA[BcC{Ǩ_`@T L @B_kT,@Xa @__{ #*Ku@*|@'t @k+T~@L`5b@_qT kTB|@L5@@@'@@ @@#@{Ũ_t84B5uBҴ@@@'@ qT_1T4`@$qAT {4@T@A AAb@9BBӨ @@{¨_ր@9qAT@9Q`qTA! `@b@9 @@{¨BBӐ ҳ @@{¨_ {S!t@@d@9CAbO9BDD3d9bX@@?av@@ @ "SA{¨ ``vRSA{¨_ {Sc*F[C@_#/;_*`@a@?AHTa\Ц *# !RJJ،J4 ` BcA@d@Ab!ٚٚ`@N"ˡfA`Tza@z? T`@7*@ R!2*B `@ o*\Ѓ# !RJJJeA*bBc(@`@A2f#d+eOcya@`{?T`@7`+@2`+`B?To@4F6DD RF_@@AaSA[BcC#@/@{̨_ֺDR զ o  R`oa+@`@"2b+ 6bR!*a+ ա*@`@"2*6"R!**lKDV t@",@!8@B{R @,~_`v@ @{¨,@_ _ !RjTA RjR_ R_{S@AO96!K4SA{¨ʕ A! ŕSA{¨_T {'Tc[s#SҴzs}s@rT`@RRR{`@9B QB_qTd@9"rTj6AT*#@SA[BcCsE_'@{ƨ_ R_'@{ƨ__r@T@_TCcB?A @ BAL@_ q`T@!_@F0@E@@@CqT#$@?TBQ" D(@ TcQB 1AT@_{  ҅B!R@$ @{¨_ {ScdF@_'@C@FaAW@W@99`39?qD@!7TX @@F@B@b4BQB"L"R@a(@x77@?TN"B#$ TB@@_q ATt@@A@@?rT@@RF`@@!W@A RB@9A|asF_@a@A!jSAcC'@{̨_ց@9a/7 @@4ҵU]*@@}uv@/#sYҶ\AK@Q*S9#9сSR (@6#C4S@dz"*Ś{#! @@@kT@aLR,,^c74I@@F@ LTW@!A!@9 S@OJv@@9 _*@?66455!@[}@`(@/7!!`r;@(@ ;@G@#@6qj`#T@O@?@ @ 1@916!(@a1 6"!!?Tc0TO@['?*R4R?@R R!Rҡ7*zybCa?C_T"@$R8@O")?rP)@@ Ta+@?}k?|@R qҀT`#@S@š9kT;@KqT@R! ?q@T* **u;@ 9B!R@$[K@TҀ,RҠG`+@a@6hw@@q*T4qcy;c"5@G@`@6@@Tu96R҄҂r<R w@@6,@@qhT#+@ S}t|@t!w@@9@c2S@!,@9! @$9@! .` @0@@@?q6T@@FT@@05@9[@06C R@@@?T@@A4$@~@B@_T@_BT!Q?1TL!B$@D @DB(@B _qT @Aҁ[@DI@@[BsEF#@MW@@`?r!T@A!@ Rt,@I?7 R]sE@#@$IR@gR5K ՀcT(T7@?@'7jaT`(@ARjT`+@jT@G@ !@6@96`+@DkT14@8@5a+@7***@a+@+}@R .Dqk SҀT`#@S@š*RsE@#@u@@h"@ @@ K4@9ҁ 229 [&@K@,Ra @$ *e@?@O@!@" 4NR4O@b#HA7 aO#@9ң@!29*@$@P6hQ hO(*(@)!P6! ! @AT @9"Rc@!*9 $k{@ x@kaT (@ 6 t@@qT<#˚h@L  @ x@? kAT (@ 6t@!@?qaT !@S@š  @@T !L<T"t@G@ǹ4Ry7@R97@R7 R7Θ7?l R!(@?vR<@"@@*@?֧A8 4?`RaR|'A9+A9@"`k9uac9bg9@t{vgCT@O@W@@S@RRk@*s@@ CA?@b@9e@o@B ?֠@kTn @?TS@ۊ :8@ 4@@`4@@{@_@T@w@`@5@"*1T@@@!@"(@—`6qRT@D@ැ6mR R@@F0@7@5TZҔb;ҸA   TB@?qA T@։@T)O?B T@F@ *HR@@!"@_aT@@&4Q D$@(@B _q@T @ʚB_ T$@B@_T R k)T@@_ B GT !@*B||@|M@  @!@˟IT@9`7! 7 @9`6@ RCzV}TT@9_rT&@!QGL@ ?1TN!!QD$@t@F@ qT@@L@TA@6{B@@4@96@*&@ǚ)@ ?T@F@   СR,V@ AN4!}[@0aF~z!c@R7w*c@aC@ZC @@ @d5!@ |N@ 4?@b4@!4@EQ`#[`C[@L%I R R@$(@ jaT!t@+"Ta'@!t@!@? qT@!t@!@? qATAT@|@ ǚ΁@@G@@6@!9a-7q$@@ A@`?r@Tjm?@;@.! @9@?@!@ @ 4@!5@ C@kD@7#A9B_ qATB|#$"R`%>]rT#A#R# #c!R=RRBҞ@`Rt?"@#"@ORF@@EG6@"@9'BLGB? "TR\w7R7Y-7?y$AAR  Rq*7{ r!TA W[!R!`! 9?R;@@=;@@0@@ ?֭@@hm`@9 RK@@[ 5@*2@Ac@`?֠4@+@grT#@_4/6R!`!A?@"BFQABkDsEMEQa#|}R ['$@x@k ?aT' G@T?@TO@'U41 &TT1@%T$T1T@@@M8W@*@@.A@@`t@a'@5@*1QT!`!R@>@!@a!! b@QR6Rs@>>S@ABkDsEd@@#T? q@4a@ Tž 7R#A  ?@;@@@F$@ T @9 7PR#@#@@?mG@?`TA?T@?z RR@$"B``?y RR!! @s@@=S@Є@[@!AAc@@`R_@ ??D1yk@"R@ |@!@G@*RQ@|@ @G k/RksB=1 T<qhTvq T@A.@@?*@@i~~kAR&ARR~QH@A$RRR!'$m`@9?q$EzATQG)a7@! @#Ú 4$@a "@aA9cRA9B2`9!x99TkD@@ZT (T* RE@@tA`$P@!!ТR`!`@q@@FP@@@DM@@FL@ d@ T  qTR!`!=A@*qP@@@!F!@A"@_`T!@"@@4!$@!LG!@ "B' B! R,P @@RB@_q`T*_J R*_ {S@@A @!FைRɨr5`A 0@9`9@ @q`9 4@9`9F@06`R`ry*O5vyâAR!!d4@9dd@9d>^@d "c@9cJ@R!!`h@R!!6`@"h@ _1T!A@?1@A:SA{è_ 6@R`ryN4@`vy յ@R@SA{è_ց"A9R!? q`ry ա!@9!?qT R_ @0@D@T@?T @c_T@Rpy R_ {@F$A9d@GYA A6 A9`q TÊ@C!A_|8c,@!@7/B9`4R@@+@3RF*G@@A%C @@{ɨ_ r`T"A9`qT&A9`7 ER,O @,@BFS +[ 7@I T'Z@+/; s"I Tt@@AT@"@_'q_q5;@Ҽ@9;@5@9q@z`T5*@6&@6r T@9@qT@1!T@RF@Ӂv@A/@R)r@TA;@#R!r@T^@"@"@&@@^ T A7ڗUN_#q@T@s"T@@'@/@F @zӊ@`F@bv@a _TCcBW" @7 BWL@ӊ@#@!REA qfJ@cBbN@Ak`FB|,@9! K!|@!!aAI T7@cQ4@7 N#@@$@AARX@5@$@ XaTӊ@"`FT@@!@q@#O@@`?rT@R@+@"@^@&@HT E4@hTF@@7lARD@/@@!@ ?rT!A! @ ?r@T`F @ ?ִ@@+@aj@R7X`5@!F!@rT/:"B' B@@cMTf@92xf9J4@BH)!|!_T!R`@9 3`9T5@@Cš@bk@T_@?@@g@@!F Wo oRB@!@?kTO@C@@@!K@!|A@l@?T@9t 6O@"<@@C!D@/@  բg@BD@_xo@@AT@_ITo@!2a9b0b @@@|#T#+@a ?qD GaT!#@B?! !?Tc6 Ҁ_ T_ T_TW7_ Tc q`T #@[ @@|AT @w?8w@4Q @977 ;@I  w@@qT @!O@?T##@!@?HT#+@!B T.f@9tf9a54@_7TRZW7%`4(744c`7b@@Rb@ RRR#ҙ@|?HT*@ _q.T"@ܚB /T_%T@k`T+ c,RK@+Jc@ k3T?) @a@9@|`(6H)?g|` 6@!'y@! ǚ @>@a@!` ,c*So@BˠW 9kITzyT;@T@@_cT*@Rc q T"@dؚ T`@T@w@@q!TCO@` @TD#@cd@Tg@ A9 qAT@@@@B@5@9c 6S@!<@ң(6S@fD@c@@|z@@|#c Ě!!!!_FT@!N B`@4$z9T@@92@9 c@T"@dؚTDcBc `T Հ@@T*@ ?q T"@B?! !HT$6 Ҁ_T_T_TDW7_ T q`T"@ <@?T@Ww7@@@FW@w@4@9`77:@ @Z(@!5@G@!O9?z` @z=TA|e@?cT(@ qD GA5T @ܚ4T_`1TG@!O9a06@@?T(@ qD G9T @$B?! !(Ti8!@?)aO+k $_JkaTc@RJv@@q!TN@ @?T"@!@?T*@@@kT_@s@.x `@@9a@29@ @@3t9 |QK@W@%B$@CCcbB?널?@ DT"S@6_T"@ܚBT!B BT_!T6 R5@`@R!`!6@g@If@9tf94@@W7gl6R@cCkDsE Rs^ R@xC@@4G@O977a@9!( 6>@(6H)!|e@!@š`O907J@@9!x9 @D@4QJxqcq򊎬 @ @ @ TJ@ &@ѭ~ T @@ 8@A@9!2A9t@@'vW6JAAT27`BT??iT@?#q T@'@g?#q T @9 @?T!9@?"T@$ @?T!)T"(@A(@kT@A@!T@A@T @A @!T$@A$@TAx@x@_kT9x9Ro{kBT@AT@o@TTo)?To@9@ 06x9 @ Շ @! @T@A!'@?(T2@' @?T!'@A?T ՙ@?#qT@: @?T!g@T @@@|?T$o@ y@Av@!@?qaTN@ @T"@@!(Tg@! A9!? qT@A@_!ĚB ?TTD@5@@?TRCI?T)RCD@/@p RxQcks4R5@uHf@3d@9 6>@(6H)|x@@}d Ě!! !!@?!Tf𡐃R,H Ң@/4@CDF@/@/[@| pG@*G@3@zӠD/?T R@A@ @.@ .T@-TY\?`TB@_TA}EŚ  R* * *@(TH@Rz @w@\@HvP7&(TZ@?F҆$F$A!TI"7"_⩜bq"@B Tbq"_?iT@ qT @]T@F^T !?~T@_b q T @]? T!˦^?T @]T_TZ@@ qT@]T @B__TZ@ !L4u@\@\@9N!29!3^ 9a3_9fqF T]_R!H?@^#T@92x9A4@H)!|!^T&R@9_39`TT5]*!š@]@9t94@iTR_!29@]CTˤ? TҠ/66R@9t9A5ᩜLaqP Raq~*QON * v@&@vP7(T@_I҉DIDA!T 7?BT?IT*@_!q`T> @T&@^T)&@_M_!qT& @bT^ T &@] IT ˿TL'*@:@$ 6@ J@_Z6! @!F~ T@9!x9kT@96 6?@(6 H)B|!a*!šB@!o*@_!qT&@]#TDG@Hz`T-@ _ iT@!@]! @@CFD@/@R9R,R  @@q`T R_B@B@_qaT$@b@B d7$@$@@qT@d5b5b@"D@@qTB@_$@ T$L@4%@ALG!@ !T@@MkTDMkTF"P@kT!L@kTtA ,@P@kTddLdLdLdLdL{@@A!D@A @9!Ě?T3} A9 6 @{¨_ մP`@ T@RF @{¨_`RF {@#DM 4@!@AA@9!Ě?hT3} A9 6 @{¨_ ՊP`@ T@RF @{¨_֠RF`RF "@b4 A9 6@|} _ {S!t@4@fP@Tb@@|} SA{¨_@RF{R@SAA @?rT@B@ 4Qf"*L%A!_T*sSA{¨_{R@cAcAc$@ `?@` @{¨_ {"R@cAcAc$@ `?@` @{¨_ {@$DM4H@AS3! @!"t@C(@kaTC@$qdDzT# @(TB@cšsT`R&FSA{¨_ iT A9 6`}ӳSA{¨_O@)T@RFSA{¨_R F{@DMA4@SJ@AA @3s@s@DM`v@(@_k!T@$qDzT#R?r@T`v@b"@aB@@B_ Tz !_Ts@@SA@B{Ĩ_@@SAB{Ĩ_RE{S4saF"@@RM[5NM4b .@4@L TҢR`!2D RE@@?H?'" B/@4A@!D?@"TҢR`!1D RE@'@LR1sF*@a@A=SAsE@{Ш_ մ4{Rr@ A ;Ht4@aQ R"R!|cAubh! yySW r`@B'@4R A@RVN` 4Ҁ@ @RMN@4ҁ@@ ҁ@ ն@N@2T](yM'T@'.@PѠSz4RRW g@_kZ#!?T.@9k)TW@kAy8rTC@'@Y |V@N@(+T\ AMTA/@@!zRq@6AV[/@W@BѠW[*4Rxп#OSO@%@5S@@yA5O@W@ @!GTB@0(#@y@@A/@B_kTG@ւTO@ O@$A+@[ R!|q@"O@W@ @˹#G(T@y7`4' @RB5S@@@yk{#@@y9W@?k!˂TT  @4A+@"BCT#@4_kT{* R*7A@q@ AG`.@:H4S@zпc) ѵKSW@#OK@W@ kAy8rT@G@|;c ѣ?@A@yA 5S@ @?T@!?@"ǑbqC|7@T;@G@@K@B.@aKkT 0BC'@G@(T@@@ L0@NM 544 qT{ RBa'@/@@f/B@I!<{Kp@ K@S@ @T@y64R@D@ ? @D@ ? "@B5O@! ? @yZS@_kBT9_9T _CT4@@*@b @BC'@ GyZ*A@RCҀ@@@RCҁ@B'&/@'@B@@BC@'@{RB'@ {[ScF@"@Wҿ?0@tR`!@!/!RE/@D@ 4QksCR7 @R . T@*: )!!R$/ @G"!`"c/@G"!@C"Z/@G@\*""!R/B!"J/@G"! #@/@G@CRRR"`#~!R@.@cp}TB!R.@R-aTkDsE!`y R@!#Q/!R.{rTv@`@ 41?@T@"@XAAW@9?T!˖T@лsйk{#Z(@!,@b)7C3 X`(@@?֤C@QThT<@PTHTDT+T,@CT2T4ZTXTc &B $!R.%kDsE?@.?@LM 4APMa4A Rr@T@LM4R@! ,.!R`.@Aй#< 9,@t@@y!R @y@I.@` @  R-@ @V @!R8.@@R-@@#@PM 5 R!FW@!@AʁWSA[BcC{˨_PMa4AXR!,.!R.@Awй#<֢-9C-R.@!R-@@@y!R@y@-@@#@d?@1T.R7@Ђc!!R{,7@?@-R `ߟITT@0TT`IT Tޟ2T`1T࿟Tc*B $!R-\ !TH TL &T)TT7T6Tc@:B $!R-{ ``(TTߟ&TT CTh(Tc T@ ?@95C@3@!Rc`$,B $!Ru-O  T Tw(T{@ (TaTc!!RB $]-G@` b5+: ՟lTTt"T!TxTc`)B $!RF- TT6Th5TATc 'B $!R4- 1T) T0Ti/Tc %B $!R&-B!i-G@E@R+T@AwdTTc (B $!R -@Tc c!RB $,$%Ti$Tc%B $!R,!T Tc`*B $!R,ߟ`TITc+B $!R,DTTc&B $!R,%TaTc$B $!R,TTc'B $!R, *~`kDsE?@c'B $!R,zc`c@)B $!R,oc'B $!R,gc'B $!R,_c`(B $!R},Wc&B $!Ru,Oc%B $!Rm,Gc@%B $!Re,?cdc+B $!RZ,4c@ Yc&B $!RO,)c` Nc*B $!RD,c(B $!R<,c(B $!R4,c+B $!R,,c +c c@%c`+B $!R,c+B $!R,c@&B $!R ,7@!RB $,c`&B $!R+Cc B $!R+c@'B $!R+c`'B $!R+c *B $!R+c@*B $!R+c`%B $!R+c%B $!R+c%B $!R+c&B $!R+c$B $!R+c%B $!R+~c$B $!R+vc$B $!R+7c)B $!R+fc)B $!R+^c +B $!R|+c*B $!Rt+Nc+B $!Rl+Fks+ {  l@ @{¨_ 8y  @9qT|qT0qAT"@9R|FxbxB6"@9!4bx6@8"4CQcq(T_q?5 R "@9R_q`T_ !@9 R?0q`T?q_ "@9_0qT @9|q_ R_{B'B@aR,? @A@qAz$@zAT[=R_Ca0{SiF@c [k;"@7%4:RsF*7@a@ASC[DcEkF{B;@C_rT@@\@/ xrTA95B*/@?/@@`/@ @4/@/M*`0{@ҥ Ɵq{B_@ v {@"@9B_qbAEA @9T@DF@_T` @{¨_ Ճ@@9c@Bb@@F* @{¨_{[$A9Sa6 Rv@@?T#@!+)4*@@6@?T'@(C RSA[B@{Ũ_raTRSA[B@{Ũ_R!EG4@R!@9?q?q4CF@!`0@ТR*f=R>RC@ТR! . @ТR!`/ {B'BᛄR,= #@@c@c@c@T{S @@9@yB$CA6_@q@ TiT_q T_q T_`q TR@!1K*b@B@'=R=RSA{¨__@q TT_qT_qT_hqTaR   R__ qTR_8qTq`` RSA{¨_ _ qTR_kTqa@@9!@9AJ6a@_}b!!a ARaRRR!RRR!RAR{S@ A9R q!TF@@]o hSA{¨9 @R_{S@caFkF"@_[@E5@c1 !RC''i`' Rt`AR xLRsF_@a@ASA[BcCkD{̨_( {S@[@c!,@k#** ?c@a@@cF! @`@: ?c@a@@cF! @`@9 ?b@BF@:s@ @[BSAkDcC{Ũ{[|@@SsƬFF*c@?k@"R2 2'a@@! @ ?c@a@@cF!,@`@0 ?b@BF@r@ r BR!R@xvLF*?@@A!SA[BcCkDsE{Ȩ_@21@c;)r!T5({S!@bF? C@WҠT T?$T?(T2#pC"UsFW@a@A SA{˨_ Ձ#pC"D ?!T@@!@2  R[@@<I T@c! @ ?֢@@BF! @@ ?b@"! @ ?@:!,@ ?<qMT@b@!F $86@Fc2 !R&&ho( Rs@@ LARx!2[BcCcCR[Bb@[c' {S[aF@"@_ҡ @? AfT T? @"ThT?$ hTIT?0 zTDT?'TH^T?ST@4RaT@!6'5@У@!`g?fTT?H+TiT? `hT >T?TiET@4RT@!6' 5@@!8J ?(gTT"ɨ?@VT)2T""i?`"T?CToܨ?JT@4R!T@!6'5@@!6%t?4WT T?MTi3T? TBT? AGT@4R T@!6p' 5@@!; X?$ET-T?$@T?(rT?DT@4Ra T@!6V'5@У@! >? `5T T? @^T? AT@4RaT@!6>'5@@!>&?( `TT?,FT?0>T@4RaT@!6&'5@@!:? aTHT?;T?;T@@!2sF*_@a@AsSA[B{̨_ ? `\T?$a8T@4RT@!6& 5@@!`9 ? 9T? 5T@4RT@!6&`5@@!=| ?2TҢ"@4RT@!6& 5@@!@b ՠ@4RT@!6&5@@!@8P ՠ@4RAT@!6&5@@!@<> ՠ@4RT@!6&`5@@!,{ բ@@!$s ՠ@4RT@@9?qAT@9?qT@9?qT @9@5@@! Z@ IZT@!@3%Y5"@c@ ? Q!_ q(L&M$N"OhWT@W}|!hw_VT@q@!PT#XTqWT qZTB@c@?!Rc4$@@0! @ ?*$fV$ RqU@2?#YT@BRcC4R#@ xL? ( 'T?(T@4RT@!6&`5@@!` ?`@T?T@4RAT@!6%5@@! ?83T?<!T@4RT@!6%5@@!;p ? =T?aT@4RT@!6% 5@@!7Z ?( ` T?, T@4RT@!6%`5@@!?D ՠ@4RT@!6% 5@@!=2 ՠ@4RT@!6%5@@!8 o ՠ@4RAT@@9?qT@9?qaT@9?qT @95@@!V@4RAT@!6]%5@@!<E ՠ@4RT@!6K%`5@@!@?3 ?4 &T4R.BA74R@?(@4RT@!6/%5@@!@ ՠ@4RAT@!6%5@@!@= ՠ@4RT@!6 %`5@@!7 ՠ@4RT@!6$ 5@@! : բ@@! ՠ@4RT@!6$5@@!x ՠ@4RAT@!6$5@@! f ՠ@4RT@!6$`5@@!:T ՠ@4RT@!6$ 5@@!0 ՠ@4RAT@!6$5@@!8m ՠ@4RT@!6s$`5@@!7 [ ՠ@4RT@!6a$ 5@@!I ՠ@4RT@!6O$5@@!@>7 ՠ@4RAT@!6=$5@@! ;% ՠ@4RT@!6+$`5@@!9 ՠ@4RT@!6$ 5@@!9 BA4R@? ՠ@4RT@!6#5@@!? ՠ@4RAT@!6#5@@! ՠ@4RT@!6#`5@@!@7t ՠ@4RT@!6# 5@@!bB @c@?c`4!RP"B"0d" Ro@CR@BB0т" @!0z N@?5cC4RR@!`3$jw@4R6@w4Ru4RsB @4R@?Ê@@@cF! @`@ ?ַ@@!F b#@RcC^c##B @c@?!Rc4!@@ ! @ ?*-!cCAR@! 5#@*4R6#@cC3 {RS#?!3ac!j38@SA{è_{[*@S!@vF!"a@ 3F@!5[B` RSA{è_ A {S!@?4qTT?@q T?DqT`@A!T@`@! @ ?ց@!F SA{¨?qT? qT`@ T TTTRRa 5RSA{¨_ a@? T)T? `TK&? ATAR-R!RbaR_a@? T)T?@T?TDjR*&ba  R Ra `RBDRba K Շ,҆ ?T&RRRbao? AT4R/+R ba T R RaR RRaJ Շ, >R2+Rbaz {S!@?(@T?PT?TT?XT?, T5R?\T*@SA{è_ b@c@!6SA@{è`@ T@5R`@ !D@ ?փ@@b@cF!D@`@ ?փ@a@! sF``*@SA{è_ b@c@!SA@{èb@c@!2SA@{è R!@xma@`@N"f9|q | z@ ba"@SA{è" ն@R {SR`@"BR!@!F ` @T`T T5R|T*@SA{è_`@lI T@`@ !D@ ?փ@@b@cF!D@`@@ ?փ@a@!uFqb@c@!@SA{èGb@c@SA!{è?ba"SA{è 4xq TT|qTDq@T` @TATb@c@SA!2@{è  qT` @TT5R b@c@SA!@{è  ` @TTR{"@@ _$THT_ TiT_T_ aTb@c@!@ @{Ũ_DT T_T_!Tb@c@!` @{Ũ_ T_!Tb@c@!2@ @{Ũ_(T_@AT @"{Ũ! Y!@? T5R* @@{Ũ_b@c@! @{Ũ @@9qTqT @iTD@`@ ?T@Ҷ Ҹ%c@@@9YFq"!a7@" a@yF!a@ T@`@!D@ ?ւ@BCBF@@ բAB A@?r T@@9q@TqTa@?cT@`@!D@ ?T@`@@B@9_q` T!8@B ?@@b@cF!D@c@#5@ ?փ@@b@cF!D@`"@ ?փ@2b@BeF`@9q$B_T@R@* @@{Ũ_ b@c@!  @{Ũ  !@? T@Yb@c@! @{Ũ մ@Ob@c@!7 @{Ũ յ@D  @Tb@c@!@ @{Ũґc@@A @!{Ũ!D@" ?BC@  {Sc*k[/*C ~av~@2! @a@5 BL@+~@uU!2@?@BL@@?@" @BL@@?y`@T8a!?@Tl@sT8@T+@/@SA[BcCkD{ƨ_ Һ {@ƼA$A &cR?ր @{¨_{Sc[vЁ@Fkz@o`@'Ay"(@cf@9e@9O9d@9c @9o9c9g9k9 7s@?ւ@"`@B(@@?ւ@2`@B(@@?ւ@B`B(@@?ւ@R`B(@@?ւ@b`"B(@@?ւ@r`&B(@@?   RdRc @Fo@@A!SA[BcCkD{Ψ_֡s@?ւ@"`@B4@@?ւ@*`@B4@@?ւ@2`B(@@?ւ@B`B(@@?ւ@R`"B(@@?ւ@b`&B(@@?r R {Sc[vЁ@Fkz@o`@'Ay"@Cf@9e@9O9d@9c @9O9C9G9K9(7c@?ւ@B`@B(@@?ւ@R`@B(@@?ւ@b`B(@@?ւ@r`B(@@?ւ@`"B(@@?ւ@`&B(@@? RdRc Fo@@A!SA[BcCkD{Ψ_֡c@?ւ@B`@B4@@?ւ@J`@B4@@?ւ@R`B(@@?ւ@b`B(@@?ւ@r`"B(@@?ւ@`&B(@@?W SRp {@A$A g*#R?֠ @{¨_ *DR e*oRܨr6^  @6a*D@R#Ac@$qP * R6I*D R6C*d R6=* R67* R61* R6+* R6%*!R6*$!R6*D!R6*d!R6 *!R6*!R6*!R6*!R6*$`R6*D`R6*d`R6*`R6*`R6*`R6*`R6*aR6*$aR6*DaR6*daR6*aR6*R6*$R6*DR6*dR6*R6*ĀR6*$R6*R6}*@R6w*@R6q*D@R6k*d@R6e* R_*RY{S[c*!24!6@4!7~ 5@*[B6AcCSAc`@D@R{Ĩ%qc+oR*ܨrc6[BSAcC{Ĩ*DRc !@7Q4!7L4!7G4!8B4!@8=4!88 4!83 4!9. 4!`9) 4!9$ 4! : 4!: 4!: 4! ; 4!;  4!; 4!@< 4!< 4!<4!@=4!=@4!= 4!@>@4!>!4!> 4!@?@4!?4!?@$4!`#4!!4! 4!@@4!4!4!@4! @4!4!4!@4!`4!4!  5*d@R * R *D R * R  *d R * R * R* R*!R*$!R*D!R*d!R*!R*!R*!R*!R*`R*$`R*D`RSA[BcC{Ĩ_*d`R*`R*`R*@R* Rc*Rc*R*D@R*@R*`R*`R|*daRw*DaRr*$aRm*aRh*$Rc*ĀR^*RY*dRT*DRO*$RJ*RE*aR@*R$ɨr ^ {Eѿ T4R*@{Ĩ_ յ[ R8 4R @*@[B@{Ĩ_Y9bᗟjTaG7!Tk38r|* @[BcC@{Ĩ_ָ@@RRf/ @[B@ {S#@ T*T҅ TTTTSA{èc`! TT TSA{èc %҅TTSA{èc SA{èc SA{èc  SA{èc@  Յ@*SAAc {è\@ SA{èc` | c xrTR*@SA{è_SA{ècj յcerT"A9 qT@@@@?qTAa @BdA@?a @b@c@SA{è2 @!@?qT@D@z_{`R.{_ {@!@ ?qT@3D@4!0@b~z * @{¨_ `R.R_{ST@$@F*@@s6!`@9! ? qTSA{è_ ՁZ@y!?qT[v@c@Bp@:@ ?T*@bx6j@"F`@ [B D@!@cX@y!?qT_ Մt@p@{DX@y $GӟqT qTA(@6@BABA @B(@9BCӔ-* ˴@ @{¨_  @{¨m աt@ @{¨!p@P @A`A{ARSsD@@gFjd@@_ATsF_@a@AaSA@@{̨_ jA@ANd @DMVw@*@?kT@D O9 ! _{!@$qDz!T!!1dG`@#RAA @?rT@X#@/\C@ |ӵ?TAҹ#C$@99{Ӏ@@@Y @C@a0@9q`TE`Т?@[C@ ` Ҡ7Ҡc; B@A@A$@9{ TjAG@?TG@a@b@"@H$@'H$A'!@@2!@@@? 2 ?@Ca @C@ 7@"@y"k%x !@99;@b @2cB9qAT;@@8_qT??@CC@  ոCD@/@2?@G@KR |>K@`5'HҠO@{@  _T:_T@?kaT|Ӭ4`@9B _ qTi! 'CKO@'GC@K@w9 6 +CKR@+GC@K@i ?iT?T@?kaTa|Ӭ4`@9B _ qTcj!RK`W45"@9C+@B@J _룣HT"@9Ca+@KB@= K@T#8JDҨK@iuju9Bc0@yB0@ykAT@!@KTK@5?T4R ҥ @@GK@ @,5ҠGK5|ӥC>K@G|>G@5GC@K@z@I _ TA#@9! ? qTB@c@+@z'#KϹHFG`ZC?hT@bT"@9! ? q T@ZCa+@W@HBT"8K@HE@@!@y@y?kT!@B@@!@y@y?kaTjuiuK@@5G@T4Ru%@4% @ @9@B _ qATg@ @9@! ? q9_ATGn<{S$qSA{¨_{[VSF+"@/@9 6@#@7RK@9ASa*@! ?qTuav@?s@@#@u+@C!#A@+@@B" !@+D!`+AF@+@/@@!a@BSA[B@{ƨ_4A9a4#w@`?rT@ ա+@!+ubv@@A@8A94#@# { @`c FBRD9 @{è_ R;Ң@{S@J@@Vr@ExSA{¨{?{ @,;@ @{è_R:Ң@ {$_r`S4@sBst_\JQ#c !R\@@SA{è_ A9 6 @_T"@B" R_ {AS[*@***?5A9sbQ!Q_kTt*9SA[B@{Ĩ_v4@ T@7A929  @_ T{S!@!|A ?rAT`.@"@? T`@A" @?`:@`: RSA{è_e@#҄"@a>@`@g2@xdh@$iCс$bF@ @x`B a@h&@b šB ǚx "@G)@k*Hxd$˚ c Ěbx "@ xua6@#yuˠxb @@?b@a@CA xu x5Cd@a*@xuEx5d6@B!`?ֵ@ RSA{è_ R_a@ xu"x5@" `:@a:" A9B07`@9b QB_q TqTq@T R_ A97DR_j`Cz`T{"R#@  @`?`A9tx`9 R @{¨_ @B@96@"@q_qkkTT@ @$@" @cBT"RT@ @_T◟*_"R*_ A9(7D@C@dџ (TB@bB_85{ `F@@@%RD@@8#a@@ |@@AA,@9B$ah`8A4h 8_aT R @{¨_  R_@!D@"@!@``@9 QqT`@(@Ah6__{@|@N(@h6{_ {S@!@k5b@@!Z SA{¨_{@9#(7!&!`9  @_CT?@ᇟj9#@{Ǩ_@c[UӳS,@@@@A'ZBӺ  4Zҹ*}ӡ3!; _Ts  R7t4_@TbR{S3@"@@ښdx`dx !TA" @97@D@$|@$TR |@@ ||cTqTZ{#_TsE'@SA[BcC#@{Ǩ_4_@Z*}ӡ3:@Һ'@SA[BcC#@{Ǩ_R:Қ {7A@/++A@TDR@/@{Ǩ_ ա@!6@@T@7AA" @9@T"@9AT88@#Rt T  T $@9A@{pT?A@"(@9H`_qR!@4@7@! R"R@SABCD/@{Ǩ_ !@T@6֚@7AA" @9T80@#`Ru"R@B@D@/@{Ǩ_ ճ @B RC@D@/@{Ǩ_֢R!3@7@! {R!6 b@R!RC"R @{¨_A9BRB _ qT"R*_ @"R`T@@#d@eR@ƨZyFjaT{S @(@@5A@T@ҍO@aB@(@!@@"A5ҀO aB@"R@ @&@y '@y$@ y*@SA{è_֢@BA@c@T  A@?TB@ RR29"R{S3@!@b@!|aOO`&  @3R*SA{¨_ `@R*SA{¨_ Հ @@4|}9   @_T{SA9[v@ BqiTR 9 j78@@C Aa> RSA[B{Ĩ_ R_!R"9R@SA[B{Ĩ_{ @@TS!@!|A ?r TA9@ Bq)TR H9 j88@jc @bB@x#"@ x"` @a.@` "@a?MT`.Z *@SAB{Ĩ_ ճSA5R*@{Ĩ_ RR`B9BSA@  @_T{ a:@7T`: R @{¨_  R_{S @@R`@' `@% `@# `"@! `&@ `*@ `.@ `2@ `6@@T @tv@6@ B@ s@SSA{¨_{SS@[aFc"@G@!@M4@Al@@?qTsFG@a@AASA[BcC{ɨ_ ՠb@9 ?(qT@C@bTu9B2bT59|S(q`Tv@95 @@@ĂI*TaB  R@$A$# aڄR`-m @*@7X7@ e^T @RR TR Ղ@C@bTu9B2bT59N! !}ӂ8R @@* R( R `Tk @L B  kD@q` @9_j T! Q?qTR"R5@kc!R+ @  @!L R k78b  +@@kDkDRKk+ kDR+@D`@9B QB_qT R_ @b(@b6bX@yB_qT{dt@ c@p@r` R @{¨_ {WF@7@F /`c@9|S 5@b@ `4{ATD @/@@R$RR@;R`@9! Q!?qTF*7@@AʡABC{Ǩ_B"R#8@!4@a@  D@x|D / @3@"RD/@$8@ #4@@!  /<  %`@9 QcqT"A9@BBQ_qT{S@@H@a"!@URv@ 9"RfQR9T@`: RSA@{è_֢QB_qIT"A9B2"98A9b4q Tq!T"@B@B|@B$A9b6 R_ ն@RSA@{è_"@BB|@BD@6 R3Q Q@HuR "@B|@{[S@'Pks@9Cc@cLG9c?@_@o{@' Sgwub@9@k~S@TRR"R@@:x@8A9A$sq@TR A@5_"DT_8qCT#29@@9B@5c@9@9@Qq@T9@:c@9@QqiT5_qYT R9_q T_q7T4:@[@ c@9Qxq[|9w@F@`06A!LG!>T@9 5A9!29!c@9a4 qq:T BG@JCFӣW 6@@kT g@92 g9g@92g9 6c@9qa T Rc9!c@9VRSA*[BcCkDsE{Ϩ_  A9%Rx 9*SA[BcCkDsE{Ϩ_RR#RK:r_qT @@[:|@_@@ @!A9!2!9!A9A9#0qLzT! B?qT @Rc c@_!R@T_!4> q9p ՠ[@@@Ts@!A ?*w A9<4s@"A@?r@%T"A9{`b@9_qR Bz@z7T@G@7F@`7`b@9"A9 _kT_qFzaT_qAT@[@[*@ N5@*R4S4R!9c !@>R R@O ҿ[  5`f@9@ T A96c@9?q`ET @ I R7 c9`f@9 q@QTs@"R@w@`? A9!A9x 9!x!9x?9 9%R?/&uQ4@&5 g@9*}4o@ R@9*`5@&4 c@9qTo@@9 4 բo@ R@9k@ R@9@  `R* r"T R@@jkT c@9 q`4Ts@ xA*C9[@*g@ )@?rTM)@@@@R?jTR r`TR@  R *5 A9@6w@K@@$@@?֡S@ R@ 9 ՠ@j Td@ /@Tw@R@@?`@!/@@@IT /k@ R 9+4@@5 c@9qATw@*84O@@g@LG7@!Rk@9 c@9q`T%RSA*[BcCkDsE{Ϩ_  @[|@DB A9BLGrB@)_q 4S@!R qA9 A92 9A929T #@!TSA[BcCkDsEw@{ϨZ ա84*{*c@9 R3@Q9q@9ɿT!5 *4;4 A96@G@FӠWA9ARB 39@@9`5 qT!A9!2!9A9!29 R@G@@6F@7@jT 4 c@9q TIb@s@tA[@b ?L R 95*@@g6@*@4k@4 A96 @!Rk@*@!c9|@ a9B`6{@4!A9?9!x!9o@!RA9c@9?q T?C%Rc R@ Հ*@qT a@? Ro@@95 c@9q@TO@@g@LG7@!Rk@9 c@9qTo@%R9<@@5*@`7@Ds@#@ Rc9R c9w@8`? A96x 9%RA929 R)+ Rw@G@`6F@6S@ RR 9@*#B9bf@9r #@T A9QqTs@"R@w@`?;5v5*@g6@*4k@5*@!@?q4w@d@R@@?֢K@ /@@A@IT@_@  @!R_@x@|@bM!c9 A9c@9a9_qT?CV A96 @(@qT /@{@RP@5 c@9Rq!T@R@ja Tq@YR4s@"R@w@`?A9A9A9Bx@!tx999@# Rc9@ 454%R 6WN c@9@c9!c9`?8`f@9 q T@"R`? A9!A9x 9!x!9x?9 9?/w@@@뀶T?c9?R!6!@[@S@ R 94s@K@b@tAO@[@b ?֡g@%R Rk@ 9?R!8!@nR!@:!@[@bСR`-@J A92 9i A92 9*w@@@Tc9)R{ R"A9{ {A9 `@97 QqT@@!,@!@6A@@?rT@bb@9_ qT_q!Ta@? T@`?bA9B06>@A977A97b@9 q`T>@TA9!x9<@aT R@@ @@{è_ s@`b@9qT Qq)T`A9a"@22`9?@T@ @@{è_ s@`b@9qT QqT6@@`? `@|@@@q@T`A9a"@2`9?@aTaA9?rTr T@`A9`7b@A|@ @@qT`A92`9 aA9!r_q4@"R`?bA9bA9aR! ?q!Ta@!|@!D@!(!Xa5B2b9aA9!r@9eA9b_q TbA966@@@qT77(7@96(7cA96!Q@?q⇟`?bA9`_0qT7b6@@B0gB[_T մF!R"9}R`-A97R`-d4!!LG!@ _T`7 {S3[bF9C@?@4rTA9@5sF*?@a@ASA[B@{Ȩ_ր*@A9@Aa6@R95B@@ A@ BRb@9?jT QqT @LG@ ?T"8@_T X@yQx<4@"R`?ָ@ R"9  q!T չ#@9?q@Ta5C5raT RR"9C @94A94@"R`?֠3@`A9@5B@#@@@@ABA94*@@9q)TR!;*@R@ R R"9Cw"@`T*@ G3@0@A@"@_q#@B 3@BA@"R {"@B@U@@qTR*A{Ĩ_ ն`@9_q`T =rT`@b@9?q@!,@!@7ATA9A97A9(qT@R  qT`@ @@<@*B06 @@4R@*A{Ĩ_ ճ @@ A9A92907.@6@@``@@@?raT RR`"9B @ @?qT@*`?A9 7A976<@A977 @T77A929B<@@A977CA9c2C9rATB @R!@<j@HA9-T6¦A9_@T@@bArT"@T`@HrT`@9_q T"@C@9c7A9(6 @T R_ A9@`T{S@@a@>ArT`"@!T@$rT!R"9 RSA{¨_@C\@RT@`@_@,@`R_{ !@O8@ @{¨_ R @{¨_`@9_qT0@{ S@c:@cc(@7B@B R @{Ĩ_ մւ@Rf@!`>~w4@fa~@@?ր@9rATR @AB{Ĩ_  R_փ@R!@=t,@a~@@? @RAB{Ĩ_ A9 7 @_T"@B" R_ @"@kT"RhT@#@#TT@ @_T◟*_{  +F@`@9"@?qT@b@9qTqHT qbT4@F@`06@Zy86@|@`@@T'/7@_T@@HM4a@`Xu9@'@9|ǚ`7.@@C@@'@/@R!!F?@!@A @@@+@{Ȩ_ Y@R9!@ 59@! @ T/3  ?T3@"T c@9|S@4 @4*@"@b@ 57@@yx76@@_!!T8Q<q T9s (T3@AR`-JqT@@|@x3@ RC@@'@/@3@}R@Ro@'/B&BR`-7 {Sks@`@<`5a@ R!SAkD@{Ũ_ֶ?@*HTj5e4@R@BSAkD@{Ũ_ "@@*B Ra @SA!!@kD{Ũ_ R_{S4F`@9"@_q` T@9`A9a5`5`b@9@q'@@A`T@@9!?q 6T`@+ ?T`A9rT@ T@@@9q`Tq OT`b@9 Q!?qITQyA9!R?qILTaA9qb.@G9Tq?T6RqiTCD@56RF*_@@AʡfSAB{̨_s@`b@95ab@95 բ@a@B@9"68OGB@ ?T#8@XT"(@B7!|@!D@6yA9`"@ =TaA96Rb.@`b@9G9qT qb4Tb48пOG8{q2T`b@9qAT qB>T`4 bA9/ 6GB9C9 tG9aA9K9`j@AR@@rd8k!@9 ,Tc"@,T56aA9?@!5T!@!0A9,4@D@?r4T@ @9/@5aA9!6CB9b|SBQB_qhTc DR(qRc?|RBC C9BR! ? qATCq TGB9!r@ TCB9B|S_qTbb@9_qaTbA9"7? qPT?q@OTR!b@R@u R! R@9CD/@Z AA ?rT`A9`6aA9@a6@9(6@!@@?q>T @9a?qT@dA9a@@D7b@cq?`@ AT@'@0b"@_@T!@#0A94#|C8УOG!@ Td8@1TaB@!7ߟAA `:@G`\@#k<@9 5T @D@`B@@?DAҠ@@?֠@`@t@\@a>@@\@T@}_ ٚ|z8T_@a<T@!@!,@ ?@`"@7B@B4@@?֢@! @d"@7@B@!c\@B4@! @?֠@`\@"`A9 37ARjT`b@9 q`2T`B@ 7@aRc@cZy?Cja6T@@3ya6@@Ҁ!T3Ay@23yc"@c@Bk5`+@x7@94 @95@8@!,@a@@e@4q%T`@!TB&B!KR`-. 8OG!Ta@? TaA906CB9!|S?q`Tq TCD@/@ a6@b!B?AT@!@@?q T`b@9qT@b@9qT`A9q Tq TR!`"С@@BLGB@ @T|@b@Re R R@9'@L qTc"@a T 7/c6@@?#@ Tab@9@!Q!x!?qC9{  ryA9R`b@9{@a;@A@1T@a7@`@A@9?!?q`Ta;@cA9q!@?TA@!@!!@ˠ?E `@AsA@ ?b@!R@@! !|@?7 ab@9?qT'6/b/@ RR9CD@?+qT`A9'7CD@`@@D@77%R`-a ա7/E A hr!TcQC9 AoA ?rT@ @9q"T!@9R! B?q`T ?q qAT@A@9!?q TA@9! B?q!T`@`D@@7`A9Ra.@G9*@@Ra@R)` R!8aX@y!!Q!x!<4R!?*R!@b;@@RR; R@9CDu*/@C*Du@m@r T@Tq T`@R  F @94R!@b@R@eA rT@OGR)9ҿ cWc@4 R 9`B@ @3y@@9@'63Ay3yna"@bh`8ah 8 c"@@!\@|"h 8L"X@yBBQBxB<4ACD@/@`A9qT R3yO_T@!@! @ ?@`"@7B@B(@@?֢@! @d"@7@B@!c\@B(@! @?R!  R3yR!@}_T@!@!@ ?@`"@7B@B@@?֢@! @d"@7@B@!c\@B@! @?/ B&B*R`-/RB&BR`-/JB&B`a R`-/BB&Ba?R`-;c0{S3[`Fs;@@Gckk?T|@9qTTOqTgq!T`7BR67@@c(T@T#&g@{j<8`4@!H@rT<RRRsF*GHa@A^SA[BcCkDsE{@c0_֟q!TR`<Rz B!@.`4B! #( 4B!@#"4B!"4B!"`!4B!"%4B!# (4B!"*,4B!`"14q`6Tq8Tq;Tq?TqDT{qIT! rMT!raRT!rVTa!&r_T! rcT!!@-rXTR !@a@9Rv RgL շc<Rm ÂwrT@!H@rT%U ` @9k@q`rATRBÂMraT3@k@r@TG? ` @9k@q`rT?@ˠ ` @9k@q`r T@k@r`TC@I'T ` @9k@q`rT@k@*~rTC@?'T24?@ ` @9k@q`erT@k@WrTG?` @9k@q`Br@T@k@*3r`TG?-4ǟx` @9k@q`rT@k@*rTG?24ෟS ` @9k@qg`rg@T@k@*grT?@24g@C@}@&` @9k@q`r`T@k@*rT?@{24C@kk`@9k@q`r@T?@ `@9k@q`rT?@`@9k@q`yr T@k@kr`TG|?@ `@9k@q`Sr`T@k@ErTC@*k@)4?@ k@4?@(i k@@8q(&rT@k@rTC@$k@?@%4A Zi k@@8q(rT@k@*rTGʠ6Ҡ3i k@@8q(rT@k@*rTG ?@$a@9`?qTk@rT@k@*rTGi k@@8q(rT@k@zr@TG7i k@@8q(br@T@k@*Sr`TG?4ןi k@@8q(:r@T@k@,rTGˠsC@|@la@9`?qAT` k@rT@k@*r TG?4য়F` B R'??@;!`R R RF0A ,) @T @cd`@9|Sd4C!xa!@"`@9@QqiTB QB_qHT" @ALG!@ T8@_T_ {a@@ SsRխ3*S5!!LG!@ T8@_T @{¨_X@y!!Q!x!<4_X@y!!Q!x!<4R{CS4[ @FR%@'#R*``9#a@RCR6AO9@9].rT#@cA9$RbA9af@9c2`A9Bx!2c9af9b9?qd9Tt2`9@"R`?֔F'@@AASB[C{A#@_ տ#!R`-_ 8 { 3@bJC R @{Ĩ_@c`! UAO9B@{2!E`A*!,@9dxcRE A!,@9xO9`J7 @AO9! b7AB R @AB{Ĩ_cc@BAAd*! EA!,@9x`N "@D@@qTR*_ B0A95{ r Ta@`@94,@q@AB@2(T`@97 *!@E *!!yE ĢA*!`!,@9dxoE!Rx*!!gEĢA*!`5,@9dx]E`ŢAd@*! 3,@9ex|QE*!`KE ŢAc,@9xa@ l`@9@(7`06A@`9`7r@@?rT`@!RAB09ABR* @{Ĩ_֡*!@ EAt@#,@9x! @9`@9AB@! B2E¢Aa@B,@9x *!"E ¢At@D,@9x@(@9q`{C"bR@S[c ГA!@dO9tB@| *B~C2bD aC!@MxaO9VA7bO9й#2 _{! *!DcAc,@9CxZr`T`O9` 7*#@SA[BcC{Ũ_ չ#@R*SA[BcC{Ũ_c` U@ h"Rr! DaO9^(7@9q(T`O9c !`*{aDaA!,@9xb`O9/6`O9c! *{a|DaA#@!,@9xj*! pD f" @_T R_ j {5@ sB@qT3R*@ @{Ũ_ ոRbR( `@9'qAT@A9_rTR" T_8q TZ29z 7b@9qT5A9@R  q 4 TA9A9!29294@A9_q!ATt29#@"R`?@9q T"@?TA9!!Q?q TA9?rCzA TA9 7"@TBC@'@ նBC@qTqaT@AB@A`@9!Q!?qiT@ Rb9RT@`9`?ְ ՁTB CA9x9A9@R39Z RBb9aXR`-R" @BC'@cA9!29r@TA976>@A977"@TCB@'@ @@{Ũ Հ@b9)m@8A95@TBC@'@4 {S4[@F"@7@@?q`TRF7@@Aa SA[B{Ǩ_@  @ @?T@?!T Rq8a@#C"!>@ Q1HT!8@ LG@ _Ta@2@!@@H@R=T@#@"@@ RB7"@@9! 9cC շ@=@ HcC@9@R:9@@RcQ@@ @ @T@!T @__At@!@?qT? qT R_  R_{S3[?9aFA9"@/`7AR5RjTb@9 qTsF*/@a@ASA[B{ƨ_ *@R@B@WAB@R@ @9?qaT@94?Cr`T?A95B@a@ @?J3B?A9U4@"R`?ַ@{STt@N@SA{Ǩ_ֺ'A@a4@s\AҚ.@A@R737@ 4% 48[BcCkDsE:@:A@R77@`5!7@r@TY4N[BcCkDsESA{Ǩ_Z@@:@a!@" .@:R;|4N7A@!A "7@r@T.@@@DĚAR<$@9[ յ@'@z յ[BcCkDsEt ґ{ `@ 5 Ra @{Ĩ_ִs3@*PaR@RA`  մA{SB|@HrTR*@SA{è_ b~@rTa~@@!@!X@To@*SA{è_ A9b(7D@"B@{S`@9[ QqTuB%R@w.@~@ ~@R@!@B!A!A&,@9"T`_T@낂AHTdF@!˅@@'$ƚ?bThg85|`_T RSA[B@{Ĩ_ R_֠R`-  "9*{S!8@[@7t@+A.@A@@? T:@A@@?TR !@ ]~@9 `R R@SA[B+@{ƨ_ cA#y<@ @'Rx$@9@dOBTT$@*P ?`A@$@9LT @@a@'@ #@ RSA[B@+@{ƨ_cAb#y4@@'@@9#RB_qT*_ % @*AT$`@9qT$B#҄x@c ĚcTcAӄQTEx@kBTDxF @$,@'A9#c"C 6@q TkT R_B|@B@BABO9B7{R@ S! t,@a@? RSA{¨_ {B  s@`b@9QqiTc"@R`TcA9# 7 @94RkTdA9Rd74R@6cA9cc4RqT qT!@#@@qT@ @{¨_ R_ ,@@A4A`A9 ?rAT4RaA97BR R?jATab@9? qTR@/7$@9`{S~ `A9cdQqTA9 7A9FRBjT`@9 q@T6 @T%@9qTA964#@d@@qT$@qLTc,@!@?qa@!AAT{A9!A ?r@AT"R*{¨_ ե7(7%@9%6/7"R*_R*_jT#O96 H@$@ @(@W6R#x@! @_kB a#(@CW7x_֟_{S@`F@7ҀB@q`TRsF7@a@A!SA@{Ǩ_ֹkcQ@T.@!`B@ZA?`BA^@"@W@9z CAc.@"@c,@`? RkD"^cC@69ɁR`-- շcCkD@ck{S@9aF"@?qTR@B@?q@T@' 4a#@v_@' ՠ.@Aw@9 ?֠7@PT\T`Ta#@`_@T@'@ 5[BCsE RsF?@a@AaSA{Ȩ_ ՠ.@`+!`>`.@ *@! RB@/\AAY(@>>*@ ! 9>*@RLG@H@@ !" @# @ATZCB8@_`TVCB8@_T$` յ@@QTVCC8@TZCC(@8RF8c2@C( յ@+@ բ@BQ (R*@c@cF[BCsE c_@b#@Ba#@`_@[cksJ { FC@?҂r T`@RA@J@9 TJ@":qT.@!`B@#+YA= @`t_@T!A'  !Ab#@`_@"@9T#(@.@`?ֳ7@!T;@TJ@9@*+@AkDkD@+@.@r T!@R@KF?@@A @@@{Ȩ_ִ@#@+@ յ@@k+ ?_ TAR!AD@#@k@T_ x@Bx@__  R_*R@)@ D@07#@d@@q`T R_@dH@Pu9ck!T{@*@"Aa@Bx@@?r`T J@skзcR9OG9C c*@d q!T`@4@9A06ch7a:@?T/*?av@!L@@T4s@scCkD @ RA@{Ũ_ R @cCkD @ @BAB|@b  R_{$RR @SRG"@SA@{Ũ_ֶR`@9qT2@'"ˁ@$RRR"@3@'@CSA@@{Ũ_ ոC@ @SA@@{Ũ_ _8$RRR@!  {s kF A9C@!?q`T?qTR`R2F*A!@AakHsI{D _$A96@@7@:R D@"@a@06 @9qT@@@qT`RRRR 0`@a@SA! @6RD@7@Tҿjs8`5@@TB@?`T `@9?q`T?qT?q@Tj38ZCs(TA5:RSA[BcC!@!@@?q`TA@U`!RrT$BB@@@@A?r`TAB@BdA@?rT#@@c@AC_!T@B@Tj!8!T@ A@#!RrT@)A9q#T"4E@@06DM`a5@Ҥ@Xu9!A@!A!@9G`7,@@@T@  A@K@4@@?)T@@@(@@Uo ҋRRC @ TbE@B*@?r)TSA@@R@@"+@B@?!TS*[c +RSA[BcC ճSR[c 98A@7sK@ t@A564@$RRR `@9 QqTw"@h1`j=r`Tj78RO9R@9p$r`T @9qT`*@"2`*s@`K@X@yq TH4@@@qTc@bR !`vZyBVjO: @ `@C҃0@D@@a\`?T_CT:@9u@5A@94@@=s@s`@@A~ 5SA[BcCZs@@`v@y?k`T;C?qAzT?C?qAzaTR ! av@y@`~Kr@T)@@ZI5u@ R?KOA@Zu9!@9b@A7`,@ ˠA@`5`@Zy06@@s4@Q$ L%!@ @"`@9_qT"@B`@9!@_q@@@pT @@D@}1@2`@t@z;@@@BT @9q`T`+A9 7@`@b)TкLG?@ coA@ ?b@9rs~S.T @9`4 6q@~Ts64 q T*q.TR@R*R-4?<1 AT?81anTпLG@@@(@z@&@81`,Tk@c?r`$T@@6b@9 q@.TпLGT*@t2 SO9C9K9AӠG9@O9@@q&Ttu@ TwSDy8`1x7A@qTLG@ ?A0TAb@9  ?r/T@@LG?롃A *`j4OCG sK!rTH9 5@OG9qAB@ B@@`@9QqiT@A9qT`@A`AAq㗟jTQ R@@@?A!O9R@Ң@@9"r`TA@ `@9QqT@b@9QqiTAW4@@@qaT@AAG@ A_jTA5@(@@`6b@9qTz@@A_kB b@@@q&T @ւZ#(TA @96 @9q T`G@7@KAR?jTARvK@(@9q`@AR@R*@6@4x7!@9A06@h7+*{Ò@cTA@!$ӚT!ˁza$d@92$d9B`Tv@!L@@T@@@`@Zy07@@BR`?raT@@@@@f @9@7q`T @9 6 @}DN@@@q`pT Ru@?KO ճq`KT34 q6T*q@TLG@+`G@O7b@9 q!T @9qT8`"Rr9` q`1T*qbT4@gZ@yqTDb@9qT@@3`@Xu9!7P@@@ەR ! @@ˡ@#hA`5 RAb@9 @?r@T@@@qAT>@@>@`@AO4HCA_khT_q[TA@Q R@@l@iSy@!A!@@?@R`h78Sy7@b4`a9@"@/@@RLG@ jG@>6AqAR_jTA929?CT A9`C 6A?5@vAAqA*4b@9?q NT! Q!?qT𡑂R`-\ABqZA|@ZZ!D@!(!X5Ax@k*@o4k TAR !Z!R@$ ! @@4A.@B5ab@9?qHTb@9 r`TAA_qA9jT?qKG9jAT5*(qTaG@SR?zs_kTb4GG949Af@9F9*`@@c.4@(@`G@Ch6!@9!?qBTAA9\W3j@999?A4@RT`@9qT@@@7x A*4"@uTA9QqT@"R`?֠OA5OG9A 4b@9qTA@4A9 6s@ @aA@A4@?s@A``ZyH7bZy*B$FBC 3cyrOTRSA[BcC?$@TCG95R !Q@.@@A+@.eR !BA9@*xAD@6A9`(6 @9@6A96s@`Zy76@X@`ArTR@@R*|}ӡ #@!R@#@R`?ֿr T@@@a@b@b@{`J@b@a@wb@;+3a@4@R@@@XsY qT@t "@"@b@9cqAT@"@cb@9@@` c@T8@?NTbG@AR_jT@@ˠ!@9!BӋr`T`@HM~4AR AM 5 `@TT@s`@! ա@skCT`'A96f@9?q Tt2f9@4@R<@`@9|S?q"IzWT@ !A"A@?r@aVT@@V4!lA@ ?raUT@@q@TT% R* @9 6`@FySyY6@"Rrn7&`G@Շ6"@TA5A?5A9 q22@9?`T A9'7 @9 qTA9rTA4?T A90qT@A9@+@7Rr+A;Tp@@9qoTs29A 4A9@TA906<@A977 @TAjA@@@ @y?kT@i@@! B@B*R ! @* R\A.4FM5?Kb?KEuK@T*@6@*b]|#Tc_"@BhT!2*@@`@a5@R.qA@MRSy@ +R ! @@#ˢ@cAcA[ RuA"5A929 A92 9?T A9'7bu@W!+@`@!@?AT@0A9K5r?6Tu@O7r@Tѯ1Tc@A"@Ac,@D@9!`X`a(@H/Tcvҹ_*CߟTTa@A"Xu9lS3"X59A"@A@9sˡA *TC(@`?֠A8T Tt TA<TAҢ+@*H@@T *@ Xn@ A `@A3B*)A3B*" AAҢ*@*@T* Xn@A `4@AAҢ*@*@ T*  Xn@@ X@`@A|AR ! e@*kTA R  c;R !rAA*@@Kb@9qTAAqA*4*JA929 A92 9r`Tu@X@y!!Q!x!<4?@ R A9296x29@`@@!ˡA! @BO9B@Ӣg e@Rj!8_SW[CS_#C[W  RS9_9W9O;Zr_T@[G9@@FӠk5 A`A9@e7ARj``@9aT qdTAY `@9QqhT@!@r[TA976<@A977 @T!<@ A977 @TraTA@@\ABR @@a @"@@"S[cA@@@"}R@;Aw@a@a`@`J@a{@a`@/@,@A@4R@@XtS' qTf@93f9s@ab@9?qAT`@B#@d@9iA`b@9B#@q!Tu@_A#@b@9@ A@kT@"R`?r[TV@E}Ӿ`vMD4 A9Rb9I7 ``@9qHT``@9qaT@s@@?֠ A$RCC9@A9#`@ A`A9*#A9AcA*3b9 A9B@*@*3#9A 5@F5 @9qBT@ *o @A@o@@"ˡ@`!I[@_@;@C@HW@ @S9W9Dr =T[G9@A4@ Y5b@9qXT A@`@9 qATb9@@@@WR@`9@@`?֧ A$R@CC9A9A9*AA*39A9F@A9*@* 39`@A5@15 @9q0TAAR !d@*@HC R/AR !t@R39V R39m@@@@ @9@?BzT@@}`@AT@wb@9 qTA9A ?raTw"5 @97@@@qT:RSA[BcCOA 5b@@Zy$FA7SA:R[BcCc@@5`b@9u>@ Q>qTfBTT Az`@_T@@@BK_q+TTzb@T@TBT!?Tz`@AT@TT`A9w>2`9>@` <@Ta"@<?"@ T!TrT"@ T`"@Tr!TD!2 3@ySA[BcC- @977!@'1wK@Д" sNGsB @rT@9`4qT@'`@A@l@Y@9|Fxax 6*@7:@T@v@ĂbOrTr@Z@y!R 3ZyTT*SA[BcC@ R ՠ@s T@Rxs@%b@9! Q!?q(T@Wj68@RRR`@9b@9?kTQ@@?T@@?T@"R`?@b9`?`@AҢ@_ T@`T!@ ABn AA9 7  AA97@R@ @9qT``@9 qT#C99RRLGc 'rTA  A9rc@ x9 A92 9@T @aTrT A9`@|@D@6` R``9A A `@9 QqITR !`@@@@3k@@9q@>5k@3@#C99 RRLG r@TA@`@9 qT @a@cc7'"7@c@`@ A`@@ cH94@"R@`?{@@@qTB&Ba"R`-@@@@@SA[BcCR !s@AP`RkB&B!gR`-@yT  A9! 7`@9RCQcqT*_R*_ B Q!RB_kT@8@{ 0@sNGB s@s`@@qaT`J@ X@yB_q`TzrT@ մ@ R @{¨_ {CSc`F@'҂@R[RRK `@9 @ Q!?q)TB QqT[B RsF'@a@A SBcD{A_ֵ[B @` R A96A9?qT!R9@!LG!@ _T!  Rb@9 @C@ @R LGCR@ (AO9@9r@T#@#R"A9#9B2"9[B յ[B R!@ [{CS@#@hF5R+@ҥ @@ ?kTsF*@a@ASB{A@#@+@_@G!AC"@@?r T@,@@9?*0A9w417q 1Ty/@"RH@*7@ T7r T/@S2S@ @ ՜@0C@9qaT@@GAp@9*NS@qKZ@E O5HB9O@`9`BWW@R`k58u@RRRX`@9 Qq)/TW@R9 @RRREWW@ A9`7 `@9 QqTC@92C9RR@@a (7!?qZT@96@RFT?@`Z@0A9@,5b7r TC@@@?r T@0A94@HC8v5@9f@i6r@Tj@@9qT Bjar`T@LC{5A@wvT@@ (6C@O9@6C@C@!.@0A94?@!!.SÊ@Ѐ@C! cHCs9qcsD9 59c7@A_+RR@@c!@*@!@B@!#o$ _l@'AN@@mR@9$?@@!R@AyDy@DH@!AkR) TB@!|!@@_@ @TY@BG $@ 9@YG @@R !@H@)aTD6@9*9  72@V UR5r:R@D@j!T@H@X@yq`TW-W@@@(@?|9B@^@!2FT6@9q@TD ՠC@O9 6C@C!.@@9 /7 @RFT Հ@96c9C!`"cD9 5na;@LG@ ?@T (@D2 ( ՠS@@S@@9! sC9 5@9@7@ :@| c@#`@@9qaTRWW@@a@wW@W2W@;UW$W@A!b@B@yysD9`R4D/@?@ !@-@@9@.7g@@!H@"R(T@9}aEr@T@c@H@"R(@T{@7rT@,@,  )rT@@+H@"R(aTM@9?qT@9a7AR`-@9 յ@5w@@I4?@!!/-N@H@`5@uH@9҅DRr!q*@@ 4@,@d!p*@! B@a S #WS@`\`E@9C 6Ҁҡ7@_`FT@H@({W@C}@9ASS@ 6?@R҄LGCR@ @AO9@9r To@#R"A9 A9#9Bx2# @"9 9?@@QTARҢS@a W@cSHS@Y СcLG@  @4.@R@?@RIҢ@CR @oAO9@9rTo@`A9u@x`9`A92`9 R`9` @@.T@!R!@9"@y@!DӣW!/yA +y@ҿW@@@@5@S!cR`-@S@@@@5WW@"S@Wa8@H@{(.@W@`Ҡ{@b9s.@ `@@W{H@'W@`@W9#W@c@`@@{ յ@@@9;HD@/@`/7~r!T 4@@|C@O9@9rTf@fZ@z@*DL@9lR`-@^_@H@"Rf'TߟrT@[@H@"RW'TaߟrT@c9C!cD95F@A@RRRA9@1TJ@A@RRRA9@0T!s+!@9`!6@9qiT2@4 @T@@qaTJ@ X@y!?qT @@t@!@?@qaTRjL(, +@@92 +'76VrAT@f@5@R'yR @͐T@#2FT@(@/@Ac'u@@@qT"A9qT@AWW@5d@@@_@T+K@@_@ T W4IW@{K@ qJc@'@/@rT*raTD+@Wr@W@aT@WW@RR?@!`!**(@@!2@(^D/@iҀҡ RtD/@@9 7a(@!2a(` @r{T*rzT@@P@R`H@:&`T{W!LR`-W@@R*rvT!ruT! b*`@9` 7!` [*`@97?@a! 3*u!8@LG@ ? uT@H@'@9@ (706C@A ҡXrpTRroTALr oTC@aAB@9Dr nTn@bp<roTh/A0rkTҁ*rTV!#rjTaraTI.rTҁrT=ҡ rT6ҁrfT@9ޟrT&{ H@[34R s@s`*@ qaT`v@@qiT qTrT`*@W7@@ @\[B{è_ { H@3Ҵ4R s@sb*@B _qaTbv@B@_qiT_ qTrT`*@W7@J@`3R@*@ $qaTv@@qiT qTrT@@B@@B @\@{Ĩ_ @`B@ {"@B@@_qFd@ҁT@SVA¢@@?ր@0A9`5O96w@0A9a4',@!`!|)@*@@x6@|Cw"A!@9!|"k^?@RâAB?c@9b|;@@9?T (7#07sa! 3Z)35@VK@X/@&%7@<@a ?@a!`[AE)1^@(!T7@_eA,@?aA^@!@9"@TeA(@?֠[@tTTT#TAߟT_@%_ ճSABCD/@ RF@@AaV@{ը_ֳSA@ ճSA@@}e @9!`[B9%4R@SAB'@ "^raT`aR`-![ տ |ӿ  0 k @o[ !E95c@#Rk@‚Aa_!"!/7(7@Bc@@d#T`R`-k@.A!(@9!|S!P!|@#b@ B(@_@?b@ B(@@?b@" B(@@?b@2B(@@?A(@9+ q>T@q@Tb@BB4@@?Ab@!(@9B(@!C!@@?`R`- H TTAW@@$@w!X`@HCa 5A`a!!C(\@"_@$_>gAyB`4ZK@$KugAyBTg@@RH@$3@  Հ@skTrTsE#@ {@T8T/@R'@SABC a!!'\@g@Ic@RPToAy4C@Zn$CoAy"_T `@k@a չ#[@R+99CR$ @T#@+@`R`-o`˃R`-U@a!@ [T'@&v@ !Y@!|"^@!}? #T?@A&Tb@B4@@?b@^@!B4@@?ր@9+@ 76+ !TAA%(@9@!"AӠ_IT@Q"R@ |@ T qTQA !|@B [|@w}ӤҤ7 g{7@ e}c@R˦(7@Rw@#c@3@w@k@Ңxa!@Úx`Bx c@Ts@ҡ@xwAx7xw!!T?T`!ŃR`-xLÂA@A!Cӷ#c!#c@7c(@_`?c@7@@Ac(@`?c@7@A c(@`?c@7@@A0c(@`?֠g@7@C@@3 7?֣7@cTw@a@xx$(@s@7xx?֣7@3@c@_@"@Cc!`' _@CA(@9 @qTb@{@B4@xw@?A(@9CT qT{@xw9q!Tb@{@B(@xw@?{@Gk@EQqT;Ҡ@{@;k@9sE q!TQ"RA B !|@[|@w},`aR`-7@q Tb@{@B@xw@?ֹB99^@h987`R`-7@c@`𡴃R`-q!Tb@BB(@@??aTb@B(@@?b@^@!B(@@?S/z?Tb@B@@?b@^@!B@@?ֹqTb@BB@@?bB&`B`ʃR`-bB&`B`R`-/bB&`B`R`- {#@b@@ _qTR* @{Ũ_30@c[VRNGB  s@bF@77b@B@_q!T@a@A!@9A0@9?k!TtJ@t#*@B6:@aTv@#L?r T s@Z@y 3Zy@@s@@#@[B3Rbp@c?* @cC{Ũ_ * @cC{Ũ_ִABC@ F0@'0@H'@@T d@Tc@@@@T$AdA@ d'0@FF0@&0_0#A9d0q T$A9EA9*BӥBӄ*3&9HA9gG&A9%A9*@@**B3$9*FA9DDӄ*3)9DA9G*3#9*DA9c@ӄ@c*f3&9CA9cBӥ*3(9C`@9q`T_ @C$@0@-T$$@?$C$@#$E$4@C(@-T$(@?(C(@#(E(C @`T{S! @?AT:@`:c":"SA{¨_H@a:@#!"@#A9B(qT@#A9cx<@$(#94"A9# @B2"9T{@H@ !8@!:`" @{¨_ _ #@d@@qT{c@cAc@ *`?aA9`A9!ta9x`9 @{¨_ _ {[*$@S4AO9@Bӿ @!A!@azvJtB[BSA{è_{҉ RRB rT! a @@{¨_ Qҳ @ @B@_q`T_  A9B_qaT@_ @!@?qTR*_  A9RB_q!T@Zy!$F*_@B@_q`T_  A9B_qaT@Zy" 3y_  @@@?qaTX@__ @@@?qaT@__@!@?q!T A9!?qT@A_ _{[@;!@ ?qbFC@GҿT6RsF*G@a@A [B @{ɨ_  A9!?q`T@A!`$` @@@ բu&r@T1T@@#@!Ac,@!A`X`:(@(@;@o;@9T#/ )T@?֠?@`To@@J@@PkDsE@;@R@@#@/@;@cCD@cks ?5@$R@q`T*_@@@qaT!t@`t@!@@?k {%cx@[k@/FWRSTQs@}ce Ԛc"˔bӢ/gVӢ7*w]Ӣ3?\\"T`vR`-sS#T+ ՟ T#T@ ך@?ր{9T @T(TTa@9 ך{9 TF?@AT Ú49 Ú3@s@R+@ 6?@rSR*t*u ՟T# T@B@@?s`T @T(T Ty9s9HT*/@SA[BcCkD{Ȩ_ @ ך,@?ր @ ך @?ր @9PB4@@? @9`B(@@? R"T`awR`-nw]7@sˡ?@A9"7?@`RrSR** ܚd@Tb TR+@SA*[BRcCRkD@R?@/@{ȨbB&`B AtR`-+TbB&`B{R`-MTR(@h7{ @ `WR4`QqaR* @{¨_ AR*_ { h@`*@7&@a&@TғjA @{è_ a&@"@a"@aT `v@`@v`v@`@THrT@ aj@  h@ ն@{/FG@"@ 07@@@Xu9BAw A7@!,@{w@A@B@?qc$Cz$IzT@@Tu9C@9Tu9!Bc%qCBa*" 3T59@!$@?@$@JT@!nw@RARK@@ҠsaA҂!(@9?k?qo`WLG@ g@9`6@*@"@9 7BR @R_k`T @6"@C67v@!$@ebO96&@_`B/T 7dNA@@?r!TZ@y$GqpTi*T qnTqiT@@z+r T@uSABCD R!F@!@A@/@{֨_֢v@ @9:@qV,@T`}R`-,@(T@Xu962@xv'@`@9  q`%T.@xv@xTv@ ,*@AAD@{!@9AU Ձ@RCk Z@y$G q6Tq6Tq`6T~@@A4A ?rA5Ta:A ?֠ k@R@?b T{c *:LG@AC wa#S ՠ AA: Tg@w@AT8@WTb)VT@%ؚ{i&T@Xu9 3@ x{A6%@@`@9 @#QqHT @@9qTF_'q@@OrA_TRSABCDZ ՠ@5Z@y$G qTq`TqaT@2@c@k@@@?֠4@q @9Tq`T" @9b/6@Rk@:@v@?bbt@,@7B`@4@_qL"BC@b@šdA$@9RZk@Bq6@`T`@{k@@_nT``-RGC@w*;`A$@9kaT"R fT@ TD@f7@@9qT`;@@@H$ٚ@w@@ TA3@#xhXu9A6cO `@`ACE9  qT@/@ xhTk!ٚo@B @ciNTA@ q?T@@v@@c!ArTT2@v@!xv!8@!@,*@{@@*@{@ˠs@xv !@ `@9QqiTv@ @,*@c@9q]T@KAO[(@w@}S[@d8@KW1T[@K@@Ia4@a@9!?q TK@@CE9$ q OT @@S[@4q!YT@/@S@[@ x(@  ՠ{@s@` x``e@`@9AQ!?qiTd@9A9?@TA Q!?qI+T`@9! Q!?q0@ ՠg@5TR`|@Qa8@g@?@7T+@k!ٚ@4a4@ @ W{@Axh B@@`@9QqiT@@G@R[Q[@ @D  Y *@Dҡ@}0@@@E4MTsaNG!@  aXu96 c@9|S5!@A5`NG@`NG@? T c@9  q` T@@@9q T@@9 q@ T @Q1(T 8@@ @!@? 5@"@(@|@ @9qT @9r T@(@6 @9qT@A@?r!T c@9 q T A 4@"@!8@"A W1 TS@d4@A@9!?q Ta8@!@CE9$ q`T@Ҡ 4qaT Av R 9{#Z#뀋@hTD@@ ?<1 T?81aT`NG _@~ X@y!?qT!c@9! ? q Tt@#@s@p@o; @h q@T c@9 q!T+A9`7:@:O@?u @RR@zA@9!?qTRaР !`@"|@!@B@:@~ :RC9W+A96cNGc@ 5 B@B@A@ˠ բ@@3rT*@@ |S SC9m@"(@ԧ7!|@a"D@"ԇ6!R`9*cKX@yQx<4@7@6!@`:*@76@"@*|*@6"@W@_ T A!T@4*|aA!$@9!|?! TW@:@ˢ@BX r T Ձ@@(rT6v@p@:rT. b @RS@@,@  tI@|@?֧O@R @C@t`h@ 8@g@$@? @ˀ T;볟@(T@{Ax{!@ `@9QqiTLG@ `R `9?@w@,@@eAC@k@?r@T@`@ aAR!$@9!|k@ k?@8@b@@ eA;@k@?r!T "@ @[  @@k!ٚ[@ ˀ 2@@ @xv8@@(@ A B{`}W1T6@@@@{ 4q T.@x6d@@@ˠRaР !@@ R]}@a{C``@9|S@4@Xu9A7`GR`-@l7@@x@W@@qN `O9;FӠ_:@@rravTZ |S SC9L`Sh!#C @@RaР !v R"BR?;PSbB&`B`ἅR`-bB&`B`aR`-D@, {7@' @F/@B@qTRAF*A!@Aʁ7B{@ @'@/@_b@@9BAs72A9?q.@_ RT@9EӠwoO3@`5"@9I7`@@A+{J@#ANy9C!Rҿct@ "4!4`+@6a#@a@2`+`@# #`@8RQ`{@S@4cJ@#7*R(R g8@?4w@ ?q T@ @ Qq(T"@?q#R A !R5 @9 6z@@ z!@ +@a42 + @AT?9@@9*wq jA@T@9a&A9q`;7rT{J@#x+{@{"`+@yw@6 /@!cKrT ;@!DrT @?c?{T|@Q5@9q@zT`+@e '@@hT @ ' `F@2`F*_@a!@ va!`!q<b@ b@@9*@29Di~@{ "@@@qT@D@77A@ Xu9 6s@A@9 D@šg@ T!tA?@g@$qDz T@.4s@@A\'K ?֣*@@'HK@v@74 @ "@?qA !4B-@BD@Rb@dC@cĚ! ! bB9@BD@Rz@dC@cĚ  z(  +@x +>`@@@?qT@A(@!xA(@z`+@a@2`+`@`JaN ջcL r!7T @qT@@qATs@@!A@9!0@9k`T?q T! 4?qTu q T4qTt `RTRa !`"o@`BR "@97AC+@O ժv@6RRA-@B9@!@bB@!W@_A W[@@_A [m  @L@3b@AR8[O N_PAa@9aY ,@9 }#aNRa@R@9#Bkⓟڢq@ 4!F*!@3yРo@k9!LG#qT`@@9*@4s@H@B ?*`R3y`@k9BqiT8R*o@w**@@9!?q`T@S4@q:T@BkT@w@s@PA ?rTO@`@ ,+W@3[@ 4s@A@9||` {x9}s@og@3@_* @@X +@ P6#@7+@aG7@!5A*  ՠo@R! rT@@t `!R`-!o@AC+@hs@ AO@?֣*@*@RHO@ !@.҂ҿ [ ws@@!C?q@Tx@ šU(r&T9(72@$A9!x$9@{J@; ``-ҴKWgy@y @qT QqT`@uw@Aw @@0 @.@@b@ @ @ q @TJj z8@9~@AT@9# @q`T`@cw@A$@9@4g@QR`_|T|!`_aT@(@9@?q*! @@@B$@$q T<@@9|g@B`?֠ @ 9@{@{@K@972@@u@@qaT@A@W@ӅRC[^C@[@ @|@@@qTs@@A!@90@9?kT'A9`7o@srT'A92'9[%RRRH[@`@9! Q!?qIT! z8}:@xp҅R``-( @} Ԁ @94@|g@B`?֢ @ ҬCҪ[@@$@?֬C@[@\ RM(@ [C*j @[@AT zqC@[@T q4T @@ @ qATB@@҃@ҪCҬ[ @?֪C@[@# @[*[@|DGX5W@[@`}`@8@4@ @*tAC+@g@~R)s@@ ?raT@R a!!u,@I?ְRBB&@BR`-@o@С!R99!?9gC95s@@@9q 4o@c ?rTO@,@5O@`@ ,@4~CC8@ LG@ Tct@F@@9[\@`,7:A95@xBCD9t9@??@H@8@ t@@ߟ?# kIT@4@@!@@@D@*`?@s@A@9@l?@@g@o@!?99C95s@@@9q44o@c ?r T@ T@U@4@!@M5@R`-@@@8AA!@9 | @@@ |~S@@?C#"TR@;oa @?T @a@@@@*@?a@A@@@9@BPCc?9@x@O@wAAu@5s@#@"AaR"c@R@cF`5@RrTRwrTw@A8@`uJ@`Rsyw9@`-[w@@q-T@qT[@aHR?ߟ !kTs@@A#D@@@9n4w@*`?֠s@A@w@?@QrT[@ @` AR@9@9H94R@REBB&@B AۅR`-[@?T@9R@R`@5.@b@!RXAraT Ra!#.@@9  7@99qT@R`-!F1D95@ 9rTo%r@T@H@@?֡o@`Bc@~S@/a3uF@r TvrTu*v*@*cLA`?rTa@!@ ?@b@BA@?@B@@?r T@?*{RRa !#[9| 4uJ@*@v@6s@A ?/@!*crT;@ *rT@ R@[4@9+7C8@a @ZҠ_@A!`@acR`-ca#@x_@aZLGs@@ wk@gT`Aw@(@_@`?֠@H)TT T Th TTޟTBB"_@[[@e:@g@@eTt@!@?qcT@6@!`A,@_@w@`?`A@9Cc[[@  @R[a !`'[@"@`ARa !&T!!TBB!BB`!h@TTl TpTcc` BB!cc d!TbB [D[@bB` BBD" T@ TTT(T w@@qXT$qVT`A@9Yk@! B_!TC,@ҁ6@:@@w@_@`?aA"@ @9#,@`ҡw@ _@`?`A@9gmBB 3VmBB@ P0 TT4TaK@$RRRi`@9! Q!?qTB:@A6@!@`AHBB`51 T@D?R!R*B$R_kT!-@!hg+@kT `A++@+6+@!@c _Ba97HHT`A`AZC +ZC[@ @c T*8@4@W@@|T@aG@B@_@`.b@TAAY$@9 !  ! {8 #@?) 5AA@@9w@8@[@<@O@ @?qT@! @@#@Tw@$QR ҙ! KA@@(@9q`WU @q@T@ @!A * @c @q@Tk@  @AA @9wA0@[A4@O@^@"@6@w@}p@T[@w@`?c/A`?`W@`sFGcc 1[[@@?qATATc ,[~@XC@8@[@T@ @g @qT@@RA !@&x@? T @)" @BʣW@_ @"!cc^qT!Tw@|A @?!TC @@q@@T`ˢw@@ٚ<\@|ך 4 @ TO@w@aBs`?Jg@N@@_T#'c@F @9d @C@9Úƚce!RjaT * *( @kc @qTk@A!@$R jRa#!jAT *Hc@F @9d @C@9Úƚc!RjT * *R*a5!jT *8AR !@%C5/C 8@ @ t@@s@!A9(@99C@@5_@s@@@?rT@9rAT_@X#3NGH@B T*@@6"@:@? T6@T@@T@46@^*"@:@^@c|r@ T@_@!!` ` @!\@s@bT#A_@c(@`?֠@XT A@9@@9@q4,@`T@9 qT5A!*R ?֫ҽ!w@R! @x@5J@rTA!@+A!)A!(AR!( RD@`Ak@!@9?kT +BB&@B;R`-T!T BB&@B:R`-U!U    LG@ zb&@f&Af&Bfe@&Cf&Df&Efzb`dL!@!@!aaz"BcT*@B@@?rT W}*`"A9@n773*0kamTҿ gw@Rx@"R~Ӹ{}@R[5@OZTx@``@9 qcTqTqT`@@_ `@__ց@|@d{ {b@e@@A@!$Ś!e@Te C!cxac5c@a`@9!Q!?qiTaA9jA9%2e9'F 06!<@%A9&A92%9f77g4@{¨e @`@9|S5@{¨/6ad@97@5$!R`D@9@{¨_@R A !,s,@~@`?ֳ @{S!@9cv@!2a9Fa`@@Oa#@9#6a~@`*@!@'8A6`@`4 T#Cr TE_T_E`/"T[rTRS#@5R`v@5h@?j@T"@9"6@@'@FO@@AaSAB{ʨ_`v@d@5RA#CgrT`v@#@h@?jT*@@'@ @@'@|rTC@'@*'Y{F@|8   `@92`9@94`~@``@97`~@@!@?qTD@77FraT @ ճ @ RF@@AʡA@{Ĩ_ֳ  { 0@sҺ/|ж6?;`@@qT|J@\[@yqT7UY,9C-RR@929@5+@h6A!,54R@+@7@w@!a T@?q T6R@T4*5w@H@D@R ,@@`?֜@\ 4uJ@u R  `h7@T`t@`@a`@c @ `(@6`t@**`@t@(@`@?s?@BTB*B"4@9t@!29@`@AT`@c @ C 5w4 յ@@ T;@rTARBCD/@ @{Ȩ_H@@@9!77 "@977"@9$t@B2"9H@@9!4@9t@!x9@H@@@96@9t@!x9@H@ i s@ABCD/@ @ R{Ȩ_ բ?@cr@Tw@H@`@9!!5O H@`@92`99@Y @@!T @7*|@@ T@Kk"T7@5@9x9@`@9b QB_qT R_ A9(7{S4@(f\ T`A96`A9QqT@9?qT`A9 BqTa@SA (@ 2 ( R{¨_ d@9b7"@"4 ARj`CzT RSA{¨_ RjaTaA9@?{@T@b@`? a@@rT{ <@3NGs@a@R@RR`@9! Q!?qhT@ VT(@s@! 2(A@ @{è_{ F30@@G "`@@qaT`J@ X@yqTrTtJ@ Ք@4@ @5%r`TKv@#@!L@@T@4s@3A@ RFG@@AA @@@{ɨ_ մA@K{c[FA@_' R9@@AO96@@@qaT@S+# ?2@@9@ DzT 9cJ@X@yq@T``v@p@`*@`7@үrT@9@ DzTa! 3A95SAR#@+@F*_@@A![BcC'@{̨_ R9! ;A94`3A9/5@9`072@@@@?qT@bK@!Pu9!?k!T{@A@@?rTJ@S`Z@yq!T-q T@Tu9 (6 @6r` Ts@`@T`*@7av@@9q @T8Q_qiTA!`.R 5RhG@p@@@?2@@@A4YИ 9/@@?qT@@!Pu9BH@!?kTA@b{@@?r`TJ@3`Z@yqT`*@6av@b@9!`@!@9! C"3b9a@97x7@92`*a06`"@s@@SAsE#@b `@ H@/@WRSs#< {@@D@#AXu9cAc@9Úa7@$A$ ?T  ՟T3@! `b@9 QqT`@T`@!TaF@ @ R" ճ @RAЀ !/R^RA@{Ĩ_ @ R"ҢaFR@a @{@!A!A7,@9AD@[ @ 3@Tb@9 R |@?q T.@A ˔&ך`F@R@$ך``F@s@L&ך!R R@aj#8[B @@{Ĩ_ / @@R@[B@{Ĩ_ֳ RAЀ !0eB R @R@@{Ĩ_ YF {3 @@9At@!@74@7@*R!T@*@@{Ǩ_ ՠ3@k(@@A @s [6sb-[{C1RRA+At@ ?5t@ !hv*|Ӏ43TtB@94s@3[BsE"R@)C9 @9**@g)kD a@4 *?q R`B9`@5~| @* qT~|@9* ՠ3@RA!1@ u,@a@?ֳ @[B*kDsE@@@{Ǩ_RR{caF@"@?*@?AT@A#R`- @Ra@@?q@T{F?@a@AʡcCD{Ȩ_@O9`62@t/ #@@qaT@AXu96AAD@ @99 9zs TEAz3?ֵs?AT@4@ @@#@/@a! RA @z3UAS[#/ {SrTRSA{¨_SA{¨ {!@9FC@WR7@8@@qT@F*W@@AA@{˨_ շak!  @SY9+ s@3`"@`@`4`Z@yqT{~@`@@qAT r`Tbv@Bp@,rڭ+@@9qT !` @ss[R{ s@ `"@|~@@@qTrTW rTaD9R?@T* 4Р@!F2@8R`@@?qTaJ@!X@y!?qTA 3A r@ T#3A`?rb@?@@X@?`T:s@@9qT4@9q Tr @cCkDLcCkD @H2@@9 W{@A@sE  "(@B2"(!@" @B_iT3@S*K  ?T9R*`"s@a"@?T@?R`-sEcCkD @+@W{@A@R cks n {$8@/ЃOGc@ T+;(@6#t@d\@+@R/@{Ǩ_ֵ[cky6@7 6``@`t@X@ @ A! 25R: @~@D@7s@St@*@cJ75@r4~@D@6r@T4v@`@! t@OGd@c@ `@#8$h?Tt@8h@`@?AT R+@SA[BcCkDrTSA[BcCkD+@Y4@v@`@`v@`@@ Tar`TOG:@@ @?+@cCkD[B} @(@6t@`@t@3`@ T@A!`2^5S@vBt@*@7@R 4s@@Mr!T +r`TOGj@ : @ !+R s,@m`?ֵ@@(@7rTOG@@ aj`::y4~@7@TOG@@ : @81_֠_֠LG_ @AA(@9C_{$t@ T@ @{è_ִBʯ* v@AT @{è_ִA{t@ T@ @{Ĩ_ִ** `v@BA@T @{Ĩ_ Մ*@!Rrb!Rr@b `av@qR"R wzAB@HA9RGA9$RBA9@(9'9{@["@SA@3\@# @ Ac @9|s` TlR@`- A#<@SA[B{è`{@["@SA@3\@# @ Ac @9|s` T!nR@`-A#4@SA[B{è`{$RR@R d@9@7ab@9bA9 QqT R_j T_$EzT`A9cRaA92cb9x!2`9a9vZ@9qT*@"Rc@cAc@`? @A@{è_ ҳ @A@{è_`A9@T@t*`9_r`T`"@T40@ @8@bB(@7!@A_ {U4@2A9b4 @`@96Aq)TBA95VC @@FA95ZC @Ar`TO9"ҁ{brT @R@A{è_a!' `f@@7 @@ RA{è_ arATR @@ҡraT rT@`4O9(7!r@TArT¢AaB @9rT`f@ 6>A95@Aҳ @{èޟr@Tޟr!T rT|rT¢A!B@9uraTc@RA !3t,@c@9BB2Ac!2 qA? @"RA7a76@@9R`5!~"S*_@R4*_ {SA_Lj58@SA{è_ _{q T"R|SBqTS|@#@bC6 @q T|SBqTB|@s6 @CbS @{¨_"s 3{#!|S a59@@6A@#!|S4c`28#!|S59@@6T@|@s@ @{¨_ c`28#!|SA4c`28#!|S5 {S**||~@@#   F @@kbTSA@@@@b{è_ {a5@BAWA7@@{Ĩ_ S@R*TR3`3sb4r*aT`sB6qT63FdB$rT` @Qs@*@SA@@@{Ĩ_@SA@@@{Ĩ_ֳS{RS!R`SA{¨_ {$R[` R$9:Ҡ ;*oґ`{ZB94?@ T[BCD{Ȩ_9R*S@/ 4;@Ҡ3cb*@e7@?SR3@) Rk787@Ѣ@ˡB(@@?ַ@@*AA* ?*R%rT*s6qaT@ @ @dBrTa @s@SA@/@`AA3 B@SB7aR9/Z _0q@ITa! F @_kTT @?kTT@`_  |@ |@"b@|C_ @_R_cA4?qTA_q aR_ @*!A!A {BB7@B8R9{_0q[*S**T* Rӊ@!| s**[B@`R)SA{Ĩ_ դ {_0q[cS**(T* Rӊ@!| s**` [BcC`SA{Ĩ_ | {_0q[*cS*#*(T* R!@  | s**`Z)#@[BcC`SA{Ũ_P @B@_q`T_ "@B@_qaT{[cSsR#@@sysBB T`@a@b@ @94sBB!T@~@ @3`@qT qTqTBB7@B4R9d b @c@*as@3C656Rb @*c@4b @c@*d@xSA[BcC#@{Ũ_{# "F!@C@?a9F?@ @  @#@{Ȩ_ մ`a@? T')d@a"@rT@@;!A!A3B@9x@_qXTsT@! @ ?ּ;@;sTwĺiT3@7*7@4@9qT@9qT@9qAT@95R5s;`TR;@? -T@! @ ?;@s ;TqT;RA` !;Sc@b"@/R@{; R*;@**;@akT;TR**VqT q`Tq TBB7@B!JR9~ R***U;@hT;;@**i մ@'@* a@'8RA` !<@sE@@@@'@;?v@'@ sE@@/{!(@[@S6@js4@@@@9qT@@9qTRA` !`=~@BTBBR js5sB4*SA[B@{Ĩ_4D@9q!TB @95js?kTa@@@4RA` !>҅ ~CBB~EB|E^R {D||S3@@s s a@!4d@*ABA@?a@@_kT*@SA{è_ր@a@?kAT$@ T˺5a@@5@5R {@8@SFF4sv @ @kTT@*4@*BABA@?` @T*@BSAC{Ũ_֔ @`@@?kTs@@a@?kT?@`T}5s@@ Հ @5R*SAC@{Ũ_ @ @E@@I@*@*ѿk!ѣ&GC4 id8Bha8kTcQ# ha8!@9kT?!TK_K_{ `? @{è_ RAҢ@{  R! rT!a@`" @{¨_0 @{¨_ { `"@$ @{¨  $@9$4{S@U@*"REC)5{qTaB`"@? T"bx!@SA@{è_ _!R@*"R  @R "b!|`"@a@"_ T{S@`@T"@xsSA @ {¨_ _ ՁR@q"@xsSA @ {¨_@aRe@hT"_ T{S@`@T"@xs @4SAQ {¨__ R@E"@xsSA @Q {¨_@R9@hTR@2"@xs @5 @xa@_@_ T @ " @?T_ { @ ~3d@ITc"@0a d #@?c@CDT @{¨_ {[@S@T@T T"@2 ҂x`#D@CaT T"@@ B @? TSA[B{è_@aRuR@ SA[B{è_ @R3 @@ @_ @_{S@T@`"@xs@@4Q@@SA@{è__ց$R@"@@"xsQSA@@@{è_@!$R@@A$R"@xs@`5{S@ T@"@xs@4u@@SA@{è_ @%Rc@@&R] @SA{è_ _{ !  TR@*@ @{Ĩ_ ն@ITX @s4|@7@T@iT"@xs@4(R"@xs@@@3RTA*R@*@ @@@{Ĩ_ *@ @@@{Ĩ_ մ@@@{[@}@IT"@  #  "@ aBQ"s"T@"@5? ATa!C! @@ T"@%  @ C@4C@qmTE#T"@! C@#4C@6D@@@c #CaT[B{Ĩ_ַccx_s"s"@Tt@@~@@`K?kJT@7*@` 5s"iTSAcCз@hT Ҡ[B{Ĩ_ @ _886d?HTR_ ե@ET`_8@EaT R_@_{F@`@?)T @9arcqITRF@@Aa {¨_ A! !Hc8ca!  8!6aT  8 6aT  86aT  86cT  RIT$ R$ `T R$T R$  T R$ բC rT!@ @_T!!*_T R!R( բC erT@ @At@t@!p@p@#F8@4@@@!?T_ _E@R@@|T{S[BB)he ?T e@`dBTB) @ T&rTSA[B@{Ĩ_ R@SA[B{Ĩ_ R_{@  @TR @{¨_d@yR#@yk!T`*!(5a*@9?qTa.@9?qATa2@95@ R@ b@@_Tb@@_ATb@@_Tb@@_ATb"@"@_Tb&@&@B@!@B8@!8@_TbR@R@_kATbNA9_qTVB@`VRq@ qT-T qTq!TR_րR_ր5*_ R_{"t@SSp@j@4 *R R E|Sd (@cTkTbH@_ITf@@9H"7[BV|,@` @9BB 52BR*B5"|@B@BABR@ @cQ@ks T*xut@Ft@'p@p@8@F @4@!@&@!?`TCDa DC$4@ @cQxuksHTAD@A$! & @ R@@{è_ {!t@ 3d@3 s@rTb@@(@9`72@(9rATR @AB{Ĩ_ մAB R @{Ĩ_`@9! Q!?qT R_ @"X@yB_q!T"t@Bp@{ @Ca@ ` R @{¨_ {EX@yqTR*@{ʨ_Et@p@v;SsB|@Gc#B@BBABa"@9?룻@bT`k8!7&  8`$6T_q%T?&@9qT@9*` 8*Bˀ7`@96@@R`9{`QJ#8+@9 (67K@RG@ R@`9eR_q %T9W{ #OW4`@8@q@TITHqTLqAT74`@8@qT+@9@96@AT@?q%T? q &T@R?q*29qT@*w*4*_+@9 _@q C?kTK@Rss@_@qT7_@5 aR`  k@ @qT TqT @xA C)*! [{SB; J;8 K@A R_Ҽ_@@gF@B @ @!%\HqT!!R_@ kJ@_@C@d@`@9! Q!?qITK@ R_C@@_@d@B@8@B4@@6D @CF'@{̨ K@R\0qaT6@9@9?kTK@AR@9@aT@_qT_ q@TAR*!_q z2975 ՗6@9@9?kTK@aRm@9@aT@_q` T_ q TAR*!_q 2z9w@[@˔B _@˔4PiT 9!6T 8 6T_qTT 9!@6T 87RK@Rw_/O@C*+@977@@ˁ@BBO@z* q!Tc?@ @hb82:@"@6@B[@K@! R_ @_@@xAaR*`R*aR*w22r2 @"!@@9q`T R_D@4{RB @SS@t:@ S@c:@Tc"@!`6kT`:@@@_qT$ @!Q_qT@B4@@ R5SA{¨_֢R!@ !_a:@=RR!@ !`U3R"B@ B "R` {SFC@G @9!@/<@rs4F*G@@ASA@@/@{ɨ_ qT5ҡ@ @@?k!pS!!  A !`!R9@AIA?9@ @@?k`Ty@?@B(@@? @9q T@"@B(@@?֠@@c B@ 4ka+RoRR@;@s@!@chs@9`KaҟqT!9@zsSA3(@?֠@;@Ŋ@@!@@9KaҿqT!9@AC(@`?4`QR@|$#hs h`@o@$o@{kTy5o@ 5kD+@8R#@F[rs+@)@@[ յ@@W Հ#@ T@AҡCAaA ?@;@9B(@` @ C@?ք#@F3:@@5 !RS `a@o@4!`R`Y8 RR+@kD ``RyV ա(R`aAk+nB@kB'R`+S @RRB@9_q _  R_A@c˂F`R@!!!_{X?|?|?|? T[ @! @ ?TT@Tts#T@8R!,@ ?jyu T@!,@ ?< _q TiT_qTCTs*_qT_ qaTqATu T R@SA[B@{Ĩ_ֵ[B @@R@{Ĩ_ jy R[B @@@{Ĩ__q`TT_qTscTDq!T@! @ ? ssTHqT@! @ ? sCT@! @ ?*?CTsCT@!,@ ?*?T SA[B@q!T@! @ ?2 qT@! @ ?y{St[F"@_Ҡ @T@hTRF_@@A!SA[B{̨_֠"@4"@c#&@@R"@@BT@HT@TR!"@_T" @_T!@!cC#@ գ@@ R" !@ R#@cC@'@/@#?CT@!@! @+ ?֛@B@B @@?֠7ǎ@"|BBBAˡ!|" @`@Kҟ TM@@S T@d|" {@! @ ?@?@!@! @@@ ?֥CF@ h$TD/@ բ@@'_T)&@W@K@&O@ G@ŽAB)T@ rTkAy q]zqTz 4@Ү RcCkDJ/@DX'@@FcC#@?@&@'@RsE@!@ T$@Z @@Ґ /k'@/@6cksR'@AI{[u@cFkZ@@OҙA  @! @S! @T @ T!@!#@"@_bT @ ,r@ T+AyDqT7@!@"@B"_T@RFO@@A[BcCkD @{ʨ_%5"@3@#@B" @ (G! @F_릓@G@ᗟ 凟%   3@&@#@"T"@BT4@4 R@ s@ҴA !`@$@|   4o< sE@n ջsE@ @sa@!G!@  @ @__ {[@Sҳzt` @Fs@TSA[B{è< {@!@q{_ {S@@ R@?TSAB{ƨ_ բR@ !@[ RRSAB{ƨ_ ո'-`#A9T#@+@qT@'@TRyT 5@j 8CD@ բR@ !`= Rŷ@RCD @3R ՗@ R@ !@ RR@C'@ ոCD@R@CD} @{[SҴ@?#TSA[B{è_ֶSA[B{è_ {Rr@S[***%|@`ӥ|S ?k TR"&R!|h!T)b *@SA[B{Ĩ_ !R!|ARa @` {@X@*/*** 99Tl) v@95  @@@9?T"5b@9" 4@` ! R @ABCD/@{ƨ_ @@@!N R @ABCD/@{ƨ_ ճ @R/@ABCD{ƨ_ m@\` 2w @9kaT_k!T@AT@ Ra @ d@?T`T@C@T@"C TC@CA@?CTTA@T@@c?T @ R Փ@TC@#e@TTf@9e@9k Tc RS @c@9@9kiT~ @9c@9kT A@9c@9k T e@9C@9kT {  Qb @kTRa@|"4h`4@9q T@@[ 4a@k Ta@a Q6x` ޠ@9q`Tu@uՠ 2 c!RԠAB@  A5@T !"@!@yy @{Ĩ_ @E@ @{Ĩ_ !R@ v@4  v@ @# c8!RAB  @@{Ĩ  @AB{Ĩ!"@!@yy@ մAB մAB@@ @ {SMR!rTSA{¨_O { @ @{è_֢R@\qTTqHTqTdqTlq`TR_ qTqTRkT R_ 4qhT,qBTqT4QqTR<QqTR @"@T"RHT@#@@e@TT@9c@9kT(T@ @_T◟*_ @"@T"RhT@#@#TT@ @_kT◟*_`@_T@?T@ _ R__`T%@E R"_օ@T@@_!T R_  R_ R_ {@SҝR@ L4 RSA@{è_{@@@$@9f˧@q@TTD!@9?qT? qT?q TB vR@ߴAO9TC{_ D4!@9?qT? q T?q`TB tR@Ŵ{ @  {0@  {,@  {@  {@  {$@  {RrS@@#|c`c|Sc ?k@T"bX!!R*@SA{è_!!}ӮRa@0a {R"R  R@a@T`!R @*A{è_ֳ @R*A{è_{4tAqT @-TQc@A"T R@{Ǩ_ֵ[k h@c " s@ J@ "|*@ 47s@3b:@_DS`T`*@ o6b@{@D`5s@3_T ՟q,Tw?T4K@J@d@Ta@@,5@Fa`@s@d@`T`*@@o6[BcCkDsE @ Հ~|RWC wҠ3`# 7J@' ա7@"I4{4?Ts@`:@S`T`*@ o6`@|@a*@;5|&@`z@\|"@`5zZBs@@T[BcCkDsE @j3@!$Rb&@`z@Bb"@!! `?!T {S!@(@@7@`(@@7J@ " `*@"@6`@`4s@@SA{è_ { S @ " `*@ @6@t@4@b4"Ş`4s@A@ @{è_ մ %@CT#Cˤ@9\S-T$Dˣ@9c*c\ST "@9c*@`bS@C**! @?q_R"<S"{vF +"@7@dV@qx^@MT<@t @3_ T@@'wzBI T` T@3A@9?q T/T?qT?qTaB9`?T` @R;rT/@3@4@8@( T4@T'BwzB ` @` @aA T3@`B9ITA@'@R aB9`?) T@@'@@RF7@@Aʁ C @@+@{Ǩ_ R@A'@ aR@@!@!r`TdV@<@v 4?qTRR@R bRr T3@ aB9`!?HT` @s` @mraR@@` @!@!\rTdV@pR@A'@/@` @R3@6@@'@/@'/ R@A'@/@{$(Yz[u@'-TS*?Tq (T)T?q!T T?q1T T?q/T .T?qT?qA7T -?T@'! @ ?֣'@@@SA ?0qT?,q.T?q/T T? q@:TT?q=T &T@! @ ?*#@#'@SA[B{Ũ_ ?hq1T T?\qTc3T?`qT?dqa/T ҷ@SAz ?q(TTR?k`T R?k-TB9R@? #DTq:T?m5T@ '!@ ?`Z@=R@eb^@da@X@!rCT`~@'@hw8q@SAI? q &T#T?$q T?(q'T-T'@9?xq(TT?|q1TV@˸R@B9_!C<T?q1T_M6T@ '!@ ? @b@e@db!@vr:Ta.@'@ !hw8?qcCSA ?@qTT?8qT"RT#'@SA[B{Ũ_?qT#V'@SA #'@@@SA[B{Ũ_ V@˸R@B9_!2T?q *T_m+T@ '!@ ? @b@eB@d"!"r0Ta&@'@ !hw8@?q@SAR@SA@#R#M#@ҳSA B9q`T?mT@` '!@ ?֣'@?lq@TR?Hq T# T?Lq T?PqaTT@` !@' ?ր'@SAy?q` T?q!T#p*'@ҥ' !@R W6 R` @qMTB9q T?Tҥ'?q T?@@ԄSAH ՠMT@'!,@ ?֣'@ շ@-Ta'`@90 շ@ T@`! @' ?*@m T@`'!,@ ?*'@ ՟T@95@8 4aTҁSA շ@R !*ί RzUR# # SA@'@##Rq#@T'@*SAcC ՠMT@!,@ ?*#@2  ҥ'[ @T ?qT ?q@T? -T@`'! @ ?*'@ _ T@'! @ ? @*q? T@'! @ ?**_ T@'! @ ? @*ҥ'ҥ'U @!@'@Ҹe!R rTxZ@"R#@|? lTҥ'0ҥ'8҇ң'@/ҷ@'@2ң'@-+@Ҹ@'@Ҹ@'@{wF#"@Ҡ@K5 @?TgO@94# R/RsRskaTRg@?TcWCS_@3?@C;O@R__ kRx T(TTTW@S#Rj*g@_@g#TT?T T/`T@kT7@_)AH{@?rTF7?TD @@@/@g@_TToJTw@` ՠw@` R ! xV RDR @@@/@F@@AʡA@#@{Ѩ_ մgR# !R V5 RR;@W@ ճ?@W@ S@ բR !@? Rɮ @R@@/@ @@@/@C@ R /Sg@@{ G`#FyVA"@o`@/?"/T mTa@ !@! @`  ?*@+TRt @PT_mT v@_@!,@ ?֠CQ qIT@7R'q+T@QprA-T@_@?qˠ)T? T@ _!@ ?@q+T qT@_@! _@ qFT@ Qxr? qo@@5`R@#"RS 3?@+`)@RX*4׊R#R١r@`@K @ |Sz`{`@_kT/ `@_k`T{@R !%*j R@BD@u `Fo@!@AA? @@#@/@{Ψ_ִ@@@Ҵ_qT_i`SB99cB99@`@G@ /;O 4$: РW@RO@q` T T qaT@|qTT8q`Thq T qT`@kbTb @~|ӠS@G_@Hha@@^_@ @Hq`TTlq@ TTqTLqT@r Tk@C`@kTo@?q!aF@_@7 <` @BD@x |F@ ՠ@r@T`@k@DqT_@rTk@ R3S բ@*rT_qk@o@rTk@crTBD@@S ՠ@|qTT8qThq@T qTW@RO@ƙ'qTqT!RkATk@ARgD@T_8?qT@8?q'o|J` @?MTa@ !@!@b ?Xt @R˞qTqT!RkaTk@P? mT@_! @ ?*_@?MT_@9?T_@9!ցR@_@? T_@9G@eb@d@r`Ty\{BRz{: W4KW@@Rc@a? Tc@9q#9W@RW@Rq@T4@ @?@T"||!h"Ҵ_F աW@?"R?@cCEraT* !!|Ӄ @G @׊R١r:R@|`@K @ c@|Sb@!b@?z`z TW@R׊R١r|"`KAA !|S!zaa"@_kT "@@kT! @aRc33@ k @L R_# RDB@@'@.zv @D@T=BD@@C@44R !*v R"@@@ R !!@Rg@@@ a@T!@! @`  ?* {kz@F@4G@5 ?@ RHF@@AkD@{Ѩ_R S@5!RR!G#3@ W@W cL@5 F5?#>T @@ դW@!S@ @k@!@!@rTa"@?<TW@ 3@J@"˻+_ @[RTk@!@! @ ?*@T@P`˕RT;/Tk@@ A,@ ?<` Q< qT*q@@HTqB!ITa˿q|T? Tk@ !@!@ ?֡@`T #R#@9bˣgqT_Ta?MTa9?T a@9?A@cT @9@ B)uTk@ RKq 9T Q B" #!@98_@T@cTR qȔT Rgck@һR RK 9k@@0 '@q~oT@iT@@9A5 @8E4aTC*ӎɖT`@9a5 @8Z4aT*TS@@[ss@w@75RK@ҠS@R4RRҿ3T` T@A@9kT?qTi T?qT?qT[@Rk@@@Tw@@T@S@s@ 3@`W@L@X5BsE@c@!K!8 q` Th @ HB|"@!  @RN**Ir5TR"@ ջR\4[@Rk@@@b_,T%'@9 qfTH_Tq/TqTS@[@R3@@C@@?q@T4?q T? qT[@"Rk@r @@y գ@B|"? q`T?$qaTa?)Tk@B R!@!,@ ?ֵB @@a աc@*@q!  Th@!@#ag@3uTP[@Rk@?w@G%G@s@w@@? բK@!@RCAha8A4*[@k@{R `@9kT{@@@F@! զRq[@k@GT 3@@@g@3~! @ ҽoT s@gRRs?{@ TNR@@_q-TRR@ @@CTkT@ |@ ||%haBT*kTT+@ҟSA[BcC{ƨ_ֺ'F@Z `Q@@Tb@{4c@ T?T ACe@T'@ @@T@@*q-TR@  !@ @TkT` |@ ||@A}ӡxb@T*R@*x4@!} @QX8!@x4 AR@]@ ռ/|@#{o B@ECѡ$@ǀ@@_B?! @@„>ƀ !SR@5c`=C @ T"C@B _T@?IT չ#@/@Fj_)TZ@@TG{DkeTCc@@T@"T!c?bT@`T@@T#`(@tqTR@'@kD/@TBxb@bT@9 5 @T@@u @@@+@ H@@_ T{8@  BSkAXq Tr@ TC9 5C@3 t@`Cc@*c0s@jTC@a"@4C4O@S  t@`Oc@9c5` @*d@d s@jTO@`@!RO94@xSABkDJ@ R@@{Ũ_ ճSAARBRkD@@{Ũ_֡RJARF R_L@ R9 {USF7@@?@TF?@@AaSA@@{Ȩ_ EDХ4GЄGB`-!@7@i@`@6`@"R@J@#DB@s@`@a"@a+G@@s"@@@sV@ Ք@@R@e@&@ @ R@Ae_{8@@` T@S[@@@#F@GN@ N@T@>@@F@F3`@` @ s@3 @ @@UN@@N@@R@.@ߌ&@݌6@ی@ٌ@׌@Ռ`T@ό@͌F9`4@[@SA[B@@{Ĩ_@{Ĩ {[UcFS@"@Gҡ#`@ T5Rߋ@wy t5/HG5G,F+{C+@Ҩ`V F@`@ {;5@x5C"@C"@C@@_"@TRKR/@D$`rA@kTJ@q@` TRe@  4@B@BXaAT @!`AzT8@@7@ D/@RFG@@AʡSA[BcC#@{ɨ_|}` @J@q/$@erTR &4@c@cx$! @B?BzT#8@*#@x$ 5m` `@@ R4_ZrT B`S8G@!RB2GrTļrTc@ Ry `9];RS ՠC@``C"@C@b@B"`C@CC@a@D/@` RauC"@a@d !hrTesR/@Db/ {STF"@G @!@?qT@/_ R _@8@"xB@AJA`* J_@"@`TR_8@ 8@__ ? q@@T?qT?q@T_@9 `A@!T@A@_@9 `A@TA@_ `A@_ Q_qT c@=bHb8cb"@ ?`RR_ ?RR_ ? RR_ ?aR_@R_?RaR_ ? RAR_ ?AR_? RR_ ?`RAR_ El QqTEQqTBQd@_q T!@9R!?qT*_ qHb8TBR%Rj T*_ %R#``@9q*_ @F`{hdFQGQxRqAzT@*FC`A94@`T R_ R@`9 R_ {6@Xa@@eFy@ SGsFf@'F@?֢'@a@Aq @{Ũ_ք {@R@@y8@@@ SGsFc@'4@F@?֢'@a@Aq @{Ũ_^ "|@C@bM_ qT_q@T!@_q!B@_ dp@y!@ҟqB!@_ !@!@_ {*  @{¨_  R e/E@@?@T@@?`TD@?T@?T_/@aa"@BA@TusB@ {S@SaFB|C#@/ҁ@"D\@[6H(@@AA@9@!?r@TCA9 (q@T[B@!?qT T R?qT`R?qTsF/@a@AʁSA{ƨ_ @R?qTR ՀRR !@8n[B`R[B[ {CSH@S Дb9`@t@"s@S"!1CH@3 b9`@``"@ @Ga"t6??a0`"s@BSA@{Ĩ_ {S34@`F@/G 5G5@sFR/@a@AaSA@{ƨ_ յ[!@"+@ Հ"!G@ 4F @#@_`T R_8@ qT{g~SGFdA@e@c5@8@4@4@˔hTnBӡB%ҀP@ RSA{è_ֶ V|@R!9 ře@@ { @b@Cx@!@@ @! Ú"A{¨_ ՠ !}R:b@{ Rr@jT@T@{è_ֳ 67` @4ҳ @@ A9t@ rTq!TC7` @ @@ҳ @@c4`&A9qT`@rT @@ Ճ5` @ @@`@r`T`@r T @ {(@S3sFB@c@BxM"LR*@'@aB@EMCx !*A 5@a@AʡSA{è_~ {S(@[@xMb@R_kTb@R_k T[BSA{Ĩ 6|M5s`@ 6c`@7R? !:"?@@R? !:?@@ (@?T4@!Dg!VAR_{S3`F@g @@`TsF Rg@a@AʁSA@{ͨ_ր:@qT @6@@G 6@ @A*B\@A5:@6@6@!U@5R Rk! T*o!R|td.@Gˡ6DS@_IT6AҁBg~uFF@@˵B˵TnBR*|@B@  6@|@R !`<v@ @7 R:ܘ*R66@*B@:#!R c@R !=t|@rO R AR:B@p B B ᖂR:˜ C`@9q@T#$@TC@#_ {6k:@FC@@G@C H@ b9+[#`@-a:@;I{Rr Ts@SA@@+@@WC7R` @F*G@@A!BkD{ɨ_ 8@I{AWCҡ;R ճ @SA@@+@S+{ Gr`Ta@? 9 @{¨_{c5/ @!` F#@Gҗ/@3A94'Y+KC+:_@6#@V_T+ `:ޟҴ7"T ATOCF@@CZ#i!T?@\T)Tޟ`TT@KC?`"T@8@B4@@C ն@'@WC` @a OC "8@LG@ _`T @b@!\@B(@@?b@ҁOCB(@!\@!@?b@ҁOCB(@!\@! @?ցKCA @`ҙ"F@b@!\@B(@@?ցKCOC8@t@ @ 8@t@C! RFG@@AcC @@#@/@{ɨ_ ՂCC\@,WCROCf@$FzF;\@Ct@Z#ƀMD@@@ZtFta;Z/@aR Ra#R RRa3 @`g@ 7@?`Tb@҃KCB(@c\@a@?b@ҁWC @`BM!\@Dxq!@&A&WCKCOCVFF%h8@D@\@c4@@Z @ { 73ttA7R 3@dtA#tRx 7@A3R,@q d/@ACRk D@@%[CWC@ FA@C[C @CD@@KCAOC8@t@BD@@R !OCkR:7@R3Ӗ@3@AR :̖@?Tb@ҁKCB(@!\@@?x B B!R:+і0Z3 {S4kC(@F@WU@@TVC/NCZC`"@TR@@T/@FW@@A*SAkD@@{˨_ բC? \+!Thš~ӠGFĨFC_@6@cCvG@[@{{ @ GC@M6p@yqT# dtt˧RR v/@R7@R  RR# F@Hc@B(@\@`!@?ֻK`"@G TA@9!?qTaA9?@Taj@BR@r!d!8?kT\S \@CB`A9 7a6@?!`TsE@@?b&@_T`@q T`97 RA@"l@_T!d@?T R!j `A9 7B@9RB_q(Tbj@DR@rRBdB8_k!TSnCrCvCLaBҢO"8@!4@A@S`"@Tab@9! Q!?qHTbCbB\SfC_D8@B4@!@ KTd@Rb\@C`e a2@yR q@ TJCcRC gFA`j@HR'D@9@d8@rkKT57@ҡJCc(@!\@!`?`"@\S RCRCd@b\@g4sE@@wjC R:{b&@RrTb&@6 ըCh š ~ӠG `A9@T@@45`A96VC8@@d\@f*@@B(@4@@? R`A97ARjTab@9R? qAT`&@7 R:@aBҢO"8@!4@A@SrCRs B sBR:< B sBᕄR:2 B sBAR:( {@ (@[{_ `@9?qT?q`Th@CR@r"R!d!8?kT*_@CR@r"Rh@!d!8?kT@RRdGc(G"R*_ {`@9qTqTj@AR@rd8kT@2A94*@MT"@`!T@9 7A9@ 7"@TVC` @`C` *7A9A7CNCZC@9` @ @B  @0 E6 R A9*x9&@V?MT@2A9&5s4A9q@Te6NCZCa @@BtS"˂V! a !&d6JCA @&! A c6JCA @&!A "@?"4b@9q`T@9_qAzh T4A9|$A T@2@@9 7A987A9@R  qT2A94b@9QqT"@!T 7b@9q!TqrT"@T[B @2 R@{Ĩ_֔@AR@rj@d8kT@A9@T2@yR q`T"@! TA9 7Kr T2@ [B @ Հ"@TA9'7b@9qaT8rT @@R[B4ZC @0 4RC @` 4RC@ @0  Հ&"Rr T2@ A@!|  Փ2@b@9qT :` @"@s@ "`@t@T@JR ՀA9  7b@9qT@9 7JCA @&!A 5@974A9A 7"@?T2@yៀR! ?qT@5@4 @9 !6! Ձb@9?qT4 @2@3@3rT[B @@I@5C { !A9"x_q`TbA96b*@_ T?(qT"RrT`A9@T`b@9q@T R @{¨_ aA9c*a06>@A977b@9 qT AR:IA9bA9B!G"3b9@c R @{¨_aA9b* R!xa9 @{¨_ @97b?6@5a2@!"@B8@bB(@7!@" @a@@!(@6bdCchC!6a.@a @!0a aA9!`2a9 @{¨aA9 R!a9b\Cc`C{ 3@bJC R @{Ĩ_@ c`c ! UAO9B@{2!A *!,@9dxcRA @!,@9zO9vJ"7O97A R"@A!@" @B{Ĩ_ c@ d`@R @AcC{Ĩ_֡ *! T`A,@9zvN{SrTRSA{¨_SA{¨F {! R R{_{S3[aFc"@Gk @/!`+ @T+@R\ kdsFG@a@AʁSA[BcCkD/@{ɨ_֢QrT{#@;@{#{TR3 bҁ2<c T3@7 ?@o@7@?(T!Tc 2T;@{~+@R+ ~{ 8 (4 @{è_ RMҢ@`{ mH @{è_ բR5@ @{è_ {S@`C@W`C@`"ڦSA{¨m {SG$RRB r`T  ba`a`! b`"tRrTB`$!#``aC?@@T `SA{¨_}lҨ{S3RsqTBBE}5R@`SA{è_ @SA{è_ @  {$@S[T7N @R !v@~@!Rc@}VR !~!R|}@RU| RSA[B{è_ Հ ᓃR:E {S5(@ rT@@qT*@SA{è_ց@A Pu9qT@@qAT@Pu9B_qTF6@A`A9a4@kTF@@zs@@94@@@#R~@"FC`96*kaT@94@3LA**@SA@{è` {S!t@BAEA @SA{¨Y0҅`v RSA{¨_{H@ !7 @{¨u{H@ !7 @{¨aS"R$ @R RkTR*_99k T@R `RR kT%Re9#8JAXV#R9*_ RkTRRdr rdRk RdEz Rkc5R Rk TR RkTR RkTR RkT%XVӁ95 @{¨_־ R {SS @9* R@SA{è_֢R !M{**@RSA{è_{[Sc#**F*B@s*R*һ^@*!q#@SA[BcC{Ũ_ {[@cks8@ B @4@@@:@"@^@?q@~@sT? q@T?qAT  9#RUR4QJ5F@*GsAT"@:@"?q@T) T? qT?qT@RcrT R@[BcCkDsE @{ƨ_  RUR9CFtS@  c@t LDH TR!RruR9: #@976#@R Ё !@s,@z@`?@8@ ŎA’B8@^@F!@cb@4@B@sss^@sB@sf@ @!Aަ?qA T@`R5r T@Rc,raT R:@3`Rc@rT R:RrR9cc ЁR:} Հ AR: ?q T B BᜁR: R r9uRD BR: {A95tBtkTS*`?jT86A9`29SA@{è_ֳSA@{è_֢R !z@*?7 8@_qTT_ qT_qT!G?qT @ @ R__qT{ B B ᨁR:Q @#@`T R_{S8@@_q,@TT4_qaT|rTRSA{¨_ _ q`T_qTSAR{¨Cer@TR9rTBSA!R{¨1 R B BAR:  Հ {Sck[:u&@Tz57@^@!B(@@?`&@@`&FcC@kDSA[B{Ũ_ Հ Ё^R:Ō4@97`A9`'7`"@T`A9@T`b@9q@T?9`"@TRrT`A9'7 յ_ր A^R: {D@S3@gF\SBHB`*@DJ@*#BJC_@@sF@a@ASAB{Ш_ Ղ@A@?qT@@!QAA|||||||||| | @@ !H8@ ʎ 'x{`C@`4@B_T`@9_ qT4{_ B BRR:F {CS3aF"@'#@9qT@@ #RR*@CR 6A#RO9@9ͫr`T#@R9ER"RdA9e92d9@`?ֶ@@@@5RsF*'@a@AʡSB{A@#@_ ն@@@w%@dRrkTR_ ' @APu9!?q`T_ {D@06@{ƨ_ ճ Sv.@* 4Qc~{Ӵւ# ՔT@* b@9|S5a*@@!RIrTv@@:@9z@])"_kT9|h9: 9D ճSABC @@ !xS!|ӽzDR {4@.@'2A94@9q %T '3@# R RcLG+c@ @@qT@Qu9qT@!! C!'ZC@tS@ VC @aC g@6G@5G5J@3 # 9CRw*@6VCTJC`TNCTrCTnC@T^CTfCT`@nv5a"@ZCT:Ra@6`^s@@#@2A95 R @A'@@@{Ũ_ 3@`@@q!T`@Pu9qaTs@s a"@!T2w*s@ ՇH@t@P@@_TA8@?T@Ft@!E8@T@(@F @A 6g@!~g@` @F`@!4!Q $"@?T@'6NCZC!@@tS ! &6JC!@ !! jTJC!@!@9%64ZC @0 4RC @` 4RC @!0 T@ $?lT *۶rTVC @`G5@M qTq` Tq!T @AaҺ'@@@{Ũρ @JCC! @ @@ @#@RA @'@@@{Ũ_@97 !@ `'ҁ  !\ AUR:R1rTR!r`TarT@M!r@T@M B kBAVR:{ @9Kq T@k@qT@Pu9!?qT R:Ή@K@:@RZS@T@@ H*@s~@A"TAG LGA0>8@@ s?;C.@k)&T#j(``@9 (qTJ@$RC"A9bRA9@!22bc9f9a9`9***trT*1*`@@ !u5/@&lrTg@T aR:ioqhTkqTSq@T[qTqT`A9Q?q2`9TC@Xaxa  ;`+@"aA9!2@Ԁa9`+b_) T@@|sH*@s~@ #TsE@R !u*È@SARBkD{ʨ_ ՟qTTQqHT @9)7K@(@`6 @9 5cA9?q`A9b+@c`22c9A`9a+T`c@9q T`A97n* **rA)Toq(TkqT q`TTqTҟqT @96K@(@ 6%ac@9 Qq T?qATb_(TSABCD/@ R@{ʨ_  @9@7 ՅQ ! b'@`@Bb'#He8*ARj` Tj T|**6CRAj <k`T|/@ rTSARBCD/@@{ʨ_ ՠK@(@`6!@9 ! 4`A9a+@2`9!a+?@Q{`@@K@_@T/@Aa@`K@~@ !! @B!@96 @! 0G@K;x`{@`c@9QqiT ՀQ qT/@rTqdAzT* / ՟qTQqbTLq(T@ .@DFHe8*$ ?ki T`{҅h`@!y / ՠK@(@6 @96?@R&@-'K@t@{/n Հ_ QQqT@.@?kFTs{j3^җR/@K@$RBR? [# `@;@`T R! tc@ B R4C R:o O߃R:o@O@/!|{@.@@`g@9'6R !` tQ!|@B!A "@c@kD R@ c` R! gt c`*c*{a@'cFRo`@/ @E@gOAS{C"T 7S[+wW@_9*HӹW@sCs~`Ѡ_h$T`S@-@ %TG@{qxtK@`@9NG?@ `_5o@@csXk@@9s@q)Tb@9@ (q_T@cNG!@ AYTNG8@!@ _)T@@9q&TqX@s`85*,**rT**Ak@:T*^@^g@#@9O@@@T R:* Qq)TR{@_9T`@@?Tq T*qH&TqTqBT(KTq T_&@` 7"@@@9?T?q*Az_TA9@qT\Sg@PC  !_R:̆g@@PCg@R\@@&HC@#"8@4@!@!!o@a*Q@q@@To@g@@(@ HC\@!@?ַ?"&@@ _D94@(@`h6A97@o@@]XAT qdEz2TAqw@w{@TSA[BC+@ R!F@!@AA#@'@/@{Ԩ_֡ !P X`xa `#@9!Rq!TW@sCs~`Ѡ__@@?@s#T>SRR >R@RS@-@HTC@bA#@Wx`@(@h6 @b@9 QqiT Q_9qI6T?q`2T@ @9q1T@@9q`1TA@yR%R qTA9@@@@@@@?ֿk@@A9СNGc!@ AT@@9qTx@cNG!@ ATNG8@!@ _ATX@yQx<4@O@@@@9qA(T@(@'h6@`:@N&@@? 'T!F&@@Bˣ{@bc`B}{B`ip`@Q`<\ qcTd qTl Q qT5V@`7"@"RA9@LTg@PC5g@HC`6"4g@LCC^S"8@ 4@@@@@5@@@@@k@ ˠg@Ro@ZC@\@bc2 o@@@(@NC\@C`!@?֠o@@@(@NC\@C!@?֗oV@@ b@9 QqHTA Qq RT Q q@_q?kT_q`(T ! Rq@@s@@ل ՠ{@T_@@?@sT` @%@@S@@EzO@[-T_ AR:(@_@@@ 8@H@ 4@Bw@H @F,b@9q Qq`TRj@AR@rd8k2Tk@2@yRR qaT@QqTR  ա !  X`xa **q (TTq*T q! )T RqE@@@ @?SQ qHTR7 &@@7g@"@@@9?BPC\T?q*Az0TA9@!0Tu\S#4g@Ro@JCRCbF@c\@c# @bc[ o@@@(@JC\@@!@?ַ @FB @4 A9@aT@kQ qȾT7 @F@7@@9qg@PCI(TU@@@ @k@ ˠ@@ 8@ "@4@@!!kc@)@@]s@ @94Ҧ55R`B|S_qT@@)@s@@@E@%R@?֦@s@g@R"K@#!Cs@`K@h{@. "qT&qTaR :+F@ XR:  ՠ@@s5!Rk_9 ! Rp  @F @ 7g@"RPC !qR:g@@HC AqR:@H @F@7@@9ҿqTg@PCo@@(@g@HC\@@! @?@@@@5(@ wk@@ ˡ@"g@!HC!\@!?# ՠPu9q!T ՠNGR?@Rk@? Ձ !` @@%R@s@@@? ! @@@@Ңs@@@?րQq=T@9B w@? TJqrQ`CzT@@R !@ 0p@s@@`? ա@(@`27t@B@_q`TSR@h7@R ! p@@@R R*]qɌT\ q#Td qiTl Q q Tb@9qb@9qTgb@9qT6o@@(@ k@@ ˡg@!HC!\@!?֓7O@R@T9+@O@ 7c@O@R@AT+O@SR@`#@O@ %ۛh{O@a@RA R:SR`#@9d.T`"@9T R:@O@a@`!a@`! aR{@a@T ?R:ւ`#@9TT ?R:ςO@ҁ@`a֛@ !aSRϛwO@SR@`ƛv@a@T` aCR:`#@9TT` CR:O@ҁ@ a@`!aSRrO@@`^Pҁ@@aR7qO@@`QTҁ@@ag@Go6@!@/@Rg@ qmO@@Txg@Gl6 O`#@9TT` 1R:]@(ҳO@aea@ `a`a@!a`RYK@b@ _GT!$R` :@@O@aH@ `!aB@! @O@ W h{O@a@SRA3%b@9q[T *@ _wAR d5@[@w@w*NGR@@ ?Tf@9|ҵD@*+@SA[BC~A9"R@AT@@q @Fb@qbT qTWRP*@`*TkVC JF@ @lqJ(ThqETPqTXq`Tq!(Tbs@@9D69`D6o@@SbT@A8@B4@!@! "@TA9 7A@9!?q Ts@! azCo@SRR !@s@Mn@s@@`?R+@SA[BC` kR:@G` R:`"@9T_9SR@@9 7a:A95w@(@6"@T9`7A9@R  qTb@9QqT wJ75@@@l?w)w@@?@˨@ * *`JCXV@fNC *iC@c8@4@ @cc_9w!aJCwUV@$FcNChC *@aF!@cccҡ@h_9w@@96@!R(@ kT;R{_Ax{@r;@_@@AT !R m@W@3Q@a~@R!A "@ R6`VC@T*@?@T8@4@J@JJ g~>T * bJC"67"@a2A9o@ ET_ ҩ@R@@!Q?qETaJC"8@!4@D@ *@w@4aRCAik@Ҡo@`JC@u7C&@ *c~#5@@@ U@ *~`JC@s@&@8@!4@ *c@cci@BQ_ qI#T@GR !4m@7@R R @!(@a6A9?@B4b@9?qPTo@@c_94Rc@@DTET;4A9aE 7@A8@B4@!@!!"@ DTA@96"_q TA9"77(7A@96A9a(7A997s@R! @ t@T@sgb^@"g`@R`o@`@@a"@K|\TSRU&4@ O@@'*) 4[@`SR$!` {R:@@@BRX T R` :@O@ `a @(!a@ ! a@RH\Sb" b!@`@"_Ta/R` :@O@PaT` aR:`"@9T` R:@H\S`TҳO@aϘ@P!aR ! hl@@@@A` {R:@@@@(R * @*[@***q(:TqTqVT_Tq"T *gerC` {R:~@@@c` :kRu@c@CV5bJC&@bD? Ta2A9 o@_ r@@@!Q?q%TaJC"8@!4@D@ *.5@@o@@!@5(@@;k@@ ˡg@!HC!\@!?֥R ! k@~ Ry*<q)TqTqKTJTq)TRD7?` :wR"@?@w@@ @F 2bJC{?C8@@u@C4@`07o@ E\@wc@c@`? @?@A@9@F&w@@@!@@QqT@F$@ *2@(@@'6aC|| h`%R@u"@?T?@C; #w! 5@;@w@@{_`"wRRF{@;@_@w@@R?wk@?@w@@uA8@4@J @JA9'7b@9qT@@9@6&@7_ &R@@!@!F$@ @F@ @F @S @F @8@A8@B4@!@! "@T`Gq@ Ҡ/aC+uCcNC˵ ~"@To@ {_!@"(@a\@!@?&@{@_@@@&`F!@@` kR:B~UҤ@R@w5R>@@iRa !j@ @R} RZ~?@C; #w! n@;@w@@;{`"_RwR~{@;@_@w@@8a R!cnC~Ӌ`7{*@aT6\ qTd qTl Q qhTR)RDg@@@kJCRCH8@B4@C@BÐ@\@o@bcÐuM@(@JC\@!@?A9`'7@@9 6X?@C; #wҨ! @;@w@@;{`"_RwR{@;@_@w@@BҢ"8@!4@A@RRa ! 7j@"QB|@#B B@ } B ` B` R:}` Ё{R:o}@@@@ B ` B` R:|} B ` B` ᷂R:u}S[+6i B ` B@aPR:i}` !_R:M}q B ` B` R:]} B ` B` ԂR:V} {5@B@_qTR@{è_ $0@RRH@#@! @_kB @A!|ӥ@J@ aR"@! @ks"`}ӳ+@s~}`}BLGsC`B@ "TJ@"(@ 6"@L"h"! @A R@SA{è_RR @@ @ 8@bG@kTdC*BLGx`B@ T"(@ 6"@cCB|eh"x _{ST@ [!@BFkC@oc9LAs[R{*S{* ?֕CiڋG?,LGkҌA ) C@ `TCCa@!|Ӣhah!Bg4@F @A4@!!?T@!|Ӣhaa@!|Ӣhah! TBa@!|Ӣhah!!T(BJ!_ !Th[@`C?`G4W@0@RC?@@q T@` Pu9q TF@ `7W@@O J@ kv@@q T@ 6*@ x7Z@yq T:@LG@ ?@T'@ Y@k4{@*c@.?g@43G@@Q{@k||$ RT@|6h` @9q@T!hc#K`R;kBT*k@3ߔk@۔k`GT*;kT@@_kTv@'@`k@Fh@t@[@#`C?ּJG3@qT` 7 @@qT @`Pu9qT G@`7:K@zCG;Z@@Tw@@q!T@6@+@7@[@yq TA;@LG@ ?`Tk&@J@k4z@c@.*f@4KCC@Q@k!x@||$ET@BB|5hb @9_q T3hca"k) T*RRO`2sk TF*k@9@Z kaTO@2T!!3?"JG?@bң3@!??T***?^rTO@B?@HT3***Qr@T?@k@(K@:@u$@ @7@"R%@@Ҏf@#RR?Ɛ6g`2skTC@@@!k(TK@Tw@&@k@{gY a @f4@"A @D4@!!?(T D @A4@!!?TA@!|Ӣhah! չG@9@[@;`C?֠W@0@| ?Y6 @@qT3@S`Ru9qT G@`7s`.@ 4;K@` ; {@`+@6a@a4@'6`;@|@S@TW@ @9DqGG@Rt@?TS Օ{!@!,@@!xb* @ `@9| q@T@DF_C @@a*@c@_@_ q@[T@#@9PQqHT`FC@g~B@T[@DC` @C#O-C|A!i` ` [@RR  KO@_@fK@@ @ ,ZcIT@@!PQ?q(Tb.@H_kT!@K!A7` @b@9 QqiT Qq)T QqTW@@ TC*@@T@9@Ҡ@X5@A9@| 9@@4[@t`C?֠W@0@<u&@*@w@L@ R!Fo@!@A!SA[BcCkDsE{Ψ_֠W@@ TC*@TB@9@@X5@@ @a @b[@O_O@_@@ @AR\ 9 A8LW EO_dO@0_@[@ _CI@,_@?@!R*Zc'eT`w@L@G@(ffҥ;@ Rzw@L@G@f@_SqEzaTH; S}qTG*Hr@T7C9`4@B'S_k`TASS?kTkTC94@_k T?kTkTˑ`!R*c c od @O@~aRs~@8*,`6@"@ q@GҠ68?@R3"R3@R8``45@#@ e@CcrTv@@a42;@G@Yr`TTw@@4Ra ! fxe$ R#/e{@# CH@cҴu b9x`@eCt"@b^_ @ T!T"=a^@!9`"@ `"s@AcC"!  R @@#@{Ũ_R @AcC@#@{Ũ_@!@?q`T_ B {S[ @*@#@!@*?q$)&)T@Pu9!?qT` AZR:x@p a`t ?qTxM| !2x @* SA[B{Ĩg{[S@"A!D@VO9 ?֡@` 4!H@ ?`@"!D@ ?`:2@9ab96@9af9@!P@ ?`Rk`TߟRkTj9 RSA[B@{Ĩ_!D@ ?`@@Q` @!D@ ?` R{S@!D@ ?֡@!D@` ?@`SA{è_ {S@!D@ ?֡@!D@` ?֡@!H@`" ?@` SA{è_{S@@BL@@?֢@a@@SABL@{è@{S@@BL@@?֢@a@BL@@?֢@a" @@SABL@{è@ {S@!D@ ?֡@!D@` ?@`SA{è_ {S@@BL@@?֢@a@@SABL@{è@{S@[` @BL@@?֢@`@BL@@?֢@"`@BL@@?`b@9ߟ29!`f@969`@ _kIT@:[B*SABX@{è@ @*BL@@?֢@:[BSABX@{è@֢ ` B`:Rw{S[@"A!D@VO9 ?ց@!D@` ?ց@!D@`" ?ց@`24!H@ ?` @B!D@ ?ց@!D@`R ?`a@? qT a@?iT*A9(6*A92*9@b!D@ ?ց@!D@`*r ?ց@!D@`. ?ց@!D@` ?[B`&SA{è_!D@ ?` b@_hT բRa !!#dw {skF@@9"@g5 +@6 @4!G@A!w@48@4@*G@||A7 &@qT$qT&KҠGAG@@R?j@T8@ @ 4;CNGRR@ Ҡ?- ա;@O](*` 7O@*@@@@@@?TV9@r T@ @9@c) K@C@' `? @G@ks T G@Xw@@W`T@?@?aT@! R@@ w@`C947@A@?r!TSA R@@`9Fg@`@ `kDsE{ͨ_ֳ @R w R@`9 ՀGB'K *4,@g R`9SA[BcCSA@@S[cb B`:` зcBavRv {k[@r @ F/"@OT @ҷc@A+GD4ҿ?G@<@*`?ST{{T?@b&@TbcC@+@FO@@Aa*[BkD @/@{ʨ_LMHM`_qA5PMa4A @@cA+DӠG4  Ҁ~~%@@T@R5@4@"TA??@x~_T; T7LG@ 3@@H'A'B A@B@5!G@LG@R?jT@ @!@ˀ @c@9|S?qT4?qT?(qT@ 2@c@9 qT Tq@TiT q`TqT@R*@4@2C#Ay yG@8@@?֠;@ZHTE`UZ6cC@+@MAR40rTD շcC@+@>?@a@??@a&@@Ta@cC+@-Ra !"?b@ҿ?BAumҿ?j ?<1 T?81T!G@LG 7@@ } q`TIT$qT(qAT@ 2 A@?q$N:@T@2@c@9 qT@2$@2@c@9s Հ@2@c@9m !G@LG@ QI!G@3@IqaT@2gqT@2a@ 2]@ 2Y@2U@ R r*O7@!G@7@"Rrwґ@RPunc+``R?Hui{S[@ !A6O9b@!P@ ?ց@`ryJ!P@ ?ց@`vyR!D@ ?ց@`b5!D@ ?` @r!D@ ?ց@!D@` ?ց@!D@` ?ց@!P@` ?ց@!P@`> ?ց@!P@`B ?ց@!P@`F ?ց@!P@`J ?ց@!P@`N ?[B`RSA{è_ !H@ ?` {S[Rb@" ߟR@`r@yBX@@?ւ@J`v@yBX@@?ւ@R`@BL@@?ւ@b` @BL@@?ւ@r`@BL@@?ւ@`@BL@@?ւ@`@BL@@?ւ@`>@BX@@?ւ@`B@BX@@?ւ@`F@kBX@@?ւ@`J@BX@@?ւ@`N@kBX@@?ւ@`R@SAk@[BBX@{Ĩ@ {S@@BL@@?֢@a@BL@@?֢@a"@BL@@?֢@a2 @BL@@?֢@aB@BL@@?֢@aR@BL@@?֢@ab*@BL@@?֢@ar.@BL@@?֢@a@BL@@?֢@a@@SABL@{è@{S[ aF@#@GcC.@ZRX}4RsFG@a@AʡSA[BcC{ɨ_ |TF@RkkiT@ ,N@ߟR?k*iT@@R@ߟRkiT@@(R!|@N@`4Rj@yN@k(T|@R}4kD |kDk_{@xAA @/F @_R|4RF*_@@A!BCD @/@{̨_ִt@}jaT?|Tt@z q Ty 4`@z a !#?@RO@@! TG@2q р[@ T/@ O@`? 4@s4_C5T2q` Ta@!D@ ?֠Sa@`!D@ ?֠ aG@CRS@?j!*A4H LGA[@2q T+@ `@ ` СR's4K@!@BFR_W@*K@HӪr RVsLGA?@Y_Ap@7R?@S_@j+@O@W@@_@RR:s@[^ {t#@@4R*@{ƨ_ յ[@ +!t@At5`*@ 6w@ 49,@'/8@x @ؚ<8@ @@ښ*TR[BcCkDsE @ `"@c8@k/x{{ ]y*rTdA*?r`TwB[B @+@4R @[B+@  @ؚ4R @[B@+@aR@ @? TaR@@?T` ĀRqr ҥ*rT`RRr{[S70@"A!D@VO9 ?֡@!D@`b ?֡@!D@` ?֡@` "5!D@ ?֡@!D@` ?`@B!D@ ?֡@!D@`R ?֡@!D@`r ?@[B`SA{Ĩ_!H@ ?֡@!H@` ?` {[@S AO9@07@"L@@@?ւ@a @BL@@?ւ@a"@BL@@?ւ@a2BL@@?ւ@aB@BL@@?ւ@aR@BL@@?ւ@ab@BL@@?ւ@ar@SA[BBL@{è@ {SF@7B4[VQ~zӵ#v sTzT[B[BRF7@@AʡSA@{Ǩ_ֵ[] {c@Sk s@[EcFAb@Ҽ#BCD+@?G@4Q`Rcs?T@B4Ҡ7C{|f@ffAfKfBffCffDfҠ?֠@ q Tc@;O@?֠;@]kT{F R@a@AʁSA[BcCkDsE{֨_ *<`\@e(@7@xe(#rT;@]{ScFd@yTD9q`T`RSqsF@a@A<SA@{Ԩ_$pqT`RDqD9qT D90q!TD9qTD9q/TD9qTD9q TqT@@5p@ ?r T@"r@yqT@?Tq`TN@4B`RCD/@qJ@?q`TN@5@5AA!(@9?qTv@y@_k@T:Cq CzT>Cq Cz@TB5q T qTF@2FF@4F@2F@or@T5@ TN@5R@5F@"5@0R@ 4@T@BqT7Rk T*r!TBCD/@l Հ@@?q@T 4@@9q$@z Tr T6@ ?r`T @ctJ@ յ@v@ @$qDzAT!,@4V(@`o6*@2*F@2Fм/@*BCD1 Ry@5cxaTaN@5G@ N"Q?|`B@zTR@R_kaT@RF@R_kT?qT`fR`fr?kT!QR@!\?TRcy5xT@R!Wy4 R!| @N@*a}Ӥ@./@@ AF@G@H@I@J@4"QBBB@c,@`h!@! _ATN@qITc7R R( ?qT?q`T?HqTߟ qT@07@?q$IzT/@?kbT@6@ q@TA@š F@xFN@k T7xaTj+@kT@?,qT,T?qT? qmT?q T yF@`?@T@!z/@2 0@ @Rx5@F@70@4{ {c%ZR @!@T*A9Rc2*9\nF@k TwTҼ/@BCD8@@4F(@R@!BkT Rh@ q@TRRa *A9!`$c2*9[n/[{S[bFC@#n?!5B9qT`RLosF@a@A!(SA[B#@{Ԩ_֠B9qTB90qTB9qATB9cq/A TB9q TB9q Tq T@@ 5"#Aq T'A4 R|!'A@B{ ?*5'A|{ 4@R7C  ՠ'AkT*:zx^`kzaT @@ O@OK@@@T7@!B7@KB ˠC@@q`TcCD/@Z`Rn/@cCD @Ҁ/AA4+A4O@!| bB_T'AR@5?kTzd`k`!TK@A@T!O@BؚC@BB?*5'A?kTZcTJ"ҢK"L"@!3ea !`&y@@"RfRPG"A9FA3."9}Y&A9!2&9?@ C@cCD/@ҼyybZ_Z RSnZ/@@cCD շ* RGnZ@ շcCD/@EZBZ/@cCDC?q`Az`T 5`t@ @@_q!TAAB(@9_qT @k T8C_q`Bz T@B4@@?ֳ @#R@t~CtTCb Ձ !`R ViR*A{è_ ՟TqT aƉR@ jR ТR !х {$@S @,AmFB@Ҵ$@ C',Ek$FKx@8@7 4H ,I_C$J 4K O7C$LH0$M0N/%B',R$A,B$C,D#(@C@@4@+Ȥ ʬ *$A# ,BG̴5CCZqB@`Vz67&A8 .B@ 6CC+@9:&@ ;(&A <*.B,6C0"@@(&C'A*.,6&/B7CD(& sY@CC%A*. & -Bȥ@Ɲ ʭC,6 5C̵0ED1@$Ac)@,B4C*5@@u@X6sRmc RSA{è_RRXq)TXq,T wR@d a !@;!H`8bA! ֳsS3sS3[@Au !P`4 !P4 !3P5.Dq`Tq@s[Bҡҟ[B3ҵ[B {S|RRB`+?vr T!Ra 9p9a_qct`R!`)`"!YyrT(`SA{¨_ ҦP҄?{{_{`!R{_{@ 9{_ { @ !(y @{¨^? { z``????H? @?0?| @{è_ ROzҢ@{ ?B9`9Bx| 9T  l @{è_֢R/z@ @{è_ @  {$@Sc[` T @؂RA !s@P@!Ruhc@O@ҿ`T Tҿ` TҿT`ҿTR !'nPu{!RO7UR !!bP!RO@@9q@ TsZszSRA !RP!RO@RN RSA[BcC{Ĩ_ ҿTR !"O!RNW6 բR !2O!RNHR !`$(O!RN}R !"O!RNK !R< բR !%O!RNd{ !  @{¨a {sSbFC@g5(@ r T@@?qTeF*g@@A^SAsE@{ͨ_ Ղ@bAPu9!?qT@!@?qaT@!#Pu9cqTF@`6S@xkTF@@07u7 F`A9E5`@94@@@#Rs~@"FC`93`*`kT@֒rUTBC'@R`@9 4@3LA~`*`*`?ֶ@@Ax*@!AH h@W|C`4W@@Wk` S`@<@kTq`2T?q1TqT>}@A@k"T@?J*lDq$TAm@?kT@mlW@ S@ @]@a]@ q$@z$Cz*T qT`]@@]]W@ S@ A^`^?kT4?LqT 4LqT?q@ R$@z`TRK[ !@,YMK@R[@b^C^_qBqc.`6W@ @@`5R4K AR@`K@S@D@O@R#W@ LDS@LD5@MW@ @A]C@9?q"T@C@9_qTS@C /ALC@a1/G@>T@@@1TB @Y;R9@Y9@Y9@]@?k@ Ta]k T__@]XqHTC@K!!X` K@@@A@kT@R !@4L_O@]4qB RBzT@4@`R@S@+a@4O@"RRB5a5a@? q ,Tk+T`A@_kTk)T@gq$@zTR ! -L_`]?KЎ?@K@@`\KǎK@@@]7@9rTkTF@07J@v4k Z697@6@_K 4_@K4*@A"R k TBC'@*A]@!x?q TRK[ !.WL5_[@K@`l@W@ _6 R^3_D qAzT@BhMb5 qh(TG@DX`? q'TG@Xa?RK !11LK@?@ _@9?7@9qARK[ !.L^[@K@@]@@9?7@9q$S@"!CB^4q`T>W@ CB^!!4?qAT R>cC@jTBkD@@$'KcCRkD@RkR BzTk @zk@%4@!!A?T@!A?q4J6!7* 6 6R !9KR^P63#P6R !<K B=R^X6sX6R !<K B=R^H6R qTH6R ! ?KRo^v67 ! RKd^@B>@ Rw `~]4v@@ 4?k TRa ! )lKJ^}RB@{"|}|}` `@@dlkhbbha@@_ kC?k"R !qT@k*AT @kTD/@@yRD)RKa !55K^K@O@\@4M/aҪ;{$/F@{@;@R'@BC4?(q T?0qMT>Ra ! 6KR]@#}B@@;@@@7c cd (q T0q TR ! JR]\ ! R]B@Ra ! >JRb B=]6pRa !@;JR] _Hq RDAzT>Ra !8J}ARR}R]Ra !@7J~Sb~SR]cCRa !<JRb B=u]_Hq RD@z@T{S!t@SA{¨W&҃`vSA{¨N RSA{¨_ւR {SrTZSA{¨_ {a ! P @{¨[ Q_qITQ qT!!!R_ր!R@__c c`c`R}TBhc?k*!T` `L"@pA9(qT!R_  _{ S @9*qhTR"Rs*3 @{¨_*` "R@* @{¨_ բR! !I*\ R]@R @*{¨_ hq TtqmTqT?_$BS$ @*_ !xSbR#Q@B !*_{Rr@R r* k TځRBRr r?k@TR@R¡r r?kTRBRr reR?kT\U,qT%Rk)T*{¨_  ,q T# 4%R*{¨_,q@T|S|S!*| SF SXVӀEӊ S!** *?q T? qT?<q T|SG *,q TDqT@q"T<qaT|q!T@!R& *Rd@6 R*R` ?q"T@!R! *&,qT|SG S* )R`R` բRRtc5|qTqT%R*s  SE*@%R *?qATd`Q qTeR*{¨_ |STUcS,qc* T| SXV S q*TqTcTqaT|qT߼qT%R*BqRR5*RR*0*|S|S!*F*@q(TqbT|q)T߼qT*#@R|qT@!R& *,qT|SG S* ))@R`*{¨_ qaTER߼qT*@|SG S*@%R  *'RRq T%R) RR* qTqaTA. $* qb Tq) T qT|q TER߼qT* <q@To գRR*@B qTc5b B`` B R@\qT kT%R@ *kT|q T߼qHT* գRR*@ @%R *R߼qT*@@!R& ER*Qq Az_ `Q? qTxQ!R_qTx?qhq!*_!R*_ Q?qTpQ!R_qTx_(qTQ?qᇟq!5Q?qᇟq!*_ !R*_ qTqTQ?qT|q !R_ `R_֠R_@R_q`T q`TqTq᧟K_Q_`R_R_@"@(TCT @9#R! @9_k#Z_ R__{[S@! @ ?@! @ ?`aax@aTaz@a@B(@@?@@SA[BB(@{Ĩ@ @6 @ (@2 ( R_R|@R#@c@qT*_ !@!Pu9!?qTt@Ad@%RrkT@RrkTARa_ R_@E!@,@$,@e,Be @G @8@@GT"BBQXbAQ`T*_1AT!*?1@T}Ӏx`@_qT!Q*?1T}he Ra(A@O6APa_ @TRA5_ R"5_B(@b4B_kTXb @8@"BAQ'}Ӏx`&Q @T**?1T4 D@@R_jT"@LG@ _T @@9_q@T_@9R R_qDxDEzCzT@9q@zT @2 _{S3@[ @asvST` R@aZ@^@[B!b(@SA{è@ @@qT0A9} H@qaT0A95tC`9ҟq# @ " _ {Sc`9Ҡ"@qBSA"@{è_` R@)Z !,@a R_H@?DqT@?!T{<@` Y R{_ {S *qTRa !F*Y RSA{¨_ բRa !@F*Y R2ZRSA{¨_ {[cS `}q RP`@@@q`T@R cTX qATG*rT*(r TqdBzT* rT@c`Ts @9qTGqs *rTRa !s~@QFs !3 @Ra@)YE*SA[BcC{Ĩ_֠H@qR` @Y`}ӢqRa !.FR Y*SA[BcC{Ĩ_7RE*SA[BcC{Ĩ_ բRa !s~@Fs !3 @a@XE*SA[BcC{Ĩ_֢Ra !E@RXE*SA[BcC{Ĩ_ @*CFe`A94E@T?rT{R a6a !EX R @{¨_ D R``9 R_ a !` EX{S `;E4sBsSA{¨_ SA{¨_` AR@X {C*B@@ CX q@e@c @*@c !RC @BC{A_  @BC{A_ ոp&@@c @@@!l?~Hc !RCCBC{A_ ոC{(@ 6@#y 9# [c *D 4 @HkTFD|| h`Stf@2@?TB"*#  RR"!n`fD[BcC @#@@{Ũ_ AGR` @oX @FD|| h`B"*# iRR"!m Ձ:@?!TJ@?kT[BcC @#@ յ[BcC @#@@{Ũ_֠DRa !` DFFc@d@@ccW Ri {SBDTb BB @ D RSA{¨_֢Ra ! D=RWRSA{¨_ ` ᗆR@X {RR @44q @{¨_`@RR*TqT`.QqBq 5szFq @{¨_ ` !R@W { 3@cB@qTR* @@{Ĩ_cJ@qTbJCkJr@T`zAq@T` wDvrT``w@`H4f@Ҁ_}``VC`ZC`^C@9`7`bC@@ nraT@@b UVrT@9 6`@!R9a`b B`` B`R@W {S@@qT` frT@aG!5@SA@{è_RSA@{è_  R@SA{è_ `J@qs{"RR @qT @{¨_`@RR*Tq Tx q!T R @{¨_` R@+W`6QqTszFq{RR ߅*XqT` aR@W"q`Iz @ן{¨_ { @ q T@B@qT@@R @{ɨ_֨J@qT /DDRR*F@@B@&@(qxqi*4q * `4qslQxrT(qT9Ri5tqaRAzTlQlqBzT+@$7W}q9T_~?T?@G@9*@&4RlqTzARR_ qC@ABCD/@3VC*x+@TB9a7jYF @9 4G4@RRjT _q3R9 R;4W~"__)Tq+@?j` T4@q@ *4B#7?@G@9*5@R3Rq`RrCO@@ FjF!H?T@ya@@TrCO~"W_(T@4G~q!O B(T4`Cz!Ttqa4Ga4qc5ABCD/@.  5q+@5" 7K@|@@@g@!@#hTa7D@`6?@GG@9* 4tqT_q`RRqj5"7?@3RGG_q@9* 4 R43RRY )`  )! R;@UL)M)@;@) _q 5O~WA R7R9 RR)Ra Ѐ !BO@aUQ)_q4'K@|@@@g@!@#hTa7D@ `7Ra Ѐ !gBIe ТS@Х %!|@?U@c?Tpq TzrT?@GG@9*@4@R5R43R* RRa Ѐ !?BO@U@B6Ra Ѐ !3BO@U3RRzAR? q5@RRa Ѐ !BO@T@])Ra Ѐ !BIТS@d Х %!|@TQ):3RRG`5?@BRG@9@R!!*?q \qTDqa _{b B`` BQR@MU?\qT?Dq@"_{b B`` BTR@>U $@@qT0A9} $H@qaT{$0A95d @9TD@!`9EF @G\@a4|}L$hT{G ՂR|T{G"tCb B`` B@᭄R@Ub B`` B@aR@U@@qT0A9} H@qaT{S0A94tc`9҂"@q@"SA{è_ ` aR@Tb B`` BR@T{![@Sc@@_q`TA4azAvnC? qwrC TavC"P@".r@T"@aC ""@bH _qcCSA"[B{Ĩ_aHvNCwVCa4f@7aZC"Ҝ"@``C"c D"@cc rT`C"@"aD"@ ˁH@_q"@aC" aRC"x`C"@""@aC " { @bB@_qTR* @{è_cJ@Rq!T`.@!A9A9!7(q TA9b 07A9bRB _$q` TR` @,TA9x?qTA97A9~ * 0786@97`:A95@(@` 6vfCajC@B5 6.@@"%A9`29@A @{èJ Ձ*@?T(qT"R*KrTA9@Tb@9qT"RA*@TA9~ "Rx9*A Հ*@TxqT~ *s>@`A977`b@9 qT` ᕈR@SaBxqT~ * v^CabC {@@ q!TH@qTf>@k!Rc c g>$RRRo ?A@ @{è_֢Ra Ѐ !`9@c c!R?1!T RR` aR@uS  @{è_ {\qS[cT*Dq TAH@kTFD||ASh`3 @7  V@SA[BcC{Ǩ_ [R` @ES@FD||ASh`3A[R` @;S@FDA7 @@` @zAB qW @@'Z`u:@#y@sR= :D`7=7@e Х*@h<>D?@*@#Rr!**{4kDsEUD*#*m@ҹ#@ պ'@  ҹkDsERa Ѐ !?sR#@b B`` ksB KR@R@FDkDAsE };RR/ {?\qS`F*#@GҦO@T'/FqT+5` AR@R?9v H @k TFD||Ӣ?@*B"#h` ` "!RRh7 >7@+@sFG@a@AABSA@'@/@@#@{ɨ_ ա;@"!?9RRg+ R;@k*"3R"Rg3@C@8?@0@hk@H 4;@< R+@ 9` aR@GR @` !R@ARw` AR@~@Qk@4һ+@;@`?+@?@p դ;@c ?c !RK$A#@@;@aCF@C7@`{AU@q@"T qT` )C_@r`GT`GC_@Ÿ2cː`G C_@c @A_@!0B(@@?@;@|@?Ta@ `D` `{AqTC@'@s շ@`@9 7`WC @bCdC!cD``9!Ěqc\@Bx*4!G?ֆGYG!G37#G`?ak@b`9@GdG_q @\SG?``9ҁqcsqTq?@?`g@d`97@q@d\SG?``9533@ B_@C c`dRBc@dKCC Fc`@c@F?@7@RB_@@@B`@$bV?@c(@PѥB`A_@!`?փ@b@A_@Bpc(@!`?h t@"aC@'@?@ A-R@`J?@R! ` !& 7?@IRJR[BcCkD C`{A@'@"Bc@;@6`GC_@⳼Bc˪`GC_@c `GC_@·c0@A_@!@B(@@?@;@`GC_@`GC_@⳼c`GC_@c @A_@2!0B(@@?bg@c`9aDqGC@G"\@c\ScK?@;@[ck5{(@!2(@{Ĩ_ ճ  w"@T @^@@{Ĩ_@ R@I @^@@ AR@I բ@ ᐃR@I@ {S] RSA{¨_ b#Rr>R"@9CR#x RB2"9SA{¨_ {Cc[S@F@'`B@qT`J@q TAR@ @yIC}  `C A !6$@ *48a !RC c+4$RRRIe5F'@@Aa SB[CcD{A_֠CeCaC'R9 CR i#@BRA9¢9!295@9Ҡ7`:A9`5`G@4"@`C!"`aR@ @#I`CA !6R@ @I383a@ ЁR@I aG?q4 {CS`@9Fq"@/ҠT@B@?qT@RF/B@Aa[SB{A@_J@?qAT2A94a*@?Ta"@?@@T`A9c(qDT@9aB977`A9@ 7`"@TcBbB!@ @97aA9zAAF7aA9qVCb*@!tca9ATC@D@TTB aA9?(q Tc`A9a*x`9a&@`^?(T2A9wB94`"@aT`A9  7`b@9qT;r TJC @a&P42A9q#T! B4@9 47`A9 7 7a"@?6T'*q(T@9?qCz8T`A9@T`b@9q`'T4@"RC;514@"ZC}kD`@4`"@!LT`@1)T`@42A9a"@JC4?7T"@*a"@"RCab@B42A9`"@!4T@*RCVG@5`"@T`A96wA9q8Tw2@@9`7:A9 5H 5aA987bA9@R  q@ T2A94`b@9Qqi TB@2 R* 6NC& DD @! c^ f&6 @a&!  6 @c @95 q'TR'?rT2A9`5#@@"RC#@`A9@ATa2@yR q6T2A9 4`"@a T`A9 7 ;rATcC`"@Ta'7`b@9qT:r`T`"@Tw2@7B R@ "R>r T`2@d A@!|  zAw2@qT`b@9qT:A94c `"@ @ T@@7@aA9?(qt@T@AT`@5R>r@T@ @*X #y @8@@3@5! H4@97bD @"   `&:rTa"@"@?*Tb@_1 Ta"_T@97bD @ `A9` 7t:r@T`"@`Tb@?1TH@5'@`A9(q`T@9`6a2@yR qT`A9@aT@5HqAz!TbD#@ @ w2@#@v :A94`"@!T`b@94M JC@9 @` B7bD @ @9a@?1 Tb@ 5bDBtS @" JCA @a! A 5bDA @! A b@ `"@TR>rTa"@'[kDxaA9?|BzT:rT`A9@'7q`T q!T`A9@T`b@9q`T'Ra4N`A9'@T`b@9RqT'@"R=rT`B9a@2`9A5R=rT&`@5@"RCC#@6`A9'6"@*>qTb*@@"RC54@"RCkD!@9 a"" 7bD @ "@*%@"RC`A9@aTd@c#y@*C c`+,1!@Ce@*9CR&f+@DR"A9#A9Bt$9c2B2#9"9aba@`A9bA9a@ c@Bt!#@`9b9ca"@?T5\R!4qT@9 qTc@4H@"RC<`"@b@T@9#@"RC1"@b"@*"+@D['1B B`@ kBᬈR@F@"ZCuB B`@ kB!R@ F{Sx@[5t])ck(T~|h45 9SA[B{è_!xSa!|+^`z`SA[B{è_]aR {S 9` c @d@WFd8@Xaa4@`t@C@/ҁ@y!K9#@9`@c @e@Ҡ?֢/@@Aq@SA{ƨ_|1 { rTab@9j9"_qaTa@6!"Rabj9 @{¨_ " _4q@T_ qARbR!aj9 @{¨_ ! "R!bj9ab9{q [eF@ҀT qT+[ҿr    _k 2[@#@6" [_qlT'@!@ Ҁ1 ІRdRc %@sF@a@A! [B @@{Ҩ_ ՠ@     (@+b[_@?֡[@#@A7,!}#@2B4@@?֡[@#@6" [_qlT'@!@ ІR$Rc ,@ ,A,B,C @F@0" [_qT'@! {S3@[`B@/q@T.@D@7`H@5/@SA[B{Ȩyk@c C@+qT8D} `J@q.@sD@6@ R@D  K@qT ;D H@ \  T[ `z Р;@#Ҡ7{s}ӗ@@6ARj@TF@?G/0??@(TF"R/$RRRg``@9! Q!?qTA9qTw#k;sT0*+@kDSA[B/@cC{Ȩ_\?@s\ @ AR@NDR R@ AR@DD{@ @eB@qTR @{Ĩ_eJ@qAT!4arC!8@(@\xzA@ q@TqTaH` 4@"`@rT!RBrT*<rTAB@ aVCwCr@T!R@AB @{Ĩ%!R!rTR RrT"*rT2R R*rT Հ@"@XrATT R@ABBARrT`CaTb*{ `@9qTqT@"R:b*@_ TcBbB* @@{¨[@ R @{¨_ Ձ@"Rs@:b*@_aT {S5@`F@OҠB@qTRsFO@a@A!3SA@@{ʨ_ ՠJ@qAT 2@ FSK RRr ֆ@F@ @qaTJ@C9R ՠC@ @C 8@a"(@_jT(@C qT|@Cd@@qTc@cPu9cqTt@c@5 @@"7e1TAR\C C`C:DH@X 96"!@/@:@CE~Y@VVC@ @zA? q TrC @!1_2@@F@F@6CTV4Q"L6@B@@TC !Rr`T"aT@@BD R@CDV8@CzA qTq`T rHT4zA qTrC@ @VC @@ @5RrTARrTCD@%CA !7QyC!8@Ca!RRC"Td ՠCA !64yC!8@@9A7:A95G5G?q9C RARCT: ՠCA !  yC!8@R. ՠzA qATrCnRwrT@ARB`praTRj@CDrC0A8@C`RYrTVC @` Հ@9 7RJrT*DrTiRA @ !@.@*BFA@RCDR-rTRVC`!R"rTARr@T!RrT;-{"*r T @`@hA T! Rarx@"@@_qTH}  "H@_qAT"Gb4i`!HA5h?T`r@yQ<qHTRRkpq`@`Tw`@`F%@$@@4 $@t@@6"@R C@ct@c@6kAT @9%2 9!@A @*@A{è_ "96 b@9h R@*`9?ATv`@ {+ @9qT`@S@#/qT`@Pu9qT@ !)R@UA<@C@q TSAR#@/@+@{ʨ_ ՀK@qT;A9[c'`43A9 5:3r!T5@/@B@Fq@T,@} ԳSA[BcCkD/@+@ R{ʨ_ Հ/@@/J@qT.@rC@7AB@@,vC(nC@*`@/@3@AGu@՚@RNOT8 `=Ca@8!Hq*#TqATG*|@_T?q @2T"@9 B_ q T*?K*?@K@QqhTC@ X`xa ցR_qT g@R| g0&@B9B&BRj`&T?j &T!*!*#"x0qAkT!.9qR@zTDKC $O@sbhT RSA[BcCkD/@_@BAz&TqAT*@ 6"7@4ڂC@`@T/@Gm@ @@$`Ct +qT;@R@96` @` dH4 @9@7qBzTRA @ !`(-b@B!!@@" B`@ B !`R@@ v@A9:R*9BB @`T 5@+qTq^zT@{AqTRA9R`29@"@@~c@grT[BcC'@b"7BAzT;A95H5q`TTq@TqTqT!RAc@hrT R6.@?kT K#K@`"@9B_ qT !KG@xab@9QqT@b@9!Q!?qiT"@9 B_ q@Tb@9 qTGqx բ`9  `_q! !2ow`A!,@9xv*%=  *!`wA!,@9xn  2!TwC!@Mxr:R`a@9 (qT @ H @d@ q$AzT/@irTe +qhT;@R@9`77@`a@9 (q@Ta@`t@ZTO  R@A9!29kqTwq)TqTARA929@?*K?@K@R @ !,*>R`@Fh*8{KrT`@K@{@F_TAF@xj@x*`hj8lKr@T`@K@F_TFJ  @!)sKrT`@K@F_bTFJ  xj!x*C`R @ !` +b@B!"@V@> RC?RQ/ c`3@`9BRRj73@`9BR?KRj7?@K@ '@ R@@qT *_ H@ R_qATxA*qT~= $@ qTR_  {ARsiF"@WD@jd@TfFW@@A"sE@{˨_ ճ  ж! u @DMv@*@?kT@ҳ @@@ ՠ@$qDzTA !t;#RrT;@\@C@k@"@B@ s| T @9Z@@*)!_@?aTV @@C@!@7A @ ?ցҡT TkD@ @[B@SB@T ` 3, 63@D@@@A@;@@@@A@S2@@!@ 2@?(?@( @` ! Z"@!@`T@C@@!@ 7A @ ?T@@@7!,@ ?aT@@@7B @@?\x@Q6C@TQT[BcCkD @/ ա3@#?"@ybj9x !@99 @B#B9?@qT@8_qT7(7@?g(?@` ҄VWVV;@Xr@TC@k.,rVNkD@@ [ck z) {@ StRH)4s.qTB `R`SA@{è_ֶVԂ!@ R/)4s"q`TBԂ!@  R!)4sq`TBҶ@!R@`!R@` @B@_qT"R*_ @dPu9"RcqT#@c@qaT#@#ePu9qT{SaF"`A9@*4v@rVzaT@@` R `9SA{è`JR?rT*@SA@{è_a67zJaF/6x@RA @ !`)<@ @APu9!?q`T_ {D@06@{Ĩ_ ճ Sv.@*B 4Q~{ӷcւ ՔT@ b@9|S5a*@@!RSrT@9@v@ ճSAB@ @@ {c[6@FS@?kB@sqTHC}  J@qATJC!@9|@uFgB@6c\SRCd;e@^@!B(@@?@^@!B(@@?!@F!2!?@@ SA[BcCkDsE{Ȩ_ f@ bDBd8@c4@{@{FbDc@B@^@!B(@@?@^@!B(@@?*( {S! |@@!@?qT@N @}  @Pu9qTv@2N "Ra@A a@`AbA@RBbSA{è}`{cS7[ks`*@g@C?<qT^4qgV ;R5Rr2@g@R @ @@qaT@! Pu9qTJ@<,@!s@`v@@?kaT(@ 4@!BkTa@9a7[` @@967@_r!TSAR[BcCkDsE{Ǩ_4@@%A@@AD@CAAS@9!Ӛ?kT *` s L3R Z#`TY@B @!'5!@* @977@_r`TZ#T4J@@!?@T@9!29 @@TR5SA R[BcCkDsE{Ǩ_ {SB! @!`&4A ! &5`@!Rray`*@6`@c` R@SA{è_  @"@_`T R_{SH@#\qy@u*@HTDq T @a>@4q T qTcNr@TaZ@?qT"RRR@ qT(T 4*kaT? q T?qb T?qa T aZ@bkTB@ R@SA#@{Ũ_ !~R@;R@SA#@{Ũ_*vRka TbkT@q T T4!R"81r T@qTq!Tbk T@ qTT 4*!R նv2@vaN.‚@ qT AR@:R@BSA@#@{Ũ_cN"@{rT ?qT СR RRAR  uR@:bAqTvRB@" B` жBtR@:?Dq`T{?\qT?DqT{_ `"_zR @:{_" B` B KR@:{Ss@?`F3@Ҡ@E9@@@'B@wq@TJ@qT @@c@@sqT#@`Pu9*qT !R@N:@#@qT*qATG@9!? qTb@9?q`T*k*_T+qhT@R|JCc2A9aAOaFkK`4RCk@`9!HӡWs@Ao 4@9q@T4q`Tҁ@@9acB$B!@! Ú[ Úg SrTkAq@TVCM*@TA R 2@yR Rq Tq2 TR@cCDcCD@RsF*@a@AaSC{B'@3@?@_ ՀGq`   @[g SrT*(^kAT5 Rk@rCRAh 0X{xf !@o@W!,@ ?!@!,@ ?ց`94AKB!$~t!!"@CB?nag@@"y!@fFg@%4@@B#o@BTA@BӔu$ӔBHL@?"@B4@@?AR@cCD B9B @ 7RAw*7A9#R@T@qqBrC̶6ѡ9@@k5@5@ѵ 5@RA"RRW@R*"R @ @o@ ?+v"@!(T@@9@z$!8@"t@!@Z@@$44@@@FF@@k@@c@"@o@8@B(@4@c@5@?@@ 7@**rV@9 @@9@9x A8@"t@4@U@qx5"@vT@@A@c@B(@4@9@?@@7@**r+*jAT@97:A9`5H@4@(@6zAq@/T*C7T:D`TA9@c4b@9qT*?!QTkAqTvb@9q4!@o@! @ ? dDRRdgXqlT Q8Q_q AziTXqTd[@AK5T"@o@B4@@?!@o@! @ ?@@F#@@a 8@@q@TiT3qT7qT/qT" B` BAR@8c@v2A94@9%7A9` 7"@T@?9&@^@B9#@9*TR@6@ 4*?$@T@ #@9l~ T*h T@JC@%F8@4@`@E@˥ˠ@H4{{qTPA@JCB(@4@`@?֨!@o@! @ ?@@F#@@a 8@@qT)TKq`TOq`TGqT" B` BA0R@8 !@o@! @ ?@@F#@@a 8@@ q TIT?qTCqT;qT" B` BA%R@7!@o@! @ ?@ F@!@, @a!8@"@qT)T'qT#q"TqTR`94-Hӣ@ӟ d,Śg`qTPq!JTˣgg@cQqBkA ˌ1q@ {Q񔥌 _@?`AzT?T!$?hT@#@Mt!h"j!i"o@c(@@`?v@c@@#4@@@B(@xA` @?"@@? T@7c@!\S!xC8@B4@a@! @k@@H@2_!@Ҷo@!,@ ?@`9_@g@?q#@BUkA$xd_q@c4@x5&Ě@`??@9 q<T@@A"x@ !@ š˥˥@ @@8k@*cCDI@@`@@ @@c@D5}6_@@T@A@JCB(@4@@?֔!@o@W!,@ ?p!@!,@ ?`94AD@O$ tu!xC@!q @Ѡg*g@5pT*dҠ@IqTaR@cCDG4!@o@! @ ?\|%?T ЁR@6Gq`T~@ҵd4"@o@B(@@?M!@o@! @ ?"@B(@@?B @o@[c,@k ? @,@` s ?S@_D[@c@k@b@9q A`4T`94A+J`7Mb/K_?Ajb+ \A't!hh@g_@@kAT_@?(5`T_@x85F@S@pr R5k@9@Zu@@9 @yFcBӠg@B$CӅ@!$Ú!FQ?$R#$Ú` @%q~BQf%@ DQ$Kן"租@a"j4i#,ABXVӔ^WBʔBuoT44@"TLӡo@c@+@*?"@s@B4@@?U5[@@kTs@ARUk 8cCD@8`9`4!@o@!,@ ?ց@9@!B$[[@~PkT!@o@!,@ ?"@B4@qzAq@{T[@?T!@o@! @ ?Lt"@B(@@?r!@o@W!,@ ?!@!,@ ?@`94,@i!ڡg@#F@B@BBg@Bt~B_?T#@Ltho@Tib4@P@?"@>@B4@2!@o@W!,@ ?!@!,@ ?ց`94AKB!$~t!!"@C@?tag@@:!@fFg@%4@@B#o@BTA@BӔu$ӔB0L!@o@W!,@ ?!@!,@ ?ց`94AKB!$~t!!"@C@?pag@@*{!@fFg@%4@@B#o@BTA@BӔu$ӔB@Lc@`n(q A WT{R,rA{@@UTnCc4@E_@h Tc@8@@ c@c@@ @@8@@@9c@c@kA@?q @8@@@ @y R_@!$C_!Q Q6|@ ]TK|@@_@@g@Fˀ@9!@B!˔*`ZT @!@o@!,@ ?#@ @"b4@@?TLT!@o@! @ ?`94@DA,@ tq @Ѡg*g@5LT*XҠ@T`0kA@@9q5`4qT*"rTc0 Ru`@9!@{{_@q ҠPӄC@Ltl.@#(@Bo@|Ӡp`?A!@o@W!,@ ?!@!,@ ?@`9a4DOBu!x!@! l!ڡg@CF@!@!!g@!t~!#T?̵TkAb@$@qaB?T|AqB@!f t4@o@ҀP@?ֹ"@3o@B,@:@? @,@@?`93N@4`McKӂ@cyzӟvCxbb+@0gTF!@@59{@cD9@#@6T5@x@#@DFg@e4@!@@K!{ˡo@SןDDL,Aӄu槟RTWsv{*?"@B4@@?ֵ5!@o@!,@ ?~Ӣ@!@!$@#@!ц`9EFxqc4@@[@t~%$B`?AR@cCD …R@3A@! ЯK!@ck @@@K@c@k@c?qT T qT Tq`TqT"@o@B(@@?W@B@qTJ@q 5T ᕄR@3C} @FFW@_T&xb@ ST @T @,@o@ ?֗ ՠs@@k`8 ՠ@3?r6TH3F@?G@: R RAw@@}@BR RAA9 7q`TTqTqT@@[@"8@`!4@@@˒@@#8@!4@u@˃`0kA@@9q5`4qT*rTc0 Ru`@9_@{{q$@ ҠPdAҡ|ӣq% pcf@4t4@~o@@b@PӀ?p@9 qT@@c@B(@\@ !@?րD@ @9 q@@q@d4A9@c4b@9q@Tk@ d5@4[@\Sc@aF@@`9!D@4@a\@K!@(@@?֥K@@@[@k@K@K@@5@@@!@"(@ 3@c@!\@!@?$R@ w@@64@5@@@ˠc@@\SFBL@ `94\@@@(@@@?@k@@&@@&` @ʅR2@@p&@gTUh7"@aTH`4R)Ar@!T2A94"@@\ST?9@&@@&c@4@4@@#8@!4@u@˗w@F6!@o@!$@ ?!@ 6!,@@@ ? t<@T!@p@!,@@ ?ֵFre`T^x?!T@NC"D@fF@%4@#8@B@Ba@!˥ @@|Ӏ}ӵw,[@҃`9g@ C!Bz!qg**)T`oQ&RqA(TB4F@@@ @@9`94i$Ҧ~ӄ|gc˥g@ˠ_@B @˟񔥌W@@@_@T! !'R @@@v1#@]xho@ic(@B`?`q#VTqiAT!R AR`94i$Ҧ-@|gg@cB{Q@ˢ_@qDD񔥌@_?T#@Mtho@ic(@@`?0qTq!&TR!R*@@!p95A 8@!4@@J`9D4Dӿi | @%҄ڄ|gg@ˠ_@Bcь@˟񌁀񔥌@?T#@"|! @B xBc(@o@i@`?qTqA.TR!RqTqa)TRE!RC@@8@t@@#@d~6@`7@b@9xq"@c@B(@!\@! Tc@@x8@4@c@ @?@"@c@x"8@!4@B@BB A6T@967b@9@qbD T@5 ȅR@1@qT!RTqTGq5_@x4{@cD9@#@w@w@@k5OTFG@?qM4S@rMToskuk{@CD#cD9@VC*b5VCD8@4@!@@#@9@_la8@c4@!@!FT!!˂G `_q@dBӥ~@W@8@ @"t@FFV@iTW@q9@T@9_j @zkT@@A@c@B(@4@5@?ր @@7@**"wO@ @W@F?IlTW@FK@ha8O@Bxaxa@W@8@ @"t@FFV@ TW@:@U@9 @j64@@@FF@@k@)@c@{{"@#FB(@o@@;@?֠ @@7@**",@?,T@B@qTJ@q)T Rcc@@ @iFLF%@@˥  ˥! !'R'5R@ҁbD@F@B@ BB@Y5R@\S@@FFk@@@b@9q`T@9 qT ˅R@/@NC"D@ !C @?)T !̅R@/@NC"D@`9!@8@B4@@ D@EZC!\S!4\@ @  04" A "zTͅR[ @/`c`9GcG?q@[@c[@`?֠@@@(@V\f@ҁ7@HaNC@#\@"Da@?֤P@(@NC\@"D!@?֠@@@4$5@c@[@!\@!(@ @?@[@@@@(@A @c@!\@!@?R R@]/2A9@4R&rT@9@! K!8@ck@s@@@K@c@k@l4t !R@9/M"@@wTRb&rAvT"@ aR+qT B` B R@7/O@W@}I6x`HTVE65@`(4c"RkK7&c@rk@adT@@@K@7@@g@A8@`B4@!@!˖b@9?q`T@7!@x@o@! @ ?akA?qaT@ [@ C`! ! e ^@@:@`v@C7 !R@.C~7D ^@b@ZB@B(@@?ւDA4B@B(@@?ւD%A#B@B(@@?րC@@@F@%F@!E@@d5AfBӠ@kA[@?qFU@@u@˳t˔˔D5 R~"@VӁc@!Wc@#JE4@V ScPSB(* Jo@.St4*!*@ 2*?"@ ~@B4@0@94!R@9[@kA?q@O@W@ xb@ x"(qLT@9?62@yR q=TҠoG`9F4@@c@B(@\@!@?ֲBA#TccG`oQq嗟?I4?$CaTA96@92A9t4@`9{BRY@AA{@[@@@@{{@@sT@AArT@A8@B4@!@! v"@ vT@96"_q T¶A9"77(7@96A9a(7A9At7\SR;@@A@4@@w@c6@@@!@"(@Jx@!@! Ě c@@!\@!#@?*VC@A"8@!4@A@Gqo5_@(^KT_@x4{@cD9@#@@@@4@@*  A@!p9&4@\R! ! (kA@!@_@{@-@RcCDR! !%@@,zR! !$ @@@,i@xr@`7"@?TR! !@) ТRw@!RcCD@@V! ТR!(! @@@ ?XQTQTQTR! !`#@ %@,-R! !""@W@BF,@RcCD&@ҁbD@F@B@ BB@ @o@4@@%4u@?"@ҡs@B4@a`9(qJT@9!!6ҡ`J4@@c@B(@\@!@?֯@@ IO@ h{@ h;TR @,O@W@A@xaR! ! t@cҤkA{@"@!@Kw@ =7@@@!{@cD9@#@w@w@@ w4! ТR!H@@V)@# c,@@  R@,4ҵ! ТR! (:qT_@<[TkAqwT! ТR!@H@c %+@Ҭ*r@TRA9@aT@5H 94@@@?q`T`D} 5A"8@!4@A@`T@?9G?q4H@[rTkAq Tosu! !)Rw@ !R@cCDA aŅR@,A! ! (Rw@ c{oQ qT@ c@C@k@F@@d zB4R@?@"@@@c@B(@\@!@?ֿ5ev|ҠOccG=c@H\@@!@(@@?֣A@4c@bDF@B@ BBV@?"@ҡs@B4@4@@g@ @F@9v@B*TlTA?T!@o@! @ ?ց @_@!_pTkAqNTCzTch`@LG?W@?k@Hc@#҂`9F@4@\@!@B(@@?@k@@SQҵ*"@r@)T !'R@d+@@Gu?a TH@?qTc@`D@C8@ B4@c@B{uN$ @N@ @B@qTJ@@qT }RpC>C !7@a@<`_@?`;@=6@|@@@g@!@#hTa7D@`A`6GXc_@@c0GAc_@؈c)bF@ҥ@Cf_@!@ˀGBBdBBmCT R@*@bFg@F!@˷@c@!o@˗6 xR@*!@ TWӔ@Ҕ!,@ ?!@u!,@ ?BVAB@!#@BBJJBPST4*"TSc4@A/AB|@ZWLB~@@`?"@B4@@?րp9&4R ! X@kA_@{@"@!@/P`NGq4aҡ@c@C@k@F[@@@d _o ᡄR@|* R@w* СR@r* !R@m*CRR !`# @A@H@`9@4@@(@c@\@!@?@[@k@@"$Rn_@4H`4@9`6 Ф2R@6*A@(q`TH 5Ҡ`95@HosuY C@C !6`^@ :@ NP!@o@@! @ ?hPFFD@Bf@g@B˄(@g#@B@cBBBdB@?րp9`4R ! #ҤkA@!@{@o5  R!@9qITR ! _@"E@B@V)@9@7`95@bD@@ CA@(qTҠ R@) СR@) ЁR@) R@)}_@T_@wlT{@cD9@#@sw@@5@TFҡ@k@?9@*@@p95A8@4@ @`T@9wR ! kA!@B@_@{@ B` B!R@_)h ~R@A)@ }R@:)@ R@3)@  ~R@,)@hgWdO B` BVR@4)R RA' B` BAR@&)R !@{@ %!|@(@!RcCD R!!{o@w8@GZBFC@ !@R"@@_qTHF@@Aʁ$G{DG@_ #H@qaT GK@|S?PqT?HqbT4Rk`T R @976#@R !@s,@f@`?ֳ @ յ[ASsT"@!R^@@`W@? 8@+@!4@[@@Kq~@Tc СS@RRR3O` @q@T)T q`TqT@W@(@!<`@?֡O@~@TC*C@k T#@9pLT3Th@ZTlA9TXB!@SRk@"(@@a@?ֿ9O@@9 4@9 7o@8A95*>rT*Lr@TO@ @@94;@?@9?*@`6†F!@!@!c=h7O@D@9`s5 qTqMT,TqQTqOT !  Rr!a@@ @?֜c_@TSAsE@ R@kDo@G5WR* RtK@{@/@T?@`8x`"@*@`h6@c@9 QqiT Q9q,T?q@T @9q@YT@9q@T@yR%R qTA9@@@@@?֠{@WA9ҡA!LG!@ ATA8@!LG!@ _!TX@y!!Q!x!<a4k@dAZ@9q$T*@`$h6:@@@?#T!@@_@cbB}B`@abѡ_Qz ՠ[@CҴWC@{@ wR *Rty @A+@sC s@C@2@924 5@9 qaT{kQvq`AzTrq R@z T A9C9C9{@Jk@a*C9`4*@`h6A97@[@TR ! @@@_%RSACD@/@3 B97#@9p`$TH ThT @k@C @@@ ?@ѦC@ !@k@C"(@@a@?ֿ9C@xh@9 c@9 QqTQqq`5`Q q RTFQ?qTakQ?kFT@?q?kT@ C! q`T ! R -C@@@C%@9C@ q@Tx_ "q"T&q#T@t TT @k@,@@@ ?`ATa&z? RT`=T`t<@dT @spӢk@,@@@ ?sR ! +@ $9R? A!LG!@ T ՟p @{8@4@@!@bAW{kQvq`AzhTO ՓcYc`@9! ? qATo@4@!`9a/5 @ KqAh@9  @Fhs87#@9p@ T)ThTlT4 ՠO@@@ K@`H{@(@`o7qdBBzbB`T;*CW;@rC@W@@T@@XTD@TA@a[@@q [TӐR%rkM^T;ҤCW@@(@k@qBzT*rTO@ @! @a"@B! @q TӐR#rkM"TW;;W@ O@ @@A+O@W Ҁ/;W@ O@ @ @ -c@O@@@?@ R 2*X/@ @@9r'T@?a'T @k@C @@@ ?@C@A !@OtlC"(@,@|ӄ pk@@a@?֦C@ @gg!@C@."(@f4SR@?ֿ9 @k@4@@!X`SR@?ֿ9 @k@(@@!X`NtSR@?ֿ9؈SR@?ֿ9 !@,R Q0"+ B@CWAȆR"{@C@W@(@xo7WAR"W@džR @"O@@ *!R ,@! !! "@!@" *R !-,@[  ? @,@ ?(S"@*S* B4@[ S/S**|@@?"@`~@B4@@?֘og:O@O@W Ҁ]:W@ O@ @ @R  !.`ҁ!O@@wR` !/@!X au?TR @"O@ӐR"r @ @k T"@b O@R|#@Dc@Wh# 4C:ҤW:W@C@c@!R`B`L @` ᏆR;C W@!C@ӐR!r;@W@@@kT@@oR !0o@_!A@Rc@fB|%'7h%@fR  `!.jH!R !@*a@@SGR"*cB*@RGc"*B*c2Ggug@4dBGbSi Rj cJZJkTW@ʉRgtg@R~@rLh*KS$p|@,AGBSSB|@dBc"W@!ROU@O@W@RNG@*R<@**sG"*cy"m5g@ R ibSjBJJkTW@ʉR,@R~@rLh*@HS|@$pӵ.AӄGSSB|@y2E)jT5c5R"u5 ZwSZGX{@g@4RO2! *@tS|G**"0*%O@c!R! a! !ZR!Z\ *#"|b*B**B|@u G@g@ R` iz`SjBJJk TW@ʉRg@g@RAHSrd|@h*!|@L!$pӹ2,A5SSB|@G|W@RO@O@V R  ?i:cS?jBJJkTW@ʉR@R$@rLh*@HS|@$pӄ,AGSSB|@u"W@aRO@O@Sj T5G<Sc4R5RB *"<*u5 B*ZZ@ ~"*GRc$ *B*>SB|@GR"*cB*@RGc**B*|c:uG&RZC**sG"*g@y"c5kibSj R BJJkTW@ʉR-@R~@rLh*@HS|@$pӵ.AӄGSSB|@Gc2@54@! K! /"@!RR! !! !ZG!ZB **B*B|@z @@ B` B:R@@! K! B` B!0R@ {R (@x6 @ RA{è_c^@v:@4rT @ R@A{è_ d"@Ac6@b^@@ @{è+T{c7@ @F@wB@qTR@F*w@!@AAcC{Ϩ_J@qaT`0 @9 4o@N 5Wo@Rk@#s0@y R҄R`H@`@4(@! ?qaTC"* @c@c 5 !6R`R@SA#@ Ք@4s@Uo@Q@|w`1o@fS`!RdSrT:~Sr@T@|qLTsBAkDsE@c@Ms4r T`0k@9s5k@@B@q BTH} Գ @| !6R `R !4R@SAio@n 5Wo@{QC@k`0C@!@ @!!dT3@o`0C@v3Z B[@ ~`90|S!A R!=R:R !<R3D@/@ {4@B@_qTR@{è_ ՂJ@_qRT@@{è_#0@ RRaH@"@! @ks"c@`|ӄZ.F`J@R"@! @ks"`}ӓ-Z!s~}b} LGsCb@ _TJ@"(@ 6"@L"h"! @A R @@@{è_RRR @@ @@@_q`T_ H@_qT"8@HB@_kTXD*#cLGxbc@ T#(@'6#@DD`|h x"_{o ;[@F'@Ң`C@qT FC9@!@A{B'@;@_`K@Scqk/TSAcCkD@/@`GK[@~5@o@7LA**? @#bGkLG`[DjHkA #^J?4q"_q񧦕 v;t?sC#@ `TCeGDa@!|Ӣhah!Bl4@F @A4@!! T@!|Ӣhaa@!|Ӣhah! TBa@!|Ӣhah!!T14B)!? !TW`G`4`CD?@R!R))@0@`@@?qTa@a"Pu9B_qTbG@06"Ab"Zy"075@"4@@Bj4TwK@cc @ *@6@a4@'6:@|@o@T@ @9D G`,@Rj_T @_@@@",@H_kT`@aKAxa oQ?+qxT?qT!oQ? q$PzaT`5DuWCDRҿ#{@C#@o R 5G4?q$^zT?+q$PzAT:@@6@B@@B@,@?T@Zc(Tv@L@G@@wGD5w@a@$@T@ @9] 6@w@${@@ r5@@k@ *@4@;DH@T s@@"@T 4RsB  ՠ@`@ bq`RT**gR15@@9 q :TXUc@9qT*?kTB96D_@FRDz x?@c@9 QqiT QqT QqHST@@@@?qTH@?qTTCV+@T:@Ҡ@6@ssA9A9@#Uc@*#A`cD9@q Kw@ w@s~{a@4?<1T ?81LGTʲ`db@9҄  q@Tu@@łFcj@9b@!(@c@S @#ss@   LG@@k(T@R[@ |!#Ah  9P$ ՠ@B@@@?q`T:@@@6@s@ @sa @f4@p A@!|Ӣhah!BD @A4@!!Tba@$@w @*ŧww@L@?@w@$@`TSAcCkD@/@  LGA H@?qTTC@+@?T8@B<4@B@ssJAR!A{@A3@@9?@s ]<q*T ^4q@$@w`N4 @ ҠGk*T{@`KB6x` !@ 5b@9 QqI T5g@RR !` kTRk@*$RRR.` `@9 Qq)'TRR !qB@T R !@ dRK@@T8@ L/@ ! @4G@ҀA9!Rk@DD9+4@*s?khT@*k@$@(Z4@@q@A9qT5g@RRJ' ՠw@R@@kT+@@|5kT !R- R@w@@@(@d B!4;xSR[@A|*[@;@8`@FHs87R ! @A_#@0[@Q@@{@@qT{@H@qaTxK@8Gkw@`@qT`@@6+@x7[@yqT ;@LG@ ? T`'@9@7@9/b@B 4R`{@~|CQk T~|hdc @9q Tha!C6 C%t@ Tk*TRRg RRk*)T@* *?8@qTu@T<S@R@4*Z*RrR@ rkRrH RrRkrkTC pRk%*,@*??j@=TRujT**k*(Tg@@b@_kT@w@`'@`@@G@k@BA9qT@#!A!`=(3R*Fq Tm^q Ts*Fq!Te@@ @s|h|@ @G%5@@CD?ֆjR @@} *=?kT"{@F)K<)[  Rw@L@@G@w@l R@Z@@@HA$@0ҡ K k;k@;@3k;_ @@@k@3@;@* R`9{@TC` @a@a!(@?T(qR* 54BSS+SB*s*BSB [Rs*"{!xBn!mAsall3Rrk!KT~*cs@sq`sʿtT@@kIT@R@kK@bT@@ @!T; >;@;@ );@`@* c$@!RFR@)sˠk@*!@M)*RRRXD@H`84@@ ?(@A@?ZX@* .@_q@@Tw35@!$@k@CIrTw@~(qTRRR5h*RDkZI/K?kI7M?kS|@DS$ SX*D+S *s~@ sdhhRrkaTs~RB5RR]d@95wR !@@@@4K@QR@Ts C5"@ @ "@T@]! ܼ_Oc R"*{ @D! F`@' g 7S)wLG G @ kCc;w@k@@@@?T@ARjT6(A9_qTG@R Rw@g@ w?T7@@,@ @zT@@aT@@q@ @TjR{RrkT{@BGb5R5*3Rb$@R_qd5wuSck/@G 4@ 4K@QRY#!@cV s @*@]D\;B_A\A]A@K^C#Dk@@OA@[A+@T@ReGD"R@ @|Ӧhd@%@R !=~@0R !2 ! K@`@`__qT a&R@k !`R @a@#!! %c@Rc@R@A@#!$R*R<+@?_ 5 K@DqTS R@=S@@`@9fA qk@TR !7_@{@@?`TRR !@ TR?@`@9 Qq T !@R RR !@R !`****k@C!RCD95 AR@@7?O?[R{@ 64@Q{@}@ODTWO[RR@K@!xS*RA|&K@A9qAT@Bҵ;@|@@c[GrT@ @ ?/R/rkT R!@ {S@B@?qTR*SA{Ĩ_ցJ@?q!T:D[H@S `@%@:Du"@&<`^ @T"s@S3R C ա@a@" bq T**s#zRQ Ֆ"!B$3RG5[BcC $[BcC[B@{S@tB@qT`J@q TR @'C}  aC `CB64aC `CB7/aC `CB *aC `CB %aC `CB  *SA{¨_ @!R09_{"@C@@RqT!@9!?qT !6BrT @R@{¨_ֳ @ R@{¨_ CH@qTBG_q  !7)rT ! #r@T ! rT4 !  @@!R09_{S@93Rq`T*FqsTk*@ D(@Fq! 2(*sT^qTSA{¨_"@9B_q T{SD@07`@@@?qTH@?q`TA׃R @ C}  փR @ `@@@?qT CA RSA{¨_  R_{CS OF7@9"@Wq T@ck+B@qTJ@qT݃R @P jG} ԷcCkD@+@3R F*W@@A!SB{A@7@_SG4@ @ 5CJ@  @@4+@`7@RGK;@RsO@B T !?w@@ T TG?qm T @b@! @ ? ?qT@@C@qT@K@qTAR @ C} @C Y8 C @C7@C %C*G!RRRR( R@ AC'RECҢC@3@#R9S,S@BRA99!29"@ACB0O@"""!0A{chTw@"$@_`Tw@ L@O;@T{G@H@T@ AxwVC(@?ATa TA9!?qT@{cO@Tw@$@OTO@y aR@y  բcgEr!Tw@O@"$@_`Tw@ L@R;@?@TcCkD@+@  !R@Y x  R@S nR !R @cCkD+@cCkD@+@ B` BR@P ck+@!@?q`T_ . !@"@@_q`T_ #H@qT#G1!T@](qT?_ ^q@zAT"_"@C@@q`T_ AH@?qT@AGC$qT?qTC_A5C {R !   @{¨ "@C@@q`T_ AH@?qT@!#]4q TAG4{R !`   @{¨a !^?4qT_{Cs<S4@F[C@wcB@k_q_TG} ԂJ@_qaT @9qT`@@qT4RF*w@!@A0SB[CcDkEsF{A_`@Pu9qTGo4qTaF@@R?jaTyJ@9 R;OW7w@@qT@@6 +@x7 [@yqT !;@LG@ ?T @ ! 4@4&@(_z@cc6*m@_@4R) k TK@|"x@aQ?kE`#T!|Wha @9?q!TAhd*kT !@k?S !\Sb*!@*4*qT qTJc* qTV)#or! T@R_@kiTe@CA BHz8UHc8 @Ha8Hb84`*\SqB*4*TJc* qTV)#LrT_@*VRkTK@k@#@ &R@ GfS@#*ʭxr_@`T*R չG@!w@!$@?@T-_9@8G#G@t@O@@ @ @`C@"qT`K@qTR @ C} `C` ! tA`w@"dG;@!R~RRR& ЁR@ W@'ReCaC#RO@9ZRck*c@AR9A9!29!@!!"dG!@ ?@!R MRRRk&` W@'RҠ@#RG@O@9c>*c@"A9:9B2"9`C W@'RaCҠO@9#R cB'*c@A99!29! Rw@Z`C#@ K@*! #aG` A@`VR_@ աo@6Rk)*? q`TVR3G@7@@  ЁR@+ q  !R@% `CaCrT@!w@*_@!$@?T]l B` BR@# "@9B_qT@B@_q`T_ @BPu9B_q!T{6@B@?qT@{Ũ_J@?qaT`" J@ k 9  w@@N  qh Td@!R c@$RRR%@Bb @F!`@!As@s`"@qTd @!R@$RRR%ABb @ Fa@@R R B` -  R F B` !  @kD @@@A@{Ũ !>R@~  B` BER@  "@9B_qT@B@_q`T_ @BPu9B_q!T{7@B@?qT@{Ũ_J@?qaT[#q! J@  ' ZS w@@N ՟qa Td@* c !*RR"%Bb @F!`@!As@st"@5d @!R@$RRR%Bb @ Fa@@ R  B  R  B  9@SA@'@#@[B@{Ũ6 !IR@ B` BOR@ C{C/'8@@FW@_C@qTRHF*_@@A!5C{A@'@/@C_ K@qT@9qT@@qT3R @Pu9qTG4F@@R?jAT/J@1#5w@@qT@@6 +@x7 [@yqT!;@LG@ ?T @ ! 4@4&@+Wz@C*c6@W@4ORW@+ ՜k T!{@|`Qk%T|;h` @9qAT hd*kT R ;CW4QW@a R*kT R#Z?qcZKk T@@@3!,@ ??8@qTR$5a W@4@<S@@!a,@ ?ֵ*RRr R9 ¿r@R r9{kTTU?I!TK@G5>@ gX 1<qqT44R !!O@*sW@_ qן@+@O@ w@$@`T@W9@@3R#@/@$ 5K@GO@@@C@@#@tJ O@?qt@G@@ AB@  #3_qTJ@qTểR @C} ԀC ! s>!T ?T{ ! 7 b@ !B@Mt@* 7 t@@.@ @{¨@ @{¨  ! 6 @{¨x {S !6@rTRSA{¨_!rTrT !6Ar`TaSA{¨  RSA{¨_{B !@?T(T?TB?T !6 @` R @{¨_b?`TB?T !6x@!*! ša @{¨_R @{¨_ !6 @` R @{¨_  !z6@` R @{¨_  !p6@` R @{¨_ {S4@m,rT2A94zA*_qTSA@{è_b  @9A_{S@!D@ ?֡@!H@` ?֡@!P@`" ?`"y@SA{è_{S@@BL@@?֢@a@BL@@?֢@a""@yBX@@?@RSA{è_ {S @!P@ ?֡@`"y!P@ ?֡@!D@`" ?֡@!D@`NB ?֡@!P@`VZ ?֡@`fy2!D@ ?`RaV@?@@T@R!P@ ?`by@SA{è_`fAyV2`fy @?q RaA"9_ ! AyLR?k_ R_@ @A@@?cT__@ @A@@?@T@!@?T_ R___$A9B_ {@S3 A+@FC@7A H@WP@ *qTK%T'c_@`G@7!AZX@??qv@hTx`G`K@@"R * @3 }$`K@# !R[!! @O!?c6* 4`Q#9RsN *! T @ bO@b@  @`O! 9aT!`@A@kTsK@~ZS ~@Kє~@R/|v@</@ @``"@ f*@@6`"@`&@bz@#RgG@c d|@G6BB_TeQKB|@E% #@I #`"@@66b@BFךˆzN`"5TbQK"c|@BZb"#@`@ !'5`@9~2`9s@3 5/@b@A_!~!0 RAa'A9!2a'9C@'@F7@@A!SA@@+@{Ǩ_c_@4R'`G@2`GCT@9`Kn D_TzQKZ:c|@Z_BBb" +`v`#@/@R@@'@ +av@/!,@ ճ5@R'9RAj4R@C'@/@`RMR !*@R'@CR 9R!`R5R !`*~R!ҠTn'/ { B R{ B  B`R {k$A9ca6@@ !5ST TTA@s  @T@! @ ?`T RSA@AO@ RcCkD@{Ũ_R!5_ NrTR@cCkD{Ũ_ AO@SA@ {SS|R5vS#T`T@SA{è_@SA{è_Қ@RҌ{Z *`CסB.3RT|#"#@"#mҢ9 C"L"#@d"CD"$#@ ҂򃬬b å"A#@ " 2R* @{¨_ R @{¨_{[Sr T@҂V@ҀfAyE҃IFERA|@bhage&dRcV``h6!RaZH62B`"` D E F G SA[B{è_ ՠF@2F{S[F@$@"@G \q`TTlqTH TdqThq`T`qT|SQzv@V.@` b@a&@` @!7a@? TFG@@ `SA[B@{ɨ_LqTTTq TXqTPqTv@ ?*v@ B  иBR'~@a@RcAvd@`4@tqTxq@TpqaT DqTHqT *v@. ,@ B  иBR'kR !` չk*aT@ccAcT@`?R5/@TR@ѸC:`R'@ ոC'@ բR ! RW'@Cr'{LR# Ayk!T"dAy! RBB<@ R{_!Rz R{_{[kSc@@*+ q T`F@ c !Rt@w2@{R@U b@a`H2B@`BL@@?b@a3‹B@BX@@?vC9 R9d*@@e:@vF@9`@ "a2@Z!`B@D`R@cB@Hca2b@cBB d*be:`RnkaJ@vFTSA[BcCkD+@{ƨ_SA [BLRcC` kD+@{ƨ FR`  NG{S@*[*2a Rra*3*@@Rz!@@B@?T3@@z@S^sszs}vs @!@T $R! Wv@B@Q 0@SA[B{Ĩ_ OR` E  TR` ? {S[F"@/Ҡ@9\q TTqTqT q@Tq@ TsR4F*/@@A!SA[B{ƨ_qT@R@5 @3RSRR !`"#4@ R5SR *{`@9 `4`@94 7RR @{¨_ 6R $t@d(@&R%(@T@@ 9|{ӂ2#@c$('A@@(T?bT_  BR` { B  B@AR`  {SF"@W7a@!@ "|!| P'`@@ ~!~Ӏ J(1`@ks@:4 C6RLGRR? qT TqHTqb TPq/T!@@RA @__Z# @9{ @k T*{ @9S@4! @A:!#@-_ _@_9 @9HqT<qbTq *T(Tq+Th)T55 O@y5 @` #@4R ! #C@R"@9D@c@R@ @@ @`Rs@RF*W@@AA5SA@{˨_ֵ@@RC@BR q`T$Tq@$Tq!T@@!@A @9?qA%T@9?q$T@9?q$T @9@$5R@r@ `@zJ@|Z %3B@b4@c@ $RB@c@*AW@cAch@wC A@!!|Ӕ&&@@Xc '4 R*c RRC@{)0 a@O@ @ T @@9B 4@!@T`@ RT@@! ;@R !&f@C @7@7BT@@C7R{kbTc@cAc@`?֠S@474A@O@ˀ ա3@R;@{>*R@@{kTC@!DA@4{@4Z@zcCkDsE@@ ՠ;@R {!$*RR !$ R@cCkDsE#@}%`A@4!QP!#@b5 ! @AT!!CӠ@k Tc7AA@!|% @4@(Q(L("@eF@FfE@5)! TB@B|Ӷ& (q`T T qTcCR@ qT!#@R?1@ @@ \qAT!#q TT 4qaT!@A LG@ ՀR@s  5R  q TqT@@A R_ *@ @9q TqT #@qmT R@XcCRkDsE@q T{ R&cCkDsE@R6RqT@@2@<C@R@cCkDsEwC@-qTY 4qiTU@R@ @@ O@yqT@R@ R@ @@ O@yqT R@?@_ @cks[@!@ R_  {F!(@@?’@a86z@4DQ"*L a!@T*F?@@A!A@@{Ȩ_ ճ B@" 4AQ"*L$sT @ B4@!@#@*R@cAcd@`@!{$@@4@;ccAcT@`?֣EcAaT LGA` @R ``!(@y/@ R?G @@#@ ճ @>rT’@##@ @@@@ATA@!x` }{ax$@TA@ @ aT @@QxrT @@94 @`5  R !'t3@Qc@LGA` @ @ !@` ’@@#@Bb #@@94 @4  {S*r@T5*@SA{è_ %Dq@s*SA{è_ r "@@cB(6CBc2C${S(@k@*{[V@c*xV@++a*@[k4@k4"y  q`*(TSA[BcCkD+@{ƨ_ SA [B>RcC` kD+@{ƨE{BR[ "x-rTR* @[B{Ĩ_ P$cbR@9"RLyd@R9b *1Tq5s2qT @A1*aT8q`4R*sb`@ Q1)T`@qT`@cC@z*@cC[B @{Ĩ_ {S[ @@@!D@ ?ց@!D@` " ?ց@!D@`B ?ց@!D@`R ?ց@!D@`b ?ց@!D@`r ?ց@!D@` ?ց@!P@`& ?@!P@ ?Ba @@@a u@@ !`)@ a&@865`@`BTuSA[B{è_ `5`@ R{ScFd@ 5AT@!D@ ?T@!P@ ?`R 5CAT@!P@ ?֡IaT@!D@ ?R@5`! T@!D@ ?AT@CcAcH@`?ւ@BABX@@?r@ T@EyAT@k TY=@Z$?["\ &4"1@KT"@AT=TRS@# cAcL@`?&>5gB@10`@C |@J@x@@BA @_T# @_3T! @B ն@qTsFBa@ABSA{@@_ֶ@`R նg8a5T@!P@ ?q Ti T q` T Tq T2T̐Rk TLRk! T@!D@ ?G@*!P@ ?@2!P@ ?@3TP"`/'1Tyjw8qZ)Tq T qa TR !-5BR>#BC'@ qT q`Tq TR !)*@R@~q TTqT%Tq`Tq!TR !**`R@fҡgBC նB_0q`Tq T5R !@.bRSqh"TN Os(  O@x( `x    W \#{R`R}`Cy !/a RR!/;Y?@TW$5y4;@R\@?@\@Y))?@R!q!TaRR!@@;  ^@dQ##BRFB# R:a R3yҠwyrT@BAB\@@?rT@cAc`@`?֠@"R"|Ђ@F@qO@!PG2F._ T R! Ra#9 R!@0uR9@@*_@B*CDF@/@k@s@@@#R99,4 2Fn$(@G6VTc TR !0B\R !,@Rv!'@BCJqT qATRCҶ@;R !.*B@-O@`@ZO@XsE!B@ @RB@C,rT 7Ҹ#R!?TC@ } aS@ATW@_@ E!@  E"sCC@B/@RBC yR !0+ q` T@9|q`TQqITeq*!TRoo@c`_@&S*o9`_@9`_@3o@Rd_@cҟh#8dw@c@0@;@dw@c@R҄0@?@R !,$@R@@p@94"* R!@0_ C{!FS"@' R'a@b&A9%Ah@|C6f@`J@@ D|@R$@g5B9h4 kB! @B@$d@R"(A3h@Tl!|B@a4d@|@P(|cg5B94d@$? k @ @a5@T5P @ bF@P@*b6T@ R[`-5s|J@#^#R78RҶ'wGO@ R15`@!R*\Ac@`@AA94 TO@ϒQTO@ wc27@!R@O !%5#@c9w@,@`@+@#@ Rj`#TO@@ Jq{r*@q!`@ @4a ! 4a "! (4 "!2'4! @/5RR*RR"RR  RR*RR"RRRqz?qya_qg!_qgUqbUqaUqcUqdU y4a!t 4a!oqC@CaF@@R?j!T{@R?k , S ^TӵѿB!T`@H@@9qTR !4{@ @B4@c@cAd$@tX@?4T+@7@\B@'@`F@y!6`@AT@y@`5 Ry5Cy2y4Cy2y@5Cy2y`@B(6Cy2yLRfta@Dqb@LRcARCy3@ "05w@4 A9.4 @3@CyB2yG@b @Bb@?@b @Bb@C@#b @b@@_BT!\Ab^@a ?R-4sE@#@RF*'B!@A7SA{@C_ տGO@ t@ub@4R"k T@@!T@_@Z`5@ @@QxrT @`@ @94@94@9? qATL@y5kIT@9 5@Aq TI TBq@ TCqaTR9_@T@T__TAB ռ?RR բR !4{@ @B RqR[BcCkDsEAQ rT`@f@A`J@@ @bF@3P@*6  ՠ ՁR+@@AqaT R9 մ5@R9@RjR '7 `R9y @3@'&'r@Tu)rT|J@'@A}#OLG! @ 7WS@RG@S5a@@"|@b5!B9!4RkTga@!A!d@a@!A!d@aT@ 4RKS@Xx~~`@@@Ttb@O@@j` W@@Z#@@@5@`@zgV@v@7@@Ta@@!kT`@K@@ya@!A!d@Ba@!A!d@T@kT@\B@a@ @w@'@ 5!'rTa@ @d0%rATR@sE#@`RR !1O@`@AP@Q`c@CcAc@`?m`@AP@?TaF@4R7sE@#@}`@@g#RwG a@@gT@ @v?`@AT@ATR? 5*raT@ @G6kaB@'@[cks'@ R R ! 3yk@V@B'@w@R!` 5ҿ@R`4cCc#RR5@ r BU >!TRX)Ru !``4B][BcCsE#@ {[SFc@#Rs;$@ !`4a ! 5 6kR#O6RKZ{:_TT_ThT_ TIT_ T _Cc5`TkD`@@6 !`< 5 2WF*@@ACSA[BcCsE{Ҩ_ _TT_@TIT@_Tң _c 6T RW !;RW@_`T T_@T2__T T_@TҀ{_ R6Rrk c`5 ՜{[ գ c6 ՠ@4R*a "! P4 "!2J 4 !D`4 "!>4Т! 8q\ ա !`.5 2zҀ2_i_T@2`R*_q__ T@2?qW _c 5TQ2N `R*I c5o 2'rTa@`@!A,@@?:\@@ W_bT пC:;  `@gC9A \@@ZW@iT#@`?@@?kTO@9(@q TqTC@77@5w@ҥGWW@G@@ w@ @"&c@?@WAcAc\@! ÚAW@@#w@ @ ТR Ѐ!7 B7 ՜2 ՜2 ա !A`5/cC9 QqHTAy @Tg@? q T`@W@A\@A_ T @RgC9cC9AyK@@? RRSCC@RC9 q T Tq@ T{q<o`@gC9A \@@ZW@)T#@`?@@?k`T`@gC9A \@@ZW@_T#@`?@@?kaTO@'@ ТR Ѐ!@8cAgGG@`4 ТR !9SG@.G@ 2&{q<"2 ;@ ТRG7=7@`@gC9G@A \@@ZW@_T#@G`?@@G@?k T`@gC9GA \@@ZW@_"T#@`?@@G@?k T`@gC9GA \@@ZW@T#@`?@@G@?kT`@gC9GA \@@ZW@)T#@`?@@G@?k T R ТRW Ѐ!8W@۹O@W&W@hk B  B!R, B  B!R%!@RB@?T !?_C@R"@_T @B__{ S@+7B T@0!@x!,@'/ ?!@:!,@ ? *Q1Tz"iT @k @T ?֡7@x@a‚@HT!@!,@ ?QqT @ @@ ? 6x@`3BTQ"hT'@`"/@ABC @+@{Ǩ_ @IT!@! @ ?!@! @ ?s7@s դ7@ @`+@{Ǩ_ {S4 @zL[B@z 1a @`b@9B !@a )5 @s@!@ @a @@`b@9!B a )`4`@s@@1@b@9 5 @@ @SA[B{è__ ՠ@ {S*"t@!,@!@3"|@bN4@(@UKuJ!2(SA@{è_ {S!R!$ZRSA {¨_{S@@9B@B(@ 4c@`@a@?b@ @a@B@B4@@?ց @ @`@BxS @a@b@9xS `b@B@B(@5c@`@?֔@d@bBa@@˂@ B(@@?b@@a@B@!B(@@?b@@a@B@! B(@@?b@a@!0B@B(@@?c@@@c@`@cf@@a@p} `SA{è_ Հ @@?b@b@9B@B(@4c @`a@?@@SA{è{@c[@B@@SB(@@?֢@ҡ @!B@B(@@?֢@ @ @B@! B4@@?֢@@ @B@!(B4@@?֢@@ @B@!0B4@@?֢@*@ @B@!8B4@@?@*@ @qrS@sSsB@x T# 9?  M@qs"@T@95!RW չ#@5 R?N*@@q@T ?  -@qs"@T@94R7 5 !R?/TSA [BARcC?{Ũ% R?! ՠ СR? SA[BcC{Ũ_ Ձ4{S Q[|Ӷ е ?U!Rs TSA[B{è__ {Zҡ3 3@##/@9Q#?1`T@! @ ?z9C@a 4x@aT@ !,@ ?| @` ! @ ?6 R`b9 `{@`"CTY53@#@/@AD @B@{Ȩ_ "4Ҳ`9Q# @#@/@@ABD{Ȩ_ց@` ! @ ?7b9ҙ` 렒\T@! @ ?֠7@! @ ?@|@d@#?B @@?ּ?@a@; {;@b@ @@7@#ˣ??@`  {CS[c@kv@! @ ?ց@! @` ?ց@!,@`" ?ց@!,@` * ?ց@!,@`2 ?ց@!,@`: ?z"b@*`*aBB5?BpSf5~pSSB[CcDkE{A_"R b@f*@BpS4Raf*@_{!F S ;@a?[cks73C@@;@K@@ @a @)4S) @ku @Q 4s~s RR%k TR#@ya !<?q T TSjzx@@c FR # c<qIT*#Rk!T**Kq TZ Tjzx !<?q T&Rjzx# c<qT?kTRg@y c<qT! !TS!@@ 9 CRk TKq TTb@9ac@945 !R @RF@@ @JSA[BcCkDsE{ۨ_֠R&R չR#R աS)KqMT`@!RK@v`K@C@@5 T{@K 5@@9?qR?j?@T @`@  @@95@?q!T@R`@Rx@@ Z DӵF9?Cq`T@9@9@9@9"+5  T4kTB  4@ @@9`5R Р !@! @!@!Q! Z 5C@@a@QqC@ T{@@@9q?@!R _`5@a@b@ @_kaT @b@_T#@"@`B4e@@ G@c"@g?_#(@"t4e*@@ F@c*C@G @ ?(_a@?q T`*@qTRC@@@  @ "@9 @5!@?q!T  @"@95!@?`qAT !R ?@RC@@`@@ @`@7@@  A5y 9qT@9@9@9@9` A  F5F49qT@ @@ T3@!RW@ @@C@"@@Z 3:_ !`!RY`*@qTR7@A @"@9b5!@?`qTa@"@5"(@_q "T@"@"5"(@_q!"T!@"@9!5!@!5K@a@v`K@C@a@@@Q@qT{@! Р R!?@9 @@ @` !"@!0@ @9@w 4@*R`?@ @ B a A@aj#@9!5 @ c!R*4nSQ ХQlSc !R` B a A@aj#@95 @ c!RKM @W@95 @ c!R`p @ @] @` @ *c!R`]2q@ TITVqTTFq@TT:qTBqT  ! ՟q TTqT(TqT qT  ! &qTTqT"qAT  !`t ՟qTqT  !i*qT.qT  !_  !7RX  !R  !@L  !F  !`}@  ! w:  !q4  !k.!@"@95!@4 !  ![NqTRqAT  ! Q  ! K  !@ Ebq@TTZqT^q!T  ! 8  ! 2  ! ,qTqaT  ! "  !@   ! {Ct@@T {A@@_ֵ c*@# !RB *ecK  q TqT4R !` L*!R @@cC@#@ ՠ ! /R ! 1@! @ ?@`;! @ ?@`"?!,@ ?@`*C!,@ ?@`2G!,@ ?@`:!,@ ?G*H7!R}}@z@ BT#R*E@s"? T"T7@N  ա@ BTR*+@s"?T"T"cCkDsE @@@{A@_ պ`!Ҽ/ } պ !Ҽ/ s| {CS[ cks7*|R !c@*!RKzE# @! @ ?| 4a @ex@a %` _iT)T` @ @3!,@ ?R !`q3@!R*{Sa@`?iT xG8 ?3Tc/@8!RdQcxqTT# բR7 !I7@!R`@SB[CcDkEsF{A_ բR3 !33@!R@! @ ?R !@#!Ra@V6z@`@#?bT TSB[CcDkEsF{A_ 8`@C_"0X(TR !@3! @ ?@! @ ?@#! @ ?3@!RE#**^@3! @ ? 7@b@ˠ@hTa@[{{ WR !*!RA`@ բ3@!R9b [CsF"7@kEcDSB{A: a@ m {S[F@9"@7 5@!D@ ?`@"!D@ ?֡@!P@` 2 ?<@!P@`: ?`>yB@9`9qF@9`9`TF7@@ ` SA[B{Ǩ_ `@ 4`R`9c*@t 5J@@ @?kgU`Bb$R<cCAR#@ | x  t@` ա !`R 5cC#@ բR !)@R@t@ R !@c#EcC#@ { @9S5@BL@@?֢@`@BL@@?` @@Ta@?1 T@"BL@@?֢@2`BX@@?֢@:`>@yBX@@?`@9B9@Ra@9F9SA@{è_ bB!p@a @@b `   @@ ` @{qS|| T**'mTq`Tq T@"2D@ ?֡@!P@`B ?`ByQq T@!D@ ?֡@!D@`  ?`q T@!P@ ?֡@`y!P@ ?ֺ'@B`yCSA@{Ũ_ q!T@"2D@5 ?֡@!P@` ?֡@`y!P@ ?֡@`y!D@ ?֡@!P@`  ?`2yB:@9`j9C'@SA@{Ũ_ @95 @!D@ ?`@SA{Ũ_D@ ?֡@!D@`  ?`@!D@ ?ֺ'@BC`@SA{Ũ_ q@T*Q?xrOzTD@ ?֡@!D@`  ?` P@ ?֡@`"y*!P@ ?֡@`&y!P@ ?֡@`*y:!P@ ?`.y @"@y y {qS| y T**'TqTq@T@x@z"y2"L@@?֢@aBB@yBX@@?Qq(T@ @BL@@?֢@@BL@@?q T@@yBX@@?֢@a@yBX@@?ֺ'@BC@RSA@{Ũ_ qT@xz"y2@"L@5@?֢@@yBX@@?֢@a@yBX@@?֢@ @BL@@?֢@2@yBX@@?րj@9`:9@RBC'@SA@{Ũ_  @9 5@BL@@?֢@a@BL@@?@@RSA{Ũ_ "L@ @@?֢@@BL@@?֢@@BL@@?ֺ'@B@RCSA@{Ũ_q@T*QxrOzT"L@ @@?֢@@BL@@?֌ Հ"@y"X@@?֢@a*&@yBX@@?֢@*@yBX@@?֢@a:.@yBX@@?w @ `@` {S@!D@ ?֡@!P@` ?@`SA{è_ {S@@BL@@?֢@a@BX@@?@RSA{è_{[cW@@!P@ ?@y !P@ ?@y!D@ ?@!D@" ?@!D@ 2 ?@!D@B ?@!D@R ?@yyb @9 9@99@@AB8@@?@!D@ ?@!D@B ?@!P@F ?@y!P@ ?@y!P@ ?@y!P@ ?@y!P@ ?@y!P@ ?@y!D@ ?@!D@V ?@!D@Z ?@!D@^ ?@!P@b ?@y!P@ ?@y"!8@ ?@!8@6B ?@!8@:b ?@!8@> ?@!D@B ?@!D@ ?@qT*4R#@*}Ӏ!D@ ?|@!4@!D@ ? @skT>q@#@T`~|sBq|aT@@ @@@[BcC @{Ũ_ ?R !G@R# R`~|sBq|T{c@[#sS @rH)kV*@^ AA @  @ @  @`  @R`'Ѫ R# c:BR c@ # bRc;H'G FE_B 5J@KQk @ jT|@I)L@&(@'t@`{D|,@@@"@`@ B! @@#c y& )c X@@?ւ@ @BX@@?ւ@ @BL@@?ւ@" @BL@@?ւ@2 @BL@@?ւ@B @BL@@?ւ@R @BL@@?ւ@b@B@@@?ւ@B@BL@@?ւ@F@BL@@?ւ@yBX@@?ւ@yBX@@?ւ@yBX@@?ւ@yBX@@?ւ@yBX@@?ւ@yBX@@?ւ@V@BL@@?ւ@Z@BL@@?ւ@^@BL@@?ւ@b@BL@@?ւ@ʀyBX@@?ւ@@yBX@@?ւ@"6@B@@@?ւ@B:@B@@@?ւ@b>@B@@@?ւ@B@B@@@?ւ@@BL@@?ւ@@BL@@?ւ@`@sBBL@@?ւ@`_"BL@@?aTSAR[BcCkDsE{ɨ_# c:"R$_B 4 c1RJ@AR RC {c@S[@\B@5@`B5@XB4fAy2fyI҅fҦ$xT@ ҡ""@"ABCFb@"AyBX@@?b@@BX@@?`@B1`Tb@|@BL@@?b@2R@BL@@?b@BV@BL@@?b@RbAyBX@@?b@ZfAyBX@@?b@@yBX@@?b@ @yBX@@?b@ @yBX@@?b@@yBX@@?b@"@yBX@@?b@*@yBX@@?b@2@yBX@@?b@:@yBX@@?b@B"@yBX@@?b@J&@yBX@@?b@R*@yBX@@?b@Z.@yBX@@?b@b2@yBX@@?b@j6@yBX@@?b@jvx BX@@?ߒ!Tb@J@yBX@@?b@N@yBX@@?b@jvx BX@@?!Tb@"@"BL@@?b@F@BL@@?!Tb@F@BL@@?րRSA[BcC{Ĩ_ ՠfAyxfy6a@8L@?e {S@"AyBX@@?֢@a @BX@@?֢@aN@BL@@?֢@a"R@BL@@?֢@a2V@BL@@?֢@aBbAyBX@@?֢@aJfAyBX@@?@RSA{è_ {cSF["@#@@ @@"?S|@T_T@2BL@@?ֳ@&@ !`) 86`@@5cN@Bc`?֢@"BL@@?֢@R@BL@@?֢@b@BL@@?֢@r@BL@@?ҁ !<@c@? T@aT&@@Ӓ؊ւBL@@?֠@H@@9"@!!Q!?qT'HT@RBX@@?֡@Ҁ@"X@)T@?֢@&@hBL@&@?ֺ'@F*@@A SA[BcC#@{Ҩ_`@0@5@@ Ղ@R r_kT @y?qaT@<@RBX@@?֢@"@BX@P@? բR !K(jw Ղ@R r_k@T"R&@b5F@B86!x@@ & բR !`- L"@' Ձ @yR?qTR !`"@R@R@BX@@?փ'8 {S@!D@ ?֡@!D@` ?֡@!P@`" ?֡@`"y*!P@ ?֡@`&y2!D@ ?֡@!D@`B ?֡@!D@`R ?֡@!D@`b ?@`SA{è_ {S@@BL@@?֢@a@BL@@?֢@a""@yBX@@?֢@a*&@yBX@@?֢@a2@BL@@?֢@aB@BL@@?֢@aR@BL@@?֢@ab@BL@@?@RSA{è_{ScFRd@7q P) T[ ҶoT# RbY@!D@ ?`Ajҁh`TI!!T@2!D@ ?`K@c Rb[BF@@AaSAcC{ը_ b)T@R!D@ ?`na"":a2@*6a:"b!Ҁ <@>@B!Ҁ =6B@Ê@!R B=Î@!R B= ֢$ !`>z|*!RB__b?!RB!RC!T@ [P@uT@[@J@@\@T#@gT@R !!+!R@ wK@w`O@J@d@\@T#@1T@R ! $!R@A@B@?ց !1s @`*@@7@u !@(@`@6V#@F R@!@A!SB[CcDkEsF{A_0qTT4qT 8q%@T !RB7E Ճ Ђ c-B)!R!Rc@_ +T aK#|@gˠSO`S@g@-r@9T|@K Ts@!Rw зK@!@7C& I T T@Wg,@s@@?*C@!RW@@g@s@Ks@XAT@RH"Ts@@! @ ?6x@ !RBZ@XTK@S@?CT@ @O@ ?ւ B!RD@R"Tw@7@4O@XM?@ gRg@!R- Ձ !R @!R! Ձ ТR!R  ! ?@!Rr |@wK!T ՠs@%f  !:I `o @6o@  !:= `j @6j@R !p!R_@ r`T"@ s@`  W@"T@! @ ?֠g@! @ ? A` ТR  Ig@!R*W@# T`R`c$4g@?@**[@*xa!RqTT@ !,@ ?* !RB@R h#T@!,@ ?<| S, ТR@3q  TL?@**!Rq @RI*"T *s@R  ! @*!RV|@K!Twc@[@ ro@@ T[  !w@ иo@"ւ{5RT_@R9ow@aTB{@dѢ"AQK!A|@o{TIT8oT @9@4R !Ro@w@{@R !@ {@!Rs@K@R ! t@!Rs@Ks@ b& "' ' & ( "( b'O@ةS@)TZ Ѐ Ё[@R ;g@!RZ @T@!,@ ?@! @ ?gTc@K!Ro_ !;s At@@A,@A@~D TR ! R!Rp8R ! !!RfR !!R]"@<hT_@ r T [NTh R$c@@b RRR ~Rg@RB~[@DS!Rc*@RTRT@RѠs@c! @ ?@BѢs@@! @ ?@2Ѣs@@! @ ?@"Ѣs@@! @ ?@!s@gѡW`B @@?W@as@go@G@Q R !^S@!Rо`R !R!RľHv { /@bFC@g"@_q`T RsFg@a@Aa @/@{ͨ_ւ@C@qaT@?XB+@a[@T[ya_BA5\Ba5BA6 a @&A&B&C&`@+@ յ[Ca@u@B@   @ T: r T@`@'l?@TC#RҴ74} T_@f@7@Gi @L@a@_@c`@$B"IBӂ$|›?@TC@?@"@z raT !&R` ?@C'@R@[B+@l!Rac?@8'@ R@[B+@a բR ` !'q բR ` !`%@b@d @@q`T R_D@ R@q@T_$t@,@{[vt@S.@Av@ RB,@C@#SA[B{è_ XvRPv@.!,@!R   {$RRRc[S@ F!(@@+l!`@9! Q!?q T@A "8@ $4@4R@c@A@R$Ra `!/@RS R ` !*R@a $RRR!/B`@9! Q!?q TR ` ! +R@a $RRR!0,`@9! Q!?qITR ` !@,@Rf@ ( !`($RRRp@9q!`@9! Q!?qT@BC8@a@c@B4@@b#@ 0 բR ` !(@a R$RRR!/ `@9! Q!?qT@A"8@c@$4@B@@@b@!`R ` !/sa@R  !;M$@R B B'$@'@F*@@A?SA[BcC+@{Ө_ x@8@?@#;d rTOO@kD#@P rA Tܼ#@ @"8@d@B@!4@@A A@b!S @"8@c@$4@@A@` /#@@R $RR!-X@`@94R@! Q!?kTA@A#8@k*:4@ X@!.y@RRA`@9! Q!?k TR ` !@.R@kDkDx4R@ aUc *!C@@GO@/0@<` ?3R LG@ C ՠ@@k` T` @`@O@@X! @B{@C@T8@!T`X@yQx<`4 ՠ3@ R77@` @ ՠ@qIT)? !TG R  աO@!XjTJ?T GG@@?bT !0R` yW@R/@@7(*O@!|}O7@/@  ռ/@  R` !1@_k!T R@'@}v@{G@@? TC@ R{@ss@  {CaqK<@IC@{@Xkk?HT kT` R?w@ @) )A))@J 4BQ RCBpB` @@ _T@4@! @@@A8@c@D4@@!@B@!!aAa@9y kDq TR A @ AB _ kT@a4@! @ @*5 @) )@A))q T!RK* AK@qTKR K@v1x )@BBp H Ŋ@)cxL@d@b E oE@[/@zk< R` KR?@K@0K!R@K@kDk/ A _ `@9?qaT@`@9! Q!?qT R_ @"@9b7!|@!D@77B R9!LG! R_{S"!@9a4js84sa_ATENj38@SA{è_ ! ! {[S4AA9l@!4kT@s@SA[B@{Ĩ_*@SA[B{ĨĹ Ճ*kiTJ58SA[B@{Ĩ_ {[S!@F;B@9@O`@9c88@{`N@ysk|@9*B4q@ T@7LGc@ ?AT`"@ =ҠGR4@a@9?qA T`"#qiT"p@C@?rT@`@!A!@*`C@?qC@Tc4@`?֢3@@ @a@Cdr`TH@a@|@@YrT7@R1 5@ C@ !@@!A7\@}@a"cAc@`?TRFO@@ASA[BcCkDsE{ʨ_2LGc@ ?@ TLG? T@`"@]G@*5!pR @=@a@9?qA!T`@94 B94@@@@@`A94 qR@=@b" :`@9@5;@{@!`@ Rb@Aa @@@@@ a|R @=_c@9b@9@0" `" Ձ@!A8`@`@9 4 {" C=RGAe@9*@* @? T`@99{kT`@95a@9@?qTac@94a@@ c(@`?֢3@)"B95@ֹE !``ҁ `!@?ʹG@R B@945':l@(T@@9Qq(T5R Հ@9k T@9!4 @95@T_BTeT@@9kLT'@L@V@T'@?@N!T`@A'[/K{@!A#"F6h@C@7 'J@ cc Z@ @@4AW@Rb@ 5@ @! @8@aT"@B@BA@?@~d@cA/c@`?Ta@sB5 aA4@*`@cAc@`?TcCR @@'@9F7@!@A@@#@{Ǩ_ַcC @@'@R շcC @@ R'@c '˲ @_{@#,@4R*@{è_ @5@ BAB\@C|՛U|4R* @@@{è_! @RR5jTPT4R`@ @,[B@RR@RR @@{@SbF44@C@'TsF'@a@A SA{Ũ_" @" @#@A!\@$|Û!|!?cTR5T@!D@ ?yTVCTDT@j68[B@ @RҒ@ jHqTU բRa ` !`? R{[B@ҵ[B Rq v@[B[ #@$@d{ ST@4@8@`@A@SA{¨_ _ 9C_?T` Ё9R@= _@@!@!Q?xrAT{@  ,@`"A9b4"4@ Rb A94 @{¨_R_+a@ R @?{¨_$a@ R"4@?, {+ *F`fAy#@c_@aG@7`7!2aG6cG@c2cG7cG@c2cG7`G@2`G4`G@2`G`V@``G@2`G@@`_c@`@;cAc`@`?֠3@a@!A':X@@&T#:!Tb@BAB\@@?rT4c[CRR/Gc@!C5cAcP@`?a@!A"<@!A9@?rTcB9qTb@!RBAB<@@?֡G@BR@@29K@@9@5< A "9` `@Kc@A#J k@h@#`?`@G@g@o@Ad@ ?@+A6k@` 2+_@+@2+h6ʯ@Ta@9?q@T?qHaT4 kT[B@/@kD@*;F@a@Aʡ @@+@{Ш_Ib@ B8@?T[B@#@/@3@@'@;@`@`G7@`_ _+`@9|qT@rT`G@6@r T`@9qT{r*C_`C@R8a CBQH{@C@@ XG`Q `@9|qT#@J#@>@rT`G@`w6#@ @rT@9@qT`@9q`T{(AC C@ER$xaC*{@C@@Rx ! ` R@[B#@/@j ` ! k/ {@SF!AC@5\J);@T  Tc@CcAcH@`?b@BABX@@?rTBy<@T@`5*0@@FA@A! SA{@@@ _@ T#!TByCTc@#cAcL@`?#@By5 R W ն@`R @qTҽ ն@@R t@ҸC ոCҶ@@RҶ@@~ {@7@@{ɨ_ֹ#r6T @@h5T zӶ9d @3T!@ @"@A3,@G\@/o*B|b;bTAz С?AC=C@b#`?֠?@!Re@9a9՚%(TRe50  @At@&*?r!Tq R CzqAz`4e@9ZkT @c@9sbO@y#* Ak@`?֟9tO@y`@9x@95C@aÀR) ՠ;@sT @A@9 5!@ G)!@ B@  4T+QxqOzT@mT*TG@_T@9@29@TG@?iT@9 29 ՠC@aŀRQqT!@3,@s A9@!4G@b%Tt  B=<ҿC @@ @ @"@A#BABp@@?ra T!@@ @!8@b T@ A@9`@ !zӠG@!Z T@@9 4@@9qT@@94[`@95`@ !@` @"8@bT`@ |@A@95?qIT[#<R`@!@`@b!8@TbA@9{?k T`@94aR`@"@BABl@`R@a @94? AT!* A#/_A@9 ՠC@` #@@ @TC@ A@9@  @ R @ A@9@ R`@!@F"@6_T` AR@=DSA[BCD/@@{ɨ_B@9A#_qT @|@@ 5"@BABl@!@@  ` A@9 @ b @ Rgu a !`@ O@R?X5#@ `@T; T?@RC5;@CR(` A@9 @  @@#@G'!@?,@RRj@ R!@@ !o@B|!!@@ "|;@~m A9qT @}_{R{_ {  W9| @{¨_{ E` PC`@#RC9R!LGt9!@ ba@ @{¨_ ճ @@{¨_ {Su`@`@9!6@94@ @!@FӀSA@{è_{*q T4qTW@k!R@b жB Ê@y@cFi@@cT@ T@94@9!R@9b @9BN@y@J@y"@@FN@ !RB`/D@94s{ {C=| иR7@9 5@9@@RBF\ @*ƼAx@?rT@9q`TTqT qaTN@y4Š@@A@@B<@! š?T&@yb Ѓ"@yB!R@97@9k(TsE@ZC@b !RB`TCc@C@4w !R@@c@bA5BkD@ @@{Ǩ_  @@@@{Ǩt @Ca  !`-c =c$_ @ -@ @{Ǩb *B?¬ @ Cd @%?`- Є = _@@ -@@ @{Ǩb !RBaRzmRa @ !@%@BkD!R @@{Ǩq`TqT@b !RB N@yn7@!Ȭ@9#4 @b !RBxr` R@=I Ճ@b Ѕ&@y!R"@yBi@"@\@T@9b ЄB@yB !R]W Ճ@b !RB ccFSM Ձ@9b І@A?~BF!RD>"@9R_q`T_  @90q_C{Sc@[sdFbk@WOdrTB94sF*W@a@Aʡ,SC[DcEkFsG{BC_  @O@o 8!`5 @w@?P@?@d@95Z!@!?@!R@Ad9 @@QxrATR @@z T` @=K `@9qT`@9{_) T`@95K@A/R !@o! O@$ 4_ Ta !@=G` @!LG3@;7b@9Bb_T@@9`4A @?qMT$K@@?kT @?kT @LGT@@9qT@@9B_hT@`4?@c@BZ0@Z4A@O@?TA@CH@A|kiTw B=G@@57@O@T;@!@`@9`4"@`@9A@`B@!z˟T @@91TD4@y@ZBkTO@˟iT?@ZQ?@@O@ @":0 Hzӄ?T@9O@?( T`Q @@T!@!@V w? @ ՠG@A2RKݾK@i3@x_ TC @% @d@?kT@O@`;@!?CT7@ T` @@ @ ˠ7@`@T@  T@94@9?qTYLGG@a=R@q@6kTRRv@T Cw?@y RR>R?aG`0p @ @!@9!BA?qAP@TCT@! @@X@`_ @*@X@`_ {#@ a@!@!Q?xraTa@!a@"9 R @{è_ ՠRR @{è_Ҵ/R/@c@$RLG"9$9?Lyb @T`(@`7@`8@c4@B|@@$ " 5@" `@D@ Hy@ Ra " ?  մ@{cLG$8@ c@ T#(@c6C7@@q6@T ! 2v5R:^`L @ kT!@@4F@7~@D@7s@a@R5|@@D@qT"t@bB @_@-rTAC@R* @{Ũ_ t@` @5@ @ABC{Ũ4 Ҿ @A !+R@ t,@_?ֶ@AC {S3<@sNGB s@a@R@RR`@9! Q!?qhT@T(@s@! 2(3@Rkv r+ յ@u@@qaTJ@3YC{@4ݨ4!`ר 4s@t*@ HqAT`@927a96`@@4lrTBkD+@SA@@{ƨ_ նBkD+@@!`@ R@SA{ƨ_3@:%R B@b@@@qaTAH@!R @9c29 @(@C7@9 @}@4 (@`h7@T @92 9! @B@R r: Z@:@@@qaTSK@37;t*@jT @@T{@h4c4a ! ]@5`@92`9`@97x7@92t*`06`"@s@R @ !/`A !@>5 @@qT t@ @`@__{S@4 A9B_q TRB _q@TSA{¨]@!@!Q?xrTSA{¨QrTb"A9BRSA{¨_ RB " _ {ScFd@_|8!%@9R5osF@a@AʡSA@{Ĩ_H !(@a7_ {a !@S@ ТRu@ v@y`R R9@SA{è_ RB " _  RB " _ {ScFd@_|8!*Q@9R5%sF@a@AʡSA@{Ĩ_ !(@a7_ {a !S@ ТRu@v@y`RI R9@SA{è_ RB " _ !DF R_ {aR` R{_ ` ^R{@ ` @}{¨_ աQR` ٻ` @}{¨_ {aPR` ͻR{_ {OR` ûR{_ {NR` {_ {MR`  R{_ {LR`  R{_ {AKR`  R{_ {IR`  R{_  { 7@ @{¨_ {S*$5`RSA@{è_ aF@!2aF`R@SA{è_ $RcDFd`9 {SsF+=/=3=7=;=?=C=G=`@OҠCsw R7a ! FEF!R@զ@@RFO@a@SAR@{ը_ {@'W@T@q~@mT[QR9&x +; @v B@9?q`TT!4?q`T!TRB@9R`? qT?qTDF`@94F@9qT{t"AT[BC @+@@@'@{ƨ_ @R`? qiT?qTy? qT?qaT@R`LG` ա\RWRJ@9 C " ?q `{S*$A9 7`v@`@1T`@Q`4SA{¨_ *g`*SA{¨r  H_ {St[F@o $A9 7`v@` @a@@Tw@7r@`@.@w) @ !R@F*o@@AʡSA[B{Ψ_֠@R*6@`q`TR@yRT@R*7c*R5G@*#R¦5D?#Ta ! R@ ܦ'R.5@R*7T{SscaF[GFw#"@w`|| @AR* G4R sF*w@a@AaSA[BcC#@{Ϩ_!!Kc6B,!4hRRR%R6Skc[c?ր5 +A9AR 3 +9GF@oK74GF@"@? w@{@ o@ 4 +A9!R* 3 +9ARԤw4R` ҹ 7#2~~@jDc `@  RD RȥD{@\U{Ss"2cFA @d@a ?sF@a@ASA{Ѩ_ պ'(A9rT?q*T'@ @@A@R7rT@+A9@Һ'@ @@`IA7T@ Ք@RrT@+A9@c70"'#b +B #}R5@ @q@T["B`T"2!`@jae@"2@cC @#@+@ ?@G@TK@[T/`H?;@L7R7@5@  @q T!`/@[cks/@#RҬ7@ @* T_ LF_ !PF{ ?{_R_a! ?_  P_  @C @kAT#@D@Te(7E@95%@95B@ __{@6!R4[a ! *s)@4T!@*s 5~| @!Rhv_T!.R@5@9[B @*@@{Ĩ_ յ[B* @@@{Ĩ_ R@9Rq`T*_@9 RqdBz@Tq RdBzqBb4!R4@9qqB*_! @C @kT#@D@ TE@95%@9e5B@ _ _{[@!R@4Sa !sR  sQ1T_@5s~| @!Rjs_T!%R 5@9SA@*[B{Ĩ_ ճSA*@[B{Ĩ__,)T{S[@c! @ ?@`! @ ?@`"2! @ ?+HTRSA[BcC{Ĩ_a `2!ߣ5sR RSA[BcC{Ĩ_ R_{S<95c@*cLAR`?!R*@SA{è_ Ք5c@!RkT.qT,qTkT0Q_kJzTRa @ !'`RR2Q?qJz!TRa @ !`RR,qAT {Ssc4RbFC@7[R @[B*sF7@a@AʁSAcC{Ǩ_c+rT/@R|[B ա/@"RrTkõ TT T)Tb a B!y !993@A/@4@S~rT/@M[BkD (TT0TCTy 49TY 9"Ra @ !{kDTy 9CT Ty $9#Ty 9cy 9y 9y 9cy 9y 9CY 9#[k{ sbFC@/*R4 @@sF/@a@Aʁ @@{ƨ_ բ#rT'@C"rTA !!ҷ+@ ՔџT|hu*5'@΢@6JHBB'@Ģ@RR R@9Rq`T*_@9" RdxqdBzaT!R4@9qqB*_q RdBzqB4! cQcdq(T!{Ssc@cFd@G5Rо@T@RsF*G@a@A!SAcC@{ɨ_ *u5A !@4A !@ 5@!@ ?֠@W@hT `TqT@RR;@1@&A9x&9@k"}˿T|!2A7?*u4kD+ ݿw@@H T/y\_ATVT/@ִq`T@R@u@kD+@j68 wd_@T{CT5R@"@&A9B2&9Q@kDsE[ksekD+@R@Rµ@/@ {Ss[t*cFc`@gk  /*RҠC c@1rAd@*c0@@3HrTRsF*g@a@AʡSA[BcCkD/@{ͨ_ ջ+ {C=@C@s@@B B@"C cc@ywy`T+@*3 T~@??@z T R!k TR?@g@AT7@RZ:  kT@A?@T;@ ǽ T+@&A9;@! 7?@p@@!?@?x@ @ _XzTQ cR 9cT @@`T+@pV5@ дk T q T! T+@`+@_+{?|`S#sЄ2eFn@_ҟ|R|'S||||kTsF*_@a@AʡSA@@{̨_ֿ~`TA R!3*S@ 55B ˁR3b*qT)*S@`4k@5fR*`4@k@@q YR@8 { A9c@q` T6$@6 4@9cX@ Dӵq@ T4 qT (@#\ `@9d*@ҺtznD`9d~zna@9r3a9Tqa*@R! mrT RY@`T^R[* @cCkD@+@@@{ƨ_6 @4R_*@@{ƨ_ ՘rAT@T9cC @@!\@4R? T @cC@ չ#@R @*@cC@@{ƨ_ֳ @@cC շcC @@ԽVT`*@7@6@@@q!TԲqaTRA @ !5bR= @cC@a^@ n @RӳRA @ !3?RcC @@B @ kB`1-R5+@9CqT#Rb39(@\A2(_{[ukF"@9c@? XD`q T+*4`@9/~@t`9rT/@`"@R@a@9*F3a9?@@b4[BcCkD@+@ @{Ȩ_ `@9t`9rTA !.a"@A 5`@ !7G*5`СA9|Fxax 7`R@R`"@@ErT*/@/@/מB B`1@ sBa5R5 {[ucFSC@7'l|@SCkqsr T#S@?qTKaT2QS! 3@!|@/?Tt 3@"S"@@3]#@@9"R/@"A3^9F7@@AA SA[BcC'@{Ǩ_N@3@S"!@rT RвO#@ ͞`/2cQ5/@s/TE . Rҽ @9"RW@#@A3z9^3@#@ҭ ^@9!t9#*B B`1@ B  R5]{ seF@rT+@R7@sF@a@Aʁ @{Ĩ_ {SsbFGC@7|@bql T&@q҄`^@RRKsF*7@a@Aa SA@@@{Ǩ_֠@9rTCrT5! !.c5'"@?|`aT|`TRR!@@`RR@ դ#r`T'@@9CRG@@b3"9*zB B`1@ BBR5ӱ{ A9 qT5 @  $@ \@ @9r T @@RR@{è_ֶ LrTR @[B @[B { A9c@qT# @D@`T%\@RR{_ %(@%$@9rTy  A9!? qT@!@  {R{_  A9!? qT@!@  {RR{_  A9!? qT@!@  {RyR{_  A9B_ q!T" A9B_qT@B@@ {`ReR{_ ?@T R_ {Ss@SRR_`HqSA{¨_ RSA{¨_@ @E@@I@*@*ѿk!ѣ&GC4 id8Bha8kTcQ# ha8!@9kT?!TK_K_@&@A@E@@!Q  ! kTkC4H@*@*!Gi`8Bha8kTcQ# ha8!B@9kT?!TK_K_{ | @{è_RҢ@{cA9St[*C@#@5 4QB" @8?D  VaT@@ Sx`'* s@` @T`@k!T`@w5`@k T 4'@'q`TQRҗ4@9R4 @8%5ckTD \ V@@8D _@AT պ'@t43@T)#@SA[BcC{Ũ_!@9#4R*"D a@8V VA5D  Vʝқ#@SA[BcC{Ũ_Һ'@'@ {S#Rn`@SA{¨_ aB!aa@ `SA{¨_ `` {Ss[bFC@/׮F@A07*@6"@ b x7@# 4*$Ś 7z@||q T$R kTdQj!T6kTQjaT@B @@@(@@J rT@kTx@kAT8@:@T!b6@!P@! "@ "@*@ @&7~@U 3rT@R@ RsF/@a@AʡSA[B@{ƨ_&k@@9@9 ҉c'RR!! rT*@"@9BkD @RߚB @ иB7/R@9'b'%kD  {"SkZ [@#cs7@@ ҠG{=` @;@a@?@@?{@s@`*@7d"@| 7T% `@ T @"R@@?@SAR[BcCkDsE{ɨ_IT@9 55s@9@5TG@G{@ @@!A9҂4%C)c !@"@@@f@ Aa@7Ҡ?@ʭ*a@ @!x@š"G!`TGT`z@5R"Vˀ @BBBBA_@BB @c@q@TiTC4@9 5"@85kT5TC# Հ @*`c@9RC#T   T) T @9 4  Հ @7@*CkC@<T @949R@SA[BcCkDsE R{ɨ_@@ G@ A@" @7 @@@@RrA(@!*A(@}c @@R@?ka4@@@s"`cK`T_q"@@a!Ca_1cT@@kc -u_ @s"s"џ@#@@ Tv@@C)b Q?k#T@ KjT_kbT@@@ @5s"TA @`@@@*&4E@@!@@?`TB@D A@c`@$ @@@4@a%4@@B!K@!@@{/\@S!8@"t@C @ T (@U$@ke@T@6@@"A;@!x@|q@  @ +@9Ҡ7@AT@Q3@TTut${@@Ut@{@#@TT  RSA[BcCkD+@/@{Ǩ_֠7@a'R^/TR#L@R6@a 5ҹk|@ նBkDRSA@@/@{Ǩ_ T @ +R@91 /@ R{Ǩ_R_TB B7@ B`jR@9+2 B{c8@'@hT T@A#@AcC{Ĩ_ @ @A9 V@5*gӚXRR_`@@ @@!@AcC{Ĩ__q T*ˇ ÚT4@95R զ@8&5kTRR5@A94a@95@@@ š"G T բRA !@;a@>aCTja85 Ձ@94џTB B7@ BtR@9B B7@ BuR@9B B7@ BauR@9{ ` @r` @Șs@s @{¨__ _ _ _ _ _ _ _ _  @C@&(@|%4@d"8@seh D@AT?_ @C@kTB@||CBh``@"_ _ _  {Ss[aF`RF@"@/ҵ qaT*@7C+r+@ sF/Aa@AASA[B{@@ _ֺ'%R"@4c  0)a%1%%"@%''c%B@%s! %[% ҡ {[@[||53 c!&XR9+!&3@|+@'@C&@ nҺ'@C @!@ ?|@@BA@?'y{ @@ @{è_RҢ@ { sfFB @@ҿ/" ` @'tUT|ԛCӔTa T`(@ 7`#:@LG@ ? Ta8@?@ T @aUB|AC7}ӷB@"@R&Bc˖1rTBR@@@kD'A+@WHK@gN@u@r_@@ˁ|"*@Rr**A+@R @r5@!*A+q"_@0BkD@<RsF*@a@A. @@@/@{Ԩ_ մ@'@ չkD@rT@e@@"@/Ta+bW!|Fg  ,@@9 @5" ?֡@[@A A!4@@ @ ?֡@s@ @)$Tw@#R@*2k@g _ qT)T9# _`2 #R! *! R!2 #r T!Rr!@'4  "@P7@2_@ !_"TB@9"4AR4|Fҹ?So*qTq TqT5S@@W@ @?֡@W@< h`8`4O@ Ձ@9A9Z"@8_q{"@9 T4cT"@@4Qo@3iT@95@F?@S@o@To@ -R<-o@k@#Rw@*o  @o@C W  Ք@@T @!T@5*o@W K@@W@C@#\<CRA#:T@_@g@@ qTq@@zaT0  T@9qaTB4BQ#bx6"@8bx7WMҨr@@K@@b@"\:BR"aR@@@B+@jBRG@A !<L@' Rө+@BWk+i{@8@ңc@2x!cxa!T@_T4@ a=R*Ҧ7Ҡ2$ BF!2\dlt p|&"AR$7BCD @FO@@AA/@{ʨ_ aRA3@CDҟB @ aRA aRA# *A" @BCD eB6R"@A"_ {RA{_?qT@@? qT@?qB@_{S[*pA!@*7qaTa@A5 @RSA[B{è_ 0q TB"qTq@@b @e6a @rAR|A ?q T{B g 6B @A hTwT**@7# Đ xBA`BxB6`B"c08  @z@T** 7`B2`#@ @AB@{Ũ_  @{Ũ၀R*A R'A @R{Ũ#A@94aRA @!#@ ~  @AaRBC{ŨA{[@S@!@ ?*@@!@ ?* @rA "qTTqT@P6a@/sB0T@@5 @@SA[B{Ĩِ&q!T"@/@@!@ ?`4q TB"qTq @ b0@SL6a@/s"0TR@ pA B6B6?hTPAB@A"cTpA _{S!@|Af 7 ?RSA{¨_ ՁRx@ {S!@|Ay ` @s ?SA{¨l |A @AAA#C_{B! 6A?T xA3 @/7 a @rAJ 5uu@BIT@`@!@ ?*$qAT|"@a@A4/@`@!@ ? 4qT#qT7@q@! bb/ AR @@@@{Ǩ_ ոCD@/@A!"@3@_IT3ARB?TSA@@{Ǩ_ աR?@{Ǩ_ ՁB@!x@SA{Ǩ_BAAB7R_ | {SSfF@4bC@9#4Q*qT**DT @S@qK2!pK!|Sf@!т@)!A!A!A! A<S!@A`*!u)B*[B AR?sF@a@AʁSA{Ĩ_ R? յ[BC A c C!2@[ {SS*dF+{@/ҟT[*B#** T'@Sq#2aqA) T[B@sF/@a@AASA@{ƨ_ C@[BRE? աBB!◟_kaTBA4 T@! [B@Ax4[̎ { S*aF["@/Ҡ+ a@?q(Ta@?qT{(TCQ +@4+@4Q?qHzAT#R*T@)ң'@~@Kq!p@sF/@a@Aa[B @@{ƨ_ִ@R> ҧ4+@L4@ R>@Z $RDRcR7{ST*F'"@/a@[#!a@'a@c5$qTC҃R*@T+@Rq@Rcd@f@C)A@&)$[BF/@@AaSA@{ƨ_[BR! !`d@"R!Ri0!Rh>[B Rc> յ[B[{SpA{ `B6a@@!@ ?q TARH>@SA{è_ Ձ@`B@@2`R$ )"SA@{è_ աR2>@SA{è_ {T/*FB@?Ҡ; 6@xrT# @$ @zT@q9 ?kT$xR~*T @7@+;@4 Һ'a{3s @ITzs;!)zs շ@#@R=@F?@@A!@@@/@{Ȩ_ աR=a R=@@#@@@#@ @'@7@q@RR@ * )"69Q@@{9#@+@ յ@@#@+@ պD @k +6 {ST[*Fc#@'R2@ R*T#@`@ @RqR``)a)F'@@ASA[BcC{Ũ_ (4$qaTsA #  Œ` `RN=ұ{ST[*Fc#@'R2@ R*T#@`@ RqR``)a)F'@@ASA[BcC{Ũ_ 3$qaTsA3 #  r` `R<ұ{SS*aF[#@'RE2 R*hT#@@FAqR@R @"sF'@a@ASA[B@{Ũ_3$qTrA #  $ҠR<I{[*SR1 *T*[BSA@{ĨaR3$q`T 2 qT@SAR[B{Ĩ~< SA[B@{Ĩ_ {dQq S*cF*a@'TbA@9!5AR^<@@sF'@a@Aa @@@{Ũ_ *1@@RI< ե** T#@qRR@!@A)΋ {ST*[F#@'A@9?q`Az`TR*T#@q@Rs)F'@@ASA[B@{Ũ_R_1`24R! !`g"R!R-!R;{SS*dF+{@/ҟT@@9`4#CR*X@T'@q@RR@!A) AR;@sF/@a@AaSA@{ƨ_ R; բC@@D cR%R#R!{ pA'*`B 65a@@!@+ ?*a@@!@ ?*a@@!@ ?*R"qTk`T/|}Ӡo\C> 7*@@T8N49#*?AT T}jaD*@5RP;#@AcCsE @@'@{Ǩ_RD;A@+@ @@'@{Ǩ_ աR8;@ @@'@{Ǩ_ X*j)`5@95o@qaB\@R92{cC;*#@!2RAsEa@ @'@{Ǩ_R; @@'@{Ǩ_AR;@CAsE@ {*@V|S{_C{CST[FpA3C@_ҡ`B 6k@9qa@@!@ ?*a@@!@ ?֠a@@!@ ?*@Qq(T?kT ||ӠXC7/@`T*?@R9O.*O@C!T?@ ՜T|ja)5R:cCkD/@ aR:kDF_@@AaSB[C{A3@C_ աR|:v*m4`4;o#|?O)q?@ @O@j#T?q@Fz Te@ҟҟ b @?P)@RaBq\h*`**`\*cCkD)!2/@RaAR8:R4:kD ylq`Tuq!T RҠo; @94@/@'@CRo:; ՠK@Te@bK@Җ `Ӏ @?q!!|!9Q!|ӡO?! @?.To@?@45 еb! ТR! XG@!R"R+!RGck/t#@%@K:2K@5@9;@!ğA A! |]pS ocCkD@/@/K3K@MT9! ТR! TKqK@TO@j`7 b(! ТR!` ! ТR! ! ТR! bG@"R!Rz+/@cCkD{GBS#dFO@? 6#G@v - T@G@cA(CG@@!@!@ ?*G@@!@!@ ?*G@@!@!@ ?*G@\*?'qT7R QG@q$Nz@TA"Ҥ  R 7?qhT?q&T?qT T?q`T? qA0TC@**@T@BCDR 9sF@a@Aʡ@{B@#@?@_ D*8@BC@@9`4C@*H.i.*?k=4?'qT_'qT QqTR! ! `CC@!R**"R*!R8BCD@ @X6 ՠ;!1@5TG@ ՠG@lqT ABCD@ ՠ 7`305@7@!@`@!@ ?r3@;@@@%T?T!RG@.G@@T**a;@@@?k!T?;qG@T@BCDZ@_'q"5C@*aTG@B.5G@?+qTT?#qT?'qATaTC@**'@Qq)T]G@}*iO@-kaT QqhTfO@@!@!@ ?kT*6)?q`T?qT @G@ TҢ#* ?7qIT?;qa TG@-G@ T*@_'qS!G@51C@*M@TG@##? բg@7G@R.G@@`G@@FaTClqC@TS@7G@pqT_G@;-G@.@TaTC@*}RG@#H15G@@G@@@?A TT01 5A4R! !@`އ'R3AC@PA"R!R^)!R ?T RqG@$ Nz T;@@@?kTRG@?-5c-`4! !R `C@!R"R1)!Ri'1#1@TR! !`G@11C@!R"R)!RHG@УB.4! R !*J{SpA[#K@a@!@ ?Q?qHzT~@RTSA[B@{Ũ_ R6@SA[B{Ũ_{ 3cFBd@'Ҡ#6|A`R6@@sF'@a@A! @@{Ũ_֡R6  *Tҡp A7BRB!2@lqT@@{aRp6@B @sq@B {?q4AF A@'*B#A6c nRD6cC* @F*'@@A!A@{Ũ_֡R56*`"AV l4,qRTR7cC @Rc  @cC R!R{S A`A@SA{è_! !F,F``@SAR{è5 Q_qHT! ! `b! R`@ ! R! 6`9{^{ R`/{! R! 6`( B_{@$@`@? R{_ {S@#@@`?4@Ra SA{¨_  RSA{¨_{@"@ @`@?a @!@`@@ ? @{¨{4F "@/"R; @?`@@?`@a@ @F/@@A!AB@{ƨ_  @@T^`!5`@ U` ȅR ճ @ ӄ{S@#@@@`?ր4`@+ RSA{¨_{$@S[@@R?TSA[B{Ĩ_ց @R!T(@@*T@@jT(T@T* *?T(@T@v@u@@R(! SA[B{Ĩ_4R @r R74@@! @(@d(@R@ {#@Sa@$R?TSA@{è_ a @RTd(@a@*Tf@@*TT@hT* e*?Td(@T@ Te@ g(eRSA@{è_4R ն Rw4@v$(`a@cd(@ ՀR@ {S34@fF@O @+R?TD@@sF*O@a@A!SA@@{ʨ_ Հ@3@#@/@ +*"@ՃRT*@ @*?` T@"|bhbb@A!@A@DR@* * @5R#/C33R \C7#";?H!9CF?@*4pqT3CD@/@CD@/@ R3@D@/\ !@!G!@  "@!@BhFB@@@{@!@q{_ {S3@sG@a@ ?*a@@ ?aRSAT@{è_@ @C@@`TR_@A@?_ {S3@sGa@ ?*a@@ ?aRSAT@{è_@ @C@@k`TR_@A@?_ {_`@ Te` @T%$4Gc GX`uAB @{Ĩ_K@$%4G҄GB`@ @B{Ĩ_ִAA*A{c  @@TҐ @@{è_ִAR @{è_ִu@@ @`TAR @{è_ִA {@ 3СsFb@ܕ@`@ ʀ @{Ĩ_| @1@u{R@ 3пdFa @`@@sF@a@A @{Ĩ_Z {SC3@bF A@'ҿRwR@@!@!R@@sF*'@a@AʡSA@{Ũ_1{@ 3СsF!@c@һ@`@ ʀ @{Ĩ_{@ 3С sF!c@Ҥ@a@ʠ@ @{Ĩ_{@ 3РsF! c@Ҍ@`@ ʀ @{Ĩ_ @!@8 { `@l @{¨H %$4GGH {"R @ @A ?֓sR@* @@{è_Ra ?! @/_ {?!Rɔ@@T{_ { ?!R4!@?@T?!a @{¨_ a {  @baT s"?T`@iTT @{¨_  @{¨_%$Х4GG{D{_ {[S*** 4@@95RSA[B{è_* @ R46N@@ RSA[B{è_  { 3СcFd@" R6a @@sF@a@Aʁ @{Ĩ_ @_ { @@6 @{¨T {S[ ҫ`At^v Y`AR 7*@SA[B{Ĩ_ ,*R1**@SA[B{Ĩ_ {bC@c5@!@ @@_kTן@{è_ֳ @c@U@`A$`@A R @@ @@ {S3AbF[C@'@A`sF'@a@AʁSA[B@{Ũ_ ՀA< A7T!!F@ R0@G@R! !`6` *R"G@0@(  {?ks;STA[`FccC@WҠ3ҢKD*56@AO@@8`s1*4pq T;@T@{FW@a@Aʁ SA[BcCkDsE{˨_ ռS@ @s Հ@Ң?@2`v8K@/0 ե@qT{R! !@7`{@@R*"@0 Հ@757@{R! !7`o{@{R*!{@*/{?SAC 9F7@wҿ_'FA #sFcsCSK! ;WOIJ_5kc@C@A[`@``aCIJ@{ I`4pq T7@sE@@ Fw@!@A SAC@'@{Ϩ_ֻg@;@7@`ws"CӠ?`@#R6AB7b`@#R6@pqT_@m/@sE@@*C@^/dbR! !8`C@RRL!G`ˡ{@CG@!bA{ @0q@T_@D/@C@9/@sE@R*sE@@s~ {8[FS@/ҿ'TT `@DT#CA+@*4pqT@FR/@@A!SA[B@{ƨ_֢R !`9`_*R *.@A|~ {$B B@2a@du`5R` @{¨_{SA @@@!A !}H~ [`A!}B~A#A`?`B!a!}2~@``@u} ѷj @v j [BSA{Ĩ_ ո@b@R@Bb`@SA{Ĩ. b@R[BB@b`@SA{Ĩ.b@R[BBѸ@@b`@SA{Ĩx. {qS3[!@bF4A@5!R4@ZsF*@a@ASA[B{Ĩ_ } {c7[F k*C:Ss @Gҿ?`C=7*_ T,I@TT?/I T``A*C@a qTM TC@* 6F*G@@ASA[BcCkDsE{ɨ_ !4A*C@ sqTTC@*67@R `J~C@ R!R  c:"o! ;N  RpqT*-*64 R!?`~R*  !@>R `~C@ !@:%RRR-*! R!`}!}{ F7@OB ck# CZC: [s 3;G@ TA@K@A?5[H T @`4$ B@@T@pqTF";?aT[BcCkDsE @RA _?A:&HT`A? @T3@ 4~A0`@T3@`@T   c:8! ;G@,[BcCkDsE @!!FO@!@A@{ʨ_6(*, 6 R `C}FR!R\6@*,[cks O|PA HA@_@HA! ! _{_S""4!4R,SA@{è_րA`A @SA{è=~R,@SA{è_ "! B4Gc !G GRq, {[AS A` E{B{@@ TA7* 75{2{@ TAm K|!R`7@*SA[B@{Ĩ_ "! B4G!G GA *`6* ,@ ! #!Gc4G GҘ|@ ,||@*SA[B{Ĩ_ #"! cGB4G!G G@_ Rab_ {S4A*FO"@guj`A,aB`A!2a@7B@.7`AGCs?C7SkS;G@*B5C@J+&T T{CT_@A*T?@G7@@IbA c@$R*BE7;@%Rc@*@EH@_q5T`jC *6rBz PJ7{{c@y{@! *@Ҧ7@RR0 H@ 7 _{@`AR! !`{RRG@! *@s I{S@G+/@CDaB!xa 5BRFg@@AADSA@{ͨ_ַc աc@8`A*4pq@TbB! !Bxb`R{*!R * +kDsE| &Tc@R*"B`!7c@R*D&@-T@ 4#{u y{u`A6R*R ! `;{RRz@T{u @cT#@zu Tzc@zzaB@!xa 4qZBm**R ! `{RR@` ! )@ z\ zc@z@S@*kDsE; #"! cFB4G!G G ``Rg*3 aBO@!xah*B*R !`zRRP@RGҿc0_@ @`"c@M*_@@-z`4 @s _@"@!@#7_@`AA@_=`As#R@7@@U @cT#@`jC7R#7! zu"R 7 TzuR6 !R`rzaRA!$HAD!RR@qT5ҹ#{uyA% {u @T#@-  ! R`OzaRA$HARR   c ! ;V@qiT:zzZ @_cT3@ @   dJA !$ ! R`zaRA$HAdRRpqTR ! ` z*R@)kDsE 6RR ! `ybRRaR~)dJA !$  c ž! ;@qT5{u @cTS@j)*\) ! ТR`yRRN@R !@`y*R@@?)*9) !@R !`y_@*R@%@$)@ )%yc@#yR !`yRR /x@?6@ ! R`gyaRAdJA R(: {+;S`FR[ckR@?Bg@7@2*)mqAs1w@qs?@4*({FK?@a@ASA[BcCkD+@{Ȩ_Hx {S0qT2*@5@QqT*@SA{è_R@*SA{è_ҝw@@@A '@*SA{è_ s&As.&Rt({S$A7+F"@7Ҡ6A  'z@'` @`vB 5b&@a @]wbA dB&Ac@@#6FxDxCs@R'@&A&*A:x*Z*-(F*7@@AʡSA@@{Ǩ_ ՁZB@?kBTZ!xC@'@&A7 *AxZBxw* Cc Ղ*AAX &A*`53@ZB @kiTȀ  c! ;x+@'4@*K@a@!2"`   cb! ;3`C@'@ #! c4G!G Gh&Rs' @R&As&sRRpqTR !`x*RK@@p@@w';w{c7SF B[cks 9a@_2 `K`AY*`5C@@ @97$@@?k@T?@RwR!Rf`A?*4pqTR !`w*RR`A#!7S@G@!!}vS@G B}ӡu!cA!FbA`?G@`A!'uI!}&@ejCCBEhc2C!T! vS@ OB}zuO@uvIG@B) 7BRv`7uRv`7 v`"vw@5v47@ҠG@8vO@vv[@@W@xssv[@HTW@vu  ա7@`Bx`F_@@Aa SA[BcCkDsE{̨_  Bw@&S@#O@# "@?@Bx@aTvtuG@vO@vv[@`ҠW@xtv[@HTW@vR !`wRR hX c     * e& CҤ cu {!@ @@@ @{¨9v{"@@!xb @@2 @{¨+v{S@`@a@!xb"@`@!xb@SA{èv{S(AcFd@/bXBTRRA *&EsF/@a@AʡSA@{ƨ_ @xa@ @@IT(@@T`T$*B p%C@5@ `RA4*% B~R}R%E *B1%su  c@"@R!Sv{SF+@"@G[b@!_TR%FG@@ASA[B@+@{ɨ_a"@ TR% գo%o@*v"`B6Aq"A@ ah* 5G`'4A@@`D)@KSZ`*@ !{`da*@` `*U[aQ? 1 T*cTq%Re%'@C A9@@C)@KSZ`*@@* T@@ @_kT@_kTa*?BTxa_1 T@Hb5@_kCT@_kT`* '@C`y5%R*%r *'@Cm)%*%eR%`?T't {[cFS"@/tcBҁz!!T@ @97 ж@n@#c u@ @92 9F/@@AASA[BcC{ƨ_ցR$ot{[SF*cC@7#@ =@9@4a@'v5vA :@` AyA:3҄ SCt? T@ C{c@W{`'@F7@@ASA[BcC#@{Ǩ_vA:@`A:yA }R$'@V   '@$D)bbcK!@$a`a@ $C)bcK!@$U`a@ !  R`tRRQ'@ !'s{S$AbFC@?c@sF?@a@ASA@{Ȩ_ ն@ A@B@ #d5AF@C!?T@@T`T@*B #B@ҡ+@L 4+@s 4AF@!FT@[B ՀRAR[B'@ @*B?# Ձ}R#@[B ՀRAA~R@#!G GlB R#R ! `3tRR[B H+@ 6@F@@F[Bu[Hs {S(A["  `BR 6`A`"A@  SA[B{è_  "`B 6`ZB T`*Axv@R!Q?qT@ 5@B `B@7`"@ ` A@R@ T`A#R T` A`AR  $T`@xv1Ta@5H`R`RA*[BSA{è:# `A[`"AVR  c"p! `"@U~R`@TR lT`RA[*#}U~R  c#br!r բ#{c kC[SskqcV`c47t@94r@ t@8*`{`xo7T|)rq T_8 QPqT7@||!!@`Tz@$@9d4q5@bTAAR"RABBA@4T`TSA[BcCkDsE{Ǩ_2B3 @!TBAHT_T@~r@RB~q@x3BA@4TBss*D q@TBA@4TRAB  "@_T"@Bx`5@@x``@@TB#@@ ~T#@wx`5@ha*B6t@9BW*T5qaR @ATSAcC[BkDsE{ǨD" aj`8w`{ax@h7AR\r`_8`{`xh6s`_8`{`xo7|ˢ&B"B_"T4ra" @v@e7@3 h`Mq3@5-rp"Bh<8"B@8`{`xo6@8`{`x@o6@@x`TB@ ~Ӡ@ha*B6!7 !7*BW*R!t@9aRq @T0SA[BcCkDsE{Ǩ_֠RA*R!7@x3?  {@B !7B!T@ATb@`@Axa @A{è_ ` @A{è_ Հ@AR! @@a~R! {҄ SkR !?`k*}RR B@In}R` c@& c R! *=kTh@)Bf@ ZZh)c0Zfg@)c BZZg?) qHTx4"@BZ""i @)BgA)) Z Zi )ZZg)c@q TqT0!T& @)"@ZcZBZ& )" c@& c R! *>Ok{ `FO@@G  A&+a #A&3a' @&#҄`@ sFG@a@Aʁ @{ɨ_5j{C{A_RҗDA@_ (_(B_{SB@@`@C @` @? @SA{è[j{ @S5@5@94@4 ! Ij@4 !@Dj4@ ?TA յ@3R* @{è_R* @{è_ 3RA Հ"@Aq {S[cFse@Wc#@CK7 $A!G G@c'Ck'A5S@k@@@5qT3 53@@@5O@@6C@R'@*F*W@!@AʡSA[BcCsE#@{˨_ ոcCҺ'@ !`B*@54@@`@`*4pq T4?@@~ Rd'@ Հ'AO@75@@@a5q TO@@A@@`@BTa qT7@R !iE@RF@D@C@!R~ O@ աS@`@!@?֖M*4pqT@?@!~A6ˡ;@~  բR !``i*C@RS  *P'@*bqTA աFRiRE@F@D@C@R !@`i*C@R1 *.'@*@C@R(*; ՠkpq@TR !`ik@C@R* @*'@* C@  c#!` '@'h{S*[*@c kC***@ **i 4rA+"A{s 4sQs/s}Ӕ~@Ҡ?@5%ku%@@5qT;[;@5@"A; "!TsERSA[BcCkD{ɨ_ Fku?@?T4 ku@kT"T qT;,;@5@A@F@qaTC@Aku@  c` "*!` sE4;@+@{srA A7d4QҷcL$k |@`?@4;y;@77@T?@#ATcCkD @@*@sE@{Ȩ_ .  c !` @*@sE{Ȩ_ `@L`@5?qaT;;@5@"A;=;@  c  b5!`   c 0?qT;;@@5@A F@qT {CBSbFC@ҿ6A6@'sCR@r"R|||7R*BACGb@7@ @ @@ A[#C38 @B#A@2t{7@ @@@A#cs c@@@v7k@m!c!c!b0 `mTWs@mg@c!c!b0 `mTS@@A4@&AA@@A&A @@ sTv@A`lҵ@rS[{A;j@{T3q)TT"q )TvT:qAT#{@ B@`@B@@?*C@`@c@`?Qd#@qTcD)HT3s@*TR` RsF*Ba@A!lSB{A_ աR-*@kCrU4O Sq"TT"q`!TbT*V4 qI!TqT3   c "{!` '@ * J b @ )@ ) C G7fOTO@FBKAqr s1?6A_A!AAKAO@0;cJM@kY4@$A`8fK `@O4@;G$A@s@$AH`*4pqaYT*H @/P*?@*K@Ҡ@! @D7?@*>@`>(A > @*@Ҧ@2! #@%@A79QK@5f?AO@ ?!WTUA5O?@ҡ @"{@@!WT?@CA5 O@ !UTT{AX @Ҁbd@a5 q/TIT"q1T(T:qT@@@A@@!@ ?*A@@!@ ?*Q"@qTD) {hT 4 qI,TqaT@2@B@ `KzK@u O xK GAO@ !KT@@* @5  k@4GҥG@c`f7@O@o@b@2 M7@FdWM2eGO@B53@ R ?H*ABB@!xDB*CBESAR>@BFMA $DH ,CV@sAWPA9ROACN+BDNGAr$@Ap~d0E@G@DCA$,*BL+AK[BI@J@GA@AsFA*Zd3@BEADO@I AGAJAB FN " @AJAIAWXC{@AA@ABkCzj'%c@AҠcFKDLBM@N   _sCXA BK@J@ JK_KB _?||@ _O____ ____Y_}}_____|________|~~~~~~~~~___g_o_w_ycucqc>[BcCkDsE*;@ S8K Հ@  @$ @$VK@C93BT@Hs@T@? ա;@  s@5@z~Ӂ-c@@F*@} cv@#"!Td ({@*K@*@2@! 79 9@ **2 *@ 4K@***" 6K@dO@d[BcCkDsE?A'AA Ro9*K@(A@ P*@Ң?@! #@2%@]6k@_dO@]daRR[B*cCkDsE@K@G?qs@@AH*4pqTO ՠs@@#AH*4w@ ** **@4{@*K@*a# `6 RASA"$ARo9<ҿ@A,@#A)5ғ c…!`z@ ** **@{o59fg@cR ! `Sd@R*[eec@[ckskc [B'@aRD c?bR!`@Ad c?R!`9d c?"R!``1d c?"R!`)da{S@[*c|@TsT[SRSA[B{è_ ՔsT*c|@Td@{SA[B{è_{[*F "@Ox`7@@" @$AA9B29" B!0@\c/fb [c#a*5*b s T/@_ T/@sBˢ/_ T*bc@/* !@@ aR&* ! R `c*4bRRcC@F*O@@A[B @@{ʨ_֢R !``qc/@RR~R@*@ zc@* ! R`XcRR Rvb {cFS"@'7@b#@?Ta@ҁ@D@dDAdDBdB0@b2@Td@92d9AT3 [BRSA{è$  SAa~R{è " RdB"d6`A7 b:A}Aha*@b:A *AL! @ {S3@[*d@! TRSA[B@{Ĩ a"@?@TSAR[B@{Ĩ   R!t" `a@BACTB"66BB!,`5@@!@ ?`4@@!@ ?B`@6BaA@@SA[B{Ĩ_ր@@xa a@BA!a?IT@ R aSA[B@@{Ĩ_ {[@Sc!@* ?֟B BTs@1TR~jt"@!@)~)SA[BcC{Ĩ_ c ! !SA[BcC{Ĩ_ Ք|TR c@#! !*B7_B'_{cSC[F@'?*5R0TvpqZF*'@@A!SA[BcC{Ũ_֠#@% [{#S F[sc3@7_@?*5#RTEpqZ9F*7@!@AASA[BcC#@{Ǩ_֠3@ [{#S F[cc/@73@?*5tTpqZ9F*7@!@AASA[BcC#@{Ǩ_֠/@ S[{ '#'@@!@!@ ?(Q4? qHT @TXT`AB@ @{Ũ_ aR @AB @{Ũ_ aR}  @{Ũ_ @AB բR !$`[R}Rc}R{ cbF#C@_[+*G`T'#*?*` 5G@@!@!@ ?*QqH TG@c@ @/?֡G@@!@!@ ?*G@` G@*I*@@?֠C4Q"3?;Ҡo@GHt`7@G@@@@o@e53@T@'@/@ մ@'@sF*_@a@A[BcC @#@+@{̨_ ՠG@#lqAT*?*@@C@'@/@ *@'@/@@'@'/TZ B6B_CTPA_ B7 @3 @ {SSA{¨{@@@ a4@x{¨_ {`{eY{_{@@@!@!@ ?{¨_{ [bFC@'ҡ@!@!@@ ?4qT8qaT@@ @?֠#@@@sF'@a@A[B @{Ũ_ (qbT qT @@ R0 @ @Y{ l@T\@@!@!@ ?8qT @{è_  @{è_ ՠ@ @{è_{SS@[c/`@ T`"@a TB7/a*@a 4a@!@a@w"@b*@! aAQa*SA[BcC{ƨ_ ՀBTRA/a~R  բ@T#c /@`@ @t"?֡/@ @!@!@ ? qT/@' /@ @!@!@b ?`*Z@@`kDR Һ R Ҵ  R ҫ`@9y R| #@ҟ#@ҜRs #@Җ {kS@F[sc@7ҿ3 ա_@ ?*5QpqZZF*7@A@AaSA[BcCkD{Ǩ_ ՠ3@E X{S78qTSA{¨_TSA{¨{ScbFk@C@G[*7@!`_` TR sFG@a@A!SA[BcCkD{ɨ_D@T+3`7@@ @/"?֡7@`@!@!@ ?*QqT7@;7@`@!@!@ ?*F*?@{@@?ր sE*`"@TR ՠB7+7@@!@@@ ?*@7@* 7@pqA T@ *@k`T@* @C @7@B@ 7{@7@yXz@A@9@@64*@*6@ +@r ՠBTRA7++@f qaRfsE]a~R`XdRX+@O[+@I7@ c`$! !+@?@+@;@@ w@7@qT@7@qAT@R,+@#sW+@+@ {+S`F[ck3@? ՠF@?*5R`EpqZ{F*?@a@AʁSA[BcCkD+@{Ȩ_ ՠ3@W{ 7$qT @{è_@ @{è_{S`@@AB@@# xc*`BB!!*@SA_@ {Ĩ_ T@AB@@4 xt*AR@SA{Ĩ_SA@{Ĩ_ { [bFC@7Ҡ'# @'@C@ @?ֵ+@'@@!@!@ ? q TTQqhT@R@"< "|S!\P)sF7@a@A![B @@{Ǩ_8qT@'@'@c7@y @y[@@ R)'@@@!@!@ ? q!T Ҵ@R R6@ @V ?䗟 TBTPA?AB?TT_APA?B_{UT E@@!@!@ ?QqhT@`@!@!@ ?ֳ @@{è_ աR @ @{cFC@WҠ?'@TS@?@C#@ @#?֡?@@!@!@ ?*QqH T?@@[!@!@ ?*?@ ?@*H*@@?4Q"cҼ/@?@ @7@?@@94V4saTD/@7@R#@SA[BFW@@AacC{˨_֡@?@BqT@?@=qT@G`5SA[BkDsESA[BkDsES);@@SAA[BkDsEXC7@aRV#@SASAS[ksU{F'C@/Ҡ#|'@!@!@ @ ?qTR/ @F/@@AAB{ƨ_`'@C@ @?֠+@s` @b@) @R @ U{ bFC@/G` T6` @@!@!@ ?q`THT q@TqT@@ @? TAsF/@a@AA @@{ƨ_  q`T$qT!RA դ@@ @?ִA@ADA@ ՠ@ADA@ ҴA բa 7#@S@A |A9U{ bF7C@OT7@@!@!@ ?*qTqBTqThT q T7@@@DA@sFO@a@A @@@{ʨ_ q` T$q! T!R`@@ ա7@@!@!@' ?*7@@ @?֠7@ F*?@*@@?qT 4Qs"҂@7@7@"TCD@@/@ դ7@@ @?ִ@@q ՠ7@@@DA@ 6@@ dCC@X@@ Ҵ@C@'@x@@t/{T{SdF?@OCT旟 TBDB?) TTCPAc TR'/@*+@+@x*cC_@T"q Az`T#q AzTkTR'@BC TBDB?TBC'@5RsF*O@a@ASA@{ʨ_PATAT4 A@/@d!@+@`[Tq q`TT"q T,TqT4/@W+@S'@BCqT q- T/@+@e'@*BC &qTBC'@/@5+@5{@@?kTE7@C@G4E;@G@Bq'@BC ՠ/@}*+@xkT65@@?AT @ @?kT ՠ/@7sCa 5+@\5@@?T5RR'@BC[ @ @?kTR'yS{*F'C@/ T #`'@@!@!@ ? qRaT'@C@ @?@'@@!@!@ ?4a@kTQ` a@?kTs"aTaR @ҷ@F/@@AaA@{ƨ_ a@'@x @@+@ @@ S{[cF'C@/I@ TS#@'@@!@!@ ? qT'@C@ @? @'@@!@!@ ?ր4Qt s"Ta@'@/+S5a@SAaR6SAF/@@Aʁ[BcC{ƨ_ֳ+@ ճSASARSASR {FC@/X T F@C#@ @?֡@`@!@!@ ?q!T@`@)!@!@ ?ր @N @ @Ra4!QbZa5@ @@ A2 @@F/@@AAA{ƨ_֠+@s ՠ@R @@ @@ \R {SF*@?Ҡ'7'@T# '@c@ @?֠'@@@s@?k!!4!Q!bx`z T@RF?@@AʁSA@@{Ȩ_֣3@c@R{ A F@Ҡ%T# ? A%5\)?q/L T!Rgk*T*g#@-{R7*@SzZ#+qTHT#q@ ThT !@% {@s@3a @G{Qn@G@qT k`T{@qTT qTq`TH TA !@ {@s@3g@kTTA5  q@Rg6RlT* 3q TCT7qT !%t {@  ! m {@qAT !%d {@ 5 @95R !%`HRU {@ !%N {@  @9@ 4 !D {@ a @CG@7@*$QG@a @* 7 !$+ @4 ;a{yG@. ;@? ?@Q@Q?hT@67@ @9?C T@ 7A!1 Q{@Mb@A ! {@F a @q@T qTqT}Rm5 ҶBCD@/@F@!@Aa @@{Ѩ_  !% {@ !`% {@RQ R !&`Q {@ !$ R1& A*@?Q?@@"A!1 /P {[@SO BOQTSA[B@{Ĩ_ !R{ST`2SA{¨_֤ R҄ ~ @"|bA__@?bA__" @"C!@"_ _@aR_@_#@c@C#@b"@?|_ "@@x@G@4*`@DpӿcTB`? )E $)& _`ZDp@ZZ<T@B`? )$)%& _{Fx@@E4G@B@*p@_bT@? )S@9" ')*e F@@A{è_? )E S@9 ')*5 R  E@ H@Z ڦpӥ@Z</y ڥO{ `NNONj68AB @{Ĩ_ִAB {  @{¨_@O{ &{_@__  fO { a@HF?T`@ @{¨O_  @{¨O `@O { S BOІABC &@h&"@!HF`"?TSA{è_ յ(O` @|N@SA{è_ҷO@H@`{NrT{¨_  !'R ` Ptbwb @{¨RRҏ_ {S`F@_@` k_ @97@V Y 9@T+@ /@\ sE@cr@`TO@ @"@qW C`B*$BkDsF_@a@AASA@@{̨_֠@V Y "39c5` ՠ@ @q@,O)OBkD  !)R `Oaa c-RR }R+@ R N`b ܚN@,@bB*@?kTBXa@$@[@`c W@@#AcAc@9aT# @@qsE  !@)BkDsE !@(7N7@BkDsEҒ !(ksON c'R! *@,/O҄{S`F@7FɘBr@T"@!Ҡ#@#@+@@FsF7@a@AʡSA@@{Ǩ_ !@.R `NGaJaRRd}R_@ ~RX#@`N@M {S*c`FK@oc*RN1` T#҂*| T T@y[RARkAz TҡC*m-T T`݇ҡ+@@Th?T*L 7*ˑ  A9!RB2 90vr T b R!/uNW``RR`4q T}R}RaT@sFo@a@AaSAcC@{Ψ_ jN@G@*G@7G@  !RR`@HN@ DN@@  5 @a}R@ b R!/N7u`x`RRґ}R!R*!@ R!/MyrTҶ@ R!/MҮ@z !'R `M:`=`RRW@iL{RpL1TҔM@@A{è_  **L @@A{è_  @!@@AM !@AM P {S*[`FV|Ӥ @oc'?9آ `8 9R*KM "6ҕ@R `dMR* c@sF*o@a@A!%SA[BcC'@{Ψ_ ՠ_@@ "ҡ?*L*#RbRLW TRM 7 աW@`݇@Th5 8KO@O@W@cHM"R*K`2M b2O@LW@LsE#@&M B4 ՠ_@@ |@W@7@ #Ws @KaTKO@W@B!FEҠC?CA{wO@Lk_@xwSy7"R*BKK S@ҡ[@C@@?G G*L {!TG@*S@@?4|BK@ T @{w!69CJW@!@?T7@O@cL"R* K W@ m TO@ T*KL b3sE#@q"R*J`K@Rˠk*JC@@S*KS@`cTaR!}*JK@`~L@K@ xL B0sE#@D KoL #@1sE:sE#@O@KW@"RXJ6^L "5.YL b2sE#@%W@LR`6ML 7W@ s#WK{[AHRcS6RrJ@6U@0LR !`9u@`L*Rs@*SA[BcC{Ĩ_*o**5)K*6 L@R !:`K*RvL*SA[BcC{Ĩ_ K7*SA[BcC{Ĩ_@{S*[c*# J@4@A@A SAcC#@X@[B{Ũ_S4@zaTK@SA[BcC#@{Ũ* @jKW @?qXB4_@@@? Ta݇@ATh_@T_@! _{S@? )T@a݇AThC@ TiRc@SAR{è@SA{è RR}s@R !:`JK*R@SA{è_ {S[`Fc@o8RI7**cR!K 7G@*CRbRҥJ hT`݇ҡ@@G@Th?T*BJsFo@a@ASA[BcC{Ψ_ֹ#K}R <"J*+J4@w4@R `J*Ry#@# Jc=# J<# J;#J@J _ @{ @4`@4` @@J`@XJ`@VJ`@`@@4`"@PJ`@4`6@LJ `@q`@GJ`@EJ`@`@5`@@5`F@=JaN@a ? @{¨5J_ {SkaF"@G@5!FJ@4wRsFG@a@Aʁ SAkD@@{ɨ_ մ@BF @=+Z@pA҄@J@ >b@&"jtG @7*B6^AaRA@@@+@ ն@@+@`@@+@+GI{S @[ BSA[B{è_c@a`2@b!BalH@ T`@a`7Ba@tB4Gc!G G ``oIuRSA[B{è_{ 3@/3a@?@ TRҁD @@/@{Ǩ_ Z D @@/@{Ǩ_֣k=k@|"`s@`*@4 @8 @C TR "@74ka`*TF45 `*@R C T4kc7@a*4H`4UBCD@ @@/@{ǨS`"@@TRD @@/@{Ǩ_ ՠ5 R`*C5@B!!F ՁRABC@RAC {S[bF@cC@O 5@YTX@BsFO@a@A!SA[BcC{ʨ_ Հ@"@`&@`@~R H#@ ,TW@ չ#*@a#@@@'6@4C@ 3T TXBkD Հ@:}xy5"3 TT@"3h:wRx ҹkD B4G!G G`sEG@B 3 69H պsZC#GR7@TF7@@7@XG@kDsEX QqT3 T@x9@@pqT_:}sE ՗6G@kDsE3kD0R#@+ksvG 0@@?B { @G`@G`@y @{¨_  Ր @4@@_  _ @c4{S@c[t`bA ` @T@d@B`a! bjd? 4SA[BcC{Ĩ_ RSA[BcC{Ĩ_֠_{+c`F[kS7@?;@@?*45R@R{F*?@a@AʡSA[BcCkD+@{Ȩ_ v7@LF |||||0_ {[S  @@4GBTSA.@[B{è*G {SbF/cC@?R /@[@!@!@ ?*(q T(Tq Tq` T qTR9RR F`*d)!@aR@?k:Az Tq4[BCsF?@`@ SA@{Ȩ_ 4qT8qaT/@g[BC Հ[BC `R[BCb  @9R/@R*V@A@dVz!@/@@95 @/@[BC @/@8R*R@ @/@R9RvRx/@RVRGEns@ ՖR/@Bb[F {SbFd@C@GҦ'=+=/=3=7=;=?=C=@4sFG@`@ ʠSA{Ԩ_ ՠCc/gDE!RzEqLT.@ATPF. Rf Հ.@#@.#@DF.@E ,@,_{SF@A64)F@F@@AASA@{Ĩ_ ՠA@6R  E {Sc[*@  4X@@  `7RSA[BcC{Ĩ_6^F@SA[BcC{Ĩ_ Հ.@@7!hFG!@@*@@6>F@ ա!G GH@@`6W(F@ {_q[ST_ qT_qT "s`A@SA[B{Ũ_Ҕ  `A@CC }D ]D"C1`A?@7@CSA[B{Ũ_ մ SҔ? 3Ҕ?RHC {S[cF/:@d@7G4RsF7@a@AʁSA[B{Ǩ_  ?:@7&@CcT 5:@ҵ3@ 5@6/@#@cCpqT*#@cCcC#@ շ@ @qxE@c#D {ST@[*@W@*@ `*zbR*_$q@T  բ c!Nc@ cc<`@[Bqן@SA{Ĩ_ւ҃ c?!7 'AR* {S[bFcC@/#B4B`7 @95sF/@a@A! SA[BcC#@{ƨ_Q?qiT$qT'* `*CF@@4+@ '@'@*!RԷTF@%6R>'@*7'@'C{[U@6@@S.@O.@K`a @`?k BzTa@$xc!xbB!B!75kcTT~@|@T4ZSA[B{è_ A5 RSA[B{è_ c ?R!`}D c ?b"R!@uD{S@SA{è_֡! FE`7@@SA{è_ ն@@{[Sc"@bF*A@'4G@kA:TRsF'@a@AʡSA[BcC{Ũ_ִ#"@6$D@ #/C{ T*ck*+*  B~@6BIT@@a/C@! T*VR ! `C*RRGAcCkDsE   *@ @@{ƨ_ {akT|@[[` ռ/@ c@ ":!+@AcCkD @@{ƨ_ @@{ƨ_* C@4AcCkDsE գ c 9 @ }TB`6@C@O!T3R* ! `RC**R# @*@AcCkDsE{ƨ c b>!QAcCkDsE c @ {SfF{@c@o[/* s@%_[@4RsFo@a@A\SA[BcCD/@{Ψ_ֹ#آ*?@ `Bqq 5 `@[@\@qK 5A#R*!@ `*B'B*?q T?q-T? qT?q TM6T `R; K!B7$`?6 *!;@R`B}7@**R$X ա@ *BX BEDBA!F" գK@?+q(T T?#q2T?'q/TR ;!`aB7*@K@rT#@C )R* !`HB[@#*R*#@) Rc c ?qTY(5 R; `!@'B7@K@aT} ?7q-"T?;q%TR ;!``B7 7*@*JT@[ATTR ;!`A7.7J*c@@*cW@g@**gc@?AT@aT% $qK@ пc R ;!`A7 7@*K@aTz *!;@R`At7@**ROР!G GR !`|ARRR#@d աР!G GBս$7>@  *fR#@ER ;!@`HA7?q@K@@T?TG@@; E?@4@`6FA@ բR ;!`"A7@@*J@T@K@TjR ;!`A7"@*JT@*ATL !@R `@}RRk}Rj#@ ՠ R; `!@3@7@K@cTK գ@ 7K@HpqT]@*Jc@cT@ҟ? R !@7@h 7@R`4*@@J{y{9`T@@kT@K@߱?` T@! ! R@ `n@I*R@#@RW !@:0 *!;@R`O@***R_@;@R !`9@RRR??#U?{CSkF**@@Gs#7?ż Ҹ* 48R:@ҡ7@5` 437 զC@W***` 7F 4kRpq` TR !`?k@Rk*dk@*b@*@$ &6R !`?RRLR բR !@`?BRR=AR<*F*G@!@AʁSBkEsF{A@#@_ [C@W**!@*@?@k@k@@ ն@@c k c?!@k@@> {S[`c~@sF|@ks@ $@oғ{w)0_`_@*w@  !*KR@4S@ @%R @Fo@@Aa/SC[DcEkFsG{B_4qTT qTL T 6   *bR !`# ?R?RR$qT8qT`B`7 @ `" AK@`#@ $@Iw@ 7S@ @R  բ"7`Bc@6`BTV{w~@C "`Bg@6`BT@{w|@K "7`Bc@6`Bc TV{w~@$ "@Ң*=@X7@A C R4? * Р !"$ `B*zz6`BTC@@|@ "y@kTF?@K@[@=@@_@*e A`zzG@*[@IS@[@w@@6= * "GK A` c@*_ $:@I_@w@6* "&K AaȺ`c@*_ $@I_@w@6 FaB(T@{w|@K@ " AK@@ $@g@  С c@#" ! С c@#B ! С c@#! С c@#! С c@#!< B   >=b Ѩ {;a%G;@{C_ յ[*Ss#;VG@@7!@!@' ?*@G@@5Һ{AˢC"C@`G@*SA[BcCD/@;@{C_  @9{5 _'q T{@= @`4@Qq T_'qT{@ QqHTFG@ Rc*@qTˢ`@7G@*6 $ bR !& =G@R=*RRFG@ Rc*O@҈Һ{t Հ @{ ՠFG@@c*C4@C@q@T@QqT_'qT{@ QG@Ҙ*KR Ѐ !%`<G@@*RR7@SA[BsE <@ b$.Ѩ{CFSc@ҩAOZ[s?q+A@*!T$qTC!7 qkTqT,Q qT#N59AqTqATqmTq`T>TQ7G@&R[@*@'R_:9"929! FE@FE7@*4;C`O*E7@R5T 6:9B7@Z_kHT H&R@*Xzs C@ R"*;'@{ Q?q!T$q T@Qq !T#4w:V9R9AqT4q"T(qj/T qT$q*T"C9S::@ sb0;@ ba !2R;R;A*RRG qT$5": F@!@Aʡ@SB[CcDsF{A+@_ sC!6*[7A շ "+17[@&R@*G@'`698! FE+Ÿ`+7_@&R@*4h98B8`(7N9@5C*&5A[@ ظ@56 '@s/V'"8C 09~8z8 pq'T'@+"ҷ[ e8* 7[8 ն#G39N8_9FG@&C`6*638qT'@ @?&8G@&R@*88@A 8A 8'@9A<6 s/ -R С !2Rsb:cR:A**RG@&R@*p87@?Cc҄ @';ҺC?7 !  F! M87G@&RW@*@ =87;@҇77GROS@7@!ҠS3@Eb '@s03 pqaT'@[C@ ")9'@ֳ*i ѳpqATc8J '@?K@ B,{'@[@, ն '@֢/HC@o9 '@֢+ ֢( R.'@9 RB.5 b'R'@0 R֢)'@+ R'@& ( '@- !0R `9G@*RR-'8'@ AaR_{ A`R @{¨_ բB4G! FEԶ`@R  {S[*``@T@@"@&@*@.@>@6@:@zu`B`B`BT~~~~~~~~~JSA[B@{Ĩ_{kSAF[*"@oc+K*7/9GbGM "TcGA,FFG6@/"` GC%& C@* .@ G@>@ 6`! FE#:`/@ 9c6T`zx*azx>@.`68a@Fu@R !6`8`@`*R4R(ZFo@A@A9SA[BcCkD+@{Ψ_ּ/@R !5`8RRR-7jC5 @7һC @R*@@#RT@@pqT9"?CT/ x @7hjC/;34x @7^C ;@8U cO?:G@GC@*%5_J[@94@9q T T աKҁӀ*4pq#T*5_@74G@S@U6O@R !:`8 cRR/@RpqT ֢3 bR !;7R7@R*l@*j7C 7R/@4! "O ߴhqT@q T 87)*5*@_@mw`*`z`$qTS@7@ *4pqT B4 @q*$R !7`7RR ;W! FEд ?; `=7*@ҡC@ڱ*5*@Ҷ[@ҿ_` GG/*G@` 5ǀ`z`YT PA TRAT_@*@ҡC@*`4pqTʴR !=`<7*R*6/@[@z@7C@*4pqATL գ ؀c`ҿk! FE`cCb-Gs{ o@*\`7`A4*pqAT#; ??_C` S c7OH G4@Ͱ5gL@k`!`*?`TzaBC9@K7IRS@o@**6oTs@7@sɪ@6k@_@ !?R* `6**R*77 zvBAT@qAAT4 3@s7aB!a@"Bbb?"!Tk@mҁ!F@!@AASA[BcCkDsE{Ш_ c@! ՁRX 7`GO pq`T*_@RR !`5*R=*<4R !`5RR*R)ҴҲ c?Bt!d*pqT|R !`>`5@R*@*3@7aB!a4 {S[aFA"@/ RA@4RAע>@#!4@KBC@5RA BC @4@+@RAvAARR !`&5BRRsF/@a@A!SA[B@{ƨ_֣ c ∁!(@ c ‰ ҷ@,4 {SFC@'25 c`9`ja8B! ?P|Sdd8``8D8@8TF'@@AʡSA@{Ũ_4 1`T RB,GBkTAA5*_ւ*BE@*_{!!Ss.Gsbt @4aA.4`5*@SA{è_ { !f3q67F@9z`x6S /2 |@Y@9 aCsx7>qT `? sB<R? |A2335?@\SR`?7@?p2S9?@N2k78@9zRqTqTSAD@/@fS8@8sxrT~q!T@9z`xrTRNq!a4@9`4bq@TNqT@94 @9~qd@z!T<qTiTHq`T\qAT 4 32W~qT@9|q!T @9 !F sx 7~qT@9?|qT `? BsR? ճA9225?@`?94@ 21_9SAD@/@BC{Ȩ_31 |@7Y@9?qT!R c1BC{Ȩ_ Հ@9,q@T34y 3BC{Ȩ_ Փ@9 Rqd@zAT@ R@8qd@zT| @9q`T|qT@9|qT@9Z FRA8sx6X `:Q:qx5@95 @9 sx7~qT@9 x`x6$qAT "` R9`66qT@9qTqT sbP31Z~@95{qRAzT @9 "FA`x6@8A`x7qT@95i7@1;@/bqaT @9@ R qd@zT@8qd@zTqT F@9xax6 @9 sx6@8sx7q s {BE *A@?1T Rbr! a*j3a&!\5 RjAT7x77Ҵ@ @{¨_ *'w7s6 *W 36'@ @{¨_ * @@{¨9A @{¨X * @@{¨M Q@qiT_֤ H`8d E)kT@|{@(h& _ b _d@T  @ Rd@9HqEzTHqH@`T cHR  _֥cHR  {S @qT6AqLT BPa@` Q@qHT@H`8a s@` @qMTSA{¨_s @a @ @qTc6a@6AQ6SA{¨_ ՀnAa @n a @^A^_ {S[6@c Q9`?`@#c`uj!8u"9T@9Tccuj!8u"9TSA[B{è__ @d@9qTQ$qTRRcRrB|Bc_kTc a_8 !Q*!K?$qITqZ__`d@9Q?$qT(RR_E)_kT{C|{B$@eR`?A"(h#|@  {_   _  @ @9|q@TqT{ a1T! @"@9_|qAT!! {_ !R! __ @"@9_PqaT{! |@7AE)?kTD@#|{!R@A)h#{_{_ _ @"@9_|qT!R*_ {  @9|qT agR6*{_ !R*{_ !Y7$qT @R@9_|qT!R R@9b R R?q$Cz$Bz"RaT*_R?qT@9xQ?<qAz⇟*_ր@_q!T?qT  @_qAT4 @!Q@_ցT@_ _@@@!@ @7!R0_A{S`@qThTqTTqTaB@?q@TSA{¨_ֈT`4a @s@  qTqTqTq!Ts@3 `qTq`T qTs@ q#T$q)T0QqT_5 @@94! @9{?qT?qTR{_ R_*a @@9?|qT   a @@9?|q!T R! {S[@@!B@ T4SA[B{è_c@`.`@h!8`@uSA[B{è_ Ղ5TTT`@/b@`t 5 `@Q0~ R ` {* c, "F!R#@7..`a@c Q9`?`@!a`uj"8u"9Tjt8?T!auj"8u"9TA@F7@@ @@@{Ǩ_ִ/ {SF*@Ңv2AV5@@Dq)T R[B`2@F@@ ʀSA@{Ө_֠@@?qKT[BC R`2 ո !!X`xbA! ָC 9 a@c Q9`?`@!`axj"8jx"9 Tjy8?T! %:a@c Q9`?`@!`awj"8w"9T@9?T! 9C a@c Q9`?`@!`axj"8Zx"9Tjy8?T! ֢$"a@c Q9`?`@!`axj"8?x"9@T@9?T! 9#$a@c Q9`?`@!`axj"8rx"9`Tjy8?T! "#*a@c Q9`?`@!`axj"8x"9T@9?T! 9#a@c Q9`?`@!`axj"8vx"9Tjy8?T!@ c,"!R#--@xa@c Q9`?`@!`awj"8w"9@ Tjv8?T!a@B@9"?ATc Q9`?`@"`buj!8u"9[BC @*(@*$[BC ":a@ c Q9`?`@!`axj"8?x"9 T@9?T! @*a@"?ATc Q9`?`@"`bR`j!8*`"9@ a@"?ATc Q9`?`@"`b R`j!8`"9[BC @Re@?qT@ @ @/Qv>* _kT- a@ d Q9?`@!`a{j"8{"9T@9?T! @R"@_q(Ta@?ATc Q9`?`@` `R`j!8`"9* @ a@?aJTc Q9`?a@ R`9`"9! a@`?q`|T"q =T@*t [BC< 9!a@ c Q9`?`@!`axj"8&x"9Tjy8?T!VA*Q a@"?ATc Q9`?`@"`b`R`j!8`"9*< a@"?ATc Q9`?`@"`bR`j!8`"9[BC 9#a@c Q9`?`@!`axj"8zx"9Tjy8?T!@@qAT @@@@@9?q<T@9QQ!?qAz;T*a@?ATc Q9`?`@` `R`j!8`"9*@B@ B !"@*B @ a@?ATc Q9`?`@` ` R`j!8`"9[BCVA@qTqTa@?ATc Q9`?`@` `R`j!8`"9* @ a@ ?ATc Q9`?b@ Bb` R`j!8`"9*s[BC] @*:[BCV 9!a@ c Q9`?`@!`axj"8&x"9Tjy8?T! @* B%"i a@c Q9`?`@!`axj"8?x"9T@9?T! @*M @@"v@iTj68c Q`?`@`- c Q96`?`@`vyj;8_y"9`T@9T6y5 @GA@?T* `@aTc Q9`?b@!BbaRbj 8b"92y4 B!c Q9`?`@!`avj"8v"9T@9?T!@`RCa*;c{ {@5* 7@[BC``R$KyS6@@dQqh5T6R*@!@!dQ?qHT@5qT~{! @"  A" $k%a@`@* x@@5qTQ Q!{R 9ֆ"^* aTc@B*[BCV @ !a@"@ c Q9`?`@!`avj"8?v"9 jT@9?T!vc@(7 @B16b* [BC, @*] [BC% @7@6a@ c Q9`?`@!`avj"8v"9Tku8?T! @c:A@5R?qTd@?q`T@_kT?qTa@;{C` @*! {@`47@`[4[BxCd@Ҡa@;{C`be@k@T!@A"@5"@B@CdQqTR bBa@c Q9`?`@!`axj"8?x"9gT@9?T! 9a@c Q9`?`@!`axj"8Jx"9oTjy8?T! 9a@c Q9`?`@!`axj"8Vx"9gTjy8?T! 9a@c Q9`?`@!`axj"8fx"9`cTjy8?T! 9a@c Q9`?`@!`axj"8Zx"9@_Tjy8?T! 9Ca@c Q9`?`@!`axj"8Nx"9 [Tjy8?T! >a@c Q9`?`@!`axj"8?x"9WT@9?T! 9a@c Q9`?`@!`axj"8jx"9RTjy8?T! 9#a@c Q9`?`@!`axj"8Fx"9NTjy8?T! 9a@c Q9`?`@!`axj"8Vx"9@CTjy8?T! @Wa@ c Q9`?`@!`avj"8v"9 }Tku8?T! 9a@c Q9`?`@!`axj"8Fx"9`=Tjy8?T! @a@ е#c Q9`?`@!`avj"8v"9xT@9?T! @y@x@u6@5@qT* `"D9qTa@?Tc Q9`?`@"`bR`j!8*`"9@ `"D9qTa@?!Tc Q9`?`@"`bR`j!8`"9[ByxC3 @x@v#d@'R@XZ?8q TbT"pQ_qbT @V _qT'@c R[BC`2`:A5BB@?qTu@*@c5 Cu[B @*- 6a@?ATc Q9`?`@` `R`j!8`"9@@ q@T* [BC @o7Va@c Q9`?`@!`axj"8x"9@Tjw8?T! "a@c Q9`?`@!`axj"8?x"9@!T@9?T! ֢.a@c Q9`?`@!`axj"8?x"9"T@9?T!a@?ATc Q9`?`@` `R`j!8`"9*@[BCs@*[BCl 6a@ c Q9`?`@!`axj"8?x"9T@9?T! 9#a@c Q9`?`@!`axj"8bx"9 Tjy8?T! @* "ea@c Q9`?`@!`axj"8?x"9T@9?T! kaPT[BCD/@[BC  @* ֢;a@c Q9`?`@!`axj"8x"9T@9?T!@@9QdqHT"?ATc Q9`?`@"`bR`j!8`"9@@Q|@!_8?qa@ c Q9`?`@!`avj"8v"9`>T@9?T!@*[BC @*[BC @*[BC @*[BC@*a@"?ATc Q9`?`@"`b R`j!8`"9[BC @*[BC| @*[BCu @*[BCn @*[BCg @*[BC` @*[BCY @*[BCR @*[BCK @*|[BCD@* ra@ c Q9`?`@!`axj"8?x"9T@9?T! @*V[BC @*O[BC @*H[BC @*A[BC  @*:a@"?ATc Q9`?`@"`b R`j!8`"9[BC @*"[BC @*[BC @ c,!R"ҵ#E&7&a@  c Q9`?`@!`awj"8w"9Tjv8?T!"?ATc Q9`?`@"`bR`j!8`"9[BCc:A* @cc: $ `:Aa@Q`: c Q9`?`@!`awj"8w"9T@9?T!@ c,!R"ҵ#%%a@  c Q9`?`@!`awj"8w"9Tjv8?T!"?ATc Q9`?`@"`bR`j!8`"9[BCL@*}a@"?ATc Q9`?`@"`b R`j!8`"9[BC4a@b@;` @@@q 4T*[`@`k7@[BC` @*P[BC@*I[BC @*B[BC "@Q_qiT`?q@T@qT;`@*.@qaT7@`UQR:c*f" @5a@ ?ATc Q9`?b@ Bb`@vj!8*v"9A_T[B'@xC*5[BC[BC[BC@u@*`@UT[BCD @o4/* c,!R"ҵ#%%a@c Q9`?`@!`awj"8w"9Tjv8?T!"?ATc Q9`?`@"`bR`j!8`"9[BCz@a@c Q9`?`@!`avj"8v"9Tku8?T!iT R˷@9 mT~qTa@"?ATc Q9`?`@"`bwj!8w"9T[BC=@9|qT @9TqTT*|@9@T @9Q#$qTQ!?qxTQ b! c Q9`?`@!`avj"8v"9T@9?T![BC[BCa@0 a@c Q9`?`@!`awj"8w"9T@9?T! @ c,"҄!R#G$9$@pa@ c Q9`?`@!`awj"8w"9Tjv8?T! b# c Q9`?`@!`avj"8v"9T@9?T![BC[BC[BC[BC[BC @@qT @b* p4[BCB@*`@`7@`b"D9a@_q`PTaTc Q9`?b@!BbaRbj 8*b"9 @B @`"D9qITa@ ?ATc Q9`?b@ Bb`R`j!8`"9[BCO @@@ @9qT"@9_qT" @9b5? q T?q]TqT @9hqA!T @95- @ @@?q T*[BC&!@6@4q=TqT@"@"5"@q@AzT @@9qTqT !"[BC  @@?qT@!@?q*Y @9q T @9qT @9@5*&[BC[BC B a@c Q9`?`@!`axj"8?x"9@^T@9?T! "!a@c Q9`?`@!`axj"8?x"9@T@9?T!b*& @"9*[BC`@BTc Q9`?`@R!b9`"`qT @9qaT @9 5a@"?ATc Q9`?`@"`bR`j!8`"9*a@"?ATc Q9`?`@"`b R`j!8`"9[BCk`@8Tc Q9`?`@R!b9`" a@ ?ATc Q9`?b@ Bb`` R`j!8*`"9@{a@ ?ATc Q9`?b@ Bb` R`j!8`"9[BC2@qT @9R4+c@u@qT @@?0qT@@b@?qaT@aR@_qT@ @! c `@%T[BCD[BC#c R`j!8`"9@qT^Td Q9?a@ !a`R`j#8`"9b*2!4[BC !`@!ybҁ ! @ @*[BC[BC R[BC`2eZAg@qT@@ T@Q$P$"A` TaTa^AkGT||eZB d@h!d2ajAenA?kjFTf@'@gj!%A@`@*C;{d{@7@a5a@?ATc Q9`?`@` `R`j!8`"9c@E*[BCq @*a b!$G[BCe[BCb[BC_[BC\@zd@@ "T"@_!T_A!!T!@!@x@a@/%#R@?q$T*>[BC:a>Aa&7 @h/@!@5q@T@*`q>T)Tq`=TqaGT b!"[BCa@?ATc Q9`?`@` `R`j!8`"9 @ !"5@*5 B!?ATc Q9`?`@` `Rbj!8b"9n[BC@*x@@4[BC{ѵ[BC{D*(5 @@?q.T@@@"@@9?q!T@9?qT@95@@ q`"T* @@@@@9?qT?q!T@9?qT@95@*B @ @@?q%T[BCaRbj 8b"9?[BCaRbj 8b"9M@@ q TB{ӨC"cpQqhpT_q TCQbc{B%Z@@>A@?Ei# @h#h#@8qT T@Qq Ti[BCi[BCf[BCc@s[BC]Q!?q+T\Q'[BCT @*c*-[BCI[/!@,L @'@'[BC8 qTq$Ta@?ATc Q9`?`@` ` R`j!8`"9[BC a>AA7*@D4[BxC#_@@9?q` T*Z*( 5A" @A@@8TA@9?qT@9?q!T@95***bҁ ! "*[BC@*e@?q !@" @*a@?ATc Q9`?`@` `R`j!8`"9**[BC[BC@ @@q`T R`2B@*@95a@?ATc Q9`?`@` `` R`j!8`"9*@B @a@?ATc Q9`?`@` ` R`j!8`"9@@?qT[BCp R[BC`2ka@?ATc Q9`?`@` `R`j!8`"9[BCW@"@_qT!@!@9?qaTa@?ATc Q9`?`@` `R`j!8`"9 @pB![BC4 B!`"[BC,a@?ATc Q9`?`@` `R`j!8`"9'@` !"[BC[BC Rc  [BCa@UT_XzaUTW?ATc Q9`?`@` `wj!8w"9[BC@@9qT[BCa@?ATc Q9`?`@` ` R`j!8`"9[BC{ scFd@'C@qT@ R2sF'@`@ ` @@{Ũ_4AqLT@cC4@#@6A!QQ@6 C@c Q8qiT { 0S[*Xcxd#` Ֆ &c@c Q9`?`@!`awj"8w"95T@9?T! [BSAB@{Ĩ Ֆ ւ%@ c Q9`?`@!`auj"8&u"9Tjv8?T! Ֆ %@ c Q9`?`@!`auj"8&u"9 Tjv8?T! Ք &@ c Q9`?`@!`auj"8u"9 T@9?T! @aTc Q9`?a@!aaRbj 8b"9I @aTc Q9`?a@!aaRbj 8b"9K @aTc Q9`?a@!aaRaj 8a"9*@[BSA{Ĩ u7@aTc Q9`?a@!aaARaj 8a"9SA[B{Ĩ_ @"?ATc Q9`?`@"`bR`j!8`"9SA[B{Ĩ_ @4"  c Q9`?`@!`auj"8u"9 T@9?T! Ֆ &@ c Q9`?`@!`auj"8&u"9Tjv8?T! Ք "'.@ c Q9`?`@!`auj"8u"9 T@9?T!  D9q@Ta@"?ATc Q9`?`@"`bR`j!8`"9 @* b'da@ c Q9`?`@!`auj"8u"9T@9?T! v ւ'c*@c Q9`?`@!`awj"8w"9 T@9?T! v "&@ c Q9`?`@!`auj"8Fu"9Tjv8?T! շcx @&c Q9`?`@!`awj"8&w"9Tjx8?T! Ղ@"#?aTc Q9`?`@#҂@`cR`j!8`"9*a@"?ATc Q9`?`@"`b R`j!8`"9cCSA[B{Ĩ_ւ @SA[B{ĨcC{S[*c`@ 5 @@qTqTdqTlqiTqT`"D9a@q T? Tc Q9`?`@R!b9`"S qTq@T!@a @@4w@R*r`@ Tc Q9`?R`9`"9!`@@a` *sa@?A Tc Q9`?`@"`b R`j!8`"9*#RH[BwSA@{Ĩ_  `Rbj!8b"9?Tc Q9`?`@"`bR`j!8R`"9*w@%a@?Tc Q9`?a@"R b9!aaRbj 8b"9@ `"D9a@x_qTx" `"Rbj!8b"9{wF*@GB2A58R * pQ?qT@qa@xTq@Tq@T*%s@2A5`@`5b@@@U58qTT@Q?qIT@qa@xTc@B`* @@CFG@@ B@{ɨ_ָC @@c@B@* @@CB@*@6@"?AT Q9`?ր@"Rj!8"9`@ @`@ qT3 pQq(Ts @`@8qT)T@Qq)T* @@Cu B@ ' Q9`?ր@!j"8"9T@9?T!'@u b6@ Q9`?ր@!j"8_"9T@9?T!d@ c,!R"Һ|n@ Q9`?ր@!j"8"9TXku8?T!u  Q9`?ր@!j"8"9T@9?T!s @D`@x R {[*  @4@*R@a@?aTc Q9`?a@R b9!aab Rbj 8b"9@?Tc Q9`?`@"b` R`j!8`"9[B @{Ũ_@@qaTR*@`@ATc Q9`?` R`9`"9!`@@a`"*a@ @"b R`j!8`"9[B @{Ũ_ b@t B#  c Q9`?`@"b`xj!8?x"9T@9_TBbxj!8x"9?TR*``@Tc Q9`?`@"Rb9!cC@#@` `Rbj!8b"9a"Rbj 8b"9cC@#@f D@q@TQ{ @@@6b@ c Q9`?`@"b`uj!8u"9Tjt8_TBbuj!8u"9TAB @{Ĩ_ {C@ q`AzTqT*@?"!TQ9`?`@"`bR`j!8`"9*a@"?ATc Q9`?`@"`b R`j!8`"9A @{è_ @{èB@B@D@9qTR_ {c@c[w@'z @ C@qaTX@Z @*v>A`>@@9Hq@TTq TqTa@"?ATc Q9`?`@"`bR`j!8`"9*t (*Ub@ c Q9`?`@"`buj!8u"9` T@9_TB b@t '# c Q9`?`@"`bxj!8?x"9 T@9_TB **Ga@"?ATc Q9`?`@"`b R`j!8`"9@#@cC R'@v>[B @{Ũ_ մ@0qTa@#?ATc Q9`?`@` `R`j!8`"9*t $*b@c Q9`?`@"`bzj!8z"9 T@9_TB *?D@z@aTR_@ R_{E) kT@d|{csB(q` @{¨_ q` @{¨_{ `qTb@*a@|@B_KTb@ `7$qMT"@@(_aT @9 RRqDzBzT $@98qT*`" @{¨_ "c8_qaT` @{¨_dJ@a ТR! (XKcJ{S @u"@@9?qT` R`@@9?q`Tu"@SA{è_ {  @@9_LqaTb@9b4b@9EQ_|qIzTR_|q T`:@k)T`@ @{¨Xa_ dq T @{¨_R`@!q C!5 R _kTT@9_kaT@aE)ҟk Tb"5@@bJ@ҟkB bJmTd@"|{!R@a*h"a@!@9?qTa G)?kTc@"`!b:`@@9 Qqc Ra  FQA d  !QB $qHTAQRkTd@*@94e@9_|q`TEQ! @ @h@&|{ 0@! R_@a* i&EIb"@QdqTx ?qD@@aTR_cR@ R_ RD@`T$QRqTR@#R *_RD@`T$QRqTR@#R *_{StFd@@'25@9 Q(qTҔF'@@AAYSA@{Ũ_ b B@X`xb@ R `@@9qT @#@!|Q?q Tb`G)k Tc@b a:#@ վ @@##@ ՄdR#5`G)kTb@U a:#@ ՄdҁRp#dARd#daRX#@9Q|q! IzTQdq!TR`@#@9$q!TBR;# նHv@#@9$qT@ Մd`@#@9$qTC#@!R#b QaE)|{BG?kjTc@"|{!RuBa*eh"aJ@@ d  `J6dҡR#p`@94`@9q@%ThTq`+TTq-T+TqTaE)?kJ Tc@`"|{!GuR Ba*dh"aJ@ $`J #E ՄdR#8=#3 Ձa@9|qTQ$qTBb@@9Q$qITBKya@ @9|q!T!aAR# d`aR# ն#@} q`$TTq'Tq &TqTaE)?kTc@"|{`@u!BRBa*GaJ@dh" `J`R@`5U&aG)?k%Tc@"u!b:#@LRE@#ҥ#@`qTm6R/#  RvN@`NvN@ a@@ @9Pq`Tq@TqT`E)k Tb@|{RUB`*#Ch!@9Q$qᇟ2y T'#@ @@ `b`@R@94a@9q#@B@6y&qT# TqT@9|q@T5`@@9?|qT`R#Pcx*@w:@uJ@a@!@9?$q Tvx*w:uJB@#@>aE)?kJTc@"|{`!uRGBa*dh"aJ@ `J} A R!@%~uN@ R`N'uNҁR#`@@9!4a@9qT a R!(`aE)?kTc@"|{@!uRGB aE)?kJTc@"|{@!uRGBa*dh"aJ@ (`JaE)?kTc@"|{@!uRGBa*dh"aJ@ `JaE)?kTc@"|{@!uRGBa*dh"aJ@ `Jwb R9#aE)?kTc@"|{@!uRGBa*dh"aJ@ D`JZ@W#@DbG)_kTf@ER"e:#@@#B vN@ Rd`NvN@`b#@B@1 {R @WSFC@' @9q@zBz`T[* RHqUzT @9q@TRa@` @9q@zVzAT#@ @[BF'@@A!SA@{Ũ_ յ[B @"@_qT!@"@_$qAT!@bJ@[BAKaJ[ { @ "@94" "@9&@9"5 RD RRRG`K|@  |'HBhdE@9k@TT*?kT @{è_B@9_ kT E)kT"@|{CRSB )Ch!h @{è_ R" q*@9TUQ?$qHTQҁ E)?kT@"|{!sB**EA 5 ߌqR@AzaTI)?qPfR@ҁ5R;RA @{è_ աR0 մA{ @Sa@9"QB_$q)T"QB_dqT?qL@` TsuN@qT`@@@9?q@TSA{è_ " QB_q T?0qT?TqTa@9?qT?qTa a@9?qTc 7a E)d@?kT@9`@@9?qTSA{è Ձ @`J@"@!@ `J @9qaT @9qT @95R`@@@9 qTRqTSA{è_`@9qTcNc  @@@`5A@`J@ `Ja@9? qT?qT`@9q@TTqTARqT`E)cckTt@|{B`*5`@@9y c v@4`@@9m `qAT յ`@9$q Tq T Tq!Tc5Rc`E)kTt@|{B`**``5`@ҵ@@9I a a@9?qATc V`@@9j?q!T`87a E)d@?kJTc@"|{!RtBa*eh" @9$c@"|{!% Rt|@Ba*eh"a G) ?k*Tb@ T!`:@9 ```@9qT Tq TqaTc Rc0b"@qTq!TcRcRh!RfaRdqTcURcqTqTc URcҵ@cRccuRc{c uRca@9ҵ@c Rcc 5Rc{S @@9_(q`T4@!RSA{¨ ` SA{¨_{ @7aZ@? qT`@!aZ@9_qTa@9?dqaT`!Ra@"@9_qTa@7aZ@!QaZ @{¨_ `@@9?q@T @{¨_!a  @A@9?0q T?Pq T{?qST?qaTA@9?qTA A@9?Pq!TB R ` E)kjTc@|{Rt!|@B`*dh" . A@9?q T?qT@q`Tq`TqT`@@9?|q+T`RSAR{è1#Qc$qT`@@9?$q TSA{è_q+T@9`q@T[B * `SAR{è ?qA/T@@9qATBb T@Aa4@@9QQB!_$q YzT q RAz RAzAT`VR`@@9?qaT``@@9?$q`T@SA!R{è _x@TҨ Ղ @[`J@A@U@!Q `J@9qT@9qT @9@$5R[BSA{è@@qT Tq@ T qT@9qT@9qT @95'$!RaRAR Հ@qTlT@5SA{èR}BbSA R{èo@9 RqAzT@9?k@TRq T5[B'a@6R"@9_|qT!aR@9@9@qT @95  !RE[B  @@@9?q T@9q` Tq T@9qTqT@9qT @9`5`@@9?q T?qT@9q@T`@@9?$q T!RR\`R,@5[B@9q@T@9QQ!?qAz(T@9qT @95 @95R[Be@9qT1`Rq@Tq!T@9! RqAzT R``@@9?q`T?qT?qT@9qAT3a@9?qT`RB@@q@T-Tq`T qT5[Bu?qR$CzTC@9q@T?qaTBbv=RSA{èx C ?qT`@94`@94RSA!R{èdc@qT^{W6 @SCFC@'ҟ#@9kT8R RBa@` @9k`TuN@xNuNF'@@ASAB@@{Ũ_!#@a! '@A@a!SAB{ŨR96 {_qS[`RcRd@k@RR RR@9*:R\4`q TXq T,q T@9`4`@9q Tx?<q TaJ@<q $`J T+{N@zNe{N@ `@@9?q T+@` R`SA[BcCkD{ƨ_`J@*$`Jd@@@95q9R?jT`TRRR  lqTdqATBT@@hqT`J@*$`J`J@*`J`J@ RD`JqaTaJ@!aJ`@@9?qT! R`  R բ+@ @b@9_0q T{ T_`qTc!RL@ LtNa@"@9_qT!a@ @{¨_ B$Q_qT @{¨M  @{¨i{[U @F @C@ #@9qT R* a@` @9qT@ҵF@@A![B@ @{Ĩ_!@av" ! @A@a![B @{ĨR#! @A@9!$Q!?qTB  _{ @[ RcS4ҕ RS@9s4qTaQ`Q!?$qYzTqdVzdUzT@NqS@9`Tq4XG)kT@x :S@95SA[BcC{Ĩ_@@9xPq!T!R@S@9 xBhR!Rx!R lNq T&q`TRqTq`T6q @T@S@9@S@9 {ST @FC@'"@9_Lq T)T_Tq`T_hq T! R`@@9?qaTa@9?q`T?q`T@Qxr T5@ F'@@AʡSA{Ũ_ _8q!T! "R%@ҵU!R;#@ #`@@9?qT#@[B` a@ @9$qT"dG)kTe@Ң$`:$@9$Qq TR"@9_qTRVa@ @9$q!T!a@!b  A)bR!Ra@`J@ `J @9$qT@ ն`* 7R@QxrT`E) kJTb@|{ RJ_A`*Ch!V@K @ qT AR@f dG)kTe@@Ң$`:$@9$QqT@Ҷ@Q@@?qT@`4a R!(_`5[B7[{ R* @S"@9_qDCz`T@4`@`7@8qTpQ@Q T_q T @`@@9q@z T@SA{Ĩ__Xq`%T_qT`qmTa@"@94(h!@9?|qaTQWR@9@4qT@9Lq"T|q %Tq$TB@@SA{Ĩ_H@bPH"@9_PqT_qaT" "@94" "@9_PqTT_q`T_HqT RT @q Tpq"TqTqT!@a @Q qTqT_qhT! @!R2?qTqAT@ _qT@@?8q`T"pQ!@QT?qT" "@9b4" !@9?LqT(T?q T T?$q@T?(q@T? qTSҁRqTR 5@?q TaR@SA{Ĩ?\qTT?qT?qT?qTR 4R4R*!R @Q8qTT_qhT!@A "@94"  !@9?q TRA R?q`T? q!T`b-7`@@9?|qT`aJ@!aJaR?Pq T?Xq!Tc<H!R @?qAT 4k*Tit8q@zT*(h@Kh!REq TBSAR@@{Ĩ7! @j RRnaRi R` E)h@k Td@|{ Q@b*h#h *R2ҡRM ,ARG &ҁRA ՎR; c(HAR3 R- lҡR' 4RbR ն`4RXRRRa R BҸ@hj{ @S[*T@9~qT!5jqT[BBbSA{è6SA[B{è_D D@9hqTB (V4`@6d@@9qT@9QQ!B?dqᇟ|q_$q#*5T@9 A@8#Q QcdqIz$TzT?qaT@@9Q$qTA@9B Q$qTA@8 Q$qT?qTbBKA Rd⇟!**5@9{ @"@9_0qT " B R!@9?|q$BzTn[@u@qT@9R?q`T?qTA4 B4b@@9qaTBK**[BRa`@@9?qT` @@{è_ֳ @@{è_ֵ[Bҳ @ @@4@aJ@!KaJ@A ! )v @9 5?qTR?q!T`R@9Ru[B @ {*SS`F@ҿ9gAqLTgAA#Rq*|||@c%qc||c@c#@ Tj#8?sFcA@a@Aq@SA{ۨ_ {B|@ S[*dF@7ҿ/c"#B(*@4c@/@'@_q!sF7@a@Aʡ[B @@{Ǩ_ մ_T҉T_Tҁ /'@ ՠ'@  ՠ'@ @ R/c DxS`a` ))|PX_ {S@c*[Fks "@oҀ@9|qTA !) 5"@9 RRqBzAz T&@9! RqAz! T*@9?k T$qs R qR{ R *@x5? q(T!|{!@c!q}XO|c WT34qTK@,K,@9_|qT0@9_hqT **K@ @K4K@@9 4@1TR'7RA:Fo@A@AʡSA[BcCkDsE{Ψ_  F* * Հ@9hqT3R 4RK2 R {SScFB(d@'ҿCG4C@@@_q!sF'@a@AASA{Ũ_ ՠ@  {SS[aF#"@Wr Rw!Rc{B}c@BXc#B|c"ˣ7?@@?q(T? qT4 @`@?q)T?q T? qaT@ RsFW@a@A@SA[B{˨_@ RR@U { SsFc@҃@a@Aʁ @{è_C  {R SsFc@n@a@Aʁ @{è_.  R{ SsFc@|q#@@a@@ @{è_ { SsFc@fq'@@a@@ @{è_ "`ҢA"qA_{B@)A)BF}@|@@@|`|`$ @A@aa{¨_ {%`D B) c ?@$/D<~aA[`@)YhA)NTS[ ,@)&J RJAr a  JRݙRrd A  JJ7r   aR A)P r ! JR r J@jˆR r< (@! qR!J4ϴr! ! C)!( J! J!J& @(  HŘRrdf  J   P eJ JJ @ D $@<  J (RȨr(  Jc(  J J R0r  dh R hrJ O  fJQ ,@ JJ Ɖ  < Rs +rsJJc  c s( C$RR rrRJJR F) r c2RrRfr  J   cJQV c ^JcJf  G)  4R6r<  J ~  ~* SRJþr s J r WnhR r JR RJV v 3JRˤr ^ J J f HT FRSJ6rs  sJ~  Rźr 3 J J  vRHrnf  vJ J  V^2МR 2rw JR RJT  J yRJtr 4 J  Rr ~2^ ӼRWJ3ОR>r  W^ JFJ W$Rr  B JJ Rr  $ JJ HR֗rv  r JJ 4R{r4  V RJJW lRr׾r2 R RB sJs R׷r  JDQ .Q$F sJs ؏Rvr  SJr sJs TR4Tr  JV sJr Rr s JsB RJR Rr  J$f RJR 6R:rV  rJr RJR ңBAz|_ C@cZ#C@cZ#C@cZ#C @cZ# B@BZ"_{#&`eFDB)@g%~G@ c ?@$L@aD)3F@D@E @€Tc8tRkR[93R:R#SYPrs8ۭrwrVLr ))hacZCk!!?aT'Q)Jl& c a JD  cJ! c ! J;R)$ ! eJ!  Jdl c J   0l !J mJ @  n  J S)$J   l J  Jc Jmk T) J ! dmc  cJk  Jp # 3@  lc  J t aJ@ ! gl f! JJ- A @ c l! cJ  k c 5J-l J c JcJc  V)  J@ JJ m$   a Jl @c  )J aJ! ml! Jc !  @! J JJJ la kJj J  J kJk J}kJJk $l MJ) J!M Jm Jk )}kJ; k lc { +Jk JkJ Jk gl c J}JJ   k Jmo | J { !J |Jmn !| JJ <   Jm d JJ| JJ c o JcJ|1J{ J 1J J{ m{ 1~k JCJsJk - k sJRJmo  J#Js~kJrJk { n Jk m R~ JJc J Jc K c mk c JcJ~Jc J  J  c lm Jc J}Jc ;Jk fJ c m{  Jc J|Jc J J c to cJcJ} Jn J{ J  nn JcJ Jc +J   Jc mlJk} JJu JJ | JJJ J|l J})J UJc JU { m J)}{ J J  Jt  J,  n tJJ}J  JJJ   Jm |!J J #J  lJm! c|JJJ  J| J Jnk J}! J J ! c! <*>  *k} |   JJ$* )J*o J}^ J!)J^    * )}*  4 c l  JhJ* c c*nJ}c  JJ c c * 1 1*|!  ! ql1  J~ Ja*! J!*>n! |JcJ ! > < !*! |!*1 $   o$ {JJ ;J*! J!*l! {~J J~ !  4 *! ~!*#  c n# sJAJ sJ*! RJ!*~l! s~>J RJ~ ! ~ 1 a*! R~!*c< A  !n< JJ> J!*!  J!*o! ~J1 J !  $ *! }!* J4 JJ  l4 !J!J} J# JJ c n# J!J} J1 aJ , J 1 al1 J!J}k J< Jc+ J  !n< J!Jk}JJ$ a J1 JJa  o$ aJ!JJ})J4 A J )JA  l4 !J!J)}J#  JJ! c n# J!J}J1  J 'J 1 al1 J!J|J<  JcJ  !n< J!J|J$ J1 %J  o$ aJ!J|{J4 J {J  l4 !J!J{')JsJ# JaJ J JJJRJ5J Ja  Js Jk J)Jc R JJn# ~)Js~) J1  J1 JJil) c j J'm R~ ! J)JJ$ K)R ) Jl }2 a J!J~ 4 An (J! JW)D  J{J?)J Jo J#lo }J|J)  ! J. mn Jl J    m%J J }Jk} /) l  w@dJk J! ! l  M)  {@*A)* )@* )*! LC*A CTSA[BcCkDsE Fg@@ `{ͨ_ֳS[cks {S[@bB)q bd_kbT!a CpS GPSf|S!t`C*l*!Zaz%b**bz$vA B ![BSA{è{S@@ 5)T@ TTFv`@sd}d~dzAT˶B@seTSA@@{Ĩ_z@saSA@@{Ĩ_*W֒F@! ?q(Ts˶BsB8 !dz7@zBB@${S4F#[@w{@w@@ASA[B@{Ϩ_< (c0{c7#FC[A@S@F`5ˠ!Ҁs@T %!R5RF*H@ASA([BcC{@#@c0_ ){@S!*! B_cc|} '@R'j3s"jsSA@{è_&@ @{@ )`@ @@{¨" _ {+`S[ҷcRkR/&RRR6~F`@9 x`x06`@8 x`x77#ѵ4QdklT7 zS~}&7@dk"`@9 4~Fb`x06B*B*b44 9!R`@85?97&7@~Fk<`@9A`x06`@8A`x77#@5SA[BcCkD/@+@{Ǩ_RpqT4qT 9!4R4q!T*Rq`Tq`T 9**! R*9R ]&R7@**:R{@#[6c~FRWR @95 Փ@834sx R07kdXzdWzT41T*/1T[B RcC @@#@{Ũ_ @T@R1 T4@4[BcC @R  R_@ 1T {c [F@@Ҡ@G SkR|FRs O{k* T@z@V} xz@9_q Tq TR 7@ @q T!;BR1`TKTR1TK@C%KC@!C@TCC@` 5K@_h!8@@94!!|F `x`06O@@`x06 @85Ң%G@@?a TG@Rң?@%@*{k+T F@@@ SA[BcCkDsE{Ө_֠K@G@@a@@ T!'}bxaB*B}ӢCxzg?7@@!}Ӈ%"@C@BKB|} !GC@*@g@!QC@! K@*@RRҶC #@B BF!R@[ R$ У@B BF!Rc@@P R$G@ GR@@R!*! c_*_ {4ck[ *u~~@sQ^ ?q`TTs~s5[BcCkD @@{Ũ_ *5  @[BcCkD@{Ũ_{5SF/A@7Ҵ# )=#='=+=/=3=7=;=ys7"@@BF7@@ASA@{Ө_ "?qT*"4*{6F7B@?ҵ#)#='=+=/=3=7=;=?=! 37#@C @9F?@@AAB{Ө_  6"?qT*# 5* {76FȢFa@?Ҫ7')#='=+=/=3=7=;=?=@ 7#@C @֢F9F?@@@AB{Ԩ_ָ "?qT*# 5*{6F@GC+C?'=+=/=3=7=;=?=C= k *ҖU79#@@#C?)au7#@kD @@F9G@@A!B@@+@{ը_  ҫ#o)C?k z"?qT*#"?q T*9# 5*@5* {6sFC@GҸ?s)'=+=/=3=7=;=?=C= '*79#@@Y#?)7#@ @@'@9wFG@@A!BCsE@{Ԩ_  -#?s) '"?qT*#"?q T*9#@5*@5* '@9|Fex6Qc|@@_ DT@8BbQc|@ex$˄|ț7e4"__e5 '@9 R|Fdx?j@TQҢ_dqT:Ҫ* ; eqTQ@8b"CQCdxc?jBJiT_c%T#_{,F@ҿ `@9DqT``T!c@9R!|F!xcx_j`TC@ @a?kTk˫F@@A{¨_ r {,+}F@9 RbFC@҂ax7?|qTR?Dq!TT@9Ryax_jTRkF@a@Aa{¨_ ա@9R?|qT @9PQqC{`@ @Tˠia8y`x5{@ @cT@{è_ յU! 3j"@  @ @{è_? 3 7" @ @{è_ {S`@@`@`SA{è_ {  @94B A U4<qTTqTqTA s!@A@ @{è_s! !&@ @A{è_ 8qTb@9s _qT`@95A@ sA {A{è_  h@!?T @9 h38!р@?bTS@ @A{è_ {SJ`@>@b@BbSA{è_{S3cFWza@7ҟq" RBzT@ !@9!|F!xbx6#t  ?Kq Tq` Tq TA !A'@"RCcD *(q\ h#8BDQcѢ'qMTQ*"%RC8qTK|@BT!?@  q T!@9!|F"xbx7sF7@a@A SAB{Ǩ_@8B#xcx7}qT TqTA ! q T'@R'@`xiTA !'@FRbRCA !'@R"!@9!|F!xbx6#'@ ! "_!"!q`TqT !  qT ! !  ա"#|8*CRRw{_(STT_` T_T! !@ .4 SA@{è_ _, T_0!T! ! 5! ! @2a_!Q!|@!ASA@{è_ ! ! `5! ! [6! !@ 5! ! .@ ! !@5! !`#B ! !`5! !5! ! 5! !@ ! ! `5! !w@ ! ! o@ {b ! !@ ` 4! b! `4! !  4`@98q T7~F`x @6 !#t"g! !`@9`x@6"\@8`xAG7@q!T!@98q T~F`x6"H`@8z`x@7@B @@{Ĩ_ s! ! @ @{Ĩ_s! !` @ @{Ĩ_s! ! @ @{Ĩ_ִ@@ @B{Ĩ_a!&`@9s a!& @9  {S3`F@7@94!Q?qTsF7@a@AʡCSA@{Ǩ_ֶ pXaxa _dqT! !V@ ! !`N@ ! Д!1F@ ! Д!1>@ ! ! 6@ Д!@!.@ ! !&@ ! ! @ ! Д!2@ ! !@@ ! ! @ ! !@ ! !@ ! !@z ! !@r ! Д!3@j ! !@b Հ@9q`.Tq.TqT! ! @R ! ! 6!1@A@9_\qT_TqT_qT_Hq`T! !@@, @@W@7T@C+@ B ! Д!0@ ! Д!0|@ ! ! t@ ! Д! 1l@ Ձ! !a@`T!@9!|F!xbx6Cx@! ! O+@-ѡ+`+@ +!1;BR@ ո |F@9xax67"@8xbx7! ! @ !`'@@ ETcv|@! ! +@} !`'+@ h@ ! Д!4@x ! !`@p ! !  ՠ  EW~@@9_Dq@ T! !@ +@3BK@9q TqT! !@?! !@@8 ! !@ "+@@)ҶB'+@I@Ҷ@@q! !@! ! {@ @?8*T #'@ @! ! _E! ! ! ! Ҹ@V {6F'@?  `@9 4Tq#  TT\qT#TdqT! s!& q THq!T! s!s(`@9@ 4: 8 Z; 8qT`@9qh TqTq TI TqT(T! !`.@88qTW! ! t#@9#4! Z-8; dqThqT`qT@94q@T8q@T(qTiT,q`T0qT! ! J@95CD @@!13@@1F?@@A!B@{Ȩ_ֺs! s!`qTTqTT`.@8 q TqT! !``.@8qTqaT! !`.@8@95CD @@ ! !y`.@8|t`.@8w ! !@m`.@8p! !g`.@8jq`Ti! !@]`.@8`acX`.@8[ Ք!-O !$K  !$D{y! s!:  @@#@ҷ! ! /k պ! s!& @9q!T/ ! ! @9/@; 1! ! CD @@E ռ/@9/@ Քa' ! Д! $qT! !@9,q`T! Д ! /CD @@CD @@{S`F@?ҡ @9` 4#;j. F?TBB|@"D?TBB|@!  CTBB|@ #'@/3@@sF?@a@AʡSA@{Ȩ_@  | {[SF3 @@g+G4@9q`T'5G@ W`@94c-Ҽ/hqTs`@9 qaT`@9{PqTTXqT`qaT` Tb@9!|F!xbx6R[@Tb{{`@9s5C/@! !`I?TBB|@B!1O@@Z5'@Fg@@AASA[B@+@{ͨ_Lq T |@B4a@9?Dq`T|Fax 6[@@I _ @C[@Cono@G5oBmo@G`4C@TǏ|A_K!B%`6B'SC@C/@Rҏ R҉ a#~c@9eDqT c!i_@@_9[@[@`a ՠG@v˺'@Tr !1yO@f CC@[@@9 `4u8[@{2R+ {/@ZC+s?Rs@?@woo@G4s?Gs@?@feR/@C '/, {ScFe@/#@9c4Dq T|qT~Fcx6C) +@ ( TiT@9|q@TV[BcCsF/@a@ASA{ƨ_ %@9|qT%@9PQqhTm@@!T@9|qT@9|qaT @9LqT? T~F@9zbx7 @9zbxb6?aT[BcC Հ@9|qT @9PQqT:[BcC ҵ[BcC# '@@9!|F!xbxA7Ҷ@ҡҸ@BC'`p+@T`[B@B@T[c}{k[ FS*cs8 л@?`@9qT 6 @94qT\q(TTq"TqTHqT59F?@!@Aa SA[BcCkDsE{Ȩ_`@8qT`@8q`T dqTR@;?`@94qT3@47@TBB|@@9A4  @?B˂KBb644 a@?ˀK`6!4 r3@{#R!SF@'l@9hqTC Q@@EF'@@ASA@{Ũ_s {SFw#@GS d@94q"TTq@ T) Tq TqTsq Tҵ[Bq T TLq@Tq@T8qTAs!&*&[BFG@!@A3SA@{ɨ_ `Tc@97!|F!xcx67@r! ! nC@-ѡCRC@C!1X[B ա s!Q[B[Bҿ ՟q TqTa7[B >C@ ՄQ$qT@ҧ `"qTb@9!|F!xbx6J`! ! "C@-ѡCRT C@@C !`' [B} դ9``Ta@9~Fzax6!@@9|qT#+9 !C@{ѡC`@9`xb@6a @9ax@67 '8 "B 7_y$R" R(BKlS 7y" R#R!(B!K*9s @TA9,q` T T4q TcTq! T! C@ѡC``@9~Fb`x@6a@9caxcG7@'@ҹ#@[B+@ w! B!@E5`9@4[B a !s`@9qTa} !@[B !Q*9Q $qT(qT! !s nC@N ! !g ! !a \~F `x 6"! !O  b@9!|F!xbx6g! ! > C@5-ѡCRn+Rc`C@`C !`'@ C@ ո@'@! A9q`T"ҡ[B#@+@tB|;@T[B#@+@f[{ aF"@/`@9A4! B!@|5! !@+,`5! !`D T!?qT!ҙ'@9A#@sF/@a@Aʡ @{ƨ_;@9#@4ҿ+'@A մ@ ՠ#@  2 @94RReRG?pq|!Qa8A@8` !5_ R_{q{_ {S'$**@SA{è_ {wF @@ғF@@A! @@@{ը_ִ5 @5 2@9q T4Ҷ @ߊqTW@@@ @ մ@@ բ#R5! #! 5+@k@?aT'@g@?T {R СsFb@_.BHҡC_@d@B  @{̨_?_ `R!KrBR! RBrr!Jc FRcKbBrc JBKBK KA4CJKbK0AJBK!KB@J!KK!BJKBK AJBK!K@(J!K <@J_ & aRŠarRRbK@!B )TAKA #||ӣhcT*kTƠ||ha?T_ ** kTAK*A !|ӡha{" FB !R@{@#h@@SA! H T!}?! h T.@# *@`? B8 !ˠj@T@ ?֡j@@!|ka@ @|A`K"B B$G xg%T@cQ@|`K@ $T@ hTKx` 7"T&@ ?ֶ@ R@SA@@#@{Ũ_f*.@ !|ha#"@@? R@SA@#@{Ũ_֢2@"*@@?ֶ@ R@! R@@@_B _ {[ckS+1*# ~|c!{hd?֠?`zfx {tVw2vj+@SA[BcCkD{ƨ_ ?+@SA[BcCkD{ƨ_ {S[ck*" ~|B Zhc`??`ybw zuZtjSA[BcCkD{Ũ_֖?SA[BcCkD{Ũ_  0_ 4GG 4GF {@@ @sq$Ts~@zssiT @ ?S6 @&@! ?&@A{è  Ղ2@B*@@?*@2@A{è@A{è_{S@[A`q$Ts~@zssiT @ ?S6߂@iTs&@*~| hbA@ ?փ.@s~@*@`?րj[BSA{è_}R[BSA{è_ Ղ"@@?ր2@@*@@?{h@; z8@| @Gc 8@ @FkfC|c`SKsS s&sXsUc#*@ T@@?֠5j@@|AFk`' @{eQ>@@~`KB &ւc>` cTKx`U`T@@?`5>@` @c>Tx`BC@ @@D{ƨ_ @cC#@D @@{ƨ_ @BCD @@{ƨ_ ն{Sa@ ?*SA{¨{{q**@ T /!k@; z ;@$@"|C ;Bkb`@e @~`ӓKS s&`}Ӏx`` T"@@?֠5!k@$@ |CBk`e @{aBQ#?@ @~`ӔKT &c#?` cTKx`}Ӆ_ T"@@?֠5#?@` $@c#?Tx`}Ӆ_46 @Dѳ @/@ ABC{ƨ_6@D @/@ABC{ƨ_ @?Tp45@ / 4 @D @/@ ABC{ƨ_ 6@ @/@DABC{ƨ_  պD @/@ {Sa@* ?**@SA{èA{R; @ a@ ?ր@!a @@{¨_{Sa@ ?*SA{¨{S @?T@ T@Ta @A ?`@!ҁ`SA{¨_֘ {SA[tb@s"_iT?`4TSA[B{è_{ B@ cc}c T @{è բB @{è 8@/4<@!cca_@9R4cRA@8Q5_{q{_ (7R*Ƴr@* T?,qIT@90Q (@9,q@9 @9=S@9=S$@9! ,@9 @9,b @9! @9 @9 b @8c J=Sb F!  a h  cKK 4BJcKBKc JBKKB4CJKcK0BJcKBKc@JBKKBCJKcK BJcKBKh(JBKB Ts~`|c #R7@9q@z!T? T _8aqTR`j;8?9!R\4@94zy 9!RM@57@!7@  @qAT j;8O)QkT@95{77@qmTzskTzs*zsK4qdZzT kP)kkКqT  xskTzs*zs/45C@q TQL<R`@s *aTk@_k;K{ s T@z{{s _klT`|@* 9@qmTQL;{A@LT@`?k-T!Q B !K!R!C@yB@9y 88aT@9_k-T@zx+_klTR#RR{ @` @@R|ba  @{¨_{S3s}`B#T @*B!)T(T @@|R R @!K SSA{¨_ հ`SA{¨_ @?qhTҤ @@| CR K SA{¨_ւ @@@ SA{¨_R{@ @x @@{¨q{@Sc bBTs@st@TTx?Ts@# s@T@LT`@ s@`@s?t cCSA@@{Ũ_ֹ#T@wT0 T@ T(!T#@ cCSA@@{Ũ_ T4@ @HT@T@ @ TTsT@{CbFc,B!R@ Rn @A9@7@ $@@{S[bV?v!aE@?ւBa@B RB[BtbaaBA9!taB9SA{è_  @A9 @7@ $@@@A9x@9 @A92$@9{[@S @@5"UITE@?}  @CB?B! ?5 `u@aa @5`BA97a@Bb @!_T`BA9@xuR`B9[BSA{Ĩ_ @@ ?T@_T@@R_  R_{@a ?T @T5@`BA92`B9 @@t@{è_ֵ@at @@{è_ֳ @"@B!@_ {S*[Rck*H@SA[BcCkD{Ũ_!R`5 s  _ {"R **AR7* @{¨!! 3  @{¨_* !;*e{)RFS+@gҿKM@7) 5!RG@O@ q T1@Ts 5@ RSA5w@?q#5O)?qq5#5@!*|A 5@@5+@@@R. !!@R(7@@R  !`"b@RS@st@RBa*!@ s@sy @v @R@R"!:s SO@@ RBGҿ[D 5w@_qB5O)_qq54@ 7[@*6@@xS@{@4@@@/@ 3@! *!Fg@!@ASA@{ͨ_ R4S@ҡ@AT ՠ'@7#@ #@Gx'@@67@a@ С!SY j@ !@!/@@3@@w@ҡ+@[@o[@?@iS@_*7@7a@ С!S2{@!R2 6 `!S=@' ՠ{@O7[@@?_qt@E7S@@AR7@;@7@S@ *|S_4  @!S@ ՠw@'7[@?I ՠw@R6 S`!S@R AR R7S@ @ !@!@ ՠ{@7S@@_?qw@7S@_ S@! Rn q#R!HR6Raf {S [*`Fc@o$5#R*G*DER7sFo@a@A!SA[BcC{Ψ_ R*R**@ !"  c$F  @@T@!hc8?|qT 'R|FIT@!hc8?|q`T4cax{BBӣ6!Q@D!TR{(BaxBӣ76!\Q@D! Մc_ 86!tQ@D! "R(_ @@"T@!ҥhc8kT__ {c{_  'R?B|FF@y@@_T@chb8|q`T"@B|"@@T@chd8#4cx7bQB_qT"@c\Qc|@C# (f4B" B_!R(_cQ"@c|@  4@@?1@@ T_T R !R(b|FB@yJB6@$f|F+R T@chb8cxg 64aQB!|@$HTJ4d (@ Rhb8q@ T 5!R(a|F!@y*7!R}(}_g|FBdx6Qq!|@!T?1T_Thb8B|q@T@#`BT@b4A#Dhc8|qT cDhc8|q`Tc$C?B_ R T@hb8?1T B,R#R(}_@yJQdqiT_ !" H`8a  0_  #_  $_  $_ Հ 8_  0_  #_  #_  @$_  $_  `$_  $_  $_  $_  `#_ Հ _  8_  =_  @#_  $_  #_ @5@C"TA!_hT{ b?T)s_T?T@ @ @{¨_ !R_ բTS_IT!R @{¨_ Հ@Q~ R @Ҵ{#d S `F"R@'Ҵ*@A`?sF'@`@ ʠSA@{Ũ_ִ {҄ S `F 2"R@'Ҵ~@A`?sF'@`@ ʠSA@{Ũ_֎ {S FC@?@IT`@bAAҀ #`?a B`@!bA`?֔F@@ SA@{Ĩ_ Հ R`*@\ {S @F"@bA !?`?U`@bA ! `?֔F@@ ʀSA@{Ĩ_ a"@`@5˿fHT9bA!Ҡ`? bA ! `?n`"@˿fT {R `@bA Ё%`?v- b@AbbA`?b"@!Bb"AT`@@A bAAҶ@ % @{è`ִA@ @{è_ {S @F@d@'?T R`*F'@@ ʀSA{Ũ_ @uha8 q@ TU 4$q THTq T(Tq`Tq TsT`@bA!Ҁ ?`?֡#@`@?$T?4`T?( T"_pT9bA!`?`@bA !?`?`*@5`2@@4`@bAA`@`?*d`@bA`?ֵ@ տq@TcTqT_T`hd8qAT`@!abA !&`?`*@4@qT@ `*@!a.@!5a*@u@`a5pu@|qTTq TCTqT@bA ! `?ֵ@k  R@`*f!T#@T`@`bA "`?`*@ `@ bA "`?`*@ bA A`?`@{qTqTqT bA A`?`@kbA A`?`@cbAa @%`?֡#@`@bA !`%`?`@Q#@?$T?4T`*@Q {S`@ 5c@``@tSA@{è_ { 'FB@@W@7@5P@1T#9@9BA`?ֹ#@AFW@@ 3@'@{˨_ ՟Tc #@9|q`T@9  Cq`Tq TR@8?q$DzTs#T BA?֔`T@9B@qT )T@9 qT?@TLq&Tq@'THqA(T @9q )T@qT RSa ՟T@9qT"BA!`? tҿ9bBA`?ֵ@SAcC#@ ճSAcC@#@ յ BAA`?ַ `RTsqs@`ThT`~ӻ+; @@ T ~@88888!T{ Aԡc|FH/ ҕWR҅AҢ )L Q@B` )}# Tc! Tb_hAT _8`xJ76XQ Քc #FA3ҀRja8?qT9s BA!`?SA#[BAO`?֦O@FW@@ ʀSA@#@+@@'@{˨&3:+@ R@SA#@@+@9qTcC/@ Ԛ Ts BS( TGa~ӧO@GG@O@ ~ӂ B~Bѥ?OK@RFk?@HO@T|SRl2`h)8DLRB*9,F!*`29 9@ T ՚Ҡ ԚT|ț!ET k~U` TcC~Ӽ/@ h`8a4h;8{AT{ S R/@cC@+yh)8qT9R @9@q!TRS @9@qaT@RSғһ+0q!T @9Pq T@qTRSҽRSҺRSҷqT @9PqTRSҭScs# Rc/6q$C@T @9Qd$qT*@9dQ$qT*qT`*`|qTq CTsa QcqT\QdQqTc\Q{S (@F"@O5b@`@[T RR`**M b@FO@@AHbASA[B{ʨ` `:@1Ta:?qH TBqT>q" T q@ TiTq`Tq!T`*@v"@#4`@Tc@ah`8?Tq@4T?,q1T`@bA a`&`?`*@w-5a@`@Ta@!h`8?qT`@bAA`?`*@4`@ 2bA!`1`?a@`@bTa@!h`8?qT`@v"`:@1@TQ[B`:FO@@ <SA{ʨ_a@5h`84`[B[B!R`:a* a.@!5u@`cu` տNq`T TRqAT`@)bA ! `?`*@5c@v-`@Ta@!h`8?qT`@bAA`?;`*@5c@``@T@bA`!1`?֤`bA `8`?`@ տqTb@RBb `@'bA &`?`*@z"@@ 4d@c@z"T`@hc80q"T R'@[B`*~ `@bA !`?c@`@Ta@!h`8?0qTJqT`@bA %`?\ `@bA ! `?qT`@bA !`'`?H`@bA@ !@`?ֿBq`@ATbA %`?`@bA &`?+`@bA A%`?`*@5ib@e`*@5c d@c@&# 9C-T`@hc8qTzb@a@_) Te@ha8qT!ac@C5CbA ! C`?J@A`@bA a&`?bb@a@?BT`@c@ha8qT!aCbA`A-`?c#@cCcB`@bAa`?`*@4d@c@cC#@5 4c@cbA!`?d@c@`*@4a?Taha8? q T?@wG@ R@`*a@`bA %`?b@`@Tc@ah`8P`*@4a@`@Ta@!h`8?qTJ`9w`@ bA! `?cc)``@bA a&`?_'@W`*@51a@`!w 8bA &`?a@k:Z&?Tju8|qATbA`?a@bA!`?a@9kDbA`?`@bA A@&`?ָ@a@C@a[ckr@w k8 @@_T@chb80qT,qT (@B4_ {B{ l {S 8@*F1"@GҠT`:qTa@`@#T`:@!Ra*1`TQ`:FG@@ `&SA@{ɨ_b@Uh`84c6q TTqT&qT qT`:@@@*v5`@@bA ! `?`*@5v-a@`@Ta@!h`8?qT`@bAA`?`*@4`@`bA !@-`?ֵ@`:@Ea.@5u@*`u`:@@ aRvFG`2@4`@bA ! `?`@ bA !`'`?ֵ@`:@aRQ Rw.@`.*w.@`@bA ! `?6qT`@bA '`?RbqTfqT:qT?) TAhc8 4*` 9R~Fbx?jTc*aRn7@A9?@ax 86`@` bAa '`?֡A9`@? q` T?Lq@ T` bA!Ҡ`?`@ @TbA !5`?֢FG`@bA !`'`?`@bA !`%`?ַcC`:@@`@bA A@`?`<  RRR`*`*@4G @T`@bA A@`?֢FGH@bA @'`?֮`bA '`?֧? qT?LqT @ATc (@b5 _ {(@5 @@?T@Bha8_qT_$qTR @*@{è_ !4a.@4 @R*@{è_ յ!Rx`@bA ! `?`*@uҵ-5c@Ab@_Tc@chb8qTb@bbA`?;`*@44R @@ B@4Rb @u@`u* @@{% C!HR dF@gң @9 )|qc@TRsFg@a@A @{ͨ_@9?HqT?hqaT@9?8qT @9 CA4 $˥|FRRIRA@9CG?|q TaxjT'4?q$Jz$IzTA@8A5g5@A4S@*q  @9C!|F!bx!?6R5!R@G@S@a5cT@ RR@@G@S@G@"hb8qATG_LT#Pb !'B5G@S@T@3@qd@TA7@D!T`@9qTR&R*  *<@Tahd8%Q$qT%QqHT!\QҠ4@6!|S?T@Sq@ST B@AG@S@"T@W@IA`?AB@qBLѢGAB6{B` S cFd@'ҿC4!҃C@`4@sF'@a@ASA{Ũ_ աB B c9"h 8 ՠ@ {S cFRd@W*!R5;@R  @q`TsF*W@a@A!SA{˨_ g*` { G` @|qLTa b R5SA@{è_ "ҟ"R>R!`{ !pG!@ *A ?* {  3@@a"A @{¨_ `" @{¨_{!S3 A D!@G F@ B7(@9!R@q/ R ƜG { H @{¨_ {$@SaT3SA{¨_ ~ {? 3 @{¨_ {S[TRASA[B{èR {ShSA{¨D {*v@{¨_ ճ  *b!R c8W@ @{¨_ {Shh38SA{¨{0@P@'kT  @*|~`"a@7`2@vR@kT~@~ӵ{:RaCdB@`&@B!ht@c*?qa2@ZkkTA*CvR'@B @{Ũ_:R*'@{Ũ_ `&@a2!{[vR@`&`2@kT:R { ba6@ @{¨ @ q T|@ сB9`=4ҁB9 R`7@ @{¨_ @{¨%K @{¨:@ {S[*` 0$P4pDSA[B{è_{S *saF,@ "@O/@ 1T`@'/ #R84cC@Da@c@`?* 7`+@#56EӃ"HӔ7`eC@*R@?* 6Z@ R`;RG4bC@*B @@?4bC@*B @@?4bC@*B @@? 4kD@G@sFO@a@AASCDsG{B/@_ `@'z@Z7#t7`@@6cC@E*oCc@`?֤o@7WR)`"H57 06 q;RRG `9G@ @;G4R*R`@u+*` '@@:G@'@ 9GkD@ `/@1!TdC@&IӂG@?*`7aC@b@B6`@# ** G**@*@?* 6q8* qR|T dx/@1T q<'@q` @ң )eC@M)*@`?*7@q =RG<aC@ 06#@GC`?֠7cR)`/aC@*`C`@6EӃ"Huy+  :Gnas@`?@!as!|}`?T`?@as@!"a3@`@!a3!|~a3@ҹkDA!@b4H@q @;RRGXRmkMҚ {S0@ 5`@qT`@[*`B/ {B 3 !=!u[Bt.`*SA{è_  RSA{è_[Bҵ[B { 0@F_qd@'T@ B6@_qT@@@?q*c@`?֠7cB@*G@c@`?`C@` @F'@@AA{Ũ_ֳ @RbB@C@@B @@?bB@G@B @@?ֳ @Bҳ @ {S FC@'*@R\ 4`@q B=a !;!`2a*@5F'@@ASA@{Ũ_ @?qT@@*c@`?`2a `@*`2@ t?@*,@?qT{@@ c@`?`6a. @{¨__ {S [bF* @C@'a2@k T"@~~ RsF'@a@AaSA[B{Ũ_ բKRB|~ 2@ գ`5?{S [bF* @C@'&@R2@kT~{ RsF'@a@AʡSA[B{Ũ_ բK|{RB|{&@2@ գ5 {@ ?qFC@'ҍT@@B @@?a.@?qTbB@B @@?`2@@[`6@@X`"@`*@@5`@V`"@T`&@R`r@qMTR`>@ht`>@ht"D`r@kT`>@?A`B@ @a ?F'@@ `@ @{Ũ/`@- `@!Rx`a { 5`F>A@gbsFg@a@Aʡ @@{ͨ_ִ ж> R 5# 5[@ @q >Tx4R5#w@ 4 >kR5#k 4 Дb>R5#a4 >"R5#V 4>Ry5#M4 Д6W`tR>@h68_h78B@  >0 ՠ[@ @qT~@ ՠ[@ @qTҷ[@ @qAT ՠ[@ @qT ՠ[@ @qT > 6ҔW`ҿ  {[cS#N|@*|@t|@s B@9`D@B0@j3b0*1T@5#@SA[BcC{Ũ_ 3֢7XU R" F@@ B>!R Ҫ{Sc c??˔C[*X4{s*`?s!TSA[BcC{Ĩ__{{_yurmheb_[XUROLIGC  =94/)'%"(%"  ztjd\XUROHDA41.+{xungda^[XUROI:4.(" ztnhb\VPJD>71+&">  C/+spl i;75,( XC=~di_F{P:K<<<<<4<<<<<'<<<V^q<<<N< <<5 !,<"<< sE<:H<<<<Vx<<<<~<<<<<<<;< ><<<<<<?G<<IKLN<<<R<R<<<<<<<<<<<<<?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ MKbWg$:;:?; 686 8 !":6789g( 67;67CKg;=G%12ni%nn%n'nklm%yn   !"#$%&'()*+9:;12e !"I:%&':: !"345bd<%BGHIJKLM%RSTUVWX:%%%%`%b%%%T% !"%r%%%%xyrGHIJKL% t;;CK;%&'Q345<eBklm%%$i:M%x;RSTUVWXC%%%% `Kb%%%%QC%%%% Kr .QxyeC;8klm:>;@ e%xklmM%xh c%%j :%&'%345%^ <`%B M;RSTUVWX$`%b%z&:%% %;rjbxy%%&'( %%::;%345%%%%%%<%B%%%%%%M%%:RSTUVWXi$`b% !"rxy%%&'%%;345<BMRSTUVWXOYr`b !"r4xy%&'345<BMRSTUVWX)*+,-`b68rCxy !"acgklmx !"./0=>?@ACDEFNOPQYZ[\]^_def$klm./0x=>?@ACDEFNOPQYZ[\]^_defklmx !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !" !"& !"$&C !"%Chopqrstuvwz{}~hopqrsuvwz{}~ !" !"sY?wbd6Cjk/'6TCN&'( sF   O,_X3fXR[h8{|iQlRk^XmnoVjk"|7pstvwEyz{|}0Z=>7ei !"#$%&'(Xralyzmno$%&'(X@clmtu}@XX    ~?GD"#$%&'(s    *HGIJ/GABCDABCK;-:eI69J  /.I:45J;?ZH/FKS[WEL<\SWU34K~]:^_a+`gh:ito1qu^_`abcdef! !$).^_`abcdef2&*71859=>@BCXMIN]VPXchjkrz2 !"#$%&'(vunqT #<bxr !"#$%&'(J}~ !"#$%&'( !"#$%&'( !"#$%&'()*+,-./0123456789 !"x:#$%&';()*+,-./<0123456789:; !"#$%&'(< !"#$%&'( !"#$%&'( !"#$%&'( !"#$%&'( !"#$%&'( !"#$%&'( !"#$%&'( !"#$%&'( !"#$%&'( !"#$%&'( !"#$%&'( !"#$%&'(+ !"#$%&'( !"#$%&'(, !"#$%&'(- !"#$%&'(/ !"#$%&'(0 !"#$%&'(K !"#$%&'(\ !"#$%&'(` !"#$%&'(f !"#$%&'(g !"#$%&'(l !"#$%&'(w !"#$%&'(y !"#$%&'() !"#$%&'( !"#$%&'(IIJ !"#$%&'(JK !"#$%&'(KLMNOPQRSTUVWXYLZ[\MNOPQRSTUVWXYZ[\ !"#$%&'( !"#$%&'(  9 YS< : dZ]TUMONQrF;>D=@ABC?E.3juiqsd^qsVoHT^Xq( 1/ !$%4&6'* eXZ[<^ -7o_lvkrtWl#(nmJGIJL[]GHSpVWP`c_I+20,#"58fgb`4+4UfbeRY\)wtmca4o;<)MN\jadx-./01257:=QKhs   pw36,oNKgh4$OLkn*RNi8%PB4uwC?9tz ?>@xytv{|}@D&@A!'~E"F      %%+,123456789:;=?ADFHJLNPOSVUX\``bdfhmmrux{~ !.7BKV_hluy   #*78<=ACHMNSUZ^`dflox  ",.@BDJ?Y[Xa`hijklmqrswx}~&&237;DDRR\]aeipt|klm::./0=>?@ACDEFNOPQYZ[\]^_defx &Chopqrsuvwz{}~ %%%:::12%%:%%%%%%%%%%%%%%%&'345<BMRSTUVWX`brxyt;; C%%: %%%%%%%%%%%%% !"   :;;CKe; ;n%%! $%%n;$:%(%n" GHIJKL%%i^i`$%;%&$:%% "%jb;'%; %::)*+,-68Cacgx;%%%%%%6789%6;%g%%%%%%%:i6767$%%%%;         !""<<<<<<<<<<<<<<<<<<<2<<<<;<e6<<<><Lg@AU%YBCDE:OQpMvdx{  FPA?v GHpq Stack nowtokennterm%s %s (%s %P:%s: file format not recognized; treating as linker script %F%P:%pS: %s in %s %F%P:%pS: %s Starting parse Entering state %d Stack size increased to %ld Reading a token: Now at end of input. Next token isShiftingReducing stack by rule %d (line %d): $%d = MRI style script%F%P: unrecognised keyword in MRI style script '%s' -fill value*default*PT_GNU_STACKPT_GNU_RELROPT_GNU_PROPERTY%X%P:%pS: unknown phdr type `%s' (try integer literal) FILEHDRPHDRSFLAGS%X%P:%pS: PHDRS syntax error at `%s' dynamic listVERSION scriptgloballocalextern-> $$ =syntax errorError: discardingError: poppingmemory exhaustedCleanup: discarding lookaheadCleanup: poppingPT_GNU_EH_FRAMEPT_NULLPT_LOADPT_DYNAMICPT_INTERPPT_NOTEPT_SHLIBPT_PHDRPT_TLS$end$undefinedINTLNAMEPLUSEQMINUSEQMULTEQDIVEQ'='LSHIFTEQRSHIFTEQANDEQOREQ'?'':'ORORANDAND'|''^''&'EQ'<''>'LE'+''-''*''/''%'UNARY'('ALIGN_KBLOCKBINDQUADSQUADLONGSHORTBYTESECTIONSINSERT_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_FEATURENOLOADDSECTINFOOVERLAYREADONLYDEFINEDTARGET_KSEARCH_DIRMAPNEXTSIZEOFALIGNOFLOADADDRMAX_KMIN_KSTARTUPHLLSYSLIBFLOATNOFLOATNOCROSSREFSNOCROSSREFS_TOORIGINFILLLENGTHCREATE_OBJECT_SYMBOLSINPUTOUTPUTCONSTRUCTORSALIGNMODSUBALIGNPROVIDEPROVIDE_HIDDENAS_NEEDEDCHIPLISTSECTABSOLUTENEWLINEENDWORDORDERNAMEWORDASSERT_KLOG2CEILFORMATPUBLICDEFSYMENDBASEALIASTRUNCATEINPUT_SCRIPTINPUT_MRI_SCRIPTINPUT_DEFSYMCASEEXTERNVERS_TAGVERS_IDENTIFIERGLOBALLOCALVERSIONKINPUT_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$@4ifile_listifile_p1$@5$@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_opseparatorassignmentopt_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_listparen_script_name$@18mustbe_exp$@19exp$@20$@21memspec_at_optopt_atopt_alignopt_align_with_inputopt_subalignsect_constraint$@22$@23$@24$@25$@26$@27$@28$@29$@30$@31$@32atypeopt_exp_with_typeopt_exp_without_typeopt_nocrossrefsmemspec_optphdr_optoverlay_section$@33$@34$@35phdrsphdr_listphdr$@36$@37phdr_typephdr_qualifiersphdr_valdynamic_list_file$@38dynamic_list_nodesdynamic_list_nodedynamic_list_tagversion_script_file$@39version$@40vers_nodesvers_nodeverdepvers_tagvers_defns@41@42opt_semicolon'2.9DOZep{ *5@KValwKValw'2=HS^it[fq|=HS^it<< GGRR]0%$/:EP[fq|!,7BMXcny*5c@n] c N@            !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ(' )*$us&%('"(' !)*#$&%"!*#$$z  z zZD;<vt;<71A71noAaV_]hT30?\JIy30m`^>U@}S2+.HE[F>}2k.E@>}9Lxbe~rW/9Lxe~rxx~:8=R|:8=l|Kj-pqGpqcYc,NfXCCdBdB{6{6g44wMi5P5OQ  ^ffff^^^^ffffffff    QBoq5CDD@DD<(DD'&D%UDD%D"]Y[\X irwnmrDD/+DDD"D*%EDDDDsDDWDD{DDD DD4DD579d5DDDD[CDDDUDDDDDDE/HZDDDDDDDD._S[DDonrcdbqelmklYwuzyL~trplhOhDDkgspqfpp_pg]iliVf]_Ra_]_hRLMRDUKHGBNDAGNO?OCG:>8;"BCCC2+BJ?=4079B'(*0$0&-./ )(&#!   mwv|pbrfZ      Rxzpt}kk}jwmvqtrcqkeqma`gkbU\ZSbbc175/=>IJVVKT8RZ@M6>FFD43A6(!.,  "]^a!'%,"6<06H;$!?6RSFUBMde\YO]_]Q\`gh]~^rgzz~z|D     !#)-.,%!153&:59?;<:?5<,C2QOACWTJ@]Q_RcbYecWg_OPob^_ogjo`prut{s        DBMXcnyyylex       $$bb  /-,/,-,1- 1,0,,3703556u9867865889U ;U_;]ddmo};un;;]mo;n]}g_gpgpgpgg  !hhiiiishshihhsiijsjjjj""|p))p-'}"'- #{|%%%?} ?@%A%@SA@%SU{ %U%%%S&&&U VD&E&&VDEDE')+&,&V##$-$$/#1$2##3$$SSS456789SSSSSS<>?@DFGHJKLMNOPQSTUSSSSSS^^^WXZ[\]^^^^^^^^`c^a^d^eafghkmn^oqrsvwx^^^^^^y^{^|^}^~^ffffffffffffffffffffffff{{{{{{{{{{{{{{{      !"#%&'(   )*+,.0      1235 6 7869:<>?@ABD@EF6GH      I@J K ;;;LMNOPT;;;;;;UVW[;\;^_`abcdefghijklmnp;;;;;;rst;u;eeweeeyeeeeeze{|}~eeeeeeeeeuu uuu uuuuu uuuuuuuuuu}|{yxtsonmlkihdcb^]\[ZYXWVUTSRQONMKJIHGEDBA?>=<;:9876543210/.-,+*('&%$#"!    zywvutsrqonmlkjhba`_^]\[ZYXWTRQPONMLKJIHGFC86543210/.,+*(&%!  ~zyrqlkc[YXQPOMKJEDA?>=<:42.+)"  !"#$%&&'()*+,-./01234##56789#:;<#=################>##?######@ABCDEzGHIJKLMzl|zDE{GHIJ KLM(, 7* )-+A m:. /K![0L\  nNOPQRSTUVWXYZ[\]^__`abcdefghijj\kl\\mnopq\rs\\\\\\\N\NN\jjjjjj\\\\\\\\\\\\\\tuvwxyz{|}~ !"'@B()@ABoA#P$3 :4"   5Q% 6DA AEAhi  :FZ:k:Ilz`AAaA7Au::G:v:w}zHSUVTWzpAz:zqz A]X^:A YA  :A : : A   zz:rzno AAAs  ":::zzW#tXuvMwNxy Oz {P  |  @     }~      H   zz      ;;;;;;;;;;;;;;;????@?A??BCB     B?A?A??BBB !"#$%&'()~*~+,-./0123456789:;<=>?~@~   ABCDEF      GHIJKNOLPQRSTUXYZV[\M]^      _W`a;;;bcdefg;;;;;;hijklmnopqrstuvwxyz{|}~;;;;;;kjihgfedcba`_^]\[ZYVUTSRQzLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$!      FFFFFFFFFFF     88888888888:::::::<<<<<<<<<<>>>>>>>>>>cccccccccxxxyyyyyy~}|{zyxwvutsrqpmlkjihgfedcba`_\[ZYXWVUTSRQPONMLKJIGFEDCBA?>=<;:9876543210/.-,+*)('&%$#"! yz   9ztsrqponmjgfedb_^]RONMJ =921'&out of dynamic memory in yy_create_buffer()out of dynamic memory in yyensure_buffer_stack()out of dynamic memory in yy_scan_buffer()out of dynamic memory in yy_scan_bytes()bad buffer in yy_scan_bytes()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()%F%P: EOF in comment %F:includes nested too deeply %F: macros nested too deeply %F%s: file not recognized: %E \%03o%P:%pS: ignoring invalid character `%s'%s /usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/ld/ldlex.l in script in expressionfatal flex scanner internal error--no action founds*/9>De 2CUKPZ7_fjosw|EzegT8?FM4[ip!(+ (39?EKQV[`ejot  -a7%F%P: invalid hex number `%s' Shared library control for HP/UX compatibility-shared-pie.map--shared--library=%s%F%P: Error: unable to disambiguate: %s (did you mean -%s ?) %P: Warning: grouped short command line options are deprecated: %s %P: %s: missing argument %F%P: use the --help option for usage information shareddefault%F%P: unrecognized -a option `%s' definitionsnodefinitionsnosymbolicpure-text%F%P: unrecognized -assert option `%s' --defsym%F%P: unknown demangling style `%s' %F%P: invalid number `%s' Usage: %s [options] file... Options: @FILERead options from FILE %s: supported targets:%s: supported emulations: %s: emulation specific options: ELF emulations: --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 undefs Ignore unresolved symbols in object files -z muldefs Allow multiple definitions -z stack-size=SIZE Set size of stack segment -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 -z start-stop-gc Enable garbage collection on __start/__stop -z nostart-stop-gc Don't garbage collect __start/__stop (default) -z start-stop-visibility=V Set visibility of built-in __start/__stop symbols to DEFAULT, PROTECTED, HIDDEN or INTERNAL --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: both -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 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 Report bugs to %s ignore-allreport-allignore-in-object-files%F%P: bad --unresolved-symbols option: %s %F%P: bad -plugin-opt option %F%P: unrecognised option: %s %F%P: -r and %s may not be used together %s%c%s%F%P: -shared not supported %F%P: -pie not supported %P: SONAME must not be empty string; keeping previous one descendingascending%F%P: invalid common section sorting option: %s %F%P: invalid section sorting option: %s trampoline.lds%F%P: invalid argument to option "--section-start" %F%P: missing argument(s) to option "--section-start" .bss.data.text.text-segment.rodata-segment.ldata-segmentP,%F%P: group ended before it began (--help for usage) %F%P: invalid cache memory size: %s %X%P: --hash-size needs a numeric argument %F%P: no state pushed before popping placewarndiscard%F%P: invalid argument to option "--orphan-handling" share-unconflictedshare-duplicated%F%P: bad --ctf-share-types option: %s %P: no file/directory name provided for map output; ignored %s%s%s%P: cannot stat linker map file: %E %s%s%s.map%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 %P: unrecognized option '%s' %s-%c, %s-%s%sKEYWORDARCHSet architectureformatTARGETSpecify target for following input filesmri-scriptRead MRI format linker scriptForce common symbols to be defineddpdependency-fileWrite dependency fileforce-group-allocationForce group members out of groupsentrySet start addressexport-dynamicExport all dynamic symbolsno-export-dynamicUndo the effect of --export-dynamicenable-non-contiguous-regionsEnable support of non-contiguous memory regionsenable-non-contiguous-regions-warningsEnable warnings when --enable-non-contiguous-regions may cause unexpected behaviourLink big-endian objectsLink little-endian objectsauxiliarySHLIBAuxiliary filter for shared object symbol tablefilterFilter for shared object symbol tableIgnoredgpsizeSIZESmall data size (if no size, same as --shared)sonameFILENAMESet internal name of shared librarydynamic-linkerPROGRAMSet PROGRAM as the dynamic linker to useno-dynamic-linkerProduce an executable with no program interpreter headerLIBNAMESearch for library LIBNAMElibrary-pathDIRECTORYAdd DIRECTORY to library search pathsysroot=Override the default sysroot locationEMULATIONSet emulationprint-mapPrint map file on standard outputnmagicDo not page align dataomagicDo not page align data, do not make text readonlyno-omagicPage align data, make text readonlyoutputSet output file nameOptimize output fileout-implibGenerate import libraryPLUGINLoad named pluginplugin-optARGSend arg to last-loaded pluginfltoIgnored for GCC LTO option compatibilityflto-partition=fuse-ld=Ignored for GCC linker option compatibilitymap-whole-filesIgnored for gold option compatibilityno-map-whole-filesQyIgnored for SVR4 compatibilityemit-relocsGenerate relocations in final outputrelocatableGenerate relocatable outputjust-symbolsJust link symbols (if directory, same as --rpath)strip-allStrip all symbolsstrip-debugStrip debugging symbolsstrip-discardedStrip symbols in discarded sectionsno-strip-discardedDo not strip symbols in discarded sectionstraceTrace file opensRead linker scriptdefault-scriptRead default linker scriptdTundefinedSYMBOLStart with undefined reference to SYMBOLrequire-definedRequire SYMBOL be defined in the final outputunique[=SECTION]Don't merge input [SECTION | orphan] sectionsUrBuild global constructor/destructor tablesPrint version informationPrint version and emulation informationdiscard-allDiscard all local symbolsdiscard-localsDiscard temporary local symbols (default)discard-noneDon't discard any local symbolstrace-symbolTrace mentions of SYMBOLPATHDefault search path for Solaris compatibilitystart-groupStart a groupend-groupEnd a groupaccept-unknown-input-archAccept input files whose architecture cannot be determinedno-accept-unknown-input-archReject input files whose architecture is unknownadd-neededno-add-neededas-neededOnly set DT_NEEDED for following dynamic libs if usedno-as-neededAlways set DT_NEEDED for dynamic libraries mentioned on the command lineassertIgnored for SunOS compatibilityBdynamicLink against shared librariescall_sharedBstaticDo not link against shared librariesdnnon_sharedstaticBno-symbolicDon't bind global references locallyBsymbolicBind global references locallyBsymbolic-functionsBind global function references locallycheck-sectionsCheck section addresses for overlaps (default)no-check-sectionsDo not check section addresses for overlapscopy-dt-needed-entriesCopy DT_NEEDED links mentioned inside DSOs that followno-copy-dt-needed-entriesDo not copy DT_NEEDED links mentioned inside DSOs that followcrefOutput cross reference tabledefsymSYMBOL=EXPRESSIONDefine a symboldemangle[=STYLE]Demangle symbol names [using STYLE]disable-multiple-abs-defsDo not allow multiple definitions with symbols included in filename invoked by -R or --just-symbolsembedded-relocsGenerate embedded relocsfatal-warningsTreat warnings as errorsno-fatal-warningsDo not treat warnings as errors (default)finiCall SYMBOL at unload-timeforce-exe-suffixForce generation of file with .exe suffixgc-sectionsRemove unused sections (on some targets)no-gc-sectionsDon't remove unused sections (default)print-gc-sectionsList removed unused sections on stderrno-print-gc-sectionsDo not list removed unused sectionsgc-keep-exportedKeep exported symbols when removing unused sectionshash-size=Set default hash table size close to helpPrint option helpinitCall SYMBOL at load-timeMapFILE/DIRWrite a linker map to FILE or DIR/.mapno-define-commonDo not define Common storageno-demangleDo not demangle symbol namesno-keep-memoryUse less memory and more disk I/Ono-undefinedDo not allow unresolved references in object filesallow-shlib-undefinedAllow unresolved references in shared librariesno-allow-shlib-undefinedDo not allow unresolved references in shared libsallow-multiple-definitionAllow multiple definitionserror-handling-scriptSCRIPTProvide a script to help with undefined symbol errorsno-undefined-versionDisallow undefined versiondefault-symverCreate default symbol versiondefault-imported-symverCreate default symbol version for imported symbolsno-warn-mismatchDon't warn about mismatched input filesno-warn-search-mismatchDon't warn on finding an incompatible libraryno-whole-archiveTurn off --whole-archivenoinhibit-execCreate an output file even if errors occurnoinhibit_execnostdlibOnly use library directories specified on the command lineoformatSpecify target of output fileprint-output-formatPrint default output formatprint-sysrootPrint current sysrootqmagicIgnored for Linux compatibilityreduce-memory-overheadsReduce memory overheads, possibly taking much longermax-cache-size=SIZESet the maximum cache size to SIZE bytesrelaxReduce code size by using target specific optimizationsno-relaxDo not use relaxation techniques to reduce code sizeretain-symbols-fileKeep only symbols listed in FILErpathSet runtime shared library search pathrpath-linkSet link time shared library search pathCreate a shared libraryBshareablepieCreate a position independent executablepic-executableno-pieCreate a position dependent executable (default)sort-common[=ascending|descending]Sort common symbols by alignment [in specified order]sort_commonsort-sectionname|alignmentSort sections by name or maximum alignmentspare-dynamic-tagsCOUNTHow many tags to reserve in .dynamic sectionsplit-by-file[=SIZE]Split output sections every SIZE octetssplit-by-reloc[=COUNT]Split output sections every COUNT relocsstatsPrint memory usage statisticstarget-helpDisplay target specific optionstask-linkDo task level linkingtraditional-formatUse same format as native linkersection-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=How to handle unresolved symbols. is: ignore-all, report-all, ignore-in-object-files, ignore-in-shared-libsverbose[=NUMBER]Output lots of information during linkdll-verboseversion-scriptRead version information scriptversion-exports-sectionTake export symbols list from .exports, using SYMBOL as the version.dynamic-list-dataAdd data symbols to dynamic listdynamic-list-cpp-newUse C++ operator new/delete dynamic listdynamic-list-cpp-typeinfoUse C++ typeinfo dynamic listdynamic-listRead dynamic listexport-dynamic-symbolExport the specified symbolexport-dynamic-symbol-listRead export dynamic symbol listwarn-commonWarn about duplicate common symbolswarn-constructorsWarn if global constructors/destructors are seenwarn-multiple-gpWarn if the multiple GP values are usedwarn-onceWarn only once per undefined symbolwarn-section-alignWarn if start of section changes due to alignmentwarn-textrelWarn if output has DT_TEXTRELwarn-shared-textrelwarn-alternate-emWarn if an object has alternate ELF machine codewarn-unresolved-symbolsReport unresolved symbols as warningserror-unresolved-symbolsReport unresolved symbols as errorswhole-archiveInclude all objects from following archiveswrapUse wrapper functions for SYMBOLignore-unresolved-symbolUnresolved SYMBOL will not cause an error or warningpush-statePush state of flags governing input file handlingpop-statePop state of flags governing input file handlingprint-memory-usageReport target memory usageorphan-handling=MODEControl how orphan sections are handled.print-map-discardedShow discarded sections in map file output (default)no-print-map-discardedDo not show discarded sections in map file outputctf-variablesEmit names and types of static variables in CTFno-ctf-variablesDo not emit names and types of static variables in CTFctf-share-types=How to share CTF types between translation units. is: share-unconflicted (default), share-duplicatedY@compare_sectionlang_do_assignments_1print_data_statementpush_stat_ptrpop_stat_ptrlang_size_sections_1load_symbols/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/ld/ldlang.c.init.finiCTF warningCTF errorCTF error: cannot get CTF errors: `%s' %F%P: bfd_link_hash_lookup failed: %E biglittle%P: invalid origin for memory region %s %P: invalid length for memory region %s .ctors.dtors%10lu GB%10lu MB%10lu KB %10lu B%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' 0x%V %W %pB %W (size before relaxing) %F%P: invalid data statement %F%P: invalid reloc statement Fail with %d SORT (CONSTRUCTORS) CONSTRUCTORS EXCLUDE_FILE(%sSORT_BY_NAME(SORT_BY_ALIGNMENT(SORT_BY_NAME(SORT_BY_ALIGNMENT(SORT_BY_ALIGNMENT(SORT_BY_NAME(SORT_NONE(SORT_BY_INIT_PRIORITY(Address of section %s set to CREATE_OBJECT_SYMBOLS FILL mask 0x%02x0x%V %W %s 0x%v0x%V %W RELOC %s %s+ *fill*0x%V %W %s0x%V %W load address 0x%V0x%V[0x%V][unresolved][!provide]*undef* TARGET(%s) OUTPUT(%sLOAD %s START GROUP END GROUP INSERT %s %s .ctf%P: warning: CTF section emission failed; output will have no CTF section: %s elf32-bigelf64-bigelf32-littleelf64-little%F%P: could not define common symbol `%pT': %E Allocating common symbols Common symbol size file /DISCARD/-l$SYSROOT%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' section alignment%P: warning: start of section %s changed by %ld load base%P: warning: dot moved backwards before `%s' %F%P: can't relax section: %E subsection alignment%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 *ABS*%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 Discarded input sections Memory Configuration NameOriginLengthAttributes%-16s %-18s %-18s %s %-16s 0x%s ! 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) .init_array.fini_array%F%P: input file '%s' is the same as output file %P: warning: could not find any targets that match endianness requirement %F%P: target %s not found %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 0x%V %pT %F%P: invalid character %c (%d) in flags %pI %P: %pB: file not recognized: %E; matching formats:%F %F%P: %pB: file not recognized: %E %F%P: %pB: member %pB in archive is not an object --whole-archive%F%P: %pB: error adding symbols: %E COMMON%P: warning: %s contains output sections; did you forget -T? %F%F%P:%pS: error: align with input and explicit align specified %F%P: multiple STARTUP files program header type%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them __load_start_%s__load_stop_%sC++Java%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 %F%P: %s: plugin reported error after all symbols read As-needed library included to satisfy reference by file (symbol) %pB (%pT) %P: warning: CTF section in %pB not loaded; its types will be discarded: %s %P: warning: CTF output not created: `%s' %X%P: %s architecture of input file `%pB' is incompatible with %s output %X%P: failed to merge target specific data of file %pB .exports%X%P: unable to read .exports section contents __ehdr_start.stabstr%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 .startof.%s.sizephdr flagsphdr load address%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: region `%s' overflowed by %lu bytes %X%P: region `%s' overflowed by %lu byte %X%P: required symbol `%s' not defined %F%P: --gc-sections requires a defined symbol root specified by -e or -u %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 __start_%s__stop%F%P: no sections assigned to phdrs %F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported %X%P: unable to find version dependency `%s' typeinfo name for*typeinfo for*operator new*operator delete*SANE_EXPR%X%P: unknown feature `%s' Memory region Used Size Region Size %%age Used %16s: %6.2f%%srec%F%P: unknown format type %s GLOBAL_%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 Set Symbol %pT %G multiple_definitionreloc_overflow%X%H: reloc refers to symbol `%pT' which is not being output %X%H: dangerous relocation: %s %P: %pB: reference to %s %P: %pB: definition of %s /usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/ld/ldmain.c%P: %C: warning: multiple definition of `%pT'%X%P: %C: multiple definition of `%pT'; %D: first defined here%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 __imp_Archive member included to satisfy reference by file (symbol) %s(%s)/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/sysroot%X%H: 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'+%vusing multiple gp valueswarning: %P: %C: %s%s %P: %s%s %P: %pB: %s%s %F%P: %pB: could not read relocs: %E %P: warning: global constructor %s used %F%P: BFD backend error: BFD_RELOC_CTOR unsupported __CTOR_LIST____DTOR_LIST__%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' aarch64linux/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/share/localeld%F%P: fatal error: libbfd ABI mismatch --sysroot=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/bin/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/binaarch64-target-linux-gnu%X%P: can't set BFD default target to `%s': %E COLLECT_NO_DEMANGLE_init_finiLDEMULATION-m%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-define-common may not be used without -shared %F%P: no input files %P: mode %s %F%P: cannot open map file %s: %E %F%P: cannot open dependency file %s: %E %s: \ %s %s: %P: link errors found, deleting executable `%s' %F%P: %pB: final close failed: %E .exe.dll%F%P: unable to open for source of copy `%s' %F%P: unable to open for destination of copy `%s' %P: error writing file `%s' %P: error closing file `%s' %s: total time in link: %ld.%06ld %F%P: bfd_hash_table_init failed: %E %F%P: bfd_hash_lookup failed: %E undefined-symbol%P: About to run error handling script '%s' with arguments: '%s' '%s' error handling script%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%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 %X%P: %s: %E %F%P: bfd_hash_lookup for insertion failed: %E %P: `-retain-symbols-file' overrides `-s' and `-S' a.outbuild_link_order/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/ld/ldwrite.c%F%P: bfd_new_link_order failed .stab$GDB_STRINGS$$GDB_SYMBOLS$%F%P: cannot create split section name for %s %F%P: clone section failed: %E %F%P: final link failed: %E %F%P: bfd_hash_allocate failed creating symbol %s %X%P: %s /usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/ld/ldexp.c%P: warning: address of `%s' isn't multiple of maximum page size %F%P:%pS %% by zero %F%P:%pS / by zero %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 MAXPAGESIZECOMMONPAGESIZE%F%P:%pS: unknown constant `%s' referenced in expression NULL TREE 0x%v%pB:%s+0x%vPROVIDE (%s = ("", ASSERT (, %s) (%s)%F%P:%pS: nonconstant expression for %s int+=-=*=/=<<=>>=&=|=||&&==!=<=>=<<>>MAXMINASSERTGNUTARGET%pS SYSLIB ignored %pS HLL ignored %P: unrecognised emulation mode: %s Supported emulations: no emulation specific options. %s: GNU ld %s (Do-Compiler V100R001C30B0025) 2.38Copyright (C) 2022 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. Supported emulations: %s ahlt19Evfinfo%P: internal error: aborting at %s:%d in %s %P: internal error: aborting at %s:%d %F%P: please report this bug /usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/ld/ldmisc.c0x%s%pB: in function `%pT': %pT(%pA+0x%v)%u%s[%s]%s generated(%s)%s%s+0x%v (type %s)%s:%uno symbol%%%c%F%P: internal error %s %d /ldscriptscannot find script file %s opened script file %s %F%P: error: linker script file '%s' appears multiple times /usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib%F%P: cannot open linker script file %s: %E attempt to open %s failed attempt to open %s succeeded %F%P: invalid BFD target `%s' %P: skipping incompatible %s when searching for %s %F%P: attempted static link of dynamic object `%s' %P: cannot find %s (%s): %E %P: cannot find %s: %E .a%P: cannot find %s inside %s missing-lib%P: note to link with %s use -l:%s or rename it to lib%s %F%P: cannot represent machine `%s' /usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_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 {uoic]YSget_symbols    %F%P: plugin_strdup failed to allocate memory: %s /usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/ld/plugin.c%F%P: unsupported input file size: %s (%ld bytes) .gnu.linkonce.t.%F%P: %s: non-ELF symbol in ELF BFD! %F%P: unknown ELF symbol visibility: %d! %P: warning: %P: error: %F%P: %s: plugin symbol table corrupt (sym type %d) %P: %pB: symbol `%s' definition: %s, visibility: %s, resolution: %s unknown LTO kind value %xunknown LTO visibility value %x (symbol from plugin)%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: duplicated plugin pass-through=onload_onload%F%P: %s: plugin error: %d %P: %s: error in plugin cleanup: %d (ignored) UNKNOWNUNDEFPREVAILING_DEFPREVAILING_DEF_IRONLYPREEMPTED_REGPREEMPTED_IRRESOLVED_IRRESOLVED_EXECRESOLVED_DYNPREVAILING_DEF_IRONLY_EXPDEFAULTPROTECTEDINTERNALDEFWEAKDEFWEAKUNDEFsha1uuid/dev/urandom/* Script for -Ur */ /* Copyright (C) 2014-2022 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("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) /* 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) } .rela.init 0 : { *(.rela.init) } .rela.text 0 : { *(.rela.text) } .rela.fini 0 : { *(.rela.fini) } .rela.rodata 0 : { *(.rela.rodata) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rela.data 0 : { *(.rela.data) } .rela.tdata 0 : { *(.rela.tdata) } .rela.tbss 0 : { *(.rela.tbss) } .rela.ctors 0 : { *(.rela.ctors) } .rela.dtors 0 : { *(.rela.dtors) } .rela.got 0 : { *(.rela.got) } .rela.bss 0 : { *(.rela.bss) } .rela.ifunc 0 : { *(.rela.ifunc) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt 0 : ALIGN(16) { *(.plt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } =0x1f2003d5 .fini 0 : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .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) } .got.plt 0 : { *(.got.plt) } .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) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } } /* Script for -z combreloc -z separate-code */ /* Copyright (C) 2014-2022 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("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .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.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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 -r */ /* Copyright (C) 2014-2022 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("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) /* 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) } .rela.init 0 : { *(.rela.init) } .rela.text 0 : { *(.rela.text) } .rela.fini 0 : { *(.rela.fini) } .rela.rodata 0 : { *(.rela.rodata) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rela.data 0 : { *(.rela.data) } .rela.tdata 0 : { *(.rela.tdata) } .rela.tbss 0 : { *(.rela.tbss) } .rela.ctors 0 : { *(.rela.ctors) } .rela.dtors 0 : { *(.rela.dtors) } .rela.got 0 : { *(.rela.got) } .rela.bss 0 : { *(.rela.bss) } .rela.ifunc 0 : { *(.rela.ifunc) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt 0 : ALIGN(16) { *(.plt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } =0x1f2003d5 .fini 0 : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .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) } .got.plt 0 : { *(.got.plt) } .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) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } } /* Script for -pie -z combreloc */ /* Copyright (C) 2014-2022 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("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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 ? 64 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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 ? 64 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .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.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .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.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .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.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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_*) } } --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 --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. --fix-cortex-a53-835769 Fix erratum 835769 --fix-cortex-a53-843419[=full|adr|adrp] Fix erratum 843419 and optionally specify which workaround to use. full (default): Use both ADRP and ADR workaround, this will increase the size of your binaries. adr: Only use the ADR workaround, this will not cause any increase in binary size but linking will fail if the referenced address is out of range of an ADR instruction. This will remove the need of using a veneer and results in both performance and size benefits. adrp: Use only the ADRP workaround, this will never rewrite your ADRP instruction into an ADR. As such the workaround will always use a veneer and this will give you both a performance and size overhead. --no-apply-dynamic-relocs Do not apply link-time values for dynamic relocations -z force-bti Turn on Branch Target Identification mechanism and generate PLTs with BTI. Generate warnings for missing BTI on inputs -z pac-plt Protect PLTs with Pointer Authentication. pz:P:aarch64%F%P: error: cannot change output format whilst linking %s binaries AArch64linker stubs%F%P: can not create BFD: %E %X%P: can not build stubs: %E /lib/ld-linux-aarch64.so.1%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 eaarch64linux.c/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le%X%P: can not make stub section: %E zlibzlib-gnuzlib-gabi%F%P: invalid --compress-debug-sections option: `%s' sysvboth%F%P: invalid hash style `%s' defsundefsmuldefsmax-page-size=%F%P: invalid maximum page size `%s' common-page-size=%F%P: invalid common page size `%s' stack-size=%F%P: invalid stack size `%s' execstacknoexecstackunique-symbolnounique-symbolglobalauditstart-stop-gcnostart-stop-gcstart-stop-visibility=start-stop-visibility=defaultstart-stop-visibility=internalstart-stop-visibility=hiddenstart-stop-visibility=protected%F%P: invalid visibility in `-z %s'; must be default, internal, hidden, or protectedinitfirstinterposeloadfltrnodefaultlibnodeletenodlopennodumplazyoriginnouniquecombrelocnocombrelocnocopyrelocrelronorelroseparate-codenoseparate-codecommonnocommontextnotexttextoffforce-btipac-plt%P: warning: -z %s ignored fulladrp%P: error: unrecognized option for --fix-cortex-a53-843419: %s auditBgroupbuild-idcompress-debug-sectionsdepauditdisable-new-dtagsenable-new-dtagseh-frame-hdrno-eh-frame-hdrexclude-libshash-styleno-pipeline-knowledgeno-enum-size-warningpic-veneerstub-group-sizeno-wchar-size-warningfix-cortex-a53-835769fix-cortex-a53-843419no-apply-dynamic-relocself64-littleaarch64ldscripts/aarch64elf.xuldscripts/aarch64elf.xrldscripts/aarch64elf.xbnldscripts/aarch64elf.xnldscripts/aarch64elf.xdweldscripts/aarch64elf.xdwldscripts/aarch64elf.xdceldscripts/aarch64elf.xdcldscripts/aarch64elf.xdeldscripts/aarch64elf.xdldscripts/aarch64elf.xsweldscripts/aarch64elf.xswldscripts/aarch64elf.xsceldscripts/aarch64elf.xscldscripts/aarch64elf.xseldscripts/aarch64elf.xsldscripts/aarch64elf.xweldscripts/aarch64elf.xwldscripts/aarch64elf.xceldscripts/aarch64elf.xcldscripts/aarch64elf.xeldscripts/aarch64elf.xeaarch64elf.caarch64elfldscripts/aarch64elf32.xuldscripts/aarch64elf32.xrldscripts/aarch64elf32.xbnldscripts/aarch64elf32.xnldscripts/aarch64elf32.xdweldscripts/aarch64elf32.xdwldscripts/aarch64elf32.xdceldscripts/aarch64elf32.xdcldscripts/aarch64elf32.xdeldscripts/aarch64elf32.xdldscripts/aarch64elf32.xsweldscripts/aarch64elf32.xswldscripts/aarch64elf32.xsceldscripts/aarch64elf32.xscldscripts/aarch64elf32.xseldscripts/aarch64elf32.xsldscripts/aarch64elf32.xweldscripts/aarch64elf32.xwldscripts/aarch64elf32.xceldscripts/aarch64elf32.xcldscripts/aarch64elf32.xeldscripts/aarch64elf32.xeaarch64elf32.caarch64:ilp32aarch64elf32elf32-littleaarch64ldscripts/aarch64elf32b.xuldscripts/aarch64elf32b.xrldscripts/aarch64elf32b.xbnldscripts/aarch64elf32b.xnldscripts/aarch64elf32b.xdweldscripts/aarch64elf32b.xdwldscripts/aarch64elf32b.xdceldscripts/aarch64elf32b.xdcldscripts/aarch64elf32b.xdeldscripts/aarch64elf32b.xdldscripts/aarch64elf32b.xsweldscripts/aarch64elf32b.xswldscripts/aarch64elf32b.xsceldscripts/aarch64elf32b.xscldscripts/aarch64elf32b.xseldscripts/aarch64elf32b.xsldscripts/aarch64elf32b.xweldscripts/aarch64elf32b.xwldscripts/aarch64elf32b.xceldscripts/aarch64elf32b.xcldscripts/aarch64elf32b.xeldscripts/aarch64elf32b.xeaarch64elf32b.caarch64elf32belf32-bigaarch64ldscripts/aarch64elfb.xuldscripts/aarch64elfb.xrldscripts/aarch64elfb.xbnldscripts/aarch64elfb.xnldscripts/aarch64elfb.xdweldscripts/aarch64elfb.xdwldscripts/aarch64elfb.xdceldscripts/aarch64elfb.xdcldscripts/aarch64elfb.xdeldscripts/aarch64elfb.xdldscripts/aarch64elfb.xsweldscripts/aarch64elfb.xswldscripts/aarch64elfb.xsceldscripts/aarch64elfb.xscldscripts/aarch64elfb.xseldscripts/aarch64elfb.xsldscripts/aarch64elfb.xweldscripts/aarch64elfb.xwldscripts/aarch64elfb.xceldscripts/aarch64elfb.xcldscripts/aarch64elfb.xeldscripts/aarch64elfb.xeaarch64elfb.caarch64elfbelf64-bigaarch64LDB<"@:|tl^VNHldscripts/armelf.xuldscripts/armelf.xrldscripts/armelf.xbnldscripts/armelf.xnldscripts/armelf.xdweldscripts/armelf.xdwldscripts/armelf.xdceldscripts/armelf.xdcldscripts/armelf.xdeldscripts/armelf.xdldscripts/armelf.xsweldscripts/armelf.xswldscripts/armelf.xsceldscripts/armelf.xscldscripts/armelf.xseldscripts/armelf.xsldscripts/armelf.xweldscripts/armelf.xwldscripts/armelf.xceldscripts/armelf.xcldscripts/armelf.xeldscripts/armelf.x --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 --balong-aslr Enable creating balong-aslr relocation segments --vfp11-denorm-fix Specify how to fix VFP11 denorm erratum --fix-stm32l4xx-629360 Specify how to fix STM32L4XX 629360 erratum --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 --[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 armARM%F%P: %s: can't open: %E %F%P: %s: not a relocatable file: %E %P: warning: '--thumb-entry %s' is overriding '-e %s' %P: warning: cannot find thumb start symbol %s %P: errors encountered processing file %s earmelf.cscalarvector%P: unrecognized VFP11 fix type '%s' %P: unrecognized STM32L4XX fix type '%s' thumb-entrybe8target1-reltarget1-abstarget2fix-v4bxfix-v4bx-interworkinguse-blxvfp11-denorm-fixfix-stm32l4xx-629360fix-cortex-a8no-fix-cortex-a8no-merge-exidx-entriesfix-arm1176no-fix-arm1176long-pltbalong-aslrcmse-implibin-implibarmelfelf32-littlearmLDB<"@:|tl^VNHldscripts/armelfb.xuldscripts/armelfb.xrldscripts/armelfb.xbnldscripts/armelfb.xnldscripts/armelfb.xdweldscripts/armelfb.xdwldscripts/armelfb.xdceldscripts/armelfb.xdcldscripts/armelfb.xdeldscripts/armelfb.xdldscripts/armelfb.xsweldscripts/armelfb.xswldscripts/armelfb.xsceldscripts/armelfb.xscldscripts/armelfb.xseldscripts/armelfb.xsldscripts/armelfb.xweldscripts/armelfb.xwldscripts/armelfb.xceldscripts/armelfb.xcldscripts/armelfb.xeldscripts/armelfb.xearmelfb.carmelfbelf32-bigarm/* Script for -Ur */ /* Copyright (C) 2014-2022 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("elf64-bigaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) /* 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) } .rela.init 0 : { *(.rela.init) } .rela.text 0 : { *(.rela.text) } .rela.fini 0 : { *(.rela.fini) } .rela.rodata 0 : { *(.rela.rodata) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rela.data 0 : { *(.rela.data) } .rela.tdata 0 : { *(.rela.tdata) } .rela.tbss 0 : { *(.rela.tbss) } .rela.ctors 0 : { *(.rela.ctors) } .rela.dtors 0 : { *(.rela.dtors) } .rela.got 0 : { *(.rela.got) } .rela.bss 0 : { *(.rela.bss) } .rela.ifunc 0 : { *(.rela.ifunc) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt 0 : ALIGN(16) { *(.plt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } =0x1f2003d5 .fini 0 : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .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) } .got.plt 0 : { *(.got.plt) } .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) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } } /* Script for -z combreloc -z separate-code */ /* Copyright (C) 2014-2022 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("elf64-bigaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .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.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-bigaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-bigaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-bigaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-bigaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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 -r */ /* Copyright (C) 2014-2022 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("elf64-bigaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) /* 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) } .rela.init 0 : { *(.rela.init) } .rela.text 0 : { *(.rela.text) } .rela.fini 0 : { *(.rela.fini) } .rela.rodata 0 : { *(.rela.rodata) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rela.data 0 : { *(.rela.data) } .rela.tdata 0 : { *(.rela.tdata) } .rela.tbss 0 : { *(.rela.tbss) } .rela.ctors 0 : { *(.rela.ctors) } .rela.dtors 0 : { *(.rela.dtors) } .rela.got 0 : { *(.rela.got) } .rela.bss 0 : { *(.rela.bss) } .rela.ifunc 0 : { *(.rela.ifunc) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt 0 : ALIGN(16) { *(.plt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } =0x1f2003d5 .fini 0 : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .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) } .got.plt 0 : { *(.got.plt) } .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) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } } /* Script for -pie -z combreloc */ /* Copyright (C) 2014-2022 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("elf64-bigaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-bigaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-bigaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-bigaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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 ? 64 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-bigaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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 ? 64 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-bigaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-bigaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-bigaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-bigaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } PROVIDE (_bss_end__ = .); PROVIDE (__bss_end__ = .); . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-bigaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .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.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-bigaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-bigaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .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.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-bigaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .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.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-bigaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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-2022 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("elf64-bigaarch64", "elf64-bigaarch64", "elf64-littleaarch64") OUTPUT_ARCH(aarch64) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (24, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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 ? 64 / 8 : 1); } _bss_end__ = .; __bss_end__ = .; . = ALIGN(64 / 8); . = SEGMENT_START("ldata-segment", .); . = ALIGN(64 / 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) } .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_*) } } /lib/ld-linux-aarch64_be.so.1eaarch64linuxb.caarch64linuxb/* Script for -Ur */ /* Copyright (C) 2014-2022 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-littleaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) /* 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) } .rela.init 0 : { *(.rela.init) } .rela.text 0 : { *(.rela.text) } .rela.fini 0 : { *(.rela.fini) } .rela.rodata 0 : { *(.rela.rodata) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rela.data 0 : { *(.rela.data) } .rela.tdata 0 : { *(.rela.tdata) } .rela.tbss 0 : { *(.rela.tbss) } .rela.ctors 0 : { *(.rela.ctors) } .rela.dtors 0 : { *(.rela.dtors) } .rela.got 0 : { *(.rela.got) } .rela.bss 0 : { *(.rela.bss) } .rela.ifunc 0 : { *(.rela.ifunc) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt 0 : ALIGN(16) { *(.plt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } =0x1f2003d5 .fini 0 : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .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) } .got.plt 0 : { *(.got.plt) } .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) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } } /* Script for -z combreloc -z separate-code */ /* Copyright (C) 2014-2022 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-littleaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .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.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-littleaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-littleaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-littleaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) } .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-2022 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-littleaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) } .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 -r */ /* Copyright (C) 2014-2022 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-littleaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) /* 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) } .rela.init 0 : { *(.rela.init) } .rela.text 0 : { *(.rela.text) } .rela.fini 0 : { *(.rela.fini) } .rela.rodata 0 : { *(.rela.rodata) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rela.data 0 : { *(.rela.data) } .rela.tdata 0 : { *(.rela.tdata) } .rela.tbss 0 : { *(.rela.tbss) } .rela.ctors 0 : { *(.rela.ctors) } .rela.dtors 0 : { *(.rela.dtors) } .rela.got 0 : { *(.rela.got) } .rela.bss 0 : { *(.rela.bss) } .rela.ifunc 0 : { *(.rela.ifunc) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt 0 : ALIGN(16) { *(.plt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } =0x1f2003d5 .fini 0 : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .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) } .got.plt 0 : { *(.got.plt) } .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) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } } /* Script for -pie -z combreloc */ /* Copyright (C) 2014-2022 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-littleaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-littleaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-littleaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-littleaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) } .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-2022 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-littleaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) } .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-2022 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-littleaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-littleaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-littleaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-littleaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-littleaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .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.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) } .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-2022 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-littleaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-littleaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .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.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) } .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-2022 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-littleaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .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.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-littleaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-littleaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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_*) } } /lib/ld-linux-aarch64_ilp32.so.1eaarch64linux32.caarch64linux32/* Script for -Ur */ /* Copyright (C) 2014-2022 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-bigaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) /* 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) } .rela.init 0 : { *(.rela.init) } .rela.text 0 : { *(.rela.text) } .rela.fini 0 : { *(.rela.fini) } .rela.rodata 0 : { *(.rela.rodata) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rela.data 0 : { *(.rela.data) } .rela.tdata 0 : { *(.rela.tdata) } .rela.tbss 0 : { *(.rela.tbss) } .rela.ctors 0 : { *(.rela.ctors) } .rela.dtors 0 : { *(.rela.dtors) } .rela.got 0 : { *(.rela.got) } .rela.bss 0 : { *(.rela.bss) } .rela.ifunc 0 : { *(.rela.ifunc) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt 0 : ALIGN(16) { *(.plt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } =0x1f2003d5 .fini 0 : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .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) } .got.plt 0 : { *(.got.plt) } .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) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } } /* Script for -z combreloc -z separate-code */ /* Copyright (C) 2014-2022 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-bigaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .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.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-bigaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-bigaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-bigaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) } .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-2022 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-bigaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) } .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 -r */ /* Copyright (C) 2014-2022 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-bigaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) /* 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) } .rela.init 0 : { *(.rela.init) } .rela.text 0 : { *(.rela.text) } .rela.fini 0 : { *(.rela.fini) } .rela.rodata 0 : { *(.rela.rodata) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rela.data 0 : { *(.rela.data) } .rela.tdata 0 : { *(.rela.tdata) } .rela.tbss 0 : { *(.rela.tbss) } .rela.ctors 0 : { *(.rela.ctors) } .rela.dtors 0 : { *(.rela.dtors) } .rela.got 0 : { *(.rela.got) } .rela.bss 0 : { *(.rela.bss) } .rela.ifunc 0 : { *(.rela.ifunc) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt 0 : ALIGN(16) { *(.plt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf.em. */ *(.gnu.warning) } =0x1f2003d5 .fini 0 : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .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) } .got.plt 0 : { *(.got.plt) } .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) } .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } } /* Script for -pie -z combreloc */ /* Copyright (C) 2014-2022 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-bigaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-bigaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-bigaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-bigaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) } .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-2022 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-bigaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) } .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-2022 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-bigaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-bigaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-bigaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-bigaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-bigaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .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.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) } .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-2022 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-bigaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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) } .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.ifunc) } .rela.plt : { *(.rela.plt) *(.rela.iplt) } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-bigaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .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.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) } .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-2022 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-bigaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .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.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-bigaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } . = ALIGN(CONSTANT (MAXPAGESIZE)); .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 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) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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-2022 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-bigaarch64", "elf32-bigaarch64", "elf32-littleaarch64") OUTPUT_ARCH(aarch64:ilp32) ENTRY(_start) SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/libilp32"); SEARCH_DIR("=/usr/local/libilp32"); SEARCH_DIR("=/libilp32"); SEARCH_DIR("=/usr/libilp32"); SEARCH_DIR("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + 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) } .rela.init : { *(.rela.init) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rela.fini : { *(.rela.fini) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rela.ctors : { *(.rela.ctors) } .rela.dtors : { *(.rela.dtors) } .rela.got : { *(.rela.got) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.ifunc : { *(.rela.ifunc) } .rela.plt : { *(.rela.plt) PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .init : { KEEP (*(SORT_NONE(.init))) } =0x1f2003d5 .plt : ALIGN(16) { *(.plt) *(.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) } =0x1f2003d5 .fini : { KEEP (*(SORT_NONE(.fini))) } =0x1f2003d5 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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) *(.igot) } . = DATA_SEGMENT_RELRO_END (12, .); .got.plt : { *(.got.plt) *(.igot.plt) } .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) } .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_*) } } /lib/ld-linux-aarch64_be_ilp32.so.1eaarch64linux32b.caarch64linux32bLDB<"@:|tl^VNH/* Script for -Ur */ /* Copyright (C) 2014-2022 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 -z combreloc -z separate-code */ /* Copyright (C) 2014-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + 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 -N */ /* Copyright (C) 2014-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + 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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + 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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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 -r */ /* Copyright (C) 2014-2022 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 -pie -z combreloc */ /* Copyright (C) 2014-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + 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 -pie -z combreloc -z separate-code */ /* Copyright (C) 2014-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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 -z combreloc -z relro -z now */ /* Copyright (C) 2014-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + 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 */ /* Copyright (C) 2014-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + 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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + 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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + 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_eabigot-relLDB<"@:|tl^VNH/* Script for -Ur */ /* Copyright (C) 2014-2022 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 -z combreloc -z separate-code */ /* Copyright (C) 2014-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + 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 -N */ /* Copyright (C) 2014-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + 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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + 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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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 -r */ /* Copyright (C) 2014-2022 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 -pie -z combreloc */ /* Copyright (C) 2014-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + 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 -pie -z combreloc -z separate-code */ /* Copyright (C) 2014-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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 -z combreloc -z relro -z now */ /* Copyright (C) 2014-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + 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 */ /* Copyright (C) 2014-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + 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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + 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-2022 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("=/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/aarch64-target-linux-gnu/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", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + 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_*) } } earmelf_linux_eabi.carmelf_linux_eabildelf_search_needed%P: %pB: bfd_stat failed: %E .so.%P: warning: %s, needed by %pB, may conflict with %s %P: warning: .note.gnu.build-id section discarded, --build-id ignored GNU%F%P: failed to record assignment to %s: %E include%F%P: %pB: bfd_elf_get_bfd_needed_list failed: %E libc.so%F%P: %pB: bfd_stat failed: %E found %s at %s lib64RIGINRIGIN}%s/%s/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/ld/ldelf.c%.*s%s/%s%.*s%sunrecognised or unsupported token '%s' in search path %P: warning: -z dynamic-undefined-weak ignored %F%P: common page size (0x%v) > maximum page size (0x%v) %F%P: %pB: --just-symbols may not be used on DSO %P: warning: unrecognized --build-id style ignored .note.gnu.build-id%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 .note.GNU-stack.eh_frame_entry.eh_frame%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB .eh_frame_hdr%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored %s needed by %pB LD_LIBRARY_PATHLD_RUN_PATH/var/run/ld-elf.so.hints/etc/ld.so.conf%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link) %F%P: failed to add DT_NEEDED dynamic tag %F%P: failed to parse EH frame entries %F%P: failed to set dynamic section sizes: %E .gnu.warning%F%P: %pB: can't read contents of section .gnu.warning: %E %s/lib%s%s.so.rela.dyn.mbind.bss.mbind.data.mbind.rodata.mbind.text.rel.dyn.rel.gnu.warning..note.plt.rodata.tdata.interp.sdata.comment%F%P: %pA has both ordered and unordered sections %F%P: map sections to segments failed: %E %F%P: failed to strip zero-sized dynamic sections %F%P: looping in map_segments %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 bfd_dont_truncate_arname/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/archive.c../%-10lu` %F%P: %pB(%s): error opening thin archive member: %E bfd! ! __.SYMDEF __.SYMDEF/ / /SYM64/ #1/20 __.SYMDEF SORTED__.SYMDEFARFILENAMES/ // %-ld:%-ldARFILENAMES///#1/%lu%pB: plugin needed to handle lto object__gnu_lto_slim%-12ld%-8lowarning: writing archive was slow: rewriting timestampReading archive file mod timestampWriting updated armap timestamp%-7lobinaryUNKNOWN!unknownbfd_set_errorbfd_set_input_error_bfd_doprnt_scanerror_handler_internal_bfd_doprnt_bfd_set_gp_valuebfd_update_compression_headererror reading %s: %sBFD %s assertion fail %s:%dBFD %s internal error, aborting at %s:%d in %s BFD %s internal error, aborting at %s:%d Please report this bug. /usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/bfd.c-+ #0'IhlL%s: BFD: %.*s%s[%s]coff-go32pe-i386pei-i386pe-x86-64pei-x86-64pei-aarch64-littlepe-arm-wince-littlepei-arm-wince-littleaixcoff-rs6000aix5coff64-rs6000mach-oZLIB.note.gnu.propertyno errorsystem call errorinvalid bfd targetfile in wrong formatarchive object file in wrong formatinvalid operationno symbolsarchive has no index; run ranlib to add oneno more archived filesmalformed archiveDSO missing from command linefile format not recognizedfile format is ambiguoussection has no contentsnonrepresentable section on outputsymbol needs debug section which does not existbad valuefile truncatedfile too bigsorry, cannot handle this file#/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/bfdio.cbfd_cache_lookup_workercache_bmmap/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/cache.cr+w+reopening %pB: %s elf_merge_gnu_propertieself_write_gnu_properties_bfd_elf_get_propertyelf_merge_gnu_property_list/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_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%xerror: %pB: warning: %pB: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x%F%P: failed to create GNU property section Merging program properties Removed 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) /usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/format.cobjectcore=???bfd_hash_renamebfd_hash_replace/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/hash.cbfd_put_bitsbfd_get_bits_bfd_generic_get_section_contents_in_window/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/libbfd.c%pB: unable to get decompressed section %pADeprecated %s called at %s line %d in %s Deprecated %s called 60>> t~cZ .$set_symbol_from_hash_bfd_generic_link_write_global_symbol           _bfd_generic_link_add_one_symbol_bfd_generic_link_output_symbols_bfd_generic_reloc_link_order_bfd_default_link_order_bfd_handle_already_linked/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/linker.c__wrap___real_attempt 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 endian0w,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/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/opncls.c.gnu_debuglink%s%s%s.debug/%s/usr/lib/debug/usr/lib/debug/usr.build-id/.debug.gnu_debugaltlinkread_relocwrite_relocbfd_check_overflowbfd_get_reloc_size_bfd_relocate_contents/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/reloc.ccoff-Intel-littlecoff-Intel-bigcoff-z8k.debug_ranges%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 ?unusedVRT32@@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_OP_HIX22BFD_RELOC_SPARC_GOTDATA_OP_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_DTPREL_HI16BFD_RELOC_MIPS16_TLS_DTPREL_LO16BFD_RELOC_MIPS16_TLS_GOTTPRELBFD_RELOC_MIPS16_TLS_TPREL_HI16BFD_RELOC_MIPS16_TLS_TPREL_LO16BFD_RELOC_MIPS_LITERALBFD_RELOC_MICROMIPS_LITERALBFD_RELOC_MICROMIPS_7_PCREL_S1BFD_RELOC_MICROMIPS_10_PCREL_S1BFD_RELOC_MICROMIPS_16_PCREL_S1BFD_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_DTPREL_HI16BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16BFD_RELOC_MIPS_TLS_DTPREL_LO16BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16BFD_RELOC_MIPS_TLS_GOTTPRELBFD_RELOC_MICROMIPS_TLS_GOTTPRELBFD_RELOC_MIPS_TLS_TPREL32BFD_RELOC_MIPS_TLS_TPREL64BFD_RELOC_MIPS_TLS_TPREL_HI16BFD_RELOC_MICROMIPS_TLS_TPREL_HI16BFD_RELOC_MIPS_TLS_TPREL_LO16BFD_RELOC_MICROMIPS_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_FUNCDESC_GOTOFF12BFD_RELOC_FRV_FUNCDESC_GOTOFFHIBFD_RELOC_FRV_FUNCDESC_GOTOFFLOBFD_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_GOTPC32_TLSDESCBFD_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_X86_64_REX_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_TOC16_LOBFD_RELOC_PPC_TOC16_HIBFD_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_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_PPC_16DX_HABFD_RELOC_PPC_REL16DX_HABFD_RELOC_PPC_NEGBFD_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_PLTGOT16_LO_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_REL16_HIGHESTABFD_RELOC_PPC64_ADDR64_LOCALBFD_RELOC_PPC64_ENTRYBFD_RELOC_PPC64_REL24_NOTOCBFD_RELOC_PPC64_REL24_P9NOTOCBFD_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_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_D28BFD_RELOC_PPC64_PCREL28BFD_RELOC_PPC_TLSBFD_RELOC_PPC_TLSGDBFD_RELOC_PPC_TLSLDBFD_RELOC_PPC_TLSLEBFD_RELOC_PPC_TLSIEBFD_RELOC_PPC_TLSMBFD_RELOC_PPC_TLSMLBFD_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_TLSGDBFD_RELOC_PPC64_TLSLDBFD_RELOC_PPC64_TLSLEBFD_RELOC_PPC64_TLSIEBFD_RELOC_PPC64_TLSMBFD_RELOC_PPC64_TLSMLBFD_RELOC_PPC64_TPREL16_DSBFD_RELOC_PPC64_TPREL16_LO_DSBFD_RELOC_PPC64_TPREL16_HIGHBFD_RELOC_PPC64_TPREL16_HIGHABFD_RELOC_PPC64_TPREL16_HIGHERBFD_RELOC_PPC64_TPREL16_HIGHERABFD_RELOC_PPC64_TPREL16_HIGHESTBFD_RELOC_PPC64_TPREL16_HIGHESTABFD_RELOC_PPC64_DTPREL16_DSBFD_RELOC_PPC64_DTPREL16_LO_DSBFD_RELOC_PPC64_DTPREL16_HIGHBFD_RELOC_PPC64_DTPREL16_HIGHABFD_RELOC_PPC64_DTPREL16_HIGHERBFD_RELOC_PPC64_DTPREL16_HIGHERABFD_RELOC_PPC64_DTPREL16_HIGHESTBFD_RELOC_PPC64_DTPREL16_HIGHESTABFD_RELOC_PPC64_TPREL34BFD_RELOC_PPC64_DTPREL34BFD_RELOC_PPC64_GOT_TLSGD_PCREL34BFD_RELOC_PPC64_GOT_TLSLD_PCREL34BFD_RELOC_PPC64_GOT_TPREL_PCREL34BFD_RELOC_PPC64_GOT_DTPREL_PCREL34BFD_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_THUMB_PCREL_BRANCH12BFD_RELOC_THUMB_PCREL_BRANCH20BFD_RELOC_THUMB_PCREL_BRANCH23BFD_RELOC_THUMB_PCREL_BRANCH25BFD_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_THUMB_MOVW_PCRELBFD_RELOC_ARM_THUMB_MOVT_PCRELBFD_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_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_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_T32_CP_OFF_IMM_S2BFD_RELOC_ARM_T32_VLDR_VSTR_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_MEDLOW16_PCRELBFD_RELOC_SH_IMM_MEDHI16BFD_RELOC_SH_IMM_MEDHI16_PCRELBFD_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_12_PCREL_JUMP_SBFD_RELOC_BFIN_24_PCREL_CALL_XBFD_RELOC_BFIN_24_PCREL_JUMP_LBFD_RELOC_BFIN_GOT17M4BFD_RELOC_BFIN_GOTHIBFD_RELOC_BFIN_GOTLOBFD_RELOC_BFIN_FUNCDESCBFD_RELOC_BFIN_FUNCDESC_GOT17M4BFD_RELOC_BFIN_FUNCDESC_GOTHIBFD_RELOC_BFIN_FUNCDESC_GOTLOBFD_RELOC_BFIN_FUNCDESC_VALUEBFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4BFD_RELOC_BFIN_FUNCDESC_GOTOFFHIBFD_RELOC_BFIN_FUNCDESC_GOTOFFLOBFD_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_PLT_GOTREL_HI20BFD_RELOC_NDS32_PLT_GOTREL_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_PLT_GOTREL_LO20BFD_RELOC_NDS32_PLT_GOTREL_LO15BFD_RELOC_NDS32_PLT_GOTREL_LO19BFD_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_SDA_FP7U2_RELABFD_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_RELAX_REGION_BEGINBFD_RELOC_NDS32_RELAX_REGION_ENDBFD_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_LO12S2BFD_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_SDA17S2BFD_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_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_6_8_OFFSETBFD_RELOC_V850_TDA_7_8_OFFSETBFD_RELOC_V850_TDA_7_7_OFFSETBFD_RELOC_V850_TDA_16_16_OFFSETBFD_RELOC_V850_TDA_4_5_OFFSETBFD_RELOC_V850_TDA_4_4_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_LONGCALLBFD_RELOC_V850_LONGJUMPBFD_RELOC_V850_ALIGNBFD_RELOC_V850_LO16_SPLIT_OFFSETBFD_RELOC_V850_16_PCRELBFD_RELOC_V850_17_PCRELBFD_RELOC_V850_23BFD_RELOC_V850_32_PCRELBFD_RELOC_V850_32_ABSBFD_RELOC_V850_16_SPLIT_OFFSETBFD_RELOC_V850_16_S1BFD_RELOC_V850_LO16_S1BFD_RELOC_V850_CALLT_15_16_OFFSETBFD_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_IMM11BY2BFD_RELOC_MCORE_PCREL_IMM4BY2BFD_RELOC_MCORE_PCREL_32BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2BFD_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_IENONPIC_HI16BFD_RELOC_METAG_TLS_IENONPIC_LO16BFD_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_PUSHJ_STUBBABLEBFD_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_BASE_PLUS_OFFSETBFD_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_LTOFF_FPTR32MSBBFD_RELOC_IA64_LTOFF_FPTR32LSBBFD_RELOC_IA64_LTOFF_FPTR64MSBBFD_RELOC_IA64_LTOFF_FPTR64LSBBFD_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_GOT_AHI16BFD_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_PCREL_BYTEBFD_RELOC_MSP430_16_BYTEBFD_RELOC_MSP430_2X_PCRELBFD_RELOC_MSP430_RL_PCRELBFD_RELOC_MSP430_ABS8BFD_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_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_I10_1_PCRELBFD_RELOC_NIOS2_R2_T1I7_1_PCRELBFD_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_LOCAL_SECTDIFFBFD_RELOC_MACH_O_PAIRBFD_RELOC_MACH_O_SUBTRACTOR32BFD_RELOC_MACH_O_SUBTRACTOR64BFD_RELOC_MACH_O_X86_64_BRANCH32BFD_RELOC_MACH_O_X86_64_BRANCH8BFD_RELOC_MACH_O_X86_64_GOTBFD_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_X86_64_TLVBFD_RELOC_MACH_O_ARM64_ADDENDBFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOTBFD_RELOC_MICROBLAZE_32_LOBFD_RELOC_MICROBLAZE_32_LO_PCRELBFD_RELOC_MICROBLAZE_32_ROSDABFD_RELOC_MICROBLAZE_32_RWSDABFD_RELOC_MICROBLAZE_32_SYM_OP_SYMBFD_RELOC_MICROBLAZE_64_NONEBFD_RELOC_MICROBLAZE_64_GOTPCBFD_RELOC_MICROBLAZE_64_GOTBFD_RELOC_MICROBLAZE_64_PLTBFD_RELOC_MICROBLAZE_64_GOTOFFBFD_RELOC_MICROBLAZE_32_GOTOFFBFD_RELOC_MICROBLAZE_COPYBFD_RELOC_MICROBLAZE_64_TLSBFD_RELOC_MICROBLAZE_64_TLSGDBFD_RELOC_MICROBLAZE_64_TLSLDBFD_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_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_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_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_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_LDRBFD_RELOC_AARCH64_TLSDESC_ADDBFD_RELOC_AARCH64_TLSDESC_CALLBFD_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_GAS_INTERNAL_FIXUPBFD_RELOC_AARCH64_LDST_LO12BFD_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_COPYBFD_RELOC_TILEPRO_GLOB_DATBFD_RELOC_TILEPRO_JMP_SLOTBFD_RELOC_TILEPRO_RELATIVEBFD_RELOC_TILEPRO_BROFF_X1BFD_RELOC_TILEPRO_JOFFLONG_X1BFD_RELOC_TILEPRO_JOFFLONG_X1_PLTBFD_RELOC_TILEPRO_IMM8_X0BFD_RELOC_TILEPRO_IMM8_Y0BFD_RELOC_TILEPRO_IMM8_X1BFD_RELOC_TILEPRO_IMM8_Y1BFD_RELOC_TILEPRO_DEST_IMM8_X1BFD_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_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_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_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_TLS_IE_LOADBFD_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_TLS_TPOFF32BFD_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_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_JUMPOFF_X1_PLTBFD_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_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_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_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_TLS_IE_LOADBFD_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_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_GOT_CODEBFD_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_PCREL_IMM8BY4BFD_RELOC_CKCORE_PCREL_IMM11BY2BFD_RELOC_CKCORE_PCREL_IMM4BY2BFD_RELOC_CKCORE_PCREL32BFD_RELOC_CKCORE_PCREL_JSR_IMM11BY2BFD_RELOC_CKCORE_GNU_VTINHERITBFD_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_PCREL_IMM26BY2BFD_RELOC_CKCORE_PCREL_IMM16BY2BFD_RELOC_CKCORE_PCREL_IMM16BY4BFD_RELOC_CKCORE_PCREL_IMM10BY2BFD_RELOC_CKCORE_PCREL_IMM10BY4BFD_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_PCREL_JSR_IMM26BY2BFD_RELOC_CKCORE_TOFFSET_LO16BFD_RELOC_CKCORE_DOFFSET_LO16BFD_RELOC_CKCORE_PCREL_IMM18BY2BFD_RELOC_CKCORE_DOFFSET_IMM18BFD_RELOC_CKCORE_DOFFSET_IMM18BY2BFD_RELOC_CKCORE_DOFFSET_IMM18BY4BFD_RELOC_CKCORE_GOTOFF_IMM18BFD_RELOC_CKCORE_GOT_IMM18BY4BFD_RELOC_CKCORE_PLT_IMM18BY4BFD_RELOC_CKCORE_PCREL_IMM7BY4BFD_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_PCREL_FLRW_IMM8BY4BFD_RELOC_CKCORE_NOJSRIBFD_RELOC_CKCORE_CALLGRAPHBFD_RELOC_CKCORE_IRELATIVEBFD_RELOC_CKCORE_PCREL_BLOOP_IMM4BY4BFD_RELOC_CKCORE_PCREL_BLOOP_IMM12BY4BFD_RELOC_S12Z_OPRBFD_RELOC_LARCH_TLS_DTPMOD32BFD_RELOC_LARCH_TLS_DTPREL32BFD_RELOC_LARCH_TLS_DTPMOD64BFD_RELOC_LARCH_TLS_DTPREL64BFD_RELOC_LARCH_TLS_TPREL32BFD_RELOC_LARCH_TLS_TPREL64BFD_RELOC_LARCH_MARK_LABFD_RELOC_LARCH_MARK_PCRELBFD_RELOC_LARCH_SOP_PUSH_PCRELBFD_RELOC_LARCH_SOP_PUSH_ABSOLUTEBFD_RELOC_LARCH_SOP_PUSH_DUPBFD_RELOC_LARCH_SOP_PUSH_GPRELBFD_RELOC_LARCH_SOP_PUSH_TLS_TPRELBFD_RELOC_LARCH_SOP_PUSH_TLS_GOTBFD_RELOC_LARCH_SOP_PUSH_TLS_GDBFD_RELOC_LARCH_SOP_PUSH_PLT_PCRELBFD_RELOC_LARCH_SOP_ASSERTBFD_RELOC_LARCH_SOP_NOTBFD_RELOC_LARCH_SOP_SUBBFD_RELOC_LARCH_SOP_SLBFD_RELOC_LARCH_SOP_SRBFD_RELOC_LARCH_SOP_ADDBFD_RELOC_LARCH_SOP_ANDBFD_RELOC_LARCH_SOP_IF_ELSEBFD_RELOC_LARCH_SOP_POP_32_S_10_5BFD_RELOC_LARCH_SOP_POP_32_U_10_12BFD_RELOC_LARCH_SOP_POP_32_S_10_12BFD_RELOC_LARCH_SOP_POP_32_S_10_16BFD_RELOC_LARCH_SOP_POP_32_S_10_16_S2BFD_RELOC_LARCH_SOP_POP_32_S_5_20BFD_RELOC_LARCH_SOP_POP_32_S_0_5_10_16_S2BFD_RELOC_LARCH_SOP_POP_32_S_0_10_10_16_S2BFD_RELOC_LARCH_SOP_POP_32_UBFD_RELOC_LARCH_ADD8BFD_RELOC_LARCH_ADD16BFD_RELOC_LARCH_ADD24BFD_RELOC_LARCH_ADD32BFD_RELOC_LARCH_ADD64BFD_RELOC_LARCH_SUB8BFD_RELOC_LARCH_SUB16BFD_RELOC_LARCH_SUB24BFD_RELOC_LARCH_SUB32BFD_RELOC_LARCH_SUB64@@overflow: BFD_RELOC_UNUSED@@bfd_get_unique_section_namebfd_map_over_sections/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/section.c.%d*COM**UND**IND* %c%c%c%c%c%c%c.drectve.$0123456789unsupported .stab relocation.edata.idata.pdataLHD@<840,($  Pbfd_flavour_nameaarch64-*-elfunknown file formatCOFFECOFFXCOFFELFTekhexSrecVerilogIhexSOMOS9KVersadosMSDOSOvaxEvaxmmoMACH_OPEFPEF_XLIBSYM/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/targets.caarch64-*-rtems*aarch64-*-genode*aarch64_be-*-elfaarch64-*-freebsd*aarch64-*-fuchsia*aarch64-*-haiku*aarch64-*-linux*aarch64-*-netbsd*aarch64_be-*-linux*aarch64_be-*-netbsd*arm-*-fuchsia*arm*-*-haiku*armeb-*-netbsd*arm-*-netbsd*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_binary_%s_%sendwarning: writing section `%pA' at huge (ie negative) file offset0123456789ABCDEF%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).sec%d%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/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/ihex.c%pB: internal error in ihex_read_section%pB: bad section length in ihex_read_sectionihex0123456789ABCDEF %-5s %s/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_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 filesymbolsrec0123456789ABCDEFouttekhex_write_object_contents/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/tekhex.c%0781010 tekhex0123456789ABCDEFverilog  %%%) #/##cc / / // pcI<pppppppppppppppppppppppppppppppppppp6*p": ""CCCCCCCCCtttttttttt------GX  _${ @B   _$@! @!  _$@  _bfd_aarch64_erratum_843419_branch_to_stubB@c@  _$B@c@ elf64_aarch64_finish_dynamic_sectionself64_aarch64_finish_dynamic_symbol{ @B    @ Xaarch64_build_one_stubaarch64_size_one_stubaarch64_map_one_stubelf64_aarch64_allocate_local_ifunc_dynrelocself64_aarch64_size_dynamic_sectionself64_aarch64_relocate_sectionelf64_aarch64_final_link_relocateelf64_aarch64_final_link_relocate%pB symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section.stub%pB: error: erratum 835769 stub out of range (input file too large)elfnn-aarch64.c%pB: warning: BTI turned on by -z force-bti when all inputs do not have BTI in NOTE section.%pB: error: erratum 843419 stub out of range (input file too large)%pB: error: erratum 843419 immediate 0x%s out of range for ADR (input file too large) and --fix-cortex-a53-843419=adr used. Run the linker with --fix-cortex-a53-843419=full instead.dynamicdiscarded output section: `%pA'.rela.got.rel.got.got_GLOBAL_OFFSET_TABLE_.got.pltR_AARCH64_NULLprivate flags = 0x%lx: %08x_%s+%lx%08x_%x:%x+%lx%pB: cannot create stub entry %s%pB: unsupported relocation type %#x%F%P: Could not assign '%pA' to an output section. Retry without --enable-non-contiguous-regions. unknown attribute for symbol `%s': 0x%02x_TLS_MODULE_BASE_/lib/ld.so.1.relaa local symbol%pB: bad symbol index: %d%pB: relocation %s against `%s' can not be used when making a shared object%pB: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC%pB(%pA+%#lx): %s used with TLS symbol %s%pB(%pA+%#lx): %s used with non-TLS symbol %s%pB(%pA+%#lx): unresolvable %s relocation against symbol `%s'%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s%pB: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %ld%pB: relocation %s against symbol `%s' which may bind externally can not be used when making a shared object; recompile with -fPIC%pB: conditional branch to undefined symbol `%s' not allowed%pB: local symbol descriptor table be NULL when applying relocation %s against local symbol%pB: TLS relocation %s against undefined symbol `%s'too many GOT entries for -fpic, please recompile with -fPICone possible cause of this error is that the symbol is being referenced in the indicated code as if it had a larger alignment than was declared where it was definedout of rangeunsupported relocationunknown errorunnamed__erratum_835769_veneer_%de843419@%04x_%08x_%lxcannot create stub entry %s__%s_veneer$x$delf64-littleaarch64-cloudabielf64-bigaarch64-cloudabi.ARM.attributesR_AARCH64_NONER_AARCH64_ABS64R_AARCH64_ABS32R_AARCH64_ABS16R_AARCH64_PREL64R_AARCH64_PREL32R_AARCH64_PREL16R_AARCH64_MOVW_UABS_G0R_AARCH64_MOVW_UABS_G0_NCR_AARCH64_MOVW_UABS_G1R_AARCH64_MOVW_UABS_G1_NCR_AARCH64_MOVW_UABS_G2R_AARCH64_MOVW_UABS_G2_NCR_AARCH64_MOVW_UABS_G3R_AARCH64_MOVW_SABS_G0R_AARCH64_MOVW_SABS_G1R_AARCH64_MOVW_SABS_G2R_AARCH64_MOVW_PREL_G0R_AARCH64_MOVW_PREL_G0_NCR_AARCH64_MOVW_PREL_G1R_AARCH64_MOVW_PREL_G1_NCR_AARCH64_MOVW_PREL_G2R_AARCH64_MOVW_PREL_G2_NCR_AARCH64_MOVW_PREL_G3R_AARCH64_LD_PREL_LO19R_AARCH64_ADR_PREL_LO21R_AARCH64_ADR_PREL_PG_HI21R_AARCH64_ADR_PREL_PG_HI21_NCR_AARCH64_ADD_ABS_LO12_NCR_AARCH64_LDST8_ABS_LO12_NCR_AARCH64_TSTBR14R_AARCH64_CONDBR19R_AARCH64_JUMP26R_AARCH64_CALL26R_AARCH64_LDST16_ABS_LO12_NCR_AARCH64_LDST32_ABS_LO12_NCR_AARCH64_LDST64_ABS_LO12_NCR_AARCH64_LDST128_ABS_LO12_NCR_AARCH64_GOT_LD_PREL19R_AARCH64_ADR_GOT_PAGER_AARCH64_LD64_GOT_LO12_NCR_AARCH64_MOVW_GOTOFF_G0_NCR_AARCH64_MOVW_GOTOFF_G1R_AARCH64_LD64_GOTOFF_LO15R_AARCH64_LD64_GOTPAGE_LO15R_AARCH64_TLSGD_ADR_PAGE21R_AARCH64_TLSGD_ADR_PREL21R_AARCH64_TLSGD_ADD_LO12_NCR_AARCH64_TLSGD_MOVW_G0_NCR_AARCH64_TLSGD_MOVW_G1R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NCR_AARCH64_TLSIE_LD_GOTTPREL_PREL19R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NCR_AARCH64_TLSIE_MOVW_GOTTPREL_G1R_AARCH64_TLSLD_ADD_DTPREL_HI12R_AARCH64_TLSLD_ADD_DTPREL_LO12R_AARCH64_TLSLD_ADD_DTPREL_LO12_NCR_AARCH64_TLSLD_ADD_LO12_NCR_AARCH64_TLSLD_ADR_PAGE21R_AARCH64_TLSLD_ADR_PREL21R_AARCH64_TLSLD_LDST16_DTPREL_LO12R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NCR_AARCH64_TLSLD_LDST32_DTPREL_LO12R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NCR_AARCH64_TLSLD_LDST64_DTPREL_LO12R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NCR_AARCH64_TLSLD_LDST8_DTPREL_LO12R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NCR_AARCH64_TLSLD_MOVW_DTPREL_G0R_AARCH64_TLSLD_MOVW_DTPREL_G0_NCR_AARCH64_TLSLD_MOVW_DTPREL_G1R_AARCH64_TLSLD_MOVW_DTPREL_G1_NCR_AARCH64_TLSLD_MOVW_DTPREL_G2R_AARCH64_TLSLE_MOVW_TPREL_G2R_AARCH64_TLSLE_MOVW_TPREL_G1R_AARCH64_TLSLE_MOVW_TPREL_G1_NCR_AARCH64_TLSLE_MOVW_TPREL_G0R_AARCH64_TLSLE_MOVW_TPREL_G0_NCR_AARCH64_TLSLE_ADD_TPREL_HI12R_AARCH64_TLSLE_ADD_TPREL_LO12R_AARCH64_TLSLE_ADD_TPREL_LO12_NCR_AARCH64_TLSLE_LDST16_TPREL_LO12R_AARCH64_TLSLE_LDST16_TPREL_LO12_NCR_AARCH64_TLSLE_LDST32_TPREL_LO12R_AARCH64_TLSLE_LDST32_TPREL_LO12_NCR_AARCH64_TLSLE_LDST64_TPREL_LO12R_AARCH64_TLSLE_LDST64_TPREL_LO12_NCR_AARCH64_TLSLE_LDST8_TPREL_LO12R_AARCH64_TLSLE_LDST8_TPREL_LO12_NCR_AARCH64_TLSDESC_LD_PREL19R_AARCH64_TLSDESC_ADR_PREL21R_AARCH64_TLSDESC_ADR_PAGE21R_AARCH64_TLSDESC_LD64_LO12R_AARCH64_TLSDESC_ADD_LO12R_AARCH64_TLSDESC_OFF_G1R_AARCH64_TLSDESC_OFF_G0_NCR_AARCH64_TLSDESC_LDRR_AARCH64_TLSDESC_ADDR_AARCH64_TLSDESC_CALLR_AARCH64_COPYR_AARCH64_GLOB_DATR_AARCH64_JUMP_SLOTR_AARCH64_RELATIVER_AARCH64_TLS_DTPMOD64R_AARCH64_TLS_DTPREL64R_AARCH64_TLS_TPREL64R_AARCH64_TLSDESCR_AARCH64_IRELATIVEIIIIIIIGGGGIGIGIGMaaa]WkSooWWWWMaWWIIWWWaa]IIaWWMII]]]]aaWWWWWWWWGIGIGGGIGI]]]WWWWWWWWMaaWW]II444444444444::**44******4***4"&F4****.&&""B*****44*****%pB: warning: Weak TLS is implementation defined and may not work as expected.regCOREerror: %pB: _bfd_elf_allocate_ifunc_dyn_relocs.rela.ifunc.rel.ifunc.rela.iplt.rel.iplt.iplt.igot.plt.igot%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%pB' can not be used when making an executable; recompile with -fPIE and relink with -pie /usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/elf-ifunc.cbfd_elf64_swap_symbol_outbfd_elf64_write_relocs/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_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 has a segment extending past end of fileget_program_header_sizebfd_elf_get_elf_symsassign_file_positions_for_non_load_sections_bfd_elf_assign_file_positions_for_non_load_bfd_elf_get_lineno_bfd_elf_no_info_to_howtoDYNAMICINTERPNOTEPHDREH_FRAMESTACKRELRO%pB: GNU_MBIND section `%pA' has invalid sh_info field: %d/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_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%s/%ld.auxvstapsdt%pB: error: alignment power %d of section `%pA' is too bigwarning: section `%pA' type changed to PROGBITS.dynstr.gnu.libstr.symtab_shndx%pB: too many sections: %u%pB: sh_link of section `%pA' points to removed section `%pA' of `%pB'.dynsym%pB: sh_link of section `%pA' points to discarded section `%pA' of `%pB'.shstrtab%pB: attempt to load strings from a non-string section (number %d)%pB: invalid string offset %u >= %lu for section `%s'(null)%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]Base(*none*)elf %x %s %-11s .internal .hidden .protected 0x%02x%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'.gnu.debuglto_.debug_.gnu.linkonce.wi..zdebug.gnu.build.attributes.note.gnu.line.gdb_index.gnu.linkonce%pB: unable to initialize compress status for section %s%pB: unable to initialize decompress status for section %s.gnu.lto_.lto.%s%d%s%F%P: failed to size relative relocations %pB: TLS sections are not adjacent: TLS: %pA non-TLS: %pA*unknown*%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 %dLOPROC+%7.7xLOOS+%7.7x%8.8x%pB: warning: allocated section `%s' not in segment%pB: warning: unable to allocate any sections to PT_GNU_RELRO segment%pB: error: non-load segment %d includes file header and/or program header.symtab.strtab%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 entryUSEDVERNEEDNUMVERNEEDVERDEFNUMVERDEFVERSYMFLAGS_1RELCOUNTGNU_HASHFILTERAUXILIARY Program Header: 0x%lx%8s off 0x vaddr 0x paddr 0x align 2**%u filesz 0x memsz 0x flags %c%c%c Dynamic Section: NEEDED %-20s %#lxPLTRELSZPLTGOTHASHSTRTABSYMTABRELARELASZRELAENTSTRSZSYMENTINITFINISONAMERPATHSYMBOLICRELSZRELENTRELRRELRSZRELRENTPLTRELDEBUGJMPRELBIND_NOWINIT_ARRAYFINI_ARRAYINIT_ARRAYSZFINI_ARRAYSZRUNPATHPREINIT_ARRAYPREINIT_ARRAYSZCHECKSUMPLTPADSZMOVEENTMOVESZFEATUREPOSFLAG_1SYMINSZSYMINENTCONFIGDEPAUDITAUDITPLTPADMOVETABSYMINFORELACOUNT Version definitions: %d 0x%2.2x 0x%8.8lx %s Version References: required from %s: 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: %s unsupported%s/%d.reg2%s/%i.qnx_core_info.qnx_core_status/%ld.qnx_core_statuswin32%pB: warning: win32pstatus %s of size %lu bytes is too small.reg/%ld.module/%08lx.module/%016lx%pB: win32pstatus NOTE_INFO_MODULE of size %lu is too small to contain a name of size %uLINUX.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.reg-aarch-mte.gdb-tdesc.reg-riscv-csr.reg-loongarch-cpucfg.reg-loongarch-lbt.reg-loongarch-lsx.reg-loongarch-lasx.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.lwpinfoFreeBSDGDBnullloaddynamicinterpnoteshlibeh_frame_hdrstackproc.rel.plt.rela.plt+0x@pltGNU_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 typeNOTE_INFO_PROCESSNOTE_INFO_THREADNOTE_INFO_MODULENOTE_INFO_MODULE64NetBSD-COREOpenBSDQNXSPU/LARGE_COMMON.zdebug_line.zdebug_info.zdebug_abbrev.zdebug_aranges.tbss.rodata1.relr.dyn.persistent.bss.persistent.preinit_array.noinit.hash.gnu.linkonce.b.gnu.linkonce.n.gnu.linkonce.p.gnu.lto_.gnu.version.gnu.version_d.gnu.version_r.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_DYNSYMelf_link_adjust_relocs%Ca  @elf_link_check_versioned_symbolelf_link_output_extsymelf_link_convert_common_typeelf_link_add_object_symbolsbfd_elf_size_dynsym_hash_dynstrget_valueput_valueelf_link_input_bfdbfd_elf_final_linkelf_reloc_link_order/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/elflink.cundefined %s reference in complex symbol: %s%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)%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%P: %pB: warning: relocation against `%s' in read-only section `%pA' %pB: dynamic relocation against `%pT' in read-only section `%pA' .end%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: could not find output section %pA for input section %pA%pB: protected symbol `%s' isn't defined%pB: internal symbol `%s' isn't defined%pB: hidden symbol `%s' isn't defined%pB: no symbol version section for versioned symbol `%s'0-division by zero|&+<unknown operator '%c' in complex symbol_DYNAMIC.rela.bss.rel.bss.rela.data.rel.ro.rel.data.rel.ro_PROCEDURE_LINKAGE_TABLE_.dynbss.data.rel.ro%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).tcommon%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: %s not absolute%s: undefined version: %slibc.so.GLIBC_ABI_DT_RELRGLIBC_2.%pB: .preinit_array section is not allowed in DSO.MIPS.xhash.gcc_except_tablewarning: --enable-non-contiguous-regions discards section `%s' from '%s' error: %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 error: %pB: size of section %pA is not multiple of address sizeELFCLASS64ELFCLASS32ELFCLASSNONE.gnu.attributes%F%P: %pB: failed to finish relative relocations %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 relocationscould not find section %swarning: %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 PDE %P: warning: creating DT_TEXTREL in a PIE %F%P: corrupt input: %pB .debug_line.__patchable_function_entries%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 entrySHF_WRITEunrecognized INPUT_SECTION_FLAG %s .gnu.linkonce..gnu.linkonce.r.-fPIC-fPIE%P: warning: GNU indirect functions with DT_TEXTREL may result in a segfault at runtime; recompile with %s SHF_ALLOCSHF_EXECINSTRSHF_MERGESHF_STRINGSSHF_INFO_LINKSHF_LINK_ORDERSHF_OS_NONCONFORMINGSHF_GROUPSHF_TLSSHF_MASKOSSHF_EXCLUDEbfd_elf_set_obj_attr_contents_bfd_elf_obj_attrs_arg_type_bfd_elf_copy_obj_attributes_bfd_elf_parse_attributes/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_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'/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/elf-strtab.c N*08 @  "   _bfd_elf_fixup_eh_frame_hdrwrite_compact_eh_frame_hdr/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_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__GNU_EH_FRAME_HDR%pB: %pA not in order%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 entry overflow.eh_frame_hdr refers to overlapping FDEsread_addressscan_unit_for_symbolsDWARF error: can't find %s section.DWARF error: section %s is larger than 10x 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)%s/%s/%s/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/dwarf2.cDWARF error: info pointer extends beyond end of attributes/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/lib64/debugDWARF 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 0x%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.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_weaknames %%%)/e 2 2 22   !jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjdjWOA9:OOy|\\\LL\\\\LLTTT\\\TTTTTTTTTTTTTyyyGX  _${ @"   _$@! @!  _$@  _bfd_aarch64_erratum_843419_branch_to_stubB@c@  _$B@c@ elf32_aarch64_finish_dynamic_sectionself32_aarch64_finish_dynamic_symbol{ @"    @ aarch64_build_one_stubaarch64_size_one_stubaarch64_map_one_stubelf32_aarch64_allocate_local_ifunc_dynrelocself32_aarch64_size_dynamic_sectionself32_aarch64_relocate_sectionelf32_aarch64_final_link_relocateelf32_aarch64_final_link_relocateR_AARCH64_P32_ABS16elf32-littleaarch64-cloudabielf32-bigaarch64-cloudabiR_AARCH64_P32_ABS32R_AARCH64_P32_PREL32R_AARCH64_P32_PREL16R_AARCH64_P32_MOVW_UABS_G0R_AARCH64_P32_MOVW_UABS_G0_NCR_AARCH64_P32_MOVW_UABS_G1R_AARCH64_P32_MOVW_SABS_G0R_AARCH64_P32_MOVW_PREL_G0R_AARCH64_P32_MOVW_PREL_G0_NCR_AARCH64_P32_MOVW_PREL_G1R_AARCH64_P32_LD_PREL_LO19R_AARCH64_P32_ADR_PREL_LO21R_AARCH64_P32_ADR_PREL_PG_HI21R_AARCH64_P32_ADD_ABS_LO12_NCR_AARCH64_P32_LDST8_ABS_LO12_NCR_AARCH64_P32_TSTBR14R_AARCH64_P32_CONDBR19R_AARCH64_P32_JUMP26R_AARCH64_P32_CALL26R_AARCH64_P32_LDST16_ABS_LO12_NCR_AARCH64_P32_LDST32_ABS_LO12_NCR_AARCH64_P32_LDST64_ABS_LO12_NCR_AARCH64_P32_LDST128_ABS_LO12_NCR_AARCH64_P32_GOT_LD_PREL19R_AARCH64_P32_ADR_GOT_PAGER_AARCH64_P32_LD32_GOT_LO12_NCR_AARCH64_P32_LD32_GOTPAGE_LO14R_AARCH64_P32_TLSGD_ADR_PAGE21R_AARCH64_P32_TLSGD_ADR_PREL21R_AARCH64_P32_TLSGD_ADD_LO12_NCR_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NCR_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19R_AARCH64_P32_TLSLD_ADD_DTPREL_HI12R_AARCH64_P32_TLSLD_ADD_DTPREL_LO12R_AARCH64_P32_TLSLD_ADD_DTPREL_LO12_NCR_AARCH64_P32_TLSLD_ADD_LO12_NCR_AARCH64_P32_TLSLD_ADR_PAGE21R_AARCH64_P32_TLSLD_ADR_PREL21R_AARCH64_P32_TLSLD_MOVW_DTPREL_G0R_AARCH64_P32_TLSLD_MOVW_DTPREL_G0_NCR_AARCH64_P32_TLSLD_MOVW_DTPREL_G1R_AARCH64_P32_TLSLE_MOVW_TPREL_G1R_AARCH64_P32_TLSLE_MOVW_TPREL_G0R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NCR_AARCH64_P32_TLSLE_ADD_TPREL_HI12R_AARCH64_P32_TLSLE_ADD_TPREL_LO12R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NCR_AARCH64_P32_TLSLE_LDST16_TPREL_LO12R_AARCH64_P32_TLSLE_LDST16_TPREL_LO12_NCR_AARCH64_P32_TLSLE_LDST32_TPREL_LO12R_AARCH64_P32_TLSLE_LDST32_TPREL_LO12_NCR_AARCH64_P32_TLSLE_LDST64_TPREL_LO12R_AARCH64_P32_TLSLE_LDST64_TPREL_LO12_NCR_AARCH64_P32_TLSLE_LDST8_TPREL_LO12R_AARCH64_P32_TLSLE_LDST8_TPREL_LO12_NCR_AARCH64_P32_TLSDESC_LD_PREL19R_AARCH64_P32_TLSDESC_ADR_PREL21R_AARCH64_P32_TLSDESC_ADR_PAGE21R_AARCH64_P32_TLSDESC_LD32_LO12_NCR_AARCH64_P32_TLSDESC_ADD_LO12R_AARCH64_P32_TLSDESC_CALLR_AARCH64_P32_COPYR_AARCH64_P32_GLOB_DATR_AARCH64_P32_JUMP_SLOTR_AARCH64_P32_RELATIVER_AARCH64_P32_TLS_DTPMODR_AARCH64_P32_TLS_DTPRELR_AARCH64_P32_TLS_TPRELR_AARCH64_P32_TLSDESCR_AARCH64_P32_IRELATIVEbfd_elf32_swap_symbol_outbfd_elf32_write_relocsDB"   MMMMhMMMM)MMMSMMMM 9MMy0%%%%%y%%%%%%%%%%%%%##yyyy%%%%%%%%%%%yy%%%0%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%t%${mO4$$$$$BBBBO66BBgBGGGG oBB      elf32_arm_update_relocs   GY\]Z[ jkih ffg3egd4`l&m'n p*o)Z[]\ hjiklyz{|}~edq+r,s-t.u/v0w1x29:;<=>?@ABCDEFGHIJKLMNOPQRS(`abbfd_arm_vfp11_insn_decodeelf32_arm_create_dynamic_sectionsarm_dedicated_stub_output_section_namearm_dedicated_stub_input_section_ptrelf32_arm_add_dynrelocelf32_arm_allocate_dynrelocsarm_dedicated_stub_output_section_requiredarm_stub_sym_claimed _M  - @-?/  ?/ -  //allocate_dynrelocs_for_symbolelf32_arm_check_relocself32_arm_final_link_relocatearm_stub_required_alignmentelf32_arm_write_sectionbfd_elf32_arm_process_before_allocationrecord_vfp11_erratum_veneerbfd_elf32_arm_vfp11_fix_veneer_locationsbfd_elf32_arm_stm32l4xx_fix_veneer_locationsrecord_stm32l4xx_erratum_veneer ?/p% ?/ p%xGxG /HFD`GxG / / xGxGxG/ @/ 0`G_HF`G//usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_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/%dSHF_ARM_PURECODE.ARM.exidx.note.gnu.arm.ident__stacksize.rofixupIWMMXT2IWMMXTXSCALE [interworking enabled] [APCS-26] [APCS-32] [VFP float format] [Maverick float format] [FPA float format] [floats passed in float registers] [position independent] [new ABI] [old ABI] [software FP] [Version1 EABI] [sorted symbol table] [unsorted symbol table] [Version2 EABI] [dynamic symbols use segment index] [mapping symbols precede others] [Version3 EABI] [Version4 EABI] [Version5 EABI] [soft-float ABI] [hard-float ABI] [BE8] [LE8] [relocatable executable] [FDPIC ABI supplement]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 format.glue_7.glue_7terror: 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 notVFPFPAMaverickerror: %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 %s%pB: unknown mandatory EABI object attribute %dwarning: %pB: unknown EABI object attribute %dfinal link error: malloc memmory (%lu bytes) failed.final link error: cannot read relocs from section %s.final link error: wrong file format (%s), recompile %s without PIC.final link type_range error: type %s is not in range in file %s.warning: 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%08x_%s+%x_%d%08x_%x:%x+%x_%d.gnu.sgstubsERROR: CMSE stub (%s section) too far (%#lx) from destination (%#lx) final link error: section %s name is too long (at most %u). .debug.arm.baslr%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 %sThumb__%s_from_thumbunable to find %s glue '%s' for '%s'no address assigned to the veneers output section %s.__stub__%s_from_arm%pB: warning: thumb-1 mode PLT generation not currently supported__real_%s.tls_vars__acle_se_.v4_bx%pB: Number of symbols in input file has increased from %lu to %u FDPIC does not yet support %s relocation to become dynamic for executableR_ARM_NONER_ARM_IRELATIVER_ARM_RREL32warning: clearing the interworking flag of %pB because non-interworking code in %pB has been linked with it.gnu.linkonce.armexidx.(local)shared objectPIE executable%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'fatal error: a stub is inserted by linker, please check. file:%s, section: %s, relocation type:%lu, branch type %u, symbol %s. %pB: expected symbol index in range 0..%lu but found local symbol with index %lu%pB(%pA+%#lx): unexpected %s instruction '%#lx' referenced by TLS_GOTDESC%pB(%pA+%#lx): %s relocation not permitted in shared object%pB(%pA+%#lx): only ADD or SUB instructions are allowed for ALU group relocations%pB(%pA+%#lx): overflow whilst splitting %#lx for group relocation %slocal symbol index too bigno dynamic index information availableinvalid dynamic indexdynamic index information not available%pB(%pA+%#lx): %s relocation against SEC_MERGE section%pB(%pA+%#lx): unexpected %s instruction '%#lx' in TLS trampoline final link error: balong-aslr is notcompitable with gcc aslr and dynamiclinking. final link type_range error: type %s is not in RANGE in file %s. final link error: failed to malloc %lu bytes memory. final link error: failed to add an entry intosection %s final link error: failed to add an entryinto section %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 final link error: section %s does not exists. .arm.baslr.reloc final link error: zero input bfds. final link error: count relocation for non-debug section failed. Warning: balong aslr is enabled but no qualified relocs was found. final link error: the size of section %s must be at least %lu bytes. final link error: failed to allocte a memory of %lu bytes. final link error: create baslr meta data chain failed. final link error: count relocations for section %s failed. final link error: baslr debug section %s already exists. final link error: failed to create baslr debug section %s. final link error: failed to set baslr debug section flag for %s final link error: failed to set baslr debug section size for %s final link error: too many debug sections final link error: failed to get section %s final link error: failed to malloc memory %lu bytes final link error: internal data failed when write section. final link error: failed to malloc memory (%lu bytes) final link error: out of memory index (%lu, %d) final link error: failed to sort section %s final link error: failed to write section %s final link error: section %s does not exist. final link error: section (%s) pre_size (%lu) does not equal to post_size (%lu). final link error: failed to malloc memory %lu bytes .vfp11_veneer.text.stm32l4xx_veneer%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%x:%x%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: special symbol `%s' only allowed for ARMv8-M architecture or later%pB: BE8 images only valid in big-endian mode__bx_r%d%pB: warning: selected VFP11 erratum workaround is not necessary for target architecture%pB: warning: selected STM32L4XX erratum workaround is not necessary for target architecture__vfp11_veneer_%x__vfp11_veneer_%x_r$a%pB: unable to find %s veneer `%s'VFP11__stm32l4xx_veneer_%xSTM32L4XX__stm32l4xx_veneer_%x_r%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 block$t/usr/lib/ld.so.1errors encountered processing file %pBinvalid TARGET2 relocation type '%s'variable-size32-bitPre v4ARM v4ARM v4TARM v5TARM v5TEARM v5TEJARM v6ARM v6KZARM v6T2ARM v6KARM v7ARM v6-MARM v6S-MARM v7E-MARM v8ARM v8-RARM v8-M.baselineARM v8-M.mainlineARM v8.1-AARM v8.2-AARM v8.3-AARM v8.1-M.mainlineARM v9elf32-littlearm-vxworkself32-bigarm-vxworksaeabielf32-littlearm-fdpicelf32-bigarm-fdpicelf32-littlearm-naclelf32-bigarm-naclR_ARM_RABS32R_ARM_RPC24R_ARM_RBASER_ARM_GOTFUNCDESCR_ARM_GOTOFFFUNCDESCR_ARM_FUNCDESCR_ARM_FUNCDESC_VALUER_ARM_TLS_GD32_FDPICR_ARM_TLS_LDM32_FDPICR_ARM_TLS_IE32_FDPICR_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_BF18/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/elf-nacl.c__GOTT_BASE____GOTT_INDEX__.rela.plt.unloaded.rel.plt.unloaded.tls_datadummy_reloc16_estimatedummy_reloc16_extra_casescoff_set_alignment_hookpe_ILF_save_relocsdhandle_COMDAT%pB: page size is too large (0x%x)%pB: too many sections (%d).lib/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/coffcode.h%pB: overflow reloc count too small%pB: warning: claims to have 0xffff relocs, without overflow/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/peicode.hwarning: %pB: local symbol `%s' has no section%pB: unrecognized storage class %d for %s symbol `%s'%pB: warning: line number table read failed%pB: warning: illegal symbol index 0x%lx in line number entry %d%pB: warning: illegal symbol in line number entry %d%pB: warning: duplicate line number information for `%s'%pB: warning: illegal symbol index %ld in relocs%pB: illegal relocation type %d at address %#lxpei-%pB: unrecognised machine type (0x%x) in Import Library Format archive%pB: recognised but unhandled machine type (0x%x) in Import Library Format archive%pB: size field is zero in Import Library Format header%pB: string not null terminated in ILF object file%pB: unhandled import type; %x%pB: unrecognized import type; %x%pB: unrecognized import name type; %x.idata$4.idata$5.idata$6__IMPORT_DESCRIPTOR_%pB: error: debug data ends beyond end of debug directory.reloc%pB: section %pA: string table overflow at offset %ld/%lu.gnu.linkonce.wt.%pB: reloc against a non-existent symbol index: %ld%pB:%s section %s: alignment 2**%u not representable warning:STYP_DSECTSTYP_GROUPSTYP_COPYSTYP_OVERIMAGE_SCN_MEM_NOT_CACHEDIMAGE_SCN_LNK_OTHER%pB: warning: ignoring section flag %s in section %sIMAGE_SCN_MEM_NOT_PAGED%pB: unable to load COMDAT section name%pB: error: unexpected symbol '%s' in COMDAT section%pB: warning: COMDAT symbol '%s' does not match section name '%s'%pB: warning: no symbol for section '%s' found%pB (%s): section flag %s (%#lx) ignored.sbss.rdata.arch@@B.bss.data@.edata@@.idata@.pdata@@.rdata@@.reloc@B.rsrc@.text `.tls@.xdata@@peXXigen.c%.1s.rsrc merge failure: multiple non-default manifests.rsrc merge failure: dirs with differing characteristics.rsrc merge failure: differing directory versions.rsrc merge failure: a directory matches a leaf.rsrc merge failure: duplicate string resource: %d.rsrc merge failure: duplicate leaf.rsrc merge failure: duplicate leaf: %stype: %x (CURSOR) (BITMAP) (ICON) (MENU) (DIALOG) (STRING) (FONTDIR) (FONT) (ACCELERATOR) (RCDATA) (MESSAGETABLE) (GROUP_CURSOR) (GROUP_ICON) (VERSION) (DLGINCLUDE) (PLUGPLAY) (VXD) (ANICURSOR) (ANIICON) (HTML) (MANIFEST) (DLGINIT) (TOOLBAR) name: (resource id range: %d - %d) lang: %03x %*.s TypeLanguage Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d %03x %*.s Entry: name: [val: %08lx len %d]: ^%c ID: %#08lx, Value: %#08lx %03x %*.s Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d %pB: unable to find name for empty section%pB: out of memory creating name for empty section%pB: unable to create fake empty section%pB: aout header specifies an invalid number of data-directory entries: %u.rsrc%pB:%.8s: section below image base%pB:%.8s: RVA truncated%pB: line number overflow: 0x%lx > 0xffffUnknown There is a debug directory in %s, but that section has no contents Error: section %s contains the debug data starting address but it is too small There is a debug directory in %s at 0x%lx The debug data size field in the data directory is too big for the sectionType Size Rva Offset %2ld %14s %08lx %08lx %08lx (format %c%c%c%c signature %s age %ld) The debug directory size is not a multiple of the debug directory entry size There is a debug directory, but the section containing it could not be found warning, .pdata section size (%ld) is not a multiple of %d The Function Table (interpreted .pdata section contents) vma: Begin Prolog Function Flags Exception EH Address Length Length 32b exc Handler Data %2d %2d %08x %08x (%s) Export Directory [.edata (or where ever we found it)]ROMPE32+PE32XBOXSAL runtime driverEFI runtime driverEFI boot service driverEFI applicationWince CUIPOSIX CUIWindows CUIWindows GUINT nativeunspecified Characteristics 0x%x relocations stripped %s executableline numbers strippedsymbols strippedlarge address awarelittle endian32 bit wordsdebugging information removedcopy to swap file if on removable mediacopy to swap file if on network mediasystem fileDLLrun only on uniprocessor machinebig endian Time/Date %08lx (This is a reproducible build file hash, not a timestamp) Time/Date %sMagic %04x MajorLinkerVersion %d MinorLinkerVersion %d SizeOfCode SizeOfInitializedData SizeOfUninitializedData AddressOfEntryPoint BaseOfCode ImageBase SectionAlignment %08x FileAlignment %08x MajorOSystemVersion %d MinorOSystemVersion %d MajorImageVersion %d MinorImageVersion %d MajorSubsystemVersion %d MinorSubsystemVersion %d Win32Version %08x SizeOfImage %08x SizeOfHeaders %08x CheckSum %08x Subsystem %08x DllCharacteristics %08x %sHIGH_ENTROPY_VA %sDYNAMIC_BASE %sFORCE_INTEGRITY %sNX_COMPAT %sNO_ISOLATION %sNO_SEH %sNO_BIND %sAPPCONTAINER %sWDM_DRIVER %sGUARD_CF %sTERMINAL_SERVICE_AWARE SizeOfStackReserve SizeOfStackCommit SizeOfHeapReserve SizeOfHeapCommit LoaderFlags %08lx NumberOfRvaAndSizes %08lx The Data Directory Entry %1x %08lx There is an import table in %s, but that section has no contents There is an import table in %s at 0x%lx The Import Tables (interpreted %s section contents) vma: Hint Time Forward DLL First Table Stamp Chain Name Thunk %08lx %08lx %08lx %08lx %08lx %08lx DLL Name: %.*s vma: Hint/Ord Member-Name Bound-To %04lx %4lu %04lx %4d %.*s %04lx There is an export table in %s, but that section has no contents There is an export table in %s, but it does not fit into that section There is an export table in %s, but it is too small (%d) There is an export table in %s at 0x%lx The Export Tables (interpreted %s section contents) Export Flags %lx Time/Date stamp %lx Major/Minor %d/%d Name %.*s (outside .edata section) Ordinal Base %ld Number in: Export Address Table %08lx [Name Pointer/Ordinal] Table %08lx Table Addresses Export Address Table Name Pointer Table Ordinal Table Export Address Table -- Ordinal Base %ld Invalid Export Address Table rva (0x%lx) or entry count (0x%lx) Forwarder RVA [%4ld] +base[%4ld] %04lx %s -- %.*s Export RVA [%4ld] +base[%4ld] %04lx %s [Ordinal/Name Pointer] Table Invalid Name Pointer Table rva (0x%lx) or entry count (0x%lx) Invalid Ordinal Table rva (0x%lx) or entry count (0x%lx) [%4ld] [%4ld] %.*s vma: Begin End EH EH PrologEnd Exception Address Address Handler Data Address Mask Virtual size of .pdata section (%ld) larger than real size (%ld) %x PE File Base Relocations (interpreted .reloc section contents) Virtual Address: %08lx Chunk size %ld (0x%lx) Number of fixups %ld reloc %4d offset %4x [%4lx] %s (%4x) The .rsrc Resource Directory section: Corrupt .rsrc section detected! WARNING: Extra data in .rsrc section - it will be ignored by Windows: String table starts at offset: %#03x Resources start at offset: %#03x (%s) There is an import table, but the section containing it could not be found There is a first thunk, but the section containing it could not be found There is an export table, but the section containing it could not be found %pB: Data Directory (%lx bytes at %lx) extends across section boundary at %lxfailed to update file offsets in debug directory%pB: failed to read debug data section__tls_used_tls_used.idata$2%pB: unable to fill in DataDictionary[1] because .idata$2 is missing%pB: unable to fill in DataDictionary[1] because .idata$4 is missing%pB: unable to fill in DataDictionary[12] because .idata$5 is missing%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing__IAT_start____IAT_end__%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing%pB: unable to fill in DataDictionary[9] because __tls_used is missing%pB: .rsrc merge failure: corrupt .rsrc section%pB: .rsrc merge failure: unexpected .rsrc sizeCodeViewFPOMiscExceptionFixupOMAP-to-SRCOMAP-from-SRCBorlandReservedCLSIDFeatureCoffGrpILTCGMPXReproLOWHIGHLOWHIGHADJMIPS_JMPADDRSECTIONRESERVED1MIPS_JMPADDR16DIR64HIGH3ADJImport Directory [parts of .idata]Resource Directory [.rsrc]Exception Directory [.pdata]Security DirectoryBase Relocation Directory [.reloc]Debug DirectoryDescription DirectorySpecial DirectoryThread Storage Directory [.tls]Load Configuration DirectoryBound Import DirectoryImport Address Table DirectoryDelay Import DirectoryCLR Runtime Headercoff_fix_symbol_namestrange/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/coffgen.c.file%pB: bad string table size %lucoff %s %s[%3ld] %s(sec %2d)(fl 0x%02x)(ty %4x)(scl %3d) (nx %d) 0xFile ftype %d fname "%s"AUX scnlen 0x%lx nreloc %ldAUX scnlen 0x%lx nreloc %d nlnno %d checksum 0x%lx assoc %d comdat %dAUX tagndx %ld ttlsiz 0x%lx lnnos %ld next %ldAUX lnno %d size 0x%x tagndx %ld endndx %ld %s : %4d : %-5s %s %s %s.vectors.xdata%pB: Relocations in generic ELF (EM: %d)%pB: relocations in generic ELF (EM: %d)/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/plugin.cbfd plugin: plugin framework: out of file descriptors. Try using fewer objects/archives Failed to load plugin '%s', reason: %s /usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/lib64/bfd-plugins/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/arm64le_build_dir/hcc_arm64le/bin/../lib/bfd-pluginsplugcortex-a77aarch64:armv8-rcortex-a34cortex-a65cortex-a65aecortex-a76aearm_anyarch: error: %pB is compiled for the EP9312, whereas %pB is compiled for XScalearmv2armv2aarmv3armv3Marmv4armv4tarmv5armv5tarmv5teXScaleep9312iWMMXtiWMMXt2warning: unable to update contents of %s section in %pBarmv3mxscaleiwmmxtiwmmxt2armv5tejarmv6armv6kzarmv6t2armv6karmv7armv6-marmv6s-marmv7e-marmv8-aarmv8-m.basearmv8-m.mainarmv8.1-m.mainarmv9-aarm2arm250arm3arm6arm60arm600arm610arm620arm7arm70arm700arm700iarm710arm7100arm710carm710tarm720arm720tarm740tarm7500arm7500fearm7darm7diarm7dmarm7dmiarm7tarm7tdmiarm7tdmi-sarm7marm8arm810arm9arm920arm920tarm922tarm926ejarm926ejsarm926ej-sarm940tarm946earm946e-r0arm946e-sarm966earm966e-r0arm966e-sarm968e-sarm9earm9e-r0arm9tdmiarm1020arm1020tarm1020earm1022earm1026ejsarm1026ej-sarm10earm10tarm10tdmiarm1136j-sarm1136jsarm1136jf-sarm1136jfsarm1176jz-sarm1176jzf-sarm1156t2-sarm1156t2f-scortex-a5cortex-a7cortex-a8cortex-a9cortex-a12cortex-a15cortex-a17cortex-a32cortex-a35cortex-a53cortex-a55cortex-a57cortex-a72cortex-a73cortex-a75cortex-a76cortex-a78cortex-a78aecortex-a78ccortex-m0cortex-m0pluscortex-m1cortex-m23cortex-m3cortex-m33cortex-m35pcortex-m4cortex-m7cortex-r4cortex-r4fcortex-r5cortex-r52cortex-r52pluscortex-r7cortex-r8cortex-x1exynos-m1fa526fa606tefa616tefa626fa626tefa726tefmp626i80200marvell-pj4marvell-whitneympcorempcorenovfpsa1strongarmstrongarm1strongarm110strongarm1100strongarm1110xgene1xgene2cortex-a710/SYM64/bfd_get_full_section_contentsbfd_is_section_compressed_with_headerbfd_compress_section_contentsbfd_init_section_decompress_status1.2.11error: %pB(%pA) section size (%#lx bytes) is larger than file size (%#lx bytes)error: %pB(%pA) is too large (%#lx bytes)/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/compress.c_bfd_add_merge_section_bfd_write_merged_section_bfd_merged_section_offset/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/merge.c%pB: access beyond end of merged section (%ld)%pB(%pA+%#lx): stabs entry has invalid string index/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/bfd/stabs.cconflict due to enum %s iteration errorlibctfconflict due to enum value change: %i versus %iconflict due to struct member %s iteration errorconflict due to struct member %s offset change: %lx versus %lxkind == CTF_K_INTEGER || kind == CTF_K_FLOAT/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/libctf/ctf-create.cctf_add_array: index type %lx is incompletectf_add_unknown: cannot add unknown type named %s: type of this name already definedctf_add_member_offset: cannot add member %s of incomplete type %lx to struct %lx without specifying explicit offset (unnamed member)ctf_add_member_offset: cannot add member %s of type %lx to struct %lx without specifying explicit offset after member %s of type %lx, which is an incomplete type ctf_add_type: conflict for type %s: kinds differ, new: %i; old (ID %lx): %iconflict for type %s against ID %lx: array info differs, old %lx/%lx/%x; new: %lx/%lx/%xconflict for type %s against ID %lx: union size differs, old %li, new %liconflict for type %s against ID %lx: members differ, see aboveconflict for enum %s against ID %lx: members differ, see aboveFile 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.Type name must not be empty."-Uk(JuCb{9`2\ 7NqCcAnUnknown errorcannot create per-CU CTF archive for input CU %sopening CTF %s failediteration error counting deduplicating CTF link inputserror in deduplicating CTF link input allocationiteration error in deduplicating link input freeingunnamed-CUctf_type_isparent (fp, dst_type)/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/libctf/ctf-link.ctype %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.iterating over function symbolsiterating over data symbolsInexpressible 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: skipped(unnamed)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 %snoutputs == 1CU-mapped deduplicating link variable emission failed for %siteration error in CU-mapped deduplicating linkdeduplication failed for %sdeduplicating link type emission failed for %soutputs[0] == fpout of memory allocating link outputsdeduplicating link variable emission failed for %sdeduplicating link symbol emission failed for %sdid->cid_sym.st_name != NULLsymbol from linker: %s (%x) No symbols: not a final link. symp->st_symidx <= fp->ctf_dynsymmaxerror iterating over shuffled symbolsname reallocationctf_dict reallocationtempfile creationseeking to endfilesize determinationfilepos resettingCTF archive buffer allocationreading archive from temporary filearchive writinghash creationlinker 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 failurectf_lookup_symbol_name */usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/libctf/ctf-lookup.c!sym.st_nameidx_setIndex section unsorted: sorting.Looking up type of object with symtab idx %lx or name %s in indexed symtypetab cannot sort function symidxcannot sort object symidx%s not found in idx Symbol %lx (%s) is of type %x cannot allocate memory for symbol lookup hashtabLooking up type of object with symname %s in writable dict symtypetab fp->ctf_flags & LCTF_RDWRLooking up type of object with symtab idx %lx in writable dict symtypetab !sym->st_nameidx_setLooking up object type %lx in 1:1 dict symtypetab volatileautoconstregisterrestrict_Restrictinit_typesupgrade_types_v1ctf_symsect_endiannessflip_types.ctfctf_set_base: CU name %s ctf_set_base: parent name %s (label %s) loaded %lu symtab entries detected invalid CTF kind: %x/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/libctf/ctf-open.c!(fp->ctf_flags & 0x0002)cth->cth_stroff >= cth->cth_typeoffsize == v2sizevbytes == v2bytes(size_t) t2p - (size_t) fp->ctf_buf == cth->cth_stroffCTF dict %p is a child CTF dict %p is a parent init_types(): unhandled CTF kind: %x%lu total types processed %u enum names hashed %u struct names hashed (%d long) %u union names hashed (%d long) %u base type names hashed structunionenumctf_dict_close(%p) refcnt=%u init_symtab (fp, fp->ctf_header, &fp->ctf_symtab) == 0PARENTLP64ctf_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 sizeoverlapping CTF sectionsCTF sections not properly alignedObject index section is neither empty nor the same length as the object section: %u versus %u bytesFunction index section is neither empty nor the same length as the function section: %u versus %u byteszlib inflate err: %szlib inflate short: got %lu of %lu bytesvbytes == 0vbytes == sizeof (ctf_array_t)vbytes == sizeof (ctf_slice_t)unhandled CTF kind in endianness conversion: %xILP32ctf_serialize_START__END_/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/libctf/ctf-serialize.citerating over linker-known symbols during serializationsymbol %s (%x) added to CTF as a function but is of type %x. The symbol type lookup tables are probably corruptedsymbol %s (%x) added to CTF as a data object but is of type %x. The symbol type lookup tables are probably corruptediterating over CTF symtypetab during serializationiterating over linker-known symbols during CTF serializationEmitting table of size %i, outmax %u, %u symtypetab entries, flags %i (((char *) dpp) - (char *) dp) < size!(flags & CTF_SYMTYPETAB_EMIT_PAD)this_link_sym != NULL(((char *) dpp) - (char *) dp) <= sizefp->ctf_str_num_refs == 0Object symtypetab: %i objects, max %i, unpadded size %i, %i bytes of pads, index size %i Function symtypetab: %i functions, max %i, unpadded size %i, %i bytes of pads, index size %i error serializing symtypetabsEmitting unindexed objt symtypetab Emitting indexed objt symtypetab Emitting unindexed func symtypetab Emitting indexed func symtypetab Emitting index of size %i, %u entries reported by linker, flags %i t == (unsigned char *) buf + sizeof (ctf_header_t) + hdr.cth_varoffi == nvarst == (unsigned char *) buf + sizeof (ctf_header_t) + hdr.cth_typeofft == (unsigned char *) buf + sizeof (ctf_header_t) + hdr.cth_stroffnum_missed_str_refs == 0ctf_compress_write: cannot allocate %li byteszlib deflate err: %sctf_compress_write: error writing headerctf_compress_write: error writingctf_write_mem: cannot allocate %li bytesctf_write: error writing headerctf_write: error writing(?)null string not found in strtab%lu bytes of strings in strtab. LIBCTF_DEBUGlibctf DEBUG: ctf_version: client using version %d CTF debugging set to %i %s: %s (%s) warning%s: %lu: libctf assertion failed: %sn < LCTF_INFO_VLEN (fp, tp->ctt_info)/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/libctf/ctf-types.c(n + 1) * sizeof (ctf_lmember_t) <= vbytestype %lx cycle detected(i->ctn_next == NULL)(*) (...struct %sunion %senum %s(nonrepresentable type)(nonrepresentable type %s)%p: attempt to realloc() string table with %lu active refs ctf_bfdopen_ctfsectcannot close BFD: %scannot read symbol tablecannot read string tablecannot malloc symbol tableCTF section is NULL/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/libctf/ctf-open-bfd.csymhdr->sh_entsize == ((const struct elf_backend_data *) ((abfd)->xvec)->backend_data)->s->sizeof_symctf_bfdopen(): %s: %sctf_bfdopen(): cannot malloc CTF section: %scannot open BFD from %s: %s(unknown file)BFD format problem in %s: %sctf_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 writingctf_arc_write(): cannot mmaparc_mmap_munmap(): cannot unmap after writing to %s: %sWriting CTF archive with %lu files headersz is %lu 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_dict_open_internal(%s): opening ctf_dict_open_by_offset(%lu): opening sort_output_mappingu e Marking %s as conflicted Out of memory marking %s as conflicted ctf_dynhash_elements (d->cd_output_mapping) > 0/usr1/turing/asl/devtools/hcc/build/hcc_arm64le/../../../../../out/hcc_compile/hcc_arm64le_build_src/binutils-gdb/libctf/ctf-dedup.cLooked up type kind by nonexistent hash %s. Counting hash %s: kind %i: num_non_forwards is %i Using synthetic forward for conflicted struct/union with hval %s Cross-TU conflicted struct: passing back forward, %lx one_ninput < arg->ninputs && two_ninput < arg->ninputsone_type != two_type%i/%lx: unimplemented type Mapping %i/%lx to target %p (%s) parents[input_num] <= ninputshval && td->cd_output_emission_hashescannot add synthetic forward for type %i/%lxLooking up %i/%lx, hash %s, in target Checking shared parent for target (target != output) && (target->ctf_flags & LCTF_CHILD)target_id%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 unknown typeforwardfloat/int%s (%i): cannot add enumeration value %s from input type %lxtypedefpointer or cvr-qualslicearray infofunctionfunction argsstructure/union%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 typescannot walk conflicted typeerror during func type info lookuperror doing memory allocationerror 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 Walking: unimplemented type Looking up ID %i/%lx in type hashes hashval%s in input file %s at type ID %lxID %i/%lx has hash %s error hash cachingerror calling population function00000000000000000000%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 type infoerror getting func arg typeerror getting func return typeerror doing func arg type hashingerror getting encodingerror getting array infoerror doing enum member iterationerror doing struct/union member type hashingerror doing struct/union member iterationerror: unknown type kinderror doing referenced type hashingerror doing slice-referenced type hashingerror tracking citerserror updating citerscannot intern hash%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/unionsscanning for ambiguous namesctf_dedup_init: cannot initialize: out of memoryInput %i: %s ctf_dedup: cannot initialize: %s Computing type hashes iteration 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 conflictingiteration failed: %sConflictifying unshared types type_idsiteration error propagating conflictednesstype_idconflictifying unshared typesTriggering emission. cannot recurse over output mappingPopulating struct members. target%s (%i): error emitting members for structure type %lxiteration failure emitting structure members!cu_mapped || (cu_mapped && num_outputs == 1)out of memory allocating link outputs arraydict %p passed to ctf_dedup_type_mapping is not a deduplicated outputfound != 0hval != NULL0123456789abcdefOabs'Read'Write'Input'Output.Finalize.Adjust_elabb_ada_<%s>'Elab_Body_elabs'Elab_Spec_size'Size_alignment'Alignment_assign.":="OandandOmodmodOnotnotOororOremremOxorxorOeqOneOltOleOgtOgeOaddOsubtractOconcatOmultiplyOdivideOexpon**Demangling disabledAutomatic selection based on executablegnu-v3GNU (g++) V3 (Itanium C++ ABI) style demanglingjavaJava style demanglinggnatGNAT style demanglingdlangDLANG style demanglingrustRust style demangling"""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""" vZt\B({:  nT@$H22WvvjP6C#?[#?[w;o*@LXd*[abi:::{default arg#}::JArray[]auto:template parameter object for vtable for VTT for construction vtable for -in-typeinfo for typeinfo name for typeinfo fn for non-virtual thunk to 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 transaction clone for non-transaction clone for _Sat _Accum_Fractoperatoroperator >( : new ulullfalsetruejava resource decltype (this{parm#global constructors keyed to global destructors keyed to {lambda()#{unnamed type# [clone restrict volatile const transaction_safe noexcept throw _Complex _Imaginary::* __vector( ... (......)(anonymous namespace)decltype(auto)string literalstddecltype(nullptr)_GLOBAL_std::allocatorallocatorstd::basic_stringbasic_stringstd::stringstd::basic_string, std::allocator >std::istreamstd::basic_istream >basic_istreamstd::ostreamstd::basic_ostream >basic_ostreamstd::iostreamstd::basic_iostream >basic_iostreamsigned charboolbooleancharbytedoublelong doublefloat__float128unsigned charunsigned intunsignedlongunsigned long__int128unsigned __int128shortunsigned shortvoidwchar_tlong longunsigned long longdecimal32decimal64decimal128halfchar8_tchar16_tchar32_taNaSaaadalignof awco_await azccconst_castcl()cm,co~dVdX[...]=dadelete[] dynamic_castdidldelete ds.*dtdv]=eO^=eo^eqfLfRflfrgtixlSoperator"" mImLmimlmm--nanew[]!nwnewoRoopLplpm->*pp++ps->qurM%=rSrcreinterpret_castrm%sPsizeof...sZstatic_cast<=>sizeof szthrowtwthrow ""%s: error: too many @-files encountered %s: error: @-file refers to a directory ((0N((&.6>FNV^fnv~px immutable shared inout\x\u\UuL__ctor__dtor~this__initZinitializer for __vtblZ__ClassZClassInfo for __postblitMFZthis(this)__InterfaceZInterface for __ModuleInfoZModuleInfo for NANNaNINFInfNINF-Infshared(const(immutable(inout(__vector(typeof(*null)[delegateTuple!(typeof(null)ubyteushortuintulongrealifloatidoubleirealcfloatcdoublecrealwchardcharcentucentextern(C) extern(Windows) extern(Pascal) extern(C++) extern(Objective-C) pure nothrow ref @property @trusted @safe @nogc return scope @live in out lazy _D!("\t\n\r\f\v_DmainD mainPWD%I$ <;G]tB{= 0$~`2fCOmA oE!a  0P AA ?  &*"@ `0PHX? "A!)?Cannot find prime bigger than %lu cccccccccccccccccccccccccccccccccccccccccccccccc ccccccc cccccccccccccccccccccccccc ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc..pex_get_status failedclosedup2vforkexecvpexecv: error trying to exec '': waitHL , 0<84@$P(Di8i16i32i64i128isizeu8u16u32u64u128usizef32f64for<> \u{}mut const ; unsafe extern "" fn( -> dyn + = ::{closureshim# as 17h  !"#$%&'()*+,-./0123456789:;<=>?@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 completecould not create temporary filepipeopen temporary output fileboth ERRNAME and PEX_STDERR_TO_PIPE specified.PEX_STDERR_TO_PIPE used in the middle of pipelineopen error filewbrb/tmp/var/tmp/tmpTMPDIRTMPTEMPCannot create temporary file in %s: %s ;T opVop  vhw,PxBxy<x؆LTUUH>(pO0ODOX0Rl@UUVX`HZ[0^PX^t_`a`a<aPHspssvyXyyH{ ~hD0$\؄p8 `Dxp؝P0؟(H,PȢ hh 4@h p@hP$Xh@|h @0X p `<p(,pl8LH,@T|H "8"\0$h%%%$@&8H8h9;<|==>?\ D(G@KL@MxN8ZxP[H_,`i88jLxjpkPl`n`rTrhXs@tHt`t(ht<tdHw,zt(zz{|8p|\x|p|}}xȁp(D@XHl @4HHГPtDP$X8X8\H P, | خ  t @ P г  <  P t   е   H    X( `@ d x   0 8( P< `P xd x غ 8  8 p,t8HP$@Th|X(DXp$@h(t(@Th |X@L (<@lP4`hP,\X Ph0`$T`H` |$p@p @ Tp  ,(T8  $ P t     !HH!pp!!!H"`"t""("H"P"X"` #h #p4#xH#\#######$$0$D$X$0|$P$p$$ %@%x|%% %&,&@&T&h&|&&&&8&X&h&p''0'D'X'(l'P'p''' ' '!("t("( #(H#(p#($8)$L)0%`)%t)%)%)&)p&)'\*(*)**+`*0+*`+h++-+8.L,.,P/,/,(0-04-(3- 7.H7.P7.x:D/D/8G40L0POp1O1PQ1@TL2hT`2pTt2T2T2T2U2 U2W43xX3Y3Z3Z3[4[,4 \\4^4`^5p^5x^,50_\58_p5@_5H_5P_5X_5`_5h_5p_5x_6_$6_86_L6_`6_t6`6(`6x`6`6`6a7a(7a<7PaP7a7b7Xc7dD8h8xi9 j89j9k98l9l:ml:n:p;r;@r;Hr;r;r;tD<ptp<t<t<u=w= x=x=z >(z4>{d>{>X|>|?}T?X~?~??`?Ѐ @<@ `@0t@@4AHAX4B(BBBBPCp0CXClC(C0CHD\DHDPDXD`DDh$EȔTE|EPEEh FPFxFLGGGH(H?p??  @4Nđ8xTpxhzz̓h|0Ĕ(0@(\ 8Ph,Hęxp0DȚܚ0Xhp,pX Xԝ`0|Ph̠h<ġPh(<Pd x8PhȢܢ,@(T@hX|p̣00HD`XxlФ 8 P h4H\hȥ,ئh$p88lp 0ԧ phx 8 Ԩ Hp`08ĪHتP`(\H$ h%,%Th'' ( x(4)hH)|)+h,$,8-h(.p.0<2@384h85 6X7t7@8ij;,0@t`HI8IhI$J8KLK`LtL@MMNNO\PQRR8 T0TTUUXlX8ZhZ`g(ggXm` op pTpxrshs@shtPu`u0vw\xPxxxz{,{@@|T|h}~ PX0x,H`xTȈ4H<L `   8 ( T X    L     , ` h H,8HP`(p<PH 0 hP | x   x@@lP08``Dp8  !!"(H#P0$p$$$&L('))*(*@H*dx**++142\C0D@DD DHE\xEp8F`FFFxL0LDLXHMlMMNNNPOPpQPQRRS8V|VPWxX` Z 0[$![X!h]!^!^"^D"(f"hf"f"g$#HhT#i#Xl#m<$p$s8%sL%Xt%u%@u%0&&&pP'''l((((,)hT**Ȥ*h*ȧ<+0+`,L,г,x--- -..@ /hh///080d01 D1pH224|3K4hL`4b5`d 6d466h7(878L787H77x7p88889h9h9 :H: ; ;<<8==`=>P(>8t>>>H>08?h?л??H@,@\@p@н@ؽ@@H@P@`@AAAh\BBB(CCHC(DH`DpDD`DHEhETF0F8F`F(GXGG8I8J`K0tKXK8 K0 (L TL |L LMh4MMN HN@#NP'XO)O*O-P0XQ1Qh1Q 5R9TRh=R(>RASB@??@ABLB`CEF,I̽L`MtPMXM`MľMؾMM`NH@OhOOԿ@R\hSxS(TU0W|XYx[d\(]](Xa `mPp xwl{(X PdXP((0 ؤPdx(`<PH8PHTX@0xp8PX,X8xPthH$%hp( ) 0*``*t8,8078p:L;|<<?(@D`A|AABBhBBHB\PCM@NOT`PhQQQbhxc@ee(fpggjP(kno(opr 8sh uww,8x@xdyzz|d|| XH`XȔ< @pHP `xDXl(<ȰPdptH Pxмؼ h p8p DXp `pH@\L `(t0 @0@0@Dh|PP(XHX08P|HPdH8x@p(HHp   XXL|  0p 4h$`zRx @,,@<$@@HA A AN hA8|@A@B ABLBPAF $lAXC D DI $AhG D AM 4AA B BL E E E DHX@\BD!B7BA BEDL B 4c0AD Hc,cA0A AC^ $d$ d8dLd`dtd ddddc,ctA0A ABT A 8dH0,dA A AK B AMB B  J A A@|dA@A AC[ A BAL AB BA$LeA A Ad A HeA0B AGRA B 0D A 0,4(fA0A ACZ A $df(A A AF ,fB A Ag C  0gAP A AJHF D A Ao B G[OAF B P BbBPN A HABABBHH4jA@A BX B AM D A A G A E4jA A A\ A G A `k8TkD A BK B E A F $kA A Aa (DlA A A_ B 4p|lA@A ABCo A 4Dm8A@A ACD{ A Dn(Xn(ln(n(0n(Dn(Xn(ln nDo$4$oA@B ADd B AMB o'AA AGA_AEB CB A JMAB B B JABIABH A QD A D A D A  C CAAAB C CAAAB C CAAAB I CAAAB ^ ABAAC F CBAAB F CBAAB N ABAAC | ABABA C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB B ABABA F CBAAB F CBAAB D BABAA C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB G ACAAB C CAAAB C CAAAB D DBBAC C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB I CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB G ABABA C CBAAC C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB S ACAAB a AAAAA C CAAAB C CAAAB C BBACB O ABAAC C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C BAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB C CAAAB F CBAAB F CBAAB F CBAAB C CAAAB d AAACA F KABAD O CBAAB \ AAAAA B ABABA B ABABA 8AP B ABDr B H@l2A0/B A.-D,+I*)('&% A $@((<@h@$tA A AU B $@ܿXA A AR  h AA E  $AA F h xA` A AB HSC A E C `  G DACU AAB HA0A A AH A G C @PhAA AB F C y A 4A D AK A K A (TA A ADKB 0,XA0A ACE A X,P\QP D AFGAAaAAG A P TDHA@B ACBXAB B @8A0D HCJBA A 0T T<A@B ACHGPAH A @RBBBADALx<A0B AJIE B I A F B FAGDAB A E BG Q A $8t0L\`tDt@L A AG A K E  L 8A C E] B C C D l\AP A ABBu B CF@k A P BAAAlhAp A A D GBD NAAI A p  AAA |@ D` A A BQ A GXA B `  O A B fA A `  A AdEdAKAE PdIC A `  CAYNDDBQ B ABXDA N `  M A B UUA cB B `  ^ B `  A\IHDDBxHBD DB ME B `  JBD B DGCDB A CI A R A JADADAAH A ALPAP C AGKRS B P BLDBAH<U@A ABWQD H @AhHAA A Q B C H D F AB XDB Q AB DDB A  L4\A0A AB_ B H @B@A ADf B E DD|A@A ADBP A D 8A@A ACDBUAC 8A@A AEBB^AAB H AA A BDC E O B hP AA A CC D LGcK B  HG` 0@AA A CE B QWJ A  HG8 ! A` A A BE` B @\!A@A ADU B CSC <!<A B BU B O A C (!XA C AI B T "A@A ACI A ABUAC B @OA,d"A0A AD] B 8"8pA@C CDD A 0"lLQ0A ACi A 4#A@C ADBf A 8<#HB0A ACW B \ x##8#A0A ACi A B AC B #`PD #\OD 8$@A0A ABb A H B P$|d$TA0A ABCDJWAE A 0BAC B 0ICA A 0I$AA ABDIED B ^AAAJ B  AA AA \h%AP A ADFIIL A P AK D%dpAP A ACCMDVAN A V&d$&A@C AEGBFGD B @bJB AA B AA HA(& A0D DB| ,&A A AW B U ,&4 A0A AEZ B P'$ \AP A ABEBb B q A 4l'0 A0A ABZ A D ' Ap A AB BBC } A W A m A R A h((AC GCCciC B JA\(\AP A ACBBX B o A M A (AA A B D S B B CC AAjAAFB ` ABBA ND A AAAB DAAAA A A8)A0A ADM B G A X),AP A ADBBAbAAAB A P <,*G B AI A BY A B C A BLl*`M@A AFOQM B @H**(*4DA C B A 0+dA A AR A B $D+PA B AO l+0L$+lL A AU D+A@B BCGNE B BJD <+d A0A AQ B CCL BD B AA0, d$D,H!A0D JV A l,!L,#A@B ACEBBPAAC A @(,$LA B BCHB (,$LA B BCHB ((-%A C Bg C T-%0Ap A A B Q B A `I oNAB A A AA IAB A GB{ABAA F A{AAAA B\A AA AL.4*A0A ABVMH B I A 0A|P.*A@A ACYTC B AFVAC A @BLJ B @A4.<,B0B ACQ A L H/,B0A ABX B H B H lT/(-<BP A AE]NL B X B P ^AKAANtBBL//A@A AEGAUAB B @LA00AA A BC F C^AP B  JA A wBCLRFBA D YD AAAAB C AAE EAAAIA BAA A A A03<803AP A ABDc B $(14TA C BN P14t4d15yD u F D D l16,AP B ABO A Ai B GkGC B P B D < 28 A@B APDYAM A AA$L29DB A AJ t29Ap A A D xEaD A p  SAs AAD A MNCMJEAA,3>\A0B BBO L3@>H`3t> $t3p>LA B BM 3>$3>LA B BM (3>\A0B BDM 44>|A@B BBBU $<4@?LA B BM $d4h?DA B BK $4?\A A AS 4?(4?hA0A AHN D4?AA A B D F B <5XFT(P5F|A0B BDU $|5FXA C BO 5 G<5GAP A ABCC^ A $5GPA A AP  6H(AA G ,D6HlA0A ACN B ,t6XHA0D AC\ A 06H`A0D EJ B l6JAB AB E G P NVAN A  QAB AAAPH7LKA@A ABBf A P B q A $7LHA A AN 7LA` A ABE I BPA Ac AE B xL A `  BB AHT8O ABA BI m B 48tpA0A ABV A L 48pA0A ACM A M $94qpM A AL $89|q\A D AN $`9q\A D AN L9qA@A ACBCfAAB A @89rA@D AFBfAB ,:8slA0A ACQ A $D:xsHA A AN $l:sHA C BK :s h:sA` A AEB AfaBBBB B `  HCN;(v$(;,vHA C BK ,P;LvAP A AB[ B ;v$;vdM D AF  ;wAB B $;wLA C AM $<,wLA C AM 0<Tw,D<HwA A Aa B C 0t<wA0A ABZ A H<xPAP A ABDDv A O <yAB A G B A @BAAAAB B  rB B  TB=p} =t}DA0B M ,=}TA0B ABN ,>}TA0B ABN H4>}B0A BBg N 0D |>~AP A ADBCW`AAB A P JAABL BBA A EF0?A` A A Bd A @4?pAA ABDEj B (x?ԃ@AA K A A (?AD CZ A t?\A@A ABFBBmBBC A @C A @T AAC A `H@xA@B BDn A P B D B M d@ІEP A ADJ A EAQSBBC A P AAJO<AAp A A BF BU B DTAA@A ADBL A O A AE@C EU D @CCNC A @JO C B HJFFKHB A @AAJDGAAA0DBpA A AQ B E PxBdAB GD C g B JV  E H 4BA A AL A F B 4ChA A AK B F B `A;=<;9GZA>=<;9PA>=<;9BA>=<;9dC=>B;$AB D Tn>PA0A ACBbAC B 0G AB B SCn? o?\AD Q P,o0@A` B A FKBUAI B `  AAIAo@To8AAP B ARCYDH B VHXAVZJBeBWP]ACDDAACBEJBHDBAAB AE CBDCDDAAJAALAAAYDAJAAYDAA\AAC BE CBFAAC BD C BD B AF C BB I AA C BB C BB B AC  BC B AF B AF J AA D CD C BD D BD E AD F BD C BD C CB C BD C BD B AF B AF B AG B AG B AF B AF B AF B AF B AF B AF B AC BAqPH$qA0A ABW B 0>xA0A ABT A ?gD ?mD ,h@pA0A ABV L@iD  hTAQD E A$A\A A BR ApAp A A C BEEY A P B ZuH A p  HDBI C PF`DHA` A A BECT A CB| AF B E CE A x AF A A CB pG A` A ADG L A_KT A `  X BB BD H`IAP A AFb A F DIA@A ADL A BTE J J (JHCA F B B H,J $\8JlI0D CJ J tJ@DD D JJAA AC D EH KJ B  A S}D AB AAB sOHAC ADAB sCFA A At`N ,\NA0A ACZ NNN,NA0A CDX A ($OhA0A AM B ,PFBB=MAiJ A A@AC\A@A ADO ($p?A0A ABv H%4@AA ABI T B I i B F B BA h\%xAAA ADBE CT A A`AJW A ADAHA A DB%D`A` A A G B AD BFCCARAAAAB CBBaA AAA BAAB FBAAAA 4x&E A@A ACBq A ,&FA0A ADo @&LGAA A B H V A AI A A H$'GA.-A A('C,+B&%B$#C*)c B p'I A.-C A,+G*S A Q()A&'B$%A#a BAAB K AAAB v BAAB  AAAA ]A()A&'A$%A#($QA('A A&%I$"CZ A K !AB#[ AAA F AAB d AAB RBAD#GB#! A AAA F AAA G AAB W AAA FAAB !AA#( V(V(U)U)U4,)UA A A` A F B ld)xVA&%C A$#G"S A Q !A AB E BC ^ AA X BB aA !Al)Z\A&%B A$#G"L A A!N A D B n BgAB!EA !AC AA AAD*\|X*\$l*^*^0*h_A@A ABC` <*_`A0A AM B XG A A A S C `+`AP A ADH A _AGRAAEBJAADDA<l+8cA0A ACGN G B AE (+c`A0A ADP $+c@A A AL (,c`A0A ADP ,,(dT,@,ldA@A AC` B p,dAP A DDBCCV BF B AAF B P K CC A T AA BAD A P J-TfI` A A CC DVDBqAB A `  ZABKABC B `  LB BAA I4-|hA0A ABH A Q `-h0AB ABGSUAAK B DCLT.iA@A ACIQB B @D 4.iI0A AF A AL A Ax.8jlA65B A10B32D+T B H/J-.A4A,UAABA4/.-,B AAB AAC./A,-A4LX/,mA@A ACNOF A @D H/mAP A ADCC` A P |/Pn\AP A ACBFAyAAAB A P M AAAB B EGG ABAA t00tP(0ltA0D Bn A t00uA` A ABBD VF B E A JF A `YK(,1}A0A ABh (X1 ~A0A ABg (1~TA0A ABO (1~PA0A ABN (1~A0A AB^ (2LA0A AB] (42A0A AB^ (`2A0A AB] $2x0A A DE 2242,82ĀA0B AB\ B E A ,3H(@3L\A A CEGE l3HA@A BFFC A @AF BC B CEBD B @SABAH3@4DDP A BDDLAC A P KAC A P CFQAABJBBF 4<|AA B E B E BCBgAAABAB B  yD A B BBD,50A A CJ A G C E A C C Xt5Ap A AC C eEA_AAE B Xl5܈5 5|d 6XK` A DDWDBB mAAE A ` AA tt6A0A CFHUBH B 0AE B 0YAB B 0KD @6AP B ABDR B B~XsA407T Ap A D BC EB ALcPD B p  JAC B p  PLAAAB A p  c C a A C A K C R_S D m A QRAh B G A K A M B B C M C S K BABE K B C W C GBA^ A GL B BABm D h8̚<AA ABDGP B AHHBAJ B  A EZFEpFfBbR AA BAABLK A H A AAAAAEyAFOSXAAAFLGCAAO A GA8p9Ap A A B Dh A 9(h9̨$AP A ACBEBBAVAAAF A P G AAAB IT,:A A AEIB A  N C C BB B  0:A A AY B H :\AA ABHD Hx A AL A  AE D CMJB$@;\F B AG h;,(4|;@|A A AO B G A X;A` B ABBBBB cAAAAC B ` E <,X$<pp$8<̮<A A AK `<AA ABFT A JIB BXABT CAADA H AAA pAA A<T)A.-A B,F'C+A)B#LBAI B B+)#r$C*G%&B(FA&L*c$%C(qAAT A KAAB+)#A*B(A&R AAB R$%YAAAA*(&%$~ AAAA ID(%$Q(A$% AAAA  AAA ED(%$wA*OAA&GA*(&%$R AAAA S AAAA RC%$XAAA*(&%$TAA*(&%d B XA*+A()A%&A#$K AAA >4L>A0A ADF} F B KD A 0>Xt>tAA A I BR AAAK B V ABD BBaAAXBAA XBAAA S BAA MAA A A?? 0?A A A^ A O @?,A@A AM B EDA AB A 4@tH@x\@hTA"!A A HM B GH E B BEAAiAA BAAC - AAAA % AAAA DAAAAlAAAAC ABAB  BAAB @AH0TA A B FK B L A 0A| A A CQ B L A (A pI A AL A (AD A C B[ A $B <A B EF $=B@?Y A DBCWBADHEFDAACi AAA HFEDCBANAABAFEFBCDAABFAACEFBCDAAB AAA  AAA AEFACDAAB` AAA G BAA p AAA H AAA   AAA Ho\`,\oA A ACV B AC hoA`A A PABKTJ A P AEx B A A HADo8AA,+A A*)D&C(B$V A C'A%i"#A!_D AB E AB i"T#@K"#dR "#A!C R#"HD#"!FAM#"!BKBA'%#"EJ#"Ep#"!DN#"!GL!F#\"]CAP#"AA"AA#"!JIGBB'%#"!AAA#"!G AA IP#"!ZSA"#A'A%A!AZ#"!E0@q|'A0A ABCYE A Ltq'4A@A ABBBs AA BAD A DAA,q(A*)A C&I%A'(L#H!D$^"B LAAAAH A ('&%*)AAB('%#AAAA('%$#!Q AAAB T"js SF" S AB HABAAAB('%$#"! jDA"D LAA" JdBA  A QF KDHEJNA'(A$%A"#A !AANOGr5|AP A DE A BDWCWABK A B CA A P AAAAA(xs68y A AM A $s8R A CH $s9lF B DL ,s`9xA0B ADU 0$t9A A AENB B BDXt94lt :HtT:<t: t: t:8t: AA A ER B BEAA H AB N H H B]AADAA AADAAB A AA\u@<\pu<AB A C BD NTji B  PrBL A GH$u?lC A AQ Dv?A0A ACMC B 0JPLAdv@DA,+A A(C!H$%I*A'|)D"#B&xAAAJ A *)('&%$#"!,+bH)&#"o AAAB RK"#A)K& AAA |A"#A)A&oBAAA*)'&%$#"AAAA*)'&%$#"QA)*A&'A$%A"#OAA|wS@)AAFEA AA@C=BDH;N A F?]CHDCLB>< AAB XAACB?><IABCB?>?A<4xX|L@Hx|PA B Ce A J B M A CIx}HAA ADQ AA G ^NAAH A  E IGAAA LDBAE A AAA BA AA 8(yLA@A AID\ B AI A AdyAA AC BCA B  BAAAB A gAAAAC B  <y@K A A_ H  G A 0(zA0A ACB\AB \\zXAA A CB FB sAJ B  AABA z<AA ABFNAABAJ A L |I @ AAA F A HAA ALX{PA@A AFOV D AP A @B C J{A@A AEDEF_GAB B @EACB A @AMD B @F4|Ap A AG N B BD BB B^ADCBB dABAAC A p  p|(AA AB \ A B EBA AbAAAHB DBA A AA00}TDA A AH A D d}hTAA AHDDI B AB BI eM lz BAA A AAA H Fe ABAAA AJAA A A~Ap A BFFC A p A BBD L AS n AAAAA G AAAAA BPBABAB a A T` F~H~D~8 ~4<8xA0A BE A AL D A ALDpA@A BE A ABBO AAD B UAA(,,A0A BCZ ,A0A BCZ PܖHA0C ADEgC B 0B C A P\З,ppA0A AEC`BB A 0HAC B 0H AA l CB A 8L,txA0A ABS B $(A B A[ A ,P,A C ATJC B (̛A0A AB] l08A@A BJ A CAAh AAC A BAAC A @AAA$<A B AJ \DAC A D V A G B AE AAA FC D A$̂`PD 4\A@B ADT B 4 A@B ADZ B X8lAP B ADB[ A t8hKP A ABEO 0AA ABO B A GR B GA A IMA NAAB BA JAACAAAA CCAA AAAAA A AA A4ԄTA@A BBDc A , 0A0C AHR A L<DAP A ADDEX C A ^F ا$T`A0A AK B ,ȅA B AU A F $,A A AG 8  C0A AD_ D 0<\ЩD A AN D  K A <@D A AO C  K A ܆Ъ̪,$dA A AU <,(A0A AC_ A O A lDB0A ADO C 0M A 4܇B0A ADP B P l`A@A ADM B AEC\AJ D B BD B @AAATA@A AKWf A @AE`BH ܈h دA C V B (ıP@<J@A ABF[ A E 4DA A BG A FN B B B iHl̉`A0A B_`C B Q^R A 0ACB B 0B<е@ PGD C tX\ԶA0A BHQA^AC B 0BB B 0A AB AA ACT B GBBSlSAAAC C  B  A  C H C i C KAAAAY A s C A A J C D C <(G0A CE B CAP BB B DA@A BCB_ AA B AAC $, tQ A AI TpAA DE A BCB G A Q mTBAAB A  H` B VD BAAD B D HB DBA @`A0A AB[ B D B F (XTAC M A B @A0A ACBS AB B ABB A XȍdA`A A PABOj C EO B P ACJ B AB8$@J@A CW G @d`A` A AB DD_ B KA ^ BB s BA M AB E AA EA A|Ȏ AA AFEBAB 1 BACAC B 2E A  (HtDM C Bc A tPAA AG EQ B CB  BCAM AB AA^ CAB SAFG AA AA D DA ALX0L(D`A@A AHBBOkAAB A @AAAC B @CAAB A @} AAA AA ABV A DB_ AB K BA BC JzAFfAA ABAACAADA AP DAAAAA ABAA AD D FUVK A  r B FK DX AB A AA BA A0,DTA0A ACN  t($AA F ,LA` A A DK B P B ABBH^ ABB M BAB JRAABA AAA DAA$88tA0A ABP A F 4t A@C ACBX B A` A A FDDD Y F B KG B `  AG B `  Z B ` D Q A `A@A AIIAJ\AAP B @DD B LUABCA B @CAA A @HBAABA AAA A A B((\A B AM A $TPA0A AH A |pP40(̕P[0A BBO T,AA ` B Q C A C A C A C A C A ,PA0C AEO A 8xA0B AFJ C A AD `ЖTAp A A P A A BCDB ~ AAAAB  AAAAA (4A0A AC^ 0`TB0A ACBWAC DAp A A BC BK H BBM\BC E BB^AAB EAAAK A p  BAAB N PAC JRM A BAAAA HAAAAAA AAACAAAtD AP C AEIZCB_C B P L BB mBANH`BBNC A P JBGCB B P CEZCBAD AA AQBPWAJDLLG CB MIAKA]BAKM AB ARABPJJB B LLJRIL A HCKCטCEBBCDAAB B D؜A"!B ABDLEB B[L AAAAB \BAAAI B R LK BAAA AAAAEA AAAABA AA AFHIARMErkAAAN A AAAH^ BADB i AAAB kQBJfNDVJAAAAMAAAAMAAAJAAABAAAAdHA"!A AGM A L AH AB UUBB AAA HBBm BAAA g AAAA F AAAB KPAAC OyAAA AAAAB LLAB MKHAAAA W AAC \NM AAA A AAA (4AB AB CG C DB x AAA EBAJ B  TL AA A :AA A D G A]CH A  A CB bCDF A  BAE B  EAAA BAAt <A` A A DL A A` F A A\{EBxArBAAWB@@,EP A BECAWAAF B P A BBD A H B P B@AhAA A B D Q B C s B DA ԟC@D,C|A@B AEAAKAAC A B 0dDAA A B EH R AEA\ FAK A G BUP N AD Q AA BA AHAA AB JFA H AH A eAAHAAI B  LAAAC KAAA BAC GBAB ABAAA CA A AA pTJAA ADJGRF B AN A `ApQ(R < R,PG9GBYAB=<;ANAL B BA@?>9DCF=bA0A ABP A E A P B x>$PAp A A CG DD AbBBT B p  JAAL B^CA PAA[ P AA AABA AH?AA ABHB  B $\?0A A BG $?8A A DG (?XA0A ADN ,?hA` A A HU B l@$AA AB CF U A e A a BA oAJ BAN CA A 8x@A` A ABD m A h@h Ap A A B IM_K A p  LFE A c A DAt A|AA A H M B A E O bAH AC LBB CE YA E A BCB A <A$A0A ADY B N B A Bp A ACC BO A ^ B a B p  N A tB HB A0A AGMC B 0F B B D,BXAP D AES B CC 4,C|A0A ABQ B F <dCA0A ABR A G CHC<C0C$CD D@0D,@0DDA A Am B B |xD$`AA ABJ C ^ B CE G ZBDO B AAB TAA HA AA DDA A AN A DQC B  F @EpTEpDhE ABVUA ATSBRQLPONMLK EdEPLELB0A AM A CACA D 0(FAP A ABDUXL B DHVVBPM|@A0A AEO B A [B A 0FM(A$,M`A0A BKMF B h B 0YL A 0H{\}YFP A O A 0DCA A AS B I 0CA A Ae B G A (DDpG0B A} A O A 0FB D 0J A LgC A 0JU B A hJ B 0DI A 0Q A Y B qKB A dDKW B R A Dd,K$AP A ADKB] AA A DK B P AAAHpLA` B A DK_MN A TATNE A AENB B  E C  C A  P8 OA@A AHE[ B A FJ C @AAO08OA@A BBBm A h܅QAP A AP]L B CISpWBA\J C GIABAFAMDCHUA@B AC^ A RANAE A u A Za DB A BPVEAB<Ԇh[A0A BBL A E A `\A0A DBL^LC A 0AD A 0A BA ]A,x^ A65C A43B2 A < _(Ap B A B D^ B A MH CF _,D`AA ACEy B (DpbAP A A[ B 4pb8AA ABHv A $cHA0A AM A Јc$cLA0B AM A  d$ dXA0A AQ A (HDdXA0A AQ A tpd0 d`A D Q A Dd8 A` B HI AAoAAF ,nA0A ABh X$@oAP A ACBGWI A K A HL B ANC4|pAA ABDV A HpB"AA ABDEi A q4qHd,qAC UBBDBAAAAG A AAAAA,(A0D ABo Tċ؂A@A ACBJVM A K A BQMN4HAA ABDV A DTB"AA ABDEn B <hA0A ACXC A 0I(܌LB A ADEC p Ap A AB B BBBCAAAAC A p  nx|BP A ABCCDWBAC A P KAAC B P DTA&%A A C"!L$#Dq A @4lTЋAP A ABBBBRAAAD B P FAAAB <Ď(A&%B A"D$#V !KI B C !D4A&%B A! D#"WB$PAJ B CA$DL0A('B A#"D%$Y !B&OAK A A !A&PȎA*)A A%$L# P'B!"B(B&cAAL B J!"A(A&X\A('A A#"BG! S%B&B$BdAAO B J&A$AD|Xd lA D c B B C ] B LPA0A AI B ACECC A 0BFD (\A0A ABQ \0 A0A ABEQAC A 0F CA B LACF4A0A AG B BTB (ȑPA0A ABN @(Ap A A D U vS A T \h JA 88DA0B ABV B Z B t$A@B ACRIlAC B @I A I A I A @AE A A H<Ap B A B U A A S B F B F B F B F B F B F B F B F B F B F B F B F B F B F B F B F B N B O A T B BPB F B F B F B F B I A MXA E C AHNEAA ` B F B F B H[A K A F B EFAA B A FBA EAF A IBPAטIJBAA A<HAC A K D BBIE BFD SAAAQ A  A B A AE g AAAB |A E B AAAI AE FHM AAAB AG`A AAA AAA AAAA AAAA04HlAA A B D A h<AA ABDIFNEeASK A OADhCEJf BA ` AA BAAA  A` A A JDDJOBH B `  KBA_ AB O AB BAAMCBAAANAAAAAABAAD$ AA AB F Bn A ,AP C AFZ A 8tXAA AD F DP A RJ B  l B E A AC G C JAC h B Q AQ A sABAAB P B TB RF ^L g AB F AAKAAA HAA A AAA BA A A PH\A` A A G JWH A `  WC AC CA ȺĘP ؘAA D ,\A0A ABQ \,|A*)A A&B$C(O A A'B#O%OBAB'%#DC AB SA'A%A#,8hAB AT A p ЙlhD l(AP A BBCERB~BE A S A P F BA CApTH TDA` A ABD C` B L B LAP A ABD^ A J B @l Thhl|p@tA0A AELH B J A B <ԛA0A ACg A H B A` A BO GB BKoAAF B `  BAAD B `  BAAD B `  A$̜8A A AJ A` B A BCDA AV BAG A BBAE B HA AE BAF B B BBD B EAAB (HA0A AEI (̝XA B AEIC $<8A A AJ ( LlA A AV A ,LXA0A ABP ,|dA0B CJ B F  ( ԞAA D   $(8dL@4d0lB BA BR A (h@A A ADEC \ȟ|AP B ADMBJJABD B HVSAAAEAD(A"!C A BDF` A pdX$H`A B AO A HĠ@A A Ac B F B S A H A (t@A A ADEC \<AP A ACAAVBS AAB A AS EAAB A 4AD , 0̡8A0A ABa B  (4<(A@A ABEx B t8TA0A ADBNAC A 0ACB A 0AA$<0AP A ADBZ A 4,HPA B AH D C x,AC Q B P L8 XAA ABD] B H \ pdQB E 8$(8|PФK A AKHB F  H B  GC A B,$PAP D AB[ A ,TAP D AB[ A , A@A AH[ B , A@A AD[ B @A0B ADC] DC A AAB P(,AP A AS B BJ B V A C B Q A P B B B UA(|\A0A ABQ XAA AB HEGAH B  CAAV AAAB A AAAB JAM TC iBAAPAA MBAAC A  B؛ ABAABF A AA SBLB B AB FLC AP BHAAA AACAA ABh AA AKW A B U|FH A G A A E JDH TAC@JLDך E F J AB K AA PA PRCIP QD O ]M A DAA A AA A B D|UB D l \AA AD ^ A BO A A A l B L B b B A Kk DBAT hA A|XA0A ACO C B FD B 0Af AB BCAAGAXxAC AV A zK A FUPBAA]g AB DA(HAP C AY B ,tXAB AX B ,hA0B ACPB ,ԪA0B ACO B `,A B C,$pHA B AF B E TA B A$t4A B AF A (TA C AI B (ȫ4DA B AG A ,P\A0A ABQ $$4A A AI 4LdA A AE B ALA $8A A AJ d4AP A DBCBL[BCAA A P D B P `A A AH C CWC A C A  DC A  D,x4pA0A ABV tAAA AD HC G RA rAL B B D B^D TB D CE A AB pAA ] BC MA AH\ P\` A0A AIRF B G A 0C A BT 8AP A AJZH A P AEA NBA BBA, AP A AG\ B $8 LE A BH 0` AP A ABY B 0H AP A AB[ B 8ȯ dAP A BDcPN A NHAA ABP A ABT AB vAA8PdLAP A AEq A x (O.)Л؛(08@HPX`hp8!(xX),(,(Я(ȜМ؜P(08PhН؝(H`px@I(О؞P'X)(08@HPX`p A(Пh' (0((@HPXhxȢ)Ƞؠ( 08@Phpȡء (08@P`hxȢ (8HPX`px )ȣУ 0@XpȤФ 0@P `xХ(H`Ȧئ 8H0D)X`hpx*Ч(08@HX`hpب (08HX`p`hpa Pw)AA   bb   ccС wdd @ dH СX p   ee*  E   @ `   9(((HffX`FFXgGGh HIX`p'llLL 0XpmMMnnNNP`ooСOС8 @HxH @qqPxrriRRСssSS(@PxttTTСС(0uu@Hx@(v8VXxxXX yy@0YPX(())(Hh p!* 0Xh Ph(0HXhxHXx@0`p0Xp @ 8 @ P      !(!8!p!!!!"0"P"h"p"""""#(#`#x####$ $0$`$p$$$ $%  %@% P%h%p%%%%%(&0&h&x&&С&&P& 'P0'`'x''''''( (8(p((((((( )0)8)`)p))))))*@*0*H*p*********+*+(+*8+X+*h++*+++,,,,,С,-@(-----.8.X.Сh..@..С../0/H//////0H0X0x00000 1@1h1x11@11 @102 @2x2 222233@3X33333 484p44PhXh`hhhph xh h h h hhhhhhhhhxI(М+3x<О= >?@P'ACBDX)Eءa0FhGhghox$8%P&hOQ1`vvvvvvvww wqqrr(rP8rPrhrxrrrrpr5r6r7r8s9(s:@s;qqrr(rP8rPrhrxrrrrpr5r6r7r8s9(s:@s;qqrr(rP8rPrhrxrrrrpr5r6r7r8s9(s:@s;qqrr(rP8rPrhrxrrrrpr5r6r7r8s9(s:@s;qqrr(rP8rPrhrxrrrrpr5r6r7r8s9(s:@s;qqrr(rP8rPrhrxrrrrp-./Њ0127340@r5r6r8r9H:X;p<=>?CȋD؋Eqqrr(rP8rPrhrxrrrrp-./Њ0127340@r5r6r8r9H:X;p<=>?CȋD؋Eqqrr(rP8rPrhrxrrrrpr5r6r7r8s9(s:@s;qqrr(rP8rPrhrxrrrrpr5r6r7r8s9(s:@s;qqrr(rP8rPrhrxrrrrpr5r6r7r8s9(s:@s;qqrr(rP8rPrhrxrrrrp-./Њ0127340@r5r6r8r9H:X;p<=>?CȋD؋Eqqrr(rP8rPrhrxrrrrp-./Њ0127340@r5r6r8r9H:X;p<=>?CȋD؋E ''''ȫ''' '8'H'x'''Ȭ''' 'H'x''''X'ȭ' p8(.-@-,%p,+*X'''''''' '0'@'X'p''''''''0'H'`'x''''''' '8'P'h''''''''('@'X'p''''''''0'H'`'x''''''' '@'X'h'''''''''('@'X'p''''''''8'X'x''''''('P'p'''''''('@'X'p''''''''0'H'`'x'''''''('@'X'p''''''0'P'p''''''0'P'p''''''0'P'p''''''''0'H'`'x'''''''0'H'h'''''''('@'X'p'''''''8'X'x'''''' '8'P'h'x''''''''0'H'`'x'''''('H'`'''''' '@'`'''''''8'P'p'''''' '@'`'x'''''''8'P'h''''''' '8'X'p'''''' '@'X'x''''''@'`''''''0'X'p'''''''('@'X'p''''''''0'H'`'x'''''''8'X'x'''''''8'X'x'''''' '@'X'x'''''' '8'P'p''''''('H'h''''''('H'`'x''''''' '8'P'h'''''''('H'h''''''''8'X'x''''''('@'`'''''''8'X'x''''' '@'`'''''''('@'X'p''''''('@'X'p''''''''0'P'p'''''''('@'`'''''' '@'X'x''''''8'P'h''''''''('H'h'''''' '@'X'p''''''('@'`'''''' '@'`'''''' '@'`'''''' '@'X'x'''''( (@(`((((((8(X((((((((((@(X(p(((((((8(X(x((((((0(P(p((((((0(P(p((((((( (@(`((((((((H(h((((((@(X(x(((( (8 (P (` ( ( ( ( ( ( (8 (X (x ( ( ( ( ( (8 (X (x ( ( ( ( ( ( (8 (P (h ( ( ( ( ( (( (H (h ( ( ( ( (((0(H(`(x(((((((((H(h(((((((0(H(h((((((((8(X(x(((((((0(H(`(x(((((( (8(P(h((((( (@(`((((((((0(P(p(((((( (8(X(x(((((((8(P(h((((((((((@(X(p(((((((((@(X(p((((((((0(H(h(((((( (8(X(x((((((0(P(p((((((((8(X(p((((((( (8(P(h(((((((8(P(p(((((( ( (@ (` (x ( ( ( ( (!((!(@!(P!(h!(!(!(!(!(!(!("(("(H"(h"("("("("("(#( #(8#(P#(h#(x#(#(#(#(#(#($(($(H$(h$($($($($(%(%(0%(H%(`%(x%(%(%(%(%(%(&( &(8&(P&(h&(&(&(&(&('('(8'(X'(x'('('('('((((((H((`((x(((((((((((()(0)(P)(p)()()()()()(*(0*(P*(x*(*(*(*(+(+(0+(H+(`+(x+(+(+(+(+(+(,( ,(8,(P,(h,(,(,(,(,(,(,(-((-(H-(h-(-(-(-(-(-(.(.(8.(P.(h.(.(.(.(.(.(/(/(0/(H/(`/(x/(/(/(/(/(/(0( 0(80(X0(p0(0(0(0(0(0(1(01(H1(h1(1(1(1(1(1(2((2(H2(h2(2(2(2(2(2(3( 3(@3(X3(p3(3(3(3(3(3(4(4(84(X4(p4(4(4(4(4(5((5(@5(`5(5(5(5(5(5(6(06(P6(p6(6(6(6(6(7((7(H7(h7(7(7(7(7(8((8(H8(h8(8(8(8(8(9((9(H9(h9(9(9(9(9(:((:(H:(h:(:(:(:(:(:(;(0;(P;(p;(;(;(;(;(<((<(P<(x<(<(<(<(<(<(=(0=(H=(`=(x=(=(=(=(=(>(0>(P>(p>(>(>(>(>(?(0?(P?(p?(?(?(?(?(@(0@(P@(x@(@(@(@(@(A((A(@A(XA(pA(A(A(A(A(B(0B(PB(pB(B(B(B(C( C(HC(`C(xC(C(C(C(C(D(D(0D(PD(hD(D(D(D(D(D(E(8E(PE(hE(E(E(E(E(E(F( F(@F(`F(xF(F(F(F(F(G(G(0G(HG(`G(G(G(G(G(G(H(8H(XH(xH(H(H(H(H(I(0I(HI(hI(I(I(I(I(I(I(J((J(@J(XJ(pJ(J(J(J(J(J(K(8K(`K(xK(K(K(K(K(K(L(L(0L(HL(`L(xL(L(L(L(L(L(M( M(@M(`M(M(M(M(M(M(N((N(@N(`N(N(N(N(N(O( O(@O(`O(xO(O(O(O(O(P( P(8P(XP(xP(P(P(P(P(Q(8Q(XQ(xQ(Q(Q(Q(Q(R(R(0R(HR(hR(R(R(R(R(R(S((S(HS(`S(xS(S(S(S(S(S(T(0T(HT(`T(xT(T(T(T(T(T(U(0U(PU(pU(U(U(U(U(V(0V(PV(pV(V(V(V(V(V(V(W((W(@W(XW(xW(W(W(W(W(X( X(8X(PX(pX(X(X(X(X(Y((Y(HY(`Y(xY(Y(Y(Y(Y(Y(Z((Z(HZ(hZ(Z(Z(Z(Z([( [(@[(X[(x[([([([([([(\((\(@\(X\(p\(\(\(\(\(\(]( ](8](P](h](](](](](](^(^(0^(H^(`^(^(^(^(^(^(^(_(0_(P_(h_(_(_(_(_(_(_(`((`(@`(X`(p`(`(`(`(`(`(`(a(0a(Ha(`a(xa(a(a(a(a(a(b((b(@b(Xb(pb(b(b(b(b(b(c(c(0c(Hc(`c(xc(c(c(c(c(c(d( d(8d(Pd(hd(d(d(d(d(d(d(e((e(@e(Xe(pe(e(e(e(e(e(f(0f(Pf(pf(f(f(f(f(f(g(g(0g(Hg(hg(g(g(g(g(g(h( h(8h(Ph(hh(h(h(h(h(h(i(i(8i(Pi(pi(i(i(i(i(i(j( j(8j(Pj(hj(j(j(j(j(k(k(0k(Hk(`k(xk(k(k(k(k(k(l(0l(Pl(pl(l(l(l(l(l(m(0m(Pm(pm(m(m(m(m(n(n(0n(Hn(`n(n(n(n(n(o( o(@o(`o(o(o(o(o(p( p(@p(`p(p(p(p(p(p(q(q(0q(Hq(`q(xq(q(q(q(q(q(r( r(@r(`r(r(r(r(r(r(s(0s(Ps(ps(s(s(s(s(t(t(8t(Xt(pt(t(t(t(t(t(u( u(8u(Pu(pu(u(u(u(u(u(v(v(8v(Xv(pv(v(v(v(v(v(w(w(0w(Hw(`w(w(w(w(w(w(x(x(0x(Hx(`x(xx(x(x(x(x(x(y( y(8y(Py(hy(y(y(y(y(y(z( z(8z(Pz(hz(z(z(z(z(z(z({(({(@{(X{(p{({({({({({(|((|(@|(`|(|(|(|(|(|(}(0}(H}(`}(x}(}(}(}(}(~(8~(X~(p~(~(~(~(~(( (8(P(h(((((((((H(`(x(((((((((@(`(((((( (@(`(((((( (@(`(((((((0(H(`(x(((Ȅ((((((@(X(p((((Ѕ((( (@(X(x(((І(((0(H(h(((Ї(((8(X(p(((Ȉ((( (@(X(p((((؉((( (8(P(h((((Ȋ((( (@(`(((((( (@(`(x(((،(((((@(X(p(((ȍ((( (@(`(x(((؎(((0(H(`(x(((((( (@(`((((А(((((@(X(p(((Б(((0(P(p(((В(((0(P(p(((Г(((0(P(p(((Д(((0(H(`(x(((ؕ(((8(X(x(((Ж(((((H(`(x((((ؗ((( (8(P(h((((ؘ((( (8(X(x(((Й(((8(`(((ؚ(((@(p((((( (H(h(((Ȝ(((((H(h(((؝((((P(x(((О((((0(P(p(((П(((0(P(p(((Р(((8(`(((ȡ(((8(`(((((( (@(`((((((0(X(((Ф(( (H(p(((((H(x((ئ((((X(((Ч((0(`(((( (P(x((Щ((((P(x((Ъ((((P(((((@(p((Ь((((P(x((ȭ(((@(`((((خ(((8(X(x(((د(( (P(((ذ((0(X(p(((б(((8(X(x(((ز(((8(X(x(((س(((@(h(((((0(X(x(((((8(`(((ȶ(((((H(h(((з(( (H(h(((((0(X(((й(( (H(p(((((((H(p(((((8(`((((м(((((H(`(((((( (@(`(((((( (@(`(((((( (@(`((((((8(`(((((((P(x(((( (P(((((8(`(((((((P(x(((((@(h(((((@(p((((0(`(((((@(p((((0(`((((((0(P(p(((((0(X(((((((0(H(h(((((((((@(X(p((((((0(P(p(((((((0(P(p((((((8(P(p(((((((0(P(p((((((0(P(p(((((( (@(`((((((((H(h((((((8(X(x((((((8(`(x((((( (@(`(((((((8(`((((((8(X(p(((((((0(X(((((((X(x((((((( (8(P(h(H(h!0P("0@#0X($0p(i(e(i(p(X1/0(8(@8@ @  0  h /X /////X////8///x/`')('0p') ') ')')')ȣ' ) ))I'')') (' ')') ')'()'')`6HC У'()()(()8()H() h(X() oh()ox()o() o() () oh6XC ()'() () () ()( )X ) ':)))) ))0))@))P))`))p))))))))))P<)0=)@=)P=)`=) p=)@=)=)=)=)=)=)()')()')L)L)()')()')()p')L)L)L)L)L)M)M) M)8M)HM)'`M)pM)M)M)M)M)M)M)N)M)N)N) N)8N)HN)XN)hN)xN)N)N)N)N)N)N)O) O)8O)0(8(4 (   3*`4hH/ 8u)Xu)t)s)`s)s)r)pr)`p)r)q)p)p)o)n) n)m)m)m)xm)`m)t)8t)))))ș)ؙ)))))) )0)@)P)X)h)))))Ț))))))) )8( )(('H)IcP7X7ȵ)0()))))))))))) )()0)())))) )H)X)p))))))))0x(8)@)H)P)`) (h)x)))vvv)x)()8)H)X))()0)8)@)H)P)X)`)h)p)x)))))))))))))))))) )()0)8)@)H)P)X)h)x)) ) ) ) ) ) ) ) ) )) ) ) 0) @)P)`) p)x))))))))))) )0)@)P)`)p))))))))))X))) )0)@)P)`)p))))))))))) )0)@))P)`) h) p)x) ) ) ) )))))))))) ) p)0)8)@) ) x) )h)))))))))) ) ) ) () h))))@))))))P)))))X)`))p)) )8)0!*؊!*!*"*"*"*"* "*("*0"*8"*@"*H"*P"*nX"*ph`"*1)h"*hp"*P+*x"*h"*1)"*"*1)"*("*<"*"*p!*!*!*!*!*!*!*!*!*!*"*P)"*#*@#*@#*H#*`#*h#*#*#*#*#*t@**@**ap**p**** b****** s** **F** i+* +*1X+* oh+* x+*1+* d+* +*2,*,* ,* (,*0,*8,*@,*H,*H,*P,* P,* `,*`,*h,* h,* x,* x,* PhPh,* ,*,*,*,* ,* ,*,*,*,*,*,*,*,*-*-* -*8,*-* ,* -* -*8 *8 *8-* 8-* H-* H-* X-* X-* h-*h-*p-*p-*x-*x-*-*-*H**H**-*h-*n-*h-*1))1)@*-*-*-* -*-*-*-* .*.*.*.* .*(.*0.*ph8.*@.*H.*P.* w`.*  w(p.*nx.*.*.*.*.*(0*.*<`w).*.*.*.*.*.*h.*8 *.*8 *.*8 *.*8 *2hKP&*.*P+*/*x&*/*xh'hp)/*  hP)1) /*`h(/*hh0/*8/*(@/*H/*P/*X/*$h!*`/*h/*p/*x/*h/*h("*1)/*Xh/*1)/*/*/*/*/*1)/*/*x)/*/*/*h/*/*0*0*M)h0* 0* 00* 0*  )80* P'H0*-*P0*X0*P0*M)`0*h0*p0*       H/P/(X(p(R/(U/(R/(R/(R/((R/(0(U/H((/X((/h(/x((/(((/((/((((/((/( (0(@(P(`(x((((/((/R/U/z/H~/(//X//X//P/p  HZPXZ`PZ(Z08@hpxZ8Z8S (@(?/^__H^h^P_]]]^__H^h^P_]]]p[  Y8t ȻHI Yp 8 t s Hs `hb T q G q     xp(Z ( X X V h O P ` q x pI xp x h  PXo wh ` H` h `= hS S  xA l J/N/`(?/^^p_8^P^0_x]]]^^p_8^P^0_x]]]p[  Y8t ȻHI Yp 8 t s Hs `hb T q G q     xp(Z ( X X V h O P ` q x pI xp x h  PXo wh ` H` h `= hS S  xA l G/N/Q'A | | xl w ȇ px y 0l ` p i ` . (\ V G p 0 H U pT @T A ( (  XJ PJ  0 0 8 pL  H Ȩ Ш pQ HH N x} L `]/ (oX hP O H I N F>Xs?/^__H^h^P_]]]^__H^h^P_]]]p[  Y8t ȻHI Yp 8 t s Hs `hb T q G q     xp(Z ( X X V h O P ` q x pI xp x h  PXo wh ` H` h `= hS S  xA l U/Y/~?/^^p_8^P^0_x]]]^^p_8^P^0_x]]]p[  Y8t ȻHI Yp 8 t s Hs `hb T q G q     xp(Z ( X X V h O P ` q x pI xp x h  PXo wh ` H` h `= hS S  xA l R/Y/Q'A | | xl w ȇ px y 0l ` p i ` . (\ V G p 0 H U pT @T A ( (  XJ PJ  0 0 8 pL  H Ȩ Ш pQ HH N x} L `]/ (oX hP O H I N F>@8@ @  0  h S (S (S (S (S ( S ( S ( S (S (S 0( @S P( @S h( S ( S ( S (S (@S (S ( S (  S 8(!@ S X("@ S p(# S ($ S (% S ( S ( S (0 S (0 S 0(b ??S P(bS p(r ??S ( S ( S ( S (bS (bS (b S 0(+bS P(5 S p(70 S (8b S (-S (.@S (6b S (9b S (0 S @( S `(bS (S (@S (0S (b S (S ((S P(@S x(b0S (bS (bS (bS (0 S (( S H(ZS h(Z S (R??S (R S (J ??S (J S 0(b??S X(b ??S (S (S ( @S ( @S ) S 8) S X)!@S x)"@S )#S )$S )%b0S )&bS ()'bS H)*ZS p)+Z S ),RS )-R S ).J S )/J S 8)(b??S `))b ??S )0 S )1 S )20 S )3b S )4bS 0)5b@S P)6bS p)7bS )8bS )9S )@S )@S )@S )@S )S 0)S H)S `)S x)@S )S (T)?/^__H^h^P_]]]^__H^h^P_]]]p[x6(EYh ȻHI Yp 8 0 x `hb T  @ 0D@D`DPDxp(Z ( X X V h P ` 0 x  x h  P wh ` H` h `= hS S  xA а Ps/v/T)?/^^p_8^P^0_x]]]^^p_8^P^0_x]]]p[x6(EYh ȻHI Yp 8 0 x `hb T  @ 0D@D`DPDxp(Z ( X X V h P ` 0 x  x h  P wh ` H` h `= hS S  xA а o/v/Q'AX X px y h ` x 8 h . h ` H G p 0 H  x A ( (  PJ  0 0 8 x>I Ȩ Ш HH x} L `/ (oX  H I N F>x?/^__H^h^P_]]]^__H^h^P_]]]p[x6(EYh ȻHI Yp 8 0 x `hb T  @ 0D@D`DPDxp(Z ( X X V h P ` 0 x  x h  P wh ` H` h `= hS S  xA а H~/ȁ/{?/^^p_8^P^0_x]]]^^p_8^P^0_x]]]p[x6(EYh ȻHI Yp 8 0 x `hb T  @ 0D@D`DPDxp(Z ( X X V h P ` 0 x  x h  P wh ` H` h `= hS S  xA а z/ȁ/Q'AX X px y h ` x 8 h . h ` H G p 0 H  x A ( (  PJ  0 0 8 x>I Ȩ Ш HH x} L `/ (oX  H I N F>4 (   3*`4hH/ 8S (S U)S T) S 0U) S HU)S `U)S U)@S U)S U) S U) S V)@ S V)  S @V) S `V) 0 S V) b ??S V) bS V)r ??S V) S V) S W) S (W)bS @W)bS hW)b S W)bS W) S W)0 S X)bS X)b__S @X)Q0 S `X)P S X)RbS X)g0S X)hbS X)iS Y)Zb0S @Y)[bS hY)\bS Y)UbS Y)T0 S Y)S S Y)XS Z)YS @Z)W@S hZ)j@S Z)kS Z)lS Z)mb0S [)nbS 0[)obS X[)rZS [)sZ S [)tRS [)uR S \)vJ S 0\)wJ S X\)pb??S \)qb ??S \)z S \){ S \)|0 S ])}bS H])~bS p])S ])@S ])@S ])@S ])@S ])S ^)S 0^)S P^)S h^)@S ^) (AXgАXM px y   ` X ةd( . \xdq@\x\ p 0 Pd (cA pW؎baH`WMPJ  0 0 8 tx>IhN Ȩ Ш ` HH P_x} L ` / )((pxВ7H I N N>@S x)@S )@S ț)@S )@S )@S )@S )@S 8)S )S )S )S ))?/^__H^h^P_]]]^__H^h^P_]]]p[x6(EYȻHI Yp 8  `hbq pk0D@D`DPDxp(Z ( X X V h `P ` `k x x h  Pj wh HH` h `= hS S  xA C /`/)?/^^p_8^P^0_x]]]^^p_8^P^0_x]]]p[x6(EYȻHI Yp 8  `hbq pk0D@D`DPDxp(Z ( X X V h `P ` `k x x h  Pj wh HH` h `= hS S  xA C 8/`/ )?/^__H^h^P_]]]^__H^h^P_]]]p[x6(EYȻHI Yp 8  `hbq pk0D@D`DPDxp(Z ( X X V h `P ` `k x x h  Pi wh HH` h `= hS S  xA C /8/8)?/^^p_8^P^0_x]]]^^p_8^P^0_x]]]p[x6(EYȻHI Yp 8  `hbq pk0D@D`DPDxp(Z ( X X V h `P ` `k x x h  Pi wh HH` h `= hS S  xA C 8/8/ (AAXgАXM px y  xN` X ةd( . \xdpd@\x\ p 0 Pd (cA W؎baH`WMPJ  0 0 8 tx>IhN Ȩ Ш ` HH P_x} L ` / )((pxВ7H I N F>P)?/^__H^h^P_]]]^__H^h^P_]]]p[x6(EYȻHI Yp 8  `hbq pk0D@D`DPDxp(Z ( X X V h `P ` `k x x h  Pi wh HH` h `= hS S  xA C /0/h)?/^^p_8^P^0_x]]]^^p_8^P^0_x]]]p[x6(EYȻHI Yp 8  `hbq pk0D@D`DPDxp(Z ( X X V h `P ` `k x x h  Pi wh HH` h `= hS S  xA C 0/0/ (AXgАXM px y   ` X ةd( . \xd`@\ p 0 Pd (cA W؎baH`WMPJ  0 0 8 tx>IhN Ȩ Ш ` HH P_x} L ` / )((pxВ7H I N >?/^__H^h^P_]]]^__H^h^P_]]]p[x6(EYȻHI Yp 8  `hbq pk0D@D`DPDxp(Z ( X X V h `P ` `k x x h  Ph wh HH` h `= hS S  xA  /(/?/^^p_8^P^0_x]]]^^p_8^P^0_x]]]p[x6(EYȻHI Yp 8  `hbq pk0D@D`DPDxp(Z ( X X V h `P ` `k x x h  Ph wh HH` h `= hS S  xA  (/(/ (AXgАXM px y   ` X ةd( . \xdpd@\x\ p 0 Pd (cA W؎baH`WMPJ  0 0 8 tx>I Ȩ Ш ` HH P_x} 0` / )((pxВ7H I N F>4 (   3*`4h`H/ 8S h) S P)@S `)@ S p) S )@S )b@S ))@S )@@S ) S М)  //S ) A S ) S ) @S )S ) S 0) //S @)@S P)@S h)@S )@S )@S )@S )@S ȝ)@S ؝)@S )@S )@ S ) S ) S () //S 8)S P) b S `)!b S x)"b S )#bS )$B S )%BS ؞)&S )'S )(S ))S ()* S 8)+S H),@S `)- S p).@ S )/ppS )0@ppS )1 ppS ȟ)2@ ppS )3 /?/?S )41 S )5j S )6j S 8)7S H)8S X)9 S h): S ); S )< S )= S )> S Ƞ)? S ؠ)@ S )A S )B S )C S 0)D S @)E S P)F S `)G S x)H S )I S )J S )K S )L S С)M S )N S )O S )P S )Q S 8)R S H)S S X)TS h)U@S )VS )WppS )X@ppS )YppS Т)Z@)[S )\S )]S ()^S @)_S P)` S `)ab@S p)bb@S )cdH )e)fY S ȣ)gA S )h@)i@S )j@S )k@ )l@0)mb@S @)nb@S P)ob@S `)pqrstuvwxyz{|}~S x)@S )@S )@S )@S ؤ) S )a S ) S )'?/^__H^h^P_]]]^__H^h^P_]]]p[  YȻYY-8Y8(Z`hb0ZePZ8Z@Z[0[ZP[xp(ZxȴYh(8H(08Popw(w0HPxZ8Z8X(0h;?/^__H^h^P_]]]^__H^h^P_]]]p[  Y0I ȻHI Yp 8  0y `hb T 0Z @ZH     xp(Z ( X X V h YP `  x 0x h  Pow(w0H` h `= hS S  xA  C X//H;?/^^p_8^P^0_x]]]^^p_8^P^0_x]]]p[  Y0I ȻHI Yp 8  0y `hb T 0Z @ZH     xp(Z ( X X V h YP `  x 0x h  Pow(w0H` h `= hS S  xA  C //'A  g px y ` ZG p 0 H P > A HA PJ  0 0 8  Ȩ Ш ` HH XH x} L `/ o7H I N 8@X;?/^__H^h^P_]]]^__H^h^P_]]]p[x6(EY0I ȻHI Yp 8  0y `hb T 0Z @ZH 0D@D`DPDxp(Z ( X X V h YP `  x 0x h  Po w(w0H` h `= hS S  xA  C P//8;?/^^p_8^P^0_x]]]^^p_8^P^0_x]]]p[x6(EY0I ȻHI Yp 8  0y `hb T 0Z @ZH 0D@D`DPDxp(Z ( X X V h YP `  x 0x h  Po w(w0H` h `= hS S  xA  C //'A   g px y ` ZG p 0 H P > A HA PJ  0 0 8 x>I Ȩ Ш ` HH XH x} L ` / o7H I N 8@8w/^__H^h^P_]]]^__H^h^P_]]]p[@p[YYȻYYY8Y(ZH`hb 0Ze p 8Z@ZH   6 xp(Zx  h  Y ZZZ(0b@ Popw(w0HP`xZ8Z8@@Qkk/ Q kx/@@Qk)  @@/  @)/  @)X/  @)/  @h)/  @)`/  @)/  @)/  @)h/  @)/  @p)/  @)p/  @x)/  @) /  @)x/  @)/  @)(0  @)0  @)0  @)00  @)0  @)0  @)80  @)0  @ )0  @)@0  @)0  @)0  @ )H0  @h) h HXO.O.o  0 p| oo@ooo$%0p.0DX`0a0"0x0);30Ȣ0:30\.0000 P30U/`40@./((10T@0Т0430آ0/9300(D30`.00X0300;*0000)(C0@0H/P/ 0Pd00000H(( h00<0H00p000R/1/XDW(/07*00؝x!/0@3000 0 0б.h!0.:0000030(0860H0H0 80:*P0#/30(0830X00\0` 9*`0h.080`CXF 80Xh0X000082010x* `TQX`_]ZdXP(PPظ@Ph@b000000`00000@0(0X40)hwpwvxwE@wHwXw50P 8`0 X(XXsx(ؠh( ،@`8@'8` 'H$#puXsh#!(ؠX!)،@`8C8`C@H@9xx?h>(ؠ=E0<،@`80`8``8]\`V{{X\Z(ؠHZbX،@`8|8`|y8yr~~xXw(ؠvx~ u،@`88`p(ȏ(ؠP`،@`8Ȋ8`Hй(ؠ(8h،@`8Ȋ(8`0@{~P(ؠ@،@`8p8`PxHgx (ؠH،@`88`HS!{h(ؠ0،@`8@8`@P;:P/w$75(ؠ.@5xA1،@`8x$he8`He_^S'p\Z(ؠSY fV،@`8x$'+ȣ'##+У'+أ'#@'H(h!0.h"0P("0/#0@#00/$0X($0`/%0R/) ")H& 8') 0$ H')`" P') X')`# h'H- ) &) &) ') ')`')('0H/((0j0gpmip(yu~(xHq` =(P(@(Xz0д))0*0)*0+0),0-0)#0-00.0h00)GCC: (GNU) 7.3.1 20180303GCC: (Ubuntu/Linaro 4.8.1-10ubuntu8) 4.8.1.shstrtab.interp.note.gnu.build-id.note.ABI-tag.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.data.rel.ro.dynamic.got.data.bss.comment 88TT$&xx 4o@> FNoV[o@@j|tBpp ~hhyp XHXHXXXXX?*?*T**O.O-O.O-O.O-0/ 0/@ 0/.0./w0./E./