Compare commits

..

No commits in common. "99cc675fbdc5e2fdb030bf13637f242eb5ac04db" and "bbc0dbb2cc846aadef80a5f1b51fc695a5db1830" have entirely different histories.

8 changed files with 180 additions and 94 deletions

View File

@ -1,46 +0,0 @@
From ffb69e2384538a7d4b634bdc491d7da9b7220f57 Mon Sep 17 00:00:00 2001
From: chenziyang <chenziyang4@huawei.com>
Date: Tue, 11 Jul 2023 10:19:22 +0800
Subject: [PATCH] avoid calling printf because OE glibc-2.34 used
-mno-outline-atomics buildflag, it will cause printf to be non-atomic
operations on ARMv8.1 platform. This will cause printf to stuck into dead
loop because ptrace sing-step execution cause race condition during printf
instructions.
---
tests/mapper.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/tests/mapper.c b/tests/mapper.c
index b47ae78..fcfb080 100644
--- a/tests/mapper.c
+++ b/tests/mapper.c
@@ -43,6 +43,15 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
# define MAP_NORESERVE 0
#endif
+void __attribute__((noinline)) push_some_stacks(int n)
+{
+ if (n >= 1)
+ {
+ push_some_stacks(n - 1);
+ push_some_stacks(n - 1);
+ }
+}
+
int
main (void)
{
@@ -71,7 +80,7 @@ main (void)
printf ("Turning on single-stepping...\n");
kill (getpid (), SIGUSR1); /* tell test-ptrace to start single-stepping */
- printf ("Va bene?\n");
+ push_some_stacks (4);
kill (getpid (), SIGUSR2); /* tell test-ptrace to stop single-stepping */
printf ("Turned single-stepping off...\n");
return 0;
--
2.33.0

View File

@ -0,0 +1,140 @@
From e8fa8d0ca5349d01cf5505eb0d952ef26c62cc94 Mon Sep 17 00:00:00 2001
From: Stephen Webb <swebb@blackberry.com>
Date: Fri, 21 Oct 2022 15:52:22 -0400
Subject: [PATCH] check-namespace.sh: adjust aarch64 symbols
Some symbols for aarch64 were missing, and some were marked as
extraneous in this ABI checker.
Fixes #389.
---
tests/check-namespace.sh.in | 46 ++++++++++++++++---------------------
1 file changed, 20 insertions(+), 26 deletions(-)
diff --git a/tests/check-namespace.sh.in b/tests/check-namespace.sh.in
index f99fb59..f9201a2 100644
--- a/tests/check-namespace.sh.in
+++ b/tests/check-namespace.sh.in
@@ -117,7 +117,8 @@ check_local_unw_abi () {
match _U${plat}_flush_cache
match _U${plat}_get_accessors
- match _U${plat}_getcontext
+ match _U${plat}_get_elf_image
+ match _U${plat}_get_exe_image_path
match _U${plat}_regname
match _U${plat}_strerror
@@ -130,68 +131,59 @@ check_local_unw_abi () {
case ${plat} in
arm)
- match _U${plat}_get_elf_image
- match _U${plat}_get_exe_image_path
+ match _U${plat}_getcontext
match _U${plat}_is_fpreg
match _UL${plat}_search_unwind_table
match _UL${plat}_dwarf_search_unwind_table
match _UL${plat}_dwarf_find_unwind_table
;;
hppa)
+ match _U${plat}_getcontext
match _UL${plat}_dwarf_search_unwind_table
match _UL${plat}_dwarf_find_unwind_table
- match _U${plat}_get_elf_image
- match _U${plat}_get_exe_image_path
match _U${plat}_setcontext
;;
ia64)
+ match _U${plat}_getcontext
match _UL${plat}_search_unwind_table
- match _U${plat}_get_elf_image
- match _U${plat}_get_exe_image_path
;;
x86)
- match _U${plat}_get_elf_image
- match _U${plat}_get_exe_image_path
+ match _U${plat}_getcontext
match _U${plat}_is_fpreg
match _UL${plat}_dwarf_search_unwind_table
match _UL${plat}_dwarf_find_unwind_table
;;
x86_64)
- match _U${plat}_get_elf_image
- match _U${plat}_get_exe_image_path
+ match _U${plat}_getcontext
match _U${plat}_is_fpreg
match _UL${plat}_dwarf_search_unwind_table
match _UL${plat}_dwarf_find_unwind_table
match _U${plat}_setcontext
;;
ppc*)
+ match _U${plat}_getcontext
match _U${plat}_get_func_addr
- match _U${plat}_get_elf_image
- match _U${plat}_get_exe_image_path
match _U${plat}_is_fpreg
match _UL${plat}_dwarf_search_unwind_table
match _UL${plat}_dwarf_find_unwind_table
;;
tilegx)
+ match _U${plat}_getcontext
match _U${plat}_is_fpreg
match _UL${plat}_dwarf_search_unwind_table
match _UL${plat}_dwarf_find_unwind_table
match _UL${plat}_local_addr_space_init
- match _U${plat}_get_elf_image
- match _U${plat}_get_exe_image_path
match ${plat}_lock
;;
s390x)
- match _U${plat}_get_elf_image
- match _U${plat}_get_exe_image_path
+ match _U${plat}_getcontext
match _U${plat}_is_fpreg
match _UL${plat}_dwarf_search_unwind_table
match _UL${plat}_dwarf_find_unwind_table
match _U${plat}_setcontext
;;
riscv)
- match _U${plat}_get_elf_image
- match _U${plat}_get_exe_image_path
+ match _U${plat}_getcontext
match _U${plat}_is_fpreg
match _UL${plat}_dwarf_search_unwind_table
match _UL${plat}_dwarf_find_unwind_table
@@ -288,15 +280,15 @@ check_generic_unw_abi () {
match _U${plat}_dwarf_search_unwind_table
match _U${plat}_dwarf_find_unwind_table
;;
- tilegx)
- match _U${plat}_dwarf_search_unwind_table
+ tilegx)
+ match _U${plat}_dwarf_search_unwind_table
match _U${plat}_dwarf_find_unwind_table
- match _U${plat}_get_elf_image
+ match _U${plat}_get_elf_image
match _U${plat}_get_exe_image_path
- match _U${plat}_is_fpreg
- match _U${plat}_local_addr_space_init
- match ${plat}_lock
- ;;
+ match _U${plat}_is_fpreg
+ match _U${plat}_local_addr_space_init
+ match ${plat}_lock
+ ;;
s390x)
match _U${plat}_is_fpreg
match _U${plat}_get_elf_image
@@ -315,6 +307,8 @@ check_generic_unw_abi () {
match _U${plat}_is_fpreg
match _U${plat}_dwarf_search_unwind_table
match _U${plat}_dwarf_find_unwind_table
+ match _U${plat}_get_elf_image
+ match _U${plat}_get_exe_image_path
;;
esac
--
2.27.0

View File

@ -0,0 +1,31 @@
From fedff5ac77c945fc0c5df534074163a784bfa5b3 Mon Sep 17 00:00:00 2001
From: Florian Weimer <fweimer@redhat.com>
Date: Wed, 7 Sep 2022 14:01:36 +0200
Subject: [PATCH] tests/run-coredump-unwind: Skip test if no coredump has been
created
In some build environments, coredumps are not created even if the
corresponding ulimit is positive. This change skips the test if
the coredump is missing.
---
tests/run-coredump-unwind | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tests/run-coredump-unwind b/tests/run-coredump-unwind
index 8d07742..0c2b28c 100755
--- a/tests/run-coredump-unwind
+++ b/tests/run-coredump-unwind
@@ -48,6 +48,10 @@ fi
./crasher backing_files
) 2>/dev/null
COREFILE=$TEMPDIR/core*
+if ! test -f "$COREFILE"; then
+ echo "crasher process did not produce coredump, test skipped"
+ exit 77
+fi
# magic option -testcase enables checking for the specific contents of the stack
./test-coredump-unwind $COREFILE -testcase `cat $TEMPDIR/backing_files`
--
2.33.0

