!12 Upgrade package to 2.2 version

From: @cherry530 
Reviewed-by: @caodongxia 
Signed-off-by: @caodongxia
This commit is contained in:
openeuler-ci-bot 2023-04-13 08:06:46 +00:00 committed by Gitee
commit 6a626bef8f
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
10 changed files with 11 additions and 390 deletions

1
.gitattributes vendored Normal file
View File

@ -0,0 +1 @@
libabigail-2.2.tar.xz filter=lfs diff=lfs merge=lfs -text

View File

@ -1,25 +0,0 @@
From ab8228fb82a9806b978aff4cc693900729eb0e03 Mon Sep 17 00:00:00 2001
From: caodongxia <315816521@qq.com>
Date: Thu, 20 May 2021 21:11:22 +0800
Subject: [PATCH] create patch
---
build-aux/ltmain.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh
index e9c06d7..375e99c 100644
--- a/build-aux/ltmain.sh
+++ b/build-aux/ltmain.sh
@@ -6523,7 +6523,7 @@ func_mode_link ()
old_convenience=
deplibs=
old_deplibs=
- compiler_flags="-specs=/usr/lib/rpm/redhat/redhat-hardened-ld"
+ compiler_flags="-specs=/usr/lib/rpm/generic-hardened-ld"
linker_flags=
dllsearchpath=
lib_search_path=`pwd`
--
2.27.0

View File

@ -1,50 +0,0 @@
From a2263db66eb8ae10614ac1c4ab942bda8c7cd78c Mon Sep 17 00:00:00 2001
From: Xiaole He via Libabigail <libabigail@sourceware.org>
Date: Mon, 19 Sep 2022 18:03:50 +0800
Subject: [PATCH] abg-reader: fix comment of function
In 'src/abg-reader.cc', the function
'walk_xml_node_to_map_type_ids(read_context& ctxt, xmlNodePtr node)'
finds all of the child nodes of 'node' that has the 'id' attribute,
and then put the child node into map where the 'id' of the child node
as key and the child node itself as the value.
But the comment for this function writes:
/* src/abg-reader.cc begin */
/// Walk an entire XML sub-tree to build a map where the key is the
/// the value of the 'id' attribute (for type definitions) and the key
/// is the xml node containing the 'id' attribute.
...
static void
walk_xml_node_to_map_type_ids(read_context& ctxt,
xmlNodePtr node)
...
/* src/abg-reader.cc end */
The second and third lines of the comment above says the the child node
as the key of the map, but it should be the value of the map.
This patch fix the problematic comment described above, from
'and the key is the xml node' to 'and the value is the xml node'.
* src/abg-reader.cc (walk_xml_node_to_map_type_ids): fix comment
Signed-off-by: Xiaole He <hexiaole@kylinos.cn>
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
---
src/abg-reader.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/abg-reader.cc b/src/abg-reader.cc
index 1ca36b7..1df3515 100644
--- a/src/abg-reader.cc
+++ b/src/abg-reader.cc
@@ -1418,7 +1418,7 @@ advance_cursor(read_context& ctxt)
}
/// Walk an entire XML sub-tree to build a map where the key is the
-/// the value of the 'id' attribute (for type definitions) and the key
+/// the value of the 'id' attribute (for type definitions) and the value
/// is the xml node containing the 'id' attribute.
///
/// @param ctxt the context of the reader.
--
2.27.0

View File

