From d28f5b66f3cc742592491cb964311ed714d39f59 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 11 Jan 2000 17:53:33 +0000 Subject: [PATCH] Fix mistakes made about interpretation of ELF ABI spec --- include/elf/ChangeLog | 10 ++++++++++ include/elf/common.h | 19 ++++++++++++++----- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog index c2772680a..4a5321b96 100644 --- a/include/elf/ChangeLog +++ b/include/elf/ChangeLog @@ -1,3 +1,13 @@ +2000-01-11 Nick Clifton + + * common.h (DT_ENCODING): Fix definition of this value. + (DT_LOOS): Fix definition of this value. + (DT_HIOS): Fix definition of this value. + (OLD_DT_LOOS): Value of DT_LOOS before Oct 4, 1999 draft + of ELF spec changed it. + (OLD_DT_HIOS): Value of DT_HIOS before Oct 4, 1999 draft + of ELF spec changed it. + 2000-01-10 Egor Duda * common.h (NT_WIN32PSTATUS): Define. (cygwin elf core dumps). diff --git a/include/elf/common.h b/include/elf/common.h index f2bed2c42..435bc6d99 100644 --- a/include/elf/common.h +++ b/include/elf/common.h @@ -409,17 +409,26 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define DT_FINI_ARRAYSZ 28 #define DT_RUNPATH 29 #define DT_FLAGS 30 -#define DT_ENCODING 31 /* Note: Oct 4, 1999 Draft specifies this as 32, but this conflicts with DT_PREINIT_ARRAY */ -#define DT_PREINIT_ARRAY 32 + +#define DT_ENCODING 32 +#define DT_PREINIT_ARRAY 32 #define DT_PREINIT_ARRAYSZ 33 -#define DT_LOOS 0x60000000 /* Note: Oct 4, 1999 draft has this as 0x6fff000d */ -#define DT_HIOS 0x6fffffff /* Note: Oct 4, 1999 draft has this as 0x6fff0000 */ +/* Note, the Oct 4, 1999 draft of the ELF ABI changed the values + for DT_LOOS and DT_HIOS. Some implementations however, use + values outside of the new range (see below). */ +#define OLD_DT_LOOS 0x60000000 +#define DT_LOOS 0x6000000d +#define DT_HIOS 0x6fff0000 +#define OLD_DT_HIOS 0x6fffffff + #define DT_LOPROC 0x70000000 #define DT_HIPROC 0x7fffffff /* The next four dynamic tags are used on Solaris. We support them - everywhere. */ + everywhere. Note these values lie outside of the (new) range for + OS specific values. This is a deliberate special case and we + maintain it for backwards compatability. */ #define DT_VALRNGLO 0x6ffffd00 #define DT_PLTPADSZ 0x6ffffdf9 #define DT_MOVEENT 0x6ffffdfa