On Thu, Jan 02, 2025 at 04:32:17PM +0100, Roman Kagan wrote: > When gcc is built for x86_64-linux-musl target, stack unwinding from > within signal handler stops at the innermost signal frame. The reason > for this behaviro is that the signal trampoline is not accompanied with > appropiate CFI directives, and the fallback path in libgcc to recognize > it by the code sequence is only enabled for glibc except 2.0. The > latter is motivated by the lack of sys/ucontext.h in that glibc version. > > Given that all relevant libc-s ship sys/ucontext.h for over a decade, > and that other arches aren't shy of unconditionally using it, follow > suit and remove the preprocessor condition, too. > > Signed-off-by: Roman Kagan <rka...@amazon.de> > --- > libgcc/config/i386/linux-unwind.h | 7 ------- > 1 file changed, 7 deletions(-) > > diff --git a/libgcc/config/i386/linux-unwind.h > b/libgcc/config/i386/linux-unwind.h > index fe316ee02cf2..8f37642bbf55 100644 > --- a/libgcc/config/i386/linux-unwind.h > +++ b/libgcc/config/i386/linux-unwind.h > @@ -33,12 +33,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. > If not, see > > #ifndef inhibit_libc > > -/* There's no sys/ucontext.h for glibc 2.0, so no > - signal-turned-exceptions for them. There's also no configure-run for > - the target, so we can't check on (e.g.) HAVE_SYS_UCONTEXT_H. Using the > - target libc version macro should be enough. */ > -#if defined __GLIBC__ && !(__GLIBC__ == 2 && __GLIBC_MINOR__ == 0) > - > #include <signal.h> > #include <sys/ucontext.h> > > @@ -199,5 +193,4 @@ x86_frob_update_context (struct _Unwind_Context *context, > } > > #endif /* ifdef __x86_64__ */ > -#endif /* not glibc 2.0 */ > #endif /* ifdef inhibit_libc */
Ping? Roman.