diff options
Diffstat (limited to 'libelf')
-rw-r--r-- | libelf/ChangeLog | 8 | ||||
-rw-r--r-- | libelf/elf.h | 15 | ||||
-rw-r--r-- | libelf/elf_getarhdr.c | 6 |
3 files changed, 25 insertions, 4 deletions
diff --git a/libelf/ChangeLog b/libelf/ChangeLog index 18c34fcc..e8069db7 100644 --- a/libelf/ChangeLog +++ b/libelf/ChangeLog @@ -1,3 +1,11 @@ +2008-11-26 Roland McGrath <roland@redhat.com> + + * elf.h: Update from glibc. + +2008-10-06 Roland McGrath <roland@redhat.com> + + * elf_getarhdr.c (elf_getarhdr): Return NULL when passed NULL. + 2008-08-27 Roland McGrath <roland@redhat.com> * elf_begin.c (get_shnum): Avoid misaligned reads for matching endian. diff --git a/libelf/elf.h b/libelf/elf.h index a4134462..b4d34754 100644 --- a/libelf/elf.h +++ b/libelf/elf.h @@ -608,7 +608,9 @@ typedef struct #define NT_PRXFPREG 0x46e62b7f /* Contains copy of user_fxsr_struct */ #define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */ #define NT_PPC_SPE 0x101 /* PowerPC SPE/EVR registers */ +#define NT_PPC_VSX 0x102 /* PowerPC VSX registers */ #define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */ +#define NT_386_IOPERM 0x201 /* x86 io permission bitmap (1=deny) */ /* Legal values for the note segment descriptor types for object files. */ @@ -1397,6 +1399,7 @@ typedef struct #define STO_MIPS_INTERNAL 0x1 #define STO_MIPS_HIDDEN 0x2 #define STO_MIPS_PROTECTED 0x3 +#define STO_MIPS_PLT 0x8 #define STO_MIPS_SC_ALIGN_UNUSED 0xff /* MIPS specific values for `st_info'. */ @@ -1543,8 +1546,10 @@ typedef struct #define R_MIPS_TLS_TPREL_HI16 49 /* TP-relative offset, high 16 bits */ #define R_MIPS_TLS_TPREL_LO16 50 /* TP-relative offset, low 16 bits */ #define R_MIPS_GLOB_DAT 51 +#define R_MIPS_COPY 126 +#define R_MIPS_JUMP_SLOT 127 /* Keep this the last entry. */ -#define R_MIPS_NUM 52 +#define R_MIPS_NUM 128 /* Legal values for p_type field of Elf32_Phdr. */ @@ -1610,7 +1615,13 @@ typedef struct #define DT_MIPS_COMPACT_SIZE 0x7000002f /* (O32)Size of compact rel section. */ #define DT_MIPS_GP_VALUE 0x70000030 /* GP value for aux GOTs. */ #define DT_MIPS_AUX_DYNAMIC 0x70000031 /* Address of aux .dynamic. */ -#define DT_MIPS_NUM 0x32 +/* The address of .got.plt in an executable using the new non-PIC ABI. */ +#define DT_MIPS_PLTGOT 0x70000032 +/* The base of the PLT in an executable using the new non-PIC ABI if that + PLT is writable. For a non-writable PLT, this is omitted or has a zero + value. */ +#define DT_MIPS_RWPLT 0x70000034 +#define DT_MIPS_NUM 0x35 /* Legal values for DT_MIPS_FLAGS Elf32_Dyn entry. */ diff --git a/libelf/elf_getarhdr.c b/libelf/elf_getarhdr.c index deeb56db..875b2a10 100644 --- a/libelf/elf_getarhdr.c +++ b/libelf/elf_getarhdr.c @@ -1,5 +1,5 @@ /* Read header of next archive member. - Copyright (C) 1998, 1999, 2000, 2002 Red Hat, Inc. + Copyright (C) 1998, 1999, 2000, 2002, 2008 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <drepper@redhat.com>, 1998. @@ -63,6 +63,9 @@ Elf_Arhdr * elf_getarhdr (elf) Elf *elf; { + if (elf == NULL) + return NULL; + Elf *parent = elf->parent; /* Calling this function is not ok for any file type but archives. */ @@ -78,7 +81,6 @@ elf_getarhdr (elf) /* Something went wrong. Maybe there is no member left. */ return NULL; - /* We can be sure the parent is an archive. */ assert (parent->kind == ELF_K_AR); |