arm.h (78828) | arm.h (89857) |
---|---|
1/* ARM ELF support for BFD. | 1/* ARM ELF support for BFD. |
2 Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc. | 2 Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. |
3 4 This file is part of BFD, the Binary File Descriptor library. 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2 of the License, or 9 (at your option) any later version. 10 --- 9 unchanged lines hidden (view full) --- 20#ifndef _ELF_ARM_H 21#define _ELF_ARM_H 22 23#include "elf/reloc-macros.h" 24 25/* Processor specific flags for the ELF header e_flags field. */ 26#define EF_ARM_RELEXEC 0x01 27#define EF_ARM_HASENTRY 0x02 | 3 4 This file is part of BFD, the Binary File Descriptor library. 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2 of the License, or 9 (at your option) any later version. 10 --- 9 unchanged lines hidden (view full) --- 20#ifndef _ELF_ARM_H 21#define _ELF_ARM_H 22 23#include "elf/reloc-macros.h" 24 25/* Processor specific flags for the ELF header e_flags field. */ 26#define EF_ARM_RELEXEC 0x01 27#define EF_ARM_HASENTRY 0x02 |
28#define EF_INTERWORK 0x04 29#define EF_APCS_26 0x08 30#define EF_APCS_FLOAT 0x10 31#define EF_PIC 0x20 32#define EF_ALIGN8 0x40 /* 8-bit structure alignment is in use. */ 33#define EF_NEW_ABI 0x80 34#define EF_OLD_ABI 0x100 35#define EF_SOFT_FLOAT 0x200 | 28#define EF_ARM_INTERWORK 0x04 29#define EF_ARM_APCS_26 0x08 30#define EF_ARM_APCS_FLOAT 0x10 31#define EF_ARM_PIC 0x20 32#define EF_ARM_ALIGN8 0x40 /* 8-bit structure alignment is in use. */ 33#define EF_ARM_NEW_ABI 0x80 34#define EF_ARM_OLD_ABI 0x100 35#define EF_ARM_SOFT_FLOAT 0x200 36#define EF_ARM_VFP_FLOAT 0x400 |
36 | 37 |
37/* Other constants defined in the ARM ELF spec. version A-08. */ | 38/* Other constants defined in the ARM ELF spec. version B-01. */ |
38#define EF_ARM_SYMSARESORTED 0x04 /* NB conflicts with EF_INTERWORK */ | 39#define EF_ARM_SYMSARESORTED 0x04 /* NB conflicts with EF_INTERWORK */ |
40#define EF_ARM_DYNSYMSUSESEGIDX 0x08 /* NB conflicts with EF_APCS26 */ 41#define EF_ARM_MAPSYMSFIRST 0x10 /* NB conflicts with EF_APCS_FLOAT */ |
|
39#define EF_ARM_EABIMASK 0xFF000000 40 41#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK) 42#define EF_ARM_EABI_UNKNOWN 0x00000000 43#define EF_ARM_EABI_VER1 0x01000000 | 42#define EF_ARM_EABIMASK 0xFF000000 43 44#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK) 45#define EF_ARM_EABI_UNKNOWN 0x00000000 46#define EF_ARM_EABI_VER1 0x01000000 |
47#define EF_ARM_EABI_VER2 0x02000000 |
|
44 45/* Local aliases for some flags to match names used by COFF port. */ | 48 49/* Local aliases for some flags to match names used by COFF port. */ |
46#define F_INTERWORK EF_INTERWORK 47#define F_APCS26 EF_APCS_26 48#define F_APCS_FLOAT EF_APCS_FLOAT 49#define F_PIC EF_PIC 50#define F_SOFT_FLOAT EF_SOFT_FLOAT | 50#define F_INTERWORK EF_ARM_INTERWORK 51#define F_APCS26 EF_ARM_APCS_26 52#define F_APCS_FLOAT EF_ARM_APCS_FLOAT 53#define F_PIC EF_ARM_PIC 54#define F_SOFT_FLOAT EF_ARM_SOFT_FLOAT 55#define F_VFP_FLOAT EF_ARM_VFP_FLOAT |
51 52/* Additional symbol types for Thumb. */ 53#define STT_ARM_TFUNC STT_LOPROC /* A Thumb function. */ 54#define STT_ARM_16BIT STT_HIPROC /* A Thumb label. */ 55 56/* ARM-specific values for sh_flags. */ 57#define SHF_ENTRYSECT 0x10000000 /* Section contains an entry point. */ 58#define SHF_COMDEF 0x80000000 /* Section may be multiply defined in the input to a link step. */ --- 45 unchanged lines hidden (view full) --- 104 RELOC_NUMBER (R_ARM_GOTPC, 25) /* 32 bit PC relative offset to GOT. */ 105 RELOC_NUMBER (R_ARM_GOT32, 26) /* 32 bit GOT entry. */ 106 RELOC_NUMBER (R_ARM_PLT32, 27) /* 32 bit PLT address. */ 107#ifdef OLD_ARM_ABI 108 FAKE_RELOC (FIRST_INVALID_RELOC, 28) 109 FAKE_RELOC (LAST_INVALID_RELOC, 249) 110#else /* not OLD_ARM_ABI */ 111 FAKE_RELOC (FIRST_INVALID_RELOC1, 28) | 56 57/* Additional symbol types for Thumb. */ 58#define STT_ARM_TFUNC STT_LOPROC /* A Thumb function. */ 59#define STT_ARM_16BIT STT_HIPROC /* A Thumb label. */ 60 61/* ARM-specific values for sh_flags. */ 62#define SHF_ENTRYSECT 0x10000000 /* Section contains an entry point. */ 63#define SHF_COMDEF 0x80000000 /* Section may be multiply defined in the input to a link step. */ --- 45 unchanged lines hidden (view full) --- 109 RELOC_NUMBER (R_ARM_GOTPC, 25) /* 32 bit PC relative offset to GOT. */ 110 RELOC_NUMBER (R_ARM_GOT32, 26) /* 32 bit GOT entry. */ 111 RELOC_NUMBER (R_ARM_PLT32, 27) /* 32 bit PLT address. */ 112#ifdef OLD_ARM_ABI 113 FAKE_RELOC (FIRST_INVALID_RELOC, 28) 114 FAKE_RELOC (LAST_INVALID_RELOC, 249) 115#else /* not OLD_ARM_ABI */ 116 FAKE_RELOC (FIRST_INVALID_RELOC1, 28) |
112 FAKE_RELOC (LAST_INVALID_RELOC1, 99) | 117 FAKE_RELOC (LAST_INVALID_RELOC1, 31) 118 RELOC_NUMBER (R_ARM_ALU_PCREL7_0, 32) 119 RELOC_NUMBER (R_ARM_ALU_PCREL15_8, 33) 120 RELOC_NUMBER (R_ARM_ALU_PCREL23_15, 34) 121 RELOC_NUMBER (R_ARM_LDR_SBREL11_0, 35) 122 RELOC_NUMBER (R_ARM_ALU_SBREL19_12, 36) 123 RELOC_NUMBER (R_ARM_ALU_SBREL27_20, 37) 124 FAKE_RELOC (FIRST_INVALID_RELOC2, 38) 125 FAKE_RELOC (LAST_INVALID_RELOC2, 99) |
113 RELOC_NUMBER (R_ARM_GNU_VTENTRY, 100) 114 RELOC_NUMBER (R_ARM_GNU_VTINHERIT, 101) 115 RELOC_NUMBER (R_ARM_THM_PC11, 102) /* Cygnus extension to abi: Thumb unconditional branch. */ 116 RELOC_NUMBER (R_ARM_THM_PC9, 103) /* Cygnus extension to abi: Thumb conditional branch. */ | 126 RELOC_NUMBER (R_ARM_GNU_VTENTRY, 100) 127 RELOC_NUMBER (R_ARM_GNU_VTINHERIT, 101) 128 RELOC_NUMBER (R_ARM_THM_PC11, 102) /* Cygnus extension to abi: Thumb unconditional branch. */ 129 RELOC_NUMBER (R_ARM_THM_PC9, 103) /* Cygnus extension to abi: Thumb conditional branch. */ |
117 FAKE_RELOC (FIRST_INVALID_RELOC2, 104) 118 FAKE_RELOC (LAST_INVALID_RELOC2, 248) | 130 FAKE_RELOC (FIRST_INVALID_RELOC3, 104) 131 FAKE_RELOC (LAST_INVALID_RELOC3, 248) |
119 RELOC_NUMBER (R_ARM_RXPC25, 249) 120#endif /* not OLD_ARM_ABI */ 121 RELOC_NUMBER (R_ARM_RSBREL32, 250) 122 RELOC_NUMBER (R_ARM_THM_RPC22, 251) 123 RELOC_NUMBER (R_ARM_RREL32, 252) 124 RELOC_NUMBER (R_ARM_RABS32, 253) 125 RELOC_NUMBER (R_ARM_RPC24, 254) 126 RELOC_NUMBER (R_ARM_RBASE, 255) 127END_RELOC_NUMBERS (R_ARM_max) 128 129#endif /* _ELF_ARM_H */ | 132 RELOC_NUMBER (R_ARM_RXPC25, 249) 133#endif /* not OLD_ARM_ABI */ 134 RELOC_NUMBER (R_ARM_RSBREL32, 250) 135 RELOC_NUMBER (R_ARM_THM_RPC22, 251) 136 RELOC_NUMBER (R_ARM_RREL32, 252) 137 RELOC_NUMBER (R_ARM_RABS32, 253) 138 RELOC_NUMBER (R_ARM_RPC24, 254) 139 RELOC_NUMBER (R_ARM_RBASE, 255) 140END_RELOC_NUMBERS (R_ARM_max) 141 142#endif /* _ELF_ARM_H */ |