diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-08-25 11:45:26 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-08-25 11:45:26 +0000 |
commit | 6dbb7062ff2af970c6b8befecf71d7284d5813fb (patch) | |
tree | 491c0061190c228120bb48e2b3975572b4ba33e2 /elf | |
parent | ed1ac6a2d6c744bdbd4751efc86326ceafeac26c (diff) | |
download | glibc-6dbb7062ff2af970c6b8befecf71d7284d5813fb.tar.gz glibc-6dbb7062ff2af970c6b8befecf71d7284d5813fb.tar.xz glibc-6dbb7062ff2af970c6b8befecf71d7284d5813fb.zip |
Update.
1998-08-25 11:43 Ulrich Drepper <drepper@cygnus.com> * elf/elf.h: Add syminfo stuff and other DT_* from Solaris' ELF. 1998-08-25 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> * argp/argp.h: Use __inline__ not inline. * sysdeps/i386/bits/select.h (FD_ZERO): Rewrite asm not to indicate an input register as being clobbered. * sysdeps/i386/memset.c (memset): Likewise. * sysdeps/i386/bzero.c (__bzero): Likewise. * sysdeps/i386/memcopy.h ({BYTE,WORD}_COPY_[FB]WD): Likewise. 1998-08-25 Andreas Jaeger <aj@arthur.rhein-neckar.de> * stdlib/jrand48_r.c (__jrand48_r): Set also upper half of result. Fixes PR libc/757 (Reported by Michael Creutz <creutz@bnl.gov).
Diffstat (limited to 'elf')
-rw-r--r-- | elf/elf.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/elf/elf.h b/elf/elf.h index 4557667334..a797cb520b 100644 --- a/elf/elf.h +++ b/elf/elf.h @@ -309,6 +309,38 @@ typedef struct Elf64_Xword st_size; /* Symbol size */ } Elf64_Sym; +/* The syminfo section if available contains additional information about + every dynamic symbol. */ + +typedef struct +{ + Elf32_Half si_boundto; /* Direct bindings, symbol bound to */ + Elf32_Half si_flags; /* Per symbol flags */ +} Elf32_Syminfo; + +typedef struct +{ + Elf64_Half si_boundto; /* Direct bindings, symbol bound to */ + Elf64_Half si_flags; /* Per symbol flags */ +} Elf64_Syminfo; + +/* Possible values for si_boundto. */ +#define SYMINFO_BT_SELF 0xffff /* Symbol bound to self */ +#define SYMINFO_BT_PARENT 0xfffe /* Symbol bound to parent */ +#define SYMINFO_BT_LOWRESERVE 0xff00 /* Beginning of reserved entries */ + +/* Possible bitmasks for si_flags. */ +#define SYMINFO_FLG_DIRECT 0x0001 /* Direct bound symbol */ +#define SYMINFO_FLG_PASSTHRU 0x0002 /* Pass-thru symbol for translator */ +#define SYMINFO_FLG_COPY 0x0004 /* Symbol is a copy-reloc */ +#define SYMINFO_FLG_LAZYLOAD 0x0008 /* Symbol bound to object to be lazy + loaded */ +/* Syminfo version values. */ +#define SYMINFO_NONE 0 +#define SYMINFO_CURRENT 1 +#define SYMINFO_NUM 2 + + /* Special section index. */ #define SHN_UNDEF 0 /* No section, undefined symbol. */ @@ -530,6 +562,25 @@ typedef struct #define DT_HIPROC 0x7fffffff /* End of processor-specific */ #define DT_PROCNUM DT_MIPS_NUM /* Most used by any processor */ +/* DT_* entries which fall between DT_VALRNGHI & DT_VALRNGLO use the + Dyn.d_un.d_val field of the Elf*_Dyn structure. This follows Sun's + approach. */ +#define DT_VALRNGLO 0x6ffffd00 +#define DT_POSFLAG_1 0x6ffffdfd /* Flags for DT_* entries, effecting + the following DT_* entry. */ +#define DT_SYMINSZ 0x6ffffdfe /* Size of syminfo table (in bytes) */ +#define DT_SYMINENT 0x6ffffdff /* Entry size of syminfo */ +#define DT_VALRNGHI 0x6ffffdff + +/* DT_* entries which fall between DT_ADDRRNGHI & DT_ADDRRNGLO use the + Dyn.d_un.d_ptr field of the Elf*_Dyn structure. + + If any adjustment is made to the ELF object after it has been + built these entries will need to be adjusted. */ +#define DT_ADDRRNGLO 0x6ffffe00 +#define DT_SYMINFO 0x6ffffeff /* syminfo table */ +#define DT_ADDRRNGHI 0x6ffffeff + /* The versioning entry types. The next are defined as part of the GNU extension. */ #define DT_VERSYM 0x6ffffff0 |