@ -1,61 +0,0 @@
From 1ed036e2573e1fc9a1a0aed720eee20a921a38ed Mon Sep 17 00:00:00 2001
From: Xiaole He <hexiaole@kylinos.cn>
Date: Sun, 16 Oct 2022 04:26:42 +0000
Subject: [PATCH 1/3] abg-ir: add missing else
In 'bind_function_type_life_time' function of 'src/abg-ir.cc', the code
obtains the member 'const environment*' of 'class function_type', that
is, the 'e' variable in below code. And assure the obtained
'environment*' is same as the 'const environment*' of the
'class translation_unit', that is, the'env' variable in below code:
/* src/abg-ir.cc begin */
1 void
2 translation_unit::bind_function_type_life_time(function_type_sptr ftype)
3 {
4 ...
5 const environment* env = get_environment();
6 ...
7 if (const environment* e = ftype->get_environment())
8 ABG_ASSERT(env == e);
9 ftype->set_environment(const_cast<environment*>(env));
10
11 if (const translation_unit* existing_tu = ftype->get_translation_unit())
12 ABG_ASSERT(existing_tu == this);
13 else
14 ftype->set_translation_unit(const_cast<translation_unit*>(this));
15 ...
/* src/abg-ir.cc end */
There was a missing 'else' between the 'line 8' and line 9', as the
explicit 'else' at the 'line 13'. Without the 'else' between the
'line 8' and line 9', there will be a redundant assignment at 'line 9'
under the condition when the 'env' is equal to 'e'.
This patch add the missing 'else' between the 'line 8' and 'line 9'.
* src/abg-ir.cc (bind_function_type_life_time): add missing
else
Signed-off-by: Xiaole He <hexiaole@kylinos.cn>
Tested-by: Xiaole He <hexiaole@kylinos.cn>
---
src/abg-ir.cc | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/abg-ir.cc b/src/abg-ir.cc
index 4f19e07..a93c494 100644
--- a/src/abg-ir.cc
+++ b/src/abg-ir.cc
@@ -1394,7 +1394,8 @@ translation_unit::bind_function_type_life_time(function_type_sptr ftype) const
// translation unit.
if (const environment* e = ftype->get_environment())
ABG_ASSERT(env == e);
- ftype->set_environment(const_cast<environment*>(env));
+ else
+ ftype->set_environment(const_cast<environment*>(env));
if (const translation_unit* existing_tu = ftype->get_translation_unit())
ABG_ASSERT(existing_tu == this);
--
2.27.0

View File

@ -1,96 +0,0 @@
From ead3e6317af191324d9044400152e9c881fc3126 Mon Sep 17 00:00:00 2001
From: Xiaole He <hexiaole@kylinos.cn>
Date: Sun, 16 Oct 2022 06:47:03 +0000
Subject: [PATCH 2/3] abg-reader: optimize if construction
In 'build_enum_type_decl' function of 'src/abg-reader.cc', the
'for loop' walk through all the child nodes of the '<enum-decl>' for
seeking '<underlying-type>' and '<enumerator>':
/* original src/abg-reader.cc begin */
static enum_type_decl_sptr
build_enum_type_decl(read_context& ctxt,
const xmlNodePtr node,
bool add_to_current_scope)
{
...
for (xmlNodePtr n = xmlFirstElementChild(node);
n;
n = xmlNextElementSibling(n))
{
if (xmlStrEqual(n->name, BAD_CAST("underlying-type")))
{
...
}
if (xmlStrEqual(n->name, BAD_CAST("enumerator")))
{
...
}
}
...
}
/* original src/abg-reader.cc end */
Here uses 2 separate 'if' statements for seeking, that is, for any
child node of the '<enum-decl>', there involves 2 'if' comparations.
Because the child node of the '<enum-decl>' is either
'<underlying-type>' or '<enumerator>', there would be a slight
optimization when use 'if-else if' construction instead, like below:
/* optimized src/abg-reader.cc begin */
for (xmlNodePtr n = xmlFirstElementChild(node);
n;
n = xmlNextElementSibling(n))
{
if (xmlStrEqual(n->name, BAD_CAST("underlying-type")))
{
...
}
else if (xmlStrEqual(n->name, BAD_CAST("enumerator")))
{
...
}
}
/* optimized src/abg-reader.cc end */
Supposing there has the test case:
/* test case begin */
<abi-instr version='1.0'>
<enum-decl name='E' filepath='../../abitests/test-enum0-v0.cc' line='1' column='6' id='type-id-2'>
<underlying-type type-id='type-id-1'/>
<enumerator name='e0' value='0'/>
<enumerator name='e2' value='1'/>
</enum-decl>
</abi-instr>
/* test case end */
When parsing the '<underlying-type>' xml tag, for the original
'src/abg-reader.cc', there involves 2 'if' comparations. But involves
only 1 'if' comparation for the optimized 'src/abg-reader.cc'.
Signed-off-by: Xiaole He <hexiaole@kylinos.cn>
Tested-by: Xiaole He <hexiaole@kylinos.cn>
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
---
src/abg-reader.cc | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/abg-reader.cc b/src/abg-reader.cc
index 1df3515..ebb55e9 100644
--- a/src/abg-reader.cc
+++ b/src/abg-reader.cc
@@ -4356,8 +4356,7 @@ build_enum_type_decl(read_context& ctxt,
base_type_id = CHAR_STR(a);
continue;
}
-
- if (xmlStrEqual(n->name, BAD_CAST("enumerator")))
+ else if (xmlStrEqual(n->name, BAD_CAST("enumerator")))
{
string name;
int64_t value = 0;
--
2.27.0

View File

@ -1,112 +0,0 @@
From 1058fa9cecaef8f39066a4d76b82c97f7f5b10ea Mon Sep 17 00:00:00 2001
From: Xiaole He <hexiaole@kylinos.cn>
Date: Sun, 16 Oct 2022 07:02:25 +0000
Subject: [PATCH 3/3] abg-diff-utils: fix typo in comments
Fix typo in comments, from 'pased' to 'passed'.
* src/abg-diff-utils.h: fix typo in comments
Signed-off-by: Xiaole He <hexiaole@kylinos.cn>
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
---
include/abg-diff-utils.h | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/include/abg-diff-utils.h b/include/abg-diff-utils.h
index 0628950..0389d7c 100644
--- a/include/abg-diff-utils.h
+++ b/include/abg-diff-utils.h
@@ -803,7 +803,7 @@ struct deep_ptr_eq_functor
/// call operator member returning a boolean and taking two arguments
/// that must be of the same type as the one pointed to by the @ref
/// RandomAccessOutputIterator template parameter. This functor is
-/// used to compare the elements referred to by the iterators pased in
+/// used to compare the elements referred to by the iterators passed in
/// argument to this function.
///
/// @param k the number of the diagonal on which we want to find the
@@ -942,7 +942,7 @@ end_of_fr_d_path_in_k(int k, int d,
/// call operator member returning a boolean and taking two arguments
/// that must be of the same type as the one pointed to by the @ref
/// RandomAccessOutputIterator template parameter. This functor is
-/// used to compare the elements referred to by the iterators pased in
+/// used to compare the elements referred to by the iterators passed in
/// argument to this function.
///
/// @param k the number of the diagonal on which we want to find the
@@ -1116,7 +1116,7 @@ is_match_point(RandomAccessOutputIterator a_begin,
/// call operator member returning a boolean and taking two arguments
/// that must be of the same type as the one pointed to by the @ref
/// RandomAccessOutputIterator template parameter. This functor is
-/// used to compare the elements referred to by the iterators pased in
+/// used to compare the elements referred to by the iterators passed in
/// argument to this function.
///
/// @param a_begin an iterator pointing to the begining of sequence A.
@@ -1308,7 +1308,7 @@ print_snake(RandomAccessOutputIterator a_begin,
/// call operator member returning a boolean and taking two arguments
/// that must be of the same type as the one pointed to by the @ref
/// RandomAccessOutputIterator template parameter. This functor is
-/// used to compare the elements referred to by the iterators pased in
+/// used to compare the elements referred to by the iterators passed in
/// argument to this function.
///
/// @param a the first sequence we care about.
@@ -1444,7 +1444,7 @@ snake_end_points(const snake& s, point&, point&);
/// call operator member returning a boolean and taking two arguments
/// that must be of the same type as the one pointed to by the @ref
/// RandomAccessOutputIterator template parameter. This functor is
-/// used to compare the elements referred to by the iterators pased in
+/// used to compare the elements referred to by the iterators passed in
/// argument to this function.
///
/// @param a_base the iterator to the base of the first sequence.
@@ -1653,7 +1653,7 @@ compute_diff(RandomAccessOutputIterator a_base,
/// call operator member returning a boolean and taking two arguments
/// that must be of the same type as the one pointed to by the @ref
/// RandomAccessOutputIterator template parameter. This functor is
-/// used to compare the elements referred to by the iterators pased in
+/// used to compare the elements referred to by the iterators passed in
/// argument to this function.
///
/// @param a_start an iterator to the beginning of the first sequence
@@ -1719,7 +1719,7 @@ compute_diff(RandomAccessOutputIterator a_begin,
/// call operator member returning a boolean and taking two arguments
/// that must be of the same type as the one pointed to by the @ref
/// RandomAccessOutputIterator template parameter. This functor is
-/// used to compare the elements referred to by the iterators pased in
+/// used to compare the elements referred to by the iterators passed in
/// argument to this function.
///
/// @param a_base the iterator to the base of the first sequence.
@@ -1779,7 +1779,7 @@ compute_diff(RandomAccessOutputIterator a_base,
/// call operator member returning a boolean and taking two arguments
/// that must be of the same type as the one pointed to by the @ref
/// RandomAccessOutputIterator template parameter. This functor is
-/// used to compare the elements referred to by the iterators pased in
+/// used to compare the elements referred to by the iterators passed in
/// argument to this function.
///
/// @param a_start an iterator to the beginning of the first sequence
@@ -1879,7 +1879,7 @@ compute_diff(RandomAccessOutputIterator a_begin,
/// call operator member returning a boolean and taking two arguments
/// that must be of the same type as the one pointed to by the @ref
/// RandomAccessOutputIterator template parameter. This functor is
-/// used to compare the elements referred to by the iterators pased in
+/// used to compare the elements referred to by the iterators passed in
/// argument to this function.
///
/// @param a_base the iterator to the base of the first sequence.
@@ -1935,7 +1935,7 @@ compute_diff(RandomAccessOutputIterator a_base,
/// call operator member returning a boolean and taking two arguments
/// that must be of the same type as the one pointed to by the @ref
/// RandomAccessOutputIterator template parameter. This functor is
-/// used to compare the elements referred to by the iterators pased in
+/// used to compare the elements referred to by the iterators passed in
/// argument to this function.
///
/// @param a_start an iterator to the beginning of the first sequence
--
2.27.0

View File

@ -1,36 +0,0 @@
From 08ed347ebfd108c9c1de0ba65f9a947fda1617ab Mon Sep 17 00:00:00 2001
From: Dodji Seketeli <dodji@redhat.com>
Date: Fri, 2 Dec 2022 15:59:13 +0000
Subject: [PATCH] Bug 29829 - dwarf-reader: Allow DIEs to be in a lexical block
Normally, ABI-relevant DWARF DIEs (types and decls) should be at
namespace level. There are real-life cases where such a DIE might be
defined in a lexical block.
This patch teaches the DWARF reader to handle such cases.
* src/abg-dwarf-reader.cc (get_scope_for_die): Support
DW_TAG_lexical_block as DIE scope.
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
---
src/abg-dwarf-reader.cc | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc
index 1d6ad24..895a55d 100644
--- a/src/abg-dwarf-reader.cc
+++ b/src/abg-dwarf-reader.cc
@@ -10961,7 +10961,8 @@ get_scope_for_die(read_context& ctxt,
scope_decl_sptr s;
type_or_decl_base_sptr d;
if (dwarf_tag(&parent_die) == DW_TAG_subprogram
- || dwarf_tag(&parent_die) == DW_TAG_array_type)
+ || dwarf_tag(&parent_die) == DW_TAG_array_type
+ || dwarf_tag(&parent_die) == DW_TAG_lexical_block)
// this is an entity defined in a scope that is a function.
// Normally, I would say that this should be dropped. But I have
// seen a case where a typedef DIE needed by a function parameter
--
2.27.0

Binary file not shown.

3
libabigail-2.2.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:08b72af0454ffd8052103fe34af352da348d24b13c9b3c8f9d140d656bfdc759
size 325058560

View File

@ -1,16 +1,10 @@
Name: libabigail Name: libabigail
Version: 2.0 Version: 2.2
Release: 4 Release: 1
Summary: ABI generic analysis and instrumentation library Summary: ABI generic analysis and instrumentation library
License: LGPLv3+ License: LGPLv3+
URL: https://sourceware.org/libabigail/ URL: https://sourceware.org/libabigail/
Source0: http://mirrors.kernel.org/sourceware/libabigail/libabigail-%{version}.tar.gz Source0: http://mirrors.kernel.org/sourceware/libabigail/libabigail-%{version}.tar.xz
Patch0000: 0001-compiler-flags.patch
Patch0001: 0002-abg-reader-fix-comment-of-function.patch
Patch0002: 0003-abg-ir-add-missing-else.patch
Patch0003: 0004-abg-reader-optimize-if-construction.patch
Patch0004: 0005-abg-diff-utils-fix-typo-in-comments.patch
Patch0005: 0006-Bug-29829-dwarf-reader-Allow-DIEs-to-be-in-a-lexical.patch
BuildRequires: gcc-c++ libtool elfutils-devel libxml2-devel doxygen BuildRequires: gcc-c++ libtool elfutils-devel libxml2-devel doxygen
BuildRequires: python3-sphinx texinfo dos2unix dpkg python3-devel python3-rpm BuildRequires: python3-sphinx texinfo dos2unix dpkg python3-devel python3-rpm
BuildRequires: python3-mock python3-unittest2 python3-pyxdg wget mailcap BuildRequires: python3-mock python3-unittest2 python3-pyxdg wget mailcap
@ -79,7 +73,7 @@ fi
%files %files
%{_bindir}/{abicompat,abidiff,abidw,abilint,abipkgdiff,kmidiff} %{_bindir}/{abicompat,abidiff,abidw,abilint,abipkgdiff,kmidiff}
%{_libdir}/{libabigail.so.0,libabigail.so.0.0.0} %{_libdir}/{libabigail.so.1,libabigail.so.1.0.0}
%{_libdir}/libabigail/default.abignore %{_libdir}/libabigail/default.abignore
%files devel %files devel
@ -96,6 +90,9 @@ fi
%doc doc/manuals/html/* README AUTHORS ChangeLog %doc doc/manuals/html/* README AUTHORS ChangeLog
%changelog %changelog
* Wed Apr 12 2023 xu_ping <707078654@qq.com> - 2.2-1
- Upgrade to 2.2
* Fri Dec 9 2022 Xiaole He <hexiaole@kylinos.cn> - 2.0-4 * Fri Dec 9 2022 Xiaole He <hexiaole@kylinos.cn> - 2.0-4
- backport patch:0006 to fix coredump of libxul.so from thunderbird rpm - backport patch:0006 to fix coredump of libxul.so from thunderbird rpm