diff options
author | obrien <obrien@FreeBSD.org> | 2000-04-18 02:39:26 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2000-04-18 02:39:26 +0000 |
commit | 0eac6bbc676f298cf518321aa0d24cc001c69611 (patch) | |
tree | 0215bcb520740db905cae767cb8c981d2e3f8a50 /lib/csu/amd64 | |
parent | 2e1592d902d16ed9876e30509b0d925e1a30e2c7 (diff) | |
download | FreeBSD-src-0eac6bbc676f298cf518321aa0d24cc001c69611.zip FreeBSD-src-0eac6bbc676f298cf518321aa0d24cc001c69611.tar.gz |
Change our ELF binary branding to something more acceptable to the Binutils
maintainers.
After we established our branding method of writing upto 8 characters of
the OS name into the ELF header in the padding; the Binutils maintainers
and/or SCO (as USL) decided that instead the ELF header should grow two new
fields -- EI_OSABI and EI_ABIVERSION. Each of these are an 8-bit unsigned
integer. SCO has assigned official values for the EI_OSABI field. In
addition to this, the Binutils maintainers and NetBSD decided that a better
ELF branding method was to include ABI information in a ".note" ELF
section.
With this set of changes, we will now create ELF binaries branded using
both "official" methods. Due to the complexity of adding a section to a
binary, binaries branded with ``brandelf'' will only brand using the
EI_OSABI method. Also due to the complexity of pulling a section out of an
ELF file vs. poking around in the ELF header, our image activator only
looks at the EI_OSABI header field.
Note that a new kernel can still properly load old binaries except for
Linux static binaries branded in our old method.
*
* For a short period of time, ``ld'' will also brand ELF binaries
* using our old method. This is so people can still use kernel.old
* with a new world. This support will be removed before 5.0-RELEASE,
* and may not last anywhere upto the actual release. My expiration
* time for this is about 6mo.
*
Diffstat (limited to 'lib/csu/amd64')
-rw-r--r-- | lib/csu/amd64/crti.S | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/csu/amd64/crti.S b/lib/csu/amd64/crti.S index 0038497..a4df32e 100644 --- a/lib/csu/amd64/crti.S +++ b/lib/csu/amd64/crti.S @@ -25,6 +25,20 @@ * $FreeBSD$ */ + /* See http://www.netbsd.org/Documentation/kernel/elf-notes.html for + details on the ELF .note section as we are using it. */ + .section .note.ABI-tag, "a" + .align 4 + .long 1f - 0f # name length + .long 3f - 2f # data length + .long 1 # note type +0: .asciz "FreeBSD" # vendor name +1: .align 4 +2: .long 500000 # data - ABI tag + # (from __FreeBSD_version (param.h)) +3: .align 4 # pad out section + + .section .init,"ax",@progbits .align 4 .globl _init |