BIN
libunwind-1.6.2.tar.gz Normal file

Binary file not shown.

Binary file not shown.

View File

@ -1,19 +1,20 @@
Name: libunwind
Epoch: 2
Version: 1.7.2
Release: 3
Version: 1.6.2
Release: 6
Summary: Libunwind provides a C ABI to determine the call-chain of a program
License: BSD
URL: http://savannah.nongnu.org/projects/libunwind
Source: http://download-mirror.savannah.gnu.org/releases/libunwind/libunwind-%{version}.tar.gz
Patch1: 0001-fix-byte_order_is_valid-function-logic.patch
Patch2: backport-aarch64-unw_step-validates-address-before-calling-dwarf_get.patch
Patch3: backport-avoid-calling-printf-because-OE-glibc-2.34-used-mno-.patch
Patch4: backport-fix-run-ptrace-mapper-test-case-failed.patch
Patch9000: riscv.patch
Patch0001: 0001-fix-byte_order_is_valid-function-logic.patch
Patch2: backport-check-namespace.sh-adjust-aarch64-symbols.patch
Patch3: backport-tests-run-coredump-unwind-Skip-test-if-no-coredump-h.patch
Patch4: backport-aarch64-unw_step-validates-address-before-calling-dwarf_get.patch
ExclusiveArch: aarch64 %{ix86} x86_64 riscv64 ppc64le loongarch64
Patch9000: Fix-run-ptrace-mapper-test-case-failed-by-allowing-u.patch
ExclusiveArch: aarch64 %{ix86} x86_64 riscv64
BuildRequires: automake libtool autoconf texlive-latex2man gcc-c++
@ -89,33 +90,6 @@ make check || true
%{_mandir}/*/*
%changelog
* Thu Apr 11 2024 shafeipaozi <sunbo.oerv@isrc.iscas.ac.cn> - 2:1.7.2-3
- add support riscv64
* Mon Feb 26 2024 doupengda <doupengda@loongson.cn> - 2:1.7.2-2
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:add support for loongarch64
* Mon Jan 29 2024 zhuofeng <zhuofeng2@huawei.com> - 2:1.7.2-1
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:update version to 1.7.2
* Mon Nov 27 2023 jiahua.yu <jiahua.yu@shingroup.cn> - 2:1.6.2-8
- Type:update
- ID:NA
- SUG:NA
- DESC:init support for ppc64le
* Tue Jul 11 2023 chenziyang <chenziyang4@huawei.com> - 2:1.6.2-7
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:backport upstream patch to fix failed run-ptrace-mapper testcase
* Mon Jul 03 2023 chenziyang <chenziyang4@huawei.com> - 2:1.6.2-6
- Type:bugfix
- ID:NA

View File

@ -1,13 +0,0 @@
Index: libunwind-1.8.1/src/riscv/Gis_signal_frame.c
===================================================================
--- libunwind-1.8.1.orig/src/riscv/Gis_signal_frame.c
+++ libunwind-1.8.1/src/riscv/Gis_signal_frame.c
@@ -57,7 +57,7 @@ unw_is_signal_frame (unw_cursor_t *curso
ip = c->dwarf.ip;
- if (!ip || !a->access_mem || (ip & (sizeof(unw_word_t) - 1)))
+ if (!ip || !a->access_mem)
return 0;
if ((ret = (*a->access_mem) (as, ip, &i0, 0, arg)) < 0)