From 352d2b3b2ba2c8cdc685c21538b5dd78cc8c3eb0 Mon Sep 17 00:00:00 2001 From: Timo Beckers Date: Fri, 13 May 2022 15:03:07 +0200 Subject: [PATCH] testdata: loader - declare constant in custom .rodata.test section This exercises support for constants in custom .rodata* sections. Signed-off-by: Timo Beckers --- elf_reader_test.go | 14 ++++++-------- testdata/loader-clang-14-eb.elf | Bin 10120 -> 10440 bytes testdata/loader-clang-14-el.elf | Bin 10120 -> 10440 bytes testdata/loader-clang-7-eb.elf | Bin 3152 -> 3168 bytes testdata/loader-clang-7-el.elf | Bin 3152 -> 3168 bytes testdata/loader-clang-9-eb.elf | Bin 10016 -> 10352 bytes testdata/loader-clang-9-el.elf | Bin 10016 -> 10352 bytes testdata/loader.c | 7 +++++-- 8 files changed, 11 insertions(+), 10 deletions(-) diff --git a/elf_reader_test.go b/elf_reader_test.go index 3cd8c3717..51ea6fe48 100644 --- a/elf_reader_test.go +++ b/elf_reader_test.go @@ -154,13 +154,10 @@ func TestLoadCollectionSpec(t *testing.T) { cmpopts.IgnoreFields(MapSpec{}, "Key", "Value"), cmpopts.IgnoreUnexported(ProgramSpec{}), cmpopts.IgnoreMapEntries(func(key string, _ *MapSpec) bool { - switch key { - case ".bss", ".data", ".rodata": + if key == ".bss" || key == ".data" || strings.HasPrefix(key, ".rodata") { return true - - default: - return false } + return false }), } @@ -177,9 +174,10 @@ func TestLoadCollectionSpec(t *testing.T) { } opts := defaultOpts - if have.Maps[".rodata"] != nil { + if have.Types != nil { err := have.RewriteConstants(map[string]interface{}{ - "arg": uint32(1), + "arg": uint32(1), + "arg2": uint32(2), }) if err != nil { t.Fatal("Can't rewrite constant:", err) @@ -223,7 +221,7 @@ func TestLoadCollectionSpec(t *testing.T) { t.Fatal("Can't run program:", err) } - if ret != 5 { + if ret != 7 { t.Error("Expected return value to be 5, got", ret) } }) diff --git a/testdata/loader-clang-14-eb.elf b/testdata/loader-clang-14-eb.elf index 2c9a8802d5e5ff74707efd79f512cf3f0bb85f32..75bd62b6975e8521d846d2132bee9b194a5b4bcd 100644 GIT binary patch literal 10440 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 delta 3167 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 delta 3143 zcmZ{me{2+05Xawp*TUVE(q4bS#CBv)aE;{0LtlC|0~e*TaT)z-Js_Br0iJ>yLn*Ft$# zKeR!QPkS=2gN=n_&J}*BIvFSo)chu?KeDEJ|BHJEUphP}4&;Uo3wkfoRN0MHEYeqz z?U_+$J?*(GaQ(=`4}<^q@G9^`VSQbf%m?iWLd@WP8LOi1O3{Ha^IhiqQf$?nKngV@ z#SzV$!SzCk6CMtM&wIETe8Iy}@WnFcfl7F5=LetU2Q?_W2Yyp5Z2yeyoyuNA=4;Gp zW%m~5APCz7ym&j5;O3aS!1H!0k@j&`t@>+`#> z(Dm=sexnLouj-Z(BidkBI-_Vj@Bn?&*eNg3bmK<(C1sina|F9z+M5=^5U!o&N6IxB zG}hE>_VDjWR0;0eE7NqR$x!zMg^gwAemkgIa1CDRrESKre1oP8!^|P3PM|g|+&|0L z6p0$<&luH-dA5ZwMLl|%df*+!+z9-)|Ef2@hM~FFed^RP=BPd{r|}4Z-Vhv&4Iyif@+;PRBDI=8l8-xUp~o?y$kf zotnABcIcxXPSQUu&t^if9*44U6uRecp&MaR+7h~Opzhciz z+LzeJKZOYPae$A8(6@{2CBR`cofwYPnhvF%n`og!t%eNK>#ZB)4*Cw)Jrrt-$s(m% zW2t8l#cwdHqupCpXBpE5WN9-`^geWh@jl1fEb~*iX7gU8sWvM$0oQC#x}u-t zo+>SrX*bN_IdWa0T)UMzJV&k@I#*U#)R z>CCfx-_~9}BD|8Ogk@E(V=wO`id#YT=K}g9xj3^L#@Sw0S}%&-C35jG$e)ZLO`7%e zz10xTMx0072+;4=%Dyy5Kt^OnQO_as| W3)FYS`2>gD)_LJ@3bC!_uiAh1;y4BX diff --git a/testdata/loader-clang-7-eb.elf b/testdata/loader-clang-7-eb.elf index aaf8f7438fe4b39932dd0cc0d3ed4758100d7107..d13d12115acaa708c9b2a06916abbe117e01770d 100644 GIT binary patch delta 154 zcmca0@jzmNKI4Lo2Azxo2@GJs4xyR$Z{EpR&%&eS=;mT;XKm%=>}s>wg>5w>W60zW z?DdR0CKqrVXZ$ePg43Mw#^eG{`^oP)IVNxCv|xNO`68qEWOgo%$?v%YCfjrAPhQ8x wIk}w6f>B`d1}>mFZjQ;{fxHEi4Y=(YmrO1Il0PPI0FoY)KLAOI$p$i~^Ha va@jLlOn%8_&%A(%VR9q0=wt_O4aOytGr8>;rc zKA7ytY0h|JawVrdklYC*Z%qCPBqb(Wa@jL|V4PgVWyi=cc_)|sWD72l$voUT%oCUx jCQoD*ogBce!8m1dCAU4}i^)5Iq{ZZ)K$2s!C677)w$UnF diff --git a/testdata/loader-clang-9-eb.elf b/testdata/loader-clang-9-eb.elf index c5acb160184396b397508354da1d8ffbfb50d3b2..e58956f50684adf821b849aef365dfb4fb923581 100644 GIT binary patch literal 10352 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 YFWzW1bb@u$NmfYx)BWJkCiLI_UlCRk1^@s6 literal 10016 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 diff --git a/testdata/loader.c b/testdata/loader.c index b30eeec52..764911e96 100644 --- a/testdata/loader.c +++ b/testdata/loader.c @@ -112,7 +112,9 @@ int __attribute__((noinline)) global_fn(uint32_t arg) { static volatile unsigned int key1 = 0; // .bss static volatile unsigned int key2 = 1; // .data volatile const unsigned int key3 = 2; // .rodata -static volatile const uint32_t arg; // .rodata, rewritten by loader +static volatile const uint32_t arg; // .rodata, populated by loader +// custom .rodata section, populated by loader +static volatile const uint32_t arg2 __section(".rodata.test"); #endif __section("xdp") int xdp_prog() { @@ -121,11 +123,12 @@ __section("xdp") int xdp_prog() { unsigned int key2 = 1; unsigned int key3 = 2; uint32_t arg = 1; + uint32_t arg2 = 2; #endif map_lookup_elem(&hash_map, (void *)&key1); map_lookup_elem(&hash_map2, (void *)&key2); map_lookup_elem(&hash_map2, (void *)&key3); - return static_fn(arg) + global_fn(arg); + return static_fn(arg) + global_fn(arg) + arg2; } // This function has no relocations, and is thus parsed differently.