Add OpenVMS extensions.

* ia64.h (SHF_IA_64_VMS_GLOBAL, SHF_IA_64_VMS_OVERLAID)
        (SHF_IA_64_VMS_SHARED, SHF_IA_64_VMS_VECTOR)
        (SHF_IA_64_VMS_ALLOC_64BIT, SHF_IA_64_VMS_PROTECTED)
        (SHT_IA_64_VMS_TRACE, SHT_IA_64_VMS_TIE_SIGNATURES)
        (SHT_IA_64_VMS_DEBUG, SHT_IA_64_VMS_DEBUG_STR)
        (SHT_IA_64_VMS_LINKAGES, SHT_IA_64_VMS_SYMBOL_VECTOR)
        (SHT_IA_64_VMS_FIXUP, DT_IA_64_VMS_SUBTYPE)
        (DT_IA_64_VMS_IMGIOCNT, DT_IA_64_VMS_LNKFLAGS)
        (DT_IA_64_VMS_VIR_MEM_BLK_SIZ, DT_IA_64_VMS_IDENT)
        (DT_IA_64_VMS_NEEDED_IDENT, DT_IA_64_VMS_IMG_RELA_CNT)
        (DT_IA_64_VMS_SEG_RELA_CNT, DT_IA_64_VMS_FIXUP_RELA_CNT)
        (DT_IA_64_VMS_FIXUP_NEEDED, DT_IA_64_VMS_SYMVEC_CNT)
        (DT_IA_64_VMS_XLATED, DT_IA_64_VMS_STACKSIZE)
        (DT_IA_64_VMS_UNWINDSZ, DT_IA_64_VMS_UNWIND_CODSEG)
        (DT_IA_64_VMS_UNWIND_INFOSEG, DT_IA_64_VMS_LINKTIME)
        (DT_IA_64_VMS_SEG_NO, DT_IA_64_VMS_SYMVEC_OFFSET)
        (DT_IA_64_VMS_SYMVEC_SEG, DT_IA_64_VMS_UNWIND_OFFSET)
        (DT_IA_64_VMS_UNWIND_SEG, DT_IA_64_VMS_STRTAB_OFFSET)
        (DT_IA_64_VMS_SYSVER_OFFSET, DT_IA_64_VMS_IMG_RELA_OFF)
        (DT_IA_64_VMS_SEG_RELA_OFF, DT_IA_64_VMS_FIXUP_RELA_OFF)
        (DT_IA_64_VMS_PLTGOT_OFFSET, DT_IA_64_VMS_PLTGOT_SEG)
        (DT_IA_64_VMS_FPMODE, SHN_IA_64_VMS_SYMVEC): Define

        * readelf.c (dump_relocations): Decode OpenVMS-specific sections.
        (get_ia64_dynamic_type): Decode OpenVMS-specific tags.
        (get_dynamic_type): Handle IA64-specific tags.
        (get_ia64_section_type_name): Handle OpenVMS-specific sections.
        (get_section_type_name): Handle OS-specific sections (and
        particularly IA64 OpenVMS one).
        (get_elf_section_flags): Makes flags static.  Add entries for IA64 and
        decode them.
This commit is contained in:
Nick Clifton 2008-01-30 10:37:43 +00:00
parent 341b9607bd
commit f022e6b98e
2 changed files with 96 additions and 6 deletions

View File

