summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMichael Munday <mike.munday@ibm.com>2017-12-05 10:05:41 -0500
committerDave Watson <davejwatson@fb.com>2018-01-09 07:37:55 -0800
commit441adc46ffe775d83446ec7253f5259864069cba (patch)
treec0b5c5fa1535f7007c047b10a54f4413e8a7dbeb /tests
parent4c07b170372feb174e11775a01ea3bd718d636d6 (diff)
downloadlibunwind-441adc46ffe775d83446ec7253f5259864069cba.tar.gz
Add port to Linux on IBM Z (s390x)
This adds a port to Linux on the IBM Z platform (a.k.a s390x). It only supports the 64-bit ABI. Most functionality is working and all the tests pass with the exception of the coredump tests*. Unwinding is only supported if DWARF unwind information is present. libunwind can't currently make use of the backchain (if present). The getcontext/setcontext functions only preserve/restore a subset of registers. Currently this only consists of callee-saved registers and some parameter registers. Vector registers and access registers are not saved (and aren't callee- saved) by getcontext and cannot currently be modified. They will however be restored unmodified after resuming a context from a signal handler. There is no special libunwind support for setjmp, the functionality is emulated using glibc (I think all the ports do this for modern Linux kernels). * Unwinding on s390x requires floating point register access which the coredump library doesn't currently support.
Diffstat (limited to 'tests')
-rw-r--r--tests/check-namespace.sh.in15
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/check-namespace.sh.in b/tests/check-namespace.sh.in
index 6d008173..5ed94fd2 100644
--- a/tests/check-namespace.sh.in
+++ b/tests/check-namespace.sh.in
@@ -176,6 +176,14 @@ check_local_unw_abi () {
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}_is_fpreg
+ match _UL${plat}_dwarf_search_unwind_table
+ match _UL${plat}_dwarf_find_unwind_table
+ match _U${plat}_setcontext
+ ;;
*)
match _U${plat}_is_fpreg
@@ -276,6 +284,13 @@ check_generic_unw_abi () {
match _U${plat}_local_addr_space_init
match ${plat}_lock
;;
+ s390x)
+ match _U${plat}_is_fpreg
+ match _U${plat}_get_elf_image
+ match _U${plat}_get_exe_image_path
+ match _U${plat}_dwarf_search_unwind_table
+ match _U${plat}_dwarf_find_unwind_table
+ ;;
*)
match _U${plat}_is_fpreg
match _U${plat}_dwarf_search_unwind_table