Files
Konstantin Belousov 9dae9b31d2 libthr: require both _Unwind_ForcedUnwind and _Unwind_GetCFA for !PIC
Static linking must bring in both symbols for the unwind to work.

The landing pads added by 2734bbbcba reference _Unwind_Resume and
__gcc_personality_v0. In a static link, these pull UnwindLevel1.o
from libgcc_eh.a, which also defines _Unwind_ForcedUnwind, but
not UnwindLevel1-gcc-ext.o, which defines _Unwind_GetCFA. Unless
something else pulls that object in, as libcxxrt does for C++ programs,
thread_unwind_stop() calls a NULL _Unwind_GetCFA on every thread exit.

Reported and tested by:	dch
Fixes:	2734bbbcba ("libthr: Create landing pad in thr_once in C++ exception")
Sponsored by:	The FreeBSD Foundation
2026-11-07 01:21:08 +02:00
..
2025-05-06 20:14:56 +03:00
2024-10-14 10:26:17 -07:00