Arnaldo Carvalho de Melo 5acd1ae
From 5d27afaf31ac124edfef09862d26247b2c12b6a1 Mon Sep 17 00:00:00 2001
Arnaldo Carvalho de Melo 5acd1ae
From: Arnaldo Carvalho de Melo <acme@redhat.com>
Arnaldo Carvalho de Melo 5acd1ae
Date: Tue, 4 Oct 2022 18:09:33 -0300
Arnaldo Carvalho de Melo 5acd1ae
Subject: [PATCH 1/7] pahole: Support '--lang/--lang_exclude=asm'
Arnaldo Carvalho de Melo 5acd1ae
MIME-Version: 1.0
Arnaldo Carvalho de Melo 5acd1ae
Content-Type: text/plain; charset=UTF-8
Arnaldo Carvalho de Melo 5acd1ae
Content-Transfer-Encoding: 8bit
Arnaldo Carvalho de Melo 5acd1ae
Arnaldo Carvalho de Melo 5acd1ae
It is disjoint from the other languages and then the first simple
Arnaldo Carvalho de Melo 5acd1ae
implementation of language inclusion/exclusion didn't support it, add
Arnaldo Carvalho de Melo 5acd1ae
an special case to test against 0x8001 (DW_LANG_Mips_Assembler) to cover
Arnaldo Carvalho de Melo 5acd1ae
that.
Arnaldo Carvalho de Melo 5acd1ae
Arnaldo Carvalho de Melo 5acd1ae
This is needed as recently compilers started to add DWARF constructs to
Arnaldo Carvalho de Melo 5acd1ae
represent asm CUs that broke pahole as it didn't support
Arnaldo Carvalho de Melo 5acd1ae
DW_TAG_unspecified_type as a "type", so add it in case in the future we
Arnaldo Carvalho de Melo 5acd1ae
want to exclude such CUs.
Arnaldo Carvalho de Melo 5acd1ae
Arnaldo Carvalho de Melo 5acd1ae
The DW_TAG_unspecified_type tag is going to be supported in the next
Arnaldo Carvalho de Melo 5acd1ae
csets tho.
Arnaldo Carvalho de Melo 5acd1ae
Arnaldo Carvalho de Melo 5acd1ae
We also may want this to exclude new tags that aren't supported in BTF,
Arnaldo Carvalho de Melo 5acd1ae
etc.
Arnaldo Carvalho de Melo 5acd1ae
Arnaldo Carvalho de Melo 5acd1ae
Cc: Martin Liška <mliska@suse.cz>
Arnaldo Carvalho de Melo 5acd1ae
Cc: Nick Clifton <nickc@redhat.com>
Arnaldo Carvalho de Melo 5acd1ae
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Arnaldo Carvalho de Melo 5acd1ae
---
Arnaldo Carvalho de Melo 5acd1ae
 dwarves.c          | 3 +++
Arnaldo Carvalho de Melo 5acd1ae
 man-pages/pahole.1 | 2 +-
Arnaldo Carvalho de Melo 5acd1ae
 2 files changed, 4 insertions(+), 1 deletion(-)
Arnaldo Carvalho de Melo 5acd1ae
Arnaldo Carvalho de Melo 5acd1ae
diff --git a/dwarves.c b/dwarves.c
Arnaldo Carvalho de Melo 5acd1ae
index db1dcf5904bc98fe..32bfec5ea0f1a338 100644
Arnaldo Carvalho de Melo 5acd1ae
--- a/dwarves.c
Arnaldo Carvalho de Melo 5acd1ae
+++ b/dwarves.c
Arnaldo Carvalho de Melo 5acd1ae
@@ -2127,6 +2127,9 @@ int lang__str2int(const char *lang)
Arnaldo Carvalho de Melo 5acd1ae
 	[DW_LANG_UPC]		 = "upc",
Arnaldo Carvalho de Melo 5acd1ae
 	};
Arnaldo Carvalho de Melo 5acd1ae
 
Arnaldo Carvalho de Melo 5acd1ae
+	if (strcasecmp(lang, "asm") == 0)
Arnaldo Carvalho de Melo 5acd1ae
+		return DW_LANG_Mips_Assembler;
Arnaldo Carvalho de Melo 5acd1ae
+
Arnaldo Carvalho de Melo 5acd1ae
 	// c89 is the first, bliss is the last, see /usr/include/dwarf.h
Arnaldo Carvalho de Melo 5acd1ae
 	for (int id = DW_LANG_C89; id <= DW_LANG_BLISS; ++id)
Arnaldo Carvalho de Melo 5acd1ae
 		if (languages[id] && strcasecmp(lang, languages[id]) == 0)
Arnaldo Carvalho de Melo 5acd1ae
diff --git a/man-pages/pahole.1 b/man-pages/pahole.1
Arnaldo Carvalho de Melo 5acd1ae
index bb88e2f5f55a2ee9..f60713a7118d9b63 100644
Arnaldo Carvalho de Melo 5acd1ae
--- a/man-pages/pahole.1
Arnaldo Carvalho de Melo 5acd1ae
+++ b/man-pages/pahole.1
Arnaldo Carvalho de Melo 5acd1ae
@@ -378,7 +378,7 @@ Only process compilation units built from source code written in the specified l
Arnaldo Carvalho de Melo 5acd1ae
 
Arnaldo Carvalho de Melo 5acd1ae
 Supported languages:
Arnaldo Carvalho de Melo 5acd1ae
 
Arnaldo Carvalho de Melo 5acd1ae
-  ada83, ada95, bliss, c, c89, c99, c11, c++, c++03, c++11, c++14, cobol74,
Arnaldo Carvalho de Melo 5acd1ae
+  ada83, ada95, asm, bliss, c, c89, c99, c11, c++, c++03, c++11, c++14, cobol74,
Arnaldo Carvalho de Melo 5acd1ae
   cobol85, d, dylan, fortran77, fortran90, fortran95, fortran03, fortran08,
Arnaldo Carvalho de Melo 5acd1ae
   go, haskell, java, julia, modula2, modula3, objc, objc++, ocaml, opencl,
Arnaldo Carvalho de Melo 5acd1ae
   pascal83, pli, python, renderscript, rust, swift, upc
Arnaldo Carvalho de Melo 5acd1ae
-- 
Arnaldo Carvalho de Melo 5acd1ae
2.39.1
Arnaldo Carvalho de Melo 5acd1ae