Compare commits

...

11 Commits

Author SHA1 Message Date
openeuler-ci-bot
99cc675fbd
!64 [sync] PR-63: fix support for riscv64
From: @openeuler-sync-bot 
Reviewed-by: @zhujianwei001 
Signed-off-by: @zhujianwei001
2024-05-09 07:31:16 +00:00
shafeipaozi
e01132a7bc support riscv
(cherry picked from commit de835ce23f88b1c520920f2486da61c1958c2174)
2024-05-09 14:50:24 +08:00
openeuler-ci-bot
bb7cafedfe
!61 add support for loongarch64
From: @dpdwaj 
Reviewed-by: @dillon_chen 
Signed-off-by: @dillon_chen
2024-02-27 09:27:01 +00:00
doupengda
71eb5f78eb add support for loongarch64 2024-02-26 09:16:23 +08:00
openeuler-ci-bot
da89c45ccb
!60 update libunwind to 1.7.2
From: @zhuofeng6 
Reviewed-by: @hubin95 
Signed-off-by: @hubin95
2024-01-31 02:04:30 +00:00
zhuofeng
4e916edd44 update libunwind to 1.7.2 2024-01-29 16:25:57 +08:00
openeuler-ci-bot
e5fb2c7262
!59 Init support for ppc64le
From: @jiahua-yu 
Reviewed-by: @licihua 
Signed-off-by: @licihua
2023-12-07 11:01:23 +00:00
jiahua.yu
83d7db4c06 Init support for ppc64le 2023-12-07 13:57:06 +08:00
openeuler-ci-bot
f86ef3fd62
!49 backport upstream patch to fix failed run-ptrace-mapper testcase
From: @ziyangc 
Reviewed-by: @hubin95 
Signed-off-by: @hubin95
2023-07-11 06:53:56 +00:00
chenziyang
2e86d21eb4 backport upstream patch to fix failed run-ptrace-mapper testcase 2023-07-11 11:24:14 +08:00
openeuler-ci-bot
1780bcbb8a
!48 Fix run-ptrace-mapper test case
From: @ziyangc 
Reviewed-by: @hubin95 
Signed-off-by: @hubin95
2023-07-11 01:55:18 +00:00
8 changed files with 94 additions and 180 deletions

View File

@ -0,0 +1,46 @@
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

@ -1,140 +0,0 @@
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

@ -1,31 +0,0 @@
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

Binary file not shown.

BIN
libunwind-1.7.2.tar.gz Normal file

Binary file not shown.

View File

@ -1,20 +1,19 @@
Name: libunwind
Epoch: 2
Version: 1.6.2
Release: 6
Version: 1.7.2
Release: 3
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
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
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
Patch9000: Fix-run-ptrace-mapper-test-case-failed-by-allowing-u.patch
ExclusiveArch: aarch64 %{ix86} x86_64 riscv64
ExclusiveArch: aarch64 %{ix86} x86_64 riscv64 ppc64le loongarch64
BuildRequires: automake libtool autoconf texlive-latex2man gcc-c++
@ -90,6 +89,33 @@ 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

13
riscv.patch Normal file
View File

@ -0,0 +1,13 @@
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)