Bug #2012

C++ programs crash in libc __cxa_finalize

Added by ftigeot over 5 years ago. Updated over 5 years ago.

Status:ClosedStart date:
Priority:NormalDue date:
Assignee:-% Done:


Target version:-


Some C++ programs with a long list of registered destructors in .so crash on
DragonFly 2.8 and 2.9 systems.

The crashes seem to occur in __cxa_finalize from /usr/src/lib/libc/stdlib/atexit.c

Program received signal SIGSEGV, Segmentation fault.
0x0000000801535510 in ?? ()
(gdb) bt
#0 0x0000000801535510 in ?? ()
#1 0x00000008010b7db9 in __cxa_finalize (dso=0x0) at
#2 0x00000008010b7a4a in exit (status=0) at
#3 0x000000000040223a in _start (ap=0x7fffffffcd60, cleanup=0x80050ef0d
<rtld_exit>) at /usr/src/lib/csu/x86_64/crt1.c:101
(gdb) quit

Our version of atexit.c was taken from FreeBSD in April 2010.
Just a bit later, the FreeBSD guys fixed a similar issue with C++ dynamic shared

We should pick-up the changes they made in revisions 1.11 and 1.12 of their
atexit.c :


#1 Updated by ftigeot over 5 years ago

Resolved with the import of gcc-4.4.5 and binutils-2.21

Also available in: Atom PDF