git: DragonFly_RELEASE_3_0 Support exception handling on statically-linked binaries

John Marino marino at
Sun Feb 5 08:51:15 PST 2012

commit d4cce2160341f99fcf56cb691c56b2475250c044
Author: John Marino <draco at>
Date:   Sun Feb 5 17:21:27 2012 +0100

    Support exception handling on statically-linked binaries
    The real-time dynamic linker handles exceptions on dynamically-linked
    binaries through the dl_iterate_phdr function.  The RTLD isn't invoked
    on statically-built executables so thrown exceptions weren't getting
    handled.  There was a dummy dl_iterate_phdr function in libc with a
    weak symbol that gets looked at when the rtld version isn't present.
    This function was populated and gets called when the statically-linked
    executable throws an exception.
    It requires the GNU_EH_FRAME program header to be present.  The base
    gcc 4.4 spec file was modified to emit this header for statically-built
    binaries in addition to the dynamically lined ones.

Summary of changes:
 contrib/gcc-4.4/gcc/config/dragonfly.h |    3 +-
 lib/libc/gen/dlfcn.c                   |   60 ++++++++++++++++++++++++++++++-
 2 files changed, 59 insertions(+), 4 deletions(-)

DragonFly BSD source repository

More information about the Commits mailing list