https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107026

--- Comment #6 from Thomas Neumann <tneumann at users dot sourceforge.net> ---
I have a patch ready, I am waiting for approval:

https://gcc.gnu.org/pipermail/gcc-patches/2022-September/602130.html

When using the atomic fast path deregistering can fail during
program shutdown if the lookup structures are already destroyed.
The assert in __deregister_frame_info_bases takes that into
account. In the non-fast-path case however is not aware of
program shutdown, which caused a compiler error on such platforms.
We fix that by introducing a constant for in_shutdown in
non-fast-path builds.

libgcc/ChangeLog:
        * unwind-dw2-fde.c: Introduce a constant for in_shutdown
        for the non-fast-path case.
---
 libgcc/unwind-dw2-fde.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libgcc/unwind-dw2-fde.c b/libgcc/unwind-dw2-fde.c
index d237179f4ea..0bcd5061d76 100644
--- a/libgcc/unwind-dw2-fde.c
+++ b/libgcc/unwind-dw2-fde.c
@@ -67,6 +67,8 @@ static void
 init_object (struct object *ob);

 #else
+/* Without fast path frame deregistration must always succeed.  */
+static const int in_shutdown = 0;

 /* The unseen_objects list contains objects that have been registered
    but not yet categorized in any way.  The seen_objects list has had
-- 
2.34.1

Reply via email to