@ -1,3 +1,29 @@
2008-01-30 Tristan Gingold <gingold@adacore.com>
Add OpenVMS extensions.
* ia64.h (SHF_IA_64_VMS_GLOBAL, SHF_IA_64_VMS_OVERLAID)
(SHF_IA_64_VMS_SHARED, SHF_IA_64_VMS_VECTOR)
(SHF_IA_64_VMS_ALLOC_64BIT, SHF_IA_64_VMS_PROTECTED)
(SHT_IA_64_VMS_TRACE, SHT_IA_64_VMS_TIE_SIGNATURES)
(SHT_IA_64_VMS_DEBUG, SHT_IA_64_VMS_DEBUG_STR)
(SHT_IA_64_VMS_LINKAGES, SHT_IA_64_VMS_SYMBOL_VECTOR)
(SHT_IA_64_VMS_FIXUP, DT_IA_64_VMS_SUBTYPE)
(DT_IA_64_VMS_IMGIOCNT, DT_IA_64_VMS_LNKFLAGS)
(DT_IA_64_VMS_VIR_MEM_BLK_SIZ, DT_IA_64_VMS_IDENT)
(DT_IA_64_VMS_NEEDED_IDENT, DT_IA_64_VMS_IMG_RELA_CNT)
(DT_IA_64_VMS_SEG_RELA_CNT, DT_IA_64_VMS_FIXUP_RELA_CNT)
(DT_IA_64_VMS_FIXUP_NEEDED, DT_IA_64_VMS_SYMVEC_CNT)
(DT_IA_64_VMS_XLATED, DT_IA_64_VMS_STACKSIZE)
(DT_IA_64_VMS_UNWINDSZ, DT_IA_64_VMS_UNWIND_CODSEG)
(DT_IA_64_VMS_UNWIND_INFOSEG, DT_IA_64_VMS_LINKTIME)
(DT_IA_64_VMS_SEG_NO, DT_IA_64_VMS_SYMVEC_OFFSET)
(DT_IA_64_VMS_SYMVEC_SEG, DT_IA_64_VMS_UNWIND_OFFSET)
(DT_IA_64_VMS_UNWIND_SEG, DT_IA_64_VMS_STRTAB_OFFSET)
(DT_IA_64_VMS_SYSVER_OFFSET, DT_IA_64_VMS_IMG_RELA_OFF)
(DT_IA_64_VMS_SEG_RELA_OFF, DT_IA_64_VMS_FIXUP_RELA_OFF)
(DT_IA_64_VMS_PLTGOT_OFFSET, DT_IA_64_VMS_PLTGOT_SEG)
(DT_IA_64_VMS_FPMODE, SHN_IA_64_VMS_SYMVEC): Define
2008-01-16 Mark Kettenis <kettenis@gnu.org> 2008-01-16 Mark Kettenis <kettenis@gnu.org>
* common.h (AT_SUN_AUXFLAGS): Define. * common.h (AT_SUN_AUXFLAGS): Define.

View File

