https://gcc.gnu.org/g:e129b8d7682c9a6c4d874f58de142543d3804169

commit r15-7609-ge129b8d7682c9a6c4d874f58de142543d3804169
Author: Roman Kagan <rka...@amazon.de>
Date:   Thu Jan 2 16:32:17 2025 +0100

    libgcc: i386/linux-unwind.h: always rely on sys/ucontext.h
    
    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.
    
    libgcc/ChangeLog:
    
            * config/i386/linux-unwind.h: Remove preprocessor
            condition to enable fallback path for all libc-s.
    
    Signed-off-by: Roman Kagan <rka...@amazon.de>

Diff:
---
 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  */

Reply via email to