libunwind-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Libunwind-devel] [PATCH] testsuite evaluation/fixes for ARM


From: Bruna Moreira
Subject: [Libunwind-devel] [PATCH] testsuite evaluation/fixes for ARM
Date: Thu, 17 Apr 2008 15:22:11 -0400

Hi all,

We have done a quick evaluation of current libunwind status on ARM
using the internal testsuite. Libunwind from development git tree [1]
(last change 5 Feb 2008). The following tests have failed or received
SIGSEGV on ARM. Detailed descriptions about errors can be found below:

* Gtest-bt and Ltest-bt
    Issue: The stack size passed to sigaltstack() is too small for ARM
thus causing segmentation fault due to stack overflow.
    Feature affected: None (testcase bug)

* Gtest-exc and Ltest-exc
    Issue: unw_resume() is not implemented
    Feature affected: Resume execution at a different stack frame
(useful for e.g. exception handling)

* Gtest-resume-sig and Ltest-resume-sig
    Issue: Currently it PASS but their results depend on unw_resume()
which is not implemented on ARM, so they should FAIL
    Feature affected: Resume execution from a signal handler

* Gtest-dyn1 and Ltest-dyn1:
    Issue: Size code definition of dynamic function (template()) on
testcase is too big for ARM architecture so memcpy() reads invalid
memory. After match the sizes, the test will still fail because
unw_is_signal_frame() is not implemented on ARM
    Feature affected: Stack unwinding of dynamic (at run-time) generated code

* run-check-namespace:
    Issue: Some "bashisms" in check-namespace.sh.in causes the script
to fail to run on N8XX's busybox shell. After fixing those, the test
still fails because the ARM version of libunwind have _Unwind_*
interfaces disabled
    Feature affected: break exceptions completely for ARM [2]

* test-ptrace:
    Issue: Some register maps are missing for ARM in
_UPT_reg_offset.c. After add them, we have the current implementation
is not able to retrieve the function name of the attached program,
probably because the offset of the dynamic linked list where these
informations are found is different from others archs. The function
get_list_addr() is returning -UNW_ENOINFO (just implemented for IA64)
    Feature affected: Remote backtraces on ARM

* run-ptrace-mapper and run-ptrace-misc:
    Issue: Needs test-ptrace working. Result invalid
    Feature affected: Not tested

* test-setjmp
    Issue: The test is in infinite loop. There are some issues there:
definition of JB_SP is incorrect for ARM on file
include/tdep-arm/jmpbuf.h. Implementation of longjmp() in libunwind
API is not recovering the SP register value
    Feature affected: Internal support for non-local gotos


Please, see attached the following patches:
- libunwind_arm_fixes.patch: add some missing bits on ARM platform.
- libunwind_testsuite_fixes.patch: fix some testsuite issues on ARM
(Gtest-bt, Gtest-dyn1 and  check-name-space.in).


Any comments/suggestions are welcome!


BR,
Bruna.

References:
[1] The official libunwind git repository. URL:
http://git.kernel.org/gitweb.cgi?p=libs/libunwind/libunwind.git;a=commit;h=3842dac7333e42aa44531eda34ba55200b99ccf8
[2] libunwind ARM port. URL:
http://thread.gmane.org/gmane.comp.lib.unwind.devel/270/focus=276


-- 
Bruna Moreira
Instituto Nokia de Tecnologia
Manaus - Brazil

Attachment: libunwind_arm_fixes.patch
Description: Text Data

Attachment: libunwind_testsuite_fixes.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]