[Bug 278551] pthread_join() kills the process with a return code of 134
Date: Wed, 24 Apr 2024 15:52:37 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=278551 Konstantin Belousov <kib@FreeBSD.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dim@FreeBSD.org --- Comment #4 from Konstantin Belousov <kib@FreeBSD.org> --- So this issue only happens for the static binary built with gcc. The thing that fails is the gcc unwinder: #0 0x00000000004d4dca in thr_kill () #1 0x00000000004c226f in raise () #2 0x00000000004df6f9 in abort () #3 0x0000000000402bef in uw_init_context_1 ( context=context@entry=0x7fffdfffdd50, outer_cfa=outer_cfa@entry=0x7fffdfffdf80, outer_ra=0x4b2326 <thread_unwind+54>) at ../../../gcc-13.2.0/libgcc/unwind-dw2.c:1336 #4 0x00000000004ad986 in _Unwind_ForcedUnwind (exc=0x800818940, stop=0x4b24d0 <thread_unwind_stop>, stop_argument=0x0) at ../../../gcc-13.2.0/libgcc/unwind.inc:212 #5 0x00000000004b2326 in thread_unwind () #6 0x00000000004b228c in _pthread_exit_mask () #7 0x00000000004b21fb in pthread_exit () #8 0x00000000004b1e6d in thread_start () #9 0x0000000000000000 in ?? () It fails because gcc' _Unwind_IteratePhdrCallback() insists on finding PT_GNU_EH_FRAME which is missed for gcc-compiled binary: Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align LOAD 0x0000000000000000 0x0000000000400000 0x0000000000400000 0x00000000001523d8 0x00000000001523d8 R E 0x1000 LOAD 0x0000000000153000 0x0000000000553000 0x0000000000553000 0x0000000000050274 0x0000000000273c30 RW 0x1000 NOTE 0x0000000000000158 0x0000000000400158 0x0000000000400158 0x0000000000000048 0x0000000000000048 R 0x4 TLS 0x00000000001973f0 0x00000000005973f0 0x00000000005973f0 0x0000000000001850 0x0000000000002080 R 0x10 GNU_STACK 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 RW 0x10 The EH_FRAME segment is present for clang++. I have no idea why. -- You are receiving this mail because: You are the assignee for the bug.