@ -1,5 +1,5 @@
/* IA-64 ELF support for BFD. /* IA-64 ELF support for BFD.
Copyright 1998, 1999, 2000, 2001, 2002, 2003 Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2008
Free Software Foundation, Inc. Free Software Foundation, Inc.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com> Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
@ -59,6 +59,13 @@
#define SHF_IA_64_HP_TLS 0x01000000 /* HP specific TLS flag. */ #define SHF_IA_64_HP_TLS 0x01000000 /* HP specific TLS flag. */
#define SHF_IA_64_VMS_GLOBAL 0x0100000000ULL /* Global for clustering. */
#define SHF_IA_64_VMS_OVERLAID 0x0200000000ULL /* To be overlaid. */
#define SHF_IA_64_VMS_SHARED 0x0400000000ULL /* Shared btw processes. */
#define SHF_IA_64_VMS_VECTOR 0x0800000000ULL /* Priv change mode vect. */
#define SHF_IA_64_VMS_ALLOC_64BIT 0x1000000000ULL /* Allocate beyond 2GB. */
#define SHF_IA_64_VMS_PROTECTED 0x2000000000ULL /* Export from sharable. */
/* Possible values for sh_type in Elf64_Shdr: */ /* Possible values for sh_type in Elf64_Shdr: */
#define SHT_IA_64_EXT (SHT_LOPROC + 0) /* Extension bits. */ #define SHT_IA_64_EXT (SHT_LOPROC + 0) /* Extension bits. */
@ -74,6 +81,26 @@
annotate or sed will turn it into 32 or 64 during the build. */ annotate or sed will turn it into 32 or 64 during the build. */
#define SHT_IA_64_HP_OPT_ANOT 0x60000004 #define SHT_IA_64_HP_OPT_ANOT 0x60000004
/* OpenVMS section types. */
/* The section contains PC-to-source correlation information for use by the
VMS RTL's traceback facility. */
#define SHT_IA_64_VMS_TRACE 0x60000000
/* The section contains routine signature information for use by the
translated image executive. */
#define SHT_IA_64_VMS_TIE_SIGNATURES 0x60000001
/* The section contains dwarf-3 information. */
#define SHT_IA_64_VMS_DEBUG 0x60000002
/* The section contains the dwarf-3 string table. */
#define SHT_IA_64_VMS_DEBUG_STR 0x60000003
/* The section contains linkage information to perform consistency checking
accross object modules. */
#define SHT_IA_64_VMS_LINKAGES 0x60000004
/* The section allows the symbol vector in an image to be location through
the section table. */
#define SHT_IA_64_VMS_SYMBOL_VECTOR 0x60000005
/* The section contains inter-image fixups. */
#define SHT_IA_64_VMS_FIXUP 0x60000006
/* Bits in the p_flags field of Elf64_Phdr: */ /* Bits in the p_flags field of Elf64_Phdr: */
#define PF_IA_64_NORECOV 0x80000000 #define PF_IA_64_NORECOV 0x80000000
@ -95,11 +122,48 @@
#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0) #define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0)
/* VMS specific values for d_tag in Elf64_Dyn: */
#define DT_IA_64_VMS_SUBTYPE (DT_LOOS + 0)
#define DT_IA_64_VMS_IMGIOCNT (DT_LOOS + 2)
#define DT_IA_64_VMS_LNKFLAGS (DT_LOOS + 8)
#define DT_IA_64_VMS_VIR_MEM_BLK_SIZ (DT_LOOS + 10)
#define DT_IA_64_VMS_IDENT (DT_LOOS + 12)
#define DT_IA_64_VMS_NEEDED_IDENT (DT_LOOS + 16)
#define DT_IA_64_VMS_IMG_RELA_CNT (DT_LOOS + 18)
#define DT_IA_64_VMS_SEG_RELA_CNT (DT_LOOS + 20)
#define DT_IA_64_VMS_FIXUP_RELA_CNT (DT_LOOS + 22)
#define DT_IA_64_VMS_FIXUP_NEEDED (DT_LOOS + 24)
#define DT_IA_64_VMS_SYMVEC_CNT (DT_LOOS + 26)
#define DT_IA_64_VMS_XLATED (DT_LOOS + 30)
#define DT_IA_64_VMS_STACKSIZE (DT_LOOS + 32)
#define DT_IA_64_VMS_UNWINDSZ (DT_LOOS + 34)
#define DT_IA_64_VMS_UNWIND_CODSEG (DT_LOOS + 36)
#define DT_IA_64_VMS_UNWIND_INFOSEG (DT_LOOS + 38)
#define DT_IA_64_VMS_LINKTIME (DT_LOOS + 40)
#define DT_IA_64_VMS_SEG_NO (DT_LOOS + 42)
#define DT_IA_64_VMS_SYMVEC_OFFSET (DT_LOOS + 44)
#define DT_IA_64_VMS_SYMVEC_SEG (DT_LOOS + 46)
#define DT_IA_64_VMS_UNWIND_OFFSET (DT_LOOS + 48)
#define DT_IA_64_VMS_UNWIND_SEG (DT_LOOS + 50)
#define DT_IA_64_VMS_STRTAB_OFFSET (DT_LOOS + 52)
#define DT_IA_64_VMS_SYSVER_OFFSET (DT_LOOS + 54)
#define DT_IA_64_VMS_IMG_RELA_OFF (DT_LOOS + 56)
#define DT_IA_64_VMS_SEG_RELA_OFF (DT_LOOS + 58)
#define DT_IA_64_VMS_FIXUP_RELA_OFF (DT_LOOS + 60)
#define DT_IA_64_VMS_PLTGOT_OFFSET (DT_LOOS + 62)
#define DT_IA_64_VMS_PLTGOT_SEG (DT_LOOS + 64)
#define DT_IA_64_VMS_FPMODE (DT_LOOS + 66)
/* This section only used by HP-UX, The HP linker gives weak symbols /* This section only used by HP-UX, The HP linker gives weak symbols
precedence over regular common symbols. We want common to override precedence over regular common symbols. We want common to override
weak. Using this common instead of SHN_COMMON does that. */ weak. Using this common instead of SHN_COMMON does that. */
#define SHN_IA_64_ANSI_COMMON 0xFF00 #define SHN_IA_64_ANSI_COMMON 0xFF00
/* This section is only used by OpenVMS. Symbol is defined in the symbol
vector (only possible for image files). */
#define SHN_IA_64_VMS_SYMVEC 0xff20
/* IA64-specific relocation types: */ /* IA64-specific relocation types: */
/* Relocs apply to specific instructions within a bundle. The least /* Relocs apply to specific instructions within a bundle. The least