git: crtstuff: Stop calling _init/_fini methods on dyn binaries

John Marino marino at crater.dragonflybsd.org
Sat Mar 17 19:19:30 PDT 2012


commit e2d7e866df9b768db493bf358a0ccc59efd60621
Author: John Marino <draco at marino.st>
Date:   Sat Mar 17 20:05:10 2012 +0100

    crtstuff: Stop calling _init/_fini methods on dyn binaries
    
    The runtime linker has already been modified to add the ability to call
    _init and _fini methods on the main executable.  Previously it would
    only do this for shared libraries.
    
    A new ELF note with value 0x20 is added to signify that the crt code
    no longer calls these methods so that rtld will know that it needs
    to do it.  The name of the note section has been changed from
    .note.ABI-tag to .note.tag.  There was an option to put the two notes
    each in their own section, or put both notes in the same section.  The
    latter was selected.  Since the second note is not an ABI-tag, the
    section was simply renamed.  This doesn't cause any issues.
    
    Taken from: FreeBSD SVN 232832 (2012-03-11)

Summary of changes:
 lib/csu/Makefile          |    2 +-
 lib/csu/common/initfini.c |   57 +++++++++++++++++++++++++++++++++++++++++++++
 lib/csu/common/notes.h    |    2 +-
 lib/csu/i386/crt1_c.c     |   33 +++-----------------------
 lib/csu/x86_64/crt1.c     |   36 ++--------------------------
 5 files changed, 66 insertions(+), 64 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/e2d7e866df9b768db493bf358a0ccc59efd60621


-- 
DragonFly BSD source repository





More information about the Commits mailing list