From c8f69b18517d10a70a49ba9bdf52ceeb1866fcc1 Mon Sep 17 00:00:00 2001
From: Pavel Zhukov <pavel.zhukov@huawei.com>
Date: Fri, 29 Jul 2022 10:28:36 +0200
Subject: [PATCH] libabigail: Escape parameters names

In some go application parameters names can be parsed as XML specific
instruction. Escaping them to fix abicheck failures.

Signed-off-by: Pavel Zhukov <pavel.zhukov@huawei.com>
---
 ...abg-writer.cc-Escape-parameter-names.patch | 31 +++++++++++++++++++
 recipes-devtools/libabigail/libabigail_2.0.bb |  4 ++-
 2 files changed, 34 insertions(+), 1 deletion(-)
 create mode 100644 recipes-devtools/libabigail/libabigail/0001-abg-writer.cc-Escape-parameter-names.patch

diff --git a/recipes-devtools/libabigail/libabigail/0001-abg-writer.cc-Escape-parameter-names.patch b/recipes-devtools/libabigail/libabigail/0001-abg-writer.cc-Escape-parameter-names.patch
new file mode 100644
index 0000000..ae51fee
--- /dev/null
+++ b/recipes-devtools/libabigail/libabigail/0001-abg-writer.cc-Escape-parameter-names.patch
@@ -0,0 +1,31 @@
+From d8fd4b6d65dc2394f39bc946393d45ef51528526 Mon Sep 17 00:00:00 2001
+From: Pavel Zhukov <pavel.zhukov@huawei.com>
+Date: Fri, 29 Jul 2022 10:24:05 +0200
+Subject: [PATCH] abg-writer.cc: Escape parameter names
+Cc: pavel@zhukoff.net
+
+Fix breakage with some go application where parameter names may include
+XML characters
+
+Upstream-Status: Pending
+Signed-off-by: Pavel Zhukov <pavel.zhukov@huawei.com>
+---
+ src/abg-writer.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/abg-writer.cc b/src/abg-writer.cc
+index 3fab488b..304c1dff 100644
+--- a/src/abg-writer.cc
++++ b/src/abg-writer.cc
+@@ -3459,7 +3459,7 @@ write_function_decl(const function_decl_sptr& decl, write_context& ctxt,
+ 	  ctxt.record_type_as_referenced(parm_type);
+ 
+ 	  if (ctxt.get_write_parameter_names() && !(*pi)->get_name().empty())
+-	    o << " name='" << (*pi)->get_name() << "'";
++	    o << " name='" << xml::escape_xml_string((*pi)->get_name()) << "'";
+ 	}
+       write_is_artificial(*pi, o);
+       write_location((*pi)->get_location(), ctxt);
+-- 
+2.35.1
+
diff --git a/recipes-devtools/libabigail/libabigail_2.0.bb b/recipes-devtools/libabigail/libabigail_2.0.bb
index b81e370..5ad5442 100644
--- a/recipes-devtools/libabigail/libabigail_2.0.bb
+++ b/recipes-devtools/libabigail/libabigail_2.0.bb
@@ -8,7 +8,9 @@ SRC_URI[md5sum] = "3972df59e3b85ad157f219c9df547fca"
 SRC_URI[sha256sum] = "3704ae97a56bf076ca08fb5dea6b21db998fbbf14c4f9de12824b78db53b6fda"
 
 SRC_URI = "https://mirrors.kernel.org/sourceware/libabigail/libabigail-${PV}.tar.gz;sha512sum=${SHA512SUM} \
-           file://0001-Escape-the-value-of-the-symbols-name-attribute.patch "
+           file://0001-Escape-the-value-of-the-symbols-name-attribute.patch \
+           file://0001-abg-writer.cc-Escape-parameter-names.patch \
+           "
 
 LIC_FILES_CHKSUM = " \
     file://LICENSE.txt;md5=0bcd48c3bdfef0c9d9fd17726e4b7dab \
-- 
GitLab