DragonFly-188.8.131.528.gd9f47 master contrib/binutils-2.17/ld/emulparams sort-sections.sh gnu/usr.bin/binutils217/ld Makefile.amd64 Makefile.i386
corecode at crater.dragonflybsd.org
Tue Jan 6 04:39:57 PST 2009
Author: Simon Schubert <corecode at 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
DragonFly BSD source repository
More information about the Commits