From f022799c04e21d16ff4f832d0c1e45625ab71b70 Mon Sep 17 00:00:00 2001 From: Alan Jowett Date: Wed, 18 Dec 2024 12:13:55 -0800 Subject: [PATCH] Test for .bss, .rodata, and .data sections Signed-off-by: Alan Jowett --- build/global_variable.o | Bin 4360 -> 5336 bytes src/global_variable.c | 7 +++++++ 2 files changed, 7 insertions(+) diff --git a/build/global_variable.o b/build/global_variable.o index ad71e1a31a2a95db511328cbbe13452ccc41ce3a..bdf46af602026f0288abb9e91ee6ee1624e7fcf3 100644 GIT binary patch literal 5336 zcmb_eO^h5z6|U}{-ksf9Z|q$=yUs$~NxWtgZN}?~Nml;L7{|7(7+4$=;bo%s{PeCT z8qchzXBOL_FeeUy13v*pK_W3iNN|G#k>G$42>E~@2LuRl$N?_EAp|52fXw$**PCgV z8z~2#=1tZ2>itw#y?RxjJ$?R+>o`itQU6pUBvPg3r$_y=?v~X8G~a|W_2=EuID0>x zNifGb#PM7r(*H6(Zw0IFN|bDWb@69>eATp*Xz7A6JTPPU;4$zxI1ioxQ;#luNT^S} zoXR^NQ_e1DadFo77Q1sh=N1-sEzFF?b6;@g;PbHZ7SGKdDI6`h^Kkz`b#4|`_oML^ zDTTZJP&rX3pgVRz505(zwek-EJq7UuH423j=uQ?LdN0r4*qhjYVDGuvr}rvV@Rj>; zBBJfoeVCkj1?($_AAlLZ-}C_7+yMWSPk~*p#Qz=cP31j>UhZl9`OeS%+<49%(__=_ zO~)O-M75pnO(V=ViD%rK-Z+)=ef&+TiHZF9WNv`Ivp(tW{xUiRHRbO98am1^__-;y z${rzT5BMnf0{8{+i{KbM0DlSm4e&LQG77&)+?K>POaJsx2xS|wbqJ?b!b)6T9sPA*=m&3NKy6MadWdBHG*cl zr~3GNq7?R03gJ+@-f71@I+xLEw_Clg!tmsU3nwpy&z)O89bUY&b~+5zM!#KGbXf0Q zQ_J`SCXi4%p+#o3um8nS$Q@0~NIddKnSco~Z8br(gZaxLvRPq=Ap(e)!;nu64Uk#P z@jrk;dFJ|`bXSRudN;w-vRnVLa01mN$0r$7scD{*6md#=E<4b2Y$4Gb#yDu~n2Mxh zz?h@XU|A@B1Lx0{d=fhNX&osmOOT&U$#GmXQD3h;_dst(u@_zIWhKqQQ7%Z*z$l>6 z(srlWcr3skJ{o*l1)wmDuea;rM%1fc39Ic!SZy?x4vai32ZtU#`kpky(sEETy2f6o z(@4bazz5CWr zezX3a;!9V)^^w2-5JK11%(-e}co4l=$M+{6de)yi?(Z2p=KEtOToEbZ1jTXn{mI|3ZCor8_iCov{EWnPPcnecdOfsqssHADi=GQ zR$MvX+P+%3_T=G8t68h)ids3eT4}cHt$riQIv829j0zj~8aOY-E2)%|bHwG!rawcR zQ-8aYHR|bG`RUl4D`b1^Pd3x?8Pu+j75E5^A!;FS` z7tEyAe_)2BCUgCGXYj0&1eY~RFm-uWNgQVl7keHneyw?~VGhZe<%@ts%$l)}07T6C z@dyEknD4IUJQ|({`kUfLfCTSPVcPTlCGmUcU%rR>^j8Lx1g|A< zh%Z}s%fbT-f6>C}{ow_l{$9p^*ywY9%$)-ke$2v8TKHKDU$!vs91>%Zy_`QL1uc2y z6&q2lzZq6*wQjVHOEGFCFAClJ(8V)FJ}-5e=EE+KvK83f7Fxxko`LgnLQ_nRLN|}F@hA?x~DLf6@Osjzh!J0pZB00 zKZJ}vSHNj%oA^IY3(=SO(!P|ErBxp{31RycJJG#?PS*U_%oAnJD02SXYkU3=!lCVx zCYMe8uULs~=idV`&WitriC?BO5aaIz+wpl1WX1o7c?!OP@if`-d9P%}f7`_0GRBNQ z1GeM;4zjHHubP6iWbCC8d%?d(CoBG%sege{WPIM4V$Zc8-3DjHzh&aTrnN?Ywl3>L zR{Sj!KmGlz1$O)wA*0U~aGKWn2m$>fX@>t2U)mpF#5;edgJv*PLg#H0U-paNPZGNX Yp`JltrI;RCG84UR4A`XiPu?5<1xY>y2><{9 literal 4360 zcmbtXU2GIp6uvXF+b;AMskWqxirB4|u+rdv=D~F){HZ=id9B zpL_1lx%bYzxNmAw*EGSTi5nt9EEVFbl~H>lXikWJviy*YVc(}mdbB=Y9b)LAf<6_B zg0iWXvNvQ6x3tIveZoE^GTLK8Tcr&Q^rVdeueZB*?ZB$Ft6TiuGg>e8y+arS2YSZZ z#@qBhA&i~kKo5DXp~@J5l)BqYCJ(o@QL`nh!FQtXWPhl=r~g3D?tUR!(?Z`Eir}B= z!f>2mELsL_O{^DTi-4|AQwe!HkdZ^#uAdji{nSeBrXsCV!_QX6g;O;bnR@3tgN_|RcttJIVU1R z(Wv^)Ow}%%PPHx?RNR-#*JB3xoTxOaB>{D*eq5}h0b$pe;yWG6-uzt?v_Ap8O(poZ z5Ta~m52Z_oK?39yST2c%9!(Oh2<7cf2O(Cpkn96uqD(6lp9D?8KH}>Tck=Rnr{JFn zQ-8sp^BfQlu}}xI!89@5VBXofeY~Eu+S{W=3%t~b1@IXoV1+-=(#^?&<@W{W=M z81~7eIfL$yJVo^}Vi4A+lNfsg!rF8bLl&$P)$ki577vE@z&J4J2_Xil20jVAR|paX z_yX|$@Ic)nqH`}Yr`iG?shWg-Kxc@NaX6zHO}p9IAv7XF#MIb;BocH%h-ZlnZG+yG zzRP$G!b=al^3u-t3N4M%O&5Q;dHK})B-4H{)_!yS+fTngdMW$D>|2li{V@r3)iR~i zp+y%Uqf<+#SKfW_Azi0{|8l1Gj9JrOZN@9inUfBkNb8VO@@jsqQa6t{exu-;Pt+S_ zr)K4bb2)2YwQhU!p5xorkv-PoTFv#XDR*JcI=*X%lW5f9+m)A&~5`W!F(i+h*ZmOTBme$OSC`WEcIp+-5a5Q4}z)S|; z1}u=ZA#ejMCnGq)NpgA$637Uy^W_Rd;8j{q#@ za6UkcS&wwa-L?u!B4Ft7RDgini8lZc0prQu1V99gRf_kA`wc!I=z(#TL5y)$L5%qh zXN;R4#Mlf_gf}ag=g0O#ik`=ZV}|wM@i6B2z~Fa@LC7E2UjZOu%>4tyeu5apnD>G4 zu|ON?=M@}Z4`h)#o{iET^XnkqqTp=`-lgD!3O=S_+?ycG1#F~5wrm$0Gx)CGjJO!;s4o_zBR!JkbR&pJ`?uTZfqhI&(wMxaeA;u#hZAs2e*Qwh10Hb#quUz(G zmq)xur&_6rtV=f+o;3PGnTc!BSsYjBcC^EHHF}%)F3M8WdZ8$?{)xGu#sFwivB>l> z^8e{atYtzspW#ptrEnl)q(DI*jlr2!Z=wn5!+FMCaGo>9#|J`9ut3&}IP^qjP=@)2 zeP@3@ABUt&ox_s!V|xjg-LS}0bxyElfAvOFZGlx8{4by&S_rFVsoI_)jVgojIw_oM zdWH?v_Ei!mt=~Dhe!TuTuMqKi@cQ9^ap{Y_*Z2hQyL>azBSeO>q(}B2t2xFpv3@1g&Lp!0Tbi@Bm+%LSH$lo zR^#J)F)99%3^XYHxnh6Dm#L97|6vG;%%BXc}LWvKgFLNqHKP{s2H^8x(>YB8xN diff --git a/src/global_variable.c b/src/global_variable.c index 692e8cb..43edc98 100644 --- a/src/global_variable.c +++ b/src/global_variable.c @@ -9,11 +9,18 @@ // to prevent the compiler from optimizing them away and must accessed // using atomic operations to avoid race conditions. +// Global variables with initial value of 0 are put into .bss section. static volatile uint32_t global_var = 0; static volatile uint32_t global_var_2 = 0; +// Global const variables are put into .rodata section. +static volatile const uint32_t global_const_var = 10; +// Global variables with initial value are put into .data section. +static volatile uint32_t global_array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int func(void* ctx) { __sync_fetch_and_add(&global_var, 1); __sync_fetch_and_add(&global_var_2, 2); + global_array[0] = global_const_var; + return 0; }