Clang generates anonymous data sections named .data..Lanon.<hash>.
These need section-symbol references in the same way as .data..Lubsan
(GCC) and .data..L__unnamed_ (Clang UBSAN) sections.  Without this,
convert_reloc_sym() fails when processing relocations that reference
these sections.

Signed-off-by: Josh Poimboeuf <[email protected]>
---
 tools/objtool/klp-diff.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/tools/objtool/klp-diff.c b/tools/objtool/klp-diff.c
index 57d2af98a33c..1951a8b2df44 100644
--- a/tools/objtool/klp-diff.c
+++ b/tools/objtool/klp-diff.c
@@ -873,9 +873,10 @@ static bool section_reference_needed(struct section *sec)
        if (strstarts(sec->name, ".rodata"))
                return true;
 
-       /* UBSAN anonymous data */
+       /* Anonymous data (UBSAN, Clang anonymous constants, etc.) */
        if (strstarts(sec->name, ".data..Lubsan") ||    /* GCC */
-           strstarts(sec->name, ".data..L__unnamed_")) /* Clang */
+           strstarts(sec->name, ".data..L__unnamed_") ||       /* Clang */
+           strstarts(sec->name, ".data..Lanon."))      /* Clang */
                return true;
 
        return false;
-- 
2.53.0


Reply via email to