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.

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

diff --git a/tools/objtool/klp-diff.c b/tools/objtool/klp-diff.c
index 463b6daa5234..7e58ef36f805 100644
--- a/tools/objtool/klp-diff.c
+++ b/tools/objtool/klp-diff.c
@@ -1030,14 +1030,15 @@ static int convert_reloc_secsym_to_sym(struct elf *elf, 
struct reloc *reloc)
 }
 
 /*
- * Sections with anonymous or uncorrelated data (strings, UBSAN data)
- * need section symbol references.
+ * Sections with anonymous or uncorrelated data (strings, UBSAN data, Clang
+ * anonymous constants) need section symbol references.
  */
 static bool is_uncorrelated_section(struct section *sec)
 {
        return is_string_sec(sec) ||
               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 */
 }
 
 /*
-- 
2.53.0


Reply via email to