DragonFly commits List (threaded) for 2009-01
DragonFly BSD
DragonFly commits List (threaded) for 2009-01
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

DragonFly-2.1.1.328.gd9f47 master contrib/binutils-2.17/ld/emulparams sort-sections.sh gnu/usr.bin/binutils217/ld Makefile.amd64 Makefile.i386


From: Simon Schubert <corecode@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 6 Jan 2009 04:37:51 -0800 (PST)

commit d9f47b9b82dc9e762119fd00267eef9a0268680a
Author: Simon Schubert <corecode@dragonflybsd.org>
Date:   Tue Jan 6 13:27:38 2009 +0100

    Sort the .note.ABI-tag section always to the front of a binary.
    
    Our kernel uses a special note section in the elf header to determine
    which ABI emulation to use.  However the kernel code expects this
    section to reside in the first page of a binary.
    Up to now, we were just lucky to get most of our binaries linked in a
    way so that the note section by chance wound up in the first page.
    Yet, this was never guaranteed to happen.
    
    Recent changes to the static library build pushed the note section
    after the first page (3rd order effect), so that the kernel could not
    determine the correct ABI emulation anymore.
    
    There are two possible fixes:
    For one, the kernel could be changed to accept note sections located
    anywhere in the binary.  This however does not apply to already deployed
    systems, which could face problems when upgrading.
    
    Second, we could ensure that the note tag always winds up in the first
    page of a binary.  We take this approach by changing our linker scripts
    to sort the .note.ABI-tag section to the front.

Summary of changes:
 .../binutils-2.17/ld/emulparams/sort-sections.sh   |   10 +++++++++
 gnu/usr.bin/binutils217/ld/Makefile.amd64          |   22 ++++++++++++-------
 gnu/usr.bin/binutils217/ld/Makefile.i386           |   11 ++++++---
 3 files changed, 31 insertions(+), 12 deletions(-)
 create mode 100644 contrib/binutils-2.17/ld/emulparams/sort-sections.sh

http://gitweb.dragonflybsd.org/?p=dragonfly.git;a=commitdiff;h=d9f47b9b82dc9e762119fd00267eef9a0268680a


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]