Unwinding info for cancellable syscalls

Bernhard Reutner-Fischer rep.dot.nop at gmail.com
Mon Sep 14 07:15:40 UTC 2015


On September 14, 2015 4:02:56 AM GMT+02:00, Max Filippov <jcmvbkbc at gmail.com> wrote:
>Hello,
>
>I've noticed that several NPTL tst-cancelx* tests fail on ARM, because
>functions
>invoking cancellable syscalls are compiled without
>-fasynchronous-unwind-tables
>making it impossible for the libgcc DWARF unwinder to unwind stack past
>the
>syscall and call the cleanup routine. They work on x86_64, because
>x86_64 gcc
>has -fasynchronous-unwind-tables enabled by default, and on xtensa
>because it
>uses custom unwinding code. I haven't checked, but AFAIU it should fail
>on other
>architectures that use DWARF unwinder. Can anybody confirm that?
>
>I guess that at least all functions that invoke cancellable syscalls
>need to be built
>with -fasynchronous-unwind-tables in their CFLAGS. I've tried that
>with couple of
>functions and it fixes corresponding tests. And that's what glibc does
>in
>nptl/Makefile. Does that sound right for uClibc?

It does.
TIA,




More information about the uClibc mailing list