elf_repl.h   elf_repl.h 
/* /*
elf_repl.h - public header file for systems that lack it. elf_repl.h - public header file for systems that lack it.
Copyright (C) 1995 - 2001 Michael Riepe <michael@stud.uni-hannover.de> Copyright (C) 1995 - 2002 Michael Riepe <michael@stud.uni-hannover.de>
This library is free software; you can redistribute it and/or This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version. version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details. Library General Public License for more details.
You should have received a copy of the GNU Library General Public You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free Software License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
/* @(#) $Id: elf_repl.h,v 1.9 2001/10/05 14:26:34 michael Exp $ */ /* @(#) $Id: elf_repl.h,v 1.12 2003/01/02 04:34:47 michael Exp $ */
/* /*
* NEVER INCLUDE THIS FILE DIRECTLY - USE <libelf.h> INSTEAD! * NEVER INCLUDE THIS FILE DIRECTLY - USE <libelf.h> INSTEAD!
*/ */
#ifndef _ELF_REPL_H #ifndef _ELF_REPL_H
#define _ELF_REPL_H #define _ELF_REPL_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
skipping to change at line 116 skipping to change at line 116
Elf64_Half e_ehsize; Elf64_Half e_ehsize;
Elf64_Half e_phentsize; Elf64_Half e_phentsize;
Elf64_Half e_phnum; Elf64_Half e_phnum;
Elf64_Half e_shentsize; Elf64_Half e_shentsize;
Elf64_Half e_shnum; Elf64_Half e_shnum;
Elf64_Half e_shstrndx; Elf64_Half e_shstrndx;
} Elf64_Ehdr; } Elf64_Ehdr;
#endif /* __LIBELF64 */ #endif /* __LIBELF64 */
/* /*
* e-ident * e_ident
*/ */
#define EI_MAG0 0 #define EI_MAG0 0
#define EI_MAG1 1 #define EI_MAG1 1
#define EI_MAG2 2 #define EI_MAG2 2
#define EI_MAG3 3 #define EI_MAG3 3
#define EI_CLASS 4 #define EI_CLASS 4
#define EI_DATA 5 #define EI_DATA 5
#define EI_VERSION 6 #define EI_VERSION 6
#define EI_OSABI 7 #define EI_OSABI 7
#define EI_ABIVERSION 8 #define EI_ABIVERSION 8
#define EI_PAD 9 #define EI_PAD 9
#define ELFMAG0 0x7f #define ELFMAG0 0x7f
#define ELFMAG1 'E' #define ELFMAG1 'E'
#define ELFMAG2 'L' #define ELFMAG2 'L'
#define ELFMAG3 'F' #define ELFMAG3 'F'
#define ELFMAG "\177ELF" #define ELFMAG "\177ELF"
#define SELFMAG 4 #define SELFMAG 4
/*
* e_ident[EI_CLASS]
*/
#define ELFCLASSNONE 0 #define ELFCLASSNONE 0
#define ELFCLASS32 1 #define ELFCLASS32 1
#define ELFCLASS64 2 #define ELFCLASS64 2
#define ELFCLASSNUM 3 #define ELFCLASSNUM 3
/*
* e_ident[EI_DATA]
*/
#define ELFDATANONE 0 #define ELFDATANONE 0
#define ELFDATA2LSB 1 #define ELFDATA2LSB 1
#define ELFDATA2MSB 2 #define ELFDATA2MSB 2
#define ELFDATANUM 3 #define ELFDATANUM 3
#define ELFOSABI_SYSV 0 /* UNIX SystemV ABI */ /*
#define ELFOSABI_HPUX 1 /* HP-UX operating system */ * e_ident[EI_OSABI]
*/
#define ELFOSABI_NONE 0 /* No extensions or unspecified */
#define ELFOSABI_SYSV ELFOSABI_NONE
#define ELFOSABI_HPUX 1 /* Hewlett-Packard HP-UX */
#define ELFOSABI_NETBSD 2 /* NetBSD */
#define ELFOSABI_LINUX 3 /* Linux */
#define ELFOSABI_SOLARIS 6 /* Sun Solaris */
#define ELFOSABI_AIX 7 /* AIX */
#define ELFOSABI_IRIX 8 /* IRIX */
#define ELFOSABI_FREEBSD 9 /* FreeBSD */
#define ELFOSABI_TRU64 10 /* Compaq TRU64 UNIX */
#define ELFOSABI_MODESTO 11 /* Novell Modesto */
#define ELFOSABI_OPENBSD 12 /* Open BSD */
#define ELFOSABI_OPENVMS 13 /* Open VMS */
#define ELFOSABI_NSK 14 /* Hewlett-Packard Non-Stop Kernel *
/
/* these are probably obsolete: */
#define ELFOSABI_ARM 97 /* ARM */ #define ELFOSABI_ARM 97 /* ARM */
#define ELFOSABI_STANDALONE 255 /* standalone (embedded) application */ #define ELFOSABI_STANDALONE 255 /* standalone (embedded) application */
/* /*
* e_type * e_type
*/ */
#define ET_NONE 0 #define ET_NONE 0
#define ET_REL 1 #define ET_REL 1
#define ET_EXEC 2 #define ET_EXEC 2
#define ET_DYN 3 #define ET_DYN 3
#define ET_CORE 4 #define ET_CORE 4
#define ET_NUM 5 #define ET_NUM 5
#define ET_LOOS 0xfe00 #define ET_LOOS 0xfe00
#define ET_HIOS 0xfeff #define ET_HIOS 0xfeff
#define ET_LOPROC 0xff00 #define ET_LOPROC 0xff00
#define ET_HIPROC 0xffff #define ET_HIPROC 0xffff
/* /*
* e_machine * e_machine
*/ */
#define EM_NONE 0 #define EM_NONE 0 /* No machine */
#define EM_M32 1 /* AT&T WE 32100 */ #define EM_M32 1 /* AT&T WE 32100 */
#define EM_SPARC 2 /* SPARC */ #define EM_SPARC 2 /* SPARC */
#define EM_386 3 /* Intel i386 */ #define EM_386 3 /* Intel 80386 */
#define EM_68K 4 /* Motorola 68000 */ #define EM_68K 4 /* Motorola 68000 */
#define EM_88K 5 /* Motorola 88000 */ #define EM_88K 5 /* Motorola 88000 */
#define EM_486 6 /* Intel i486 (do not use this one) #define EM_486 6 /* Intel i486 (DO NOT USE THIS ONE) */
*/ #define EM_860 7 /* Intel 80860 */
#define EM_860 7 /* Intel i860 */ #define EM_MIPS 8 /* MIPS I Architecture */
#define EM_MIPS 8 /* MIPS R3000 */ #define EM_S370 9 /* IBM System/370 Processor */
#define EM_MIPS_RS3_LE 10 /* MIPS R3000 little-endian */ #define EM_MIPS_RS3_LE 10 /* MIPS RS3000 Little-endian */
#define EM_PARISC 15 /* HP PA-RISC */ #define EM_PARISC 15 /* Hewlett-Packard PA-RISC */
#define EM_VPP500 17 /* Fujitsu VPP500 */ #define EM_VPP500 17 /* Fujitsu VPP500 */
#define EM_SPARC32PLUS 18 /* enhanced instruction set SPARC */ #define EM_SPARC32PLUS 18 /* Enhanced instruction set SPARC */
#define EM_960 19 /* Intel i960 */ #define EM_960 19 /* Intel 80960 */
#define EM_PPC 20 /* PowerPC */ #define EM_PPC 20 /* PowerPC */
#define EM_S390 22 /* IBM S/390 */ #define EM_PPC64 21 /* 64-bit PowerPC */
#define EM_V800 36 /* NEC V800 */ #define EM_S390 22 /* IBM System/390 Processor */
#define EM_FR20 37 /* Fujitsu FR20 */ #define EM_V800 36 /* NEC V800 */
#define EM_RH32 38 /* TRW RH-32 */ #define EM_FR20 37 /* Fujitsu FR20 */
#define EM_RCE 39 /* Motorola RCE */ #define EM_RH32 38 /* TRW RH-32 */
#define EM_ARM 40 /* Advanced RISC Machines ARM */ #define EM_RCE 39 /* Motorola RCE */
#define EM_ALPHA 41 /* Digital Alpha */ #define EM_ARM 40 /* Advanced RISC Machines ARM */
#define EM_SH 42 /* Hitachi SH */ #define EM_ALPHA 41 /* Digital Alpha */
#define EM_SPARCV9 43 /* SPARC Version 9 */ #define EM_SH 42 /* Hitachi SH */
#define EM_TRICORE 44 /* Siemens Tricore embedded CPU */ #define EM_SPARCV9 43 /* SPARC Version 9 */
#define EM_ARC 45 /* Argonaut RISC Core */ #define EM_TRICORE 44 /* Siemens TriCore embedded processor */
#define EM_H8_300 46 /* Hitachi H8/300 */ #define EM_ARC 45 /* Argonaut RISC Core, Argonaut Technologies
#define EM_H8_300H 47 /* Hitachi H8/300H */ Inc. */
#define EM_H8S 48 /* Hitachi H8S */ #define EM_H8_300 46 /* Hitachi H8/300 */
#define EM_H8_500 49 /* Hitachi H8/500 */ #define EM_H8_300H 47 /* Hitachi H8/300H */
#define EM_IA_64 50 /* Intel Merced(tm) CPU */ #define EM_H8S 48 /* Hitachi H8S */
#define EM_MIPS_X 51 /* Stanford MIPS-X */ #define EM_H8_500 49 /* Hitachi H8/500 */
#define EM_COLDFIRE 52 /* Motorola Coldfire */ #define EM_IA_64 50 /* Intel IA-64 processor architecture */
#define EM_64HC12 53 /* Motorola M68HC12 */ #define EM_MIPS_X 51 /* Stanford MIPS-X */
#define EM_X8664 60 /* AMD x86-64 */ #define EM_COLDFIRE 52 /* Motorola ColdFire */
#define EM_NUM 61 #define EM_68HC12 53 /* Motorola M68HC12 */
#define EM_MMA 54 /* Fujitsu MMA Multimedia Accelerator */
#define EM_PCP 55 /* Siemens PCP */
#define EM_NCPU 56 /* Sony nCPU embedded RISC processor
*/
#define EM_NDR1 57 /* Denso NDR1 microprocessor */
#define EM_STARCORE 58 /* Motorola Star*Core processor */
#define EM_ME16 59 /* Toyota ME16 processor */
#define EM_ST100 60 /* STMicroelectronics ST100 processor */
#define EM_TINYJ 61 /* Advanced Logic Corp. TinyJ embedded proce
ssor family */
#define EM_X86_64 62 /* AMD x86-64 architecture */
#define EM_PDSP 63 /* Sony DSP Processor */
#define EM_FX66 66 /* Siemens FX66 microcontroller */
#define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 bit microcon
troller */
#define EM_ST7 68 /* STMicroelectronics ST7 8-bit microcontrol
ler */
#define EM_68HC16 69 /* Motorola MC68HC16 Microcontroller */
#define EM_68HC11 70 /* Motorola MC68HC11 Microcontroller */
#define EM_68HC08 71 /* Motorola MC68HC08 Microcontroller */
#define EM_68HC05 72 /* Motorola MC68HC05 Microcontroller */
#define EM_SVX 73 /* Silicon Graphics SVx */
#define EM_ST19 74 /* STMicroelectronics ST19 8-bit mic
rocontroller */
#define EM_VAX 75 /* Digital VAX */
#define EM_CRIS 76 /* Axis Communications 32-bit embedd
ed processor */
#define EM_JAVELIN 77 /* Infineon Technologies 32-bit embedded pro
cessor */
#define EM_FIREPATH 78 /* Element 14 64-bit DSP Processor */
#define EM_ZSP 79 /* LSI Logic 16-bit DSP Processor */
#define EM_MMIX 80 /* Donald Knuth's educational 64-bit
processor */
#define EM_HUANY 81 /* Harvard University machine-independent ob
ject files */
#define EM_PRISM 82 /* SiTera Prism */
#define EM_AVR 83 /* Atmel AVR 8-bit microcontroller */
#define EM_FR30 84 /* Fujitsu FR30 */
#define EM_D10V 85 /* Mitsubishi D10V */
#define EM_D30V 86 /* Mitsubishi D30V */
#define EM_V850 87 /* NEC v850 */
#define EM_M32R 88 /* Mitsubishi M32R */
#define EM_MN10300 89 /* Matsushita MN10300 */
#define EM_MN10200 90 /* Matsushita MN10200 */
#define EM_PJ 91 /* picoJava */
#define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */
#define EM_ARC_A5 93 /* ARC Cores Tangent-A5 */
#define EM_XTENSA 94 /* Tensilica Xtensa Architecture */
#define EM_VIDEOCORE 95 /* Alphamosaic VideoCore processor */
#define EM_TMM_GPP 96 /* Thompson Multimedia General Purpose Proce
ssor */
#define EM_NS32K 97 /* National Semiconductor 32000 series */
#define EM_TPC 98 /* Tenor Network TPC processor */
#define EM_SNP1K 99 /* Trebia SNP 1000 processor */
#define EM_ST200 100 /* STMicroelectronics (www.st.com) ST200 mic
rocontroller */
#define EM_NUM 101
/* /*
* e_ident[EI_VERSION], e_version * e_ident[EI_VERSION], e_version
*/ */
#define EV_NONE 0 #define EV_NONE 0
#define EV_CURRENT 1 #define EV_CURRENT 1
#define EV_NUM 2 #define EV_NUM 2
/* /*
* Section header * Section header
skipping to change at line 254 skipping to change at line 322
* Special section indices * Special section indices
*/ */
#define SHN_UNDEF 0 #define SHN_UNDEF 0
#define SHN_LORESERVE 0xff00 #define SHN_LORESERVE 0xff00
#define SHN_LOPROC 0xff00 #define SHN_LOPROC 0xff00
#define SHN_HIPROC 0xff1f #define SHN_HIPROC 0xff1f
#define SHN_LOOS 0xff20 #define SHN_LOOS 0xff20
#define SHN_HIOS 0xff3f #define SHN_HIOS 0xff3f
#define SHN_ABS 0xfff1 #define SHN_ABS 0xfff1
#define SHN_COMMON 0xfff2 #define SHN_COMMON 0xfff2
#define SHN_XINDEX 0xffff
#define SHN_HIRESERVE 0xffff #define SHN_HIRESERVE 0xffff
/* /*
* sh_type * sh_type
*/ */
#define SHT_NULL 0 #define SHT_NULL 0
#define SHT_PROGBITS 1 #define SHT_PROGBITS 1
#define SHT_SYMTAB 2 #define SHT_SYMTAB 2
#define SHT_STRTAB 3 #define SHT_STRTAB 3
#define SHT_RELA 4 #define SHT_RELA 4
#define SHT_HASH 5 #define SHT_HASH 5
#define SHT_DYNAMIC 6 #define SHT_DYNAMIC 6
#define SHT_NOTE 7 #define SHT_NOTE 7
#define SHT_NOBITS 8 #define SHT_NOBITS 8
#define SHT_REL 9 #define SHT_REL 9
#define SHT_SHLIB 10 #define SHT_SHLIB 10
#define SHT_DYNSYM 11 #define SHT_DYNSYM 11
#define SHT_NUM 12 #define SHT_INIT_ARRAY 14
#define SHT_LOOS 0x60000000 #define SHT_FINI_ARRAY 15
#define SHT_HIOS 0x6fffffff #define SHT_PREINIT_ARRAY 16
#define SHT_LOPROC 0x70000000 #define SHT_GROUP 17
#define SHT_HIPROC 0x7fffffff #define SHT_SYMTAB_SHNDX 18
#define SHT_LOUSER 0x80000000 #define SHT_NUM 19
#define SHT_HIUSER 0xffffffff #define SHT_LOOS 0x60000000
#define SHT_HIOS 0x6fffffff
#define SHT_LOPROC 0x70000000
#define SHT_HIPROC 0x7fffffff
#define SHT_LOUSER 0x80000000
#define SHT_HIUSER 0xffffffff
/* /*
* Solaris extensions * Solaris extensions
*/ */
#define SHT_SUNW_move 0x6ffffffa #define SHT_SUNW_move 0x6ffffffa
#define SHT_SUNW_COMDAT 0x6ffffffb #define SHT_SUNW_COMDAT 0x6ffffffb
#define SHT_SUNW_syminfo 0x6ffffffc #define SHT_SUNW_syminfo 0x6ffffffc
#define SHT_SUNW_verdef 0x6ffffffd #define SHT_SUNW_verdef 0x6ffffffd
#define SHT_SUNW_verneed 0x6ffffffe #define SHT_SUNW_verneed 0x6ffffffe
#define SHT_SUNW_versym 0x6fffffff #define SHT_SUNW_versym 0x6fffffff
skipping to change at line 299 skipping to change at line 373
/* /*
* GNU extensions * GNU extensions
*/ */
#define SHT_GNU_verdef 0x6ffffffd #define SHT_GNU_verdef 0x6ffffffd
#define SHT_GNU_verneed 0x6ffffffe #define SHT_GNU_verneed 0x6ffffffe
#define SHT_GNU_versym 0x6fffffff #define SHT_GNU_versym 0x6fffffff
/* /*
* sh_flags * sh_flags
*/ */
#define SHF_WRITE 0x1 #define SHF_WRITE 0x1
#define SHF_ALLOC 0x2 #define SHF_ALLOC 0x2
#define SHF_EXECINSTR 0x4 #define SHF_EXECINSTR 0x4
#define SHF_MASKOS 0x0f000000 #define SHF_MERGE 0x10
#define SHF_MASKPROC 0xf0000000 #define SHF_STRINGS 0x20
#define SHF_INFO_LINK 0x40
#define SHF_LINK_ORDER 0x80
#define SHF_OS_NONCONFORMING 0x100
#define SHF_GROUP 0x200
#define SHF_TLS 0x400
#define SHF_MASKOS 0x0ff00000
#define SHF_MASKPROC 0xf0000000
/*
* Section group flags
*/
#define GRP_COMDAT 0x1
#define GRP_MASKOS 0x0ff00000
#define GRP_MASKPROC 0xf0000000
/* /*
* Symbol table * Symbol table
*/ */
typedef struct { typedef struct {
Elf32_Word st_name; Elf32_Word st_name;
Elf32_Addr st_value; Elf32_Addr st_value;
Elf32_Word st_size; Elf32_Word st_size;
unsigned char st_info; unsigned char st_info;
unsigned char st_other; unsigned char st_other;
skipping to change at line 366 skipping to change at line 454
#define STB_HIPROC 15 #define STB_HIPROC 15
/* /*
* Symbol types * Symbol types
*/ */
#define STT_NOTYPE 0 #define STT_NOTYPE 0
#define STT_OBJECT 1 #define STT_OBJECT 1
#define STT_FUNC 2 #define STT_FUNC 2
#define STT_SECTION 3 #define STT_SECTION 3
#define STT_FILE 4 #define STT_FILE 4
#define STT_NUM 5 #define STT_COMMON 5
#define STT_TLS 6
#define STT_NUM 7
#define STT_LOOS 10 #define STT_LOOS 10
#define STT_HIOS 12 #define STT_HIOS 12
#define STT_LOPROC 13 #define STT_LOPROC 13
#define STT_HIPROC 15 #define STT_HIPROC 15
/* /*
* Macros for manipulating st_other
*/
#define ELF32_ST_VISIBILITY(o) ((o)&0x3)
#if __LIBELF64
#define ELF64_ST_VISIBILITY(o) ((o)&0x3)
#endif /* __LIBELF64 */
/*
* Symbol visibility
*/
#define STV_DEFAULT 0
#define STV_INTERNAL 1
#define STV_HIDDEN 2
#define STV_PROTECTED 3
/*
* Relocation * Relocation
*/ */
typedef struct { typedef struct {
Elf32_Addr r_offset; Elf32_Addr r_offset;
Elf32_Word r_info; Elf32_Word r_info;
} Elf32_Rel; } Elf32_Rel;
typedef struct { typedef struct {
Elf32_Addr r_offset; Elf32_Addr r_offset;
Elf32_Word r_info; Elf32_Word r_info;
skipping to change at line 423 skipping to change at line 529
* Note entry header * Note entry header
*/ */
typedef struct { typedef struct {
Elf32_Word n_namesz; /* name size */ Elf32_Word n_namesz; /* name size */
Elf32_Word n_descsz; /* descriptor size */ Elf32_Word n_descsz; /* descriptor size */
Elf32_Word n_type; /* descriptor type */ Elf32_Word n_type; /* descriptor type */
} Elf32_Nhdr; } Elf32_Nhdr;
#if __LIBELF64 #if __LIBELF64
/* Solaris and GNU use this layout. Be compatible. */ /* Solaris and GNU use this layout. Be compatible. */
/* XXX: Latest ELF specs say it's 64-bit?! */
typedef struct { typedef struct {
Elf64_Word n_namesz; /* name size */ Elf64_Word n_namesz; /* name size */
Elf64_Word n_descsz; /* descriptor size */ Elf64_Word n_descsz; /* descriptor size */
Elf64_Word n_type; /* descriptor type */ Elf64_Word n_type; /* descriptor type */
} Elf64_Nhdr; } Elf64_Nhdr;
#endif /* __LIBELF64 */ #endif /* __LIBELF64 */
/* /*
* Well-known descriptor types for ET_CORE files * Well-known descriptor types for ET_CORE files
*/ */
skipping to change at line 474 skipping to change at line 581
/* /*
* p_type * p_type
*/ */
#define PT_NULL 0 #define PT_NULL 0
#define PT_LOAD 1 #define PT_LOAD 1
#define PT_DYNAMIC 2 #define PT_DYNAMIC 2
#define PT_INTERP 3 #define PT_INTERP 3
#define PT_NOTE 4 #define PT_NOTE 4
#define PT_SHLIB 5 #define PT_SHLIB 5
#define PT_PHDR 6 #define PT_PHDR 6
#define PT_NUM 7 #define PT_TLS 7
#define PT_NUM 8
#define PT_LOOS 0x60000000 #define PT_LOOS 0x60000000
#define PT_HIOS 0x6fffffff #define PT_HIOS 0x6fffffff
#define PT_LOPROC 0x70000000 #define PT_LOPROC 0x70000000
#define PT_HIPROC 0x7fffffff #define PT_HIPROC 0x7fffffff
/* /*
* p_flags * p_flags
*/ */
#define PF_R 0x4
#define PF_W 0x2
#define PF_X 0x1 #define PF_X 0x1
#define PF_W 0x2
#define PF_R 0x4
#define PF_MASKOS 0x0ff00000 #define PF_MASKOS 0x0ff00000
#define PF_MASKPROC 0xf0000000 #define PF_MASKPROC 0xf0000000
/* /*
* Dynamic structure * Dynamic structure
*/ */
typedef struct { typedef struct {
Elf32_Sword d_tag; Elf32_Sword d_tag;
union { union {
Elf32_Word d_val; Elf32_Word d_val;
skipping to change at line 513 skipping to change at line 621
union { union {
Elf64_Xword d_val; Elf64_Xword d_val;
Elf64_Addr d_ptr; Elf64_Addr d_ptr;
} d_un; } d_un;
} Elf64_Dyn; } Elf64_Dyn;
#endif /* __LIBELF64 */ #endif /* __LIBELF64 */
/* /*
* Dynamic array tags * Dynamic array tags
*/ */
#define DT_NULL 0 /* d_un exec shared */
#define DT_NEEDED 1 #define DT_NULL 0 /* ign. mand. mand. */
#define DT_PLTRELSZ 2 #define DT_NEEDED 1 /* d_val opt. opt. */
#define DT_PLTGOT 3 #define DT_PLTRELSZ 2 /* d_val opt. opt. */
#define DT_HASH 4 #define DT_PLTGOT 3 /* d_ptr opt. opt. */
#define DT_STRTAB 5 #define DT_HASH 4 /* d_ptr mand. mand. */
#define DT_SYMTAB 6 #define DT_STRTAB 5 /* d_ptr mand. mand. */
#define DT_RELA 7 #define DT_SYMTAB 6 /* d_ptr mand. mand. */
#define DT_RELASZ 8 #define DT_RELA 7 /* d_ptr mand. opt. */
#define DT_RELAENT 9 #define DT_RELASZ 8 /* d_val mand. opt. */
#define DT_STRSZ 10 #define DT_RELAENT 9 /* d_val mand. opt. */
#define DT_SYMENT 11 #define DT_STRSZ 10 /* d_val mand. mand. */
#define DT_INIT 12 #define DT_SYMENT 11 /* d_val mand. mand. */
#define DT_FINI 13 #define DT_INIT 12 /* d_ptr opt. opt. */
#define DT_SONAME 14 #define DT_FINI 13 /* d_ptr opt. opt. */
#define DT_RPATH 15 #define DT_SONAME 14 /* d_val ign. opt. */
#define DT_SYMBOLIC 16 #define DT_RPATH 15 /* d_val opt. ign. */
#define DT_REL 17 #define DT_SYMBOLIC 16 /* ign. ign. opt. */
#define DT_RELSZ 18 #define DT_REL 17 /* d_ptr mand. opt. */
#define DT_RELENT 19 #define DT_RELSZ 18 /* d_val mand. opt. */
#define DT_PLTREL 20 #define DT_RELENT 19 /* d_val mand. opt. */
#define DT_DEBUG 21 #define DT_PLTREL 20 /* d_val opt. opt. */
#define DT_TEXTREL 22 #define DT_DEBUG 21 /* d_ptr opt. ign. */
#define DT_JMPREL 23 #define DT_TEXTREL 22 /* ign. opt. opt. */
#define DT_BIND_NOW 24 #define DT_JMPREL 23 /* d_ptr opt. opt. */
#define DT_INIT_ARRAY 25 #define DT_BIND_NOW 24 /* ign. opt. opt. */
#define DT_FINI_ARRAY 26 #define DT_INIT_ARRAY 25 /* d_ptr opt. opt. */
#define DT_INIT_ARRAYSZ 27 #define DT_FINI_ARRAY 26 /* d_ptr opt. opt. */
#define DT_FINI_ARRAYSZ 28 #define DT_INIT_ARRAYSZ 27 /* d_val opt. opt. */
#define DT_NUM 29 #define DT_FINI_ARRAYSZ 28 /* d_val opt. opt. */
#define DT_LOOS 0x60000000 #define DT_RUNPATH 29 /* d_val opt. opt. */
#define DT_HIOS 0x6fffffff #define DT_FLAGS 30 /* d_val opt. opt. */
#define DT_LOPROC 0x70000000 #define DT_ENCODING 32 /* odd/even encoding rule starts her
#define DT_HIPROC 0x7fffffff e */
#define DT_PREINIT_ARRAY 32 /* d_ptr opt. ign. */
#define DT_PREINIT_ARRAYSZ 33 /* d_val opt. ign. */
#define DT_NUM 34
#define DT_LOOS 0x6000000D
#define DT_HIOS 0x6ffff000
#define DT_LOPROC 0x70000000
#define DT_HIPROC 0x7fffffff
/*
* DT_FLAGS values
*/
#define DF_ORIGIN 0x1
#define DF_SYMBOLIC 0x2
#define DF_TEXTREL 0x4
#define DF_BIND_NOW 0x8
#define DF_STATIC_TLS 0x10
/* /*
* Solaris extensions * Solaris extensions
*/ */
#define DT_VALRNGLO 0x6ffffd00 #define DT_VALRNGLO 0x6ffffd00
#define DT_CHECKSUM 0x6ffffdf8 #define DT_CHECKSUM 0x6ffffdf8
#define DT_PLTPADSZ 0x6ffffdf9 #define DT_PLTPADSZ 0x6ffffdf9
#define DT_MOVEENT 0x6ffffdfa #define DT_MOVEENT 0x6ffffdfa
#define DT_MOVESZ 0x6ffffdfb #define DT_MOVESZ 0x6ffffdfb
#define DT_FEATURE_1 0x6ffffdfc #define DT_FEATURE_1 0x6ffffdfc
 End of changes. 17 change blocks. 
104 lines changed or deleted 240 lines changed or added


 sys_elf.h   sys_elf.h 
skipping to change at line 52 skipping to change at line 52
/* Define if you want symbol versioning (and your system supports it) */ /* Define if you want symbol versioning (and your system supports it) */
#define __LIBELF_SYMBOL_VERSIONS 1 #define __LIBELF_SYMBOL_VERSIONS 1
/* Define to a 64-bit signed integer type if one exists */ /* Define to a 64-bit signed integer type if one exists */
#define __libelf_i64_t long long #define __libelf_i64_t long long
/* Define to a 64-bit unsigned integer type if one exists */ /* Define to a 64-bit unsigned integer type if one exists */
#define __libelf_u64_t unsigned long long #define __libelf_u64_t unsigned long long
/* Define to a 32-bit signed integer type if one exists */ /* Define to a 32-bit signed integer type if one exists */
#define __libelf_i32_t long #define __libelf_i32_t int
/* Define to a 32-bit unsigned integer type if one exists */ /* Define to a 32-bit unsigned integer type if one exists */
#define __libelf_u32_t unsigned long #define __libelf_u32_t unsigned int
/* Define to a 16-bit signed integer type if one exists */ /* Define to a 16-bit signed integer type if one exists */
#define __libelf_i16_t short #define __libelf_i16_t short
/* Define to a 16-bit unsigned integer type if one exists */ /* Define to a 16-bit unsigned integer type if one exists */
#define __libelf_u16_t unsigned short #define __libelf_u16_t unsigned short
/* /*
* Ok, now get the correct instance of elf.h... * Ok, now get the correct instance of elf.h...
*/ */
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/