Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 5190 → Rev 5191

/contrib/toolchain/binutils/include/elf/ChangeLog
0,0 → 1,1921
2013-11-17 H.J. Lu <hongjiu.lu@intel.com>
 
* x86-64.h: Add R_X86_64_PC32_BND and R_X86_64_PLT32_BND.
 
2013-11-15 Alan Modra <amodra@gmail.com>
 
Apply changes from mainline to 2.24
2013-10-30 Alan Modra <amodra@gmail.com>
* ppc.h (DT_PPC_TLSOPT): Delete.
(DT_PPC_OPT, PPC_OPT_TLS): Define.
* ppc64.h (DT_PPC64_TLSOPT): Delete.
(DT_PPC64_OPT, PPC64_OPT_TLS, PPC64_OPT_MULTI_TOC): Define.
 
2013-10-30 Alan Modra <amodra@gmail.com>
* ppc64.h (STO_PPC64_LOCAL_BIT, STO_PPC64_LOCAL_MASK): Define.
(ppc64_decode_local_entry, ppc64_encode_local_entry): New functions.
(PPC64_LOCAL_ENTRY_OFFSET, PPC64_SET_LOCAL_ENTRY_OFFSET): Define.
 
2013-10-30 Alan Modra <amodra@gmail.com>
* ppc64.h (EF_PPC64_ABI): Define.
 
2013-10-30 Alan Modra <amodra@gmail.com>
* ppc64.h (R_PPC64_ADDR16_HIGH, R_PPC64_ADDR16_HIGHA,
R_PPC64_TPREL16_HIGH, R_PPC64_TPREL16_HIGHA,
R_PPC64_DTPREL16_HIGH, R_PPC64_DTPREL16_HIGHA): New.
(IS_PPC64_TLS_RELOC): Match new tls relocs.
 
2013-11-13 Yufeng Zhang <yufeng.zhang@arm.com>
 
* aarch64.h: Define R_AARCH64_TLS_DTPMOD64,
R_AARCH64_TLS_DTPREL64 and R_AARCH64_TLS_TPREL64; guard
R_AARCH64_TLS_DTPMOD, R_AARCH64_TLS_DTPREL and
R_AARCH64_TLS_TPREL with RELOC_MACROS_GEN_FUNC.
 
2013-09-17 Doug Gilmore <Doug.Gilmore@imgtec.com>
 
* mips.h (EF_MIPS_FP64): New e_flags bit.
 
2013-08-09 Nick Clifton <nickc@redhat.com>
 
* rl78.c (E_FLAG_RL78_G10): Define.
 
2013-07-15 Maciej W. Rozycki <macro@codesourcery.com>
 
* mips.h (Tag_GNU_MIPS_ABI_FP): Remove comment.
(Val_GNU_MIPS_ABI_FP_ANY, Val_GNU_MIPS_ABI_FP_DOUBLE,
Val_GNU_MIPS_ABI_FP_SINGLE, Val_GNU_MIPS_ABI_FP_SOFT,
Val_GNU_MIPS_ABI_FP_64): New enum.
 
2013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
 
* mips.h (EF_MIPS_NAN2008): New macro.
 
2013-07-08 Tristan Gingold <gingold@adacore.com>
 
* ia64.h (STB_VMS_WEAK, STB_VMS_SYSTEM): Add.
 
2013-07-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
 
* s390.h: Add new relocs R_390_PC12DBL, R_390_PLT12DBL,
R_390_PC24DBL, and R_390_PLT24DBL.
 
2013-06-26 Yufeng Zhang <yufeng.zhang@arm.com>
 
* aarch64.h: Add ELF32 reloc codes and remove fake ELF64 ones.
 
2013-06-24 Maciej W. Rozycki <macro@codesourcery.com>
 
* mips.h (ELF_ST_IS_MIPS_PLT): Respect STO_MIPS16 setting.
(ELF_ST_SET_MIPS_PLT): Likewise.
 
2013-06-19 Will Newton <will.newton@linaro.org>
 
* aarch64.h: Remove R_AARCH64_IRELATIVE.
 
2013-06-07 Will Newton <will.newton@linaro.org>
 
* aarch64.h: Add R_AARCH64_IRELATIVE reloc.
 
2013-06-06 Maciej W. Rozycki <macro@codesourcery.com>
 
* mips.h (ELF_ST_SET_MIPS_PIC): Clear any STO_MIPS16 setting.
 
2013-05-30 Paul Brook <paul@codesourcery.com>
 
* mips.h (R_MIPS_EH): New.
 
2013-05-28 Yufeng Zhang <yufeng.zhang@arm.com>
 
* aarch64.h (R_AARCH64_TLSDESC_LD64_PREL19): Rename to ...
(R_AARCH64_TLSDESC_LD_PREL19): ... this.
(R_AARCH64_TLSDESC_ADR_PAGE): Rename to ...
(R_AARCH64_TLSDESC_ADR_PAGE21): ... this.
 
2013-05-22 H.J. Lu <hongjiu.lu@intel.com>
 
* common.h (EM_INTEL205): New.
(EM_INTEL206): Likewise.
(EM_INTEL207): Likewise.
(EM_INTEL208): Likewise.
(EM_INTEL209): Likewise.
 
2013-05-02 Nick Clifton <nickc@redhat.com>
 
* msp430.h: Add MSP430X relocs.
Add some more MSP430 machine numbers.
Add values used by .MSP430.attributes section.
 
2013-03-21 Michael Schewe <michael.schewe@gmx.net>
 
* h8.h: Add new reloc R_H8_DISP32A16 for relaxation of
mov @(disp:32,ERx) to mov @(disp:16,ERx).
 
2013-03-08 Andreas Arnez <arnez@linux.vnet.ibm.com>
 
* common.h (NT_S390_TDB): Define.
 
2013-02-06 Sandra Loosemore <sandra@codesourcery.com>
Andrew Jenner <andrew@codesourcery.com>
 
Based on patches from Altera Corporation.
 
* nios2.h: New file.
 
2013-01-24 Nick Clifton <nickc@redhat.com>
 
* v850.h: Add support for e3v5 architecture.
Reorganize processor selection macros.
 
2013-01-16 H.J. Lu <hongjiu.lu@intel.com>
 
* i386.h (R_386_SIZE32): Fill it.
* x86-64.h (R_X86_64_SIZE32): Likewise.
(R_X86_64_SIZE64): Likewise.
 
2013-01-10 Will Newton <will.newton@imgtec.com>
 
* common.h: Fix case of "Meta".
* metag.h: New file.
 
2013-01-08 Yufeng Zhang <yufeng.zhang@arm.com>
 
* common.h (NT_ARM_TLS, NT_ARM_HW_BREAK, NT_ARM_HW_WATCH): New macro
definitions.
 
2013-01-04 Juergen Urban <JuergenUrban@gmx.de>
 
* mips.h: Add MIPS machine variant number for r5900 which is
compatible with old Playstation 2 software.
 
2012-11-16 H.J. Lu <hongjiu.lu@intel.com>
 
* common.h (DF_1_CONLFAT): Renamed to ...
(DF_1_CONFALT): This.
(DF_1_ENDFILTEE): New.
(DF_1_DISPRELDNE): Likewise.
(DF_1_DISPRELPND): Likewise.
(DF_1_NODIRECT): Likewise.
(DF_1_IGNMULDEF): Likewise.
(DF_1_NOKSYMS): Likewise.
(DF_1_NOHDR): Likewise.
(DF_1_EDITED): Likewise.
(DF_1_NORELOC): Likewise.
(DF_1_SYMINTPOSE): Likewise.
(DF_1_GLOBAUDIT): Likewise.
(DF_1_SINGLETON): Likewise.
 
2012-11-09 Nick Clifton <nickc@redhat.com>
 
* rx.h (EF_RX_CPU_RX): Add comment.
(E_FLAG_RX_ABI): Define.
 
* v850.h: Add RH850 ABI values.
 
2012-11-08 Maciej W. Rozycki <macro@codesourcery.com>
 
* mips.h (EF_MIPS_32BITMODE): Move next to lower-order bits.
 
2012-11-01 Tom Tromey <tromey@redhat.com>
 
* common.h (NT_386_TLS, NT_386_IOPERM): New defines.
 
2012-10-30 Steve McIntyre <steve.mcintyre@linaro.org>
 
* elf/arm.h (EF_ARM_ABI_FLOAT_SOFT): New define.
(EF_ARM_ABI_FLOAT_HARD): Likewise.
 
2012-10-23 Tom Tromey <tromey@redhat.com>
 
* common.h (NT_SIGINFO, NT_FILE): New defines.
 
2012-08-27 Walter Lee <walt@tilera.com>
 
* tilegx.h (R_TILEGX_IMM16_X0_HW0_PLT_PCREL): New relocation.
(R_TILEGX_IMM16_X1_HW0_PLT_PCREL): Ditto.
(R_TILEGX_IMM16_X0_HW1_PLT_PCREL): Ditto.
(R_TILEGX_IMM16_X1_HW1_PLT_PCREL): Ditto.
(R_TILEGX_IMM16_X0_HW2_PLT_PCREL): Ditto.
(R_TILEGX_IMM16_X1_HW2_PLT_PCREL): Ditto.
(R_TILEGX_IMM16_X0_HW3_PLT_PCREL): Ditto.
(R_TILEGX_IMM16_X1_HW3_PLT_PCREL): Ditto.
(R_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL): Ditto.
(R_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL): Ditto.
(R_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL): Ditto.
(R_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL): Ditto.
(R_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL ): Ditto.
(R_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL): Ditto.
 
2012-08-13 Ian Bolton <ian.bolton@arm.com>
Laurent Desnogues <laurent.desnogues@arm.com>
Jim MacArthur <jim.macarthur@arm.com>
Marcus Shawcroft <marcus.shawcroft@arm.com>
Nigel Stephens <nigel.stephens@arm.com>
Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
Richard Earnshaw <rearnsha@arm.com>
Sofiane Naci <sofiane.naci@arm.com>
Tejas Belagod <tejas.belagod@arm.com>
Yufeng Zhang <yufeng.zhang@arm.com>
 
* aarch64.h: New file.
* common.h (EM_res183): Rename to EM_AARCH64.
(EM_res184): Rename to EM_ARM184.
 
2012-06-28 Iain Sandoe <iain@codesourcery.com>
 
* common.h (AT_L1I_CACHESHAPE, AT_L1D_CACHESHAPE,
AT_L2_CACHESHAPE, AT_L3_CACHESHAPE): New defines.
 
2012-05-16 Georg-Johann Lay <avr@gjlay.de>
 
PR target/13503
* avr.h (RELOC_NUMBERS): Rename R_AVR_8_HHI8 to R_AVR_8_HLO8.
 
2012-05-15 James Murray <jsm@jsm-net.demon.co.uk>
 
* m68hc11.h (R_M68HC12_16B, R_M68HC12_PCREL_9, R_M68HC12_PCREL_10)
R_M68HC12_HI8XG, R_M68HC12_LO8XG): New relocations.
(E_M68HC11_XGATE_RAMOFFSET): Define.
 
2012-05-14 James Lemke <jwlemke@codesourcery.com>
* ppc.h (SEC_PPC_VLE): Remove.
 
2012-05-14 Catherine Moore <clm@codesourcery.com>
James Lemke <jwlemke@codesourcery.com>
 
* ppc.h (R_PPC_VLE_REL8): New reloction.
(R_PPC_VLE_REL15): Likewise.
(R_PPC_VLE_REL24): Likewise.
(R_PPC_VLE_LO16A): Likewise.
(R_PPC_VLE_LO16D): Likewise.
(R_PPC_VLE_HI16A): Likewise.
(R_PPC_VLE_HI16D): Likewise.
(R_PPC_VLE_HA16A): Likewise.
(R_PPC_VLE_HA16D): Likewise.
(R_PPC_VLE_SDA21): Likewise.
(R_PPC_VLE_SDA21_LO): Likewise.
(R_PPC_VLE_SDAREL_LO16A): Likewise.
(R_PPC_VLE_SDAREL_LO16D): Likewise.
(R_PPC_VLE_SDAREL_HI16A): Likewise.
(R_PPC_VLE_SDAREL_HI16D): Likewise.
(R_PPC_VLE_SDAREL_HA16A): Likewise.
(R_PPC_VLE_SDAREL_HA16D): Likewise.
(SEC_PPC_VLE): Remove.
(PF_PPC_VLE): New program header flag.
(SHF_PPC_VLE): New section header flag.
(vle_opcodes, vle_num_opcodes): New.
(VLE_OP): New macro.
(VLE_OP_TO_SEG): New macro.
 
2012-05-11 Georg-Johann Lay <avr@gjlay.de
 
PR target/13503
* elf/avr.h (RELOC_NUMBERS): Add values for R_AVR_8_LO8,
R_AVR_8_HI8, R_AVR_8_HHI8.
 
2012-05-03 Sean Keys <skeys@ipdatasys.com>
 
* xgate.h: Mininal file to support XGATE relocations.
 
2012-04-27 David S. Miller <davem@davemloft.net>
 
* sparc.h: Add new ELF_SPARC_HWCAP_* defines for crypto,
pause, and compare-and-branch instructions.
 
2012-03-07 Nick Clifton <nickc@redhat.com>
 
* mn10300.h (elf_mn10300_reloc_type): Add R_MN10300_TLS_GD,
R_MN10300_TLS_LD, R_MN10300_TLS_LDO, R_MN10300_TLS_GOTIE,
R_MN10300_TLS_IE, R_MN10300_TLS_LE, R_MN10300_TLS_DPTMOD,
R_MN10300_TLS_DTPOFF and R_MN10300_TLS_TPOFF.
 
2012-02-25 Walter Lee <walt@tilera.com>
 
* tilegx.h (R_TILEGX_IMM16_X0_HW1_GOT): Delete.
(R_TILEGX_IMM16_X1_HW1_GOT): Ditto.
(R_TILEGX_IMM16_X0_HW2_GOT): Ditto.
(R_TILEGX_IMM16_X1_HW2_GOT): Ditto.
(R_TILEGX_IMM16_X0_HW3_GOT): Ditto.
(R_TILEGX_IMM16_X1_HW3_GOT): Ditto.
(R_TILEGX_IMM16_X0_HW2_LAST_GOT): Ditto.
(R_TILEGX_IMM16_X1_HW2_LAST_GOT): Ditto.
(R_TILEGX_IMM16_X0_HW1_TLS_GD): Ditto.
(R_TILEGX_IMM16_X1_HW1_TLS_GD): Ditto.
(R_TILEGX_IMM16_X0_HW2_TLS_GD): Ditto.
(R_TILEGX_IMM16_X1_HW2_TLS_GD): Ditto.
(R_TILEGX_IMM16_X0_HW3_TLS_GD): Ditto.
(R_TILEGX_IMM16_X1_HW3_TLS_GD): Ditto.
(R_TILEGX_IMM16_X0_HW2_LAST_TLS_GD): Ditto.
(R_TILEGX_IMM16_X1_HW2_LAST_TLS_GD): Ditto.
(R_TILEGX_IMM16_X0_HW1_TLS_IE): Ditto.
(R_TILEGX_IMM16_X1_HW1_TLS_IE): Ditto.
(R_TILEGX_IMM16_X0_HW2_TLS_IE): Ditto.
(R_TILEGX_IMM16_X1_HW2_TLS_IE): Ditto.
(R_TILEGX_IMM16_X0_HW3_TLS_IE): Ditto.
(R_TILEGX_IMM16_X1_HW3_TLS_IE): Ditto.
(R_TILEGX_IMM16_X0_HW2_LAST_TLS_IE): Ditto.
(R_TILEGX_IMM16_X1_HW2_LAST_TLS_IE): Ditto.
(R_TILEGX_IMM16_X0_HW0_TLS_LE): New relocation.
(R_TILEGX_IMM16_X1_HW0_TLS_LE): Ditto.
(R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE): Ditto.
(R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE): Ditto.
(R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE): Ditto.
(R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE): Ditto.
(R_TILEGX_TLS_GD_CALL): Ditto.
(R_TILEGX_IMM8_X0_TLS_GD_ADD): Ditto.
(R_TILEGX_IMM8_X1_TLS_GD_ADD): Ditto.
(R_TILEGX_IMM8_Y0_TLS_GD_ADD): Ditto.
(R_TILEGX_IMM8_Y1_TLS_GD_ADD): Ditto.
(R_TILEGX_TLS_IE_LOAD): Ditto.
(R_TILEGX_IMM8_X0_TLS_ADD): Ditto.
(R_TILEGX_IMM8_X1_TLS_ADD): Ditto.
(R_TILEGX_IMM8_Y0_TLS_ADD): Ditto.
(R_TILEGX_IMM8_Y1_TLS_ADD): Ditto.
* tilepro.h (R_TILEPRO_TLS_GD_CALL): New relocation.
(R_TILEPRO_IMM8_X0_TLS_GD_ADD): Ditto.
(R_TILEPRO_IMM8_X1_TLS_GD_ADD): Ditto.
(R_TILEPRO_IMM8_Y0_TLS_GD_ADD): Ditto.
(R_TILEPRO_IMM8_Y1_TLS_GD_ADD): Ditto.
(R_TILEPRO_TLS_IE_LOAD): Ditto.
(R_TILEPRO_IMM16_X0_TLS_LE): Ditto.
(R_TILEPRO_IMM16_X1_TLS_LE): Ditto.
(R_TILEPRO_IMM16_X0_TLS_LE_LO): Ditto.
(R_TILEPRO_IMM16_X1_TLS_LE_LO): Ditto.
(R_TILEPRO_IMM16_X0_TLS_LE_HI): Ditto.
(R_TILEPRO_IMM16_X1_TLS_LE_HI): Ditto.
(R_TILEPRO_IMM16_X0_TLS_LE_HA): Ditto.
(R_TILEPRO_IMM16_X1_TLS_LE_HA): Ditto.
 
2011-12-22 DJ Delorie <dj@redhat.com>
 
* rl78.h (R_RL78_RH_RELAX, R_RL78_RH_SFR, R_RL78_RH_SADDR): New.
(RL78_RELAXA_BRA, RL78_RELAXA_ADDR16: New.
 
2011-12-19 Chung-Lin Tang <cltang@codesourcery.com>
 
* mips.h (elf_mips_reloc_type): Add R_MIPS16_TLS_* entries.
 
2011-12-06 Ulrich Weigand <uweigand@de.ibm.com>
 
* common.h (NT_S390_LAST_BREAK): Define.
(NT_S390_SYSTEM_CALL): Likewise.
 
2011-11-01 DJ Delorie <dj@redhat.com>
 
* common.h (EM_RL78, EM_78K0R): New.
* rl78.h: New.
 
2011-10-25 Joern Rennecke <joern.rennecke@embecosm.com>
 
* epiphany.h: New file.
* common.h (EM_ADAPTEVA_EPIPHANY): Define.
 
2011-10-10 Alan Modra <amodra@gmail.com>
 
* ppc64.h (R_PPC64_TOCSAVE): Add.
 
2011-10-05 DJ Delorie <dj@redhat.com>
 
* rx.h (E_FLAG_RX_PID): New.
 
2011-09-21 David S. Miller <davem@davemloft.net>
 
* sparc.h (Tag_GNU_Sparc_HWCAPS): New object attribute.
(ELF_SPARC_HWCAP_*): New HWCAPS bitmask values.
 
2011-08-12 H.J. Lu <hongjiu.lu@intel.com>
 
PR ld/13082
* x86-64.h (R_X86_64_RELATIVE64): New.
 
2011-07-24 Chao-ying Fu <fu@mips.com>
Maciej W. Rozycki <macro@codesourcery.com>
 
* mips.h (R_MICROMIPS_min): New relocations.
(R_MICROMIPS_26_S1): Likewise.
(R_MICROMIPS_HI16, R_MICROMIPS_LO16): Likewise.
(R_MICROMIPS_GPREL16, R_MICROMIPS_LITERAL): Likewise.
(R_MICROMIPS_GOT16, R_MICROMIPS_PC7_S1): Likewise.
(R_MICROMIPS_PC10_S1, R_MICROMIPS_PC16_S1): Likewise.
(R_MICROMIPS_CALL16, R_MICROMIPS_GOT_DISP): Likewise.
(R_MICROMIPS_GOT_PAGE, R_MICROMIPS_GOT_OFST): Likewise.
(R_MICROMIPS_GOT_HI16, R_MICROMIPS_GOT_LO16): Likewise.
(R_MICROMIPS_SUB, R_MICROMIPS_HIGHER): Likewise.
(R_MICROMIPS_HIGHEST, R_MICROMIPS_CALL_HI16): Likewise.
(R_MICROMIPS_CALL_LO16, R_MICROMIPS_SCN_DISP): Likewise.
(R_MICROMIPS_JALR, R_MICROMIPS_HI0_LO16): Likewise.
(R_MICROMIPS_TLS_GD, R_MICROMIPS_TLS_LDM): Likewise.
(R_MICROMIPS_TLS_DTPREL_HI, R_MICROMIPS_TLS_DTPREL_LO): Likewise.
(R_MICROMIPS_TLS_GOTTPREL): Likewise.
(R_MICROMIPS_TLS_TPREL_HI16): Likewise.
(R_MICROMIPS_TLS_TPREL_LO16): Likewise.
(R_MICROMIPS_GPREL7_S2, R_MICROMIPS_PC23_S2): Likewise.
(R_MICROMIPS_max): Likewise.
(EF_MIPS_ARCH_ASE_MICROMIPS): New macro.
(STO_MIPS_ISA, STO_MIPS_FLAGS): Likewise.
(ELF_ST_IS_MIPS_PLT, ELF_ST_SET_MIPS_PLT): Likewise.
(STO_MICROMIPS): Likewise.
(ELF_ST_IS_MICROMIPS, ELF_ST_SET_MICROMIPS): Likewise.
(ELF_ST_IS_COMPRESSED): Likewise.
(STO_MIPS_PLT, STO_MIPS_PIC): Rework.
(ELF_ST_IS_MIPS_PIC, ELF_ST_SET_MIPS_PIC): Likewise.
(STO_MIPS16, ELF_ST_IS_MIPS16, ELF_ST_SET_MIPS16): Likewise.
 
2011-07-22 H.J. Lu <hongjiu.lu@intel.com>
 
* common.h (EM_K1OM): New.
 
2011-07-03 Samuel Thibault <samuel.thibault@gnu.org>
Thomas Schwinge <thomas@schwinge.name>
 
PR binutils/12913
* common.h (ELFOSABI_GNU): Define, replaces...
(ELFOSABI_LINUX): ... this, kept as an alias.
(ELFOSABI_HURD): Remove.
 
2011-06-15 Ulrich Weigand <ulrich.weigand@linaro.org>
 
* common.h (NT_ARM_VFP): Define.
 
2011-06-13 Walter Lee <walt@tilera.com>
 
* common.h: Add EM_TILEGX.
* tilegx.h: New file.
* tilepro.h: New file.
 
2011-06-09 Tristan Gingold <gingold@adacore.com>
 
* ia64.h (Elf64_External_VMS_ORIG_DYN_Note): New struct.
 
2011-06-02 Nick Clifton <nickc@redhat.com>
 
* common.h: Fix spelling mistake in comment.
* reloc-macros.h: Likewise.
 
2011-05-31 Paul Brook <paul@codesourcery.com>
 
* arm.h (arm_st_branch_type): Add ST_BRANCH_UNKNOWN.
 
2011-05-09 Paul Brook <paul@codesourcery.com>
 
* tic6x.h (ELF_STRING_C6000_unwind,
ELF_STRING_C6000_unwind_info, ELF_STRING_C6000_unwind_once,
ELF_STRING_C6000_unwind_info_once): Define.
 
2011-04-15 Sergio Durigan Junior <sergiodj@redhat.com>
 
* common.h (NT_STAPSDT): New define.
 
2011-03-31 Bernd Schmidt <bernds@codesourcery.com>
 
* tic6x.h (R_C6000_JUMP_SPLOT, R_C6000_EHTYPE,
R_C6000_PCR_H16, R_C6000_PCR_L16): New relocs.
(SHN_TIC6X_SCOMMON): Define.
 
2011-03-31 Tristan Gingold <gingold@adacore.com>
 
* ia64.h (Elf64_External_VMS_Note): New struct.
(NT_VMS_MHD, NT_VMS_LNM, NT_VMS_SRC, NT_VMS_TITLE, NT_VMS_EIDC)
(NT_VMS_FPMODE, NT_VMS_LINKTIME, NT_VMS_IMGNAM, NT_VMS_IMGID)
(NT_VMS_LINKID, NT_VMS_IMGBID, NT_VMS_GSTNAM, NT_VMS_ORIG_DYN)
(NT_VMS_PATCHTIME) New macros.
 
2011-03-14 Richard Sandiford <richard.sandiford@linaro.org>
 
* arm.h (R_ARM_IRELATIVE): New relocation.
 
2011-03-14 Richard Sandiford <richard.sandiford@linaro.org>
 
* internal.h (elf_internal_sym): Add st_target_internal.
* arm.h (arm_st_branch_type): New enum.
(ARM_SYM_BRANCH_TYPE): New macro.
 
2011-03-10 Nick Clifton <nickc@redhat.com>
 
* common.h (EM_V850): V850s now supplied by Renesas.
 
2011-02-25 Alan Modra <amodra@gmail.com>
 
PR 12516
* internal.h (ELF_SECTION_IN_SEGMENT_1): Don't match zero size
sections at start or end of PT_DYNAMIC.
 
2011-01-10 Nathan Sidwell <nathan@codesourcery.com>
Glauber de Oliveira Costa <glommer@gmail.com>
 
* arm.h (R_ARM_TLS_DESC, R_ARM_TLS_GOTDESC, R_ARM_TLS_CALL,
R_ARM_TLS_DESCSEQ, T_ARM_THM_TLS_CALL, R_ARM_THM_TLS_DESCSEQ): New
relocations.
 
2010-11-16 Jie Zhang <jie.zhang@analog.com>
 
* bfin.h (EF_BFIN_CODE_IN_L1): Define.
(EF_BFIN_DATA_IN_L1): Define.
 
2010-11-11 Mingming Sun <mingm.sun@gmail.com>
 
* mips.h (E_MIPS_MACH_LS3A): Defined.
 
2010-11-02 Joseph Myers <joseph@codesourcery.com>
 
* tic6x-attrs.h (Tag_ABI_wchar_t, Tag_ABI_stack_align_needed,
Tag_ABI_stack_align_preserved, Tag_ABI_PID, Tag_ABI_PIC,
Tag_ABI_array_object_alignment,
Tag_ABI_array_object_align_expected, Tag_ABI_conformance): Define.
 
2010-10-29 Joseph Myers <joseph@codesourcery.com>
 
* tic6x-attrs.h (Tag_ABI_compatibility): Define.
 
2010-10-29 Bernd Schmidt <bernds@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
 
* tic6x-attrs.h (Tag_ABI_DSBT): New.
 
2010-10-21 Joseph Myers <joseph@codesourcery.com>
 
* tic6x-attrs.h (Tag_C6XABI_Tag_CPU_arch): Change to Tag_ISA,
value 4.
* tic6x.h (Values for Tag_C6XABI_Tag_CPU_arch): Rename for
attribute renaming.
 
2010-07-23 Naveen.H.S <naveen.S@kpitcummins.com>
Ina Pandit <ina.pandit@kpitcummins.com>
 
* v850.h: Add support for V850E2 and V850E2V3.
(v850_reloc_type): Update the newly added relocations
 
2010-07-20 Alan Modra <amodra@gmail.com>
 
* internal.h (ELF_TBSS_SPECIAL): New macro, extracted from..
(ELF_SECTION_SIZE): ..here.
(ELF_SECTION_IN_SEGMENT_1): Add "strict" arg.
(ELF_SECTION_IN_SEGMENT_STRICT): New macro.
 
2010-06-25 Alan Modra <amodra@gmail.com>
 
* ppc64.h (R_PPC64_LO_DS_OPT): Define.
 
2010-06-15 Joseph Myers <joseph@codesourcery.com>
 
* tic6x-attrs.h: New.
* tic6x.h: Include elf/tic6x-attrs.h for attribute table.
(C6XABI_Tag_CPU_arch_none, C6XABI_Tag_CPU_arch_C62X,
C6XABI_Tag_CPU_arch_C67X, C6XABI_Tag_CPU_arch_C67XP,
C6XABI_Tag_CPU_arch_C64X, C6XABI_Tag_CPU_arch_C64XP,
C6XABI_Tag_CPU_arch_C674X): Define.
 
2010-06-11 Tristan Gingold <gingold@adacore.com>
 
* ia64.h (EF_IA_64_VMS_COMCOD, EF_IA_64_VMS_COMCOD_SUCCESS)
(EF_IA_64_VMS_COMCOD_WARNING, EF_IA_64_VMS_COMCOD_ERROR)
(EF_IA_64_VMS_COMCOD_ABORT, EF_IA_64_VMS_LINKAGES): Define.
(VMS_LF_CALL_DEBUG, VMS_LF_NOP0BUFS, VMS_LF_P0IMAGE)
(VMS_LF_MKTHREADS, VMS_LF_UPCALLS, VMS_LF_IMGSTA)
(VMS_LF_INITIALIZE, VMS_LF_MAIN, VMS_LF_EXE_INIT)
(VMS_LF_TBK_IN_IMG, VMS_LF_DBG_IN_IMG, VMS_LF_TBK_IN_DSF)
(VMS_LF_DBG_IN_DSF, VMS_LF_SIGNATURES, VMS_LF_REL_SEG_OFF): Define.
(VMS_STO_VISIBILITY, VMS_ST_VISIBILITY, VMS_STO_FUNC_TYPE)
(VMS_ST_FUNC_TYPE, VMS_SFT_CODE_ADDR, VMS_SFT_SYMV_IDX)
(VMS_SFT_FD, VMS_SFT_RESERVE, VMS_STO_LINKAGE, VMS_ST_LINKAGE)
(VMS_STL_IGNORE, VMS_STL_RESERVE, VMS_STL_STD, VMS_STL_LNK): Define.
(Elf64_External_VMS_IMAGE_FIXUP): New declaration.
(Elf64_External_VMS_IMAGE_RELA): Ditto.
(R_IA64_VMS_DIR8, R_IA64_VMS_DIR16LSB, R_IA64_VMS_CALL_SIGNATURE)
(R_IA64_VMS_EXECLET_FUNC, R_IA64_VMS_EXECLET_DATA, R_IA64_VMS_FIX8)
(R_IA64_VMS_FIX16, R_IA64_VMS_FIX32, R_IA64_VMS_FIX64)
(R_IA64_VMS_FIXFD, R_IA64_VMS_ACC_LOAD, R_IA64_VMS_ACC_ADD)
(R_IA64_VMS_ACC_SUB, R_IA64_VMS_ACC_MUL, R_IA64_VMS_ACC_DIV)
(R_IA64_VMS_ACC_AND, R_IA64_VMS_ACC_IOR, R_IA64_VMS_ACC_EOR)
(R_IA64_VMS_ACC_ASH, R_IA64_VMS_ACC_STO8, R_IA64_VMS_ACC_STO16LSH)
(R_IA64_VMS_ACC_STO32LSH, R_IA64_VMS_ACC_STO64LSH): New.
 
2010-05-25 Daniel Jacobowitz <dan@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
Andrew Stubbs <ams@codesourcery.com>
 
* sh.h (EF_SH_PIC, EF_SH_FDPIC): Define.
(R_SH_FIRST_INVALID_RELOC_6, R_SH_LAST_INVALID_RELOC_6): New. Adjust
other invalid ranges.
(R_SH_GOT20, R_SH_GOTOFF20, R_SH_GOTFUNCDESC, R_SH_GOTFUNCDESC20)
(R_SH_GOTOFFFUNCDESC, R_SH_GOTOFFFUNCDESC20, R_SH_FUNCDESC)
(R_SH_FUNCDESC_VALUE): New.
 
2010-05-18 H.J. Lu <hongjiu.lu@intel.com>
 
PR gas/11600
* common.h (SHF_EXCLUDE): New.
 
* i370.h (SHF_EXCLUDE): Removed.
* or32.h (SHF_EXCLUDE): Likewise.
* ppc.h (SHF_EXCLUDE): Likewise.
* sparc.h (SHF_EXCLUDE): Likewise.
 
2010-04-23 Alan Modra <amodra@gmail.com>
 
* internal.h (ELF_SECTION_SIZE): Protect macro args with parentheses.
Invert logic to clarify test for .tbss.
(ELF_IS_SECTION_IN_SEGMENT): Rename to..
(ELF_SECTION_IN_SEGMENT_1): ..this. Add check_vma param. Protect
macro args with parentheses.
(ELF_SECTION_IN_SEGMENT): Define.
(ELF_IS_SECTION_IN_SEGMENT_FILE): Delete.
(ELF_IS_SECTION_IN_SEGMENT_MEMORY): Delete.
 
2010-04-15 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
 
* arm.h (Tag_FP_arch, Tag_ABI_align_needed, Tag_ABI_align_preserved,
Tag_FP_HP_extension): Add new ABI attribute tags.
 
2010-04-15 Nick Clifton <nickc@redhat.com>
 
* alpha.h: Update copyright notice to use GPLv3.
* arc.h: Likewise.
* arm.h: Likewise.
* avr.h: Likewise.
* bfin.h: Likewise.
* common.h: Likewise.
* cr16.h: Likewise.
* cr16c.h: Likewise.
* cris.h: Likewise.
* crx.h: Likewise.
* d10v.h: Likewise.
* d30v.h: Likewise.
* dlx.h: Likewise.
* dwarf.h: Likewise.
* external.h: Likewise.
* fr30.h: Likewise.
* frv.h: Likewise.
* h8.h: Likewise.
* hppa.h: Likewise.
* i370.h: Likewise.
* i386.h: Likewise.
* i860.h: Likewise.
* i960.h: Likewise.
* ia64.h: Likewise.
* internal.h: Likewise.
* ip2k.h: Likewise.
* iq2000.h: Likewise.
* lm32.h: Likewise.
* m32c.h: Likewise.
* m32r.h: Likewise.
* m68hc11.h: Likewise.
* m68k.h: Likewise.
* mcore.h: Likewise.
* mep.h: Likewise.
* microblaze.h: Likewise.
* mips.h: Likewise.
* mmix.h: Likewise.
* mn10200.h: Likewise.
* moxie.h: Likewise.
* msp430.h: Likewise.
* mt.h: Likewise.
* openrisc.h: Likewise.
* or32.h: Likewise.
* pj.h: Likewise.
* ppc.h: Likewise.
* ppc64.h: Likewise.
* reloc-macros.h: Likewise.
* rx.h: Likewise.
* s390.h: Likewise.
* sh.h: Likewise.
* sparc.h: Likewise.
* spu.h: Likewise.
* v850.h: Likewise.
* vax.h: Likewise.
* vxworks.h: Likewise.
* x86-64.h: Likewise.
* xc16x.h: Likewise.
* xstormy16.h: Likewise.
* xtensa.h: Likewise.
 
2010-04-08 David Stubbs <stubbs@icerasemi.com>
 
* internal.h (ELF_IS_SECTION_IN_SEGMENT): PT_PHDR program headers
cannot contain any sections.
 
2010-03-25 Joseph Myers <joseph@codesourcery.com>
 
* common.h (ELFOSABI_C6000_ELFABI, ELFOSABI_C6000_LINUX): Define.
* tic6x.h: New.
 
2010-03-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
 
* common.h (VER_FLG_*): Document.
(VER_FLG_INFO): Define.
 
2010-02-23 Andrew Zabolotny <anpaza@mail.ru>
 
PR binutils/11297
* avr.h: (R_AVR_8): New relocation number.
 
2010-02-18 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
 
* arm.h (Tag_MPextension_use): Renumber.
(Tag_DIV_use): Add.
(Tag_MPextension_use_legacy): Likewise.
 
2010-02-09 Michael Holzheu <holzheu@de.ibm.com>
 
* common.h (NT_S390_TIMER, NT_S390_TODCMP, NT_S390_TODPREG,
NT_S390_CTRS and NT_S390_PREFIX): Define.
 
2010-02-08 David S. Miller <davem@davemloft.net>
 
* sparc.h (R_SPARC_JMP_IREL, R_SPARC_IRELATIVE): Define.
 
2010-02-02 H.J. Lu <hongjiu.lu@intel.com>
 
* common.h (NT_386_XSTATE): New.
 
2010-01-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
 
* s390.h (EF_S390_HIGH_GPRS): Added macro definition.
 
2010-01-19 Daisuke Hatayama <d.hatayama@jp.fujitsu.com>
 
* common.h (PN_XNUM): Define.
 
2009-12-18 Ulrich Weigand <uweigand@de.ibm.com>
 
* common.h (NT_S390_HIGH_GPRS): Define.
 
2009-12-17 Alan Modra <amodra@bigpond.net.au>
 
* ppc.h (R_PPC_RELAX32, R_PPC_RELAX32PC, R_PPC_RELAX32_PLT,
R_PPC_RELAX32PC_PLT): Delete.
(R_PPC_RELAX, R_PPC_RELAX_PLT, R_PPC_RELAX_PLTREL24): Define.
 
2009-12-03 David Daney <ddaney@caviumnetworks.com>
Adam Nemet <adambnemet@gmail.com>
 
* mips.h (E_MIPS_MACH_OCTEON2): New machine flag.
 
2009-11-28 Joseph Myers <joseph@codesourcery.com>
 
* common.h (ELFOSABI_FENIXOS, EM_TI_C6000, EM_TI_C2000,
EM_TI_C5500, EM_CUDA): Define.
(EM_res140, EM_res141, EM_res142): Remove.
 
2009-11-17 Paul Brook <paul@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
 
* arm.h (TAG_CPU_ARCH_V7E_M): Define.
 
2009-09-29 DJ Delorie <dj@redhat.com>
 
* rx.h: New file.
 
2009-09-21 Alan Modra <amodra@bigpond.net.au>
 
* ppc.h (DT_PPC_TLSOPT): Define.
* ppc64.h (DT_PPC64_TLSOPT): Define.
 
2009-08-10 Daniel Gutson <dgutson@codesourcery.com>
 
* arm.h: (SHT_ARM_DEBUGOVERLAY): New define.
(SHT_ARM_OVERLAYSECTION): New define.
 
2006-08-09 Bernd Schmidt <bernd.schmidt@analog.com>
 
From Mike Frysinger <michael.frysinger@analog.com>
* bfin.h (R_BFIN_UNUSED, R_BFIN_PCREL5M2, R_BFIN_UNUSED1,
R_BFIN_PCREL10, R_BFIN_PCREL12_JUMP, R_BFIN_RIMM16,
R_BFIN_LUIMM16, R_BFIN_HUIMM16, R_BFIN_PCREL12_JUMP_S,
R_BFIN_PCREL24_JUMP_X, R_BFIN_PCREL24, R_BFIN_UNUSEDB,
R_BFIN_UNUSEDC, R_BFIN_PCREL24_JUMP_L, R_BFIN_PCREL24_CALL_X,
R_BFIN_VAR_EQ_SYMB, R_BFIN_BYTE_DATA, R_BFIN_BYTE2_DATA,
R_BFIN_BYTE4_DATA, R_BFIN_PCREL11, R_BFIN_PUSH, R_BFIN_CONST,
R_BFIN_ADD, R_BFIN_SUB, R_BFIN_MULT, R_BFIN_DIV, R_BFIN_MOD,
R_BFIN_LSHIFT, R_BFIN_RSHIFT, R_BFIN_AND, R_BFIN_OR, R_BFIN_XOR,
R_BFIN_LAND, R_BFIN_LOR, R_BFIN_LEN, R_BFIN_NEG, R_BFIN_COMP,
R_BFIN_PAGE, R_BFIN_HWPAGE, R_BFIN_ADDR, R_BFIN_PLTPLC,
R_BFIN_GOT, R_BFIN_MAX): Renamed from R_unused0, R_pcrel5ms,
R_unused1, R_pcrel10, R_pcrel12_jump, R_rimm16, R_luimm16,
R_huimm16, R_pcrel12_jump_s, R_pcrel24_jump_x, R_pcrel24,
R_unusedb, R_unusedc, R_pcrel24_jump_l, R_pcrel24_call_x,
R_var_eq_symb, R_byte_data, R_byte2_data, R_byte4_data, R_pcrel11,
R_push, R_const, R_add, R_sub, R_mult, R_div, R_mod, R_lshift,
R_rshift, R_and, R_or, R_xor, R_land, R_lor, R_len, R_neg, R_comp,
R_page, R_hwpage, R_addr, R_pltpc, R_got.
 
2009-08-09 Michael Eager <eager@eagercon.com>
 
* elf/common.h: Define EM_resnnn reserved values. Add EM_AVR32,
EM_STM8, EM_TILE64, EM_TILEPRO. Change EM_MICROBLAZE.
 
2009-08-06 Michael Eager <eager@eagercon.com>
 
* elf/common.h: Define EM_MICROBLAZE & EM_MICROBLAZE_OLD.
* elf/microblaze.h: New reloc definitions.
 
2009-07-30 Alan Modra <amodra@bigpond.net.au>
 
* ppc64.h: Add R_PPC64_JMP_IREL, R_PPC64_REL16, R_PPC64_REL16_LO,
R_PPC64_REL16_HI, R_PPC64_REL16_HA.
 
2009-07-25 H.J. Lu <hongjiu.lu@intel.com>
 
* common.h (EM_L1OM): New.
 
2009-07-24 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
Alan Modra <amodra@bigpond.net.au>
 
* spu.h (R_SPU_ADD_PIC): New.
 
2009-07-23 Ulrich Drepper <drepper@redhat.com>
 
* common.h (STB_GNU_UNIQUE): Define.
 
2009-07-10 Tom Tromey <tromey@redhat.com>
 
* dwarf2.h: Move to `..'.
 
2009-07-10 H.J. Lu <hongjiu.lu@intel.com>
 
* dwarf2.h: Just include ../dwarf2.h.
 
2009-07-10 Alan Modra <amodra@bigpond.net.au>
 
* ppc.h (R_PPC_IRELATIVE): Add.
(R_PPC_RELAX32, R_PPC_RELAX32PC,
R_PPC_RELAX32_PLT, R_PPC_RELAX32PC_PLT): Renumber.
* ppc64.h (R_PPC64_IRELATIVE): Add.
 
2009-07-03 Jakub Jelinek <jakub@redhat.com>
 
* dwarf2.h (enum dwarf_location_atom): Add DW_OP_implicit_value
and DW_OP_stack_value.
 
2009-06-22 Alan Modra <amodra@bigpond.net.au>
 
* ppc.h (R_PPC_RELAX*): Define as enum.
 
2009-06-11 Anthony Green <green@moxielogic.org>
 
* moxie.h (R_MOXIE_PCREL10): New.
 
2009-06-01 H.J. Lu <hongjiu.lu@intel.com>
 
PR ld/10205
* i386.h (R_386_IRELATIVE): New.
* x86-64.h (R_X86_64_IRELATIVE): Likewise.
 
2009-05-27 H.J. Lu <hongjiu.lu@intel.com>
 
* common.h: Update comments for dynamic tag ranges.
 
2009-04-30 DJ Delorie <dj@redhat.com>
 
* mep.h (EF_MEP_COP_*): New.
(EF_MEP_ALL_FLAGS): Add them.
 
2009-04-30 Nick Clifton <nickc@redhat.com>
 
* common.h (STT_GNU_IFUNC): Define.
 
2009-04-24 Cary Coutant <ccoutant@google.com>
 
* dwarf2.h (DW_LNE_set_discriminator): New enum value.
 
2009-04-15 Anthony Green <green@moxielogic.com>
 
* common.h (EM_MOXIE): Define.
* moxie.h: New file.
 
2009-04-07 DJ Delorie <dj@redhat.com>
 
* mep.h (EF_MEP_CPU_C5): New.
 
2009-04-01 H.J. Lu <hongjiu.lu@intel.com>
 
* common.h (EM_INTEL178): Removed.
(EM_INTEL179): Likewise.
(EM_ETPU): New.
(EM_SLE9X): Likewise.
(EM_INTEL181): Likewise.
(EM_INTEL182): Likewise.
 
2009-03-31 H.J. Lu <hongjiu.lu@intel.com>
 
* common.h (EM_INTEL178): New.
(EM_INTEL179): Likewise.
(EM_INTEL180): Likewise.
 
2009-03-20 Mikolaj Zalewski <mikolajz@google.com>
 
* common.h (SHT_GNU_INCREMENTAL_INPUTS): Define.
 
2009-03-14 Mark Kettenis <kettenis@gnu.org>
 
* common.h (NT_OPENBSD_PROCINFO, NT_OPENBSD_AUXV)
(NT_OPENBSD_REGS, NT_OPENBSD_FPREGS, NT_OPENBSD_XFPREGS)
(NT_OPENBSD_WCOOKIE): New defines.
 
2009-03-16 Jan Kratochvil <jan.kratochvil@redhat.com>
 
* common.h (AT_RANDOM): Define.
 
2009-03-04 Alan Modra <amodra@bigpond.net.au>
 
* ppc.h (R_PPC_TLSGD, R_PPC_TLSLD): Add new relocs.
* ppc64.h (R_PPC64_TLSGD, R_PPC64_TLSLD): Add new relocs.
 
2009-03-02 Qinwei <qinwei@sunnorth.com.cn>
 
* score.h (RELOC_NUMBER): Add R_SCORE_IMM32.
* common.h (EM_SCORE_OLD): Define.
 
2009-02-23 H.J. Lu <hongjiu.lu@intel.com>
 
* common.h (STB_LOPROC): Replace Application-specific with
Processor-specific in comments.
(STB_HIPROC): Likewise.
(STT_LOPROC): Likewise.
(STT_HIPROC): Likewise.
 
2009-02-03 Sandip Matte <sandip@rmicorp.com>
 
* mips.h (E_MIPS_MACH_XLR): Define.
 
2009-02-03 Maxim Kuvyrkov <maxim@codesourcery.com>
 
* m68k.h: Map TLS relocations to numbers.
 
2009-01-15 Andrew Stubbs <ams@codesourcery.com>
Julian Brown <julian@codesourcery.com>
 
* arm.h (TAG_CPU_ARCH_V6_M, TAG_CPU_ARCH_V6S_M): New defines.
(MAX_TAG_CPU_ARCH, TAG_CPU_ARCH_V4T_PLUS_V6_M): New defines.
(Tag_NEON_arch): Rename to Tag_Advanced_SIMD_arch to match ARM ABI
version 2.07.
(Tag_undefined39, Tag_nodefaults): New enum values.
(Tag_also_compatible_with, Tag_T2EE_use): Likewise.
(Tag_conformance, Tag_Virtualization_use): Likewise.
(Tag_undefined69, Tag_MPextension_use): Likewise.
 
2009-01-15 Douglas B Rupp <rupp@gnat.com>
 
* ia64.h (SHT_IA_64_VMS_DISPLAY_NAME_INFO, EF_IA_64_ARCHVER_1):
New macros. Minor reformatting.
 
2008-12-23 Jon Beniston <jon@beniston.com>
 
* lm32.h: New file.
 
2008-12-23 Nick Clifton <nickc@redhat.com>
 
* commmon.h (STT_IFUNC): Delete.
 
2008-12-20 Hans-Peter Nilsson <hp@axis.com>
 
* cris.h (R_CRIS_32_IE): New relocation.
 
2008-12-03 Nick Clifton <nickc@redhat.com>
 
* common.h (STT_IFUNC): Define.
 
2008-11-27 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
 
* cr16.h (R_CR16_GOT_REGREL20, R_CR16_GOTC_REGREL20 and
R_CR16_GLOB_DAT): New relocations.
 
2008-11-25 Hans-Peter Nilsson <hp@axis.com>
 
* cris.h (R_CRIS_32_TPREL): Correct comment.
(R_CRIS_DTPMOD): Open up for use elsewhere than the fourth GOT entry.
 
2008-11-18 Catherine Moore <clm@codesourcery.com>
 
* arm.h (Tag_ABI_FP_16bit_format): Define.
 
2008-11-14 Nathan Sidwell <nathan@codesourcery.com>
 
* internal.h (struct elf_segment_map): Add header_size field.
 
2008-10-13 Ulrich Weigand <uweigand@de.ibm.com>
 
* common.h (AT_BASE_PLATFORM, AT_EXECFN): Define.
 
2008-10-10 Nathan Froyd <froydnj@codesourcery.com>
 
* ppc.h: Add Tag_GNU_Power_ABI_Struct_Return.
 
2008-10-04 Hans-Peter Nilsson <hp@axis.com>
 
* cris.h (R_CRIS_32_GOT_GD, R_CRIS_16_GOT_GD, R_CRIS_32_GD)
(R_CRIS_DTP, R_CRIS_32_DTPREL, R_CRIS_16_DTPREL, R_CRIS_DTPMOD)
(R_CRIS_32_GOT_TPREL, R_CRIS_16_GOT_TPREL, R_CRIS_32_TPREL)
(R_CRIS_16_TPREL): New relocations.
 
2008-08-20 Bob Wilson <bob.wilson@acm.org>
 
* xtensa.h (R_XTENSA_TLSDESC_FN, R_XTENSA_TLSDESC_ARG)
(R_XTENSA_TLS_DTPOFF, R_XTENSA_TLS_TPOFF, R_XTENSA_TLS_FUNC)
(R_XTENSA_TLS_ARG, R_XTENSA_TLS_CALL): New.
 
2008-08-08 Richard Sandiford <rdsandiford@googlemail.com>
Daniel Jacobowitz <dan@codesourcery.com>
Catherine Moore <clm@codesourcery.com>
Mark Shinwell <shinwell@codesourcery.com>
 
* mips.h (STO_MIPS_PLT, ELF_ST_IS_MIPS_PLT, ELF_ST_SET_MIPS_PLT)
(STO_MIPS_PIC, DT_MIPS_PLTGOT, DT_MIPS_RWPLT): New macros.
 
2008-08-04 Markus Weiss <weissms@aros.org>
 
* common.h (ELFOSABI_AROS): Update comment.
 
2008-07-26 Michael Eager <eager@eagercon.com>
 
* ppc.h: Add description of single-precision.
 
2008-07-21 Luis Machado <luisgpm@br.ibm.com>
 
* common.h: Define NT_PPC_VSX.
 
2008-07-10 Richard Sandiford <rdsandiford@googlemail.com>
 
* mips.h (ELF_ST_IS_MIPS16, ELF_ST_SET_MIPS16): New macros.
 
2008-06-18 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
 
* common.h (EM_CR16): Correct value.
(EM_CR16): Rename to EM_CR16_OLD.
 
2008-06-12 DJ Delorie <dj@redhat.com>
 
* common.h (EM_M32C_NEW): Rename to EM_M32C.
(EM_M32C): Rename to EM_M32C_OLD.
 
2008-06-12 Joseph Myers <joseph@codesourcery.com>
 
* common.h: Update e_machine table.
 
2008-06-09 Takashi Yoshii <yoshii.takashi@renesas.com>
 
* sh.h (EF_SH_BFD_TABLE): Set bfd_mach_sh for EF_SH_UNKNOWN.
 
2008-06-09 Joseph Myers <joseph@codesourcery.com>
 
* common.h: Change registry@caldera.com to registry@sco.com.
 
2008-05-21 Nick Clifton <nickc@redhat.com>
 
* reloc-macros.h: Add a comment about the use of the
END_RELOC_NUMBERS symbol as a sentinel value.
 
2008-05-15 Christophe Lyon <christophe.lyon@st.com>
 
* arm.h (END_RELOC_NUMBERS): Provide a maximum value.
 
2008-04-16 David S. Miller <davem@davemloft.net>
 
* elf/sparc.h (R_SPARC_GOTDATA_HIX22,
R_SPARC_GOTDATA_LOX10, R_SPARC_GOTDATA_OP_HIX22,
R_SPARC_GOTDATA_OP_LOX10, R_SPARC_GOTDATA_OP,
R_SPARC_H34, R_SPARC_SIZE32, R_SPARC_SIZE64): New relocs.
 
2008-03-24 Ian Lance Taylor <iant@google.com>
 
* common.h (NT_GNU_GOLD_VERSION): Define.
 
2008-03-13 Alan Modra <amodra@bigpond.net.au>
 
* internal.h (Elf_Internal_Shdr): Change sh_link and sh_info from
unsigned long to unsigned int. Change sh_addralign to bfd_vma.
Order struct as for external version.
 
2008-03-12 Alan Modra <amodra@bigpond.net.au>
 
PR 5900
* common.h (SHN_BAD): Delete.
(SHN_LORESERVE .. SHN_HIRESERVE): Move to..
* external.h: ..here.
* internal.h (SHN_LORESERVE, SHN_HIRESERVE): Define.
(SHN_LOPROC, SHN_HIPROC, SHN_LOOS, SHN_HIOS): Define.
(SHN_ABS, SHN_COMMON, SHN_XINDEX, SHN_BAD): Define.
 
2008-03-12 Alan Modra <amodra@bigpond.net.au>
 
* cr16c.h (SHN_CR16C_FCOMMON): Define using SHN_LORESERVE.
(SHN_CR16C_NCOMMON): Likewise.
* hppa.h (SHN_PARISC_ANSI_COMMON): Likewise.
(SHN_PARISC_HUGE_COMMON): Likewise.
* ia64.h (SHN_IA_64_ANSI_COMMON): Likewise.
(SHN_IA_64_VMS_SYMVEC): Define using SHN_LOOS.
* m32r.h (SHN_M32R_SCOMMON): Define using SHN_LORESERVE.
* mips.h (SHN_MIPS_ACOMMON, SHN_MIPS_TEXT): Likewise.
(SHN_MIPS_DATA, SHN_MIPS_SCOMMON, SHN_MIPS_SUNDEFINED): Likewise.
* score.h (SHN_SCORE_TEXT, SHN_SCORE_DATA): Likewise.
(SHN_SCORE_SCOMMON): Likewise.
* sparc.h (SHN_BEFORE, SHN_AFTER): Likewise.
* v850.h (SHN_V850_SCOMMON, SHN_V850_TCOMMON): Likewise.
(SHN_V850_ZCOMMON): Likewise.
* x86-64.h (SHN_X86_64_LCOMMON): Likewise.
 
2008-03-03 Pallavi Tambay <pallavi.tambay@amd.com>
 
* dwarf2.h: (enum dwarf_location_atom): Add new DW_OP:
DW_OP_PGI_omp_thread_num.
 
2008-02-04 Adam Nemet <anemet@caviumnetworks.com>
 
* mips.h: Update copyright.
(E_MIPS_MACH_OCTEON): New macro.
 
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>
 
* common.h (AT_SUN_AUXFLAGS): Define.
 
2007-12-11 Daniel Jacobowitz <dan@codesourcery.com>
 
* dwarf2.h (DW_AT_hi_user): Correct value.
 
2007-12-07 Bob Wilson <bob.wilson@acm.org>
 
* xtensa.h (R_XTENSA_32_PCREL): New.
 
2007-11-29 Mark Shinwell <shinwell@codesourcery.com>
 
* mips.h (E_MIPS_MACH_LS2E): New.
(E_MIPS_MACH_LS2F): New.
 
2007-11-28 Nathan Sidwell <nathan@codesourcery.com>
 
* internal.h (ELF_IS_SECTION_IN_SEGMENT): Adjust to cope with
segments at the end of memory.
 
2007-11-17 Thiemo Seufer <ths@mips.com>
 
* mips.h (Tag_GNU_MIPS_ABI_FP): Mention -mips32r2 -mfp64 variant
in comment.
 
2007-11-16 Nick Clifton <nickc@redhat.com>
 
* dwarf2.h: Mention the location of the DWARF3 spec on the web.
(DW_AT_stride_size): Rename to DW_AT_bit_stride.
(DW_AT_stride): Rename to DW_AT_byte_stride.
 
2007-11-08 Nathan Sidwell <nathan@codesourcery.com>
 
* vxworks.h: New.
 
2007-10-30 Nick Clifton <nickc@redhat.com>
 
* mn10300.h (R_MN10300_ALIGN): Define.
 
2007-10-25 Daniel Jacobowitz <dan@codesourcery.com>
 
* ppc.h (Tag_GNU_Power_ABI_Vector): New.
 
2007-10-19 Nick Clifton <nickc@redhat.com>
 
* mn10300.h: Add R_MN10300_SYM_DIFF reloc.
 
2007-10-18 Roland McGrath <roland@redhat.com>
 
* common.h (NT_PPC_VMX): New macro.
 
2007-10-01 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
 
* cr16.h: Updated with new relocaction macros.
 
2007-09-17 H.J. Lu <hongjiu.lu@intel.com>
 
PR binutils/3281
PR binutils/5037
* internal.h (elf_segment_map): Add p_size and p_size_valid.
(ELF_IS_SECTION_IN_SEGMENT): Allow SHF_TLS sections in
PT_GNU_RELRO segments.
 
2007-09-11 Nathan Sidwell <nathan@codesourcery.com>
 
* m68k.h (EF_M68K_CF_ISA_C_NODIV): New.
 
2007-08-25 Ulrich Weigand <uweigand@de.ibm.com>
 
* common.h (NT_SPU): Define.
 
2007-08-16 H.J. Lu <hongjiu.lu@intel.com>
 
* common.h: Revert last change.
 
2007-08-16 H.J. Lu <hongjiu.lu@intel.com>
 
* common.h (PT_GNU_STACK): Renamed to ...
(PT_GNU_ATTR): This.
(PT_GNU_STACK): New. Make an alias of PT_GNU_ATTR.
 
2007-07-09 Roland McGrath <roland@redhat.com>
 
* common.h (NT_GNU_HWCAP, NT_GNU_BUILD_ID): New macros.
 
2007-06-29 Joseph Myers <joseph@codesourcery.com>
 
* ppc.h (Tag_GNU_Power_ABI_FP): Define.
 
2007-06-29 Joseph Myers <joseph@codesourcery.com>
 
* mips.h (Tag_GNU_MIPS_ABI_FP): Define.
 
2007-06-29 Joseph Myers <joseph@codesourcery.com>
 
* arm.h (elf32_arm_add_eabi_attr_int,
elf32_arm_add_eabi_attr_string, elf32_arm_add_eabi_attr_compat,
elf32_arm_get_eabi_attr_int, elf32_arm_set_eabi_attr_contents,
elf32_arm_eabi_attr_size, Tag_NULL, Tag_File, Tag_Section,
Tag_Symbol, Tag_compatibility): Remove.
* common.h (SHT_GNU_ATTRIBUTES): Define.
 
2007-06-29 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
 
* common.h (EM_CR16): New entry for CR16 cpu.
* cr16.h: New file.
 
2007-06-11 Sterling Augustine <sterling@tensilica.com>
Bob Wilson <bob.wilson@acm.org>
 
* xtensa.h (XTENSA_PROP_INSN_NO_TRANSFORM): Renamed to...
(XTENSA_PROP_NO_TRANSFORM): ...this.
 
2007-05-18 Caroline Tice <ctice@apple.com>
 
* dwarf2.h: (enum dwarf_location_atom): Add new DW_OP,
DW_OP_GNU_uninit.
 
2007-05-12 Alan Modra <amodra@bigpond.net.au>
 
* spu.h (R_SPU_ADDR16X): Define.
(R_SPU_PPU32, R_SPU_PPU64): Renumber.
 
2007-05-11 Alan Modra <amodra@bigpond.net.au>
 
* spu.h (R_SPU_PPU32, R_SPU_PPU64): Define.
 
2007-05-02 Alan Modra <amodra@bigpond.net.au>
 
* internal.h (ELF_IS_SECTION_IN_SEGMENT): Check both file offset
and vma for appropriate sections.
 
2007-04-26 Jan Beulich <jbeulich@novell.com>
 
* common.h (DT_ENCODING): Correct value (back to spec mandated
value).
 
2007-03-08 Alan Modra <amodra@bigpond.net.au>
 
* v850.h (V850_OTHER_TDA_BYTE): Delete.
(V850_OTHER_SDA, V850_OTHER_ZDA, V850_OTHER_TDA): Assign bits
that don't clash with visibility bits.
 
2007-03-07 Alan Modra <amodra@bigpond.net.au>
 
* common.h (ELF_ST_VISIBILITY): Comment typo fix.
 
2007-02-05 Dave Brolley <brolley@redhat.com>
Richard Sandiford <rsandifo@redhat.com>
Richard Henderson <rth@redhat.com>
DJ Delorie <dj@redhat.com>
Ben Elliston <bje@redhat.com>
 
* mep.h: New file.
* common.h (EM_CYGNUS_MEP): Define.
 
2007-02-15 Dave Brolley <brolley@redhat.com>
 
From Graydon Hoare <graydon@redhat.com>:
* common.h (STT_RELC, STT_SRELC, R_RELC): New macros.
 
2007-01-08 Kazu Hirata <kazu@codesourcery.com>
 
* m68k.h (EF_M68K_FIDO): New.
(EF_M68K_ARCH_MASK): OR EF_M68K_FIDO.
(EF_M68K_CPU32_FIDO_A, EF_M68K_CPU32_MASK): Remove.
 
2006-12-25 Kazu Hirata <kazu@codesourcery.com>
 
* m68k.h (EF_M68K_CPU32_FIDO_A, EF_M68K_CPU32_MASK): New.
 
2006-12-19 Kazu Hirata <kazu@codesourcery.com>
 
* m68k.h (EF_M68K_ARCH_MASK): New.
 
2006-12-19 Nathan Sidwell <nathan@codesourcery.com>
 
* internal.h (struct elf_segment_map): Add p_vaddr_offset field.
 
2006-12-07 Kazu Hirata <kazu@codesourcery.com>
 
* m68k.h (EF_M68K_ISA_MASK, EF_M68K_ISA_A_NODIV,
EF_M68K_ISA_A, EF_M68K_ISA_A_PLUS, EF_M68K_ISA_B_NOUSP,
EF_M68K_ISA_B, EF_M68K_ISA_C, EF_M68K_MAC_MASK, EF_M68K_MAC,
EF_M68K_EMAC, EF_M68K_EMAC_B, EF_M68K_FLOAT): Rename to
EF_M68K_CF_ISA_MASK, EF_M68K_CF_ISA_A_NODIV, EF_M68K_CF_ISA_A,
EF_M68K_CF_ISA_A_PLUS, EF_M68K_CF_ISA_B_NOUSP,
EF_M68K_CF_ISA_B, EF_M68K_CF_ISA_C, EF_M68K_CF_MAC_MASK,
EF_M68K_CF_MAC, EF_M68K_CF_EMAC, EF_M68K_CF_EMAC_B,
EF_M68K_CF_FLOAT, respectively.
 
2006-12-05 Michael Tautschnig <tautschn@model.in.tum.de>
Nick Clifton <nickc@redhat.com>
 
* external.h (struct Elf_External_Versym): Use ATTRIBUTE_PACKED.
 
2006-10-28 Richard Sandiford <richard@codesourcery.com>
 
* mips.h (R_MIPS_GLOB_DAT): Define
(R_MIPS_max): Bump by 1.
 
2006-10-25 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
Yukishige Shibata <shibata@rd.scei.sony.co.jp>
Nobuhisa Fujinami <fnami@rd.scei.sony.co.jp>
Takeaki Fukuoka <fukuoka@rd.scei.sony.co.jp>
Alan Modra <amodra@bigpond.net.au>
 
* common.h (EM_SPU): Define.
* spu.h: New file.
 
2006-10-19 Mei Ligang <ligang@sunnorth.com.cn>
 
* score.h (EF_SCORE_PIC): Redefine EF_SCORE_PIC as 0x80000000.
(EF_SCORE_FIXDEP): Redefine EF_SCORE_FIXDEP as 0x40000000.
(EF_SCORE_HASENTRY): Delete.
 
2006-10-17 Mark Shinwell <shinwell@codesourcery.com>
 
* arm.h: Define TAG_CPU_ARCH_* constants.
 
2006-09-17 Mei Ligang <ligang@sunnorth.com.cn>
 
* score.h: New file.
* common.h: Add Score machine number.
 
2006-07-10 Jakub Jelinek <jakub@redhat.com>
 
* common.h (SHT_GNU_HASH, DT_GNU_HASH): Define.
 
2006-05-31 H.J. Lu <hongjiu.lu@intel.com>
 
* internal.h (ELF_SECTION_SIZE): New.
(ELF_IS_SECTION_IN_SEGMENT): Likewise.
(ELF_IS_SECTION_IN_SEGMENT_FILE): Updated.
(ELF_IS_SECTION_IN_SEGMENT_MEMORY): Likewise.
 
2006-05-27 H.J. Lu <hongjiu.lu@intel.com>
 
* internal.h (struct elf_segment_map): Add p_align and p_align_valid.
 
2006-05-24 Carlos O'Donell <carlos@systemhalted.org>
Randolph Chung <randolph@tausq.org>
* hppa.h (R_PARISC_TLS_GD21L, R_PARISC_TLS_GD14R, R_PARISC_TLS_GDCALL,
R_PARISC_TLS_LDM21L, R_PARISC_TLS_LDM14R, R_PARISC_TLS_LDMCALL,
R_PARISC_TLS_LDO21L, R_PARISC_TLS_LDO14R, R_PARISC_TLS_DTPMOD32,
R_PARISC_TLS_DTPMOD64, R_PARISC_TLS_DTPOFF32, R_PARISC_TLS_DTPOFF64):
New TLS relocs.
(R_PARISC_TLS_LE21L, R_PARISC_TLS_LE14R, R_PARISC_TLS_IE21L,
R_PARISC_TLS_IE14R, R_PARISC_TLS_TPREL32, R_PARISC_TLS_TPREL64):
Define TLS relocs using existing equivalents.
 
2006-05-24 Bjoern Haase <bjoern.m.haase@web.de>
 
* avr.h: Add E_AVR_MACH_AVR6, R_AVR_LO8_LDI_GS and R_AVR_HI8_LDI_GS.
 
2006-03-25 Bernd Schmidt <bernd.schmidt@analog.com>
 
* bfin.h (R_BFIN_GOT17M4, R_BFIN_GOTHI, R_BFIN_GOTLO,
R_BFIN_FUNCDESC, R_BFIN_FUNCDESC_GOT17M4, R_BFIN_FUNCDESC_GOTHI,
R_BFIN_FUNCDESC_GOTLO, R_BFIN_FUNCDESC_VALUE,
R_BFIN_FUNCDESC_GOTOFF17M4, R_BFIN_FUNCDESC_GOTOFFHI,
R_BFIN_FUNCDESC_GOTOFFLO, R_BFIN_GOTOFF17M4, R_BFIN_GOTOFFHI,
R_BFIN_GOTOFFLO): New relocs.
(EF_BFIN_PIC, EF_BFIN_FDPIC, EF_BFIN_PIC_FLAGS): New macros.
 
2006-03-23 Michael Matz <matz@suse.de>
 
* x86-64.h: Add the new relocations with their official
numbers.
 
2006-03-22 Richard Sandiford <richard@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
Phil Edwards <phil@codesourcery.com>
Zack Weinberg <zack@codesourcery.com>
Mark Mitchell <mark@codesourcery.com>
Nathan Sidwell <nathan@codesourcery.com>
 
* mips.h (R_MIPS_COPY, R_MIPS_JUMP_SLOT): New relocs.
 
2006-03-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
 
* hppa.h (SHF_HP_TLS, SHF_HP_NEAR_SHARED, SHF_HP_FAR_SHARED,
SHF_HP_COMDAT, SHF_HP_CONST, SHN_TLS_COMMON, SHN_NS_COMMON,
SHN_NS_UNDEF, SHN_FS_UNDEF, SHN_HP_EXTERN, SHN_HP_EXTHINT,
SHN_HP_UNDEF_BIND_IMM, SHT_HP_OVLBITS, SHT_HP_DLKM, SHT_HP_COMDAT,
SHT_HP_OBJDICT, SHT_HP_ANNOT, STB_HP_ALIAS): Define.
 
2006-03-10 Paul Brook <paul@codesourcery.com>
 
* arm.h (EF_ARM_EABI_VER5): Define.
 
2006-03-06 Nathan Sidwell <nathan@codesourcery.com>
 
* m68k.h (EF_M68K_ISA_MASK, EF_M68K_ISA_A,
EF_M68K_ISA_A_PLUS, EF_M68K_ISA_B, EF_M68K_ISA_C): Adjust.
(EF_M68K_ISA_A_NODIV, EF_M68K_ISA_B_NOUSP): New.
(EF_M68K_HW_DIV, EF_M68K_USP): Remove.
(EF_M68K_MAC, EF_M68K_EMAC, EF_M68K_FLOAT): Adjust.
(EF_M68K_EMAC_B): New.
 
2006-03-03 Bjoern Haase <bjoern.m.haase@web.de>
 
* avr.h (R_AVR_MS8_LDI,R_AVR_MS8_LDI_NEG): Add.
(EF_AVR_LINKRELAX_PREPARED): Add.
 
2006-03-02 Ben Elliston <bje@au.ibm.com>
 
Import from the GCC tree:
2006-03-01 Jakub Jelinek <jakub@redhat.com>
 
* dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
from DWARF 3.
(DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
(DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
(DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
(DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
DW_DS_leading_separate, DW_DS_trailing_separate): New.
(DW_END_default, DW_END_big, DW_END_little): New.
(DW_END_lo_user, DW_END_hi_user): Define.
(DW_LNE_lo_user, DW_LNE_hi_user): Define.
(DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
(DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
DW_LANG_D): New.
 
2006-02-06 Steve Ellcey <sje@cup.hp.com>
 
* ia64.h (SHF_IA_64_HP_TLS): New.
 
2006-02-24 DJ Delorie <dj@redhat.com>
 
* m32c.h: Add relax relocs.
 
2006-02-17 Shrirang Khisti <shrirangk@kpitcummins.com>
Anil Paranjape <anilp1@kpitcummins.com>
Shilin Shakti <shilins@kpitcummins.com>
 
* common.h (EM_XC16X): New entry for xc16x cpu.
Sort other EM_* numbers into numerical order.
* xc16x.h: New file.
 
2006-02-10 H.J. Lu <hongjiu.lu@intel.com>
 
PR binutils/2258
* internal.h (ELF_IS_SECTION_IN_SEGMENT_FILE): New.
(ELF_IS_SECTION_IN_SEGMENT_MEMORY): Likewise.
 
2006-02-07 Nathan Sidwell <nathan@codesourcery.com>
 
* m68k.h (EF_CPU32, EF_M68000, EF_CFV4E): Rename to ...
(EF_M68K_CPU32, EF_M68K_M68000, EF_M68K_CFV4E): ... here.
(EF_M68K_ISA_MASK, EF_M68K_ISA_A, EF_M68K_M68K_ISA_A_PLUS,
EF_M68K_ISA_B, EF_M68K_HW_DIV, EF_M68K_MAC_MASK, EF_M68K_MAC,
EF_M68K_EMAC, EF_M68K_USP, EF_M68K_FLOAT): New.
 
2006-02-06 Steve Ellcey <sje@cup.hp.com>
 
* ia64.h (SHF_IA_64_HP_TLS): New.
 
2006-01-18 Alexandre Oliva <aoliva@redhat.com>
 
Introduce TLS descriptors for i386 and x86_64.
* common.h (DT_TLSDESC_GOT, DT_TLSDESC_PLT): New.
* i386.h (R_386_TLS_GOTDESC, R_386_TLS_DESC_CALL, R_386_TLS_DESC):
New.
* x86-64.h (R_X86_64_GOTPC32_TLSDESC, R_X86_64_TLSDESC_CALL,
R_X86_64_TLSDESC): New.
 
2006-01-09 Mike Frysinger <vapier@gentoo.org>:
 
* common.h (EM_ALTERA_NIOS2, EM_NIOS32) Define.
 
2005-12-16 Nathan Sidwell <nathan@codesourcery.com>
 
Second part of ms1 to mt renaming.
* common.h (EM_MT): Renamed.
* mt.h: Rename relocs, cpu & other defines.
 
2005-12-12 Nathan Sidwell <nathan@codesourcery.com>
 
* mt.h: Renamed from ms1.h
 
2005-12-12 Paul Brook <paul@codesourcery.com>
 
* arm.h (elf32_arm_get_eabi_attr_int): Add prototype.
 
2005-11-11 Nick Clifton <nickc@redhat.com>
 
PR 1150
* mips.h (STO_OPTIONAL): Define.
(ELF_MIPS_IS_OPTIONAL): Define.
 
2005-11-07 Nathan Sidwell <nathan@codesourcery.com>
 
Add ms2.
* ms1.h (EF_MS1_CPU_MS2): New.
 
2005-11-06 John David Anglin <dave.anglin@nrc-crnc.gc.ca>
 
* hppa.h (R_PARISC_DIR64WR, R_PARISC_DIR64DR): Remove relocs.
 
2005-09-30 Catherine Moore <clm@cm00re.com>
 
* bfin.h: New file.
* common.h (EM_BLACKFIN): Define.
 
2005-10-08 Paul Brook <paul@codesourcery.com>
 
* arm.h: Add prototypes for BFD object attribute routines.
 
2005-09-09 Richard Earnshaw <richard.earnshaw@arm.com>
 
* arm.h (SHT_ARM_PREEMPTMAP, SHT_ARM_ATTRIBUTES): New defines.
 
2005-08-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
 
* hppa.h (SHT_PARISC_DLKM, SHF_PARISC_WEAKORDER, PT_PARISC_WEAKORDER):
New defines.
 
2005-08-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
 
* hppa.h (PF_HP_CODE, PF_HP_MODIFY, PF_HP_LAZYSWAP): Revise defines.
(PF_HP_CODE_DEPR, PF_HP_MODIFY_DEPR, PF_HP_LAZYSWAP_DEPR): New
deprecated defines.
(DT_HP_EPLTREL, DT_HP_EPLTRELSZ, DT_HP_FILTERED, DT_HP_FILTER_TLS,
DT_HP_COMPAT_FILTERED, DT_HP_LAZYLOAD, DT_HP_BIND_NOW_COUNT, DT_PLT,
DT_PLT_SIZE, DT_DLT, DT_DLT_SIZE, DT_HP_BIND_DEPTH_FIRST, DT_HP_GST,
DT_HP_SHLIB_FIXED, DT_HP_MERGE_SHLIB_SEG, DT_HP_NODELETE, DT_HP_GROUP,
DT_HP_PROTECT_LINKAGE_TABLE, PT_HP_OPT_ANNOT, PT_HP_HSL_ANNOT,
PT_HP_STACK, PT_HP_CORE_UTSNAME, NT_HP_COMPILER, NT_HP_COPYRIGHT,
NT_HP_VERSION, NT_HP_SRCFILE_INFO, NT_HP_LINKER, NT_HP_INSTRUMENTED,
NT_HP_UX_OPTIONS): Define.
 
2005-07-25 DJ Delorie <dj@redhat.com>
 
* m32c.h: Add R_M32C_8, R_M32C_LO16, R_M32C_HI8, and R_M32C_HI16.
 
2005-07-25 Jan Hubicka <jh@suse.cz>
 
* x86-64.h (SHN_X86_64_LCOMMON): New.
(SHF_X86_64_LARGE): New.
 
2005-07-20 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
 
* m32r.h (R_M32R_REL32): Added.
 
2005-07-18 Ben Elliston <bje@au.ibm.com>
 
* dwarf2.h (enum dwarf_type): Remove DW_AT_GNU_decimal_float.
Replace with DW_ATE_decimal_float (now in DWARF 3).
 
2005-07-14 Jim Blandy <jimb@redhat.com>
 
Add support for Renesas M32C and M16C.
* common.h (EM_M32C): New machine number.
* m32c.h: New file.
 
2005-06-17 Jakub Jelinek <jakub@redhat.com>
 
* external.h (GRP_ENTRY_SIZE): Define.
 
2005-06-17 Jan Beulich <jbeulich@novell.com>
 
* x86-64.h (elf_x86_64_reloc_type): Adjust comment for
R_X86_64_GOTPCREL. Add R_X86_64_PC64, R_X86_64_GOTOFF64, and
R_X86_64_GOTPC32.
 
2005-06-07 Aldy Hernandez <aldyh@redhat.com>
Michael Snyder <msnyder@redhat.com>
Stan Cox <scox@redhat.com>
 
* common.h (EM_MS1): Define.
 
* ms1.h: New file.
 
2005-05-31 Richard Henderson <rth@redhat.com>
 
* alpha.h (LITUSE_ALPHA_JSRDIRECT): New.
 
2005-05-29 Richard Henderson <rth@redhat.com>
 
* alpha.h (DT_ALPHA_PLTRO): New.
 
2005-05-19 Ben Elliston <bje@au.ibm.com>
 
* dwarf2.h (enum dwarf_type): Assign DW_ATE_GNU_decimal_float from
the user-defined encoding space pending inclusion in the standard.
 
2005-05-18 Zack Weinberg <zack@codesourcery.com>
 
* arm.h: Make all #ifndef OLD_ARM_ABI blocks
unconditional, delete all #ifdef OLD_ARM_ABI blocks.
 
2005-05-17 Zack Weinberg <zack@codesourcery.com>
 
* arm.h: Import complete list of official relocation names
and numbers from AAELF. Define FAKE_RELOCs for old names.
Remove a few old names no longer used anywhere.
 
2005-05-14 Alan Modra <amodra@bigpond.net.au>
 
* ppc.h (DT_PPC_GOT): Rename from DT_PPC_GLINK.
 
2005-05-11 Alan Modra <amodra@bigpond.net.au>
 
* ppc.h (R_PPC_RELAX32, R_PPC_RELAX32PC, R_PPC_RELAX32_PLT,
R_PPC_RELAX32PC_PLT) Adjust.
(R_PPC_REL16, R_PPC_REL16_LO, R_PPC_REL16_HI, R_PPC_REL16_HA): Define.
(DT_PPC_GLINK): Define.
 
2005-05-10 Nick Clifton <nickc@redhat.com>
 
* Update the address and phone number of the FSF organization in
the GPL notices in the following files:
alpha.h, arc.h, arm.h, avr.h, common.h, cr16c.h, cris.h, crx.h,
d10v.h, d30v.h, dlx.h, dwarf.h, dwarf2.h, external.h, fr30.h,
frv.h, h8.h, hppa.h, i370.h, i386.h, i860.h, i960.h, ia64.h,
internal.h, ip2k.h, iq2000.h, m32r.h, m68hc11.h, m68k.h, mcore.h,
mips.h, mmix.h, mn10200.h, mn10300.h, msp430.h, openrisc.h,
or32.h, pj.h, ppc.h, ppc64.h, reloc-macros.h, s390.h, sh.h,
sparc.h, v850.h, vax.h, x86-64.h, xstormy16.h, xtensa.h
 
2005-04-13 H.J. Lu <hongjiu.lu@intel.com>
 
Moved from ../ChangeLog
 
2004-10-27 Richard Earnshaw <rearnsha@arm.com>
* arm.h: Add R_ARM_CALL and R_ARM_JUMP32.
 
2004-10-12 Paul Brook <paul@codesourcery.com>
* arm.h (EF_ARM_EABI_VER4): Define.
 
2004-10-08 Daniel Jacobowitz <dan@debian.org>
 
* common.h (PT_SUNW_EH_FRAME): Define.
* x86-64.h (SHT_X86_64_UNWIND): Define.
 
2004-10-07 Bob Wilson <bob.wilson@acm.org>
* xtensa.h (R_XTENSA_DIFF8, R_XTENSA_DIFF16, R_XTENSA_DIFF32,
R_XTENSA_SLOT*_OP, R_XTENSA_SLOT*_ALT): New relocations.
(XTENSA_PROP_SEC_NAME): Define.
(property_table_entry): Add flags field.
(XTENSA_PROP_*, GET_XTENSA_PROP_*, SET_XTENSA_PROP_*): Define.
 
2004-09-17 Paul Brook <paul@codesourcery.com>
* arm.h: Remove R_ARM_STKCHK and R_ARM_THM_STKCHK.
Add R_ARM_TARGET2, R_ARM_PREL31, R_ARM_GOT_ABS, R_ARM_GOT_PREL,
R_ARM_GOT_BREL12, R_ARM_GOTOFF12 and R_ARM_GOTRELAX.
 
2004-09-13 Paul Brook <paul@codesourcery.com>
* arm.h: Rename RELABS to TARGET1.
 
2004-05-11 Jakub Jelinek <jakub@redhat.com>
* common.h (PT_GNU_EH_FRAME, PT_GNU_STACK): Add comments.
(PT_GNU_RELRO): Define.
 
2005-03-29 Daniel Jacobowitz <dan@codesourcery.com>
Phil Blundell <philb@gnu.org>
 
* arm.h: Add TLS relocations.
 
2005-03-23 Ben Elliston <bje@au.ibm.com>
 
* dwarf.h: Merge with GCC's dwarf.h.
 
2005-03-18 C Jaipraash <cjaiprakash@noida.hcltech.com>
 
* m68k.h (EF_CFV4E): Define.
 
2005-03-17 Paul Brook <paul@codesourcery.com>
Dan Jacobowitz <dan@codesourcery.com>
Mark Mitchell <mark@codesourcery.com>
 
* arm.h (PT_ARM_EXIDX): Define.
 
2005-03-02 Daniel Jacobowitz <dan@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
 
* mips.h: Define MIPS TLS relocations.
 
2005-02-15 Nigel Stephens <nigel@mips.com>
Maciej W. Rozycki <macro@mips.com>
 
* mips.h (R_MIPS16_GOT16): New reloc code.
(R_MIPS16_CALL16): Likewise.
(R_MIPS16_HI16): Likewise.
(R_MIPS16_LO16): Likewise.
(R_MIPS16_min): New fake reloc code.
(R_MIPS16_max): Likewise.
 
2005-02-11 Maciej W. Rozycki <macro@mips.com>
 
* mips.h (R_MIPS_max): Use FAKE_RELOC to define.
 
2005-01-25 Alexandre Oliva <aoliva@redhat.com>
 
2004-12-10 Alexandre Oliva <aoliva@redhat.com>
* frv.h: Add R_FRV_TLSMOFF.
2004-11-10 Alexandre Oliva <aoliva@redhat.com>
* frv.h: Add TLS relocations.
 
2005-01-17 Nick Clifton <nickc@redhat.com>
 
* sh.h (EF_SH2A_SH4_NOFPU, EF_SH2A_SH3_NOFPU, EF_SH2A_SH4,
EF_SH2A_SH3E): New flags.
(EF_SH_BFD_TABLE): Add these new flags to the table.
 
2005-01-12 Alan Modra <amodra@bigpond.net.au>
 
* ppc.h (R_PPC_RELAX32_PLT, R_PPC_RELAX32PC_PLT): Define.
(R_PPC_RELAX32, R_PPC_RELAX32PC): Adjust value.
 
2004-12-22 Klaus Rudolph <lts-rudolph@gmx.de>
 
* avr.h (R_AVR_LDI, R_AVR_6, R_AVR_6_ADIW): New relocs.
 
2004-12-16 Richard Sandiford <rsandifo@redhat.com>
 
* v850.h (R_V850_LO16_SPLIT_OFFSET): New reloc.
 
2004-12-09 Ian Lance Taylor <ian@wasabisystems.com>
 
* mips.h (E_MIPS_MACH_9000): Define.
 
2004-11-04 Hans-Peter Nilsson <hp@axis.com>
 
* cris.h (EF_CRIS_VARIANT_MASK, EF_CRIS_VARIANT_ANY_V0_V10)
(EF_CRIS_VARIANT_V32, EF_CRIS_VARIANT_COMMON_V10_V32): New
macros.
 
2004-10-06 Eric Christopher <echristo@redhat.com>
 
* dwarf2.h: Sync with gcc dwarf2.h. Fix typo.
 
2004-10-01 Paul Brook <paul@codesourcery.com>
 
* arm.h (SHT_ARM_EXIDX): Define.
(ELF_STRING_ARM_unwind, ELF_STRING_ARM_unwind,
ELF_STRING_ARM_unwind_once, ELF_STRING_ARM_unwind_info_once):
Define.
 
2004-08-25 Dmitry Diky <diwil@spec.ru>
 
* msp430.h: Add new relocs.
 
2004-08-12 H.J. Lu <hongjiu.lu@intel.com>
 
* i386.h (R_386_USED_BY_INTEL_200): New.
 
2004-07-29 Alexandre Oliva <aoliva@redhat.com>
 
Introduce SH2a support.
2004-02-18 Corinna Vinschen <vinschen@redhat.com>
* sh.h (EF_SH2A_NOFPU): New.
2003-12-01 Michael Snyder <msnyder@redhat.com>
* sh.h (EF_SH2A): New.
 
2004-07-27 Tomer Levi <Tomer.Levi@nsc.com>
 
* crx.h: Add BFD_RELOC_CRX_SWITCH8, BFD_RELOC_CRX_SWITCH16,
BFD_RELOC_CRX_SWITCH32.
 
2004-07-06 Tomer Levi <Tomer.Levi@nsc.com>
 
* common.h (EM_CRX): Define.
* crx.h: New file.
 
2004-06-25 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
 
* m32r.h: Add defintions of R_M32R_GOTOFF_HI_ULO,
R_M32R_GOTOFF_HI_SLO and R_M32R_GOTOFF_LO.
 
2004-06-19 Alan Modra <amodra@bigpond.net.au>
 
* common.h (ELF64_R_INFO): Warning fix.
 
2004-06-14 Chris Demetriou <cgd@broadcom.com>
 
* mips.h (R_MIPS_PC32): Add back (undoing removal on 2004-04-24),
with an updated comment.
 
2004-05-28 Andrew Stubbs <andrew.stubbs@superh.com>
 
* sh.h (EF_SH_HAS_DSP): Remove.
(EF_SH_HAS_FP): Remove.
(EF_SH_MERGE_MACH): Remove.
(EF_SH4_NOFPU): Convert to decimal.
(EF_SH4A_NOFPU): Likewise.
(EF_SH4_NOMMU_NOFPU): Likewise.
(EF_SH3_NOMMU): Add new macro.
(EF_SH_BFD_TABLE): Likewise.
(sh_find_elf_flags): Add prototype.
(sh_elf_get_flags_from_mach): Likewise.
 
2004-04-24 Chris Demetriou <cgd@broadcom.com>
 
* mips.h (R_MIPS_PC32, R_MIPS_PC64, R_MIPS_GNU_REL_LO16)
(R_MIPS_GNU_REL_HI16): Remove.
(R_MIPS_GNU_REL16_S2): Update comment.
 
2004-30-30 Galit Heller <Galit.Heller@nsc.com>
Tomer Levi <Tomer.Levi@nsc.com>
 
* common.h (EM_CR): Define.
* cr16c.h: New file.
 
2004-03-23 Paul Brook <paul@codesourcery.com>
 
* arm.h (EF_ERM_BE8, EF_ARM_LE8, EF_ARM_EABI_VER3): Add.
 
2003-03-03 Andrew Stubbs <andrew.stubbs@superh.com>
 
* sh.h: Add EF_SH4_NOMMU_NOFPU.
 
2004-03-01 Richard Sandiford <rsandifo@redhat.com>
 
* frv.h (EF_FRV_CPU_FR405, EF_FRV_CPU_FR450): Define.
 
2004-01-28 Roland McGrath <roland@redhat.com>
 
* common.h (AT_SECURE): New macro.
 
2004-01-21 Roland McGrath <roland@redhat.com>
 
* common.h (AT_SUN_UID, AT_SUN_RUID, AT_SUN_GID): New macros.
(AT_SUN_RGID, AT_SUN_LDELF, AT_SUN_LDSHDR, AT_SUN_LDNAME,
AT_SUN_LPAGESZ, AT_SUN_PLATFORM, AT_SUN_HWCAP, AT_SUN_IFLUSH,
AT_SUN_CPU, AT_SUN_EMUL_ENTRY, AT_SUN_EMUL_EXECFD,
AT_SUN_EXECNAME) AT_SUN_MMU, AT_SUN_LDDATA): Likewise.
 
2004-01-17 Mark Kettenis <kettenis@gnu.org>
 
* common.h (NT_OPENBSD_IDENT): Define.
 
2004-01-06 Alexandre Oliva <aoliva@redhat.com>
 
2003-09-18 Alexandre Oliva <aoliva@redhat.com>
* frv.h (EF_FRV_FDPIC): New macro.
(EF_FRV_PIC_FLAGS): Adjust.
2003-08-08 Alexandre Oliva <aoliva@redhat.com>
* frv.h (R_FRV_FUNCDESC_VALUE, R_FRV_FUNCDESC_GOTOFF12,
R_FRV_FUNCDESC_GOTOFFLO, R_FRV_FUNCDESC_GOTOFFHI, R_FRV_GOTOFF12,
R_FRV_GOTOFFLO, R_FRV_GOTOFFHI): New.
2003-08-04 Alexandre Oliva <aoliva@redhat.com>
* frv.h (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO, R_FRV_FUNCDESC,
R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI, R_FRV_FUNCDESC_GOTLO):
New.
 
 
For older changes see ChangeLog-9103
Copyright (C) 2004-2012 Free Software Foundation, Inc.
 
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
 
Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
/contrib/toolchain/binutils/include/elf/ChangeLog-9103
0,0 → 1,1957
2005-04-13 H.J. Lu <hongjiu.lu@intel.com>
 
Moved from ../ChangeLog
 
2003-10-14 Bob Wilson <bob.wilson@acm.org>
* xtensa.h: Formatting. Fix comments about property section
names for linkonce sections.
 
2003-05-23 Jakub Jelinek <jakub@redhat.com>
* common.h (PT_GNU_STACK): Define.
 
2003-01-25 Jakub Jelinek <jakub@redhat.com>
* sparc.h: Add TLS relocs. Move R_SPARC_REV32 to 252.
 
2002-09-26 Jakub Jelinek <jakub@redhat.com>
* x86-64.h: Add TLS relocs.
 
2002-09-19 Jakub Jelinek <jakub@redhat.com>
* i386.h (R_386_TLS_TPOFF, R_386_TLS_IE, R_386_TLS_GOTIE):
Define.
 
2002-07-10 Jakub Jelinek <jakub@redhat.com>
* common.h (SHT_GNU_LIBLIST, DT_GNU_PRELINKED,
DT_GNU_CONFLICT*, DT_GNU_LIBLIST*): Define.
 
2002-05-31 Michal Ludvig <mludvig@suse.cz>
* dwarf2.h (DW_CFA_low_user, DW_CFA_high_user): Renamed
to DW_CFA_lo_user, DW_CFA_hi_user respectively.
 
2002-05-23 Jakub Jelinek <jakub@redhat.com>
* common.h (PT_TLS, SHF_TLS, STT_TLS, DF_STATIC_TLS): Define.
* ia64.h (R_IA64_LTOFF_TPREL22): Renamed from R_IA64_LTOFF_TP22.
* i386.h: Add TLS relocs.
 
2003-12-19 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
 
* m32r.h : Added m32r-linux and PIC support. Add new ABI that
uses RELA.
(R_M32R_16_RELA, R_M32R_32_RELA, R_M32R_24_RELA,
R_M32R_10_PCREL_RELA, R_M32R_18_PCREL_RELA,
R_M32R_26_PCREL_RELA, R_M32R_HI16_ULO_RELA,
R_M32R_HI16_SLO_RELA, R_M32R_LO16_RELA,
R_M32R_SDA16_RELA, R_M32R_RELA_GNU_VTINHERIT,
R_M32R_RELA_GNU_VTENTRY, R_M32R_GOT24,
R_M32R_26_PLTREL, R_M32R_COPY, R_M32R_GLOB_DAT,
R_M32R_JMP_SLOT, R_M32R_RELATIVE, R_M32R_GOTOFF,
R_M32R_GOTPC24, R_M32R_GOT16_HI_ULO,
R_M32R_GOT16_HI_SLO, R_M32R_GOT16_LO,
R_M32R_GOTPC_HI_ULO, R_M32R_GOTPC_HI_SLO,
R_M32R_GOTPC_LO): New relocs.
 
2003-12-06 Alan Modra <amodra@bigpond.net.au>
 
From Jan Beulich <JBeulich@novell.com>
* common.h (DT_HIOS): Correct value.
 
2003-12-03 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
 
* m32r.h: Add new machine type m32r2 and instruction modes.
 
2003-11-06 Alan Modra <amodra@bigpond.net.au>
 
* ppc.h (R_PPC_RELAX32PC): Define.
 
2003-10-22 Alexandre Oliva <aoliva@redhat.com>,
Michael Snyder <msnyder@redhat.com>
 
* sh.h (EF_SH4A, EF_SH4AL_DSP, EF_SH4_NOFPU, EF_SH4A_NOFPU): New.
(EF_SH_MERGE_MACH): Combine them.
 
2003-10-18 Hans-Peter Nilsson <hp@bitrange.com>
 
* mmix.h (R_MMIX_PUSHJ_STUBBABLE): New reloc number.
(_bfd_mmix_before_linker_allocation): Rename from
_bfd_mmix_prepare_linker_allocated_gregs.
(_bfd_mmix_after_linker_allocation): Rename from
_bfd_mmix_finalize_linker_allocated_gregs.
 
2003-10-06 Dave Brolley <brolley@redhat.com>
 
* frv.h (EF_FRV_CPU_FR550): New macro.
 
2003-09-30 Chris Demetriou <cgd@broadcom.com>
 
* mips.h (E_MIPS_ARCH_64R2): New define.
 
2003-09-23 DJ Delorie <dj@redhat.com>
 
* sh.h (R_SH_SWITCH8, R_SH_GNU_VTINHERIT, R_SH_GNU_VTENTRY,
R_SH_LOOP_START,R_SH_LOOP_END): Move to "reserved" spaces.
(R_SH_DIR16, R_SH_DIR8, R_SH_DIR8UL, R_SH_DIR8UW, R_SH_DIR8U,
R_SH_DIR8SW, R_SH_DIR8S, R_SH_DIR4UL, R_SH_DIR4UW, R_SH_DIR4U,
R_SH_PSHA, R_SH_PSHL): New.
 
2003-09-11 James Cownie <jcownie@etnus.com>
 
* dwarf2.h: Add HP dwarf extensions from their hacked gdb
header files (ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz).
 
2003-09-04 Nick Clifton <nickc@redhat.com>
 
* v850.h (E_V850E1_ARCH): Define.
 
2003-08-21 James Cownie <jcownie@etnus.com>
 
* dwarf2.h: Add PGI dwarf extensions.
 
2003-08-08 Dmitry Diky <diwil@mail.ru>
 
* msp430.h: Add xW42 and xE42 parts. Sort MPU list according to
gcc order.
 
2003-08-07 Alan Modra <amodra@bigpond.net.au>
 
* reloc-macros.h (START_RELOC_NUMBERS) : Remove PARAMS macro. Use
C90 function definition. Formatting.
(RELOC_NUMBER): Remove !__STDC__ code.
 
2003-07-28 Eric Christopher <echristo@redhat.com>
 
* ppc.h (R_PPC_RELAX32): New. Fake relocation.
 
2003-07-25 H.J. Lu <hongjiu.lu@intel.com>
 
* v850.h (SHF_V850_GPREL): New.
(SHF_V850_EPREL): Likewise.
(SHF_V850_R0REL): Likewise.
 
2003-07-09 Alexandre Oliva <aoliva@redhat.com>
 
2001-05-16 Alexandre Oliva <aoliva@redhat.com>
* mn10300.h: Introduce GOTPC16, GOTOFF24, GOTOFF16 and
PLT16, and rename GOTPC to GOTPC32 and GOTOFF to GOTOFF32.
Renumbered all relocs.
2001-04-12 Alexandre Oliva <aoliva@redhat.com>
* mn10300.h (R_MN10300_GOTPC, R_MN10300_GOTOFF,
R_MN10300_PLT32, R_MN10300_GOT32, R_MN10300_GOT24,
R_MN10300_GOT16, R_MN10300_COPY, R_MN10300_GLOB_DAT,
R_MN10300_JMP_SLOT, R_MN10300_RELATIVE): New relocs.
 
2003-07-09 Alexandre Oliva <aoliva@redhat.com>
 
2000-04-01 Alexandre Oliva <aoliva@cygnus.com>
* mn10300.h (E_MN10300_MACH_AM33_2): Renamed from
E_MN10300_MACH_AM332.
2000-03-31 Alexandre Oliva <aoliva@cygnus.com>
* mn10300.h (E_MN10300_MACH_AM332): Defined.
 
2003-07-01 Martin Schwidefsky <schwidefsky@de.ibm.com>
 
* s390.h (elf_s390_reloc_type): Add long displacement relocations
R_390_20, R_390_GOT20, R_390_GOTPLT20 and R_390_TLS_GOTIE20.
 
2003-06-29 Andreas Jaeger <aj@suse.de>
 
* mmix.h: Convert to ISO C90 prototypes.
* mips.h: Likewise.
 
2003-06-13 Robert Millan <zeratul2@wanadoo.es>
 
* common.h (GNU_ABI_TAG_NETBSD): New tag.
(GNU_ABI_TAG_FREEBSD): New tag.
 
2003-06-10 Richard Sandiford <rsandifo@redhat.com>
 
* h8.h (E_H8_MACH_H8300SXN): New flag.
 
2003-06-03 Nick Clifton <nickc@redhat.com>
 
* v850.h (R_V850_32): Rename to R_V850_ABS32.
Add R_V850_REL32.
 
2003-05-15 Roland McGrath <roland@redhat.com>
 
* common.h (NT_AUXV, AT_*): New macros.
* external.h (Elf32_External_Auxv, Elf64_External_Auxv): New types.
* internal.h (Elf_Internal_Auxv): New type.
 
2003-05-14 Michael Snyder <msnyder@redhat.com>
From Bernd Schmidt <bernds@redhat.com>
* h8.h (E_H8_MACH_H8300SX): New.
 
2003-04-24 Dhananjay Deshpande <dhananjayd@kpitcummins.com>
 
* h8.h (E_H8_MACH_H8300HN, E_H8_MACH_H8300SN): New
 
2003-04-23 J"orn Rennecke <joern.rennecke@superh.com>
 
* common.h (EM_SH): Amend comment to refer to SuperH.
 
2003-04-22 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
 
* common.h: Replace references to Mitsubishi M32R with
references to Renesas M32R.
 
2003-04-15 Rohit Kumar Srivastava <rohits@kpitcummins.com>
 
* common.h: Replace occurrances of 'Hitachi' with 'Renesas'.
 
2003-04-01 Bob Wilson <bob.wilson@acm.org>
 
* common.h (EM_XTENSA_OLD): Define.
* xtensa.h: New file.
 
2003-04-01 Nick Clifton <nickc@redhat.com>
 
* arm.h (ARM_NOTE_SECTION): Include .gnu in the string.
 
2003-03-25 Stan Cox <scox@redhat.com>
Nick Clifton <nickc@redhat.com>
 
Contribute support for Intel's iWMMXt chip - an ARM variant:
 
* arm.h (ARM_NOTE_SECTION): Define.
 
2003-03-03 J"orn Rennecke <joern.rennecke@superh.com>
 
* sh.h (EF_SH_MERGE_MACH): Make sure SH2E & SH3/SH3E merge to SH3E,
and SH2E & SH4 merge to SH4, not SH2E.
 
2003-02-21 Ian Wienand <ianw@gelato.unsw.edu.au>
 
* ia64.h (SHT_IA_64_LOPSREG, SHT_IA_64_HIPSREG,
SHT_IA_64_PRIORITY_INIT): Define.
 
2003-02-18 Alan Modra <amodra@bigpond.net.au>
 
* ppc64.h (IS_PPC64_TLS_RELOC): Rename from IS_TLS_RELOC.
 
* ppc.h: Replace DTPMOD64, TPREL64, DTPREL64 with DTPMOD32 etc.
(IS_PPC_TLS_RELOC): Define.
 
2003-02-10 Nick Clifton <nickc@redhat.com>
 
* arm.h (EF_ARM_MAVERICK_FLOAT): Define.
 
2003-02-05 Alan Modra <amodra@bigpond.net.au>
 
* ppc.h: Add TLS relocs. Format.
* ppc64.h: Likewise.
 
2003-01-27 Alexandre Oliva <aoliva@redhat.com>
 
* mips.h (EF_MIPS_XGOT): Define.
 
2003-01-24 Martin Schwidefsky <schwidefsky@de.ibm.com>
 
* s390.h: Add s390 TLS relocations.
 
2003-01-23 Nick Clifton <nickc@redhat.com>
 
* Add sh2e support:
 
2002-04-02 Alexandre Oliva <aoliva@redhat.com>
 
* sh.h (EF_SH_MERGE_MACH): Handle SH2E.
 
2002-04-02 Elena Zannoni <ezannoni@redhat.com>
 
* sh.h (EF_SH2E): New.
 
2003-01-23 Alan Modra <amodra@bigpond.net.au>
 
* sh.h: Split out various bits to bfd/elf32-sh64.h.
 
2003-01-20 Martin Schwidefsky <schwidefsky@de.ibm.com>
 
* s390.h: Rename R_390_GOTOFF to R_390_GOTOFF32. Add new gotoff,
gotplt and pltoff relocations.
 
2003-01-17 Alan Modra <amodra@bigpond.net.au>
 
* common.h: Formatting, typo fixes.
(DT_ENCODING): Correct value.
 
2003-01-17 Fabio Alemagna <falemagn@aros.org>
 
* common.h (ELFOSABI_AROS): Define.
(ELFOSABI_OPENVMS): Likewise.
(ELFOSABI_NSK): Likewise.
 
2003-01-16 Alan Modra <amodra@bigpond.net.au>
 
* ppc.h: Split out ppc64 definitions to..
* pcc64.h: ..here. New file.
(R_PPC64_REL30): Rename from R_PPC64_ADDR30.
 
2003-01-13 Dmitry Diky <diwil@mail.ru>
 
* elf/common.h (EM_MSP430): Change e_machine value to officially
assigned.
 
2003-01-02 Ben Elliston <bje@redhat.com>
 
* common.h (EM_IQ2000): Define.
* iq2000.h: New file.
 
2002-12-30 Chris Demetriou <cgd@broadcom.com>
 
* mips.h (E_MIPS_ARCH_32R2): New define.
 
2002-12-24 Dmitry Diky <diwil@mail.ru>
 
* common.h: Define msp430 machine numbers.
* msp430.h: New file. Define msp430 relocs.
 
2002-12-20 DJ Delorie <dj@redhat.com>
 
* xstormy16.h: Add XSTORMY16_12.
 
2002-12-16 Andrew MacLeod <amacleod@redhat.com>
 
* xstormy16.h (START_RELOC_NUMBERS) Add relocation numbers
for R_XSTORMY16_LO16 and R_XSTORMY16_HI16.
 
2002-12-10 James Cownie <jcownie@etnus.com>
 
* dwarf2.h (DW_TAG_upc_shared_type, DW_TAG_upc_strict_type,
DW_TAG_upc_relaxed_type, DW_AT_upc_threads_scaled, DW_LANG_Upc):
Define.
 
2002-12-01 Stephane Carrez <stcarrez@nerim.fr>
 
* m68hc11.h (EF_M68HC12_MACH, EF_M68HCS12_MACH): Define.
(EF_M68HC11_MACH_MASK, EF_M68HC11_MACH): Define.
(EF_M68HC11_MERGE_MACH, EF_M68HC11_CAN_MERGE_MACH): Define.
 
2002-11-30 Alan Modra <amodra@bigpond.net.au>
 
* mmix.h: Replace boolean with bfd_boolean.
* sh.h: Likewise.
 
2002-11-28 Alan Modra <amodra@bigpond.net.au>
 
* internal.h (elf32_internal_ehdr, Elf32_Internal_Ehdr,
elf64_internal_ehdr, Elf64_Internal_Ehdr, elf32_internal_phdr,
Elf32_Internal_Phdr, elf64_internal_phdr, Elf64_Internal_Phdr,
elf32_internal_shdr, Elf32_Internal_Shdr, elf64_internal_shdr,
Elf64_Internal_Shdr, elf32_internal_sym, elf64_internal_sym,
Elf32_Internal_Sym, Elf64_Internal_Sym, Elf32_Internal_Note,
elf32_internal_note, elf32_internal_rel, Elf32_Internal_Rel,
elf64_internal_rel, Elf64_Internal_Rel, elf32_internal_rela,
elf64_internal_rela, Elf32_Internal_Rela, Elf64_Internal_Rela,
elf32_internal_dyn, elf64_internal_dyn, Elf32_Internal_Dyn,
Elf64_Internal_Dyn, elf32_internal_verdef, elf64_internal_verdef,
elf32_internal_verdaux, elf64_internal_verdaux, elf32_internal_verneed,
elf64_internal_verneed, elf32_internal_vernaux, elf64_internal_vernaux,
elf32_internal_versym, elf64_internal_versym, Elf32_Internal_Verdef,
Elf64_Internal_Verdef, Elf32_Internal_Verdaux, Elf64_Internal_Verdaux,
Elf32_Internal_Verneed, Elf64_Internal_Verneed, Elf32_Internal_Vernaux,
Elf64_Internal_Vernaux, Elf32_Internal_Versym, Elf64_Internal_Versym,
Elf32_Internal_Syminfo, Elf64_Internal_Syminfo): Delete.
(Elf_Internal_Rel): Delete.
 
2002-10-11 Kaz Kojima <kkojima@rr.iij4u.or.jp>
 
* sh.h: Add SH TLS relocs.
 
2002-09-30 Gavin Romig-Koch <gavin@redhat.com>
Ken Raeburn <raeburn@cygnus.com>
Aldy Hernandez <aldyh@redhat.com>
Eric Christopher <echristo@redhat.com>
Richard Sandiford <rsandifo@redhat.com>
 
* mips.h (E_MIPS_MACH_4120, E_MIPS_MACH_5400, E_MIPS_MACH_5500): New.
 
2002-09-12 Roland McGrath <roland@redhat.com>
 
* dwarf2.h: Updates from GCC version of thie file:
(enum dwarf_location_atom): DW_OP_calli -> DW_OP_call_ref.
Add DW_OP_GNU_push_tls_address.
(DW_OP_lo_user): Change to 0xe0.
 
2002-08-28 Catherine Moore <clm@redhat.com>
 
* v850.h (R_V850_LONGCALL, R_V850_ALIGN,
R_V850_LONGJUMP): New relocations.
 
2002-08-15 Alan Modra <amodra@bigpond.net.au>
 
* i370.h: Define relocs using reloc-macros.h.
 
2002-08-13 Stephane Carrez <stcarrez@nerim.fr>
 
* m68hc11.h (E_M68HC12_BANKS, E_M68HC11_I32, E_M68HC11_F64,
EF_M68HC11_ABI): Define for ABI specification.
(STO_M68HC12_FAR, STO_M68HC12_INTERRUPT): Symbol flags for
linker and debugger.
(R_M68HC11_24, R_M68HC11_LO16, R_M68HC11_PAGE): New relocs.
(R_M68HC11_RL_JUMP, R_M68HC11_RL_GROUP): New reloc for linker
relaxation.
 
2002-07-15 Denis Chertykov <denisc@overta.ru>
Frank Ch. Eigler <fche@redhat.com>
Ben Elliston <bje@redhat.com>
Alan Lehotsky <alehotsky@cygnus.com>
John Healy <jhealy@redhat.com>
Graham Stott <grahams@redhat.com>
Jeff Johnston <jjohnstn@redhat.com>
 
* common.h (EM_IP2K): New macro.
(EM_IP2K_OLD): New macro.
* ip2k.h: New file.
 
2002-07-01 Matt Thomas <matt@3am-software.com>
 
* vax.h: Rename EF_* to EF_VAX_*.
 
2002-06-18 Dave Brolley <brolley@redhat.com>
 
From Catherine Moore, Michael Meissner, Dave Brolley:
* common.h (EM_CYGNUS_FRV): New macro.
* frv.h: New file.
 
2002-06-06 Lars Brinkhoff <lars@nocrew.org>
 
* common.h: Change registry@sco.com to registry@caldera.com.
(EM_PDP10, EM_PDP11): Define.
 
2002-06-04 Jason Thorpe <thorpej@wasabisystems.com>
 
* sh.h (_bfd_sh64_crange_qsort_cmpb, _bfd_sh64_crange_qsort_cmpl)
(_bfd_sh64_crange_bsearch_cmpb, _bfd_sh64_crange_bsearch_cmpl): New
prototypes.
 
2002-06-01 Richard Henderson <rth@redhat.com>
 
* alpha.h (LITUSE_ALPHA_ADDR, LITUSE_ALPHA_BASE, LITUSE_ALPHA_BYTOFF,
LITUSE_ALPHA_JSR, LITUSE_ALPHA_TLSGD, LITUSE_ALPHA_TLSLDM): New.
 
2002-05-30 Richard Henderson <rth@redhat.com>
 
* alpha.h (R_ALPHA_TLSGD, R_ALPHA_TLSLDM, R_ALPHA_DTPMOD64,
R_ALPHA_GOTDTPREL, R_ALPHA_DTPREL64, R_ALPHA_DTPRELHI,
R_ALPHA_DTPRELLO, R_ALPHA_DTPREL16, R_ALPHA_GOTTPREL, R_ALPHA_TPREL64,
R_ALPHA_TPRELHI, R_ALPHA_TPRELLO, R_ALPHA_TPREL16): New.
 
2002-05-29 Matt Thomas <matt@3am-software.com>
 
* vax.h: New file
 
2002-05-28 Kuang Hwa Lin <kuang@sbcglobal.net>
 
* common.h (EM_DLX): Define.
* dlx.h: New file.
 
2002-05-08 Jason Thorpe <thorpej@wasabisystems.com>
 
* common.h (NT_GNU_ABI_TAG): Define.
(GNU_ABI_TAG_LINUX): Define.
(GNU_ABI_TAG_HURD): Define.
(GNU_ABI_TAG_SOLARIS): Define.
(NT_NETBSD_IDENT): Define.
(NT_FREEBSD_ABI_TAG): Define.
 
2002-04-24 Elena Zannoni <ezannoni@redhat.com>
 
* dwarf2.h: Add DW_AT_GNU_vector.
 
2002-02-13 Matt Fredette <fredette@netbsd.org>
 
* m68k.h (EF_M68000): Define.
 
2002-02-12 Alan Modra <amodra@bigpond.net.au>
 
* ppc.h (DT_PPC64_OPD, DT_PPC64_OPDSZ): Define.
 
2002-02-09 Richard Henderson <rth@redhat.com>
 
* alpha.h (R_ALPHA_BRSGP): New.
 
2002-02-08 Alexandre Oliva <aoliva@redhat.com>
 
Contribute sh64-elf.
2002-01-23 Alexandre Oliva <aoliva@redhat.com>
* sh.h (R_SH_GOTPLT32, R_SH_GOT_LOW16, R_SH_GOT_MEDLOW16,
R_SH_GOT_MEDHI16, R_SH_GOT_HI16, R_SH_GOTPLT_LOW16,
R_SH_GOTPLT_MEDLOW16, R_SH_GOTPLT_MEDHI16, R_SH_GOTPLT_HI16,
R_SH_PLT_LOW16, R_SH_PLT_MEDLOW16, R_SH_PLT_MEDHI16,
R_SH_PLT_HI16, R_SH_GOTOFF_LOW16, R_SH_GOTOFF_MEDLOW16,
R_SH_GOTOFF_MEDHI16, R_SH_GOTOFF_HI16, R_SH_GOTPC_LOW16,
R_SH_GOTPC_MEDLOW16, R_SH_GOTPC_MEDHI16, R_SH_GOTPC_HI16,
R_SH_GOT10BY4, R_SH_GOTPLT10BY4, R_SH_GOT10BY8,
R_SH_GOTPLT10BY8, R_SH_COPY64, R_SH_GLOB_DAT64, R_SH_JMP_SLOT64,
R_SH_RELATIVE64): New relocs.
(R_SH_FIRST_INVALID_RELOC_4): Adjust.
2001-05-16 Alexandre Oliva <aoliva@redhat.com>
* sh.h: Renumbered and renamed some SH5 relocations to match
official numbers and names; moved unmaching ones to the range
0xf2-0xff.
2001-01-06 Hans-Peter Nilsson <hpn@cygnus.com>
* sh.h (sh64_get_contents_type): Declare.
(sh64_address_is_shmedia): Likewise.
2000-12-30 Hans-Peter Nilsson <hpn@cygnus.com>
* sh.h (sh64_elf_crange): New type.
(struct sh64_section_data): New.
(sh64_elf_section_data): New macro.
(EF_SH5): Rename back from EF_SH64.
2000-12-18 Hans-Peter Nilsson <hpn@cygnus.com>
* sh.h (SHF_SH5_ISA32_MIXED, SHT_SH5_CR_SORTED,
SH64_CRANGES_SECTION_NAME, SH64_CRANGE_SIZE,
SH64_CRANGE_CR_ADDR_OFFSET, SH64_CRANGE_CR_SIZE_OFFSET,
SH64_CRANGE_CR_TYPE_OFFSET): New macros.
2000-12-12 Hans-Peter Nilsson <hpn@cygnus.com>
* sh.h (EF_SH64): Don't define EF_SH64_ABI64.
2000-11-27 Hans-Peter Nilsson <hpn@cygnus.com>
* sh.h (EF_SH64_32BIT_ABI, EF_SH64_64BIT_ABI): Delete.
(EF_SH64_ABI64): New.
2000-11-23 Hans-Peter Nilsson <hpn@cygnus.com>
* sh.h (EF_SH64): Rename from EF_SH5.
(EF_SH64_32BIT_ABI): New.
(EF_SH64_64BIT_ABI): New.
(R_SH_PT_16, R_SH_SHMEDIA_CODE
R_SH_IMMU5, R_SH_IMMS6, R_SH_IMMU6, R_SH_IMMS10, R_SH_IMMS10BY2,
R_SH_IMMS10BY4, R_SH_IMMS10BY8, R_SH_IMMS16, R_SH_IMMU16,
R_SH_IMM_LOW16, R_SH_IMM_LOW16_PCREL, R_SH_IMM_MEDLOW16,
R_SH_IMM_MEDLOW16_PCREL, R_SH_IMM_MEDHI16, R_SH_IMM_MEDHI16_PCREL,
R_SH_IMM_HI16, R_SH_IMM_HI16_PCREL, R_SH_64, R_SH_64_PCREL): New
relocs.
2000-09-01 Ben Elliston <bje@redhat.com>
* sh.h (EF_SH5): Define.
 
2002-02-01 Hans-Peter Nilsson <hp@bitrange.com>
 
* mmix.h: Tweak comments.
(MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME): New.
[BFD_ARCH_SIZE] (_bfd_mmix_prepare_linker_allocated_gregs,
_bfd_mmix_finalize_linker_allocated_gregs,
_bfd_mmix_check_all_relocs): Provide prototypes.
 
2002-01-31 Ivan Guzvinec <ivang@opencores.org>
 
* or32.h: New file.
* common.h: Add support for or32 targets.
 
2002-01-28 Jason Merrill <jason@redhat.com>
 
* dwarf2.h: Sync with gcc version.
 
2002-01-16 Alan Modra <amodra@bigpond.net.au>
 
* ppc.h (DT_PPC64_GLINK): Define.
 
2002-01-15 Richard Earnshaw <rearnsha@arm.com>
 
* arm.h (F_VFP_FLOAT, EF_ARM_VFP_FLOAT): Define.
 
2002-01-09 Jason Thorpe <thorpej@wasabisystems.com>
 
* common.h: Update copyright years.
(NT_NETBSDCORE_PROCINFO): Define.
(NT_NETBSDCORE_FIRSTMACH): Define.
 
2002-01-06 Steve Ellcey <sje@cup.hp.com>
 
* ia64.h (ELF_STRING_ia64_unwind_hdr): New Macro for HP-UX.
(SHT_IA_64_HP_OPT_ANOT): Ditto
(PT_IA_64_HP_OPT_ANOT): Ditto
(PT_IA_64_HP_HSL_ANOT): Ditto
(PT_IA_64_HP_STACK): Ditto
(SHN_IA_64_ANSI_COMMON): Ditto
 
2001-12-17 Alan Modra <amodra@bigpond.net.au>
 
* external.h (Elf_External_Sym_Shndx): Declare.
* internal.h (struct elf_internal_sym <st_shndx>): Make it an
unsigned int.
* common.h (SHN_BAD): Define.
 
2001-12-13 Jakub Jelinek <jakub@redhat.com>
 
* common.h (PT_GNU_EH_FRAME): Define.
 
2001-12-11 Alan Modra <amodra@bigpond.net.au>
 
* common.h (SHN_XINDEX): Comment typo fix.
* internal.h (Elf_Internal_Ehdr): Change existing "unsigned short"
size, count and index fields to "unsigned int".
 
2001-12-07 Geoffrey Keating <geoffk@redhat.com>
Richard Henderson <rth@redhat.com>
 
* common.h (EM_XSTORMY16): Define.
* xstormy16.h: New file.
 
2001-11-15 Alan Modra <amodra@bigpond.net.au>
 
* common.h (NT_ARCH): Define. Remove incorrect comment.
 
2001-11-11 Geoffrey Keating <geoffk@redhat.com>
 
* dwarf2.h (dwarf_line_number_ops): Add DWARF 3 opcodes.
 
2001-10-30 Hans-Peter Nilsson <hp@bitrange.com>
 
* mmix.h: New file.
 
2001-10-23 Alan Modra <amodra@bigpond.net.au>
 
* internal.h: White space changes to keep lines under 80 chars.
 
2001-10-16 Jeff Holcomb <jeffh@redhat.com>
 
* internal.h (elf_internal_shdr): Make contents a unsigned char *.
 
2001-09-18 Alan Modra <amodra@bigpond.net.au>
 
* internal.h (elf_internal_rela): Make r_addend a bfd_vma.
 
2001-09-13 Alexandre Oliva <aoliva@redhat.com>
 
* common.h (EM_OPENRISC_OLD): Renamed the old EM_OPENRISC entry.
 
2001-09-12 Alexandre Oliva <aoliva@redhat.com>
 
* common.h (EM_AVR_OLD): Renamed from...
(EM_AVR): this, redefined as in the current ELF standard.
(EM_PJ_OLD): Renamed from...
(EM_PJ): this, redefined as in the current ELF standard.
(EM_R30, EM_D10V, EM_D30V, EM_V850, EM_M32R, EM_MN10300,
EM_MN10200, EM_OPENRISC, EM_ARC_A5, EM_XTENSA): Defined as in
the current ELF standard.
(EM_CYGNUS_ARC): Removed, unused for a long time.
 
2001-09-04 Richard Henderson <rth@redhat.com>
 
* alpha.h (R_ALPHA_OP*, R_ALPHA_IMMED*, R_ALPHA_GPVALUE): Remove.
(R_ALPHA_GPREL16): Rename from R_ALPHA_IMMED_GP_16.
 
2001-08-30 Eric Christopher <echristo@redhat.com>
 
* mips.h: Remove E_MIPS_MACH_MIPS32_4K.
 
2001-08-29 Jeff Law <law@redhat.com>
 
* h8.h (EF_H8_MACH): New mask for encoded machine type.
(E_H8_MACH_H8300, E_H8_MACH_H8300H, E_H8_MACH_H8300S): New
machine types.
 
2001-08-26 J"orn Rennecke <amylaar@redhat.com>
 
* h8.h: New file.
 
2001-08-27 Staffan Ulfberg <staffanu@swox.se>
 
* ppc.h: Add relocs from the 64-bit PowerPC ELF ABI revision 1.2.
 
2001-06-30 Daniel Berlin <dan@cgsoftware.com>
 
* dwarf2.h: Remerge with gcc version,
including all new DWARF 2.1 extensions.
 
2001-06-29 James Cownie <jcownie@etnus.com>
 
* dwarf2.h: Add DWARF 2.1 attribues.
 
2001-06-15 Per Bothner <per@bothner.com>
 
* dwarf2.h: Partial merge with gcc version.
(enum dwarf_descrim_list): Fix typo -> dwarf_discrim_list.
(DW_LANG_Java): Use value from dwarf 2.1 draft (also used in gcc).
 
2001-05-15 Ralf Baechle <ralf@gnu.org>
 
* common.h: Remove definition of EM_MIPS_RS4_BE. The constant was
never in active use and is used otherwise by the ABI.
 
2001-05-11 Jakub Jelinek <jakub@redhat.com>
 
* ia64.h (ELF_STRING_ia64_unwind_once): Define.
(ELF_STRING_ia64_unwind_info_once): Define.
 
2001-05-07 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
 
* external.h: Fix typo.
* mips.h: Add/Extend many comments with reference to the MIPS ELF64
spec v. 2.4, available at e.g.
ftp://oss.sgi.com/pub/linux/mips/doc/ABI/ELF64.ps.
(EF_MIPS_UCODE): Define.
(EF_MIPS_OPTIONS_FIRST): Define.
(EF_MIPS_ARCH_ASE): Define.
(EF_MIPS_ARCH_ASE_MDMX): Define.
(EF_MIPS_ARCH_ASE_M16): Define.
(SHF_MIPS_ADDR): Renamed SHF_MIPS_ADDR32.
(SHF_MIPS_STRING): Renamed SHF_MIPS_ADDR64.
(SHF_MIPS_NODUPES): Define.
(ELF64_MIPS_R_SSYM): New MIPS ELF 64 relocation info access macro.
(ELF64_MIPS_R_TYPE3): Likewise.
(ELF64_MIPS_R_TYPE2): Likewise.
(ELF64_MIPS_R_TYPE): Likewise.
(OHW_R10KLDL): Define.
 
2001-04-24 Todd Fries <todd@fries.net>
 
* sparc.h: Fix typo.
 
2001-04-20 Johan Rydberg <jrydberg@opencores.org>
 
* openrisc.h: New file.
* common.h (EM_OPENRISC): New constant.
 
2001-04-23 Bo Thorsen <bo@suse.de>
 
* x86-64.h: Add vtable support.
 
2001-03-23 Nick Clifton <nickc@redhat.com>
 
* mips.h: Remove extraneous whitespace.
 
2001-03-22 Hans-Peter Nilsson <hp@axis.com>
 
* cris.h: Add leading comment about PC-relative location.
(R_CRIS_COPY, R_CRIS_GLOB_DAT, R_CRIS_JUMP_SLOT, R_CRIS_RELATIVE,
R_CRIS_16_GOT, R_CRIS_32_GOT, R_CRIS_16_GOTPLT, R_CRIS_32_GOTPLT,
R_CRIS_32_GOTREL, R_CRIS_32_PLT_GOTREL, R_CRIS_32_PLT_PCREL):
New relocs.
 
2001-02-27 Philip Blundell <pb@futuretv.com>
 
* arm.h: Add new definitions from ARM document SWS ESPC 0003 B-01.
(EF_PIC, et al.): Rename to EF_ARM_xx.
 
2001-02-09 Martin Schwidefsky <schwidefsky@de.ibm.com>
 
* common.h: Add linux target for S/390.
* s390.h: New file.
 
2001-01-11 Peter Targett <peter.targett@arccores.com>
 
* arc.h (E_ARC_MACH_ARC5, E_ARC_MACH_ARC6, E_ARC_MACH_ARC7,
E_ARC_MACH_ARC8): New definitions for cpu types.
 
* common.h (EM_ARC): Change comment.
 
2000-12-12 Nick Clifton <nickc@redhat.com>
 
* mips.h: Fix formatting.
 
2000-12-11 Jeffrey A Law (law@cygnus.com)
 
* hppa.h (DT_HP_*): Define relative to OLD_DT_LOOS for hpux
compatibility.
 
2000-10-16 Chris Demetriou <cgd@sibyte.com>
 
* mips.h (E_MIPS_ARCH_32): New constant.
(E_MIPS_MACH_MIPS32, E_MIPS_MACH_MIPS32_4K): Replace the
former with the latter.
 
* mips.h (E_MIPS_ARCH_5, E_MIPS_ARCH_64): New definitions.
 
* mips.h (E_MIPS_MACH_SB1): New constant.
 
2000-11-30 Jan Hubicka <jh@suse.cz>
 
* common.h (EM_X86_64): New macro.
* x86-64.h: New file.
 
2000-11-27 Hans-Peter Nilsson <hp@axis.com>
 
* common.h (e_machine numbers): Clarify comments to describe how
EM_* constants are assigned. Move EM_PJ from official section to
ad-hoc section.
(EM_CRIS): Correct comment to match official description.
(EM_MMIX): Ditto.
 
2000-11-22 Nick Clifton <nickc@redhat.com>
 
* common.h (EM_JAVELIN): New machine number.
(EM_FIREPATH): New machine number.
(EM_ZSP): New machine number.
(EM_MMIX): New machine number.
(EM_HUANY): New machine number.
(EM_PRISM): New machine number.
(SHT_GROUP): New section type.
(SHT_SYMTAB_SHNDX): New section type.
(SHF_GROUP): New section flag.
(SHN_XINDEX): New section index.
(GRP_COMDAT): New section group flag.
 
2000-11-20 H.J. Lu <hjl@gnu.org>
 
* common.h (ELFOSABI_MONTEREY): Renamed to ...
(ELFOSABI_AIX): This.
 
2000-11-16 Richard Henderson <rth@redhat.com>
 
Update relocations per August psABI docs.
* ia64.h (R_IA64_SEGBASE): Remove.
(R_IA64_LTV*): Renumber to 0x74 to 0x77.
(R_IA64_EPLTMSB, R_IA64_EPLTLSB): Remove.
(R_IA64_TPREL14, R_IA64_TPREL64I): New.
(R_IA64_DTPMOD*): New.
(R_IA64_DTPREL*): New.
 
2000-09-29 Hans-Peter Nilsson <hp@axis.com>
 
* cris.h (EF_CRIS_UNDERSCORE): New.
 
2000-09-27 Alan Modra <alan@linuxcare.com.au>
 
* hppa.h (R_PARISC_DIR14F): Add.
 
2000-09-14 Alexandre Oliva <aoliva@redhat.com>
 
* sh.h (R_SH_GOT32, R_SH_PLT32, R_SH_COPY, R_SH_GLOB_DAT,
R_SH_JMP_SLOT, R_SH_RELATIVE, R_SH_GOTOFF, R_SH_GOTPC): Change
numbers to the range from 160 to 167.
(R_SH_FIRST_INVALID_RELOC): Adjust.
(R_SH_FIRST_INVALID_RELOC_2, R_SH_LAST_INVALID_RELOC_2):
New relocs to fill in the gap.
 
2000-09-13 Anders Norlander <anorland@acc.umu.se>
 
* mips.h (E_MIPS_MACH_4K): New define.
 
2000-09-05 Alan Modra <alan@linuxcare.com.au>
 
* hppa.h: Fix a comment.
(R_PARISC_PCREL12F): Define.
(R_PARISC_GNU_VTENTRY): Define.
(R_PARISC_GNU_VTINHERIT): Define.
 
2000-09-01 Alexandre Oliva <aoliva@redhat.com>
 
* sh.h (R_SH_GOT32, R_SH_PLT32, R_SH_COPY, R_SH_GLOB_DAT,
R_SH_JMP_SLOT, R_SH_RELATIVE, R_SH_GOTOFF, R_SH_GOTPC): New relocs.
(R_SH_FIRST_INVALID_RELOC): Adjust.
 
2000-08-14 Jim Wilson <wilson@cygnus.com>
 
* ia64.h (EF_IA_64_REDUCEDFP, EF_IA_64_CONS_GP,
EF_IA_64_NOFUNCDESC_CONS_GP, EF_IA_64_ABSOLUTE): Define.
 
2000-08-07 Nick Clifton <nickc@cygnus.com>
 
* ppc.h: Remove spurious CYGNUS LOCAL comments.
* v850.h: Likewise.
 
2000-07-22 Jason Eckhardt <jle@cygnus.com>
 
* i860.h: New file.
(elf_i860_reloc_type): Defined ELF32 i860 relocations.
 
2000-07-20 Hans-Peter Nilsson <hp@axis.com>
 
common.h (EM_CRIS): New machine number.
cris.h: New file.
 
2000-07-19 H.J. Lu <hjl@gnu.org>
 
* common.h (DF_1_NODEFLIB): Renamed from DF_1_NODEPLIB.
 
2000-07-19 H.J. Lu <hjl@gnu.org>
 
* common.h (DT_CHECKSUM): Set to 0x6ffffdf8.
(DTF_1_CONFEXP): It is 0x00000002 as suspected.
 
2000-07-19 H.J. Lu <hjl@gnu.org>
 
* common.h (DT_FEATURE): Renamed from DT_FEATURE_1.
(DT_CONFIG): New. From Solaris 8.
(DT_DEPAUDIT): Likewise.
(DT_AUDIT): Likewise.
(DT_PLTPAD): Likewise.
(DT_MOVETAB): Likewise.
(DF_1_NODEPLIB): Likewise.
(DF_1_NODUMP): Likewise.
(DF_1_CONLFAT): Likewise.
(DT_CHECKSUM): Likewise. FIXME. Check the value on Solaris 8.
(DTF_1_CONFEXP): Likewise.
 
2000-07-18 H.J. Lu <hjl@gnu.org>
 
* common.h (DT_FLAGS_1): Renamed from DT_1_FLAGS.
 
2000-07-12 Alan Modra <alan@linuxcare.com.au>
 
* internal.h (struct elf_internal_sym): Update comment for st_other.
 
2000-07-10 Alan Modra <alan@linuxcare.com.au>
 
* hppa.h: Add comments to all the relocs.
 
2000-06-26 Marek Michalkiewicz <marekm@linux.org.pl>
 
* avr.h (E_AVR_MACH_AVR5): Define.
 
2000-06-18 Stephane Carrez <stcarrez@worldnet.fr>
 
* m68hc11.h: New file, definitions for the Motorola 68hc11.
 
2000-06-06 Alan Modra <alan@linuxcare.com.au>
 
* reloc-macros.h (START_RELOC_NUMBERS): Don't define initial dummy
-1 valued enum.
(RELOC_NUMBER, FAKE_RELOC, EMPTY_RELOC): Append rather than
prepend comma.
(END_RELOC_NUMBERS): Give macro an arg to define as last enum.
 
* alpha.h (R_ALPHA_max): Define via END_RELOC_NUMBERS rather than
with EMPTY_RELOC.
* arc.h (R_ARC_max): Likewise.
* avr.h (R_AVR_max): Likewise.
* fr30.h (R_FR30_max): Likewise.
* hppa.h (R_PARISC_UNIMPLEMENTED): Likewise.
* i960.h (R_960_max): Likewise.
* m32r.h (R_M32R_max): Likewise.
* m68k.h (R_68K_max): Likewise.
* mcore.h (R_MCORE_max): Likewise.
* mn10300.h (R_MN10300_MAX): Likewise.
* pj.h (R_PJ_max): Likewise.
* ppc.h (R_PPC_max): Likewise.
* sh.h (R_SH_max): Likewise.
* sparc.h (R_SPARC_max): Likewise.
* v850.h (R_V850_max): Likewise.
 
* arm.h (R_ARM_max): Define via END_RELOC_NUMBERS.
* d10v.h (R_D10V_max): Likewise.
* d30v.h (R_D30V_max): Likewise.
* ia64.h (R_IA64_max): Likewise.
* mips.h (R_MIPS_maxext): Likewise.
* mn10200.h (R_MN10200_max): Likewise.
 
* i386.h (R_386_max): Remove old RELOC_NUMBER definition, and
define via END_RELOC_NUMBERS.
 
2000-06-03 Alan Modra <alan@linuxcare.com.au>
 
* reloc-macros.h (START_RELOC_NUMBERS): Fix name clash for
!__STDC__ case.
(RELOC_NUMBER): Use ansi stringify if ALMOST_STDC defined.
 
2000-05-22 Richard Henderson <rth@cygnus.com>
 
* ia64.h (R_IA64_PCREL60B, R_IA64_PCREL21BI): New.
(R_IA64_PCREL22, R_IA64_PCREL64I): New.
 
2000-05-02 H.J. Lu <hjl@gnu.org>
 
* common.h (ELFOSABI_NONE): Renamed from ELFOSABI_SYSV.
(ELFOSABI_MODESTO): Defined.
(ELFOSABI_OPENBSD): Likewise.
 
2000-04-21 Richard Henderson <rth@cygnus.com>
David Mosberger <davidm@hpl.hp.com>
 
* ia64.h: New file.
 
2000-04-14 H.J. Lu <hjl@gnu.org>
 
* common.h (ELFOSABI_TRUE64): Renamed to ELFOSABI_TRU64.
 
2000-04-14 H.J. Lu <hjl@gnu.org>
 
* common.h (ELFOSABI_NETBSD): Defined.
(ELFOSABI_HURD): Likewise.
(ELFOSABI_SOLARIS): Likewise.
(ELFOSABI_MONTEREY): Likewise.
(ELFOSABI_IRIX): Likewise.
(ELFOSABI_FREEBSD): Likewise.
(ELFOSABI_TRUE64): Likewise.
 
2000-04-07 Nick Clifton <nickc@cygnus.com>
 
* arm-oabi.h: Delete.
* arm.h: Merge in definitions of old reloc numbers from
arm-oabi.h.
 
2000-04-06 Nick Clifton <nickc@cygnus.com>
 
* arm.h (EF_ARM_SYMSARESORTED): Define.
(EF_ARM_EABIMASK): Define.
(EF_ARM_EABI_VERSION): Define.
(EF_ARM_EABI_UNKNOWN): Define.
(EF_ARM_EABI_VER1): Define.
(PF_ARM_PI): Define.
(PF_ARM_ABS): Define.
 
2000-04-05 J"orn Rennecke <amylaar@cygnus.co.uk>
 
* sh.h (R_SH_LOOP_START, R_SH_LOOP_END): New RELOC_NUMBERs.
 
2000-03-27 Denis Chertykov <denisc@overta.ru>
 
* avr.h: New file. AVR ELF support for BFD.
* common.h: Add AVR magic number.
 
2000-03-10 Geoffrey Keating <geoffk@cygnus.com>
 
* mips.h: Add R_MIPS_GNU_REL_HI16, R_MIPS_GNU_REL_LO16,
R_MIPS_GNU_REL16_S2, R_MIPS_PC64 and R_MIPS_PC32 relocation
numbers.
 
2000-02-23 Linas Vepstas <linas@linas.org>
 
* i370.h: New file.
 
2000-02-22 Nick Clifton <nickc@cygnus.com>
 
* common.h (ELF_ST_OTHER): Remove definition.
(ELF32_ST_OTHER): Remove definition.
(ELF64_ST_OTHER): Remove definition.
 
2000-02-22 H.J. Lu <hjl@gnu.org>
 
* common.h (ELFOSABI_LINUX): Define.
 
2000-02-17 J"orn Rennecke <amylaar@cygnus.co.uk>
 
* sh.h: (EF_SH_MACH_MASK, EF_SH_UNKNOWN, EF_SH1, EF_SH2): New macros.
(EF_SH3, EF_SH_HAS_DSP, EF_SH_DSP, EF_SH3_DSP): Likewise.
(EF_SH_HAS_FP, EF_SH3E, EF_SH4, EF_SH_MERGE_MACH): Likewise.
 
2000-02-03 H.J. Lu <hjl@gnu.org>
 
* arm-oabi.h: Duplicate changes made to arm.h on Jan. 27,
2000 by Thomas de Lellis <tdel@windriver.com>.
 
2000-01-27 Thomas de Lellis <tdel@windriver.com>
 
* arm.h (STT_ARM_TFUNC): Define in terms of STT_LOPROC.
(STT_ARM_16BIT): New flag. Denotes a label that was defined in
Thumb block but was does not identify a function.
 
2000-01-20 Nick Clifton <nickc@cygnus.com>
 
* common.h (EM_MCORE): Fix spelling of Motorola.
* mcore.h (EM_MCORE): Fix spelling of Motorola.
 
2000-01-13 Nick Clifton <nickc@cygnus.com>
 
* common.h (EM_S370): Change comment - this is now the IBM
System/370.
(EM_IA_64): Change comment - this is now the IA-64.
 
2000-01-11 Nick Clifton <nickc@cygnus.com>
 
* common.h (DT_ENCODING): Fix definition of this value.
(DT_LOOS): Fix definition of this value.
(DT_HIOS): Fix definition of this value.
(OLD_DT_LOOS): Value of DT_LOOS before Oct 4, 1999 draft
of ELF spec changed it.
(OLD_DT_HIOS): Value of DT_HIOS before Oct 4, 1999 draft
of ELF spec changed it.
 
2000-01-10 Egor Duda <deo@logos-m.ru>
 
* common.h (NT_WIN32PSTATUS): Define. (cygwin elf core dumps).
 
1999-12-28 Nick Clifton <nickc@cygnus.com>
 
* mips.h (STO_*): Redefine in terms of STV_* values now in
common.h.
 
1999-12-27 Nick Clifton <nickc@cygnus.com>
 
* common.h: Upgrade to match Oct4, 1999 Draft ELF ABI Spec.
(EM_MIPS_RS3_LE): New machine number.
(EM_RCE): New machine number.
(EM_MMA): New machine number.
(EM_PCP): New machine number.
(EM_NCPU): New machine number.
(EM_NDR1): New machine number.
(EM_STARCORE): New machine number.
(EM_ME16): New machine number.
(EM_ST100): New machine number.
(EM_TINYJ): New machine number.
(EM_FX66): New machine number.
(EM_ST9PLUS): New machine number.
(EM_ST7): New machine number.
(EM_68HC16): New machine number.
(EM_68HC11): New machine number.
(EM_68HC08): New machine number.
(EM_68HC05): New machine number.
(EM_SVX): New machine number.
(EM_VAX): New machine number.
(PF_MASKOS): Change value.
(SHT_INIT_ARRAY): New value for sh_type field.
(SHT_FINI_ARRAY): New value for sh_type field.
(SHT_PREINIT_ARRAY): New value for sh_type field.
(SHT_HIUSER): Change value.
(SHF_MERGE): New valye for sh_flags field.
(SHF_STRINGS): New valye for sh_flags field.
(SHF_INFO_LINK): New valye for sh_flags field.
(SHF_OS_NONCONFORMING): New valye for sh_flags field.
(SHF_MASKOS): Change value.
(ELF_ST_VISIBILITY): New macro.
(ELF_ST_OTHER): New macro.
(STT_COMMON): New symbol type.
(STV_DEFAULT): Value for symbol visibility.
(STV_INTERNAL): Value for symbol visibility.
(STV_HIDDEN): Value for symbol visibility.
(STV_PROTECTED): Value for symbol visibility.
(DT_RUNPATH): New dynamic section tag.
(DT_FLAGS): New dynamic section tag.
(DT_ENCODING): New dynamic section tag.
(DT_PREINIT_ARRAY): New dynamic section tag.
(DT_PREINIT_ARRAYSZ): New dynamic section tag.
(DT_LOPROC): New dynamic section tag index.
(DT_HIPROC): New dynamic section tag index.
(DF_ORIGIN): Value for dynamic section flag.
(DF_SYMBOLIC): Value for dynamic section flag.
(DF_TEXTREL): Value for dynamic section flag.
(DF_BIND_NOW): Value for dynamic section flag.
 
1999-12-09 Fred Fish <fnf@cygnus.com>
 
* i960.h (reloc-macros.h): Include using relative dir elf/.
* i386.h (reloc-macros.h): Include using relative dir elf/.
* hppa.h (reloc-macros.h): Include using relative dir elf/.
 
1999-12-07 Jim Blandy <jimb@cygnus.com>
 
* common.h (NT_PRXFPREG): New definition.
 
Wed Dec 1 03:02:15 1999 Jeffrey A Law (law@cygnus.com)
 
* mn10300.h (E_MN10300_MACH_AM33): Define.
 
Mon Oct 11 22:42:37 1999 Jeffrey A Law (law@cygnus.com)
 
* hppa.h (PF_HP_PAGE_SIZE): Define.
(PF_HP_FAR_SHARED, PF_HP_NEAR_SHARED, PF_HP_CODE): Likewise.
(PF_HP_MODIFY, PF_HP_LAZYSWAP, PF_HP_SBP): Likewise.
 
Mon Oct 4 17:42:38 1999 Doug Evans <devans@canuck.cygnus.com>
 
* m32r.h (E_M32RX_ARCH): Define.
 
1999-09-15 Ulrich Drepper <drepper@cygnus.com>
 
* hppa.h: Add DT_HP_GST_SIZE, DT_HP_GST_VERSION, and DT_HP_GST_HASHVAL.
 
1999-09-04 Steve Chamberlain <sac@pobox.com>
 
* pj.h: New file.
* common.h (EM_PJ): Define.
 
1999-09-02 Ulrich Drepper <drepper@cygnus.com>
 
* hppa.h: Add HPUX specific symbol type definitions.
 
* hppa.h: Add HPUX specific dynamic and program header table
specific definitions.
 
1999-08-31 Scott Bambrough <scottb@netwinder.org>
 
* common.h (NT_TASKSTRUCT): Define.
 
1999-07-16 Jakub Jelinek <jj@ultra.linux.cz>
 
* sparc.h (EF_SPARC_SUN_US3): Define in Cheetah extensions
flag (as per SCD2.4.1).
 
1999-07-16 Jakub Jelinek <jj@ultra.linux.cz>
 
* sparc.h (ELF64_R_TYPE_DATA): Only use ELF64_R_TYPE bits, not
ELF64_R_SYM bits.
 
1999-06-21 Philip Blundell <pb@nexus.co.uk>
 
* arm.h (EF_SOFT_FLOAT, F_SOFT_FLOAT): Define.
 
1999-07-13 Andreas Schwab <schwab@suse.de>
 
* m68k.h (EF_CPU32): Move definition inside multiple inclusion
guard.
 
1999-07-08 Richard Henderson <rth@cygnus.com>
 
* sparc.h (ELF64_R_TYPE_DATA): Sign extend the value.
(ELF64_R_TYPE_INFO): Mask out all but low 24 bits of data.
(DT_SPARC_PLTFMT): Delete.
Based on a patch from Jakub Jelinek.
 
Mon Jun 21 16:36:02 1999 Jeffrey A Law (law@cygnus.com)
 
* hppa.h (elf_hppa_reloc_type): Renamed from elf32_hppa_reloc_type.
 
1999-06-10 Jakub Jelinek <jj@ultra.linux.cz>
 
* sparc.h (R_SPARC_max_std): Define.
 
Wed Jun 9 15:16:34 1999 Jeffrey A Law (law@cygnus.com)
 
* hppa.h: Update with various changes from newest PA ELF
specifications.
 
1999-06-03 Ian Lance Taylor <ian@zembu.com>
 
* common.h (EM_PPC64): Define.
 
1999-06-02 Stu Grossman <grossman@babylon-5.cygnus.com>
 
* dwarf.h: Add LANG_JAVA.
* dwarf2.h: Add DW_LANG_Java.
 
1999-05-29 Nick Clifton <nickc@cygnus.com>
 
* common.h (ELFOSABI_ARM): Define.
 
1999-05-28 Nick Clifton <nickc@cygnus.com>
 
* reloc-macros.h: Update comment.
 
1999-05-28 Ian Lance Taylor <ian@zembu.com>
 
* i960.h: New file.
 
1999-05-16 Nick Clifton <nickc@cygnus.com>
 
* mcore.h (R_MCORE_COPY): Define.
(R_MCORE_GLOB_DAT): Define.
(R_MCORE_JUMP_SLOT): Define.
 
1999-05-15 Nick Clifton <nickc@cygnus.com>
 
* mcore.h (R_MCORE_RELATIVE): Define.
 
1999-05-05 Catherine Moore <clm@cygnus.com>
 
* m68k.h (EF_CPU32): Define.
 
1999-04-21 Nick Clifton <nickc@cygnus.com>
 
* reloc-macros.h (START_RELOC_NUMBERS): Prepend an underscore to
fake reloc entry name (if possible), in order to avoid conflicts
with typedefs of the same name.
 
1999-04-16 Gavin Romig-Koch <gavin@cygnus.com>
 
* mips.h (EF_MIPS_32BITMODE): New.
 
1999-04-08 Nick Clifton <nickc@cygnus.com>
 
* mcore.h: New header file. Defines for Motorola's MCore
processor.
 
1999-04-08 Nick Clifton <nickc@cygnus.com>
 
* common.h: Add new constants defined in: "System V Application
Binary Interface - DRAFT - April 29, 1998" found at the web site:
http://www.sco.com/developer/gabi/contents.html
 
(EM_MMA): Removed. Replaced with EM_MCORE as Motorolla own this
value.
 
1999-03-31 Nick Clifton <nickc@cygnus.com>
 
* reloc-macros.h: Fixed to not generate an enum with a trailing
comma.
 
1999-03-16 Gavin Romig-Koch <gavin@cygnus.com>
 
* mips.h (E_MIPS_MACH_5000): New.
 
1999-03-10 Ulrich Drepper <drepper@cygnus.com>
 
* common.h: Add definitions for a few more Solaris ELF extensions.
 
Thu Feb 18 18:58:26 1999 Ian Lance Taylor <ian@cygnus.com>
 
* external.h: Only use attribute if __GNUC__ is defined.
 
1999-02-17 Nick Clifton <nickc@cygnus.com>
 
Patch submitted by: Scott Bambrough <scottb@corelcomputer.com>
 
* external.h: struct Elf_External_Versym must be packed on
ARM. Code uses sizeof(Elf_External_Versym) and assumes it is
equal to sizeof(char[2]). Reported by Jim Pick <jim@jimpick.com>
 
1999-02-02 Nick Clifton <nickc@cygnus.com>
 
* dwarf2.h (DWARF2_External_ARange): New structure.
(DWARF2_Internal_ARange): New structure.
 
Mon Feb 1 11:33:56 1999 Catherine Moore <clm@cygnus.com>
 
* arm.h: Renumber relocs to conform to standard.
(EF_NEW_ABI): Define.
(EF_OLD_ABI): Define.
* arm-oabi.h: New file.
 
1999-01-28 Nick Clifton <nickc@cygnus.com>
 
* fr30.h: Add R_FR30_GNU_VT{INHERIT,ENTRY} relocs.
 
1999-01-27 Nick Clifton <nickc@cygnus.com>
 
* dwarf2.h: Add typedefs for structures found in dwarf2 sections.
 
1998-12-16 Gavin Romig-Koch <gavin@cygnus.com>
 
* mips.h (E_MIPS_MACH_4111): New.
 
1998-12-15 Gavin Romig-Koch <gavin@cygnus.com>
 
* mips.h (EF_MIPS_ABI,E_MIPS_ABI_O32,E_MIPS_ABI_O64,
E_MIPS_ABI_EABI32,E_MIPS_ABI_EABI64):
 
1998-12-03 Nick Clifton <nickc@cygnus.com>
 
* fr30.h: Add R_FR30_48 reloc.
 
1998-12-02 Ulrich Drepper <drepper@cygnus.com>
 
* mips.h: Add external data type for conflict section.
 
* mips.h: Add more LL_* options from Irix 6.5.
 
* mips.h: Add R_MIPS_JALR and adjust R_MIPS_max appropriately.
 
Mon Nov 30 15:25:58 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
 
* sh.h (elf_sh_reloc_type): Add R_SH_FIRST_INVALID_RELOC,
R_SH_LAST_INVALID_RELOC, R_SH_SWITCH8 and R_SH_max.
 
Tue Nov 10 15:12:28 1998 Nick Clifton <nickc@cygnus.com>
 
* common.h (EM_CYGNUS_FR30): Reduce to a 16 bit value.
 
Tue Nov 10 15:17:28 1998 Catherine Moore <clm@cygnus.com>
 
* d10v.h: Add vtable relocs.
 
Wed Nov 4 15:56:50 1998 Nick Clifton <nickc@cygnus.com>
 
* common.h (EM_CYGNUS_FR30): New machine number.
 
* fr30.h: New file: Definitions for the FR30.
 
Fri Oct 30 11:54:15 1998 Catherine Moore <clm@cygnus.com>
 
From Philip Blundell <pb@nexus.co.uk>:
* arm.h (R_ARM_COPY, et al.): New relocs, used by Linux for PIC.
(EF_ALIGN8): New flag.
 
Tue Oct 20 11:19:50 1998 Ian Lance Taylor <ian@cygnus.com>
 
* common.h (NT_LWPSTATUS): Close comment accidentally left open.
 
Mon Oct 19 20:24:11 1998 Catherine Moore <clm@cygnus.com>
 
* sh.h: Add vtable relocs.
 
Mon Oct 19 01:44:42 1998 Felix Lee <flee@cygnus.com>
 
* common.h (NT_PSTATUS, NT_FPREGS, NT_PSINFO,
NT_LWPSTATUS,NT_LWPSINFO): added.
* internal.h (Elf_Internal_Note): new structure members.
 
Fri Oct 16 14:11:25 1998 Catherine Moore <clm@cygnus.com>
 
* m32r.h: Add vtable relocs.
 
Tue Oct 6 09:22:22 1998 Catherine Moore <clm@cygnus.com>
 
* sparc.h: Add vtable relocs.
 
Mon Oct 5 09:39:22 1998 Catherine Moore <clm@cygnus.com>
 
* v850.h: Add vtable relocs.
 
Sun Oct 4 21:17:51 1998 Ian Lance Taylor <ian@cygnus.com>
 
* i386.h (R_386_max): Change from 252 to 24.
 
Mon Sep 21 12:24:44 1998 Catherine Moore <clm@cygnus.com>
 
* i386.h: Change vtable reloc numbers.
 
Sun Sep 20 00:54:22 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
 
* m68k.h: Add vtable relocs and R_68K_max.
 
Tue Sep 15 09:56:49 CDT 1998 Catherine Moore <clm@cygnus.com>
 
* arm.h: Add vtable relocs.
 
Mon Aug 31 11:25:27 1998 Catherine Moore <clm@cygnus.com>
 
* arm.h: Define STT_ARM_TFUNC. Remove ST_THUMB_xxxx
definitions.
 
Sat Aug 29 22:25:51 1998 Richard Henderson <rth@cygnus.com>
 
* i386.h: Add vtable relocs.
 
1998-08-25 16:42 Ulrich Drepper <drepper@cygnus.com>
 
* common.h: Add SYMINFO_* macros to access Elf*_Syminfo information.
 
* external.h: Add Elf_External_Syminfo definition.
 
* internal.h: Add Elf_Internal_Syminfo, Elf32_Internal_Syminfo,
and Elf64_Syminfo definitions.
 
Sun Aug 9 20:26:49 CDT 1998 Catherine Moore <clm@cygnus.com>
 
* arm.h: Add ST_THUMB definitions.
 
Wed Aug 5 15:52:35 1998 Nick Clifton <nickc@cygnus.com>
 
* arm.h: Add ELF header flags to specify compile time optins:
EF_INTERWORK: New flag.
EF_APCS_26: New flag.
EF_APCS_FLOAT: New flag.
EF_PIC: New flag.
 
1998-07-31 21:28 Ulrich Drepper <drepper@cygnus.com>
 
* mips.h: Add missing RHF_* constants.
 
Fri Jul 31 10:01:40 1998 Catherine Moore <clm@cygnus.com>
 
* arm.h: Add R_ARM_THM_PC9 relocation.
 
1998-07-30 16:25 Ulrich Drepper <drepper@cygnus.com>
 
* common.h: Add new DT_* entries and there flag macros from Solaris.
 
Tue Jul 28 18:14:07 1998 Stan Cox <scox@equinox.cygnus.com>
 
* sparc.h: (R_SPARC_REV32): Added for little endian data e.g. sparc 86x.
 
Fri Jul 24 11:22:06 1998 Jeffrey A Law (law@cygnus.com)
 
* mn10300.h: Add R_MN10300_24 relocation.
 
1998-07-24 Ulrich Drepper <drepper@cygnus.com>
 
* mips.h: Add MIPS64 relocation names and values.
 
Wed Jul 22 19:29:00 Catherine Moore <clm@cygnus.com>
 
* arm.h: Rename relocations.
 
1998-07-22 Ulrich Drepper <drepper@cygnus.com>
 
* ppc.h: Define enum as elf_ppc_reloc_type.
 
Wed Jul 22 16:22:11 1998 Nick Clifton <nickc@cygnus.com>
 
* reloc-macros.h: New file. Provides relocation macros:
START_RELOC_NUMBERS, RELOC_NUMBER, FAKE_RELOC, EMPTY_RELOC and
END_RELOC_NUMBERS used by other elf header files.
 
* alpha.h: Use reloc-macros.h.
* arc.h: Use reloc-macros.h.
* arm.h: Use reloc-macros.h.
* d10v.h: Use reloc-macros.h.
* d30v.h: Use reloc-macros.h.
* hppa.h: Use reloc-macros.h.
* i386.h: Use reloc-macros.h.
* m32r.h: Use reloc-macros.h.
* m68k.h: Use reloc-macros.h.
* mips.h: Use reloc-macros.h.
* mn10200.h: Use reloc-macros.h.
* mn10300.h: Use reloc-macros.h.
* ppc.h: Use reloc-macros.h.
* sh.h: Use reloc-macros.h.
* sparc.h: Use reloc-macros.h.
* v850.h: Use reloc-macros.h.
 
1998-07-22 13:07 Ulrich Drepper <drepper@cygnus.com>
 
* mn10300.h: Rewrite relocation definition using macros.
* mips.h: Likewise.
* ppc.h: Likewise.
* alpha.h: Likewise.
* arm.h: Likewise.
* d10v.h: Likewise.
* d30v.h: Likewise.
* m32r.h: Likewise.
* m68k.h: Likewise.
* mn10200.h: Likewise.
* sh.h: Likewise.
* sparc.h: Likewise.
 
1998-07-21 13:07 Ulrich Drepper <drepper@cygnus.com>
 
* arm.h: New file.
* d10v.h: New file.
* d30v.h: New file.
* i386.h: New file.
* m68k.h: New file.
* mn10200.h: New file.
* sh.h: New file.
 
* mips.h: Add R_MIPS_* and SHT_MIPS_* entries.
 
* mn10300.h: Add R_MN10300_* entries.
 
* ppc.h: Add R_PPC_* entries.
 
1998-07-20 07:11 Ulrich Drepper <drepper@cygnus.com>
 
* mips.h: Add ODK_*, OEX_*, OPAD_*, OHW_*, and OGP_* constants.
Define Elf32_External_Lib.
 
1998-07-19 15:24 Ulrich Drepper <drepper@cygnus.com>
 
* mips.h (PT_MIPS_OPTIONS): New symbol.
Add lots of DT_MIPS_* symbols.
 
Fri Jun 26 10:46:35 1998 Jeffrey A Law (law@cygnus.com)
 
* mn10300.h: New file.
 
Thu Jun 18 19:27:56 1998 Nick Clifton <nickc@cygnus.com>
 
* common.h (EM_960, EM_V800, EM_FR20, EM_RH32, EM_MMA,
EM_OLD_ALPHA): Add these constants.
 
Thu Jun 11 17:59:01 1998 Nick Clifton <nickc@cygnus.com>
 
* common.h (EM_486, EM_S370): Add these constants.
 
Tue Jun 9 09:35:29 1998 Nick Clifton <nickc@cygnus.com>
 
* common.h (EM_ARM): Add this constant.
 
Wed May 6 09:45:30 1998 Gavin Koch <gavin@cygnus.com>
 
* mips.h (EF_MIPS_MACH,E_MIPS_MACH_*): Added.
 
Sat Apr 25 18:35:06 1998 Richard Henderson <rth@cygnus.com>
 
* alpha.h (STO_ALPHA_NOPV, STO_ALPHA_STD_GPLOAD): New.
 
Wed Apr 15 15:42:45 1998 Richard Henderson <rth@cygnus.com>
 
* common.h (EM_SPARC64): Move and rename to EM_OLD_SPARCV9.
(EM_SPARCV9): New. This is the official ABI name and number.
 
Sat Feb 28 17:04:41 1998 Richard Henderson <rth@cygnus.com>
 
* alpha.h (EF_ALPHA_32BIT, EF_ALPHA_CANRELAX): New.
 
Mon Dec 15 15:07:49 1997 Nick Clifton <nickc@cygnus.com>
 
* m32r.h (EF_M32R_ARCH, E_M32R_ARCH): New flags to
specify machine architecture.
 
Fri Dec 5 11:20:08 1997 Nick Clifton <nickc@cygnus.com>
 
* v850.h: New constants: SHN_V850_SCOMMON, SHN_V850_TCOMMON,
SHN_V850_ZCOMMON, SHT_V850_SCOMMON, SHT_V850_TCOMMON,
SHT_V850_ZCOMMON to handle v850 common sections.
enum reloc_type renamed to v850_reloc_type to avoid name
conflict.
 
Thu Oct 23 13:55:24 1997 Richard Henderson <rth@cygnus.com>
 
* sparc.h (enum elf_sparc_reloc_type): Add UA64 & UA16.
 
Thu Oct 23 00:42:04 1997 Richard Henderson <rth@dot.cygnus.com>
 
* sparc.h (DT_SPARC_REGISTER): New macro.
(DT_SPARC_PLTFMT): In support of old sparc64-linux .plts; will
go away soon.
 
Tue Sep 30 13:26:58 1997 Doug Evans <dje@canuck.cygnus.com>
 
* sparc.h (EF_SPARC_HAL_R1, EF_SPARC_EXT_MASK): New macros.
(EF_SPARCV9_{MM,TSO,PSO,RMO}): New macros.
(SHN_BEFORE,SHN_AFTER): New macros.
(SHF_EXCLUDE,SHF_ORDERED): New macros.
(STT_REGISTER): New macro.
(R_SPARC_GLOB_JMP): Deleted, but slot reserved.
(R_SPARC_{DISP64,PLT64,HIX22,LOX10}): New relocations.
(R_SPARC_{H44,M44,L44,REGISTER}): New relocations.
(ELF64_R_TYPE_{DATA,ID,INFO}): New macros.
 
Wed Sep 17 16:41:42 1997 Nick Clifton <nickc@cygnus.com>
 
* v850.h: Add R_V850_CALLT_6_7_OFFSET and R_V850_CALLT_16_16_OFFSET.
 
Tue Sep 16 14:16:17 1997 Nick Clifton <nickc@cygnus.com>
 
* v850.h (reloc_type): Add R_V850_TDA_16_16_OFFSET.
 
Wed Sep 3 15:11:14 1997 Richard Henderson <rth@cygnus.com>
 
* mips.h: Correct typo in comment.
 
Wed Sep 3 11:25:57 1997 Nick Clifton <nickc@cygnus.com>
 
* v850.h (reloc_type): Remove R_V850_16_PCREL.
 
Tue Sep 2 17:41:05 1997 Nick Clifton <nickc@cygnus.com>
 
* common.h: Remove magic number for V850E.
* common.h: Remove magic number for V850EA.
* v850.h: Add new flags for e_flags field in elf header.
 
Mon Aug 25 16:06:47 1997 Nick Clifton <nickc@cygnus.com>
 
* common.h (EM_CYGNUS_V850E): backend magic number for v850e.
* common.h (EM_CYGNUS_V850EA): backend magic number for v850ea.
 
Mon Aug 18 11:05:23 1997 Nick Clifton <nickc@cygnus.com>
 
* v850.h (reloc_type): Add 16 bit PC relative relocation.
 
Fri Aug 15 05:10:09 1997 Doug Evans <dje@canuck.cygnus.com>
 
* arc.h (enum reloc): Move here from elf32-arc.c.
 
Fri Aug 8 17:05:29 1997 Doug Evans <dje@canuck.cygnus.com>
 
* arc.h: New file.
* common.h (EM_CYGNUS_ARC): Define.
 
Mon Jun 16 14:46:12 1997 Ian Lance Taylor <ian@cygnus.com>
 
* internal.h (Elf_Internal_Ehdr): Change e_phoff and e_shoff from
bfd_signed_vma to bfd_size_type, as they are not signed.
 
Wed Mar 5 15:35:26 1997 Doug Evans <dje@seba.cygnus.com>
 
* m32r.h (SHF_M32R_CAN_RELAX): Define.
 
Mon Feb 24 17:49:01 1997 Ian Lance Taylor <ian@cygnus.com>
 
* external.h: Dump the 32/64 bit specific forms of the version
structures, and just define them as size independent.
 
* common.h (VERSYM_HIDDEN, VERSYM_VERSION): Define.
 
Fri Feb 21 13:00:34 1997 Doug Evans <dje@canuck.cygnus.com>
 
* m32r.h (enum reloc_type): Add R_M32R_SDA16.
(SHN_M32R_SCOMMON): Define.
 
Wed Feb 19 15:35:31 1997 Ian Lance Taylor <ian@cygnus.com>
 
From Eric Youngdale <eric@andante.jic.com>:
* external.h, internal.h, common.h: Added new structures and
definitions for ELF versions.
 
Tue Feb 18 17:40:36 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
 
* common.h (EM_CYGNUS_D30V): Define.
 
Mon Jan 27 11:54:44 1997 Doug Evans <dje@seba.cygnus.com>
 
* m32r.h (enum reloc_type): Add R_M32R_HI16_[SU]LO,R_M32R_LO16.
 
Fri Jan 3 11:32:51 1997 Michael Meissner <meissner@tiktok.cygnus.com>
 
* v850.h (V850_OTHER_{TDA_BYTE,ERROR}): New bits for the st_other
field.
(SHN_V850_*): Remove v850 specific section indexes, which are not
needed.
(enum reloc_type): Move the v850 relocations here from
elf32-v850.c
 
Thu Jan 2 19:30:23 1997 Michael Meissner <meissner@tiktok.cygnus.com>
 
* v850.h: New file, provide V850 specific definitions.
 
Tue Dec 31 14:44:32 1996 Ian Lance Taylor <ian@cygnus.com>
 
* common.h (DT_AUXILIARY): Define.
(DT_FILTER): Define.
 
Wed Dec 4 05:03:37 1996 Jason Merrill <jason@yorick.cygnus.com>
 
* dwarf2.h: Update.
 
Tue Nov 26 10:44:47 1996 Ian Lance Taylor <ian@cygnus.com>
 
* mips.h (STO_MIPS16): Define.
 
Tue Nov 12 15:45:42 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
 
* d10v.h: Remove empty file.
 
Tue Oct 8 11:31:24 1996 Ian Lance Taylor <ian@cygnus.com>
 
* mips.h (EF_MIPS_ABI2): Define.
 
Thu Oct 3 10:01:40 1996 Jeffrey A Law (law@cygnus.com)
 
* common.h: Break mn10x00 support into mn10200 and mn10300.
 
Wed Oct 2 21:26:43 1996 Jeffrey A Law (law@cygnus.com)
 
* common.h (EM_CYGNUS_MN10x00): Define.
 
Mon Sep 23 09:18:04 1996 Doug Evans <dje@seba.cygnus.com>
 
* m32r.h: New file.
 
Fri Aug 30 17:06:21 1996 Ian Lance Taylor <ian@cygnus.com>
 
* common.h (EM_SH): Define.
 
Tue Aug 20 14:47:54 1996 J.T. Conklin <jtc@hippo.cygnus.com>
 
* common.h (EM_CYGNUS_V850): Define.
 
Mon Aug 19 10:59:10 1996 Doug Evans <dje@canuck.cygnus.com>
 
* common.h (EM_CYGNUS_M32R): Define.
 
Mon Jul 22 18:59:55 1996 Ian Lance Taylor <ian@cygnus.com>
 
* mips.h (SHT_MIPS_IFACE, SHT_MIPS_CONTENT): Define.
(SHT_MIPS_SYMBOL_LIB): Define.
(SHF_MIPS_MERGE, SHF_MIPS_ADDR32, SHF_MIPS_ADDR64): Define.
(SHF_MIPS_NOSTRIP, SHF_MIPS_LOCAL, SHF_MIPS_NAMES): Define.
 
Thu Jul 18 19:12:15 1996 Stan Shebs <shebs@andros.cygnus.com>
 
* dwarf2.h: New file.
 
Jul 18 13:20:39 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
 
* common.h (EM_CYGNUS_D10V): Define.
* d10v.h: New file.
 
Fri Jun 21 12:33:24 1996 Richard Henderson <rth@tamu.edu>
 
* alpha.h: New file.
* common.h (EM_ALPHA): Define.
 
Fri May 31 17:28:05 1996 Ian Lance Taylor <ian@cygnus.com>
 
* mips.h (Elf_External_Options, Elf_Internal_Options): Define.
(bfd_mips_elf_swap_options_in): Declare.
(bfd_mips_elf_swap_options_out): Declare.
(ODK_*): Define.
(Elf64_External_RegInfo, Elf64_Internal_RegInfo): Define.
(bfd_mips_elf64_swap_reginfo_in): Declare.
(bfd_mips_elf64_swap_reginfo_out): Declare.
 
Thu May 30 12:35:57 1996 Ian Lance Taylor <ian@cygnus.com>
 
* mips.h (E_MIPS_ARCH_4): Define.
 
Wed May 29 15:35:33 1996 Ian Lance Taylor <ian@cygnus.com>
 
* mips.h (Elf64_Mips_External_Rel): Define.
(Elf64_Mips_Internal_Rel): Define.
(Elf64_Mips_External_Rela, Elf64_Mips_Internal_Rela): Define.
(RSS_*): Define.
 
Mon Apr 22 18:26:30 1996 Doug Evans <dje@canuck.cygnus.com>
 
* sparc.h (R_SPARC_[56]): Always define.
 
Mon Feb 19 01:55:56 1996 Doug Evans <dje@charmed.cygnus.com>
 
* sparc.h (R_SPARC_{PLT32,HIPLT22,LOPLT10,PCPLT32,PCPLT22,
PCPLT10,5,6}): Don't define ifdef SPARC64_OLD_RELOCS.
 
Tue Feb 6 11:33:58 1996 Doug Evans <dje@charmed.cygnus.com>
 
* sparc.h (enum sparc_elf_reloc_type): Define.
 
Wed Jan 17 09:09:16 1996 Doug Evans <dje@canuck.cygnus.com>
 
* common.h: Define EM_SPARC32PLUS.
* sparc.h: New file.
 
Thu Jan 11 16:27:34 1996 Michael Meissner <meissner@tiktok.cygnus.com>
 
* ppc.h (SHF_EXCLUDE, SHT_ORDERED): New fields from the abi.
 
Thu Nov 30 16:47:18 1995 Ian Lance Taylor <ian@cygnus.com>
 
* internal.h (struct elf_segment_map): Add includes_filehdr and
includes_phdrs fields.
 
Tue Nov 28 16:58:10 1995 Ian Lance Taylor <ian@cygnus.com>
 
* internal.h (struct elf_segment_map): Define.
 
Tue Oct 31 15:19:36 1995 Fred Fish <fnf@cygnus.com>
 
* common.h, dwarf.h, external.h, hppa.h, internal.h,
mips.h, ppc.h: Protect against multiple inclusions.
 
Thu Sep 21 13:51:58 1995 Michael Meissner <meissner@tiktok.cygnus.com>
 
* ppc.h (EF_PPC_RELOCATABLE_LIB): Add new flag bit.
 
Fri Sep 1 15:32:17 1995 Kazumoto Kojima <kkojima@info.kanagawa-u.ac.jp>
 
* mips.h: Add some definitions used on Irix 5.
 
Tue Jun 20 10:18:28 1995 Jeff Law (law@snake.cs.utah.edu)
 
* hppa.h (CPU_PA_RISC1_0): Protect from redefinitions.
(CPU_PA_RISC1_1): Likewise.
 
Wed Mar 8 18:14:37 1995 Michael Meissner <meissner@tiktok.cygnus.com>
 
* ppc.h: New file for PowerPC support.
 
Tue Feb 14 13:59:13 1995 Michael Meissner <meissner@tiktok.cygnus.com>
 
* common.h (EM_PPC): Use offical value of 20, not 17.
(EM_PPC_OLD): Define this to be the old value of EM_PPC.
 
Tue Jan 24 09:40:59 1995 Michael Meissner <meissner@tiktok.cygnus.com>
 
* common.h (EM_PPC): New macro, PowerPC machine id.
 
Tue Jan 17 10:51:38 1995 Ian Lance Taylor <ian@sanguine.cygnus.com>
 
* mips.h (SHT_MIPS_MSYM, SHT_MIPS_DWARF, SHT_MIPS_EVENTS): Define.
 
Mon Oct 17 13:43:59 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
 
* internal.h (Elf_Internal_Shdr): Remove rawdata and size fields.
Add bfd_section field.
 
Tue May 24 16:11:50 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
 
* mips.h (Elf32_External_gptab): Define.
 
Mon May 16 13:22:04 1994 Jeff Law (law@snake.cs.utah.edu)
 
* common.h (EM_HPPA): Delete.
(EM_PARISC): Add.
* hppa.h: New file.
 
Mon May 9 13:27:03 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
 
* common.h (SHN_LORESERVE): Rename from SHN_LORESERV.
(ELF32_R_TYPE, ELF32_R_INFO): Don't rely on size of unsigned char.
(ELF64_R_TYPE): Don't rely on size of unsigned long.
 
Mon Apr 25 15:53:09 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
 
* internal.h (Elf_Internal_Shdr): Use PTR, not void *.
 
Fri Mar 11 00:34:59 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
 
* mips.h (SHN_MIPS_TEXT, SHN_MIPS_DATA): Define.
 
Sat Mar 5 14:08:54 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
 
* internal.h: Remove Elf32_*, Elf64_* typedefs. These names
cause conflicts with system headers, e.g. link.h in gdb/solib.c.
Combine 32- and 64-bit versions of *_Internal_Dyn.
* common.h: Replace uses of Elf64_Word, Elf64_Xword typedefs
by their expansion.
* mips.h: Replace uses of Elf32_Word, Elf32_Sword, Elf32_Addr
typedefs by their expansion. Add DT_MIPS_RLD_MAP definition.
 
Fri Feb 18 10:39:54 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
 
* common.h (EM_CYGNUS_POWERPC): Define. This may be temporary,
depending upon how quickly I can find a real PowerPC ABI.
 
Mon Feb 7 08:27:13 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
 
* internal.h: Change HOST_64_BIT to BFD_HOST_64_BIT.
 
Wed Feb 2 14:12:18 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
 
* common.h: Add comments regarding value of EM_HPPA and how to
pick an unofficial value.
 
Wed Nov 17 17:14:26 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
 
* mips.h (SHT_MIPS_OPTIONS): Define.
 
Mon Nov 8 17:57:00 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
 
* mips.h: Added some more MIPS ABI macro definitions.
 
Wed Nov 3 22:07:17 1993 Ken Raeburn (raeburn@rtl.cygnus.com)
 
* common.h (EM_MIPS_RS4_BE): New macro.
 
Tue Oct 12 07:28:18 1993 Ian Lance Taylor (ian@cygnus.com)
 
* mips.h: New file. MIPS ABI specific information.
 
Mon Jun 21 13:13:43 1993 Ken Raeburn (raeburn@poseidon.cygnus.com)
 
* internal.h: Combined 32- and 64-bit versions of all structures
except *_Internal_Dyn. This will simply the assembler interface,
and some bfd code.
 
Tue May 25 02:00:16 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
 
* external.h, internal.h, common.h: Added 64-bit versions of some
structures and macros. Renamed old versions to put "32" in the
name. Some are unchanged.
 
Thu Apr 29 12:12:20 1993 Ken Raeburn (raeburn@deneb.cygnus.com)
 
* common.h (EM_HPPA, NT_VERSION, STN_UNDEF, DT_*): New macros.
* external.h (Elf_External_Dyn): New type.
 
* internal.h (Elf_Intenral_Shdr): New field `size'.
(Elf_Internal_Dyn): New type.
 
Tue Apr 20 16:03:45 1993 Fred Fish (fnf@cygnus.com)
 
* dwarf.h (LANG_CHILL): Change value to one randomly picked in
the user defined range, to reduce probability of collisions.
 
Sun Nov 15 09:34:02 1992 Fred Fish (fnf@cygnus.com)
 
* dwarf.h (AT_src_coords): Whitespace change only.
* dwarf.h (AT_body_begin, AT_body_end, LANG_MODULA2):
Add from latest gcc.
* dwarf.h (LANG_CHILL): Add as GNU extension.
 
Sat Aug 1 13:46:53 1992 Fred Fish (fnf@cygnus.com)
 
* dwarf.h: Replace with current version from gcc distribution.
 
Fri Jun 19 19:05:09 1992 John Gilmore (gnu at cygnus.com)
 
* internal.h: Add real struct tags to all the Type_Defs, so they
can be used in prototypes where the Type_Defs are not known.
 
Fri Apr 3 20:58:58 1992 Mark Eichin (eichin at cygnus.com)
 
* common.h: added ELF_R_{SYM,TYPE,INFO} for handling relocation
info
added EM_MIPS, and corrected value of EM_860 based on System V ABI
manual.
 
* external.h: added Elf_External_{Rel,Rela}.
 
* internal.h: added Elf_Internal_{Rel,Rela}.
added rawdata to Elf_Internal_Shdr.
 
Sat Nov 30 20:43:59 1991 Steve Chamberlain (sac at rtl.cygnus.com)
 
* common.h, dwarf.h, external.h, internal.h, ChangeLog; moved from
../elf-<foo>
 
Copyright (C) 1991-2003 Free Software Foundation, Inc.
 
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
 
Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
/contrib/toolchain/binutils/include/elf/aarch64.h
0,0 → 1,335
/* AArch64 ELF support for BFD.
 
Copyright 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
Contributed by ARM Ltd.
 
This file is part of GNU Binutils.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the license, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING3. If not,
see <http://www.gnu.org/licenses/>. */
 
#ifndef _ELF_AARCH64_H
#define _ELF_AARCH64_H
 
#include "elf/reloc-macros.h"
 
/* Processor specific program header types. */
#define PT_AARCH64_ARCHEXT (PT_LOPROC + 0)
 
/* Additional section types. */
#define SHT_AARCH64_ATTRIBUTES 0x70000003 /* Section holds attributes. */
 
/* AArch64-specific values for sh_flags. */
#define SHF_ENTRYSECT 0x10000000 /* Section contains an
entry point. */
#define SHF_COMDEF 0x80000000 /* Section may be multiply defined
in the input to a link step. */
 
/* Relocation types. */
 
START_RELOC_NUMBERS (elf_aarch64_reloc_type)
 
/* Null relocations. */
RELOC_NUMBER (R_AARCH64_NONE, 0) /* No reloc */
 
/* Basic data relocations. */
 
/* .word: (S+A) */
RELOC_NUMBER (R_AARCH64_P32_ABS32, 1)
 
/* .half: (S+A) */
RELOC_NUMBER (R_AARCH64_P32_ABS16, 2)
 
/* .word: (S+A-P) */
RELOC_NUMBER (R_AARCH64_P32_PREL32, 3)
 
/* .half: (S+A-P) */
RELOC_NUMBER (R_AARCH64_P32_PREL16, 4)
 
/* Group relocations to create a 16, 32, 48 or 64 bit
unsigned data or abs address inline. */
 
/* MOV[ZK]: ((S+A) >> 0) & 0xffff */
RELOC_NUMBER (R_AARCH64_P32_MOVW_UABS_G0, 5)
 
/* MOV[ZK]: ((S+A) >> 0) & 0xffff */
RELOC_NUMBER (R_AARCH64_P32_MOVW_UABS_G0_NC, 6)
 
/* MOV[ZK]: ((S+A) >> 16) & 0xffff */
RELOC_NUMBER (R_AARCH64_P32_MOVW_UABS_G1, 7)
 
/* Group relocations to create high part of a 16, 32, 48 or 64 bit
signed data or abs address inline. Will change instruction
to MOVN or MOVZ depending on sign of calculated value. */
 
/* MOV[ZN]: ((S+A) >> 0) & 0xffff */
RELOC_NUMBER (R_AARCH64_P32_MOVW_SABS_G0, 8)
 
/* Relocations to generate 19, 21 and 33 bit PC-relative load/store
addresses: PG(x) is (x & ~0xfff). */
 
/* LD-lit: ((S+A-P) >> 2) & 0x7ffff */
RELOC_NUMBER (R_AARCH64_P32_LD_PREL_LO19, 9)
 
/* ADR: (S+A-P) & 0x1fffff */
RELOC_NUMBER (R_AARCH64_P32_ADR_PREL_LO21, 10)
 
/* ADRH: ((PG(S+A)-PG(P)) >> 12) & 0x1fffff */
RELOC_NUMBER (R_AARCH64_P32_ADR_PREL_PG_HI21, 11)
 
/* ADD: (S+A) & 0xfff */
RELOC_NUMBER (R_AARCH64_P32_ADD_ABS_LO12_NC, 12)
 
/* LD/ST8: (S+A) & 0xfff */
RELOC_NUMBER (R_AARCH64_P32_LDST8_ABS_LO12_NC, 13)
 
/* LD/ST16: (S+A) & 0xffe */
RELOC_NUMBER (R_AARCH64_P32_LDST16_ABS_LO12_NC, 14)
 
/* LD/ST32: (S+A) & 0xffc */
RELOC_NUMBER (R_AARCH64_P32_LDST32_ABS_LO12_NC, 15)
 
/* LD/ST64: (S+A) & 0xff8 */
RELOC_NUMBER (R_AARCH64_P32_LDST64_ABS_LO12_NC, 16)
 
/* LD/ST128: (S+A) & 0xff0 */
RELOC_NUMBER (R_AARCH64_P32_LDST128_ABS_LO12_NC, 17)
 
/* Relocations for control-flow instructions. */
 
/* TBZ/NZ: ((S+A-P) >> 2) & 0x3fff. */
RELOC_NUMBER (R_AARCH64_P32_TSTBR14, 18)
 
/* B.cond: ((S+A-P) >> 2) & 0x7ffff. */
RELOC_NUMBER (R_AARCH64_P32_CONDBR19, 19)
 
/* B: ((S+A-P) >> 2) & 0x3ffffff. */
RELOC_NUMBER (R_AARCH64_P32_JUMP26, 20)
 
/* BL: ((S+A-P) >> 2) & 0x3ffffff. */
RELOC_NUMBER (R_AARCH64_P32_CALL26, 21)
 
 
RELOC_NUMBER (R_AARCH64_P32_GOT_LD_PREL19, 25)
RELOC_NUMBER (R_AARCH64_P32_ADR_GOT_PAGE, 26)
RELOC_NUMBER (R_AARCH64_P32_LD32_GOT_LO12_NC, 27)
 
 
RELOC_NUMBER (R_AARCH64_P32_TLSGD_ADR_PAGE21, 81)
RELOC_NUMBER (R_AARCH64_P32_TLSGD_ADD_LO12_NC, 82)
RELOC_NUMBER (R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21, 103)
RELOC_NUMBER (R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC, 104)
RELOC_NUMBER (R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19, 105)
RELOC_NUMBER (R_AARCH64_P32_TLSLE_MOVW_TPREL_G1, 106)
RELOC_NUMBER (R_AARCH64_P32_TLSLE_MOVW_TPREL_G0, 107)
RELOC_NUMBER (R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC, 108)
RELOC_NUMBER (R_AARCH64_P32_TLSLE_ADD_TPREL_HI12, 109)
RELOC_NUMBER (R_AARCH64_P32_TLSLE_ADD_TPREL_LO12, 110)
RELOC_NUMBER (R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC, 111)
 
RELOC_NUMBER (R_AARCH64_P32_TLSDESC_LD_PREL19, 122)
RELOC_NUMBER (R_AARCH64_P32_TLSDESC_ADR_PREL21, 123)
RELOC_NUMBER (R_AARCH64_P32_TLSDESC_ADR_PAGE21, 124)
RELOC_NUMBER (R_AARCH64_P32_TLSDESC_LD32_LO12_NC, 125)
RELOC_NUMBER (R_AARCH64_P32_TLSDESC_ADD_LO12_NC, 126)
RELOC_NUMBER (R_AARCH64_P32_TLSDESC_CALL, 127)
 
/* Dynamic relocations */
 
/* Copy symbol at runtime. */
RELOC_NUMBER (R_AARCH64_P32_COPY, 180)
 
/* Create GOT entry. */
RELOC_NUMBER (R_AARCH64_P32_GLOB_DAT, 181)
 
/* Create PLT entry. */
RELOC_NUMBER (R_AARCH64_P32_JUMP_SLOT, 182)
 
/* Adjust by program base. */
RELOC_NUMBER (R_AARCH64_P32_RELATIVE, 183)
RELOC_NUMBER (R_AARCH64_P32_TLS_DTPMOD, 184)
RELOC_NUMBER (R_AARCH64_P32_TLS_DTPREL, 185)
RELOC_NUMBER (R_AARCH64_P32_TLS_TPREL, 186)
RELOC_NUMBER (R_AARCH64_P32_TLSDESC, 187)
RELOC_NUMBER (R_AARCH64_P32_IRELATIVE, 188)
 
RELOC_NUMBER (R_AARCH64_NULL, 256) /* No reloc */
 
/* Basic data relocations. */
 
/* .xword: (S+A) */
RELOC_NUMBER (R_AARCH64_ABS64, 257)
 
/* .word: (S+A) */
RELOC_NUMBER (R_AARCH64_ABS32, 258)
 
/* .half: (S+A) */
RELOC_NUMBER (R_AARCH64_ABS16, 259)
 
/* .xword: (S+A-P) */
RELOC_NUMBER (R_AARCH64_PREL64, 260)
 
/* .word: (S+A-P) */
RELOC_NUMBER (R_AARCH64_PREL32, 261)
 
/* .half: (S+A-P) */
RELOC_NUMBER (R_AARCH64_PREL16, 262)
 
/* Group relocations to create a 16, 32, 48 or 64 bit
unsigned data or abs address inline. */
 
/* MOV[ZK]: ((S+A) >> 0) & 0xffff */
RELOC_NUMBER (R_AARCH64_MOVW_UABS_G0, 263)
 
/* MOV[ZK]: ((S+A) >> 0) & 0xffff */
RELOC_NUMBER (R_AARCH64_MOVW_UABS_G0_NC, 264)
 
/* MOV[ZK]: ((S+A) >> 16) & 0xffff */
RELOC_NUMBER (R_AARCH64_MOVW_UABS_G1, 265)
 
/* MOV[ZK]: ((S+A) >> 16) & 0xffff */
RELOC_NUMBER (R_AARCH64_MOVW_UABS_G1_NC, 266)
 
/* MOV[ZK]: ((S+A) >> 32) & 0xffff */
RELOC_NUMBER (R_AARCH64_MOVW_UABS_G2, 267)
 
/* MOV[ZK]: ((S+A) >> 32) & 0xffff */
RELOC_NUMBER (R_AARCH64_MOVW_UABS_G2_NC, 268)
 
/* MOV[ZK]: ((S+A) >> 48) & 0xffff */
RELOC_NUMBER (R_AARCH64_MOVW_UABS_G3, 269)
 
/* Group relocations to create high part of a 16, 32, 48 or 64 bit
signed data or abs address inline. Will change instruction
to MOVN or MOVZ depending on sign of calculated value. */
 
/* MOV[ZN]: ((S+A) >> 0) & 0xffff */
RELOC_NUMBER (R_AARCH64_MOVW_SABS_G0, 270)
 
/* MOV[ZN]: ((S+A) >> 16) & 0xffff */
RELOC_NUMBER (R_AARCH64_MOVW_SABS_G1, 271)
 
/* MOV[ZN]: ((S+A) >> 32) & 0xffff */
RELOC_NUMBER (R_AARCH64_MOVW_SABS_G2, 272)
 
/* Relocations to generate 19, 21 and 33 bit PC-relative load/store
addresses: PG(x) is (x & ~0xfff). */
 
/* LD-lit: ((S+A-P) >> 2) & 0x7ffff */
RELOC_NUMBER (R_AARCH64_LD_PREL_LO19, 273)
 
/* ADR: (S+A-P) & 0x1fffff */
RELOC_NUMBER (R_AARCH64_ADR_PREL_LO21, 274)
 
/* ADRH: ((PG(S+A)-PG(P)) >> 12) & 0x1fffff */
RELOC_NUMBER (R_AARCH64_ADR_PREL_PG_HI21, 275)
 
/* ADRH: ((PG(S+A)-PG(P)) >> 12) & 0x1fffff */
RELOC_NUMBER (R_AARCH64_ADR_PREL_PG_HI21_NC, 276)
 
/* ADD: (S+A) & 0xfff */
RELOC_NUMBER (R_AARCH64_ADD_ABS_LO12_NC, 277)
 
/* LD/ST8: (S+A) & 0xfff */
RELOC_NUMBER (R_AARCH64_LDST8_ABS_LO12_NC, 278)
 
/* Relocations for control-flow instructions. */
 
/* TBZ/NZ: ((S+A-P) >> 2) & 0x3fff. */
RELOC_NUMBER (R_AARCH64_TSTBR14, 279)
 
/* B.cond: ((S+A-P) >> 2) & 0x7ffff. */
RELOC_NUMBER (R_AARCH64_CONDBR19, 280)
 
/* 281 unused */
 
/* B: ((S+A-P) >> 2) & 0x3ffffff. */
RELOC_NUMBER (R_AARCH64_JUMP26, 282)
 
/* BL: ((S+A-P) >> 2) & 0x3ffffff. */
RELOC_NUMBER (R_AARCH64_CALL26, 283)
 
/* LD/ST16: (S+A) & 0xffe */
RELOC_NUMBER (R_AARCH64_LDST16_ABS_LO12_NC, 284)
 
/* LD/ST32: (S+A) & 0xffc */
RELOC_NUMBER (R_AARCH64_LDST32_ABS_LO12_NC, 285)
 
/* LD/ST64: (S+A) & 0xff8 */
RELOC_NUMBER (R_AARCH64_LDST64_ABS_LO12_NC, 286)
 
/* LD/ST128: (S+A) & 0xff0 */
RELOC_NUMBER (R_AARCH64_LDST128_ABS_LO12_NC, 299)
 
RELOC_NUMBER (R_AARCH64_GOT_LD_PREL19, 309)
RELOC_NUMBER (R_AARCH64_ADR_GOT_PAGE, 311)
RELOC_NUMBER (R_AARCH64_LD64_GOT_LO12_NC, 312)
 
RELOC_NUMBER (R_AARCH64_TLSGD_ADR_PAGE21, 513)
RELOC_NUMBER (R_AARCH64_TLSGD_ADD_LO12_NC, 514)
RELOC_NUMBER (R_AARCH64_TLSIE_MOVW_GOTTPREL_G1, 539)
RELOC_NUMBER (R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC, 540)
RELOC_NUMBER (R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21, 541)
RELOC_NUMBER (R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC, 542)
RELOC_NUMBER (R_AARCH64_TLSIE_LD_GOTTPREL_PREL19, 543)
RELOC_NUMBER (R_AARCH64_TLSLE_MOVW_TPREL_G2, 544)
RELOC_NUMBER (R_AARCH64_TLSLE_MOVW_TPREL_G1, 545)
RELOC_NUMBER (R_AARCH64_TLSLE_MOVW_TPREL_G1_NC, 546)
RELOC_NUMBER (R_AARCH64_TLSLE_MOVW_TPREL_G0, 547)
RELOC_NUMBER (R_AARCH64_TLSLE_MOVW_TPREL_G0_NC, 548)
RELOC_NUMBER (R_AARCH64_TLSLE_ADD_TPREL_HI12, 549)
RELOC_NUMBER (R_AARCH64_TLSLE_ADD_TPREL_LO12, 550)
RELOC_NUMBER (R_AARCH64_TLSLE_ADD_TPREL_LO12_NC, 551)
 
RELOC_NUMBER (R_AARCH64_TLSDESC_LD_PREL19, 560)
RELOC_NUMBER (R_AARCH64_TLSDESC_ADR_PREL21, 561)
RELOC_NUMBER (R_AARCH64_TLSDESC_ADR_PAGE21, 562)
RELOC_NUMBER (R_AARCH64_TLSDESC_LD64_LO12_NC, 563)
RELOC_NUMBER (R_AARCH64_TLSDESC_ADD_LO12_NC, 564)
RELOC_NUMBER (R_AARCH64_TLSDESC_OFF_G1, 565)
RELOC_NUMBER (R_AARCH64_TLSDESC_OFF_G0_NC, 566)
RELOC_NUMBER (R_AARCH64_TLSDESC_LDR, 567)
RELOC_NUMBER (R_AARCH64_TLSDESC_ADD, 568)
RELOC_NUMBER (R_AARCH64_TLSDESC_CALL, 569)
 
/* Dynamic relocations */
 
/* Copy symbol at runtime. */
RELOC_NUMBER (R_AARCH64_COPY, 1024)
 
/* Create GOT entry. */
RELOC_NUMBER (R_AARCH64_GLOB_DAT, 1025)
 
/* Create PLT entry. */
RELOC_NUMBER (R_AARCH64_JUMP_SLOT, 1026)
 
/* Adjust by program base. */
RELOC_NUMBER (R_AARCH64_RELATIVE, 1027)
RELOC_NUMBER (R_AARCH64_TLS_DTPMOD64, 1028)
RELOC_NUMBER (R_AARCH64_TLS_DTPREL64, 1029)
RELOC_NUMBER (R_AARCH64_TLS_TPREL64, 1030)
/* Aliasing relocs are guarded by RELOC_MACROS_GEN_FUNC
so that readelf.c won't generate duplicated case
statements. */
#ifndef RELOC_MACROS_GEN_FUNC
RELOC_NUMBER (R_AARCH64_TLS_DTPMOD, 1028)
RELOC_NUMBER (R_AARCH64_TLS_DTPREL, 1029)
RELOC_NUMBER (R_AARCH64_TLS_TPREL, 1030)
#endif
RELOC_NUMBER (R_AARCH64_TLSDESC, 1031)
RELOC_NUMBER (R_AARCH64_IRELATIVE, 1032)
 
END_RELOC_NUMBERS (R_AARCH64_end)
 
#endif /* _ELF_AARCH64_H */
/contrib/toolchain/binutils/include/elf/alpha.h
0,0 → 1,131
/* ALPHA ELF support for BFD.
Copyright 1996, 1998, 2000, 2001, 2002, 2010 Free Software Foundation, Inc.
 
By Eric Youngdale, <eric@aib.com>. No processor supplement available
for this platform.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
/* This file holds definitions specific to the ALPHA ELF ABI. Note
that most of this is not actually implemented by BFD. */
 
#ifndef _ELF_ALPHA_H
#define _ELF_ALPHA_H
 
/* Processor specific flags for the ELF header e_flags field. */
 
/* All addresses must be below 2GB. */
#define EF_ALPHA_32BIT 0x00000001
 
/* All relocations needed for relaxation with code movement are present. */
#define EF_ALPHA_CANRELAX 0x00000002
 
/* Processor specific section flags. */
 
/* This section must be in the global data area. */
#define SHF_ALPHA_GPREL 0x10000000
 
/* Section contains some sort of debugging information. The exact
format is unspecified. It's probably ECOFF symbols. */
#define SHT_ALPHA_DEBUG 0x70000001
 
/* Section contains register usage information. */
#define SHT_ALPHA_REGINFO 0x70000002
 
/* A section of type SHT_MIPS_REGINFO contains the following
structure. */
typedef struct
{
/* Mask of general purpose registers used. */
unsigned long ri_gprmask;
/* Mask of co-processor registers used. */
unsigned long ri_cprmask[4];
/* GP register value for this object file. */
long ri_gp_value;
} Elf64_RegInfo;
 
/* Special values for the st_other field in the symbol table. */
 
#define STO_ALPHA_NOPV 0x80
#define STO_ALPHA_STD_GPLOAD 0x88
 
/* Special values for Elf64_Dyn tag. */
#define DT_ALPHA_PLTRO DT_LOPROC
 
#include "elf/reloc-macros.h"
 
/* Alpha relocs. */
START_RELOC_NUMBERS (elf_alpha_reloc_type)
RELOC_NUMBER (R_ALPHA_NONE, 0) /* No reloc */
RELOC_NUMBER (R_ALPHA_REFLONG, 1) /* Direct 32 bit */
RELOC_NUMBER (R_ALPHA_REFQUAD, 2) /* Direct 64 bit */
RELOC_NUMBER (R_ALPHA_GPREL32, 3) /* GP relative 32 bit */
RELOC_NUMBER (R_ALPHA_LITERAL, 4) /* GP relative 16 bit w/optimization */
RELOC_NUMBER (R_ALPHA_LITUSE, 5) /* Optimization hint for LITERAL */
RELOC_NUMBER (R_ALPHA_GPDISP, 6) /* Add displacement to GP */
RELOC_NUMBER (R_ALPHA_BRADDR, 7) /* PC+4 relative 23 bit shifted */
RELOC_NUMBER (R_ALPHA_HINT, 8) /* PC+4 relative 16 bit shifted */
RELOC_NUMBER (R_ALPHA_SREL16, 9) /* PC relative 16 bit */
RELOC_NUMBER (R_ALPHA_SREL32, 10) /* PC relative 32 bit */
RELOC_NUMBER (R_ALPHA_SREL64, 11) /* PC relative 64 bit */
 
/* Skip 12 - 16; deprecated ECOFF relocs. */
 
RELOC_NUMBER (R_ALPHA_GPRELHIGH, 17) /* GP relative 32 bit, high 16 bits */
RELOC_NUMBER (R_ALPHA_GPRELLOW, 18) /* GP relative 32 bit, low 16 bits */
RELOC_NUMBER (R_ALPHA_GPREL16, 19) /* GP relative 16 bit */
 
/* Skip 20 - 23; deprecated ECOFF relocs. */
 
/* These relocations are specific to shared libraries. */
RELOC_NUMBER (R_ALPHA_COPY, 24) /* Copy symbol at runtime */
RELOC_NUMBER (R_ALPHA_GLOB_DAT, 25) /* Create GOT entry */
RELOC_NUMBER (R_ALPHA_JMP_SLOT, 26) /* Create PLT entry */
RELOC_NUMBER (R_ALPHA_RELATIVE, 27) /* Adjust by program base */
 
/* Like BRADDR, but assert that the source and target object file
share the same GP value, and adjust the target address for
STO_ALPHA_STD_GPLOAD. */
RELOC_NUMBER (R_ALPHA_BRSGP, 28)
 
/* Thread-Local Storage. */
RELOC_NUMBER (R_ALPHA_TLSGD, 29)
RELOC_NUMBER (R_ALPHA_TLSLDM, 30)
RELOC_NUMBER (R_ALPHA_DTPMOD64, 31)
RELOC_NUMBER (R_ALPHA_GOTDTPREL, 32)
RELOC_NUMBER (R_ALPHA_DTPREL64, 33)
RELOC_NUMBER (R_ALPHA_DTPRELHI, 34)
RELOC_NUMBER (R_ALPHA_DTPRELLO, 35)
RELOC_NUMBER (R_ALPHA_DTPREL16, 36)
RELOC_NUMBER (R_ALPHA_GOTTPREL, 37)
RELOC_NUMBER (R_ALPHA_TPREL64, 38)
RELOC_NUMBER (R_ALPHA_TPRELHI, 39)
RELOC_NUMBER (R_ALPHA_TPRELLO, 40)
RELOC_NUMBER (R_ALPHA_TPREL16, 41)
 
END_RELOC_NUMBERS (R_ALPHA_max)
 
#define LITUSE_ALPHA_ADDR 0
#define LITUSE_ALPHA_BASE 1
#define LITUSE_ALPHA_BYTOFF 2
#define LITUSE_ALPHA_JSR 3
#define LITUSE_ALPHA_TLSGD 4
#define LITUSE_ALPHA_TLSLDM 5
#define LITUSE_ALPHA_JSRDIRECT 6
 
#endif /* _ELF_ALPHA_H */
/contrib/toolchain/binutils/include/elf/arc.h
0,0 → 1,57
/* ARC ELF support for BFD.
Copyright 1995, 1997, 1998, 2000, 2001, 2010 Free Software Foundation, Inc.
Contributed by Doug Evans, (dje@cygnus.com)
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
/* This file holds definitions specific to the ARC ELF ABI. */
 
#ifndef _ELF_ARC_H
#define _ELF_ARC_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
 
START_RELOC_NUMBERS (elf_arc_reloc_type)
RELOC_NUMBER (R_ARC_NONE, 0)
RELOC_NUMBER (R_ARC_32, 1)
RELOC_NUMBER (R_ARC_B26, 2)
RELOC_NUMBER (R_ARC_B22_PCREL, 3)
END_RELOC_NUMBERS (R_ARC_max)
 
/* Processor specific flags for the ELF header e_flags field. */
 
/* Four bit ARC machine type field. */
 
#define EF_ARC_MACH 0x0000000f
 
/* Various CPU types. */
 
#define E_ARC_MACH_ARC5 0
#define E_ARC_MACH_ARC6 1
#define E_ARC_MACH_ARC7 2
#define E_ARC_MACH_ARC8 3
 
/* Leave bits 0xf0 alone in case we ever have more than 16 cpu types. */
 
/* File contains position independent code. */
 
#define EF_ARC_PIC 0x00000100
 
#endif /* _ELF_ARC_H */
/contrib/toolchain/binutils/include/elf/arm.h
0,0 → 1,344
/* ARM ELF support for BFD.
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2009, 2010
Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_ARM_H
#define _ELF_ARM_H
 
#include "elf/reloc-macros.h"
 
/* Processor specific flags for the ELF header e_flags field. */
#define EF_ARM_RELEXEC 0x01
#define EF_ARM_HASENTRY 0x02
#define EF_ARM_INTERWORK 0x04
#define EF_ARM_APCS_26 0x08
#define EF_ARM_APCS_FLOAT 0x10
#define EF_ARM_PIC 0x20
#define EF_ARM_ALIGN8 0x40 /* 8-bit structure alignment is in use. */
#define EF_ARM_NEW_ABI 0x80
#define EF_ARM_OLD_ABI 0x100
#define EF_ARM_SOFT_FLOAT 0x200
#define EF_ARM_VFP_FLOAT 0x400
#define EF_ARM_MAVERICK_FLOAT 0x800
 
/* Frame unwind information */
#define PT_ARM_EXIDX (PT_LOPROC + 1)
 
/* Other constants defined in the ARM ELF spec. version B-01. */
#define EF_ARM_SYMSARESORTED 0x04 /* NB conflicts with EF_INTERWORK. */
#define EF_ARM_DYNSYMSUSESEGIDX 0x08 /* NB conflicts with EF_APCS26. */
#define EF_ARM_MAPSYMSFIRST 0x10 /* NB conflicts with EF_APCS_FLOAT. */
#define EF_ARM_EABIMASK 0xFF000000
 
/* New constants defined in the ARM ELF spec. version XXX.
Only valid in conjunction with EF_ARM_EABI_VER5. */
#define EF_ARM_ABI_FLOAT_SOFT 0x200 /* NB conflicts with EF_ARM_SOFT_FLOAT. */
#define EF_ARM_ABI_FLOAT_HARD 0x400 /* NB conflicts with EF_ARM_VFP_FLOAT. */
 
/* Constants defined in AAELF. */
#define EF_ARM_BE8 0x00800000
#define EF_ARM_LE8 0x00400000
 
#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK)
#define EF_ARM_EABI_UNKNOWN 0x00000000
#define EF_ARM_EABI_VER1 0x01000000
#define EF_ARM_EABI_VER2 0x02000000
#define EF_ARM_EABI_VER3 0x03000000
#define EF_ARM_EABI_VER4 0x04000000
#define EF_ARM_EABI_VER5 0x05000000
 
/* Local aliases for some flags to match names used by COFF port. */
#define F_INTERWORK EF_ARM_INTERWORK
#define F_APCS26 EF_ARM_APCS_26
#define F_APCS_FLOAT EF_ARM_APCS_FLOAT
#define F_PIC EF_ARM_PIC
#define F_SOFT_FLOAT EF_ARM_SOFT_FLOAT
#define F_VFP_FLOAT EF_ARM_VFP_FLOAT
 
/* Additional symbol types for Thumb. */
#define STT_ARM_TFUNC STT_LOPROC /* A Thumb function. */
#define STT_ARM_16BIT STT_HIPROC /* A Thumb label. */
 
/* Additional section types. */
#define SHT_ARM_EXIDX 0x70000001 /* Section holds ARM unwind info. */
#define SHT_ARM_PREEMPTMAP 0x70000002 /* Section pre-emption details. */
#define SHT_ARM_ATTRIBUTES 0x70000003 /* Section holds attributes. */
#define SHT_ARM_DEBUGOVERLAY 0x70000004 /* Section holds overlay debug info. */
#define SHT_ARM_OVERLAYSECTION 0x70000005 /* Section holds GDB and overlay integration info. */
 
/* ARM-specific values for sh_flags. */
#define SHF_ENTRYSECT 0x10000000 /* Section contains an entry point. */
#define SHF_COMDEF 0x80000000 /* Section may be multiply defined in the input to a link step. */
 
/* ARM-specific program header flags. */
#define PF_ARM_SB 0x10000000 /* Segment contains the location addressed by the static base. */
#define PF_ARM_PI 0x20000000 /* Segment is position-independent. */
#define PF_ARM_ABS 0x40000000 /* Segment must be loaded at its base address. */
 
/* Values for the Tag_CPU_arch EABI attribute. */
#define TAG_CPU_ARCH_PRE_V4 0
#define TAG_CPU_ARCH_V4 1
#define TAG_CPU_ARCH_V4T 2
#define TAG_CPU_ARCH_V5T 3
#define TAG_CPU_ARCH_V5TE 4
#define TAG_CPU_ARCH_V5TEJ 5
#define TAG_CPU_ARCH_V6 6
#define TAG_CPU_ARCH_V6KZ 7
#define TAG_CPU_ARCH_V6T2 8
#define TAG_CPU_ARCH_V6K 9
#define TAG_CPU_ARCH_V7 10
#define TAG_CPU_ARCH_V6_M 11
#define TAG_CPU_ARCH_V6S_M 12
#define TAG_CPU_ARCH_V7E_M 13
#define TAG_CPU_ARCH_V8 14
#define MAX_TAG_CPU_ARCH 14
/* Pseudo-architecture to allow objects to be compatible with the subset of
armv4t and armv6-m. This value should never be stored in object files. */
#define TAG_CPU_ARCH_V4T_PLUS_V6_M (MAX_TAG_CPU_ARCH + 1)
 
/* Relocation types. */
 
START_RELOC_NUMBERS (elf_arm_reloc_type)
/* AAELF official names and numbers. */
RELOC_NUMBER (R_ARM_NONE, 0)
RELOC_NUMBER (R_ARM_PC24, 1) /* deprecated */
RELOC_NUMBER (R_ARM_ABS32, 2)
RELOC_NUMBER (R_ARM_REL32, 3)
RELOC_NUMBER (R_ARM_LDR_PC_G0, 4)
RELOC_NUMBER (R_ARM_ABS16, 5)
RELOC_NUMBER (R_ARM_ABS12, 6)
RELOC_NUMBER (R_ARM_THM_ABS5, 7)
RELOC_NUMBER (R_ARM_ABS8, 8)
RELOC_NUMBER (R_ARM_SBREL32, 9)
RELOC_NUMBER (R_ARM_THM_CALL, 10)
RELOC_NUMBER (R_ARM_THM_PC8, 11)
RELOC_NUMBER (R_ARM_BREL_ADJ, 12)
RELOC_NUMBER (R_ARM_TLS_DESC, 13)
RELOC_NUMBER (R_ARM_THM_SWI8, 14) /* obsolete */
RELOC_NUMBER (R_ARM_XPC25, 15) /* obsolete */
RELOC_NUMBER (R_ARM_THM_XPC22, 16) /* obsolete */
RELOC_NUMBER (R_ARM_TLS_DTPMOD32, 17)
RELOC_NUMBER (R_ARM_TLS_DTPOFF32, 18)
RELOC_NUMBER (R_ARM_TLS_TPOFF32, 19)
RELOC_NUMBER (R_ARM_COPY, 20) /* Copy symbol at runtime. */
RELOC_NUMBER (R_ARM_GLOB_DAT, 21) /* Create GOT entry. */
RELOC_NUMBER (R_ARM_JUMP_SLOT, 22) /* Create PLT entry. */
RELOC_NUMBER (R_ARM_RELATIVE, 23) /* Adjust by program base. */
RELOC_NUMBER (R_ARM_GOTOFF32, 24) /* 32 bit offset to GOT. */
RELOC_NUMBER (R_ARM_BASE_PREL, 25) /* 32 bit PC relative offset to GOT. */
RELOC_NUMBER (R_ARM_GOT_BREL, 26) /* 32 bit GOT entry. */
RELOC_NUMBER (R_ARM_PLT32, 27) /* deprecated - 32 bit PLT address. */
RELOC_NUMBER (R_ARM_CALL, 28)
RELOC_NUMBER (R_ARM_JUMP24, 29)
RELOC_NUMBER (R_ARM_THM_JUMP24, 30)
RELOC_NUMBER (R_ARM_BASE_ABS, 31)
RELOC_NUMBER (R_ARM_ALU_PCREL7_0, 32) /* obsolete */
RELOC_NUMBER (R_ARM_ALU_PCREL15_8, 33) /* obsolete */
RELOC_NUMBER (R_ARM_ALU_PCREL23_15, 34) /* obsolete */
RELOC_NUMBER (R_ARM_LDR_SBREL_11_0, 35) /* deprecated, should have _NC suffix */
RELOC_NUMBER (R_ARM_ALU_SBREL_19_12, 36) /* deprecated, should have _NC suffix */
RELOC_NUMBER (R_ARM_ALU_SBREL_27_20, 37) /* deprecated, should have _CK suffix */
RELOC_NUMBER (R_ARM_TARGET1, 38)
RELOC_NUMBER (R_ARM_SBREL31, 39) /* deprecated */
RELOC_NUMBER (R_ARM_V4BX, 40)
RELOC_NUMBER (R_ARM_TARGET2, 41)
RELOC_NUMBER (R_ARM_PREL31, 42)
RELOC_NUMBER (R_ARM_MOVW_ABS_NC, 43)
RELOC_NUMBER (R_ARM_MOVT_ABS, 44)
RELOC_NUMBER (R_ARM_MOVW_PREL_NC, 45)
RELOC_NUMBER (R_ARM_MOVT_PREL, 46)
RELOC_NUMBER (R_ARM_THM_MOVW_ABS_NC, 47)
RELOC_NUMBER (R_ARM_THM_MOVT_ABS, 48)
RELOC_NUMBER (R_ARM_THM_MOVW_PREL_NC, 49)
RELOC_NUMBER (R_ARM_THM_MOVT_PREL, 50)
RELOC_NUMBER (R_ARM_THM_JUMP19, 51)
RELOC_NUMBER (R_ARM_THM_JUMP6, 52)
RELOC_NUMBER (R_ARM_THM_ALU_PREL_11_0, 53)
RELOC_NUMBER (R_ARM_THM_PC12, 54)
RELOC_NUMBER (R_ARM_ABS32_NOI, 55)
RELOC_NUMBER (R_ARM_REL32_NOI, 56)
RELOC_NUMBER (R_ARM_ALU_PC_G0_NC, 57)
RELOC_NUMBER (R_ARM_ALU_PC_G0, 58)
RELOC_NUMBER (R_ARM_ALU_PC_G1_NC, 59)
RELOC_NUMBER (R_ARM_ALU_PC_G1, 60)
RELOC_NUMBER (R_ARM_ALU_PC_G2, 61)
RELOC_NUMBER (R_ARM_LDR_PC_G1, 62)
RELOC_NUMBER (R_ARM_LDR_PC_G2, 63)
RELOC_NUMBER (R_ARM_LDRS_PC_G0, 64)
RELOC_NUMBER (R_ARM_LDRS_PC_G1, 65)
RELOC_NUMBER (R_ARM_LDRS_PC_G2, 66)
RELOC_NUMBER (R_ARM_LDC_PC_G0, 67)
RELOC_NUMBER (R_ARM_LDC_PC_G1, 68)
RELOC_NUMBER (R_ARM_LDC_PC_G2, 69)
RELOC_NUMBER (R_ARM_ALU_SB_G0_NC, 70)
RELOC_NUMBER (R_ARM_ALU_SB_G0, 71)
RELOC_NUMBER (R_ARM_ALU_SB_G1_NC, 72)
RELOC_NUMBER (R_ARM_ALU_SB_G1, 73)
RELOC_NUMBER (R_ARM_ALU_SB_G2, 74)
RELOC_NUMBER (R_ARM_LDR_SB_G0, 75)
RELOC_NUMBER (R_ARM_LDR_SB_G1, 76)
RELOC_NUMBER (R_ARM_LDR_SB_G2, 77)
RELOC_NUMBER (R_ARM_LDRS_SB_G0, 78)
RELOC_NUMBER (R_ARM_LDRS_SB_G1, 79)
RELOC_NUMBER (R_ARM_LDRS_SB_G2, 80)
RELOC_NUMBER (R_ARM_LDC_SB_G0, 81)
RELOC_NUMBER (R_ARM_LDC_SB_G1, 82)
RELOC_NUMBER (R_ARM_LDC_SB_G2, 83)
RELOC_NUMBER (R_ARM_MOVW_BREL_NC, 84)
RELOC_NUMBER (R_ARM_MOVT_BREL, 85)
RELOC_NUMBER (R_ARM_MOVW_BREL, 86)
RELOC_NUMBER (R_ARM_THM_MOVW_BREL_NC, 87)
RELOC_NUMBER (R_ARM_THM_MOVT_BREL, 88)
RELOC_NUMBER (R_ARM_THM_MOVW_BREL, 89)
RELOC_NUMBER (R_ARM_TLS_GOTDESC, 90)
RELOC_NUMBER (R_ARM_TLS_CALL, 91)
RELOC_NUMBER (R_ARM_TLS_DESCSEQ, 92)
RELOC_NUMBER (R_ARM_THM_TLS_CALL, 93)
RELOC_NUMBER (R_ARM_PLT32_ABS, 94)
RELOC_NUMBER (R_ARM_GOT_ABS, 95)
RELOC_NUMBER (R_ARM_GOT_PREL, 96)
RELOC_NUMBER (R_ARM_GOT_BREL12, 97)
RELOC_NUMBER (R_ARM_GOTOFF12, 98)
RELOC_NUMBER (R_ARM_GOTRELAX, 99)
RELOC_NUMBER (R_ARM_GNU_VTENTRY, 100) /* deprecated - old C++ abi */
RELOC_NUMBER (R_ARM_GNU_VTINHERIT, 101) /* deprecated - old C++ abi */
RELOC_NUMBER (R_ARM_THM_JUMP11, 102)
RELOC_NUMBER (R_ARM_THM_JUMP8, 103)
RELOC_NUMBER (R_ARM_TLS_GD32, 104)
RELOC_NUMBER (R_ARM_TLS_LDM32, 105)
RELOC_NUMBER (R_ARM_TLS_LDO32, 106)
RELOC_NUMBER (R_ARM_TLS_IE32, 107)
RELOC_NUMBER (R_ARM_TLS_LE32, 108)
RELOC_NUMBER (R_ARM_TLS_LDO12, 109)
RELOC_NUMBER (R_ARM_TLS_LE12, 110)
RELOC_NUMBER (R_ARM_TLS_IE12GP, 111)
/* 112 - 127 private range */
RELOC_NUMBER (R_ARM_ME_TOO, 128) /* obsolete */
RELOC_NUMBER (R_ARM_THM_TLS_DESCSEQ ,129)
 
RELOC_NUMBER (R_ARM_IRELATIVE, 160)
 
/* Extensions? R=read-only? */
RELOC_NUMBER (R_ARM_RXPC25, 249)
RELOC_NUMBER (R_ARM_RSBREL32, 250)
RELOC_NUMBER (R_ARM_THM_RPC22, 251)
RELOC_NUMBER (R_ARM_RREL32, 252)
RELOC_NUMBER (R_ARM_RABS32, 253)
RELOC_NUMBER (R_ARM_RPC24, 254)
RELOC_NUMBER (R_ARM_RBASE, 255)
 
/* Unofficial names for some of the relocs. */
FAKE_RELOC (R_ARM_GOTOFF, R_ARM_GOTOFF32) /* 32 bit offset to GOT. */
FAKE_RELOC (R_ARM_THM_PC22, R_ARM_THM_CALL)
FAKE_RELOC (R_ARM_THM_PC11, R_ARM_THM_JUMP11)
FAKE_RELOC (R_ARM_THM_PC9, R_ARM_THM_JUMP8)
 
/* Relocs with both a different name, and (apparently) different meaning in
GNU usage. */
FAKE_RELOC (R_ARM_GOTPC, R_ARM_BASE_PREL) /* 32 bit PC relative offset to GOT. */
FAKE_RELOC (R_ARM_GOT32, R_ARM_GOT_BREL) /* 32 bit GOT entry. */
FAKE_RELOC (R_ARM_ROSEGREL32, R_ARM_SBREL31) /* ??? */
FAKE_RELOC (R_ARM_AMP_VCALL9, R_ARM_BREL_ADJ) /* Thumb-something. Not used. */
 
END_RELOC_NUMBERS (R_ARM_max = 256)
 
#ifdef BFD_ARCH_SIZE
/* EABI object attributes. */
 
enum
{
/* 0-3 are generic. */
Tag_CPU_raw_name = 4,
Tag_CPU_name,
Tag_CPU_arch,
Tag_CPU_arch_profile,
Tag_ARM_ISA_use,
Tag_THUMB_ISA_use,
Tag_FP_arch,
Tag_WMMX_arch,
Tag_Advanced_SIMD_arch,
Tag_PCS_config,
Tag_ABI_PCS_R9_use,
Tag_ABI_PCS_RW_data,
Tag_ABI_PCS_RO_data,
Tag_ABI_PCS_GOT_use,
Tag_ABI_PCS_wchar_t,
Tag_ABI_FP_rounding,
Tag_ABI_FP_denormal,
Tag_ABI_FP_exceptions,
Tag_ABI_FP_user_exceptions,
Tag_ABI_FP_number_model,
Tag_ABI_align_needed,
Tag_ABI_align_preserved,
Tag_ABI_enum_size,
Tag_ABI_HardFP_use,
Tag_ABI_VFP_args,
Tag_ABI_WMMX_args,
Tag_ABI_optimization_goals,
Tag_ABI_FP_optimization_goals,
/* 32 is generic (Tag_compatibility). */
Tag_undefined33 = 33,
Tag_CPU_unaligned_access,
Tag_undefined35,
Tag_FP_HP_extension,
Tag_undefined37,
Tag_ABI_FP_16bit_format,
Tag_undefined39,
Tag_undefined40,
Tag_undefined41,
Tag_MPextension_use,
Tag_undefined_43,
Tag_DIV_use,
Tag_nodefaults = 64,
Tag_also_compatible_with,
Tag_T2EE_use,
Tag_conformance,
Tag_Virtualization_use,
Tag_undefined69,
Tag_MPextension_use_legacy,
 
/* The following tags are legacy names for other tags. */
Tag_VFP_arch = Tag_FP_arch,
Tag_ABI_align8_needed = Tag_ABI_align_needed,
Tag_ABI_align8_preserved = Tag_ABI_align_preserved,
Tag_VFP_HP_extension = Tag_FP_HP_extension
};
 
#endif
 
/* The name of the note section used to identify arm variants. */
#define ARM_NOTE_SECTION ".note.gnu.arm.ident"
 
/* Special section names. */
#define ELF_STRING_ARM_unwind ".ARM.exidx"
#define ELF_STRING_ARM_unwind_info ".ARM.extab"
#define ELF_STRING_ARM_unwind_once ".gnu.linkonce.armexidx."
#define ELF_STRING_ARM_unwind_info_once ".gnu.linkonce.armextab."
 
enum arm_st_branch_type {
ST_BRANCH_TO_ARM,
ST_BRANCH_TO_THUMB,
ST_BRANCH_LONG,
ST_BRANCH_UNKNOWN
};
 
#define ARM_SYM_BRANCH_TYPE(SYM) \
((enum arm_st_branch_type) (SYM)->st_target_internal)
 
#endif /* _ELF_ARM_H */
/contrib/toolchain/binutils/include/elf/avr.h
0,0 → 1,86
/* AVR ELF support for BFD.
Copyright 1999, 2000, 2004, 2006, 2010, 2012
Free Software Foundation, Inc.
Contributed by Denis Chertykov <denisc@overta.ru>
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_AVR_H
#define _ELF_AVR_H
 
#include "elf/reloc-macros.h"
 
/* Processor specific flags for the ELF header e_flags field. */
#define EF_AVR_MACH 0x7F
 
/* If bit #7 is set, it is assumed that the elf file uses local symbols
as reference for the relocations so that linker relaxation is possible. */
#define EF_AVR_LINKRELAX_PREPARED 0x80
 
#define E_AVR_MACH_AVR1 1
#define E_AVR_MACH_AVR2 2
#define E_AVR_MACH_AVR25 25
#define E_AVR_MACH_AVR3 3
#define E_AVR_MACH_AVR31 31
#define E_AVR_MACH_AVR35 35
#define E_AVR_MACH_AVR4 4
#define E_AVR_MACH_AVR5 5
#define E_AVR_MACH_AVR51 51
#define E_AVR_MACH_AVR6 6
#define E_AVR_MACH_XMEGA1 101
#define E_AVR_MACH_XMEGA2 102
#define E_AVR_MACH_XMEGA3 103
#define E_AVR_MACH_XMEGA4 104
#define E_AVR_MACH_XMEGA5 105
#define E_AVR_MACH_XMEGA6 106
#define E_AVR_MACH_XMEGA7 107
 
/* Relocations. */
START_RELOC_NUMBERS (elf_avr_reloc_type)
RELOC_NUMBER (R_AVR_NONE, 0)
RELOC_NUMBER (R_AVR_32, 1)
RELOC_NUMBER (R_AVR_7_PCREL, 2)
RELOC_NUMBER (R_AVR_13_PCREL, 3)
RELOC_NUMBER (R_AVR_16, 4)
RELOC_NUMBER (R_AVR_16_PM, 5)
RELOC_NUMBER (R_AVR_LO8_LDI, 6)
RELOC_NUMBER (R_AVR_HI8_LDI, 7)
RELOC_NUMBER (R_AVR_HH8_LDI, 8)
RELOC_NUMBER (R_AVR_LO8_LDI_NEG, 9)
RELOC_NUMBER (R_AVR_HI8_LDI_NEG, 10)
RELOC_NUMBER (R_AVR_HH8_LDI_NEG, 11)
RELOC_NUMBER (R_AVR_LO8_LDI_PM, 12)
RELOC_NUMBER (R_AVR_HI8_LDI_PM, 13)
RELOC_NUMBER (R_AVR_HH8_LDI_PM, 14)
RELOC_NUMBER (R_AVR_LO8_LDI_PM_NEG, 15)
RELOC_NUMBER (R_AVR_HI8_LDI_PM_NEG, 16)
RELOC_NUMBER (R_AVR_HH8_LDI_PM_NEG, 17)
RELOC_NUMBER (R_AVR_CALL, 18)
RELOC_NUMBER (R_AVR_LDI, 19)
RELOC_NUMBER (R_AVR_6, 20)
RELOC_NUMBER (R_AVR_6_ADIW, 21)
RELOC_NUMBER (R_AVR_MS8_LDI, 22)
RELOC_NUMBER (R_AVR_MS8_LDI_NEG, 23)
RELOC_NUMBER (R_AVR_LO8_LDI_GS, 24)
RELOC_NUMBER (R_AVR_HI8_LDI_GS, 25)
RELOC_NUMBER (R_AVR_8, 26)
RELOC_NUMBER (R_AVR_8_LO8, 27)
RELOC_NUMBER (R_AVR_8_HI8, 28)
RELOC_NUMBER (R_AVR_8_HLO8, 29)
END_RELOC_NUMBERS (R_AVR_max)
 
#endif /* _ELF_AVR_H */
/contrib/toolchain/binutils/include/elf/bfin.h
0,0 → 1,95
/* Blackfin ELF support for BFD.
Copyright (C) 2005, 2006, 2009, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_BFIN_H
#define _ELF_BFIN_H
 
#include "elf/reloc-macros.h"
 
START_RELOC_NUMBERS (elf_bfin_reloc_type)
RELOC_NUMBER (R_BFIN_UNUSED0, 0x00) /* relocation type 0 is not defined */
RELOC_NUMBER (R_BFIN_PCREL5M2, 0x01) /* LSETUP part a */
RELOC_NUMBER (R_BFIN_UNUSED1, 0x02) /* relocation type 2 is not defined */
RELOC_NUMBER (R_BFIN_PCREL10, 0x03) /* type 3, 0x00) if cc jump <target> */
RELOC_NUMBER (R_BFIN_PCREL12_JUMP, 0x04) /* type 4, 0x00) jump <target> */
RELOC_NUMBER (R_BFIN_RIMM16, 0x05) /* type 0x5, 0x00) rN = <target> */
RELOC_NUMBER (R_BFIN_LUIMM16, 0x06) /* # 0x6, 0x00) preg.l=<target> Load imm 16 to lower half */
RELOC_NUMBER (R_BFIN_HUIMM16, 0x07) /* # 0x7, 0x00) preg.h=<target> Load imm 16 to upper half */
RELOC_NUMBER (R_BFIN_PCREL12_JUMP_S, 0x08) /* # 0x8 jump.s <target> */
RELOC_NUMBER (R_BFIN_PCREL24_JUMP_X, 0x09) /* # 0x9 jump.x <target> */
RELOC_NUMBER (R_BFIN_PCREL24, 0x0a) /* # 0xa call <target> , 0x00) not expandable */
RELOC_NUMBER (R_BFIN_UNUSEDB, 0x0b) /* # 0xb not generated */
RELOC_NUMBER (R_BFIN_UNUSEDC, 0x0c) /* # 0xc not used */
RELOC_NUMBER (R_BFIN_PCREL24_JUMP_L, 0x0d) /* 0xd jump.l <target> */
RELOC_NUMBER (R_BFIN_PCREL24_CALL_X, 0x0e) /* 0xE, 0x00) call.x <target> if <target> is above 24 bit limit call through P1 */
RELOC_NUMBER (R_BFIN_VAR_EQ_SYMB, 0x0f) /* 0xf, 0x00) linker should treat it same as 0x12 */
RELOC_NUMBER (R_BFIN_BYTE_DATA, 0x10) /* 0x10, 0x00) .byte var = symbol */
RELOC_NUMBER (R_BFIN_BYTE2_DATA, 0x11) /* 0x11, 0x00) .byte2 var = symbol */
RELOC_NUMBER (R_BFIN_BYTE4_DATA, 0x12) /* 0x12, 0x00) .byte4 var = symbol and .var var=symbol */
RELOC_NUMBER (R_BFIN_PCREL11, 0x13) /* 0x13, 0x00) lsetup part b */
RELOC_NUMBER (R_BFIN_GOT17M4, 0x14)
RELOC_NUMBER (R_BFIN_GOTHI, 0x15)
RELOC_NUMBER (R_BFIN_GOTLO, 0x16)
RELOC_NUMBER (R_BFIN_FUNCDESC, 0x17)
RELOC_NUMBER (R_BFIN_FUNCDESC_GOT17M4, 0x18)
RELOC_NUMBER (R_BFIN_FUNCDESC_GOTHI, 0x19)
RELOC_NUMBER (R_BFIN_FUNCDESC_GOTLO, 0x1a)
RELOC_NUMBER (R_BFIN_FUNCDESC_VALUE, 0x1b)
RELOC_NUMBER (R_BFIN_FUNCDESC_GOTOFF17M4, 0x1c)
RELOC_NUMBER (R_BFIN_FUNCDESC_GOTOFFHI, 0x1d)
RELOC_NUMBER (R_BFIN_FUNCDESC_GOTOFFLO, 0x1e)
RELOC_NUMBER (R_BFIN_GOTOFF17M4, 0x1f)
RELOC_NUMBER (R_BFIN_GOTOFFHI, 0x20)
RELOC_NUMBER (R_BFIN_GOTOFFLO, 0x21)
 
RELOC_NUMBER (R_BFIN_PUSH, 0xE0)
RELOC_NUMBER (R_BFIN_CONST, 0xE1)
RELOC_NUMBER (R_BFIN_ADD, 0xE2)
RELOC_NUMBER (R_BFIN_SUB, 0xE3)
RELOC_NUMBER (R_BFIN_MULT, 0xE4)
RELOC_NUMBER (R_BFIN_DIV, 0xE5)
RELOC_NUMBER (R_BFIN_MOD, 0xE6)
RELOC_NUMBER (R_BFIN_LSHIFT, 0xE7)
RELOC_NUMBER (R_BFIN_RSHIFT, 0xE8)
RELOC_NUMBER (R_BFIN_AND, 0xE9)
RELOC_NUMBER (R_BFIN_OR, 0xEA)
RELOC_NUMBER (R_BFIN_XOR, 0xEB)
RELOC_NUMBER (R_BFIN_LAND, 0xEC)
RELOC_NUMBER (R_BFIN_LOR, 0xED)
RELOC_NUMBER (R_BFIN_LEN, 0xEE)
RELOC_NUMBER (R_BFIN_NEG, 0xEF)
RELOC_NUMBER (R_BFIN_COMP, 0xF0)
RELOC_NUMBER (R_BFIN_PAGE, 0xF1)
RELOC_NUMBER (R_BFIN_HWPAGE, 0xF2)
RELOC_NUMBER (R_BFIN_ADDR, 0xF3)
RELOC_NUMBER (R_BFIN_PLTPC, 0x40) /* PLT gnu only relocation */
RELOC_NUMBER (R_BFIN_GOT, 0x41) /* GOT gnu only relocation */
RELOC_NUMBER (R_BFIN_GNU_VTINHERIT, 0x42) /* C++, gnu only */
RELOC_NUMBER (R_BFIN_GNU_VTENTRY, 0x43) /* C++, gnu only */
END_RELOC_NUMBERS (R_BFIN_max)
 
/* Processor specific flags for the ELF header e_flags field. */
#define EF_BFIN_PIC 0x00000001 /* -fpic */
#define EF_BFIN_FDPIC 0x00000002 /* -mfdpic */
 
#define EF_BFIN_CODE_IN_L1 0x00000010 /* --code-in-l1 */
#define EF_BFIN_DATA_IN_L1 0x00000020 /* --data-in-l1 */
 
#define EF_BFIN_PIC_FLAGS (EF_BFIN_PIC | EF_BFIN_FDPIC)
#endif /* _ELF_BFIN_H */
/contrib/toolchain/binutils/include/elf/common.h
0,0 → 1,1001
/* ELF support for BFD.
Copyright 1991-2013 Free Software Foundation, Inc.
 
Written by Fred Fish @ Cygnus Support, from information published
in "UNIX System V Release 4, Programmers Guide: ANSI C and
Programming Support Tools".
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
/* This file is part of ELF support for BFD, and contains the portions
that are common to both the internal and external representations.
For example, ELFMAG0 is the byte 0x7F in both the internal (in-memory)
and external (in-file) representations. */
 
#ifndef _ELF_COMMON_H
#define _ELF_COMMON_H
 
/* Fields in e_ident[]. */
 
#define EI_MAG0 0 /* File identification byte 0 index */
#define ELFMAG0 0x7F /* Magic number byte 0 */
 
#define EI_MAG1 1 /* File identification byte 1 index */
#define ELFMAG1 'E' /* Magic number byte 1 */
 
#define EI_MAG2 2 /* File identification byte 2 index */
#define ELFMAG2 'L' /* Magic number byte 2 */
 
#define EI_MAG3 3 /* File identification byte 3 index */
#define ELFMAG3 'F' /* Magic number byte 3 */
 
#define EI_CLASS 4 /* File class */
#define ELFCLASSNONE 0 /* Invalid class */
#define ELFCLASS32 1 /* 32-bit objects */
#define ELFCLASS64 2 /* 64-bit objects */
 
#define EI_DATA 5 /* Data encoding */
#define ELFDATANONE 0 /* Invalid data encoding */
#define ELFDATA2LSB 1 /* 2's complement, little endian */
#define ELFDATA2MSB 2 /* 2's complement, big endian */
 
#define EI_VERSION 6 /* File version */
 
#define EI_OSABI 7 /* Operating System/ABI indication */
#define ELFOSABI_NONE 0 /* UNIX System V ABI */
#define ELFOSABI_HPUX 1 /* HP-UX operating system */
#define ELFOSABI_NETBSD 2 /* NetBSD */
#define ELFOSABI_GNU 3 /* GNU */
#define ELFOSABI_LINUX 3 /* Alias for ELFOSABI_GNU */
#define ELFOSABI_SOLARIS 6 /* Solaris */
#define ELFOSABI_AIX 7 /* AIX */
#define ELFOSABI_IRIX 8 /* IRIX */
#define ELFOSABI_FREEBSD 9 /* FreeBSD */
#define ELFOSABI_TRU64 10 /* TRU64 UNIX */
#define ELFOSABI_MODESTO 11 /* Novell Modesto */
#define ELFOSABI_OPENBSD 12 /* OpenBSD */
#define ELFOSABI_OPENVMS 13 /* OpenVMS */
#define ELFOSABI_NSK 14 /* Hewlett-Packard Non-Stop Kernel */
#define ELFOSABI_AROS 15 /* AROS */
#define ELFOSABI_FENIXOS 16 /* FenixOS */
#define ELFOSABI_C6000_ELFABI 64 /* Bare-metal TMS320C6000 */
#define ELFOSABI_C6000_LINUX 65 /* Linux TMS320C6000 */
#define ELFOSABI_ARM 97 /* ARM */
#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */
 
#define EI_ABIVERSION 8 /* ABI version */
 
#define EI_PAD 9 /* Start of padding bytes */
 
 
/* Values for e_type, which identifies the object file type. */
 
#define ET_NONE 0 /* No file type */
#define ET_REL 1 /* Relocatable file */
#define ET_EXEC 2 /* Executable file */
#define ET_DYN 3 /* Shared object file */
#define ET_CORE 4 /* Core file */
#define ET_LOOS 0xFE00 /* Operating system-specific */
#define ET_HIOS 0xFEFF /* Operating system-specific */
#define ET_LOPROC 0xFF00 /* Processor-specific */
#define ET_HIPROC 0xFFFF /* Processor-specific */
 
/* Values for e_machine, which identifies the architecture. These numbers
are officially assigned by registry@sco.com. See below for a list of
ad-hoc numbers used during initial development. */
 
#define EM_NONE 0 /* No machine */
#define EM_M32 1 /* AT&T WE 32100 */
#define EM_SPARC 2 /* SUN SPARC */
#define EM_386 3 /* Intel 80386 */
#define EM_68K 4 /* Motorola m68k family */
#define EM_88K 5 /* Motorola m88k family */
#define EM_486 6 /* Intel 80486 *//* Reserved for future use */
#define EM_860 7 /* Intel 80860 */
#define EM_MIPS 8 /* MIPS R3000 (officially, big-endian only) */
#define EM_S370 9 /* IBM System/370 */
#define EM_MIPS_RS3_LE 10 /* MIPS R3000 little-endian (Oct 4 1999 Draft) Deprecated */
#define EM_res011 11 /* Reserved */
#define EM_res012 12 /* Reserved */
#define EM_res013 13 /* Reserved */
#define EM_res014 14 /* Reserved */
#define EM_PARISC 15 /* HPPA */
#define EM_res016 16 /* Reserved */
#define EM_VPP550 17 /* Fujitsu VPP500 */
#define EM_SPARC32PLUS 18 /* Sun's "v8plus" */
#define EM_960 19 /* Intel 80960 */
#define EM_PPC 20 /* PowerPC */
#define EM_PPC64 21 /* 64-bit PowerPC */
#define EM_S390 22 /* IBM S/390 */
#define EM_SPU 23 /* Sony/Toshiba/IBM SPU */
#define EM_res024 24 /* Reserved */
#define EM_res025 25 /* Reserved */
#define EM_res026 26 /* Reserved */
#define EM_res027 27 /* Reserved */
#define EM_res028 28 /* Reserved */
#define EM_res029 29 /* Reserved */
#define EM_res030 30 /* Reserved */
#define EM_res031 31 /* Reserved */
#define EM_res032 32 /* Reserved */
#define EM_res033 33 /* Reserved */
#define EM_res034 34 /* Reserved */
#define EM_res035 35 /* Reserved */
#define EM_V800 36 /* NEC V800 series */
#define EM_FR20 37 /* Fujitsu FR20 */
#define EM_RH32 38 /* TRW RH32 */
#define EM_MCORE 39 /* Motorola M*Core */ /* May also be taken by Fujitsu MMA */
#define EM_RCE 39 /* Old name for MCore */
#define EM_ARM 40 /* ARM */
#define EM_OLD_ALPHA 41 /* Digital Alpha */
#define EM_SH 42 /* Renesas (formerly Hitachi) / SuperH SH */
#define EM_SPARCV9 43 /* SPARC v9 64-bit */
#define EM_TRICORE 44 /* Siemens Tricore embedded processor */
#define EM_ARC 45 /* ARC Cores */
#define EM_H8_300 46 /* Renesas (formerly Hitachi) H8/300 */
#define EM_H8_300H 47 /* Renesas (formerly Hitachi) H8/300H */
#define EM_H8S 48 /* Renesas (formerly Hitachi) H8S */
#define EM_H8_500 49 /* Renesas (formerly Hitachi) H8/500 */
#define EM_IA_64 50 /* Intel IA-64 Processor */
#define EM_MIPS_X 51 /* Stanford MIPS-X */
#define EM_COLDFIRE 52 /* Motorola Coldfire */
#define EM_68HC12 53 /* Motorola M68HC12 */
#define EM_MMA 54 /* Fujitsu 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 processor */
#define EM_X86_64 62 /* Advanced Micro Devices X86-64 processor */
#define EM_PDSP 63 /* Sony DSP Processor */
#define EM_PDP10 64 /* Digital Equipment Corp. PDP-10 */
#define EM_PDP11 65 /* Digital Equipment Corp. PDP-11 */
#define EM_FX66 66 /* Siemens FX66 microcontroller */
#define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 bit microcontroller */
#define EM_ST7 68 /* STMicroelectronics ST7 8-bit microcontroller */
#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 cpu */
#define EM_VAX 75 /* Digital VAX */
#define EM_CRIS 76 /* Axis Communications 32-bit embedded processor */
#define EM_JAVELIN 77 /* Infineon Technologies 32-bit embedded cpu */
#define EM_FIREPATH 78 /* Element 14 64-bit DSP processor */
#define EM_ZSP 79 /* LSI Logic's 16-bit DSP processor */
#define EM_MMIX 80 /* Donald Knuth's educational 64-bit processor */
#define EM_HUANY 81 /* Harvard's machine-independent format */
#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 /* Renesas V850 (formerly NEC V850) */
#define EM_M32R 88 /* Renesas M32R (formerly 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 Processor */
#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 ST200 microcontroller */
#define EM_IP2K 101 /* Ubicom IP2022 micro controller */
#define EM_MAX 102 /* MAX Processor */
#define EM_CR 103 /* National Semiconductor CompactRISC */
#define EM_F2MC16 104 /* Fujitsu F2MC16 */
#define EM_MSP430 105 /* TI msp430 micro controller */
#define EM_BLACKFIN 106 /* ADI Blackfin */
#define EM_SE_C33 107 /* S1C33 Family of Seiko Epson processors */
#define EM_SEP 108 /* Sharp embedded microprocessor */
#define EM_ARCA 109 /* Arca RISC Microprocessor */
#define EM_UNICORE 110 /* Microprocessor series from PKU-Unity Ltd. and MPRC of Peking University */
#define EM_EXCESS 111 /* eXcess: 16/32/64-bit configurable embedded CPU */
#define EM_DXP 112 /* Icera Semiconductor Inc. Deep Execution Processor */
#define EM_ALTERA_NIOS2 113 /* Altera Nios II soft-core processor */
#define EM_CRX 114 /* National Semiconductor CRX */
#define EM_XGATE 115 /* Motorola XGATE embedded processor */
#define EM_C166 116 /* Infineon C16x/XC16x processor */
#define EM_M16C 117 /* Renesas M16C series microprocessors */
#define EM_DSPIC30F 118 /* Microchip Technology dsPIC30F Digital Signal Controller */
#define EM_CE 119 /* Freescale Communication Engine RISC core */
#define EM_M32C 120 /* Renesas M32C series microprocessors */
#define EM_res121 121 /* Reserved */
#define EM_res122 122 /* Reserved */
#define EM_res123 123 /* Reserved */
#define EM_res124 124 /* Reserved */
#define EM_res125 125 /* Reserved */
#define EM_res126 126 /* Reserved */
#define EM_res127 127 /* Reserved */
#define EM_res128 128 /* Reserved */
#define EM_res129 129 /* Reserved */
#define EM_res130 130 /* Reserved */
#define EM_TSK3000 131 /* Altium TSK3000 core */
#define EM_RS08 132 /* Freescale RS08 embedded processor */
#define EM_res133 133 /* Reserved */
#define EM_ECOG2 134 /* Cyan Technology eCOG2 microprocessor */
#define EM_SCORE 135 /* Sunplus Score */
#define EM_SCORE7 135 /* Sunplus S+core7 RISC processor */
#define EM_DSP24 136 /* New Japan Radio (NJR) 24-bit DSP Processor */
#define EM_VIDEOCORE3 137 /* Broadcom VideoCore III processor */
#define EM_LATTICEMICO32 138 /* RISC processor for Lattice FPGA architecture */
#define EM_SE_C17 139 /* Seiko Epson C17 family */
#define EM_TI_C6000 140 /* Texas Instruments TMS320C6000 DSP family */
#define EM_TI_C2000 141 /* Texas Instruments TMS320C2000 DSP family */
#define EM_TI_C5500 142 /* Texas Instruments TMS320C55x DSP family */
#define EM_res143 143 /* Reserved */
#define EM_res144 144 /* Reserved */
#define EM_res145 145 /* Reserved */
#define EM_res146 146 /* Reserved */
#define EM_res147 147 /* Reserved */
#define EM_res148 148 /* Reserved */
#define EM_res149 149 /* Reserved */
#define EM_res150 150 /* Reserved */
#define EM_res151 151 /* Reserved */
#define EM_res152 152 /* Reserved */
#define EM_res153 153 /* Reserved */
#define EM_res154 154 /* Reserved */
#define EM_res155 155 /* Reserved */
#define EM_res156 156 /* Reserved */
#define EM_res157 157 /* Reserved */
#define EM_res158 158 /* Reserved */
#define EM_res159 159 /* Reserved */
#define EM_MMDSP_PLUS 160 /* STMicroelectronics 64bit VLIW Data Signal Processor */
#define EM_CYPRESS_M8C 161 /* Cypress M8C microprocessor */
#define EM_R32C 162 /* Renesas R32C series microprocessors */
#define EM_TRIMEDIA 163 /* NXP Semiconductors TriMedia architecture family */
#define EM_QDSP6 164 /* QUALCOMM DSP6 Processor */
#define EM_8051 165 /* Intel 8051 and variants */
#define EM_STXP7X 166 /* STMicroelectronics STxP7x family */
#define EM_NDS32 167 /* Andes Technology compact code size embedded RISC processor family */
#define EM_ECOG1 168 /* Cyan Technology eCOG1X family */
#define EM_ECOG1X 168 /* Cyan Technology eCOG1X family */
#define EM_MAXQ30 169 /* Dallas Semiconductor MAXQ30 Core Micro-controllers */
#define EM_XIMO16 170 /* New Japan Radio (NJR) 16-bit DSP Processor */
#define EM_MANIK 171 /* M2000 Reconfigurable RISC Microprocessor */
#define EM_CRAYNV2 172 /* Cray Inc. NV2 vector architecture */
#define EM_RX 173 /* Renesas RX family */
#define EM_METAG 174 /* Imagination Technologies Meta processor architecture */
#define EM_MCST_ELBRUS 175 /* MCST Elbrus general purpose hardware architecture */
#define EM_ECOG16 176 /* Cyan Technology eCOG16 family */
#define EM_CR16 177 /* National Semiconductor CompactRISC 16-bit processor */
#define EM_ETPU 178 /* Freescale Extended Time Processing Unit */
#define EM_SLE9X 179 /* Infineon Technologies SLE9X core */
#define EM_L1OM 180 /* Intel L1OM */
#define EM_K1OM 181 /* Intel K1OM */
#define EM_INTEL182 182 /* Reserved by Intel */
#define EM_AARCH64 183 /* ARM 64-bit architecture */
#define EM_ARM184 184 /* Reserved by ARM */
#define EM_AVR32 185 /* Atmel Corporation 32-bit microprocessor family */
#define EM_STM8 186 /* STMicroeletronics STM8 8-bit microcontroller */
#define EM_TILE64 187 /* Tilera TILE64 multicore architecture family */
#define EM_TILEPRO 188 /* Tilera TILEPro multicore architecture family */
#define EM_MICROBLAZE 189 /* Xilinx MicroBlaze 32-bit RISC soft processor core */
#define EM_CUDA 190 /* NVIDIA CUDA architecture */
#define EM_TILEGX 191 /* Tilera TILE-Gx multicore architecture family */
#define EM_RL78 197 /* Renesas RL78 family. */
#define EM_78K0R 199 /* Renesas 78K0R. */
#define EM_INTEL205 205 /* Reserved by Intel */
#define EM_INTEL206 206 /* Reserved by Intel */
#define EM_INTEL207 207 /* Reserved by Intel */
#define EM_INTEL208 208 /* Reserved by Intel */
#define EM_INTEL209 209 /* Reserved by Intel */
 
/* If it is necessary to assign new unofficial EM_* values, please pick large
random numbers (0x8523, 0xa7f2, etc.) to minimize the chances of collision
with official or non-GNU unofficial values.
 
NOTE: Do not just increment the most recent number by one.
Somebody else somewhere will do exactly the same thing, and you
will have a collision. Instead, pick a random number.
 
Normally, each entity or maintainer responsible for a machine with an
unofficial e_machine number should eventually ask registry@sco.com for
an officially blessed number to be added to the list above. */
 
/* Old version of Sparc v9, from before the ABI;
This should be removed shortly. */
#define EM_OLD_SPARCV9 11
 
/* Old version of PowerPC, this should be removed shortly. */
#define EM_PPC_OLD 17
 
/* picoJava */
#define EM_PJ_OLD 99
 
/* Old, unofficial value for National Semiconductor CompactRISC - CR16 */
#define EM_CR16_OLD 115
 
/* AVR magic number. Written in the absense of an ABI. */
#define EM_AVR_OLD 0x1057
 
/* MSP430 magic number. Written in the absense of everything. */
#define EM_MSP430_OLD 0x1059
 
/* Morpho MT. Written in the absense of an ABI. */
#define EM_MT 0x2530
 
/* FR30 magic number - no EABI available. */
#define EM_CYGNUS_FR30 0x3330
 
/* OpenRISC magic number. Written in the absense of an ABI. */
#define EM_OPENRISC_OLD 0x3426
 
/* DLX magic number. Written in the absense of an ABI. */
#define EM_DLX 0x5aa5
 
/* FRV magic number - no EABI available??. */
#define EM_CYGNUS_FRV 0x5441
 
/* Infineon Technologies 16-bit microcontroller with C166-V2 core. */
#define EM_XC16X 0x4688
 
/* D10V backend magic number. Written in the absence of an ABI. */
#define EM_CYGNUS_D10V 0x7650
 
/* D30V backend magic number. Written in the absence of an ABI. */
#define EM_CYGNUS_D30V 0x7676
 
/* Ubicom IP2xxx; Written in the absense of an ABI. */
#define EM_IP2K_OLD 0x8217
 
/* (Deprecated) Temporary number for the OpenRISC processor. */
#define EM_OR32 0x8472
 
/* Cygnus PowerPC ELF backend. Written in the absence of an ABI. */
#define EM_CYGNUS_POWERPC 0x9025
 
/* Alpha backend magic number. Written in the absence of an ABI. */
#define EM_ALPHA 0x9026
 
/* Cygnus M32R ELF backend. Written in the absence of an ABI. */
#define EM_CYGNUS_M32R 0x9041
 
/* V850 backend magic number. Written in the absense of an ABI. */
#define EM_CYGNUS_V850 0x9080
 
/* old S/390 backend magic number. Written in the absence of an ABI. */
#define EM_S390_OLD 0xa390
 
/* Old, unofficial value for Xtensa. */
#define EM_XTENSA_OLD 0xabc7
 
#define EM_XSTORMY16 0xad45
 
/* mn10200 and mn10300 backend magic numbers.
Written in the absense of an ABI. */
#define EM_CYGNUS_MN10300 0xbeef
#define EM_CYGNUS_MN10200 0xdead
 
/* Renesas M32C and M16C. */
#define EM_M32C_OLD 0xFEB0
 
/* Vitesse IQ2000. */
#define EM_IQ2000 0xFEBA
 
/* NIOS magic number - no EABI available. */
#define EM_NIOS32 0xFEBB
 
#define EM_CYGNUS_MEP 0xF00D /* Toshiba MeP */
 
#define EM_MOXIE 0xFEED /* Moxie */
 
/* Old Sunplus S+core7 backend magic number. Written in the absence of an ABI. */
#define EM_SCORE_OLD 95
 
#define EM_MICROBLAZE_OLD 0xbaab /* Old MicroBlaze */
 
#define EM_ADAPTEVA_EPIPHANY 0x1223 /* Adapteva's Epiphany architecture. */
 
/* See the above comment before you add a new EM_* value here. */
 
/* Values for e_version. */
 
#define EV_NONE 0 /* Invalid ELF version */
#define EV_CURRENT 1 /* Current version */
 
/* Value for e_phnum. */
#define PN_XNUM 0xffff /* Extended numbering */
 
/* Values for program header, p_type field. */
 
#define PT_NULL 0 /* Program header table entry unused */
#define PT_LOAD 1 /* Loadable program segment */
#define PT_DYNAMIC 2 /* Dynamic linking information */
#define PT_INTERP 3 /* Program interpreter */
#define PT_NOTE 4 /* Auxiliary information */
#define PT_SHLIB 5 /* Reserved, unspecified semantics */
#define PT_PHDR 6 /* Entry for header table itself */
#define PT_TLS 7 /* Thread local storage segment */
#define PT_LOOS 0x60000000 /* OS-specific */
#define PT_HIOS 0x6fffffff /* OS-specific */
#define PT_LOPROC 0x70000000 /* Processor-specific */
#define PT_HIPROC 0x7FFFFFFF /* Processor-specific */
 
#define PT_GNU_EH_FRAME (PT_LOOS + 0x474e550) /* Frame unwind information */
#define PT_SUNW_EH_FRAME PT_GNU_EH_FRAME /* Solaris uses the same value */
#define PT_GNU_STACK (PT_LOOS + 0x474e551) /* Stack flags */
#define PT_GNU_RELRO (PT_LOOS + 0x474e552) /* Read-only after relocation */
 
/* Program segment permissions, in program header p_flags field. */
 
#define PF_X (1 << 0) /* Segment is executable */
#define PF_W (1 << 1) /* Segment is writable */
#define PF_R (1 << 2) /* Segment is readable */
/* #define PF_MASKOS 0x0F000000 *//* OS-specific reserved bits */
#define PF_MASKOS 0x0FF00000 /* New value, Oct 4, 1999 Draft */
#define PF_MASKPROC 0xF0000000 /* Processor-specific reserved bits */
 
/* Values for section header, sh_type field. */
 
#define SHT_NULL 0 /* Section header table entry unused */
#define SHT_PROGBITS 1 /* Program specific (private) data */
#define SHT_SYMTAB 2 /* Link editing symbol table */
#define SHT_STRTAB 3 /* A string table */
#define SHT_RELA 4 /* Relocation entries with addends */
#define SHT_HASH 5 /* A symbol hash table */
#define SHT_DYNAMIC 6 /* Information for dynamic linking */
#define SHT_NOTE 7 /* Information that marks file */
#define SHT_NOBITS 8 /* Section occupies no space in file */
#define SHT_REL 9 /* Relocation entries, no addends */
#define SHT_SHLIB 10 /* Reserved, unspecified semantics */
#define SHT_DYNSYM 11 /* Dynamic linking symbol table */
 
#define SHT_INIT_ARRAY 14 /* Array of ptrs to init functions */
#define SHT_FINI_ARRAY 15 /* Array of ptrs to finish functions */
#define SHT_PREINIT_ARRAY 16 /* Array of ptrs to pre-init funcs */
#define SHT_GROUP 17 /* Section contains a section group */
#define SHT_SYMTAB_SHNDX 18 /* Indicies for SHN_XINDEX entries */
 
#define SHT_LOOS 0x60000000 /* First of OS specific semantics */
#define SHT_HIOS 0x6fffffff /* Last of OS specific semantics */
 
#define SHT_GNU_INCREMENTAL_INPUTS 0x6fff4700 /* incremental build data */
#define SHT_GNU_ATTRIBUTES 0x6ffffff5 /* Object attributes */
#define SHT_GNU_HASH 0x6ffffff6 /* GNU style symbol hash table */
#define SHT_GNU_LIBLIST 0x6ffffff7 /* List of prelink dependencies */
 
/* The next three section types are defined by Solaris, and are named
SHT_SUNW*. We use them in GNU code, so we also define SHT_GNU*
versions. */
#define SHT_SUNW_verdef 0x6ffffffd /* Versions defined by file */
#define SHT_SUNW_verneed 0x6ffffffe /* Versions needed by file */
#define SHT_SUNW_versym 0x6fffffff /* Symbol versions */
 
#define SHT_GNU_verdef SHT_SUNW_verdef
#define SHT_GNU_verneed SHT_SUNW_verneed
#define SHT_GNU_versym SHT_SUNW_versym
 
#define SHT_LOPROC 0x70000000 /* Processor-specific semantics, lo */
#define SHT_HIPROC 0x7FFFFFFF /* Processor-specific semantics, hi */
#define SHT_LOUSER 0x80000000 /* Application-specific semantics */
/* #define SHT_HIUSER 0x8FFFFFFF *//* Application-specific semantics */
#define SHT_HIUSER 0xFFFFFFFF /* New value, defined in Oct 4, 1999 Draft */
 
/* Values for section header, sh_flags field. */
 
#define SHF_WRITE (1 << 0) /* Writable data during execution */
#define SHF_ALLOC (1 << 1) /* Occupies memory during execution */
#define SHF_EXECINSTR (1 << 2) /* Executable machine instructions */
#define SHF_MERGE (1 << 4) /* Data in this section can be merged */
#define SHF_STRINGS (1 << 5) /* Contains null terminated character strings */
#define SHF_INFO_LINK (1 << 6) /* sh_info holds section header table index */
#define SHF_LINK_ORDER (1 << 7) /* Preserve section ordering when linking */
#define SHF_OS_NONCONFORMING (1 << 8) /* OS specific processing required */
#define SHF_GROUP (1 << 9) /* Member of a section group */
#define SHF_TLS (1 << 10) /* Thread local storage section */
 
/* #define SHF_MASKOS 0x0F000000 *//* OS-specific semantics */
#define SHF_MASKOS 0x0FF00000 /* New value, Oct 4, 1999 Draft */
#define SHF_MASKPROC 0xF0000000 /* Processor-specific semantics */
 
/* This used to be implemented as a processor specific section flag.
We just make it generic. */
#define SHF_EXCLUDE 0x80000000 /* Link editor is to exclude
this section from executable
and shared library that it
builds when those objects
are not to be further
relocated. */
 
/* Values of note segment descriptor types for core files. */
 
#define NT_PRSTATUS 1 /* Contains copy of prstatus struct */
#define NT_FPREGSET 2 /* Contains copy of fpregset struct */
#define NT_PRPSINFO 3 /* Contains copy of prpsinfo struct */
#define NT_TASKSTRUCT 4 /* Contains copy of task struct */
#define NT_AUXV 6 /* Contains copy of Elfxx_auxv_t */
#define NT_PRXFPREG 0x46e62b7f /* Contains a user_xfpregs_struct; */
/* note name must be "LINUX". */
#define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */
/* note name must be "LINUX". */
#define NT_PPC_VSX 0x102 /* PowerPC VSX registers */
/* note name must be "LINUX". */
#define NT_386_TLS 0x200 /* x86 TLS information */
/* note name must be "LINUX". */
#define NT_386_IOPERM 0x201 /* x86 io permissions */
/* note name must be "LINUX". */
#define NT_X86_XSTATE 0x202 /* x86 XSAVE extended state */
/* note name must be "LINUX". */
#define NT_S390_HIGH_GPRS 0x300 /* S/390 upper halves of GPRs */
/* note name must be "LINUX". */
#define NT_S390_TIMER 0x301 /* S390 timer */
/* note name must be "LINUX". */
#define NT_S390_TODCMP 0x302 /* S390 TOD clock comparator */
/* note name must be "LINUX". */
#define NT_S390_TODPREG 0x303 /* S390 TOD programmable register */
/* note name must be "LINUX". */
#define NT_S390_CTRS 0x304 /* S390 control registers */
/* note name must be "LINUX". */
#define NT_S390_PREFIX 0x305 /* S390 prefix register */
/* note name must be "LINUX". */
#define NT_S390_LAST_BREAK 0x306 /* S390 breaking event address */
/* note name must be "LINUX". */
#define NT_S390_SYSTEM_CALL 0x307 /* S390 system call restart data */
/* note name must be "LINUX". */
#define NT_S390_TDB 0x308 /* S390 transaction diagnostic block */
/* note name must be "LINUX". */
#define NT_ARM_VFP 0x400 /* ARM VFP registers */
/* The following definitions should really use NT_AARCH_..., but defined
this way for compatibility with Linux. */
#define NT_ARM_TLS 0x401 /* AArch TLS registers */
/* note name must be "LINUX". */
#define NT_ARM_HW_BREAK 0x402 /* AArch hardware breakpoint registers */
/* note name must be "LINUX". */
#define NT_ARM_HW_WATCH 0x403 /* AArch hardware watchpoint registers */
/* note name must be "LINUX". */
#define NT_SIGINFO 0x53494749 /* Fields of siginfo_t. */
#define NT_FILE 0x46494c45 /* Description of mapped files. */
 
/* Note segments for core files on dir-style procfs systems. */
 
#define NT_PSTATUS 10 /* Has a struct pstatus */
#define NT_FPREGS 12 /* Has a struct fpregset */
#define NT_PSINFO 13 /* Has a struct psinfo */
#define NT_LWPSTATUS 16 /* Has a struct lwpstatus_t */
#define NT_LWPSINFO 17 /* Has a struct lwpsinfo_t */
#define NT_WIN32PSTATUS 18 /* Has a struct win32_pstatus */
 
/* Note segment for SystemTap probes. */
#define NT_STAPSDT 3
 
/* Note segments for core files on NetBSD systems. Note name
must start with "NetBSD-CORE". */
 
#define NT_NETBSDCORE_PROCINFO 1 /* Has a struct procinfo */
#define NT_NETBSDCORE_FIRSTMACH 32 /* start of machdep note types */
 
 
/* Note segments for core files on OpenBSD systems. Note name is
"OpenBSD". */
 
#define NT_OPENBSD_PROCINFO 10
#define NT_OPENBSD_AUXV 11
#define NT_OPENBSD_REGS 20
#define NT_OPENBSD_FPREGS 21
#define NT_OPENBSD_XFPREGS 22
#define NT_OPENBSD_WCOOKIE 23
 
 
/* Note segments for core files on SPU systems. Note name
must start with "SPU/". */
 
#define NT_SPU 1
 
/* Values of note segment descriptor types for object files. */
 
#define NT_VERSION 1 /* Contains a version string. */
#define NT_ARCH 2 /* Contains an architecture string. */
 
/* Values for notes in non-core files using name "GNU". */
 
#define NT_GNU_ABI_TAG 1
#define NT_GNU_HWCAP 2 /* Used by ld.so and kernel vDSO. */
#define NT_GNU_BUILD_ID 3 /* Generated by ld --build-id. */
#define NT_GNU_GOLD_VERSION 4 /* Generated by gold. */
 
/* Values used in GNU .note.ABI-tag notes (NT_GNU_ABI_TAG). */
#define GNU_ABI_TAG_LINUX 0
#define GNU_ABI_TAG_HURD 1
#define GNU_ABI_TAG_SOLARIS 2
#define GNU_ABI_TAG_FREEBSD 3
#define GNU_ABI_TAG_NETBSD 4
 
/* Values for NetBSD .note.netbsd.ident notes. Note name is "NetBSD". */
 
#define NT_NETBSD_IDENT 1
 
/* Values for OpenBSD .note.openbsd.ident notes. Note name is "OpenBSD". */
 
#define NT_OPENBSD_IDENT 1
 
/* Values for FreeBSD .note.ABI-tag notes. Note name is "FreeBSD". */
 
#define NT_FREEBSD_ABI_TAG 1
 
/* These three macros disassemble and assemble a symbol table st_info field,
which contains the symbol binding and symbol type. The STB_ and STT_
defines identify the binding and type. */
 
#define ELF_ST_BIND(val) (((unsigned int)(val)) >> 4)
#define ELF_ST_TYPE(val) ((val) & 0xF)
#define ELF_ST_INFO(bind,type) (((bind) << 4) + ((type) & 0xF))
 
/* The 64bit and 32bit versions of these macros are identical, but
the ELF spec defines them, so here they are. */
#define ELF32_ST_BIND ELF_ST_BIND
#define ELF32_ST_TYPE ELF_ST_TYPE
#define ELF32_ST_INFO ELF_ST_INFO
#define ELF64_ST_BIND ELF_ST_BIND
#define ELF64_ST_TYPE ELF_ST_TYPE
#define ELF64_ST_INFO ELF_ST_INFO
 
/* This macro disassembles and assembles a symbol's visibility into
the st_other field. The STV_ defines specify the actual visibility. */
 
#define ELF_ST_VISIBILITY(v) ((v) & 0x3)
/* The remaining bits in the st_other field are not currently used.
They should be set to zero. */
 
#define ELF32_ST_VISIBILITY ELF_ST_VISIBILITY
#define ELF64_ST_VISIBILITY ELF_ST_VISIBILITY
 
 
#define STN_UNDEF 0 /* Undefined symbol index */
 
#define STB_LOCAL 0 /* Symbol not visible outside obj */
#define STB_GLOBAL 1 /* Symbol visible outside obj */
#define STB_WEAK 2 /* Like globals, lower precedence */
#define STB_LOOS 10 /* OS-specific semantics */
#define STB_GNU_UNIQUE 10 /* Symbol is unique in namespace */
#define STB_HIOS 12 /* OS-specific semantics */
#define STB_LOPROC 13 /* Processor-specific semantics */
#define STB_HIPROC 15 /* Processor-specific semantics */
 
#define STT_NOTYPE 0 /* Symbol type is unspecified */
#define STT_OBJECT 1 /* Symbol is a data object */
#define STT_FUNC 2 /* Symbol is a code object */
#define STT_SECTION 3 /* Symbol associated with a section */
#define STT_FILE 4 /* Symbol gives a file name */
#define STT_COMMON 5 /* An uninitialised common block */
#define STT_TLS 6 /* Thread local data object */
#define STT_RELC 8 /* Complex relocation expression */
#define STT_SRELC 9 /* Signed Complex relocation expression */
#define STT_LOOS 10 /* OS-specific semantics */
#define STT_GNU_IFUNC 10 /* Symbol is an indirect code object */
#define STT_HIOS 12 /* OS-specific semantics */
#define STT_LOPROC 13 /* Processor-specific semantics */
#define STT_HIPROC 15 /* Processor-specific semantics */
 
/* The following constants control how a symbol may be accessed once it has
become part of an executable or shared library. */
 
#define STV_DEFAULT 0 /* Visibility is specified by binding type */
#define STV_INTERNAL 1 /* OS specific version of STV_HIDDEN */
#define STV_HIDDEN 2 /* Can only be seen inside currect component */
#define STV_PROTECTED 3 /* Treat as STB_LOCAL inside current component */
 
/* Relocation info handling macros. */
 
#define ELF32_R_SYM(i) ((i) >> 8)
#define ELF32_R_TYPE(i) ((i) & 0xff)
#define ELF32_R_INFO(s,t) (((s) << 8) + ((t) & 0xff))
 
#define ELF64_R_SYM(i) ((i) >> 32)
#define ELF64_R_TYPE(i) ((i) & 0xffffffff)
#define ELF64_R_INFO(s,t) (((bfd_vma) (s) << 31 << 1) + (bfd_vma) (t))
 
/* Dynamic section tags. */
 
#define DT_NULL 0
#define DT_NEEDED 1
#define DT_PLTRELSZ 2
#define DT_PLTGOT 3
#define DT_HASH 4
#define DT_STRTAB 5
#define DT_SYMTAB 6
#define DT_RELA 7
#define DT_RELASZ 8
#define DT_RELAENT 9
#define DT_STRSZ 10
#define DT_SYMENT 11
#define DT_INIT 12
#define DT_FINI 13
#define DT_SONAME 14
#define DT_RPATH 15
#define DT_SYMBOLIC 16
#define DT_REL 17
#define DT_RELSZ 18
#define DT_RELENT 19
#define DT_PLTREL 20
#define DT_DEBUG 21
#define DT_TEXTREL 22
#define DT_JMPREL 23
#define DT_BIND_NOW 24
#define DT_INIT_ARRAY 25
#define DT_FINI_ARRAY 26
#define DT_INIT_ARRAYSZ 27
#define DT_FINI_ARRAYSZ 28
#define DT_RUNPATH 29
#define DT_FLAGS 30
#define DT_ENCODING 32
#define DT_PREINIT_ARRAY 32
#define DT_PREINIT_ARRAYSZ 33
 
/* Note, the Oct 4, 1999 draft of the ELF ABI changed the values
for DT_LOOS and DT_HIOS. Some implementations however, use
values outside of the new range (see below). */
#define OLD_DT_LOOS 0x60000000
#define DT_LOOS 0x6000000d
#define DT_HIOS 0x6ffff000
#define OLD_DT_HIOS 0x6fffffff
 
#define DT_LOPROC 0x70000000
#define DT_HIPROC 0x7fffffff
 
/* The next 2 dynamic tag ranges, integer value range (DT_VALRNGLO to
DT_VALRNGHI) and virtual address range (DT_ADDRRNGLO to DT_ADDRRNGHI),
are used on Solaris. We support them everywhere. Note these values
lie outside of the (new) range for OS specific values. This is a
deliberate special case and we maintain it for backwards compatability.
*/
#define DT_VALRNGLO 0x6ffffd00
#define DT_GNU_PRELINKED 0x6ffffdf5
#define DT_GNU_CONFLICTSZ 0x6ffffdf6
#define DT_GNU_LIBLISTSZ 0x6ffffdf7
#define DT_CHECKSUM 0x6ffffdf8
#define DT_PLTPADSZ 0x6ffffdf9
#define DT_MOVEENT 0x6ffffdfa
#define DT_MOVESZ 0x6ffffdfb
#define DT_FEATURE 0x6ffffdfc
#define DT_POSFLAG_1 0x6ffffdfd
#define DT_SYMINSZ 0x6ffffdfe
#define DT_SYMINENT 0x6ffffdff
#define DT_VALRNGHI 0x6ffffdff
 
#define DT_ADDRRNGLO 0x6ffffe00
#define DT_GNU_HASH 0x6ffffef5
#define DT_TLSDESC_PLT 0x6ffffef6
#define DT_TLSDESC_GOT 0x6ffffef7
#define DT_GNU_CONFLICT 0x6ffffef8
#define DT_GNU_LIBLIST 0x6ffffef9
#define DT_CONFIG 0x6ffffefa
#define DT_DEPAUDIT 0x6ffffefb
#define DT_AUDIT 0x6ffffefc
#define DT_PLTPAD 0x6ffffefd
#define DT_MOVETAB 0x6ffffefe
#define DT_SYMINFO 0x6ffffeff
#define DT_ADDRRNGHI 0x6ffffeff
 
#define DT_RELACOUNT 0x6ffffff9
#define DT_RELCOUNT 0x6ffffffa
#define DT_FLAGS_1 0x6ffffffb
#define DT_VERDEF 0x6ffffffc
#define DT_VERDEFNUM 0x6ffffffd
#define DT_VERNEED 0x6ffffffe
#define DT_VERNEEDNUM 0x6fffffff
 
/* This tag is a GNU extension to the Solaris version scheme. */
#define DT_VERSYM 0x6ffffff0
 
#define DT_LOPROC 0x70000000
#define DT_HIPROC 0x7fffffff
 
/* These section tags are used on Solaris. We support them
everywhere, and hope they do not conflict. */
 
#define DT_AUXILIARY 0x7ffffffd
#define DT_USED 0x7ffffffe
#define DT_FILTER 0x7fffffff
 
 
/* Values used in DT_FEATURE .dynamic entry. */
#define DTF_1_PARINIT 0x00000001
/* From
 
http://docs.sun.com:80/ab2/coll.45.13/LLM/@Ab2PageView/21165?Ab2Lang=C&Ab2Enc=iso-8859-1
 
DTF_1_CONFEXP is the same as DTF_1_PARINIT. It is a typo. The value
defined here is the same as the one in <sys/link.h> on Solaris 8. */
#define DTF_1_CONFEXP 0x00000002
 
/* Flag values used in the DT_POSFLAG_1 .dynamic entry. */
#define DF_P1_LAZYLOAD 0x00000001
#define DF_P1_GROUPPERM 0x00000002
 
/* Flag value in in the DT_FLAGS_1 .dynamic entry. */
#define DF_1_NOW 0x00000001
#define DF_1_GLOBAL 0x00000002
#define DF_1_GROUP 0x00000004
#define DF_1_NODELETE 0x00000008
#define DF_1_LOADFLTR 0x00000010
#define DF_1_INITFIRST 0x00000020
#define DF_1_NOOPEN 0x00000040
#define DF_1_ORIGIN 0x00000080
#define DF_1_DIRECT 0x00000100
#define DF_1_TRANS 0x00000200
#define DF_1_INTERPOSE 0x00000400
#define DF_1_NODEFLIB 0x00000800
#define DF_1_NODUMP 0x00001000
#define DF_1_CONFALT 0x00002000
#define DF_1_ENDFILTEE 0x00004000
#define DF_1_DISPRELDNE 0x00008000
#define DF_1_DISPRELPND 0x00010000
#define DF_1_NODIRECT 0x00020000
#define DF_1_IGNMULDEF 0x00040000
#define DF_1_NOKSYMS 0x00080000
#define DF_1_NOHDR 0x00100000
#define DF_1_EDITED 0x00200000
#define DF_1_NORELOC 0x00400000
#define DF_1_SYMINTPOSE 0x00800000
#define DF_1_GLOBAUDIT 0x01000000
#define DF_1_SINGLETON 0x02000000
 
/* Flag values for the DT_FLAGS entry. */
#define DF_ORIGIN (1 << 0)
#define DF_SYMBOLIC (1 << 1)
#define DF_TEXTREL (1 << 2)
#define DF_BIND_NOW (1 << 3)
#define DF_STATIC_TLS (1 << 4)
 
/* These constants are used for the version number of a Elf32_Verdef
structure. */
 
#define VER_DEF_NONE 0
#define VER_DEF_CURRENT 1
 
/* These constants appear in the vd_flags field of a Elf32_Verdef
structure.
 
Cf. the Solaris Linker and Libraries Guide, Ch. 7, Object File Format,
Versioning Sections, for a description:
 
http://docs.sun.com/app/docs/doc/819-0690/chapter6-93046?l=en&a=view */
 
#define VER_FLG_BASE 0x1
#define VER_FLG_WEAK 0x2
#define VER_FLG_INFO 0x4
 
/* These special constants can be found in an Elf32_Versym field. */
 
#define VER_NDX_LOCAL 0
#define VER_NDX_GLOBAL 1
 
/* These constants are used for the version number of a Elf32_Verneed
structure. */
 
#define VER_NEED_NONE 0
#define VER_NEED_CURRENT 1
 
/* This flag appears in a Versym structure. It means that the symbol
is hidden, and is only visible with an explicit version number.
This is a GNU extension. */
 
#define VERSYM_HIDDEN 0x8000
 
/* This is the mask for the rest of the Versym information. */
 
#define VERSYM_VERSION 0x7fff
 
/* This is a special token which appears as part of a symbol name. It
indictes that the rest of the name is actually the name of a
version node, and is not part of the actual name. This is a GNU
extension. For example, the symbol name `stat@ver2' is taken to
mean the symbol `stat' in version `ver2'. */
 
#define ELF_VER_CHR '@'
 
/* 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
 
/* Section Group Flags. */
 
#define GRP_COMDAT 0x1 /* A COMDAT group */
 
/* Auxv a_type values. */
 
#define AT_NULL 0 /* End of vector */
#define AT_IGNORE 1 /* Entry should be ignored */
#define AT_EXECFD 2 /* File descriptor of program */
#define AT_PHDR 3 /* Program headers for program */
#define AT_PHENT 4 /* Size of program header entry */
#define AT_PHNUM 5 /* Number of program headers */
#define AT_PAGESZ 6 /* System page size */
#define AT_BASE 7 /* Base address of interpreter */
#define AT_FLAGS 8 /* Flags */
#define AT_ENTRY 9 /* Entry point of program */
#define AT_NOTELF 10 /* Program is not ELF */
#define AT_UID 11 /* Real uid */
#define AT_EUID 12 /* Effective uid */
#define AT_GID 13 /* Real gid */
#define AT_EGID 14 /* Effective gid */
#define AT_CLKTCK 17 /* Frequency of times() */
#define AT_PLATFORM 15 /* String identifying platform. */
#define AT_HWCAP 16 /* Machine dependent hints about
processor capabilities. */
#define AT_FPUCW 18 /* Used FPU control word. */
#define AT_DCACHEBSIZE 19 /* Data cache block size. */
#define AT_ICACHEBSIZE 20 /* Instruction cache block size. */
#define AT_UCACHEBSIZE 21 /* Unified cache block size. */
#define AT_IGNOREPPC 22 /* Entry should be ignored */
#define AT_SECURE 23 /* Boolean, was exec setuid-like? */
#define AT_BASE_PLATFORM 24 /* String identifying real platform,
may differ from AT_PLATFORM. */
#define AT_RANDOM 25 /* Address of 16 random bytes. */
#define AT_EXECFN 31 /* Filename of executable. */
/* Pointer to the global system page used for system calls and other
nice things. */
#define AT_SYSINFO 32
#define AT_SYSINFO_EHDR 33 /* Pointer to ELF header of system-supplied DSO. */
 
/* More complete cache descriptions than AT_[DIU]CACHEBSIZE. If the
value is -1, then the cache doesn't exist. Otherwise:
 
bit 0-3: Cache set-associativity; 0 means fully associative.
bit 4-7: Log2 of cacheline size.
bit 8-31: Size of the entire cache >> 8. */
 
#define AT_L1I_CACHESHAPE 34
#define AT_L1D_CACHESHAPE 35
#define AT_L2_CACHESHAPE 36
#define AT_L3_CACHESHAPE 37
 
#define AT_SUN_UID 2000 /* Effective user ID. */
#define AT_SUN_RUID 2001 /* Real user ID. */
#define AT_SUN_GID 2002 /* Effective group ID. */
#define AT_SUN_RGID 2003 /* Real group ID. */
#define AT_SUN_LDELF 2004 /* Dynamic linker's ELF header. */
#define AT_SUN_LDSHDR 2005 /* Dynamic linker's section headers. */
#define AT_SUN_LDNAME 2006 /* String giving name of dynamic linker. */
#define AT_SUN_LPAGESZ 2007 /* Large pagesize. */
#define AT_SUN_PLATFORM 2008 /* Platform name string. */
#define AT_SUN_HWCAP 2009 /* Machine dependent hints about
processor capabilities. */
#define AT_SUN_IFLUSH 2010 /* Should flush icache? */
#define AT_SUN_CPU 2011 /* CPU name string. */
#define AT_SUN_EMUL_ENTRY 2012 /* COFF entry point address. */
#define AT_SUN_EMUL_EXECFD 2013 /* COFF executable file descriptor. */
#define AT_SUN_EXECNAME 2014 /* Canonicalized file name given to execve. */
#define AT_SUN_MMU 2015 /* String for name of MMU module. */
#define AT_SUN_LDDATA 2016 /* Dynamic linker's data segment address. */
#define AT_SUN_AUXFLAGS 2017 /* AF_SUN_ flags passed from the kernel. */
 
 
#endif /* _ELF_COMMON_H */
/contrib/toolchain/binutils/include/elf/cr16.h
0,0 → 1,62
/* CR16 ELF support for BFD.
Copyright 2007, 2010 Free Software Foundation, Inc.
Contributed by M R Swami Reddy.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_CR16_H
#define _ELF_CR16_H
 
#include "elf/reloc-macros.h"
 
/* Creating indices for reloc_map_index array. */
START_RELOC_NUMBERS(elf_cr16_reloc_type)
RELOC_NUMBER (R_CR16_NONE, 0)
RELOC_NUMBER (R_CR16_NUM8, 1)
RELOC_NUMBER (R_CR16_NUM16, 2)
RELOC_NUMBER (R_CR16_NUM32, 3)
RELOC_NUMBER (R_CR16_NUM32a, 4)
RELOC_NUMBER (R_CR16_REGREL4, 5)
RELOC_NUMBER (R_CR16_REGREL4a, 6)
RELOC_NUMBER (R_CR16_REGREL14, 7)
RELOC_NUMBER (R_CR16_REGREL14a, 8)
RELOC_NUMBER (R_CR16_REGREL16, 9)
RELOC_NUMBER (R_CR16_REGREL20, 10)
RELOC_NUMBER (R_CR16_REGREL20a, 11)
RELOC_NUMBER (R_CR16_ABS20, 12)
RELOC_NUMBER (R_CR16_ABS24, 13)
RELOC_NUMBER (R_CR16_IMM4, 14)
RELOC_NUMBER (R_CR16_IMM8, 15)
RELOC_NUMBER (R_CR16_IMM16, 16)
RELOC_NUMBER (R_CR16_IMM20, 17)
RELOC_NUMBER (R_CR16_IMM24, 18)
RELOC_NUMBER (R_CR16_IMM32, 19)
RELOC_NUMBER (R_CR16_IMM32a, 20)
RELOC_NUMBER (R_CR16_DISP4, 21)
RELOC_NUMBER (R_CR16_DISP8, 22)
RELOC_NUMBER (R_CR16_DISP16, 23)
RELOC_NUMBER (R_CR16_DISP24, 24)
RELOC_NUMBER (R_CR16_DISP24a, 25)
RELOC_NUMBER (R_CR16_SWITCH8, 26)
RELOC_NUMBER (R_CR16_SWITCH16, 27)
RELOC_NUMBER (R_CR16_SWITCH32, 28)
RELOC_NUMBER (R_CR16_GOT_REGREL20, 29)
RELOC_NUMBER (R_CR16_GOTC_REGREL20, 30)
RELOC_NUMBER (R_CR16_GLOB_DAT, 31)
END_RELOC_NUMBERS(R_CR16_MAX)
#endif /* _ELF_CR16_H */
/contrib/toolchain/binutils/include/elf/cr16c.h
0,0 → 1,258
/* CR16C ELF support for BFD.
Copyright 2004, 2008, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_CR16C_H
#define _ELF_CR16C_H
 
#include "bfd.h"
#include "elf/reloc-macros.h"
 
/* Creating indices for reloc_map_index array. */
START_RELOC_NUMBERS (elf_cr16c_reloc_type)
RELOC_NUMBER (RINDEX_16C_NUM08, 0)
RELOC_NUMBER (RINDEX_16C_NUM08_C, 1)
RELOC_NUMBER (RINDEX_16C_NUM16, 2)
RELOC_NUMBER (RINDEX_16C_NUM16_C, 3)
RELOC_NUMBER (RINDEX_16C_NUM32, 4)
RELOC_NUMBER (RINDEX_16C_NUM32_C, 5)
RELOC_NUMBER (RINDEX_16C_DISP04, 6)
RELOC_NUMBER (RINDEX_16C_DISP04_C, 7)
RELOC_NUMBER (RINDEX_16C_DISP08, 8)
RELOC_NUMBER (RINDEX_16C_DISP08_C, 9)
RELOC_NUMBER (RINDEX_16C_DISP16, 10)
RELOC_NUMBER (RINDEX_16C_DISP16_C, 11)
RELOC_NUMBER (RINDEX_16C_DISP24, 12)
RELOC_NUMBER (RINDEX_16C_DISP24_C, 13)
RELOC_NUMBER (RINDEX_16C_DISP24a, 14)
RELOC_NUMBER (RINDEX_16C_DISP24a_C, 15)
RELOC_NUMBER (RINDEX_16C_REG04, 16)
RELOC_NUMBER (RINDEX_16C_REG04_C, 17)
RELOC_NUMBER (RINDEX_16C_REG04a, 18)
RELOC_NUMBER (RINDEX_16C_REG04a_C, 19)
RELOC_NUMBER (RINDEX_16C_REG14, 20)
RELOC_NUMBER (RINDEX_16C_REG14_C, 21)
RELOC_NUMBER (RINDEX_16C_REG16, 22)
RELOC_NUMBER (RINDEX_16C_REG16_C, 23)
RELOC_NUMBER (RINDEX_16C_REG20, 24)
RELOC_NUMBER (RINDEX_16C_REG20_C, 25)
RELOC_NUMBER (RINDEX_16C_ABS20, 26)
RELOC_NUMBER (RINDEX_16C_ABS20_C, 27)
RELOC_NUMBER (RINDEX_16C_ABS24, 28)
RELOC_NUMBER (RINDEX_16C_ABS24_C, 29)
RELOC_NUMBER (RINDEX_16C_IMM04, 30)
RELOC_NUMBER (RINDEX_16C_IMM04_C, 31)
RELOC_NUMBER (RINDEX_16C_IMM16, 32)
RELOC_NUMBER (RINDEX_16C_IMM16_C, 33)
RELOC_NUMBER (RINDEX_16C_IMM20, 34)
RELOC_NUMBER (RINDEX_16C_IMM20_C, 35)
RELOC_NUMBER (RINDEX_16C_IMM24, 36)
RELOC_NUMBER (RINDEX_16C_IMM24_C, 37)
RELOC_NUMBER (RINDEX_16C_IMM32, 38)
RELOC_NUMBER (RINDEX_16C_IMM32_C, 39)
END_RELOC_NUMBERS (RINDEX_16C_MAX)
 
/* CR16C Relocation Types ('cr_reloc_type' entry in the reloc_map structure).
The relocation constant name is determined as follows :
 
R_16C_<format><size>[_C]
 
Where :
 
<format> is one of the following:
NUM - R_NUMBER mnemonic,
DISP - R_16C_DISPL mnemonic,
REG - R_16C_REGREL mnemonic,
ABS - R_16C_ABS mnemonic,
IMM - R_16C_IMMED mnemonic,
<size> stands for R_S_16C_<size>
_C means 'code label' and is only added when R_ADDRTYPE subfield
is of type R_CODE_ADDR. */
/* The table below shows what the hex digits in the definition of the
relocation type constants correspond to.
------------------------------------------------------------------
R_SIZESP R_FORMAT R_RELTO R_ADDRTYPE
------------------------------------------------------------------ */
/* R_S_16C_08 R_NUMBER R_ABS R_ADDRESS */
#define R_16C_NUM08 0X0001
 
/* R_S_16C_08 R_NUMBER R_ABS R_CODE_ADDR */
#define R_16C_NUM08_C 0X0006
 
/* R_S_16C_16 R_NUMBER R_ABS R_ADDRESS */
#define R_16C_NUM16 0X1001
 
/* R_S_16C_16 R_NUMBER R_ABS R_CODE_ADDR */
#define R_16C_NUM16_C 0X1006
 
/* R_S_16C_32 R_NUMBER R_ABS R_ADDRESS */
#define R_16C_NUM32 0X2001
 
/* R_S_16C_32 R_NUMBER R_ABS R_CODE_ADDR */
#define R_16C_NUM32_C 0X2006
 
/* R_S_16C_04 R_16C_DISPL R_PCREL R_ADDRESS */
#define R_16C_DISP04 0X5411
 
/* R_S_16C_04 R_16C_DISPL R_PCREL R_CODE_ADDR */
#define R_16C_DISP04_C 0X5416
 
/* R_S_16C_08 R_16C_DISPL R_PCREL R_ADDRESS */
#define R_16C_DISP08 0X0411
 
/* R_S_16C_08 R_16C_DISPL R_PCREL R_CODE_ADDR */
#define R_16C_DISP08_C 0X0416
 
/* R_S_16C_16 R_16C_DISPL R_PCREL R_ADDRESS */
#define R_16C_DISP16 0X1411
 
/* R_S_16C_16 R_16C_DISPL R_PCREL R_CODE_ADDR */
#define R_16C_DISP16_C 0X1416
 
/* R_S_16C_24 R_16C_DISPL R_PCREL R_ADDRESS */
#define R_16C_DISP24 0X7411
 
/* R_S_16C_24 R_16C_DISPL R_PCREL R_CODE_ADDR */
#define R_16C_DISP24_C 0X7416
 
/* R_S_16C_24a R_16C_DISPL R_PCREL R_ADDRESS */
#define R_16C_DISP24a 0X6411
 
/* R_S_16C_24a R_16C_DISPL R_PCREL R_CODE_ADDR */
#define R_16C_DISP24a_C 0X6416
 
/* R_S_16C_04 R_16C_REGREL R_ABS R_ADDRESS */
#define R_16C_REG04 0X5201
 
/* R_S_16C_04 R_16C_REGREL R_ABS R_CODE_ADDR */
#define R_16C_REG04_C 0X5206
 
/* R_S_16C_04_a R_16C_REGREL R_ABS R_ADDRESS */
#define R_16C_REG04a 0X4201
 
/* R_S_16C_04_a R_16C_REGREL R_ABS R_CODE_ADDR */
#define R_16C_REG04a_C 0X4206
 
/* R_S_16C_14 R_16C_REGREL R_ABS R_ADDRESS */
#define R_16C_REG14 0X3201
 
/* R_S_16C_14 R_16C_REGREL R_ABS R_CODE_ADDR */
#define R_16C_REG14_C 0X3206
 
/* R_S_16C_16 R_16C_REGREL R_ABS R_ADDRESS */
#define R_16C_REG16 0X1201
 
/* R_S_16C_16 R_16C_REGREL R_ABS R_CODE_ADDR */
#define R_16C_REG16_C 0X1206
 
/* R_S_16C_20 R_16C_REGREL R_ABS R_ADDRESS */
#define R_16C_REG20 0X8201
 
/* R_S_16C_20 R_16C_REGREL R_ABS R_CODE_ADDR */
#define R_16C_REG20_C 0X8206
 
/* R_S_16C_20 R_16C_ABS R_ABS R_ADDRESS */
#define R_16C_ABS20 0X8101
 
/* R_S_16C_20 R_16C_ABS R_ABS R_CODE_ADDR */
#define R_16C_ABS20_C 0X8106
 
/* R_S_16C_24 R_16C_ABS R_ABS R_ADDRESS */
#define R_16C_ABS24 0X7101
 
/* R_S_16C_24 R_16C_ABS R_ABS R_CODE_ADDR */
#define R_16C_ABS24_C 0X7106
 
/* R_S_16C_04 R_16C_IMMED R_ABS R_ADDRESS */
#define R_16C_IMM04 0X5301
 
/* R_S_16C_04 R_16C_IMMED R_ABS R_CODE_ADDR */
#define R_16C_IMM04_C 0X5306
 
/* R_S_16C_16 R_16C_IMMED R_ABS R_ADDRESS */
#define R_16C_IMM16 0X1301
 
/* R_S_16C_16 R_16C_IMMED R_ABS R_CODE_ADDR */
#define R_16C_IMM16_C 0X1306
 
/* R_S_16C_20 R_16C_IMMED R_ABS R_ADDRESS */
#define R_16C_IMM20 0X8301
 
/* R_S_16C_20 R_16C_IMMED R_ABS R_CODE_ADDR */
#define R_16C_IMM20_C 0X8306
 
/* R_S_16C_24 R_16C_IMMED R_ABS R_ADDRESS */
#define R_16C_IMM24 0X7301
 
/* R_S_16C_24 R_16C_IMMED R_ABS R_CODE_ADDR */
#define R_16C_IMM24_C 0X7306
 
/* R_S_16C_32 R_16C_IMMED R_ABS R_ADDRESS */
#define R_16C_IMM32 0X2301
 
/* R_S_16C_32 R_16C_IMMED R_ABS R_CODE_ADDR */
#define R_16C_IMM32_C 0X2306
 
 
/* Relocation item type. */
#define R_ADDRTYPE 0x000f
#define R_ADDRESS 0x0001 /* Take address of symbol. */
#define R_CODE_ADDR 0x0006 /* Take address of symbol divided by 2. */
 
/* Relocation action. */
#define R_RELTO 0x00f0
#define R_ABS 0x0000 /* Keep symbol's address as such. */
#define R_PCREL 0x0010 /* Subtract the pc address of hole. */
 
/* Relocation item data format. */
#define R_FORMAT 0x0f00
#define R_NUMBER 0x0000 /* Retain as two's complement value. */
#define R_16C_DISPL 0x0400 /* CR16C displacement type. */
#define R_16C_ABS 0x0100 /* CR16C absolute type. */
#define R_16C_REGREL 0x0200 /* CR16C register-relative type. */
#define R_16C_IMMED 0x0300 /* CR16C immediate type. */
 
/* Relocation item size. */
#define R_SIZESP 0xf000
#define R_S_16C_04 0x5000
#define R_S_16C_04_a 0x4000
#define R_S_16C_08 0x0000
#define R_S_16C_14 0x3000
#define R_S_16C_16 0x1000
#define R_S_16C_20 0x8000
#define R_S_16C_24_a 0x6000
#define R_S_16C_24 0x7000
#define R_S_16C_32 0x2000
 
 
/* Processor specific section indices. These sections do not actually
exist. Symbols with a st_shndx field corresponding to one of these
values have a special meaning. */
 
/* Far common symbol. */
#define SHN_CR16C_FCOMMON SHN_LORESERVE
#define SHN_CR16C_NCOMMON (SHN_LORESERVE + 1)
 
typedef struct reloc_map
{
unsigned short cr_reloc_type; /* CR relocation type. */
bfd_reloc_code_real_type bfd_reloc_enum; /* BFD relocation enum. */
} RELOC_MAP;
 
#endif /* _ELF_CR16C_H */
/contrib/toolchain/binutils/include/elf/cris.h
0,0 → 1,193
/* CRIS ELF support for BFD.
Copyright 2000, 2001, 2004, 2010 Free Software Foundation, Inc.
Contributed by Axis Communications AB, Lund, Sweden.
Written by Hans-Peter Nilsson.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_CRIS_H
#define _ELF_CRIS_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_cris_reloc_type)
RELOC_NUMBER (R_CRIS_NONE, 0)
RELOC_NUMBER (R_CRIS_8, 1)
RELOC_NUMBER (R_CRIS_16, 2)
RELOC_NUMBER (R_CRIS_32, 3)
 
/* The "PC" position is the location right after the relocation. */
RELOC_NUMBER (R_CRIS_8_PCREL, 4)
RELOC_NUMBER (R_CRIS_16_PCREL, 5)
RELOC_NUMBER (R_CRIS_32_PCREL, 6)
 
RELOC_NUMBER (R_CRIS_GNU_VTINHERIT, 7)
RELOC_NUMBER (R_CRIS_GNU_VTENTRY, 8)
 
/* Copy contents at dynlinking. Generated by the linker.
The BFD equivalent is BFD_RELOC_CRIS_COPY. */
RELOC_NUMBER (R_CRIS_COPY, 9)
 
/* Create GOT entry. Generated by the linker.
The BFD equivalent is BFD_RELOC_CRIS_GLOB_DAT. */
RELOC_NUMBER (R_CRIS_GLOB_DAT, 10)
 
/* Create PLT entry. Generated by the linker.
The BFD equivalent is BFD_RELOC_CRIS_JUMP_SLOT. */
RELOC_NUMBER (R_CRIS_JUMP_SLOT, 11)
 
/* Adjust by program base. Generated by the linker.
The BFD equivalent is BFD_RELOC_CRIS_RELATIVE. */
RELOC_NUMBER (R_CRIS_RELATIVE, 12)
 
/* A 16-bit offset to entry in GOT and request to create GOT entry for
that symbol.
The BFD equivalent is BFD_RELOC_CRIS_16_GOT. */
RELOC_NUMBER (R_CRIS_16_GOT, 13)
 
/* A 32-bit offset to entry in GOT and request to create GOT entry for
that symbol.
The BFD equivalent is BFD_RELOC_CRIS_32_GOT. */
RELOC_NUMBER (R_CRIS_32_GOT, 14)
 
/* A 16-bit offset to entry in PLT part of GOT and request to create PLT
entry for that symbol.
The BFD equivalent is BFD_RELOC_CRIS_16_GOTPLT. */
RELOC_NUMBER (R_CRIS_16_GOTPLT, 15)
 
/* A 32-bit offset to entry in PLT part of GOT and request to create PLT
entry for that symbol.
The BFD equivalent is BFD_RELOC_CRIS_32_GOTPLT. */
RELOC_NUMBER (R_CRIS_32_GOTPLT, 16)
 
/* A 32-bit offset from GOT to (local) symbol: no GOT entry should be
necessary.
The BFD equivalent is BFD_RELOC_CRIS_32_GOTREL. */
RELOC_NUMBER (R_CRIS_32_GOTREL, 17)
 
/* A 32-bit offset from GOT to entry for this symbol in PLT and request
to create PLT entry for symbol.
The BFD equivalent is BFD_RELOC_CRIS_32_GOTREL. */
RELOC_NUMBER (R_CRIS_32_PLT_GOTREL, 18)
 
/* A 32-bit offset from location after this relocation (addend specifies
offset) to entry for this symbol in PLT and request to create PLT
entry for symbol.
The BFD equivalent is BFD_RELOC_CRIS_32_PLT_PCREL. */
RELOC_NUMBER (R_CRIS_32_PLT_PCREL, 19)
 
/* An assembler-generated-only relocation, instructing the linker to
reserve two GOT slots, carrying the R_CRIS_DTP relocation for the
symbol (pointing to the first slot, the relocation fills in
both). The value is a 32-bit-value, relative to the start of the
GOT. Assembly syntax: "sym:GDGOTREL". */
RELOC_NUMBER (R_CRIS_32_GOT_GD, 20)
 
/* Similar to R_CRIS_32_GOT_GD, but the value is a 16-bit unsigned
number, limiting access to 65536/4 global symbols per module (or
65536/8 thread variables; loosely speaking G*4+T*8 < 65536, where
T is the number of thread variables and G is the number of other
external global variables and functions). Assembly syntax:
"sym:GDGOTREL16". */
RELOC_NUMBER (R_CRIS_16_GOT_GD, 21)
 
/* Similar to R_CRIS_32_GOT_GD, but the value is the absolute
address of the GOT entry. Disallowed in DSOs created with
-shared. Assembly syntax: "sym:GD". */
RELOC_NUMBER (R_CRIS_32_GD, 22)
 
/* A linker-generated-only relocation, instructing the dynamic
linker to fill in the module ID and module-relative-TLS-block
offset of the symbol in question, used for GOT entries. Note
that this relocation instructs to fill in two 32-bit values. */
RELOC_NUMBER (R_CRIS_DTP, 23)
 
/* An assembler-generated-only relocation, instructing the linker to
reserve the first two GOT slots, and attach the R_CRIS_DTPMOD
relocation(*) for the module to the first slot, the second
containing zero. The value is 32 bits, the offset from the start
of the TLS block of the module to the thread-local symbol
mentioned in the relocation. This relocation must only be applied
to module-local symbols. Assembly syntax: "expr:DTPREL". */
RELOC_NUMBER (R_CRIS_32_DTPREL, 24)
 
/* Similar to R_CRIS_32_DTPREL, but the value is a 16-bit signed
number, limiting the size of thread-variables of the DSO to 32768
bytes. (Note: matches both model 1 and 2 and allows use of addo.w
as the instruction where this relocation is used.) Assembly
syntax: "expr:DTPREL16". */
RELOC_NUMBER (R_CRIS_16_DTPREL, 25)
 
/* An assembler-generated-only relocation, instructing the linker to
reserve a GOT slot and attach the R_CRIS_32_TPREL relocation for
the symbol in question. The value is 32 bits, which is the
GOT-relative offset of the slot. Assembly syntax:
"sym:TPOFFGOT". */
RELOC_NUMBER (R_CRIS_32_GOT_TPREL, 26)
 
/* Similar to R_CRIS_32_TPREL, but the value is a 16-bit positive
number, limiting the number of thread- and global variables of
the DSO to 32768/4. Assembly syntax: "sym:TPOFFGOT16". */
RELOC_NUMBER (R_CRIS_16_GOT_TPREL, 27)
 
/* An assembler- and linker-generated relocation, instructing to
resolve the symbol in question yielding the TLS offset of the
thread variable, relative to the global TLS block. Not allowed
as input when generating a DSO. Assembly syntax:
"expr:TPOFF". */
RELOC_NUMBER (R_CRIS_32_TPREL, 28)
 
/* Similar to R_CRIS_32_TPREL, but only applicable to executables
compiled with -msmall-tls. Not allowed in a DSO. The value is a
16-bit signed number, limiting the size of thread-variables of
the executable to 32768 bytes. (Note: being signed makes it match
both model 1 and 2 and allows use of addo.w as the instruction
where this relocation is applied.) Assembly syntax:
"expr:TPOFF16". */
RELOC_NUMBER (R_CRIS_16_TPREL, 29)
 
/* A linker-generated-only relocation, instructing the dynamic
linker to fill in the current module ID, used for GOT entries
(usually the fourth one). */
RELOC_NUMBER (R_CRIS_DTPMOD, 30)
 
/* Similar to R_CRIS_32_GOT_TPREL, but the value is the absolute
address of the GOT entry. Disallowed in DSOs created with
-shared. Assembly syntax: "sym:IE". */
RELOC_NUMBER (R_CRIS_32_IE, 31)
 
/* No other relocs must be visible outside the assembler. */
 
END_RELOC_NUMBERS (R_CRIS_max)
 
/* User symbols in this file have a leading underscore. */
#define EF_CRIS_UNDERSCORE 0x00000001
 
/* This is a mask for different incompatible machine variants. */
#define EF_CRIS_VARIANT_MASK 0x0000000e
 
/* Variant 0; may contain v0..10 object. */
#define EF_CRIS_VARIANT_ANY_V0_V10 0x00000000
 
/* Variant 1; contains v32 object. */
#define EF_CRIS_VARIANT_V32 0x00000002
 
/* Variant 2; contains object compatible with v32 and v10. */
#define EF_CRIS_VARIANT_COMMON_V10_V32 0x00000004
 
#endif /* _ELF_CRIS_H */
/contrib/toolchain/binutils/include/elf/crx.h
0,0 → 1,53
/* CRX ELF support for BFD.
Copyright 2004, 2010 Free Software Foundation, Inc.
Contributed by Tomer Levi, NSC, Israel.
Originally written for GAS 2.12 by Tomer Levi, NSC, Israel.
Updates, BFDizing, GNUifying and ELF support by Tomer Levi.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_CRX_H
#define _ELF_CRX_H
 
#include "elf/reloc-macros.h"
 
/* Creating indices for reloc_map_index array. */
START_RELOC_NUMBERS(elf_crx_reloc_type)
RELOC_NUMBER (R_CRX_NONE, 0)
RELOC_NUMBER (R_CRX_REL4, 1)
RELOC_NUMBER (R_CRX_REL8, 2)
RELOC_NUMBER (R_CRX_REL8_CMP, 3)
RELOC_NUMBER (R_CRX_REL16, 4)
RELOC_NUMBER (R_CRX_REL24, 5)
RELOC_NUMBER (R_CRX_REL32, 6)
RELOC_NUMBER (R_CRX_REGREL12, 7)
RELOC_NUMBER (R_CRX_REGREL22, 8)
RELOC_NUMBER (R_CRX_REGREL28, 9)
RELOC_NUMBER (R_CRX_REGREL32, 10)
RELOC_NUMBER (R_CRX_ABS16, 11)
RELOC_NUMBER (R_CRX_ABS32, 12)
RELOC_NUMBER (R_CRX_NUM8, 13)
RELOC_NUMBER (R_CRX_NUM16, 14)
RELOC_NUMBER (R_CRX_NUM32, 15)
RELOC_NUMBER (R_CRX_IMM16, 16)
RELOC_NUMBER (R_CRX_IMM32, 17)
RELOC_NUMBER (R_CRX_SWITCH8, 18)
RELOC_NUMBER (R_CRX_SWITCH16, 19)
RELOC_NUMBER (R_CRX_SWITCH32, 20)
END_RELOC_NUMBERS(R_CRX_MAX)
#endif /* _ELF_CRX_H */
/contrib/toolchain/binutils/include/elf/d10v.h
0,0 → 1,38
/* d10v ELF support for BFD.
Copyright 1998, 2000, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_D10V_H
#define _ELF_D10V_H
 
#include "elf/reloc-macros.h"
 
/* Relocation types. */
START_RELOC_NUMBERS (elf_d10v_reloc_type)
RELOC_NUMBER (R_D10V_NONE, 0)
RELOC_NUMBER (R_D10V_10_PCREL_R, 1)
RELOC_NUMBER (R_D10V_10_PCREL_L, 2)
RELOC_NUMBER (R_D10V_16, 3)
RELOC_NUMBER (R_D10V_18, 4)
RELOC_NUMBER (R_D10V_18_PCREL, 5)
RELOC_NUMBER (R_D10V_32, 6)
RELOC_NUMBER (R_D10V_GNU_VTINHERIT, 7)
RELOC_NUMBER (R_D10V_GNU_VTENTRY, 8)
END_RELOC_NUMBERS (R_D10V_max)
 
#endif
/contrib/toolchain/binutils/include/elf/d30v.h
0,0 → 1,42
/* d30v ELF support for BFD.
Copyright 1998, 2000, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_D30V_H
#define _ELF_D30V_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_d30v_reloc_type)
RELOC_NUMBER (R_D30V_NONE, 0)
RELOC_NUMBER (R_D30V_6, 1)
RELOC_NUMBER (R_D30V_9_PCREL, 2)
RELOC_NUMBER (R_D30V_9_PCREL_R, 3)
RELOC_NUMBER (R_D30V_15, 4)
RELOC_NUMBER (R_D30V_15_PCREL, 5)
RELOC_NUMBER (R_D30V_15_PCREL_R, 6)
RELOC_NUMBER (R_D30V_21, 7)
RELOC_NUMBER (R_D30V_21_PCREL, 8)
RELOC_NUMBER (R_D30V_21_PCREL_R, 9)
RELOC_NUMBER (R_D30V_32, 10)
RELOC_NUMBER (R_D30V_32_PCREL, 11)
RELOC_NUMBER (R_D30V_32_NORMAL, 12)
END_RELOC_NUMBERS (R_D30V_max)
 
#endif
/contrib/toolchain/binutils/include/elf/dlx.h
0,0 → 1,53
/* DLX support for BFD.
Copyright 2002, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_DLX_H
#define _ELF_DLX_H
 
#include "elf/reloc-macros.h"
 
#if 0
START_RELOC_NUMBERS (elf_dlx_reloc_type)
RELOC_NUMBER (R_DLX_NONE, 0)
RELOC_NUMBER (R_DLX_RELOC_16, 1)
RELOC_NUMBER (R_DLX_RELOC_26, 2)
RELOC_NUMBER (R_DLX_RELOC_32, 3)
RELOC_NUMBER (R_DLX_GNU_VTINHERIT, 4)
RELOC_NUMBER (R_DLX_GNU_VTENTRY, 5)
RELOC_NUMBER (R_DLX_RELOC_16_HI, 6)
RELOC_NUMBER (R_DLX_RELOC_16_LO, 7)
RELOC_NUMBER (R_DLX_RELOC_16_PCREL, 8)
RELOC_NUMBER (R_DLX_RELOC_26_PCREL, 9)
END_RELOC_NUMBERS (R_DLX_max)
#else
START_RELOC_NUMBERS (elf_dlx_reloc_type)
RELOC_NUMBER (R_DLX_NONE, 0)
RELOC_NUMBER (R_DLX_RELOC_8, 1)
RELOC_NUMBER (R_DLX_RELOC_16, 2)
RELOC_NUMBER (R_DLX_RELOC_32, 3)
RELOC_NUMBER (R_DLX_GNU_VTINHERIT, 4)
RELOC_NUMBER (R_DLX_GNU_VTENTRY, 5)
RELOC_NUMBER (R_DLX_RELOC_16_HI, 6)
RELOC_NUMBER (R_DLX_RELOC_16_LO, 7)
RELOC_NUMBER (R_DLX_RELOC_16_PCREL, 8)
RELOC_NUMBER (R_DLX_RELOC_26_PCREL, 9)
END_RELOC_NUMBERS (R_DLX_max)
#endif /* 0 */
 
#endif /* _ELF_DLX_H */
/contrib/toolchain/binutils/include/elf/dwarf.h
0,0 → 1,323
/* Declarations and definitions of codes relating to the DWARF symbolic
debugging information format.
 
Written by Ron Guilmette (rfg@netcom.com)
 
Copyright 1992, 1993, 1995, 1999, 2005, 2010 Free Software Foundation, Inc.
 
This file is part of both GCC and the BFD library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not, write to the Free
Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
 
/* This file is derived from the DWARF specification (a public document)
Revision 1.0.1 (April 8, 1992) developed by the UNIX International
Programming Languages Special Interest Group (UI/PLSIG) and distributed
by UNIX International. Copies of this specification are available from
UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054. */
 
#ifndef _ELF_DWARF_H
#define _ELF_DWARF_H
 
/* Tag names and codes. */
 
enum dwarf_tag {
TAG_padding = 0x0000,
TAG_array_type = 0x0001,
TAG_class_type = 0x0002,
TAG_entry_point = 0x0003,
TAG_enumeration_type = 0x0004,
TAG_formal_parameter = 0x0005,
TAG_global_subroutine = 0x0006,
TAG_global_variable = 0x0007,
/* 0x0008 -- reserved */
/* 0x0009 -- reserved */
TAG_label = 0x000a,
TAG_lexical_block = 0x000b,
TAG_local_variable = 0x000c,
TAG_member = 0x000d,
/* 0x000e -- reserved */
TAG_pointer_type = 0x000f,
TAG_reference_type = 0x0010,
TAG_compile_unit = 0x0011,
TAG_string_type = 0x0012,
TAG_structure_type = 0x0013,
TAG_subroutine = 0x0014,
TAG_subroutine_type = 0x0015,
TAG_typedef = 0x0016,
TAG_union_type = 0x0017,
TAG_unspecified_parameters = 0x0018,
TAG_variant = 0x0019,
TAG_common_block = 0x001a,
TAG_common_inclusion = 0x001b,
TAG_inheritance = 0x001c,
TAG_inlined_subroutine = 0x001d,
TAG_module = 0x001e,
TAG_ptr_to_member_type = 0x001f,
TAG_set_type = 0x0020,
TAG_subrange_type = 0x0021,
TAG_with_stmt = 0x0022,
 
/* GNU extensions */
 
TAG_format_label = 0x8000, /* for FORTRAN 77 and Fortran 90 */
TAG_namelist = 0x8001, /* For Fortran 90 */
TAG_function_template = 0x8002, /* for C++ */
TAG_class_template = 0x8003 /* for C++ */
};
 
#define TAG_lo_user 0x8000 /* implementation-defined range start */
#define TAG_hi_user 0xffff /* implementation-defined range end */
#define TAG_source_file TAG_compile_unit /* for backward compatibility */
 
/* Form names and codes. */
 
enum dwarf_form {
FORM_ADDR = 0x1,
FORM_REF = 0x2,
FORM_BLOCK2 = 0x3,
FORM_BLOCK4 = 0x4,
FORM_DATA2 = 0x5,
FORM_DATA4 = 0x6,
FORM_DATA8 = 0x7,
FORM_STRING = 0x8
};
 
/* Attribute names and codes. */
 
enum dwarf_attribute {
AT_sibling = (0x0010|FORM_REF),
AT_location = (0x0020|FORM_BLOCK2),
AT_name = (0x0030|FORM_STRING),
AT_fund_type = (0x0050|FORM_DATA2),
AT_mod_fund_type = (0x0060|FORM_BLOCK2),
AT_user_def_type = (0x0070|FORM_REF),
AT_mod_u_d_type = (0x0080|FORM_BLOCK2),
AT_ordering = (0x0090|FORM_DATA2),
AT_subscr_data = (0x00a0|FORM_BLOCK2),
AT_byte_size = (0x00b0|FORM_DATA4),
AT_bit_offset = (0x00c0|FORM_DATA2),
AT_bit_size = (0x00d0|FORM_DATA4),
/* (0x00e0|FORM_xxxx) -- reserved */
AT_element_list = (0x00f0|FORM_BLOCK4),
AT_stmt_list = (0x0100|FORM_DATA4),
AT_low_pc = (0x0110|FORM_ADDR),
AT_high_pc = (0x0120|FORM_ADDR),
AT_language = (0x0130|FORM_DATA4),
AT_member = (0x0140|FORM_REF),
AT_discr = (0x0150|FORM_REF),
AT_discr_value = (0x0160|FORM_BLOCK2),
/* (0x0170|FORM_xxxx) -- reserved */
/* (0x0180|FORM_xxxx) -- reserved */
AT_string_length = (0x0190|FORM_BLOCK2),
AT_common_reference = (0x01a0|FORM_REF),
AT_comp_dir = (0x01b0|FORM_STRING),
AT_const_value_string = (0x01c0|FORM_STRING),
AT_const_value_data2 = (0x01c0|FORM_DATA2),
AT_const_value_data4 = (0x01c0|FORM_DATA4),
AT_const_value_data8 = (0x01c0|FORM_DATA8),
AT_const_value_block2 = (0x01c0|FORM_BLOCK2),
AT_const_value_block4 = (0x01c0|FORM_BLOCK4),
AT_containing_type = (0x01d0|FORM_REF),
AT_default_value_addr = (0x01e0|FORM_ADDR),
AT_default_value_data2 = (0x01e0|FORM_DATA2),
AT_default_value_data4 = (0x01e0|FORM_DATA4),
AT_default_value_data8 = (0x01e0|FORM_DATA8),
AT_default_value_string = (0x01e0|FORM_STRING),
AT_friends = (0x01f0|FORM_BLOCK2),
AT_inline = (0x0200|FORM_STRING),
AT_is_optional = (0x0210|FORM_STRING),
AT_lower_bound_ref = (0x0220|FORM_REF),
AT_lower_bound_data2 = (0x0220|FORM_DATA2),
AT_lower_bound_data4 = (0x0220|FORM_DATA4),
AT_lower_bound_data8 = (0x0220|FORM_DATA8),
AT_private = (0x0240|FORM_STRING),
AT_producer = (0x0250|FORM_STRING),
AT_program = (0x0230|FORM_STRING),
AT_protected = (0x0260|FORM_STRING),
AT_prototyped = (0x0270|FORM_STRING),
AT_public = (0x0280|FORM_STRING),
AT_pure_virtual = (0x0290|FORM_STRING),
AT_return_addr = (0x02a0|FORM_BLOCK2),
AT_abstract_origin = (0x02b0|FORM_REF),
AT_start_scope = (0x02c0|FORM_DATA4),
AT_stride_size = (0x02e0|FORM_DATA4),
AT_upper_bound_ref = (0x02f0|FORM_REF),
AT_upper_bound_data2 = (0x02f0|FORM_DATA2),
AT_upper_bound_data4 = (0x02f0|FORM_DATA4),
AT_upper_bound_data8 = (0x02f0|FORM_DATA8),
AT_virtual = (0x0300|FORM_STRING),
 
/* GNU extensions. */
 
AT_sf_names = (0x8000|FORM_DATA4),
AT_src_info = (0x8010|FORM_DATA4),
AT_mac_info = (0x8020|FORM_DATA4),
AT_src_coords = (0x8030|FORM_DATA4),
AT_body_begin = (0x8040|FORM_ADDR),
AT_body_end = (0x8050|FORM_ADDR)
};
 
#define AT_lo_user 0x2000 /* implementation-defined range start */
#define AT_hi_user 0x3ff0 /* implementation-defined range end */
 
/* Location atom names and codes. */
 
enum dwarf_location_atom {
OP_REG = 0x01,
OP_BASEREG = 0x02,
OP_ADDR = 0x03,
OP_CONST = 0x04,
OP_DEREF2 = 0x05,
OP_DEREF4 = 0x06,
OP_ADD = 0x07,
 
/* GNU extensions. */
 
OP_MULT = 0x80
};
 
#define OP_LO_USER 0x80 /* implementation-defined range start */
#define OP_HI_USER 0xff /* implementation-defined range end */
 
/* Fundamental type names and codes. */
 
enum dwarf_fundamental_type {
FT_char = 0x0001,
FT_signed_char = 0x0002,
FT_unsigned_char = 0x0003,
FT_short = 0x0004,
FT_signed_short = 0x0005,
FT_unsigned_short = 0x0006,
FT_integer = 0x0007,
FT_signed_integer = 0x0008,
FT_unsigned_integer = 0x0009,
FT_long = 0x000a,
FT_signed_long = 0x000b,
FT_unsigned_long = 0x000c,
FT_pointer = 0x000d, /* an alias for (void *) */
FT_float = 0x000e,
FT_dbl_prec_float = 0x000f,
FT_ext_prec_float = 0x0010, /* breaks "classic" svr4 SDB */
FT_complex = 0x0011, /* breaks "classic" svr4 SDB */
FT_dbl_prec_complex = 0x0012, /* breaks "classic" svr4 SDB */
/* 0x0013 -- reserved */
FT_void = 0x0014,
FT_boolean = 0x0015, /* breaks "classic" svr4 SDB */
FT_ext_prec_complex = 0x0016, /* breaks "classic" svr4 SDB */
FT_label = 0x0017,
/* GNU extensions
The low order byte must indicate the size (in bytes) for the type.
All of these types will probably break "classic" svr4 SDB. */
 
FT_long_long = 0x8008,
FT_signed_long_long = 0x8108,
FT_unsigned_long_long = 0x8208,
 
FT_int8 = 0x9001,
FT_signed_int8 = 0x9101,
FT_unsigned_int8 = 0x9201,
FT_int16 = 0x9302,
FT_signed_int16 = 0x9402,
FT_unsigned_int16 = 0x9502,
FT_int32 = 0x9604,
FT_signed_int32 = 0x9704,
FT_unsigned_int32 = 0x9804,
FT_int64 = 0x9908,
FT_signed_int64 = 0x9a08,
FT_unsigned_int64 = 0x9b08,
FT_int128 = 0x9c10,
FT_signed_int128 = 0x9d10,
FT_unsigned_int128 = 0x9e10,
 
FT_real32 = 0xa004,
FT_real64 = 0xa108,
FT_real96 = 0xa20c,
FT_real128 = 0xa310
};
 
#define FT_lo_user 0x8000 /* implementation-defined range start */
#define FT_hi_user 0xffff /* implementation defined range end */
 
/* Type modifier names and codes. */
 
enum dwarf_type_modifier {
MOD_pointer_to = 0x01,
MOD_reference_to = 0x02,
MOD_const = 0x03,
MOD_volatile = 0x04
};
 
#define MOD_lo_user 0x80 /* implementation-defined range start */
#define MOD_hi_user 0xff /* implementation-defined range end */
 
/* Array ordering names and codes. */
 
enum dwarf_array_dim_ordering {
ORD_row_major = 0,
ORD_col_major = 1
};
 
/* Array subscript format names and codes. */
 
enum dwarf_subscr_data_formats {
FMT_FT_C_C = 0x0,
FMT_FT_C_X = 0x1,
FMT_FT_X_C = 0x2,
FMT_FT_X_X = 0x3,
FMT_UT_C_C = 0x4,
FMT_UT_C_X = 0x5,
FMT_UT_X_C = 0x6,
FMT_UT_X_X = 0x7,
FMT_ET = 0x8
};
 
/* Derived from above for ease of use. */
 
#define FMT_CODE(_FUNDAMENTAL_TYPE_P, _LB_CONST_P, _UB_CONST_P) \
(((_FUNDAMENTAL_TYPE_P) ? 0 : 4) \
| ((_LB_CONST_P) ? 0 : 2) \
| ((_UB_CONST_P) ? 0 : 1))
 
/* Source language names and codes. */
 
enum dwarf_source_language {
LANG_C89 = 0x00000001,
LANG_C = 0x00000002,
LANG_ADA83 = 0x00000003,
LANG_C_PLUS_PLUS = 0x00000004,
LANG_COBOL74 = 0x00000005,
LANG_COBOL85 = 0x00000006,
LANG_FORTRAN77 = 0x00000007,
LANG_FORTRAN90 = 0x00000008,
LANG_PASCAL83 = 0x00000009,
LANG_MODULA2 = 0x0000000a,
LANG_JAVA = 0x0000000b
};
 
#define LANG_lo_user 0x00008000 /* implementation-defined range start */
#define LANG_hi_user 0x0000ffff /* implementation-defined range end */
 
/* Names and codes for GNU "macinfo" extension. */
 
enum dwarf_macinfo_record_type {
MACINFO_start = 's',
MACINFO_resume = 'r',
MACINFO_define = 'd',
MACINFO_undef = 'u'
};
 
#endif /* _ELF_DWARF_H */
/contrib/toolchain/binutils/include/elf/epiphany.h
0,0 → 1,59
/* Adapteva EPIPHANY ELF support for BFD.
Copyright (C) 2009, 2011 Free Software Foundation, Inc.
Contributed by Embecosm on behalf of Adapteva, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_EPIPHANY_H
#define _ELF_EPIPHANY_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_epiphany_reloc_type)
RELOC_NUMBER (R_EPIPHANY_NONE, 0)
 
/* Absolute address relocations. */
RELOC_NUMBER (R_EPIPHANY_8, 1)
RELOC_NUMBER (R_EPIPHANY_16, 2)
RELOC_NUMBER (R_EPIPHANY_32, 3)
 
/* PC-relative relocations. */
RELOC_NUMBER (R_EPIPHANY_8_PCREL, 4)
RELOC_NUMBER (R_EPIPHANY_16_PCREL,5)
RELOC_NUMBER (R_EPIPHANY_32_PCREL,6)
 
/* special forms for 8/24 bit branch displacements. */
RELOC_NUMBER (R_EPIPHANY_SIMM8, 7)
RELOC_NUMBER (R_EPIPHANY_SIMM24, 8)
 
/* HIGH and LOW relocations taking part of a 32 bit address and
depositing it into the IMM16 field of a destination. */
RELOC_NUMBER (R_EPIPHANY_HIGH, 9)
RELOC_NUMBER (R_EPIPHANY_LOW,10)
 
/* 11 bit signed immediate value. */
RELOC_NUMBER (R_EPIPHANY_SIMM11, 11)
/* 11 bit magnitude addressing displacement. */
RELOC_NUMBER (R_EPIPHANY_IMM11, 12)
 
/* 8 bit immediate for MOV.S R,IMM8. */
RELOC_NUMBER (R_EPIPHANY_IMM8, 13)
 
END_RELOC_NUMBERS(R_EPIPHANY_max)
 
#endif /* _ELF_EPIPHANY_H */
/contrib/toolchain/binutils/include/elf/external.h
0,0 → 1,288
/* ELF support for BFD.
Copyright 1991, 1992, 1993, 1995, 1997, 1998, 1999, 2001, 2003, 2005,
2008, 2010 Free Software Foundation, Inc.
 
Written by Fred Fish @ Cygnus Support, from information published
in "UNIX System V Release 4, Programmers Guide: ANSI C and
Programming Support Tools".
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
/* This file is part of ELF support for BFD, and contains the portions
that describe how ELF is represented externally by the BFD library.
I.E. it describes the in-file representation of ELF. It requires
the elf/common.h file which contains the portions that are common to
both the internal and external representations. */
 
/* The 64-bit stuff is kind of random. Perhaps someone will publish a
spec someday. */
 
#ifndef _ELF_EXTERNAL_H
#define _ELF_EXTERNAL_H
 
/* Special section indices, which may show up in st_shndx fields, among
other places. */
 
#define SHN_LORESERVE 0xFF00 /* Begin range of reserved indices */
#define SHN_LOPROC 0xFF00 /* Begin range of appl-specific */
#define SHN_HIPROC 0xFF1F /* End range of appl-specific */
#define SHN_LOOS 0xFF20 /* OS specific semantics, lo */
#define SHN_HIOS 0xFF3F /* OS specific semantics, hi */
#define SHN_ABS 0xFFF1 /* Associated symbol is absolute */
#define SHN_COMMON 0xFFF2 /* Associated symbol is in common */
#define SHN_XINDEX 0xFFFF /* Section index is held elsewhere */
#define SHN_HIRESERVE 0xFFFF /* End range of reserved indices */
 
/* ELF Header (32-bit implementations) */
 
typedef struct {
unsigned char e_ident[16]; /* ELF "magic number" */
unsigned char e_type[2]; /* Identifies object file type */
unsigned char e_machine[2]; /* Specifies required architecture */
unsigned char e_version[4]; /* Identifies object file version */
unsigned char e_entry[4]; /* Entry point virtual address */
unsigned char e_phoff[4]; /* Program header table file offset */
unsigned char e_shoff[4]; /* Section header table file offset */
unsigned char e_flags[4]; /* Processor-specific flags */
unsigned char e_ehsize[2]; /* ELF header size in bytes */
unsigned char e_phentsize[2]; /* Program header table entry size */
unsigned char e_phnum[2]; /* Program header table entry count */
unsigned char e_shentsize[2]; /* Section header table entry size */
unsigned char e_shnum[2]; /* Section header table entry count */
unsigned char e_shstrndx[2]; /* Section header string table index */
} Elf32_External_Ehdr;
 
typedef struct {
unsigned char e_ident[16]; /* ELF "magic number" */
unsigned char e_type[2]; /* Identifies object file type */
unsigned char e_machine[2]; /* Specifies required architecture */
unsigned char e_version[4]; /* Identifies object file version */
unsigned char e_entry[8]; /* Entry point virtual address */
unsigned char e_phoff[8]; /* Program header table file offset */
unsigned char e_shoff[8]; /* Section header table file offset */
unsigned char e_flags[4]; /* Processor-specific flags */
unsigned char e_ehsize[2]; /* ELF header size in bytes */
unsigned char e_phentsize[2]; /* Program header table entry size */
unsigned char e_phnum[2]; /* Program header table entry count */
unsigned char e_shentsize[2]; /* Section header table entry size */
unsigned char e_shnum[2]; /* Section header table entry count */
unsigned char e_shstrndx[2]; /* Section header string table index */
} Elf64_External_Ehdr;
 
/* Program header */
 
typedef struct {
unsigned char p_type[4]; /* Identifies program segment type */
unsigned char p_offset[4]; /* Segment file offset */
unsigned char p_vaddr[4]; /* Segment virtual address */
unsigned char p_paddr[4]; /* Segment physical address */
unsigned char p_filesz[4]; /* Segment size in file */
unsigned char p_memsz[4]; /* Segment size in memory */
unsigned char p_flags[4]; /* Segment flags */
unsigned char p_align[4]; /* Segment alignment, file & memory */
} Elf32_External_Phdr;
 
typedef struct {
unsigned char p_type[4]; /* Identifies program segment type */
unsigned char p_flags[4]; /* Segment flags */
unsigned char p_offset[8]; /* Segment file offset */
unsigned char p_vaddr[8]; /* Segment virtual address */
unsigned char p_paddr[8]; /* Segment physical address */
unsigned char p_filesz[8]; /* Segment size in file */
unsigned char p_memsz[8]; /* Segment size in memory */
unsigned char p_align[8]; /* Segment alignment, file & memory */
} Elf64_External_Phdr;
 
/* Section header */
 
typedef struct {
unsigned char sh_name[4]; /* Section name, index in string tbl */
unsigned char sh_type[4]; /* Type of section */
unsigned char sh_flags[4]; /* Miscellaneous section attributes */
unsigned char sh_addr[4]; /* Section virtual addr at execution */
unsigned char sh_offset[4]; /* Section file offset */
unsigned char sh_size[4]; /* Size of section in bytes */
unsigned char sh_link[4]; /* Index of another section */
unsigned char sh_info[4]; /* Additional section information */
unsigned char sh_addralign[4]; /* Section alignment */
unsigned char sh_entsize[4]; /* Entry size if section holds table */
} Elf32_External_Shdr;
 
typedef struct {
unsigned char sh_name[4]; /* Section name, index in string tbl */
unsigned char sh_type[4]; /* Type of section */
unsigned char sh_flags[8]; /* Miscellaneous section attributes */
unsigned char sh_addr[8]; /* Section virtual addr at execution */
unsigned char sh_offset[8]; /* Section file offset */
unsigned char sh_size[8]; /* Size of section in bytes */
unsigned char sh_link[4]; /* Index of another section */
unsigned char sh_info[4]; /* Additional section information */
unsigned char sh_addralign[8]; /* Section alignment */
unsigned char sh_entsize[8]; /* Entry size if section holds table */
} Elf64_External_Shdr;
 
/* Symbol table entry */
 
typedef struct {
unsigned char st_name[4]; /* Symbol name, index in string tbl */
unsigned char st_value[4]; /* Value of the symbol */
unsigned char st_size[4]; /* Associated symbol size */
unsigned char st_info[1]; /* Type and binding attributes */
unsigned char st_other[1]; /* No defined meaning, 0 */
unsigned char st_shndx[2]; /* Associated section index */
} Elf32_External_Sym;
 
typedef struct {
unsigned char st_name[4]; /* Symbol name, index in string tbl */
unsigned char st_info[1]; /* Type and binding attributes */
unsigned char st_other[1]; /* No defined meaning, 0 */
unsigned char st_shndx[2]; /* Associated section index */
unsigned char st_value[8]; /* Value of the symbol */
unsigned char st_size[8]; /* Associated symbol size */
} Elf64_External_Sym;
 
typedef struct {
unsigned char est_shndx[4]; /* Section index */
} Elf_External_Sym_Shndx;
 
/* Note segments */
 
typedef struct {
unsigned char namesz[4]; /* Size of entry's owner string */
unsigned char descsz[4]; /* Size of the note descriptor */
unsigned char type[4]; /* Interpretation of the descriptor */
char name[1]; /* Start of the name+desc data */
} Elf_External_Note;
 
/* Relocation Entries */
typedef struct {
unsigned char r_offset[4]; /* Location at which to apply the action */
unsigned char r_info[4]; /* index and type of relocation */
} Elf32_External_Rel;
 
typedef struct {
unsigned char r_offset[4]; /* Location at which to apply the action */
unsigned char r_info[4]; /* index and type of relocation */
unsigned char r_addend[4]; /* Constant addend used to compute value */
} Elf32_External_Rela;
 
typedef struct {
unsigned char r_offset[8]; /* Location at which to apply the action */
unsigned char r_info[8]; /* index and type of relocation */
} Elf64_External_Rel;
 
typedef struct {
unsigned char r_offset[8]; /* Location at which to apply the action */
unsigned char r_info[8]; /* index and type of relocation */
unsigned char r_addend[8]; /* Constant addend used to compute value */
} Elf64_External_Rela;
 
/* dynamic section structure */
 
typedef struct {
unsigned char d_tag[4]; /* entry tag value */
union {
unsigned char d_val[4];
unsigned char d_ptr[4];
} d_un;
} Elf32_External_Dyn;
 
typedef struct {
unsigned char d_tag[8]; /* entry tag value */
union {
unsigned char d_val[8];
unsigned char d_ptr[8];
} d_un;
} Elf64_External_Dyn;
 
/* The version structures are currently size independent. They are
named without a 32 or 64. If that ever changes, these structures
will need to be renamed. */
 
/* This structure appears in a SHT_GNU_verdef section. */
 
typedef struct {
unsigned char vd_version[2];
unsigned char vd_flags[2];
unsigned char vd_ndx[2];
unsigned char vd_cnt[2];
unsigned char vd_hash[4];
unsigned char vd_aux[4];
unsigned char vd_next[4];
} Elf_External_Verdef;
 
/* This structure appears in a SHT_GNU_verdef section. */
 
typedef struct {
unsigned char vda_name[4];
unsigned char vda_next[4];
} Elf_External_Verdaux;
 
/* This structure appears in a SHT_GNU_verneed section. */
 
typedef struct {
unsigned char vn_version[2];
unsigned char vn_cnt[2];
unsigned char vn_file[4];
unsigned char vn_aux[4];
unsigned char vn_next[4];
} Elf_External_Verneed;
 
/* This structure appears in a SHT_GNU_verneed section. */
 
typedef struct {
unsigned char vna_hash[4];
unsigned char vna_flags[2];
unsigned char vna_other[2];
unsigned char vna_name[4];
unsigned char vna_next[4];
} Elf_External_Vernaux;
 
/* This structure appears in a SHT_GNU_versym section. This is not a
standard ELF structure; ELF just uses Elf32_Half. */
 
typedef struct {
unsigned char vs_vers[2];
} ATTRIBUTE_PACKED Elf_External_Versym;
 
/* Structure for syminfo section. */
typedef struct
{
unsigned char si_boundto[2];
unsigned char si_flags[2];
} Elf_External_Syminfo;
 
 
/* This structure appears on the stack and in NT_AUXV core file notes. */
typedef struct
{
unsigned char a_type[4];
unsigned char a_val[4];
} Elf32_External_Auxv;
 
typedef struct
{
unsigned char a_type[8];
unsigned char a_val[8];
} Elf64_External_Auxv;
 
/* Size of SHT_GROUP section entry. */
 
#define GRP_ENTRY_SIZE 4
 
#endif /* _ELF_EXTERNAL_H */
/contrib/toolchain/binutils/include/elf/fr30.h
0,0 → 1,42
/* FR30 ELF support for BFD.
Copyright 1998, 1999, 2000, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_FR30_H
#define _ELF_FR30_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_fr30_reloc_type)
RELOC_NUMBER (R_FR30_NONE, 0)
RELOC_NUMBER (R_FR30_8, 1)
RELOC_NUMBER (R_FR30_20, 2)
RELOC_NUMBER (R_FR30_32, 3)
RELOC_NUMBER (R_FR30_48, 4)
RELOC_NUMBER (R_FR30_6_IN_4, 5)
RELOC_NUMBER (R_FR30_8_IN_8, 6)
RELOC_NUMBER (R_FR30_9_IN_8, 7)
RELOC_NUMBER (R_FR30_10_IN_8, 8)
RELOC_NUMBER (R_FR30_9_PCREL, 9)
RELOC_NUMBER (R_FR30_12_PCREL, 10)
RELOC_NUMBER (R_FR30_GNU_VTINHERIT, 11)
RELOC_NUMBER (R_FR30_GNU_VTENTRY, 12)
END_RELOC_NUMBERS (R_FR30_max)
 
#endif /* _ELF_FR30_H */
/contrib/toolchain/binutils/include/elf/frv.h
0,0 → 1,130
/* FRV ELF support for BFD.
Copyright (C) 2002, 2003, 2004, 2005, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_FRV_H
#define _ELF_FRV_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_frv_reloc_type)
RELOC_NUMBER (R_FRV_NONE, 0)
RELOC_NUMBER (R_FRV_32, 1)
RELOC_NUMBER (R_FRV_LABEL16, 2)
RELOC_NUMBER (R_FRV_LABEL24, 3)
RELOC_NUMBER (R_FRV_LO16, 4)
RELOC_NUMBER (R_FRV_HI16, 5)
RELOC_NUMBER (R_FRV_GPREL12, 6)
RELOC_NUMBER (R_FRV_GPRELU12, 7)
RELOC_NUMBER (R_FRV_GPREL32, 8)
RELOC_NUMBER (R_FRV_GPRELHI, 9)
RELOC_NUMBER (R_FRV_GPRELLO, 10)
RELOC_NUMBER (R_FRV_GOT12, 11)
RELOC_NUMBER (R_FRV_GOTHI, 12)
RELOC_NUMBER (R_FRV_GOTLO, 13)
RELOC_NUMBER (R_FRV_FUNCDESC, 14)
RELOC_NUMBER (R_FRV_FUNCDESC_GOT12, 15)
RELOC_NUMBER (R_FRV_FUNCDESC_GOTHI, 16)
RELOC_NUMBER (R_FRV_FUNCDESC_GOTLO, 17)
RELOC_NUMBER (R_FRV_FUNCDESC_VALUE, 18)
RELOC_NUMBER (R_FRV_FUNCDESC_GOTOFF12, 19)
RELOC_NUMBER (R_FRV_FUNCDESC_GOTOFFHI, 20)
RELOC_NUMBER (R_FRV_FUNCDESC_GOTOFFLO, 21)
RELOC_NUMBER (R_FRV_GOTOFF12, 22)
RELOC_NUMBER (R_FRV_GOTOFFHI, 23)
RELOC_NUMBER (R_FRV_GOTOFFLO, 24)
RELOC_NUMBER (R_FRV_GETTLSOFF, 25)
RELOC_NUMBER (R_FRV_TLSDESC_VALUE, 26)
RELOC_NUMBER (R_FRV_GOTTLSDESC12, 27)
RELOC_NUMBER (R_FRV_GOTTLSDESCHI, 28)
RELOC_NUMBER (R_FRV_GOTTLSDESCLO, 29)
RELOC_NUMBER (R_FRV_TLSMOFF12, 30)
RELOC_NUMBER (R_FRV_TLSMOFFHI, 31)
RELOC_NUMBER (R_FRV_TLSMOFFLO, 32)
RELOC_NUMBER (R_FRV_GOTTLSOFF12, 33)
RELOC_NUMBER (R_FRV_GOTTLSOFFHI, 34)
RELOC_NUMBER (R_FRV_GOTTLSOFFLO, 35)
RELOC_NUMBER (R_FRV_TLSOFF, 36)
RELOC_NUMBER (R_FRV_TLSDESC_RELAX, 37)
RELOC_NUMBER (R_FRV_GETTLSOFF_RELAX, 38)
RELOC_NUMBER (R_FRV_TLSOFF_RELAX, 39)
RELOC_NUMBER (R_FRV_TLSMOFF, 40)
RELOC_NUMBER (R_FRV_GNU_VTINHERIT, 200)
RELOC_NUMBER (R_FRV_GNU_VTENTRY, 201)
END_RELOC_NUMBERS(R_FRV_max)
 
/* Processor specific flags for the ELF header e_flags field. */
/* gpr support */
#define EF_FRV_GPR_MASK 0x00000003 /* mask for # of gprs */
#define EF_FRV_GPR_32 0x00000001 /* -mgpr-32 */
#define EF_FRV_GPR_64 0x00000002 /* -mgpr-64 */
 
/* fpr support */
#define EF_FRV_FPR_MASK 0x0000000c /* mask for # of fprs */
#define EF_FRV_FPR_32 0x00000004 /* -mfpr-32 */
#define EF_FRV_FPR_64 0x00000008 /* -mfpr-64 */
#define EF_FRV_FPR_NONE 0x0000000c /* -msoft-float */
 
/* double word support */
#define EF_FRV_DWORD_MASK 0x00000030 /* mask for dword support */
#define EF_FRV_DWORD_YES 0x00000010 /* use double word insns */
#define EF_FRV_DWORD_NO 0x00000020 /* don't use double word insn*/
 
#define EF_FRV_DOUBLE 0x00000040 /* -mdouble */
#define EF_FRV_MEDIA 0x00000080 /* -mmedia */
 
#define EF_FRV_PIC 0x00000100 /* -fpic */
#define EF_FRV_NON_PIC_RELOCS 0x00000200 /* used non pic safe relocs */
 
#define EF_FRV_MULADD 0x00000400 /* -mmuladd */
#define EF_FRV_BIGPIC 0x00000800 /* -fPIC */
#define EF_FRV_LIBPIC 0x00001000 /* -mlibrary-pic */
#define EF_FRV_G0 0x00002000 /* -G 0, no small data ptr */
#define EF_FRV_NOPACK 0x00004000 /* -mnopack */
#define EF_FRV_FDPIC 0x00008000 /* -mfdpic */
 
#define EF_FRV_CPU_MASK 0xff000000 /* specific cpu bits */
#define EF_FRV_CPU_GENERIC 0x00000000 /* generic FRV */
#define EF_FRV_CPU_FR500 0x01000000 /* FRV500 */
#define EF_FRV_CPU_FR300 0x02000000 /* FRV300 */
#define EF_FRV_CPU_SIMPLE 0x03000000 /* SIMPLE */
#define EF_FRV_CPU_TOMCAT 0x04000000 /* Tomcat, FR500 prototype */
#define EF_FRV_CPU_FR400 0x05000000 /* FRV400 */
#define EF_FRV_CPU_FR550 0x06000000 /* FRV550 */
#define EF_FRV_CPU_FR405 0x07000000
#define EF_FRV_CPU_FR450 0x08000000
 
/* Mask of PIC related bits */
#define EF_FRV_PIC_FLAGS (EF_FRV_PIC | EF_FRV_LIBPIC | EF_FRV_BIGPIC \
| EF_FRV_FDPIC)
 
/* Mask of all flags */
#define EF_FRV_ALL_FLAGS (EF_FRV_GPR_MASK | \
EF_FRV_FPR_MASK | \
EF_FRV_DWORD_MASK | \
EF_FRV_DOUBLE | \
EF_FRV_MEDIA | \
EF_FRV_PIC_FLAGS | \
EF_FRV_NON_PIC_RELOCS | \
EF_FRV_MULADD | \
EF_FRV_G0 | \
EF_FRV_NOPACK | \
EF_FRV_CPU_MASK)
 
#endif /* _ELF_FRV_H */
/contrib/toolchain/binutils/include/elf/h8.h
0,0 → 1,101
/* H8300/h8500 ELF support for BFD.
Copyright 2001-2013 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_H8_H
#define _ELF_H8_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
/* Relocations 59..64 are GNU extensions. */
START_RELOC_NUMBERS (elf_h8_reloc_type)
RELOC_NUMBER (R_H8_NONE, 0)
RELOC_NUMBER (R_H8_DIR32, 1)
RELOC_NUMBER (R_H8_DIR32_28, 2)
RELOC_NUMBER (R_H8_DIR32_24, 3)
RELOC_NUMBER (R_H8_DIR32_16, 4)
RELOC_NUMBER (R_H8_DIR32U, 6)
RELOC_NUMBER (R_H8_DIR32U_28, 7)
RELOC_NUMBER (R_H8_DIR32U_24, 8)
RELOC_NUMBER (R_H8_DIR32U_20, 9)
RELOC_NUMBER (R_H8_DIR32U_16, 10)
RELOC_NUMBER (R_H8_DIR24, 11)
RELOC_NUMBER (R_H8_DIR24_20, 12)
RELOC_NUMBER (R_H8_DIR24_16, 13)
RELOC_NUMBER (R_H8_DIR24U, 14)
RELOC_NUMBER (R_H8_DIR24U_20, 15)
RELOC_NUMBER (R_H8_DIR24U_16, 16)
RELOC_NUMBER (R_H8_DIR16, 17)
RELOC_NUMBER (R_H8_DIR16U, 18)
RELOC_NUMBER (R_H8_DIR16S_32, 19)
RELOC_NUMBER (R_H8_DIR16S_28, 20)
RELOC_NUMBER (R_H8_DIR16S_24, 21)
RELOC_NUMBER (R_H8_DIR16S_20, 22)
RELOC_NUMBER (R_H8_DIR16S, 23)
RELOC_NUMBER (R_H8_DIR8, 24)
RELOC_NUMBER (R_H8_DIR8U, 25)
RELOC_NUMBER (R_H8_DIR8Z_32, 26)
RELOC_NUMBER (R_H8_DIR8Z_28, 27)
RELOC_NUMBER (R_H8_DIR8Z_24, 28)
RELOC_NUMBER (R_H8_DIR8Z_20, 29)
RELOC_NUMBER (R_H8_DIR8Z_16, 30)
RELOC_NUMBER (R_H8_PCREL16, 31)
RELOC_NUMBER (R_H8_PCREL8, 32)
RELOC_NUMBER (R_H8_BPOS, 33)
FAKE_RELOC (R_H8_FIRST_INVALID_DIR_RELOC, 34)
FAKE_RELOC (R_H8_LAST_INVALID_DIR_RELOC, 58)
RELOC_NUMBER (R_H8_DIR16A8, 59)
RELOC_NUMBER (R_H8_DIR16R8, 60)
RELOC_NUMBER (R_H8_DIR24A8, 61)
RELOC_NUMBER (R_H8_DIR24R8, 62)
RELOC_NUMBER (R_H8_DIR32A16, 63)
RELOC_NUMBER (R_H8_DISP32A16, 64)
RELOC_NUMBER (R_H8_ABS32, 65)
RELOC_NUMBER (R_H8_ABS32A16, 127)
RELOC_NUMBER (R_H8_SYM, 128)
RELOC_NUMBER (R_H8_OPneg, 129)
RELOC_NUMBER (R_H8_OPadd, 130)
RELOC_NUMBER (R_H8_OPsub, 131)
RELOC_NUMBER (R_H8_OPmul, 132)
RELOC_NUMBER (R_H8_OPdiv, 133)
RELOC_NUMBER (R_H8_OPshla, 134)
RELOC_NUMBER (R_H8_OPshra, 135)
RELOC_NUMBER (R_H8_OPsctsize, 136)
RELOC_NUMBER (R_H8_OPhword, 137)
RELOC_NUMBER (R_H8_OPlword, 138)
RELOC_NUMBER (R_H8_OPhigh, 139)
RELOC_NUMBER (R_H8_OPlow, 140)
RELOC_NUMBER (R_H8_OPscttop, 141)
END_RELOC_NUMBERS (R_H8_max)
 
/* Machine variant if we know it. This field was invented at Cygnus,
but it is hoped that other vendors will adopt it. If some standard
is developed, this code should be changed to follow it. */
 
#define EF_H8_MACH 0x00FF0000
 
#define E_H8_MACH_H8300 0x00800000
#define E_H8_MACH_H8300H 0x00810000
#define E_H8_MACH_H8300S 0x00820000
#define E_H8_MACH_H8300HN 0x00830000
#define E_H8_MACH_H8300SN 0x00840000
#define E_H8_MACH_H8300SX 0x00850000
#define E_H8_MACH_H8300SXN 0x00860000
 
#endif
/contrib/toolchain/binutils/include/elf/hppa.h
0,0 → 1,635
/* HPPA ELF support for BFD.
Copyright 1993, 1994, 1995, 1998, 1999, 2000, 2005, 2006, 2008, 2010
Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
/* This file holds definitions specific to the HPPA ELF ABI. Note
that most of this is not actually implemented by BFD. */
 
#ifndef _ELF_HPPA_H
#define _ELF_HPPA_H
 
/* Processor specific flags for the ELF header e_flags field. */
 
/* Trap null address dereferences. */
#define EF_PARISC_TRAPNIL 0x00010000
 
/* .PARISC.archext section is present. */
#define EF_PARISC_EXT 0x00020000
 
/* Program expects little-endian mode. */
#define EF_PARISC_LSB 0x00040000
 
/* Program expects wide mode. */
#define EF_PARISC_WIDE 0x00080000
 
/* Do not allow kernel-assisted branch prediction. */
#define EF_PARISC_NO_KABP 0x00100000
 
/* Allow lazy swap for dynamically allocated program segments. */
#define EF_PARISC_LAZYSWAP 0x00400000
 
/* Architecture version */
#define EF_PARISC_ARCH 0x0000ffff
 
#define EFA_PARISC_1_0 0x020b
#define EFA_PARISC_1_1 0x0210
#define EFA_PARISC_2_0 0x0214
 
/* Special section indices. */
/* A symbol that has been declared as a tentative definition in an ANSI C
compilation. */
#define SHN_PARISC_ANSI_COMMON SHN_LORESERVE
 
/* A symbol that has been declared as a common block using the
huge memory model. */
#define SHN_PARISC_HUGE_COMMON (SHN_LORESERVE + 1)
 
/* Processor specific section types. */
 
/* Section contains product specific extension bits. */
#define SHT_PARISC_EXT 0x70000000
 
/* Section contains unwind table entries. */
#define SHT_PARISC_UNWIND 0x70000001
 
/* Section contains debug information for optimized code. */
#define SHT_PARISC_DOC 0x70000002
 
/* Section contains code annotations. */
#define SHT_PARISC_ANNOT 0x70000003
 
/* DLKM special section. */
#define SHT_PARISC_DLKM 0x70000004
 
/* These are strictly for compatibility with the older elf32-hppa
implementation. Hopefully we can eliminate them in the future. */
/* Optional section holding argument location/relocation info. */
#define SHT_PARISC_SYMEXTN SHT_LOPROC + 8
 
/* Option section for linker stubs. */
#define SHT_PARISC_STUBS SHT_LOPROC + 9
 
/* Processor specific section flags. */
 
/* Section contains code compiled for static branch prediction. */
#define SHF_PARISC_SBP 0x80000000
 
/* Section should be allocated from from GP. */
#define SHF_PARISC_HUGE 0x40000000
 
/* Section should go near GP. */
#define SHF_PARISC_SHORT 0x20000000
 
/* Section is weak ordered. */
#define SHF_PARISC_WEAKORDER 0x10000000
 
/* Identifies the entry point of a millicode routine. */
#define STT_PARISC_MILLI 13
 
/* ELF/HPPA relocation types */
 
/* Note: PA-ELF is defined to use only RELA relocations. */
#include "elf/reloc-macros.h"
 
START_RELOC_NUMBERS (elf_hppa_reloc_type)
RELOC_NUMBER (R_PARISC_NONE, 0) /* No reloc */
 
/* Data / Inst. Format Relocation Expression */
 
RELOC_NUMBER (R_PARISC_DIR32, 1)
/* 32-bit word symbol + addend */
 
RELOC_NUMBER (R_PARISC_DIR21L, 2)
/* long immediate (7) LR(symbol, addend) */
 
RELOC_NUMBER (R_PARISC_DIR17R, 3)
/* branch external (19) RR(symbol, addend) */
 
RELOC_NUMBER (R_PARISC_DIR17F, 4)
/* branch external (19) symbol + addend */
 
RELOC_NUMBER (R_PARISC_DIR14R, 6)
/* load/store (1) RR(symbol, addend) */
 
RELOC_NUMBER (R_PARISC_DIR14F, 7)
/* load/store (1) symbol, addend */
 
/* PC-relative relocation types
Typically used for calls.
Note PCREL17C and PCREL17F differ only in overflow handling.
PCREL17C never reports a relocation error.
 
When supporting argument relocations, function calls must be
accompanied by parameter relocation information. This information is
carried in the ten high-order bits of the addend field. The remaining
22 bits of of the addend field are sign-extended to form the Addend.
 
Note the code to build argument relocations depends on the
addend being zero. A consequence of this limitation is GAS
can not perform relocation reductions for function symbols. */
 
RELOC_NUMBER (R_PARISC_PCREL12F, 8)
/* op & branch (17) symbol - PC - 8 + addend */
 
RELOC_NUMBER (R_PARISC_PCREL32, 9)
/* 32-bit word symbol - PC - 8 + addend */
 
RELOC_NUMBER (R_PARISC_PCREL21L, 10)
/* long immediate (7) L(symbol - PC - 8 + addend) */
 
RELOC_NUMBER (R_PARISC_PCREL17R, 11)
/* branch external (19) R(symbol - PC - 8 + addend) */
 
RELOC_NUMBER (R_PARISC_PCREL17F, 12)
/* branch (20) symbol - PC - 8 + addend */
 
RELOC_NUMBER (R_PARISC_PCREL17C, 13)
/* branch (20) symbol - PC - 8 + addend */
 
RELOC_NUMBER (R_PARISC_PCREL14R, 14)
/* load/store (1) R(symbol - PC - 8 + addend) */
 
RELOC_NUMBER (R_PARISC_PCREL14F, 15)
/* load/store (1) symbol - PC - 8 + addend */
 
 
/* DP-relative relocation types. */
RELOC_NUMBER (R_PARISC_DPREL21L, 18)
/* long immediate (7) LR(symbol - GP, addend) */
 
RELOC_NUMBER (R_PARISC_DPREL14WR, 19)
/* load/store mod. comp. (2) RR(symbol - GP, addend) */
 
RELOC_NUMBER (R_PARISC_DPREL14DR, 20)
/* load/store doubleword (3) RR(symbol - GP, addend) */
 
RELOC_NUMBER (R_PARISC_DPREL14R, 22)
/* load/store (1) RR(symbol - GP, addend) */
 
RELOC_NUMBER (R_PARISC_DPREL14F, 23)
/* load/store (1) symbol - GP + addend */
 
 
/* Data linkage table (DLT) relocation types
 
SOM DLT_REL fixup requests are used to for static data references
from position-independent code within shared libraries. They are
similar to the GOT relocation types in some SVR4 implementations. */
 
RELOC_NUMBER (R_PARISC_DLTREL21L, 26)
/* long immediate (7) LR(symbol - GP, addend) */
 
RELOC_NUMBER (R_PARISC_DLTREL14R, 30)
/* load/store (1) RR(symbol - GP, addend) */
 
RELOC_NUMBER (R_PARISC_DLTREL14F, 31)
/* load/store (1) symbol - GP + addend */
 
 
/* DLT indirect relocation types */
RELOC_NUMBER (R_PARISC_DLTIND21L, 34)
/* long immediate (7) L(ltoff(symbol + addend)) */
 
RELOC_NUMBER (R_PARISC_DLTIND14R, 38)
/* load/store (1) R(ltoff(symbol + addend)) */
 
RELOC_NUMBER (R_PARISC_DLTIND14F, 39)
/* load/store (1) ltoff(symbol + addend) */
 
 
/* Base relative relocation types. Ugh. These imply lots of state */
RELOC_NUMBER (R_PARISC_SETBASE, 40)
/* none no reloc; base := sym */
 
RELOC_NUMBER (R_PARISC_SECREL32, 41)
/* 32-bit word symbol - SECT + addend */
 
RELOC_NUMBER (R_PARISC_BASEREL21L, 42)
/* long immediate (7) LR(symbol - base, addend) */
 
RELOC_NUMBER (R_PARISC_BASEREL17R, 43)
/* branch external (19) RR(symbol - base, addend) */
 
RELOC_NUMBER (R_PARISC_BASEREL17F, 44)
/* branch external (19) symbol - base + addend */
 
RELOC_NUMBER (R_PARISC_BASEREL14R, 46)
/* load/store (1) RR(symbol - base, addend) */
 
RELOC_NUMBER (R_PARISC_BASEREL14F, 47)
/* load/store (1) symbol - base, addend */
 
 
/* Segment relative relocation types. */
RELOC_NUMBER (R_PARISC_SEGBASE, 48)
/* none no relocation; SB := sym */
 
RELOC_NUMBER (R_PARISC_SEGREL32, 49)
/* 32-bit word symbol - SB + addend */
 
/* Offsets from the PLT. */
RELOC_NUMBER (R_PARISC_PLTOFF21L, 50)
/* long immediate (7) LR(pltoff(symbol), addend) */
 
RELOC_NUMBER (R_PARISC_PLTOFF14R, 54)
/* load/store (1) RR(pltoff(symbol), addend) */
 
RELOC_NUMBER (R_PARISC_PLTOFF14F, 55)
/* load/store (1) pltoff(symbol) + addend */
 
 
RELOC_NUMBER (R_PARISC_LTOFF_FPTR32, 57)
/* 32-bit word ltoff(fptr(symbol+addend)) */
 
RELOC_NUMBER (R_PARISC_LTOFF_FPTR21L, 58)
/* long immediate (7) L(ltoff(fptr(symbol+addend))) */
 
RELOC_NUMBER (R_PARISC_LTOFF_FPTR14R, 62)
/* load/store (1) R(ltoff(fptr(symbol+addend))) */
 
 
RELOC_NUMBER (R_PARISC_FPTR64, 64)
/* 64-bit doubleword fptr(symbol+addend) */
 
 
/* Plabel relocation types. */
RELOC_NUMBER (R_PARISC_PLABEL32, 65)
/* 32-bit word fptr(symbol) */
 
RELOC_NUMBER (R_PARISC_PLABEL21L, 66)
/* long immediate (7) L(fptr(symbol)) */
 
RELOC_NUMBER (R_PARISC_PLABEL14R, 70)
/* load/store (1) R(fptr(symbol)) */
 
/* PCREL relocations. */
RELOC_NUMBER (R_PARISC_PCREL64, 72)
/* 64-bit doubleword symbol - PC - 8 + addend */
 
RELOC_NUMBER (R_PARISC_PCREL22C, 73)
/* branch & link (21) symbol - PC - 8 + addend */
 
RELOC_NUMBER (R_PARISC_PCREL22F, 74)
/* branch & link (21) symbol - PC - 8 + addend */
 
RELOC_NUMBER (R_PARISC_PCREL14WR, 75)
/* load/store mod. comp. (2) R(symbol - PC - 8 + addend) */
 
RELOC_NUMBER (R_PARISC_PCREL14DR, 76)
/* load/store doubleword (3) R(symbol - PC - 8 + addend) */
 
RELOC_NUMBER (R_PARISC_PCREL16F, 77)
/* load/store (1) symbol - PC - 8 + addend */
 
RELOC_NUMBER (R_PARISC_PCREL16WF, 78)
/* load/store mod. comp. (2) symbol - PC - 8 + addend */
 
RELOC_NUMBER (R_PARISC_PCREL16DF, 79)
/* load/store doubleword (3) symbol - PC - 8 + addend */
 
 
RELOC_NUMBER (R_PARISC_DIR64, 80)
/* 64-bit doubleword symbol + addend */
 
RELOC_NUMBER (R_PARISC_DIR14WR, 83)
/* load/store mod. comp. (2) RR(symbol, addend) */
 
RELOC_NUMBER (R_PARISC_DIR14DR, 84)
/* load/store doubleword (3) RR(symbol, addend) */
 
RELOC_NUMBER (R_PARISC_DIR16F, 85)
/* load/store (1) symbol + addend */
 
RELOC_NUMBER (R_PARISC_DIR16WF, 86)
/* load/store mod. comp. (2) symbol + addend */
 
RELOC_NUMBER (R_PARISC_DIR16DF, 87)
/* load/store doubleword (3) symbol + addend */
RELOC_NUMBER (R_PARISC_GPREL64, 88)
/* 64-bit doubleword symbol - GP + addend */
RELOC_NUMBER (R_PARISC_DLTREL14WR, 91)
/* load/store mod. comp. (2) RR(symbol - GP, addend) */
 
RELOC_NUMBER (R_PARISC_DLTREL14DR, 92)
/* load/store doubleword (3) RR(symbol - GP, addend) */
 
RELOC_NUMBER (R_PARISC_GPREL16F, 93)
/* load/store (1) symbol - GP + addend */
 
RELOC_NUMBER (R_PARISC_GPREL16WF, 94)
/* load/store mod. comp. (2) symbol - GP + addend */
 
RELOC_NUMBER (R_PARISC_GPREL16DF, 95)
/* load/store doubleword (3) symbol - GP + addend */
 
 
RELOC_NUMBER (R_PARISC_LTOFF64, 96)
/* 64-bit doubleword ltoff(symbol + addend) */
 
RELOC_NUMBER (R_PARISC_DLTIND14WR, 99)
/* load/store mod. comp. (2) R(ltoff(symbol + addend)) */
 
RELOC_NUMBER (R_PARISC_DLTIND14DR, 100)
/* load/store doubleword (3) R(ltoff(symbol + addend)) */
 
RELOC_NUMBER (R_PARISC_LTOFF16F, 101)
/* load/store (1) ltoff(symbol + addend) */
 
RELOC_NUMBER (R_PARISC_LTOFF16WF, 102)
/* load/store mod. comp. (2) ltoff(symbol + addend) */
 
RELOC_NUMBER (R_PARISC_LTOFF16DF, 103)
/* load/store doubleword (3) ltoff(symbol + addend) */
 
 
RELOC_NUMBER (R_PARISC_SECREL64, 104)
/* 64-bit doubleword symbol - SECT + addend */
 
RELOC_NUMBER (R_PARISC_BASEREL14WR, 107)
/* load/store mod. comp. (2) RR(symbol - base, addend) */
 
RELOC_NUMBER (R_PARISC_BASEREL14DR, 108)
/* load/store doubleword (3) RR(symbol - base, addend) */
 
 
RELOC_NUMBER (R_PARISC_SEGREL64, 112)
/* 64-bit doubleword symbol - SB + addend */
RELOC_NUMBER (R_PARISC_PLTOFF14WR, 115)
/* load/store mod. comp. (2) RR(pltoff(symbol), addend) */
 
RELOC_NUMBER (R_PARISC_PLTOFF14DR, 116)
/* load/store doubleword (3) RR(pltoff(symbol), addend) */
 
RELOC_NUMBER (R_PARISC_PLTOFF16F, 117)
/* load/store (1) pltoff(symbol) + addend */
 
RELOC_NUMBER (R_PARISC_PLTOFF16WF, 118)
/* load/store mod. comp. (2) pltoff(symbol) + addend */
 
RELOC_NUMBER (R_PARISC_PLTOFF16DF, 119)
/* load/store doubleword (3) pltoff(symbol) + addend */
 
 
RELOC_NUMBER (R_PARISC_LTOFF_FPTR64, 120)
/* 64-bit doubleword ltoff(fptr(symbol+addend)) */
 
RELOC_NUMBER (R_PARISC_LTOFF_FPTR14WR, 123)
/* load/store mod. comp. (2) R(ltoff(fptr(symbol+addend))) */
 
RELOC_NUMBER (R_PARISC_LTOFF_FPTR14DR, 124)
/* load/store doubleword (3) R(ltoff(fptr(symbol+addend))) */
 
RELOC_NUMBER (R_PARISC_LTOFF_FPTR16F, 125)
/* load/store (1) ltoff(fptr(symbol+addend)) */
 
RELOC_NUMBER (R_PARISC_LTOFF_FPTR16WF, 126)
/* load/store mod. comp. (2) ltoff(fptr(symbol+addend)) */
 
RELOC_NUMBER (R_PARISC_LTOFF_FPTR16DF, 127)
/* load/store doubleword (3) ltoff(fptr(symbol+addend)) */
 
 
RELOC_NUMBER (R_PARISC_COPY, 128)
/* data Dynamic relocations only */
 
RELOC_NUMBER (R_PARISC_IPLT, 129)
/* plt */
 
RELOC_NUMBER (R_PARISC_EPLT, 130)
/* plt */
 
 
RELOC_NUMBER (R_PARISC_TPREL32, 153)
/* 32-bit word symbol - TP + addend */
 
RELOC_NUMBER (R_PARISC_TPREL21L, 154)
/* long immediate (7) LR(symbol - TP, addend) */
 
RELOC_NUMBER (R_PARISC_TPREL14R, 158)
/* load/store (1) RR(symbol - TP, addend) */
 
 
RELOC_NUMBER (R_PARISC_LTOFF_TP21L, 162)
/* long immediate (7) L(ltoff(symbol - TP + addend)) */
 
RELOC_NUMBER (R_PARISC_LTOFF_TP14R, 166)
/* load/store (1) R(ltoff(symbol - TP + addend)) */
 
RELOC_NUMBER (R_PARISC_LTOFF_TP14F, 167)
/* load/store (1) ltoff(symbol - TP + addend) */
 
 
RELOC_NUMBER (R_PARISC_TPREL64, 216)
/* 64-bit word symbol - TP + addend */
 
RELOC_NUMBER (R_PARISC_TPREL14WR, 219)
/* load/store mod. comp. (2) RR(symbol - TP, addend) */
 
RELOC_NUMBER (R_PARISC_TPREL14DR, 220)
/* load/store doubleword (3) RR(symbol - TP, addend) */
 
RELOC_NUMBER (R_PARISC_TPREL16F, 221)
/* load/store (1) symbol - TP + addend */
 
RELOC_NUMBER (R_PARISC_TPREL16WF, 222)
/* load/store mod. comp. (2) symbol - TP + addend */
 
RELOC_NUMBER (R_PARISC_TPREL16DF, 223)
/* load/store doubleword (3) symbol - TP + addend */
 
 
RELOC_NUMBER (R_PARISC_LTOFF_TP64, 224)
/* 64-bit doubleword ltoff(symbol - TP + addend) */
 
RELOC_NUMBER (R_PARISC_LTOFF_TP14WR, 227)
/* load/store mod. comp. (2) R(ltoff(symbol - TP + addend)) */
 
RELOC_NUMBER (R_PARISC_LTOFF_TP14DR, 228)
/* load/store doubleword (3) R(ltoff(symbol - TP + addend)) */
 
RELOC_NUMBER (R_PARISC_LTOFF_TP16F, 229)
/* load/store (1) ltoff(symbol - TP + addend) */
 
RELOC_NUMBER (R_PARISC_LTOFF_TP16WF, 230)
/* load/store mod. comp. (2) ltoff(symbol - TP + addend) */
 
RELOC_NUMBER (R_PARISC_LTOFF_TP16DF, 231)
/* load/store doubleword (3) ltoff(symbol - TP + addend) */
 
RELOC_NUMBER (R_PARISC_GNU_VTENTRY, 232)
RELOC_NUMBER (R_PARISC_GNU_VTINHERIT, 233)
 
RELOC_NUMBER (R_PARISC_TLS_GD21L, 234)
RELOC_NUMBER (R_PARISC_TLS_GD14R, 235)
RELOC_NUMBER (R_PARISC_TLS_GDCALL, 236)
RELOC_NUMBER (R_PARISC_TLS_LDM21L, 237)
RELOC_NUMBER (R_PARISC_TLS_LDM14R, 238)
RELOC_NUMBER (R_PARISC_TLS_LDMCALL, 239)
RELOC_NUMBER (R_PARISC_TLS_LDO21L, 240)
RELOC_NUMBER (R_PARISC_TLS_LDO14R, 241)
RELOC_NUMBER (R_PARISC_TLS_DTPMOD32, 242)
RELOC_NUMBER (R_PARISC_TLS_DTPMOD64, 243)
RELOC_NUMBER (R_PARISC_TLS_DTPOFF32, 244)
RELOC_NUMBER (R_PARISC_TLS_DTPOFF64, 245)
 
END_RELOC_NUMBERS (R_PARISC_UNIMPLEMENTED)
 
#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L
#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R
#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L
#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R
#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32
#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64
 
#ifndef RELOC_MACROS_GEN_FUNC
typedef enum elf_hppa_reloc_type elf_hppa_reloc_type;
#endif
 
#define PT_PARISC_ARCHEXT 0x70000000
#define PT_PARISC_UNWIND 0x70000001
#define PT_PARISC_WEAKORDER 0x70000002
 
/* Flag bits in sh_flags of ElfXX_Shdr. */
#define SHF_HP_TLS 0x01000000
#define SHF_HP_NEAR_SHARED 0x02000000
#define SHF_HP_FAR_SHARED 0x04000000
#define SHF_HP_COMDAT 0x08000000
#define SHF_HP_CONST 0x00800000
 
/* Reserved section header indices. */
#define SHN_TLS_COMMON (SHN_LOOS + 0x0)
#define SHN_NS_COMMON (SHN_LOOS + 0x1)
#define SHN_FS_COMMON (SHN_LOOS + 0x2)
#define SHN_NS_UNDEF (SHN_LOOS + 0x3)
#define SHN_FS_UNDEF (SHN_LOOS + 0x4)
#define SHN_HP_EXTERN (SHN_LOOS + 0x5)
#define SHN_HP_EXTHINT (SHN_LOOS + 0x6)
#define SHN_HP_UNDEF_BIND_IMM (SHN_LOOS + 0x7)
 
/* Values of sh_type in ElfXX_Shdr. */
#define SHT_HP_OVLBITS (SHT_LOOS + 0x0)
#define SHT_HP_DLKM (SHT_LOOS + 0x1)
#define SHT_HP_COMDAT (SHT_LOOS + 0x2)
#define SHT_HP_OBJDICT (SHT_LOOS + 0x3)
#define SHT_HP_ANNOT (SHT_LOOS + 0x4)
 
/* Flag bits in p_flags of ElfXX_Phdr. */
#define PF_HP_CODE 0x00040000
#define PF_HP_MODIFY 0x00080000
#define PF_HP_PAGE_SIZE 0x00100000
#define PF_HP_FAR_SHARED 0x00200000
#define PF_HP_NEAR_SHARED 0x00400000
#define PF_HP_LAZYSWAP 0x00800000
#define PF_HP_CODE_DEPR 0x01000000
#define PF_HP_MODIFY_DEPR 0x02000000
#define PF_HP_LAZYSWAP_DEPR 0x04000000
#define PF_PARISC_SBP 0x08000000
#define PF_HP_SBP 0x08000000
 
/* Processor specific dynamic array tags. */
 
/* Arggh. HP's tools define these symbols based on the
old value of DT_LOOS. So we must do the same to be
compatible. */
#define DT_HP_LOAD_MAP (OLD_DT_LOOS + 0x0)
#define DT_HP_DLD_FLAGS (OLD_DT_LOOS + 0x1)
#define DT_HP_DLD_HOOK (OLD_DT_LOOS + 0x2)
#define DT_HP_UX10_INIT (OLD_DT_LOOS + 0x3)
#define DT_HP_UX10_INITSZ (OLD_DT_LOOS + 0x4)
#define DT_HP_PREINIT (OLD_DT_LOOS + 0x5)
#define DT_HP_PREINITSZ (OLD_DT_LOOS + 0x6)
#define DT_HP_NEEDED (OLD_DT_LOOS + 0x7)
#define DT_HP_TIME_STAMP (OLD_DT_LOOS + 0x8)
#define DT_HP_CHECKSUM (OLD_DT_LOOS + 0x9)
#define DT_HP_GST_SIZE (OLD_DT_LOOS + 0xa)
#define DT_HP_GST_VERSION (OLD_DT_LOOS + 0xb)
#define DT_HP_GST_HASHVAL (OLD_DT_LOOS + 0xc)
#define DT_HP_EPLTREL (OLD_DT_LOOS + 0xd)
#define DT_HP_EPLTRELSZ (OLD_DT_LOOS + 0xe)
#define DT_HP_FILTERED (OLD_DT_LOOS + 0xf)
#define DT_HP_FILTER_TLS (OLD_DT_LOOS + 0x10)
#define DT_HP_COMPAT_FILTERED (OLD_DT_LOOS + 0x11)
#define DT_HP_LAZYLOAD (OLD_DT_LOOS + 0x12)
#define DT_HP_BIND_NOW_COUNT (OLD_DT_LOOS + 0x13)
#define DT_PLT (OLD_DT_LOOS + 0x14)
#define DT_PLT_SIZE (OLD_DT_LOOS + 0x15)
#define DT_DLT (OLD_DT_LOOS + 0x16)
#define DT_DLT_SIZE (OLD_DT_LOOS + 0x17)
 
/* Values for DT_HP_DLD_FLAGS. */
#define DT_HP_DEBUG_PRIVATE 0x00001 /* Map text private */
#define DT_HP_DEBUG_CALLBACK 0x00002 /* Callback */
#define DT_HP_DEBUG_CALLBACK_BOR 0x00004 /* BOR callback */
#define DT_HP_NO_ENVVAR 0x00008 /* No env var */
#define DT_HP_BIND_NOW 0x00010 /* Bind now */
#define DT_HP_BIND_NONFATAL 0x00020 /* Bind non-fatal */
#define DT_HP_BIND_VERBOSE 0x00040 /* Bind verbose */
#define DT_HP_BIND_RESTRICTED 0x00080 /* Bind restricted */
#define DT_HP_BIND_SYMBOLIC 0x00100 /* Bind symbolic */
#define DT_HP_RPATH_FIRST 0x00200 /* RPATH first */
#define DT_HP_BIND_DEPTH_FIRST 0x00400 /* Bind depth-first */
#define DT_HP_GST 0x00800 /* Dld global sym table */
#define DT_HP_SHLIB_FIXED 0x01000 /* shared vtable support */
#define DT_HP_MERGE_SHLIB_SEG 0x02000 /* merge shlib data segs */
#define DT_HP_NODELETE 0x04000 /* never unload */
#define DT_HP_GROUP 0x08000 /* bind only within group */
#define DT_HP_PROTECT_LINKAGE_TABLE 0x10000 /* protected linkage table */
 
/* Program header extensions. */
#define PT_HP_TLS (PT_LOOS + 0x0)
#define PT_HP_CORE_NONE (PT_LOOS + 0x1)
#define PT_HP_CORE_VERSION (PT_LOOS + 0x2)
#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3)
#define PT_HP_CORE_COMM (PT_LOOS + 0x4)
#define PT_HP_CORE_PROC (PT_LOOS + 0x5)
#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6)
#define PT_HP_CORE_STACK (PT_LOOS + 0x7)
#define PT_HP_CORE_SHM (PT_LOOS + 0x8)
#define PT_HP_CORE_MMF (PT_LOOS + 0x9)
#define PT_HP_PARALLEL (PT_LOOS + 0x10)
#define PT_HP_FASTBIND (PT_LOOS + 0x11)
#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12)
#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13)
#define PT_HP_STACK (PT_LOOS + 0x14)
#define PT_HP_CORE_UTSNAME (PT_LOOS + 0x15)
 
/* Binding information. */
#define STB_HP_ALIAS (STB_LOOS + 0x0)
 
/* Additional symbol types. */
#define STT_HP_OPAQUE (STT_LOOS + 0x1)
#define STT_HP_STUB (STT_LOOS + 0x2)
 
/* Note types. */
#define NT_HP_COMPILER 1
#define NT_HP_COPYRIGHT 2
#define NT_HP_VERSION 3
#define NT_HP_SRCFILE_INFO 4
#define NT_HP_LINKER 5
#define NT_HP_INSTRUMENTED 6
#define NT_HP_UX_OPTIONS 7
 
#endif /* _ELF_HPPA_H */
/contrib/toolchain/binutils/include/elf/i370.h
0,0 → 1,61
/* i370 ELF support for BFD.
Copyright 2000, 2002, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
/* This file holds definitions specific to the i370 ELF ABI. Note
that most of this is not actually implemented by BFD. */
 
#ifndef _ELF_I370_H
#define _ELF_I370_H
 
#include "elf/reloc-macros.h"
 
/* Processor specific section headers, sh_type field */
 
#define SHT_ORDERED SHT_HIPROC /* Link editor is to sort the \
entries in this section \
based on the address \
specified in the associated \
symbol table entry. */
 
#define EF_I370_RELOCATABLE 0x00010000 /* i370 -mrelocatable flag */
#define EF_I370_RELOCATABLE_LIB 0x00008000 /* i370 -mrelocatable-lib flag */
 
/* i370 relocations
Note that there is really just one relocation that we currently
support (and only one that we seem to need, at the moment), and
that is the 31-bit address relocation. Note that the 370/390
only supports a 31-bit (2GB) address space. */
 
START_RELOC_NUMBERS (i370_reloc_type)
RELOC_NUMBER (R_I370_NONE, 0)
RELOC_NUMBER (R_I370_ADDR31, 1)
RELOC_NUMBER (R_I370_ADDR32, 2)
RELOC_NUMBER (R_I370_ADDR16, 3)
RELOC_NUMBER (R_I370_REL31, 4)
RELOC_NUMBER (R_I370_REL32, 5)
RELOC_NUMBER (R_I370_ADDR12, 6)
RELOC_NUMBER (R_I370_REL12, 7)
RELOC_NUMBER (R_I370_ADDR8, 8)
RELOC_NUMBER (R_I370_REL8, 9)
RELOC_NUMBER (R_I370_COPY, 10)
RELOC_NUMBER (R_I370_RELATIVE, 11)
END_RELOC_NUMBERS (R_I370_max)
 
#endif /* _ELF_I370_H */
/contrib/toolchain/binutils/include/elf/i386.h
0,0 → 1,79
/* ix86 ELF support for BFD.
Copyright 1998, 1999, 2000, 2002, 2004, 2005, 2006, 2009, 2010
Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_I386_H
#define _ELF_I386_H
 
#include "elf/reloc-macros.h"
 
START_RELOC_NUMBERS (elf_i386_reloc_type)
RELOC_NUMBER (R_386_NONE, 0) /* No reloc */
RELOC_NUMBER (R_386_32, 1) /* Direct 32 bit */
RELOC_NUMBER (R_386_PC32, 2) /* PC relative 32 bit */
RELOC_NUMBER (R_386_GOT32, 3) /* 32 bit GOT entry */
RELOC_NUMBER (R_386_PLT32, 4) /* 32 bit PLT address */
RELOC_NUMBER (R_386_COPY, 5) /* Copy symbol at runtime */
RELOC_NUMBER (R_386_GLOB_DAT, 6) /* Create GOT entry */
RELOC_NUMBER (R_386_JUMP_SLOT, 7) /* Create PLT entry */
RELOC_NUMBER (R_386_RELATIVE, 8) /* Adjust by program base */
RELOC_NUMBER (R_386_GOTOFF, 9) /* 32 bit offset to GOT */
RELOC_NUMBER (R_386_GOTPC, 10) /* 32 bit PC relative offset to GOT */
RELOC_NUMBER (R_386_32PLT, 11) /* Used by Sun */
FAKE_RELOC (FIRST_INVALID_RELOC, 12)
FAKE_RELOC (LAST_INVALID_RELOC, 13)
RELOC_NUMBER (R_386_TLS_TPOFF,14)
RELOC_NUMBER (R_386_TLS_IE, 15)
RELOC_NUMBER (R_386_TLS_GOTIE,16)
RELOC_NUMBER (R_386_TLS_LE, 17)
RELOC_NUMBER (R_386_TLS_GD, 18)
RELOC_NUMBER (R_386_TLS_LDM, 19)
RELOC_NUMBER (R_386_16, 20)
RELOC_NUMBER (R_386_PC16, 21)
RELOC_NUMBER (R_386_8, 22)
RELOC_NUMBER (R_386_PC8, 23)
RELOC_NUMBER (R_386_TLS_GD_32, 24)
RELOC_NUMBER (R_386_TLS_GD_PUSH, 25)
RELOC_NUMBER (R_386_TLS_GD_CALL, 26)
RELOC_NUMBER (R_386_TLS_GD_POP, 27)
RELOC_NUMBER (R_386_TLS_LDM_32, 28)
RELOC_NUMBER (R_386_TLS_LDM_PUSH, 29)
RELOC_NUMBER (R_386_TLS_LDM_CALL, 30)
RELOC_NUMBER (R_386_TLS_LDM_POP, 31)
RELOC_NUMBER (R_386_TLS_LDO_32, 32)
RELOC_NUMBER (R_386_TLS_IE_32, 33)
RELOC_NUMBER (R_386_TLS_LE_32, 34)
RELOC_NUMBER (R_386_TLS_DTPMOD32, 35)
RELOC_NUMBER (R_386_TLS_DTPOFF32, 36)
RELOC_NUMBER (R_386_TLS_TPOFF32, 37)
RELOC_NUMBER (R_386_SIZE32, 38) /* 32-bit symbol size */
RELOC_NUMBER (R_386_TLS_GOTDESC, 39)
RELOC_NUMBER (R_386_TLS_DESC_CALL,40)
RELOC_NUMBER (R_386_TLS_DESC, 41)
RELOC_NUMBER (R_386_IRELATIVE, 42) /* Adjust indirectly by program base */
 
/* Used by Intel. */
RELOC_NUMBER (R_386_USED_BY_INTEL_200, 200)
 
/* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_386_GNU_VTINHERIT, 250)
RELOC_NUMBER (R_386_GNU_VTENTRY, 251)
END_RELOC_NUMBERS (R_386_max)
 
#endif
/contrib/toolchain/binutils/include/elf/i860.h
0,0 → 1,66
/* i860 ELF support for BFD.
Copyright 2000, 2010 Free Software Foundation, Inc.
 
Contributed by Jason Eckhardt <jle@cygnus.com>.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_I860_H
#define _ELF_I860_H
 
/* Note: i860 ELF is defined to use only RELA relocations. */
 
#include "elf/reloc-macros.h"
 
START_RELOC_NUMBERS (elf_i860_reloc_type)
RELOC_NUMBER (R_860_NONE, 0x00) /* No reloc */
RELOC_NUMBER (R_860_32, 0x01) /* S+A */
RELOC_NUMBER (R_860_COPY, 0x02) /* No calculation */
RELOC_NUMBER (R_860_GLOB_DAT, 0x03) /* S, Create GOT entry */
RELOC_NUMBER (R_860_JUMP_SLOT, 0x04) /* S+A, Create PLT entry */
RELOC_NUMBER (R_860_RELATIVE, 0x05) /* B+A, Adj by program base */
RELOC_NUMBER (R_860_PC26, 0x30) /* (S+A-P) >> 2 */
RELOC_NUMBER (R_860_PLT26, 0x31) /* (L+A-P) >> 2 */
RELOC_NUMBER (R_860_PC16, 0x32) /* (S+A-P) >> 2 */
RELOC_NUMBER (R_860_LOW0, 0x40) /* S+A */
RELOC_NUMBER (R_860_SPLIT0, 0x42) /* S+A */
RELOC_NUMBER (R_860_LOW1, 0x44) /* S+A */
RELOC_NUMBER (R_860_SPLIT1, 0x46) /* S+A */
RELOC_NUMBER (R_860_LOW2, 0x48) /* S+A */
RELOC_NUMBER (R_860_SPLIT2, 0x4A) /* S+A */
RELOC_NUMBER (R_860_LOW3, 0x4C) /* S+A */
RELOC_NUMBER (R_860_LOGOT0, 0x50) /* G */
RELOC_NUMBER (R_860_SPGOT0, 0x52) /* G */
RELOC_NUMBER (R_860_LOGOT1, 0x54) /* G */
RELOC_NUMBER (R_860_SPGOT1, 0x56) /* G */
RELOC_NUMBER (R_860_LOGOTOFF0, 0x60) /* O */
RELOC_NUMBER (R_860_SPGOTOFF0, 0x62) /* O */
RELOC_NUMBER (R_860_LOGOTOFF1, 0x64) /* O */
RELOC_NUMBER (R_860_SPGOTOFF1, 0x66) /* O */
RELOC_NUMBER (R_860_LOGOTOFF2, 0x68) /* O */
RELOC_NUMBER (R_860_LOGOTOFF3, 0x6C) /* O */
RELOC_NUMBER (R_860_LOPC, 0x70) /* (S+A-P) >> 2 */
RELOC_NUMBER (R_860_HIGHADJ, 0x80) /* hiadj(S+A) */
RELOC_NUMBER (R_860_HAGOT, 0x90) /* hiadj(G) */
RELOC_NUMBER (R_860_HAGOTOFF, 0xA0) /* hiadj(O) */
RELOC_NUMBER (R_860_HAPC, 0xB0) /* hiadj((S+A-P) >> 2) */
RELOC_NUMBER (R_860_HIGH, 0xC0) /* (S+A) >> 16 */
RELOC_NUMBER (R_860_HIGOT, 0xD0) /* G >> 16 */
RELOC_NUMBER (R_860_HIGOTOFF, 0xE0) /* O */
END_RELOC_NUMBERS (R_860_max)
 
#endif
/contrib/toolchain/binutils/include/elf/i960.h
0,0 → 1,37
/* Intel 960 ELF support for BFD.
Copyright 1999, 2000, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_I960_H
#define _ELF_I960_H
 
#include "elf/reloc-macros.h"
 
 
START_RELOC_NUMBERS (elf_i960_reloc_type)
RELOC_NUMBER (R_960_NONE, 0)
RELOC_NUMBER (R_960_12, 1)
RELOC_NUMBER (R_960_32, 2)
RELOC_NUMBER (R_960_IP24, 3)
RELOC_NUMBER (R_960_SUB, 4)
RELOC_NUMBER (R_960_OPTCALL, 5)
RELOC_NUMBER (R_960_OPTCALLX, 6)
RELOC_NUMBER (R_960_OPTCALLXA, 7)
END_RELOC_NUMBERS (R_960_max)
 
#endif /* _ELF_I960_H */
/contrib/toolchain/binutils/include/elf/ia64.h
0,0 → 1,416
/* IA-64 ELF support for BFD.
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2008, 2009, 2010
Free Software Foundation, Inc.
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
#ifndef _ELF_IA64_H
#define _ELF_IA64_H
 
/* Bits in the e_flags field of the Elf64_Ehdr: */
 
#define EF_IA_64_MASKOS 0x0000000f /* OS-specific flags. */
#define EF_IA_64_ARCH 0xff000000 /* Arch. version mask. */
#define EF_IA_64_ARCHVER_1 (1 << 24) /* Arch. version level 1 compat. */
 
/* ??? These four definitions are not part of the SVR4 ABI.
They were present in David's initial code drop, so it is probable
that they are used by HP/UX. */
#define EF_IA_64_TRAPNIL (1 << 0) /* Trap NIL pointer dereferences. */
#define EF_IA_64_EXT (1 << 2) /* Program uses arch. extensions. */
#define EF_IA_64_BE (1 << 3) /* PSR BE bit set (big-endian). */
#define EFA_IA_64_EAS2_3 0x23000000 /* IA64 EAS 2.3. */
 
#define EF_IA_64_ABI64 (1 << 4) /* 64-bit ABI. */
/* Not used yet. */
#define EF_IA_64_REDUCEDFP (1 << 5) /* Only FP6-FP11 used. */
#define EF_IA_64_CONS_GP (1 << 6) /* gp as program wide constant. */
#define EF_IA_64_NOFUNCDESC_CONS_GP (1 << 7) /* And no function descriptors. */
/* Not used yet. */
#define EF_IA_64_ABSOLUTE (1 << 8) /* Load at absolute addresses. */
 
/* OpenVMS speficic. */
#define EF_IA_64_VMS_COMCOD 0x03 /* Completion code. */
#define EF_IA_64_VMS_COMCOD_SUCCESS 0
#define EF_IA_64_VMS_COMCOD_WARNING 1
#define EF_IA_64_VMS_COMCOD_ERROR 2
#define EF_IA_64_VMS_COMCOD_ABORT 3
#define EF_IA_64_VMS_LINKAGES 0x04 /* Contains VMS linkages info. */
 
#define ELF_STRING_ia64_archext ".IA_64.archext"
#define ELF_STRING_ia64_pltoff ".IA_64.pltoff"
#define ELF_STRING_ia64_unwind ".IA_64.unwind"
#define ELF_STRING_ia64_unwind_info ".IA_64.unwind_info"
#define ELF_STRING_ia64_unwind_once ".gnu.linkonce.ia64unw."
#define ELF_STRING_ia64_unwind_info_once ".gnu.linkonce.ia64unwi."
/* .IA_64.unwind_hdr is only used by HP-UX. */
#define ELF_STRING_ia64_unwind_hdr ".IA_64.unwind_hdr"
 
/* Bits in the sh_flags field of Elf64_Shdr: */
 
#define SHF_IA_64_SHORT 0x10000000 /* Section near gp. */
#define SHF_IA_64_NORECOV 0x20000000 /* Spec insns w/o recovery. */
 
#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: */
 
#define SHT_IA_64_EXT (SHT_LOPROC + 0) /* Extension bits. */
#define SHT_IA_64_UNWIND (SHT_LOPROC + 1) /* Unwind bits. */
#define SHT_IA_64_LOPSREG (SHT_LOPROC + 0x8000000)
/* ABI says (SHT_LOPROC + 0xfffffff) but I think it's a typo -- this makes sense. */
#define SHT_IA_64_HIPSREG (SHT_LOPROC + 0x8ffffff)
#define SHT_IA_64_PRIORITY_INIT (SHT_LOPROC + 0x9000000)
 
/* SHT_IA_64_HP_OPT_ANOT is only generated by HPUX compilers for its
optimization annotation section. GCC does not generate it but we
want readelf to know what they are. Do not use two capital Ns in
annotate or sed will turn it into 32 or 64 during the build. */
#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
/* The section contains unmangled name info. */
#define SHT_IA_64_VMS_DISPLAY_NAME_INFO 0x60000007
 
/* Bits in the p_flags field of Elf64_Phdr: */
 
#define PF_IA_64_NORECOV 0x80000000
 
/* Possible values for p_type in Elf64_Phdr: */
 
#define PT_IA_64_ARCHEXT (PT_LOPROC + 0) /* Arch extension bits, */
#define PT_IA_64_UNWIND (PT_LOPROC + 1) /* IA64 unwind bits. */
 
/* HP-UX specific values for p_type in Elf64_Phdr.
These values are currently just used to make
readelf more usable on HP-UX. */
 
#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12)
#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13)
#define PT_IA_64_HP_STACK (PT_LOOS + 0x14)
 
/* Possible values for d_tag in Elf64_Dyn: */
 
#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)
 
/* Values for DT_IA_64_LNKFLAGS. */
#define VMS_LF_CALL_DEBUG 0x0001 /* Activate and call the debugger. */
#define VMS_LF_NOP0BUFS 0x0002 /* RMS use of P0 for i/o disabled. */
#define VMS_LF_P0IMAGE 0x0004 /* Image in P0 space only. */
#define VMS_LF_MKTHREADS 0x0008 /* Multiple kernel threads enabled. */
#define VMS_LF_UPCALLS 0x0010 /* Upcalls enabled. */
#define VMS_LF_IMGSTA 0x0020 /* Use SYS$IMGSTA. */
#define VMS_LF_INITIALIZE 0x0040 /* Image uses tfradr2. */
#define VMS_LF_MAIN 0x0080 /* Image uses tfradr3. */
#define VMS_LF_EXE_INIT 0x0200 /* Image uses tfradr4. */
#define VMS_LF_TBK_IN_IMG 0x0400 /* Traceback records in image. */
#define VMS_LF_DBG_IN_IMG 0x0800 /* Debug records in image. */
#define VMS_LF_TBK_IN_DSF 0x1000 /* Traceback records in DSF. */
#define VMS_LF_DBG_IN_DSF 0x2000 /* Debug records in DSF. */
#define VMS_LF_SIGNATURES 0x4000 /* Signatures present. */
#define VMS_LF_REL_SEG_OFF 0x8000 /* Maintain relative pos of seg. */
 
/* This section only used by HP-UX, The HP linker gives weak symbols
precedence over regular common symbols. We want common to override
weak. Using this common instead of SHN_COMMON does that. */
#define SHN_IA_64_ANSI_COMMON SHN_LORESERVE
 
/* 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 SHN_LOOS
 
/* OpenVMS IA64-specific symbol attributes. */
#define VMS_STO_VISIBILITY 3 /* Alias of the standard field. */
#define VMS_ST_VISIBILITY(o) ((o) & VMS_STO_VISIBILITY)
#define VMS_STO_FUNC_TYPE 0x30 /* Function type. */
#define VMS_ST_FUNC_TYPE(o) (((o) & VMS_STO_FUNC_TYPE) >> 4)
# define VMS_SFT_CODE_ADDR 0 /* Symbol value is a code address. */
# define VMS_SFT_SYMV_IDX 1 /* Symbol value is a symbol vector index. */
# define VMS_SFT_FD 2 /* Symbol value is a function descriptor. */
# define VMS_SFT_RESERVE 3 /* Reserved. */
#define VMS_STO_LINKAGE 0xc0
#define VMS_ST_LINKAGE(o) (((o) & VMS_STO_LINKAGE) >> 6)
# define VMS_STL_IGNORE 0 /* No associated linkage. */
# define VMS_STL_RESERVE 1
# define VMS_STL_STD 2 /* Standard linkage with return value. */
# define VMS_STL_LNK 3 /* Explicit represented in .vms_linkages. */
 
/* OpenVMS specific symbol binding values. */
#define STB_VMS_WEAK 11 /* VMS weak symbol. */
#define STB_VMS_SYSTEM 12 /* System symbol. */
 
/* OpenVMS specific fixup and relocation structures. */
 
typedef struct
{
unsigned char fixup_offset[8];
unsigned char type[4];
unsigned char fixup_seg[4];
unsigned char addend[8];
unsigned char symvec_index[4];
unsigned char data_type[4];
} Elf64_External_VMS_IMAGE_FIXUP;
 
typedef struct
{
unsigned char rela_offset[8];
unsigned char type[4];
unsigned char rela_seg[4];
unsigned char addend[8];
unsigned char sym_offset[8];
unsigned char sym_seg[4];
unsigned char fill_1[4];
} Elf64_External_VMS_IMAGE_RELA;
 
/* Note segments. VMS is special as it uses 64-bit entries. */
 
typedef struct {
unsigned char namesz[8]; /* Size of entry's owner string */
unsigned char descsz[8]; /* Size of the note descriptor */
unsigned char type[8]; /* Interpretation of the descriptor */
char name[1]; /* Start of the name+desc data */
} Elf64_External_VMS_Note;
 
#define NT_VMS_MHD 1 /* Object module name, version, and date/time. */
#define NT_VMS_LNM 2 /* Language processor name. */
#define NT_VMS_SRC 3 /* Source files. */
#define NT_VMS_TITLE 4 /* Title text. */
#define NT_VMS_EIDC 5 /* Entity ident consistency check. */
#define NT_VMS_FPMODE 6 /* Whole program floating-point mode. */
#define NT_VMS_LINKTIME 101 /* Date/time image was linked. */
#define NT_VMS_IMGNAM 102 /* Image name string. */
#define NT_VMS_IMGID 103 /* Image ident string. */
#define NT_VMS_LINKID 104 /* Linker ident string. */
#define NT_VMS_IMGBID 105 /* Image build ident string. */
#define NT_VMS_GSTNAM 106 /* Global Symbol Table Name. */
#define NT_VMS_ORIG_DYN 107 /* Original setting of dynamic data. */
#define NT_VMS_PATCHTIME 108 /* Date/time of last patch. */
 
/* Corresponding data for NT_VMS_ORIG_DYM. */
 
typedef struct {
unsigned char major_id[4]; /* Should be 1. */
unsigned char minor_id[4]; /* Should be 3. */
unsigned char manipulation_date[8]; /* Original NT_VMS_LNKTIME. */
unsigned char link_flags[8]; /* Original NT_VMS_LNKFLAGS. */
unsigned char elf_flags[4]; /* Original ehdr flags. */
unsigned char _pad[4];
unsigned char imgid[1]; /* Original NT_VMS_IMGID. */
} Elf64_External_VMS_ORIG_DYN_Note;
 
/* IA64-specific relocation types: */
 
/* Relocs apply to specific instructions within a bundle. The least
significant 2 bits of the address indicate which instruction in the
bundle the reloc refers to (0=first slot, 1=second slow, 2=third
slot, 3=undefined) and the remaining bits give the address of the
bundle (16 byte aligned).
 
The top 5 bits of the reloc code specifies the expression type, the
low 3 bits the format of the data word being relocated. */
 
#include "elf/reloc-macros.h"
 
START_RELOC_NUMBERS (elf_ia64_reloc_type)
RELOC_NUMBER (R_IA64_NONE, 0x00) /* none */
 
RELOC_NUMBER (R_IA64_IMM14, 0x21) /* symbol + addend, add imm14 */
RELOC_NUMBER (R_IA64_IMM22, 0x22) /* symbol + addend, add imm22 */
RELOC_NUMBER (R_IA64_IMM64, 0x23) /* symbol + addend, mov imm64 */
RELOC_NUMBER (R_IA64_DIR32MSB, 0x24) /* symbol + addend, data4 MSB */
RELOC_NUMBER (R_IA64_DIR32LSB, 0x25) /* symbol + addend, data4 LSB */
RELOC_NUMBER (R_IA64_DIR64MSB, 0x26) /* symbol + addend, data8 MSB */
RELOC_NUMBER (R_IA64_DIR64LSB, 0x27) /* symbol + addend, data8 LSB */
 
RELOC_NUMBER (R_IA64_GPREL22, 0x2a) /* @gprel(sym+add), add imm22 */
RELOC_NUMBER (R_IA64_GPREL64I, 0x2b) /* @gprel(sym+add), mov imm64 */
RELOC_NUMBER (R_IA64_GPREL32MSB, 0x2c) /* @gprel(sym+add), data4 MSB */
RELOC_NUMBER (R_IA64_GPREL32LSB, 0x2d) /* @gprel(sym+add), data4 LSB */
RELOC_NUMBER (R_IA64_GPREL64MSB, 0x2e) /* @gprel(sym+add), data8 MSB */
RELOC_NUMBER (R_IA64_GPREL64LSB, 0x2f) /* @gprel(sym+add), data8 LSB */
 
RELOC_NUMBER (R_IA64_LTOFF22, 0x32) /* @ltoff(sym+add), add imm22 */
RELOC_NUMBER (R_IA64_LTOFF64I, 0x33) /* @ltoff(sym+add), mov imm64 */
 
RELOC_NUMBER (R_IA64_PLTOFF22, 0x3a) /* @pltoff(sym+add), add imm22 */
RELOC_NUMBER (R_IA64_PLTOFF64I, 0x3b) /* @pltoff(sym+add), mov imm64 */
RELOC_NUMBER (R_IA64_PLTOFF64MSB, 0x3e) /* @pltoff(sym+add), data8 MSB */
RELOC_NUMBER (R_IA64_PLTOFF64LSB, 0x3f) /* @pltoff(sym+add), data8 LSB */
 
RELOC_NUMBER (R_IA64_FPTR64I, 0x43) /* @fptr(sym+add), mov imm64 */
RELOC_NUMBER (R_IA64_FPTR32MSB, 0x44) /* @fptr(sym+add), data4 MSB */
RELOC_NUMBER (R_IA64_FPTR32LSB, 0x45) /* @fptr(sym+add), data4 LSB */
RELOC_NUMBER (R_IA64_FPTR64MSB, 0x46) /* @fptr(sym+add), data8 MSB */
RELOC_NUMBER (R_IA64_FPTR64LSB, 0x47) /* @fptr(sym+add), data8 LSB */
 
RELOC_NUMBER (R_IA64_PCREL60B, 0x48) /* @pcrel(sym+add), brl */
RELOC_NUMBER (R_IA64_PCREL21B, 0x49) /* @pcrel(sym+add), ptb, call */
RELOC_NUMBER (R_IA64_PCREL21M, 0x4a) /* @pcrel(sym+add), chk.s */
RELOC_NUMBER (R_IA64_PCREL21F, 0x4b) /* @pcrel(sym+add), fchkf */
RELOC_NUMBER (R_IA64_PCREL32MSB, 0x4c) /* @pcrel(sym+add), data4 MSB */
RELOC_NUMBER (R_IA64_PCREL32LSB, 0x4d) /* @pcrel(sym+add), data4 LSB */
RELOC_NUMBER (R_IA64_PCREL64MSB, 0x4e) /* @pcrel(sym+add), data8 MSB */
RELOC_NUMBER (R_IA64_PCREL64LSB, 0x4f) /* @pcrel(sym+add), data8 LSB */
 
RELOC_NUMBER (R_IA64_LTOFF_FPTR22, 0x52) /* @ltoff(@fptr(s+a)), imm22 */
RELOC_NUMBER (R_IA64_LTOFF_FPTR64I, 0x53) /* @ltoff(@fptr(s+a)), imm64 */
RELOC_NUMBER (R_IA64_LTOFF_FPTR32MSB, 0x54) /* @ltoff(@fptr(s+a)), 4 MSB */
RELOC_NUMBER (R_IA64_LTOFF_FPTR32LSB, 0x55) /* @ltoff(@fptr(s+a)), 4 LSB */
RELOC_NUMBER (R_IA64_LTOFF_FPTR64MSB, 0x56) /* @ltoff(@fptr(s+a)), 8 MSB */
RELOC_NUMBER (R_IA64_LTOFF_FPTR64LSB, 0x57) /* @ltoff(@fptr(s+a)), 8 LSB */
 
RELOC_NUMBER (R_IA64_SEGREL32MSB, 0x5c) /* @segrel(sym+add), data4 MSB */
RELOC_NUMBER (R_IA64_SEGREL32LSB, 0x5d) /* @segrel(sym+add), data4 LSB */
RELOC_NUMBER (R_IA64_SEGREL64MSB, 0x5e) /* @segrel(sym+add), data8 MSB */
RELOC_NUMBER (R_IA64_SEGREL64LSB, 0x5f) /* @segrel(sym+add), data8 LSB */
 
RELOC_NUMBER (R_IA64_SECREL32MSB, 0x64) /* @secrel(sym+add), data4 MSB */
RELOC_NUMBER (R_IA64_SECREL32LSB, 0x65) /* @secrel(sym+add), data4 LSB */
RELOC_NUMBER (R_IA64_SECREL64MSB, 0x66) /* @secrel(sym+add), data8 MSB */
RELOC_NUMBER (R_IA64_SECREL64LSB, 0x67) /* @secrel(sym+add), data8 LSB */
 
RELOC_NUMBER (R_IA64_REL32MSB, 0x6c) /* data 4 + REL */
RELOC_NUMBER (R_IA64_REL32LSB, 0x6d) /* data 4 + REL */
RELOC_NUMBER (R_IA64_REL64MSB, 0x6e) /* data 8 + REL */
RELOC_NUMBER (R_IA64_REL64LSB, 0x6f) /* data 8 + REL */
 
RELOC_NUMBER (R_IA64_LTV32MSB, 0x74) /* symbol + addend, data4 MSB */
RELOC_NUMBER (R_IA64_LTV32LSB, 0x75) /* symbol + addend, data4 LSB */
RELOC_NUMBER (R_IA64_LTV64MSB, 0x76) /* symbol + addend, data8 MSB */
RELOC_NUMBER (R_IA64_LTV64LSB, 0x77) /* symbol + addend, data8 LSB */
 
RELOC_NUMBER (R_IA64_PCREL21BI, 0x79) /* @pcrel(sym+add), ptb, call */
RELOC_NUMBER (R_IA64_PCREL22, 0x7a) /* @pcrel(sym+add), imm22 */
RELOC_NUMBER (R_IA64_PCREL64I, 0x7b) /* @pcrel(sym+add), imm64 */
 
RELOC_NUMBER (R_IA64_IPLTMSB, 0x80) /* dynamic reloc, imported PLT, MSB */
RELOC_NUMBER (R_IA64_IPLTLSB, 0x81) /* dynamic reloc, imported PLT, LSB */
RELOC_NUMBER (R_IA64_COPY, 0x84) /* dynamic reloc, data copy */
RELOC_NUMBER (R_IA64_LTOFF22X, 0x86) /* LTOFF22, relaxable. */
RELOC_NUMBER (R_IA64_LDXMOV, 0x87) /* Use of LTOFF22X. */
 
RELOC_NUMBER (R_IA64_TPREL14, 0x91) /* @tprel(sym+add), add imm14 */
RELOC_NUMBER (R_IA64_TPREL22, 0x92) /* @tprel(sym+add), add imm22 */
RELOC_NUMBER (R_IA64_TPREL64I, 0x93) /* @tprel(sym+add), add imm64 */
RELOC_NUMBER (R_IA64_TPREL64MSB, 0x96) /* @tprel(sym+add), data8 MSB */
RELOC_NUMBER (R_IA64_TPREL64LSB, 0x97) /* @tprel(sym+add), data8 LSB */
 
RELOC_NUMBER (R_IA64_LTOFF_TPREL22, 0x9a) /* @ltoff(@tprel(s+a)), add imm22 */
 
RELOC_NUMBER (R_IA64_DTPMOD64MSB, 0xa6) /* @dtpmod(sym+add), data8 MSB */
RELOC_NUMBER (R_IA64_DTPMOD64LSB, 0xa7) /* @dtpmod(sym+add), data8 LSB */
RELOC_NUMBER (R_IA64_LTOFF_DTPMOD22, 0xaa) /* @ltoff(@dtpmod(s+a)), imm22 */
 
RELOC_NUMBER (R_IA64_DTPREL14, 0xb1) /* @dtprel(sym+add), imm14 */
RELOC_NUMBER (R_IA64_DTPREL22, 0xb2) /* @dtprel(sym+add), imm22 */
RELOC_NUMBER (R_IA64_DTPREL64I, 0xb3) /* @dtprel(sym+add), imm64 */
RELOC_NUMBER (R_IA64_DTPREL32MSB, 0xb4) /* @dtprel(sym+add), data4 MSB */
RELOC_NUMBER (R_IA64_DTPREL32LSB, 0xb5) /* @dtprel(sym+add), data4 LSB */
RELOC_NUMBER (R_IA64_DTPREL64MSB, 0xb6) /* @dtprel(sym+add), data8 MSB */
RELOC_NUMBER (R_IA64_DTPREL64LSB, 0xb7) /* @dtprel(sym+add), data8 LSB */
 
RELOC_NUMBER (R_IA64_LTOFF_DTPREL22, 0xba) /* @ltoff(@dtprel(s+a)), imm22 */
 
FAKE_RELOC (R_IA64_MAX_RELOC_CODE, 0xba)
 
/* OpenVMS specific relocs. */
RELOC_NUMBER (R_IA64_VMS_DIR8, 0x70000000) /* S + A */
RELOC_NUMBER (R_IA64_VMS_DIR16LSB, 0x70000001) /* S + A */
RELOC_NUMBER (R_IA64_VMS_CALL_SIGNATURE, 0x70000002)
RELOC_NUMBER (R_IA64_VMS_EXECLET_FUNC, 0x70000003)
RELOC_NUMBER (R_IA64_VMS_EXECLET_DATA, 0x70000004)
RELOC_NUMBER (R_IA64_VMS_FIX8, 0x70000005) /* S + A */
RELOC_NUMBER (R_IA64_VMS_FIX16, 0x70000006) /* S + A */
RELOC_NUMBER (R_IA64_VMS_FIX32, 0x70000007) /* S + A */
RELOC_NUMBER (R_IA64_VMS_FIX64, 0x70000008) /* S + A */
RELOC_NUMBER (R_IA64_VMS_FIXFD, 0x70000009)
RELOC_NUMBER (R_IA64_VMS_ACC_LOAD, 0x7000000a) /* ACC = S + A */
RELOC_NUMBER (R_IA64_VMS_ACC_ADD, 0x7000000b) /* ACC += S + A */
RELOC_NUMBER (R_IA64_VMS_ACC_SUB, 0x7000000c) /* ACC -= S + A */
RELOC_NUMBER (R_IA64_VMS_ACC_MUL, 0x7000000d) /* ACC *= S + A */
RELOC_NUMBER (R_IA64_VMS_ACC_DIV, 0x7000000e) /* ACC /= S + A */
RELOC_NUMBER (R_IA64_VMS_ACC_AND, 0x7000000f) /* ACC &= S + A */
RELOC_NUMBER (R_IA64_VMS_ACC_IOR, 0x70000010) /* ACC |= S + A */
RELOC_NUMBER (R_IA64_VMS_ACC_EOR, 0x70000011) /* ACC ^= S + A */
RELOC_NUMBER (R_IA64_VMS_ACC_ASH, 0x70000012) /* ACC >>= S + A */
RELOC_NUMBER (R_IA64_VMS_ACC_STO8, 0x70000014) /* ACC */
RELOC_NUMBER (R_IA64_VMS_ACC_STO16LSH, 0x70000015) /* ACC */
RELOC_NUMBER (R_IA64_VMS_ACC_STO32LSH, 0x70000016) /* ACC */
RELOC_NUMBER (R_IA64_VMS_ACC_STO64LSH, 0x70000017) /* ACC */
END_RELOC_NUMBERS (R_IA64_max)
 
#endif /* _ELF_IA64_H */
/contrib/toolchain/binutils/include/elf/internal.h
0,0 → 1,360
/* ELF support for BFD.
Copyright 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000, 2001, 2002,
2003, 2006, 2007, 2008, 2010, 2011 Free Software Foundation, Inc.
 
Written by Fred Fish @ Cygnus Support, from information published
in "UNIX System V Release 4, Programmers Guide: ANSI C and
Programming Support Tools".
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
/* This file is part of ELF support for BFD, and contains the portions
that describe how ELF is represented internally in the BFD library.
I.E. it describes the in-memory representation of ELF. It requires
the elf-common.h file which contains the portions that are common to
both the internal and external representations. */
 
/* NOTE that these structures are not kept in the same order as they appear
in the object file. In some cases they've been reordered for more optimal
packing under various circumstances. */
 
#ifndef _ELF_INTERNAL_H
#define _ELF_INTERNAL_H
 
/* Special section indices, which may show up in st_shndx fields, among
other places. */
 
#undef SHN_UNDEF
#undef SHN_LORESERVE
#undef SHN_LOPROC
#undef SHN_HIPROC
#undef SHN_LOOS
#undef SHN_HIOS
#undef SHN_ABS
#undef SHN_COMMON
#undef SHN_XINDEX
#undef SHN_HIRESERVE
#define SHN_UNDEF 0 /* Undefined section reference */
#define SHN_LORESERVE (-0x100u) /* Begin range of reserved indices */
#define SHN_LOPROC (-0x100u) /* Begin range of appl-specific */
#define SHN_HIPROC (-0xE1u) /* End range of appl-specific */
#define SHN_LOOS (-0xE0u) /* OS specific semantics, lo */
#define SHN_HIOS (-0xC1u) /* OS specific semantics, hi */
#define SHN_ABS (-0xFu) /* Associated symbol is absolute */
#define SHN_COMMON (-0xEu) /* Associated symbol is in common */
#define SHN_XINDEX (-0x1u) /* Section index is held elsewhere */
#define SHN_HIRESERVE (-0x1u) /* End range of reserved indices */
#define SHN_BAD (-0x101u) /* Used internally by bfd */
 
/* ELF Header */
 
#define EI_NIDENT 16 /* Size of e_ident[] */
 
typedef struct elf_internal_ehdr {
unsigned char e_ident[EI_NIDENT]; /* ELF "magic number" */
bfd_vma e_entry; /* Entry point virtual address */
bfd_size_type e_phoff; /* Program header table file offset */
bfd_size_type e_shoff; /* Section header table file offset */
unsigned long e_version; /* Identifies object file version */
unsigned long e_flags; /* Processor-specific flags */
unsigned short e_type; /* Identifies object file type */
unsigned short e_machine; /* Specifies required architecture */
unsigned int e_ehsize; /* ELF header size in bytes */
unsigned int e_phentsize; /* Program header table entry size */
unsigned int e_phnum; /* Program header table entry count */
unsigned int e_shentsize; /* Section header table entry size */
unsigned int e_shnum; /* Section header table entry count */
unsigned int e_shstrndx; /* Section header string table index */
} Elf_Internal_Ehdr;
 
/* Program header */
 
struct elf_internal_phdr {
unsigned long p_type; /* Identifies program segment type */
unsigned long p_flags; /* Segment flags */
bfd_vma p_offset; /* Segment file offset */
bfd_vma p_vaddr; /* Segment virtual address */
bfd_vma p_paddr; /* Segment physical address */
bfd_vma p_filesz; /* Segment size in file */
bfd_vma p_memsz; /* Segment size in memory */
bfd_vma p_align; /* Segment alignment, file & memory */
};
 
typedef struct elf_internal_phdr Elf_Internal_Phdr;
 
/* Section header */
 
typedef struct elf_internal_shdr {
unsigned int sh_name; /* Section name, index in string tbl */
unsigned int sh_type; /* Type of section */
bfd_vma sh_flags; /* Miscellaneous section attributes */
bfd_vma sh_addr; /* Section virtual addr at execution */
file_ptr sh_offset; /* Section file offset */
bfd_size_type sh_size; /* Size of section in bytes */
unsigned int sh_link; /* Index of another section */
unsigned int sh_info; /* Additional section information */
bfd_vma sh_addralign; /* Section alignment */
bfd_size_type sh_entsize; /* Entry size if section holds table */
 
/* The internal rep also has some cached info associated with it. */
asection * bfd_section; /* Associated BFD section. */
unsigned char *contents; /* Section contents. */
} Elf_Internal_Shdr;
 
/* Symbol table entry */
 
struct elf_internal_sym {
bfd_vma st_value; /* Value of the symbol */
bfd_vma st_size; /* Associated symbol size */
unsigned long st_name; /* Symbol name, index in string tbl */
unsigned char st_info; /* Type and binding attributes */
unsigned char st_other; /* Visibilty, and target specific */
unsigned char st_target_internal; /* Internal-only information */
unsigned int st_shndx; /* Associated section index */
};
 
typedef struct elf_internal_sym Elf_Internal_Sym;
 
/* Note segments */
 
typedef struct elf_internal_note {
unsigned long namesz; /* Size of entry's owner string */
unsigned long descsz; /* Size of the note descriptor */
unsigned long type; /* Interpretation of the descriptor */
char * namedata; /* Start of the name+desc data */
char * descdata; /* Start of the desc data */
bfd_vma descpos; /* File offset of the descdata */
} Elf_Internal_Note;
 
/* Relocation Entries */
 
typedef struct elf_internal_rela {
bfd_vma r_offset; /* Location at which to apply the action */
bfd_vma r_info; /* Index and Type of relocation */
bfd_vma r_addend; /* Constant addend used to compute value */
} Elf_Internal_Rela;
 
/* dynamic section structure */
 
typedef struct elf_internal_dyn {
/* This needs to support 64-bit values in elf64. */
bfd_vma d_tag; /* entry tag value */
union {
/* This needs to support 64-bit values in elf64. */
bfd_vma d_val;
bfd_vma d_ptr;
} d_un;
} Elf_Internal_Dyn;
 
/* This structure appears in a SHT_GNU_verdef section. */
 
typedef struct elf_internal_verdef {
unsigned short vd_version; /* Version number of structure. */
unsigned short vd_flags; /* Flags (VER_FLG_*). */
unsigned short vd_ndx; /* Version index. */
unsigned short vd_cnt; /* Number of verdaux entries. */
unsigned long vd_hash; /* Hash of name. */
unsigned long vd_aux; /* Offset to verdaux entries. */
unsigned long vd_next; /* Offset to next verdef. */
 
/* These fields are set up when BFD reads in the structure. FIXME:
It would be cleaner to store these in a different structure. */
bfd *vd_bfd; /* BFD. */
const char *vd_nodename; /* Version name. */
struct elf_internal_verdef *vd_nextdef; /* vd_next as pointer. */
struct elf_internal_verdaux *vd_auxptr; /* vd_aux as pointer. */
unsigned int vd_exp_refno; /* Used by the linker. */
} Elf_Internal_Verdef;
 
/* This structure appears in a SHT_GNU_verdef section. */
 
typedef struct elf_internal_verdaux {
unsigned long vda_name; /* String table offset of name. */
unsigned long vda_next; /* Offset to next verdaux. */
 
/* These fields are set up when BFD reads in the structure. FIXME:
It would be cleaner to store these in a different structure. */
const char *vda_nodename; /* vda_name as pointer. */
struct elf_internal_verdaux *vda_nextptr; /* vda_next as pointer. */
} Elf_Internal_Verdaux;
 
/* This structure appears in a SHT_GNU_verneed section. */
 
typedef struct elf_internal_verneed {
unsigned short vn_version; /* Version number of structure. */
unsigned short vn_cnt; /* Number of vernaux entries. */
unsigned long vn_file; /* String table offset of library name. */
unsigned long vn_aux; /* Offset to vernaux entries. */
unsigned long vn_next; /* Offset to next verneed. */
 
/* These fields are set up when BFD reads in the structure. FIXME:
It would be cleaner to store these in a different structure. */
bfd *vn_bfd; /* BFD. */
const char *vn_filename; /* vn_file as pointer. */
struct elf_internal_vernaux *vn_auxptr; /* vn_aux as pointer. */
struct elf_internal_verneed *vn_nextref; /* vn_nextref as pointer. */
} Elf_Internal_Verneed;
 
/* This structure appears in a SHT_GNU_verneed section. */
 
typedef struct elf_internal_vernaux {
unsigned long vna_hash; /* Hash of dependency name. */
unsigned short vna_flags; /* Flags (VER_FLG_*). */
unsigned short vna_other; /* Unused. */
unsigned long vna_name; /* String table offset to version name. */
unsigned long vna_next; /* Offset to next vernaux. */
 
/* These fields are set up when BFD reads in the structure. FIXME:
It would be cleaner to store these in a different structure. */
const char *vna_nodename; /* vna_name as pointer. */
struct elf_internal_vernaux *vna_nextptr; /* vna_next as pointer. */
} Elf_Internal_Vernaux;
 
/* This structure appears in a SHT_GNU_versym section. This is not a
standard ELF structure; ELF just uses Elf32_Half. */
 
typedef struct elf_internal_versym {
unsigned short vs_vers;
} Elf_Internal_Versym;
 
/* Structure for syminfo section. */
typedef struct
{
unsigned short int si_boundto;
unsigned short int si_flags;
} Elf_Internal_Syminfo;
 
/* This structure appears on the stack and in NT_AUXV core file notes. */
typedef struct
{
bfd_vma a_type;
bfd_vma a_val;
} Elf_Internal_Auxv;
 
 
/* This structure is used to describe how sections should be assigned
to program segments. */
 
struct elf_segment_map
{
/* Next program segment. */
struct elf_segment_map *next;
/* Program segment type. */
unsigned long p_type;
/* Program segment flags. */
unsigned long p_flags;
/* Program segment physical address. */
bfd_vma p_paddr;
/* Program segment virtual address offset from section vma. */
bfd_vma p_vaddr_offset;
/* Program segment alignment. */
bfd_vma p_align;
/* Segment size in file and memory */
bfd_vma p_size;
/* Required size of filehdr + phdrs, if non-zero */
bfd_vma header_size;
/* Whether the p_flags field is valid; if not, the flags are based
on the section flags. */
unsigned int p_flags_valid : 1;
/* Whether the p_paddr field is valid; if not, the physical address
is based on the section lma values. */
unsigned int p_paddr_valid : 1;
/* Whether the p_align field is valid; if not, PT_LOAD segment
alignment is based on the default maximum page size. */
unsigned int p_align_valid : 1;
/* Whether the p_size field is valid; if not, the size are based
on the section sizes. */
unsigned int p_size_valid : 1;
/* Whether this segment includes the file header. */
unsigned int includes_filehdr : 1;
/* Whether this segment includes the program headers. */
unsigned int includes_phdrs : 1;
/* Number of sections (may be 0). */
unsigned int count;
/* Sections. Actual number of elements is in count field. */
asection *sections[1];
};
 
/* .tbss is special. It doesn't contribute memory space to normal
segments and it doesn't take file space in normal segments. */
#define ELF_TBSS_SPECIAL(sec_hdr, segment) \
(((sec_hdr)->sh_flags & SHF_TLS) != 0 \
&& (sec_hdr)->sh_type == SHT_NOBITS \
&& (segment)->p_type != PT_TLS)
 
#define ELF_SECTION_SIZE(sec_hdr, segment) \
(ELF_TBSS_SPECIAL(sec_hdr, segment) ? 0 : (sec_hdr)->sh_size)
 
/* Decide if the section SEC_HDR is in SEGMENT. If CHECK_VMA, then
VMAs are checked for alloc sections. If STRICT, then a zero size
section won't match at the end of a segment, unless the segment
is also zero size. Regardless of STRICT and CHECK_VMA, zero size
sections won't match at the start or end of PT_DYNAMIC, unless
PT_DYNAMIC is itself zero sized. */
#define ELF_SECTION_IN_SEGMENT_1(sec_hdr, segment, check_vma, strict) \
((/* Only PT_LOAD, PT_GNU_RELRO and PT_TLS segments can contain \
SHF_TLS sections. */ \
((((sec_hdr)->sh_flags & SHF_TLS) != 0) \
&& ((segment)->p_type == PT_TLS \
|| (segment)->p_type == PT_GNU_RELRO \
|| (segment)->p_type == PT_LOAD)) \
/* PT_TLS segment contains only SHF_TLS sections, PT_PHDR no \
sections at all. */ \
|| (((sec_hdr)->sh_flags & SHF_TLS) == 0 \
&& (segment)->p_type != PT_TLS \
&& (segment)->p_type != PT_PHDR)) \
/* Any section besides one of type SHT_NOBITS must have file \
offsets within the segment. */ \
&& ((sec_hdr)->sh_type == SHT_NOBITS \
|| ((bfd_vma) (sec_hdr)->sh_offset >= (segment)->p_offset \
&& (!(strict) \
|| ((sec_hdr)->sh_offset - (segment)->p_offset \
<= (segment)->p_filesz - 1)) \
&& (((sec_hdr)->sh_offset - (segment)->p_offset \
+ ELF_SECTION_SIZE(sec_hdr, segment)) \
<= (segment)->p_filesz))) \
/* SHF_ALLOC sections must have VMAs within the segment. */ \
&& (!(check_vma) \
|| ((sec_hdr)->sh_flags & SHF_ALLOC) == 0 \
|| ((sec_hdr)->sh_addr >= (segment)->p_vaddr \
&& (!(strict) \
|| ((sec_hdr)->sh_addr - (segment)->p_vaddr \
<= (segment)->p_memsz - 1)) \
&& (((sec_hdr)->sh_addr - (segment)->p_vaddr \
+ ELF_SECTION_SIZE(sec_hdr, segment)) \
<= (segment)->p_memsz))) \
/* No zero size sections at start or end of PT_DYNAMIC. */ \
&& ((segment)->p_type != PT_DYNAMIC \
|| (sec_hdr)->sh_size != 0 \
|| (segment)->p_memsz == 0 \
|| (((sec_hdr)->sh_type == SHT_NOBITS \
|| ((bfd_vma) (sec_hdr)->sh_offset > (segment)->p_offset \
&& ((sec_hdr)->sh_offset - (segment)->p_offset \
< (segment)->p_filesz))) \
&& (((sec_hdr)->sh_flags & SHF_ALLOC) == 0 \
|| ((sec_hdr)->sh_addr > (segment)->p_vaddr \
&& ((sec_hdr)->sh_addr - (segment)->p_vaddr \
< (segment)->p_memsz))))))
 
#define ELF_SECTION_IN_SEGMENT(sec_hdr, segment) \
(ELF_SECTION_IN_SEGMENT_1 (sec_hdr, segment, 1, 0))
 
#define ELF_SECTION_IN_SEGMENT_STRICT(sec_hdr, segment) \
(ELF_SECTION_IN_SEGMENT_1 (sec_hdr, segment, 1, 1))
 
#endif /* _ELF_INTERNAL_H */
/contrib/toolchain/binutils/include/elf/ip2k.h
0,0 → 1,62
/* IP2xxx ELF support for BFD.
Copyright (C) 2000, 2002, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_IP2K_H
#define _ELF_IP2K_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_ip2k_reloc_type)
RELOC_NUMBER (R_IP2K_NONE, 0)
RELOC_NUMBER (R_IP2K_16, 1)
RELOC_NUMBER (R_IP2K_32, 2)
RELOC_NUMBER (R_IP2K_FR9, 3)
RELOC_NUMBER (R_IP2K_BANK, 4)
RELOC_NUMBER (R_IP2K_ADDR16CJP, 5)
RELOC_NUMBER (R_IP2K_PAGE3, 6)
RELOC_NUMBER (R_IP2K_LO8DATA, 7)
RELOC_NUMBER (R_IP2K_HI8DATA, 8)
RELOC_NUMBER (R_IP2K_LO8INSN, 9)
RELOC_NUMBER (R_IP2K_HI8INSN, 10)
RELOC_NUMBER (R_IP2K_PC_SKIP, 11)
RELOC_NUMBER (R_IP2K_TEXT, 12)
RELOC_NUMBER (R_IP2K_FR_OFFSET, 13)
RELOC_NUMBER (R_IP2K_EX8DATA, 14)
END_RELOC_NUMBERS(R_IP2K_max)
 
 
/* Define the data & instruction memory discriminator. In a linked
executable, an symbol should be deemed to point to an instruction
if ((address & IP2K_INSN_MASK) == IP2K_INSN_VALUE), and similarly
for the data space. See also `ld/emulparams/elf32ip2k.sh'. */
/* ??? Consider extending the _MASK values to include all the
intermediate bits that must be zero due to the limited physical
memory size on the IP2K. */
 
#define IP2K_DATA_MASK 0xff000000
#define IP2K_DATA_VALUE 0x01000000
#define IP2K_INSN_MASK 0xff000000
#define IP2K_INSN_VALUE 0x02000000
 
/* The location of the memory mapped hardware stack. */
#define IP2K_STACK_VALUE 0x0f000000
#define IP2K_STACK_SIZE 0x20
 
#endif /* _ELF_IP2K_H */
/contrib/toolchain/binutils/include/elf/iq2000.h
0,0 → 1,58
/* IQ2000 ELF support for BFD.
Copyright (C) 2002, 2003, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_IQ2000_H
#define _ELF_IQ2000_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_iq2000_reloc_type)
RELOC_NUMBER (R_IQ2000_NONE, 0)
RELOC_NUMBER (R_IQ2000_16, 1)
RELOC_NUMBER (R_IQ2000_32, 2)
RELOC_NUMBER (R_IQ2000_26, 3)
RELOC_NUMBER (R_IQ2000_PC16, 4)
RELOC_NUMBER (R_IQ2000_HI16, 5)
RELOC_NUMBER (R_IQ2000_LO16, 6)
RELOC_NUMBER (R_IQ2000_OFFSET_16, 7)
RELOC_NUMBER (R_IQ2000_OFFSET_21, 8)
RELOC_NUMBER (R_IQ2000_UHI16, 9)
RELOC_NUMBER (R_IQ2000_32_DEBUG, 10)
RELOC_NUMBER (R_IQ2000_GNU_VTINHERIT, 200)
RELOC_NUMBER (R_IQ2000_GNU_VTENTRY, 201)
END_RELOC_NUMBERS(R_IQ2000_max)
 
#define EF_IQ2000_CPU_IQ2000 0x00000001 /* default */
#define EF_IQ2000_CPU_IQ10 0x00000002 /* IQ10 */
#define EF_IQ2000_CPU_MASK 0x00000003 /* specific cpu bits */
#define EF_IQ2000_ALL_FLAGS (EF_IQ2000_CPU_MASK)
 
/* Define the data & instruction memory discriminator. In a linked
executable, an symbol should be deemed to point to an instruction
if ((address & IQ2000_INSN_MASK) == IQ2000_INSN_VALUE), and similarly
for the data space. */
 
#define IQ2000_DATA_MASK 0x80000000
#define IQ2000_DATA_VALUE 0x00000000
#define IQ2000_INSN_MASK 0x80000000
#define IQ2000_INSN_VALUE 0x80000000
 
 
#endif /* _ELF_IQ2000_H */
/contrib/toolchain/binutils/include/elf/lm32.h
0,0 → 1,56
/* Lattice Mico32 ELF support for BFD.
Copyright 2008, 2010 Free Software Foundation, Inc.
Contributed by Jon Beniston <jon@beniston.com>
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_LM32_H
#define _ELF_LM32_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_lm32_reloc_type)
RELOC_NUMBER (R_LM32_NONE, 0)
RELOC_NUMBER (R_LM32_8, 1)
RELOC_NUMBER (R_LM32_16, 2)
RELOC_NUMBER (R_LM32_32, 3)
RELOC_NUMBER (R_LM32_HI16, 4)
RELOC_NUMBER (R_LM32_LO16, 5)
RELOC_NUMBER (R_LM32_GPREL16, 6)
RELOC_NUMBER (R_LM32_CALL, 7)
RELOC_NUMBER (R_LM32_BRANCH, 8)
RELOC_NUMBER (R_LM32_GNU_VTINHERIT, 9)
RELOC_NUMBER (R_LM32_GNU_VTENTRY, 10)
RELOC_NUMBER (R_LM32_16_GOT, 11)
RELOC_NUMBER (R_LM32_GOTOFF_HI16, 12)
RELOC_NUMBER (R_LM32_GOTOFF_LO16, 13)
RELOC_NUMBER (R_LM32_COPY, 14)
RELOC_NUMBER (R_LM32_GLOB_DAT, 15)
RELOC_NUMBER (R_LM32_JMP_SLOT, 16)
RELOC_NUMBER (R_LM32_RELATIVE, 17)
END_RELOC_NUMBERS (R_LM32_max)
 
/* Processor specific flags for the ELF header e_flags field. */
 
#define EF_LM32_MACH 0x00000001
 
/* Various CPU types. */
 
#define E_LM32_MACH 0x1
 
#endif /* _ELF_LM32_H */
/contrib/toolchain/binutils/include/elf/m32c.h
0,0 → 1,67
/* M32C ELF support for BFD.
Copyright (C) 2004, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_M32C_H
#define _ELF_M32C_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_m32c_reloc_type)
RELOC_NUMBER (R_M32C_NONE, 0)
RELOC_NUMBER (R_M32C_16, 1)
RELOC_NUMBER (R_M32C_24, 2)
RELOC_NUMBER (R_M32C_32, 3)
RELOC_NUMBER (R_M32C_8_PCREL, 4)
RELOC_NUMBER (R_M32C_16_PCREL, 5)
 
/* 8 bit unsigned address, used for dsp8[a0] etc */
RELOC_NUMBER (R_M32C_8, 6)
/* Bits 0..15 of an address, for SMOVF's A0, A1A0, etc. */
RELOC_NUMBER (R_M32C_LO16, 7)
/* Bits 16..23 of an address, for SMOVF's R1H etc. */
RELOC_NUMBER (R_M32C_HI8, 8)
/* Bits 16..31 of an address, for LDE's A1A0 etc. */
RELOC_NUMBER (R_M32C_HI16, 9)
 
/* These are relocs we need when relaxing. */
/* Marks various jump opcodes. */
RELOC_NUMBER (R_M32C_RL_JUMP, 10)
/* Marks standard one-address form. */
RELOC_NUMBER (R_M32C_RL_1ADDR, 11)
/* Marks standard two-address form. */
RELOC_NUMBER (R_M32C_RL_2ADDR, 12)
 
END_RELOC_NUMBERS (R_M32C_max)
 
#define EF_M32C_CPU_M16C 0x00000075 /* default */
#define EF_M32C_CPU_M32C 0x00000078 /* m32c */
#define EF_M32C_CPU_MASK 0x0000007F /* specific cpu bits */
#define EF_M32C_ALL_FLAGS (EF_M32C_CPU_MASK)
 
/* Define the data & instruction memory discriminator. In a linked
executable, an symbol should be deemed to point to an instruction
if ((address & M16C_INSN_MASK) == M16C_INSN_VALUE), and similarly
for the data space. See also `ld/emulparams/elf32m32c.sh'. */
#define M32C_DATA_MASK 0xffc00000
#define M32C_DATA_VALUE 0x00000000
#define M32C_INSN_MASK 0xffc00000
#define M32C_INSN_VALUE 0x00400000
 
#endif /* _ELF_M32C_H */
/contrib/toolchain/binutils/include/elf/m32r.h
0,0 → 1,123
/* M32R ELF support for BFD.
Copyright 1996, 1997, 1998, 1999, 2000, 2003, 2004, 2008, 2010
Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_M32R_H
#define _ELF_M32R_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_m32r_reloc_type)
RELOC_NUMBER (R_M32R_NONE, 0)
/* REL relocations */
RELOC_NUMBER (R_M32R_16, 1) /* For backwards compatibility. */
RELOC_NUMBER (R_M32R_32, 2) /* For backwards compatibility. */
RELOC_NUMBER (R_M32R_24, 3) /* For backwards compatibility. */
RELOC_NUMBER (R_M32R_10_PCREL, 4) /* For backwards compatibility. */
RELOC_NUMBER (R_M32R_18_PCREL, 5) /* For backwards compatibility. */
RELOC_NUMBER (R_M32R_26_PCREL, 6) /* For backwards compatibility. */
RELOC_NUMBER (R_M32R_HI16_ULO, 7) /* For backwards compatibility. */
RELOC_NUMBER (R_M32R_HI16_SLO, 8) /* For backwards compatibility. */
RELOC_NUMBER (R_M32R_LO16, 9) /* For backwards compatibility. */
RELOC_NUMBER (R_M32R_SDA16, 10) /* For backwards compatibility. */
RELOC_NUMBER (R_M32R_GNU_VTINHERIT, 11)/* For backwards compatibility. */
RELOC_NUMBER (R_M32R_GNU_VTENTRY, 12) /* For backwards compatibility. */
 
/* RELA relocations */
RELOC_NUMBER (R_M32R_16_RELA, 33)
RELOC_NUMBER (R_M32R_32_RELA, 34)
RELOC_NUMBER (R_M32R_24_RELA, 35)
RELOC_NUMBER (R_M32R_10_PCREL_RELA, 36)
RELOC_NUMBER (R_M32R_18_PCREL_RELA, 37)
RELOC_NUMBER (R_M32R_26_PCREL_RELA, 38)
RELOC_NUMBER (R_M32R_HI16_ULO_RELA, 39)
RELOC_NUMBER (R_M32R_HI16_SLO_RELA, 40)
RELOC_NUMBER (R_M32R_LO16_RELA, 41)
RELOC_NUMBER (R_M32R_SDA16_RELA, 42)
RELOC_NUMBER (R_M32R_RELA_GNU_VTINHERIT, 43)
RELOC_NUMBER (R_M32R_RELA_GNU_VTENTRY, 44)
 
RELOC_NUMBER (R_M32R_REL32, 45)
RELOC_NUMBER (R_M32R_GOT24, 48)
RELOC_NUMBER (R_M32R_26_PLTREL, 49)
RELOC_NUMBER (R_M32R_COPY, 50)
RELOC_NUMBER (R_M32R_GLOB_DAT, 51)
RELOC_NUMBER (R_M32R_JMP_SLOT, 52)
RELOC_NUMBER (R_M32R_RELATIVE, 53)
RELOC_NUMBER (R_M32R_GOTOFF, 54)
RELOC_NUMBER (R_M32R_GOTPC24, 55)
RELOC_NUMBER (R_M32R_GOT16_HI_ULO, 56)
RELOC_NUMBER (R_M32R_GOT16_HI_SLO, 57)
RELOC_NUMBER (R_M32R_GOT16_LO, 58)
RELOC_NUMBER (R_M32R_GOTPC_HI_ULO, 59)
RELOC_NUMBER (R_M32R_GOTPC_HI_SLO, 60)
RELOC_NUMBER (R_M32R_GOTPC_LO, 61)
RELOC_NUMBER (R_M32R_GOTOFF_HI_ULO, 62)
RELOC_NUMBER (R_M32R_GOTOFF_HI_SLO, 63)
RELOC_NUMBER (R_M32R_GOTOFF_LO, 64)
 
END_RELOC_NUMBERS (R_M32R_max)
 
/* Processor specific section indices. These sections do not actually
exist. Symbols with a st_shndx field corresponding to one of these
values have a special meaning. */
 
/* Small common symbol. */
#define SHN_M32R_SCOMMON SHN_LORESERVE
 
/* Processor specific section flags. */
 
/* This section contains sufficient relocs to be relaxed.
When relaxing, even relocs of branch instructions the assembler could
complete must be present because relaxing may cause the branch target to
move. */
#define SHF_M32R_CAN_RELAX 0x10000000
 
/* Processor specific flags for the ELF header e_flags field. */
 
/* Two bit m32r architecture field. */
#define EF_M32R_ARCH 0x30000000
 
/* m32r code. */
#define E_M32R_ARCH 0x00000000
/* m32rx code. */
#define E_M32RX_ARCH 0x10000000
/* m32r2 code. */
#define E_M32R2_ARCH 0x20000000
 
/* 12 bit m32r new instructions field. */
#define EF_M32R_INST 0x0FFF0000
/* Parallel instructions. */
#define E_M32R_HAS_PARALLEL 0x00010000
/* Hidden instructions for m32rx:
jc, jnc, macwhi-a, macwlo-a, mulwhi-a, mulwlo-a, sth+, shb+, sat, pcmpbz,
sc, snc. */
#define E_M32R_HAS_HIDDEN_INST 0x00020000
/* New bit instructions:
clrpsw, setpsw, bset, bclr, btst. */
#define E_M32R_HAS_BIT_INST 0x00040000
/* Floating point instructions. */
#define E_M32R_HAS_FLOAT_INST 0x00080000
 
/* 4 bit m32r ignore to check field. */
#define EF_M32R_IGNORE 0x0000000F
 
#endif
/contrib/toolchain/binutils/include/elf/m68hc11.h
0,0 → 1,107
/* m68hc11 & m68hc12 ELF support for BFD.
Copyright 1999, 2000, 2001, 2002, 2010, 2012 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_M68HC11_H
#define _ELF_M68HC11_H
 
#include "elf/reloc-macros.h"
 
/* Relocation types. */
START_RELOC_NUMBERS (elf_m68hc11_reloc_type)
RELOC_NUMBER (R_M68HC11_NONE, 0)
RELOC_NUMBER (R_M68HC11_8, 1)
RELOC_NUMBER (R_M68HC11_HI8, 2)
RELOC_NUMBER (R_M68HC11_LO8, 3)
RELOC_NUMBER (R_M68HC11_PCREL_8, 4)
RELOC_NUMBER (R_M68HC11_16, 5)
RELOC_NUMBER (R_M68HC11_32, 6)
RELOC_NUMBER (R_M68HC11_3B, 7)
RELOC_NUMBER (R_M68HC11_PCREL_16, 8)
 
/* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_M68HC11_GNU_VTINHERIT, 9)
RELOC_NUMBER (R_M68HC11_GNU_VTENTRY, 10)
 
RELOC_NUMBER (R_M68HC11_24, 11)
RELOC_NUMBER (R_M68HC11_LO16, 12)
RELOC_NUMBER (R_M68HC11_PAGE, 13)
 
RELOC_NUMBER (R_M68HC12_16B, 15)
RELOC_NUMBER (R_M68HC12_PCREL_9, 16)
RELOC_NUMBER (R_M68HC12_PCREL_10, 17)
RELOC_NUMBER (R_M68HC12_HI8XG, 18)
RELOC_NUMBER (R_M68HC12_LO8XG, 19)
 
/* GNU extension for linker relaxation.
Mark beginning of a jump instruction (any form). */
RELOC_NUMBER (R_M68HC11_RL_JUMP, 20)
 
/* Mark beginning of Gcc relaxation group instruction. */
RELOC_NUMBER (R_M68HC11_RL_GROUP, 21)
END_RELOC_NUMBERS (R_M68HC11_max)
 
/* Processor specific flags for the ELF header e_flags field. */
 
/* ABI identification. */
#define EF_M68HC11_ABI 0x00000000F
 
/* Integers are 32-bit long. */
#define E_M68HC11_I32 0x000000001
 
/* Doubles are 64-bit long. */
#define E_M68HC11_F64 0x000000002
 
/* Uses 68HC12 memory banks. */
#define E_M68HC12_BANKS 0x000000004
 
/* XGATE ram offsetting. */
#define E_M68HC11_XGATE_RAMOFFSET 0x000000100
 
/* Suppress warnings */
#define E_M68HC11_NO_BANK_WARNING 0x000000200
 
#define EF_M68HC11_MACH_MASK 0xF0
#define EF_M68HC11_GENERIC 0x00 /* Generic 68HC12/backward compatibility. */
#define EF_M68HC12_MACH 0x10 /* 68HC12 microcontroller. */
#define EF_M68HCS12_MACH 0x20 /* 68HCS12 microcontroller. */
#define EF_M68HC11_MACH(mach) ((mach) & EF_M68HC11_MACH_MASK)
 
/* True if we can merge machines. A generic HC12 can work on any proc
but once we have specific code, merge is not possible. */
#define EF_M68HC11_CAN_MERGE_MACH(mach1, mach2) \
((EF_M68HC11_MACH (mach1) == EF_M68HC11_MACH (mach2)) \
|| (EF_M68HC11_MACH (mach1) == EF_M68HC11_GENERIC) \
|| (EF_M68HC11_MACH (mach2) == EF_M68HC11_GENERIC))
 
#define EF_M68HC11_MERGE_MACH(mach1, mach2) \
(((EF_M68HC11_MACH (mach1) == EF_M68HC11_MACH (mach2)) \
|| (EF_M68HC11_MACH (mach1) == EF_M68HC11_GENERIC)) ? \
EF_M68HC11_MACH (mach2) : EF_M68HC11_MACH (mach1))
 
/* Special values for the st_other field in the symbol table. These
are used for 68HC12 to identify far functions (must be called with
'call' and returns with 'rtc'). */
#define STO_M68HC12_FAR 0x80
 
/* Identify interrupt handlers. This is used by the debugger to
correctly compute the stack frame. */
#define STO_M68HC12_INTERRUPT 0x40
#endif
/contrib/toolchain/binutils/include/elf/m68k.h
0,0 → 1,102
/* MC68k ELF support for BFD.
Copyright 1998, 1999, 2000, 2002, 2005, 2006, 2007, 2009, 2010
Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_M68K_H
#define _ELF_M68K_H
 
#include "elf/reloc-macros.h"
 
/* Relocation types. */
START_RELOC_NUMBERS (elf_m68k_reloc_type)
RELOC_NUMBER (R_68K_NONE, 0) /* No reloc */
RELOC_NUMBER (R_68K_32, 1) /* Direct 32 bit */
RELOC_NUMBER (R_68K_16, 2) /* Direct 16 bit */
RELOC_NUMBER (R_68K_8, 3) /* Direct 8 bit */
RELOC_NUMBER (R_68K_PC32, 4) /* PC relative 32 bit */
RELOC_NUMBER (R_68K_PC16, 5) /* PC relative 16 bit */
RELOC_NUMBER (R_68K_PC8, 6) /* PC relative 8 bit */
RELOC_NUMBER (R_68K_GOT32, 7) /* 32 bit PC relative GOT entry */
RELOC_NUMBER (R_68K_GOT16, 8) /* 16 bit PC relative GOT entry */
RELOC_NUMBER (R_68K_GOT8, 9) /* 8 bit PC relative GOT entry */
RELOC_NUMBER (R_68K_GOT32O, 10) /* 32 bit GOT offset */
RELOC_NUMBER (R_68K_GOT16O, 11) /* 16 bit GOT offset */
RELOC_NUMBER (R_68K_GOT8O, 12) /* 8 bit GOT offset */
RELOC_NUMBER (R_68K_PLT32, 13) /* 32 bit PC relative PLT address */
RELOC_NUMBER (R_68K_PLT16, 14) /* 16 bit PC relative PLT address */
RELOC_NUMBER (R_68K_PLT8, 15) /* 8 bit PC relative PLT address */
RELOC_NUMBER (R_68K_PLT32O, 16) /* 32 bit PLT offset */
RELOC_NUMBER (R_68K_PLT16O, 17) /* 16 bit PLT offset */
RELOC_NUMBER (R_68K_PLT8O, 18) /* 8 bit PLT offset */
RELOC_NUMBER (R_68K_COPY, 19) /* Copy symbol at runtime */
RELOC_NUMBER (R_68K_GLOB_DAT, 20) /* Create GOT entry */
RELOC_NUMBER (R_68K_JMP_SLOT, 21) /* Create PLT entry */
RELOC_NUMBER (R_68K_RELATIVE, 22) /* Adjust by program base */
/* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_68K_GNU_VTINHERIT, 23)
RELOC_NUMBER (R_68K_GNU_VTENTRY, 24)
/* TLS static relocations. */
RELOC_NUMBER (R_68K_TLS_GD32, 25)
RELOC_NUMBER (R_68K_TLS_GD16, 26)
RELOC_NUMBER (R_68K_TLS_GD8, 27)
RELOC_NUMBER (R_68K_TLS_LDM32, 28)
RELOC_NUMBER (R_68K_TLS_LDM16, 29)
RELOC_NUMBER (R_68K_TLS_LDM8, 30)
RELOC_NUMBER (R_68K_TLS_LDO32, 31)
RELOC_NUMBER (R_68K_TLS_LDO16, 32)
RELOC_NUMBER (R_68K_TLS_LDO8, 33)
RELOC_NUMBER (R_68K_TLS_IE32, 34)
RELOC_NUMBER (R_68K_TLS_IE16, 35)
RELOC_NUMBER (R_68K_TLS_IE8, 36)
RELOC_NUMBER (R_68K_TLS_LE32, 37)
RELOC_NUMBER (R_68K_TLS_LE16, 38)
RELOC_NUMBER (R_68K_TLS_LE8, 39)
RELOC_NUMBER (R_68K_TLS_DTPMOD32, 40)
RELOC_NUMBER (R_68K_TLS_DTPREL32, 41)
RELOC_NUMBER (R_68K_TLS_TPREL32, 42)
END_RELOC_NUMBERS (R_68K_max)
 
/* We use the top 24 bits to encode information about the
architecture variant. */
#define EF_M68K_CPU32 0x00810000
#define EF_M68K_M68000 0x01000000
#define EF_M68K_CFV4E 0x00008000
#define EF_M68K_FIDO 0x02000000
#define EF_M68K_ARCH_MASK \
(EF_M68K_M68000 | EF_M68K_CPU32 | EF_M68K_CFV4E | EF_M68K_FIDO)
 
/* We use the bottom 8 bits to encode information about the
coldfire variant. If we use any of these bits, the top 24 bits are
either 0 or EF_M68K_CFV4E. */
#define EF_M68K_CF_ISA_MASK 0x0F /* Which ISA */
#define EF_M68K_CF_ISA_A_NODIV 0x01 /* ISA A except for div */
#define EF_M68K_CF_ISA_A 0x02
#define EF_M68K_CF_ISA_A_PLUS 0x03
#define EF_M68K_CF_ISA_B_NOUSP 0x04 /* ISA_B except for USP */
#define EF_M68K_CF_ISA_B 0x05
#define EF_M68K_CF_ISA_C 0x06
#define EF_M68K_CF_ISA_C_NODIV 0x07 /* ISA C except for div */
#define EF_M68K_CF_MAC_MASK 0x30
#define EF_M68K_CF_MAC 0x10 /* MAC */
#define EF_M68K_CF_EMAC 0x20 /* EMAC */
#define EF_M68K_CF_EMAC_B 0x30 /* EMAC_B */
#define EF_M68K_CF_FLOAT 0x40 /* Has float insns */
#define EF_M68K_CF_MASK 0xFF
#endif
/contrib/toolchain/binutils/include/elf/mcore.h
0,0 → 1,47
/* Motorola MCore support for BFD.
Copyright 1995, 1999, 2000, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
/* This file holds definitions specific to the MCore ELF ABI. */
#ifndef _ELF_MORE_H
#define _ELF_MORE_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_mcore_reloc_type)
RELOC_NUMBER (R_MCORE_NONE, 0)
RELOC_NUMBER (R_MCORE_ADDR32, 1)
RELOC_NUMBER (R_MCORE_PCRELIMM8BY4, 2)
RELOC_NUMBER (R_MCORE_PCRELIMM11BY2, 3)
RELOC_NUMBER (R_MCORE_PCRELIMM4BY2, 4)
RELOC_NUMBER (R_MCORE_PCREL32, 5)
RELOC_NUMBER (R_MCORE_PCRELJSR_IMM11BY2, 6)
RELOC_NUMBER (R_MCORE_GNU_VTINHERIT, 7)
RELOC_NUMBER (R_MCORE_GNU_VTENTRY, 8)
RELOC_NUMBER (R_MCORE_RELATIVE, 9)
RELOC_NUMBER (R_MCORE_COPY, 10)
RELOC_NUMBER (R_MCORE_GLOB_DAT, 11)
RELOC_NUMBER (R_MCORE_JUMP_SLOT, 12)
END_RELOC_NUMBERS (R_MCORE_max)
 
/* Section Attributes. */
#define SHF_MCORE_NOREAD 0x80000000
 
#endif /* _ELF_MCORE_H */
/contrib/toolchain/binutils/include/elf/mep.h
0,0 → 1,95
/* Toshiba MeP ELF support for BFD.
Copyright (C) 2001, 2004, 2005, 2007, 2009, 2010
Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_MEP_H
#define _ELF_MEP_H
 
/* Bits in the sh_flags field of Elf32_Shdr: */
 
#define SHF_MEP_VLIW 0x10000000 /* contains vliw code */
 
/* This bit is reserved by BFD for processor specific stuff. Name
it properly so that we can easily stay consistent elsewhere. */
#define SEC_MEP_VLIW SEC_TIC54X_BLOCK
 
#include "elf/reloc-macros.h"
 
/* Note: The comments in this file are used by bfd/mep-relocs.pl to
build parts of bfd/elf32-mep.c. */
 
/* Relocations. */
START_RELOC_NUMBERS (elf_mep_reloc_type)
 
/* These two must appear first so that they are not processed by bfd/mep-relocs.pl. */
RELOC_NUMBER (R_MEP_NONE, 0)
RELOC_NUMBER (R_RELC, 1)
 
RELOC_NUMBER (R_MEP_8, 2) /* 7654 3210 U */
RELOC_NUMBER (R_MEP_16, 3) /* fedc ba98 7654 3210 U */
RELOC_NUMBER (R_MEP_32, 4) /* vuts rqpo nmlk jihg fedc ba98 7654 3210 U */
 
RELOC_NUMBER (R_MEP_PCREL8A2, 5) /* ---- ---- 7654 321- S PC-REL */
RELOC_NUMBER (R_MEP_PCREL12A2, 6) /* ---- ba98 7654 321- S PC-REL */
RELOC_NUMBER (R_MEP_PCREL17A2, 7) /* ---- ---- ---- ---- gfed cba9 8765 4321 S PC-REL */
RELOC_NUMBER (R_MEP_PCREL24A2, 8) /* ---- -765 4321 ---- nmlk jihg fedc ba98 S PC-REL */
RELOC_NUMBER (R_MEP_PCABS24A2, 9) /* ---- -765 4321 ---- nmlk jihg fedc ba98 U */
 
RELOC_NUMBER (R_MEP_LOW16, 10) /* ---- ---- ---- ---- fedc ba98 7654 3210 U no-overflow */
RELOC_NUMBER (R_MEP_HI16U, 11) /* ---- ---- ---- ---- vuts rqpo nmlk jihg U no-overflow */
RELOC_NUMBER (R_MEP_HI16S, 12) /* ---- ---- ---- ---- vuts rqpo nmlk jihg S no-overflow */
RELOC_NUMBER (R_MEP_GPREL, 13) /* ---- ---- ---- ---- fedc ba98 7654 3210 S GP-REL*/
RELOC_NUMBER (R_MEP_TPREL, 14) /* ---- ---- ---- ---- fedc ba98 7654 3210 S TP-REL*/
 
RELOC_NUMBER (R_MEP_TPREL7, 15) /* ---- ---- -654 3210 U TP-REL */
RELOC_NUMBER (R_MEP_TPREL7A2, 16) /* ---- ---- -654 321- U TP-REL */
RELOC_NUMBER (R_MEP_TPREL7A4, 17) /* ---- ---- -654 32-- U TP-REL */
 
RELOC_NUMBER (R_MEP_UIMM24, 18) /* ---- ---- 7654 3210 nmlk jihg fedc ba98 U */
RELOC_NUMBER (R_MEP_ADDR24A4, 19) /* ---- ---- 7654 32-- nmlk jihg fedc ba98 U */
 
RELOC_NUMBER (R_MEP_GNU_VTINHERIT, 20) /* ---- ---- ---- ---- U no-overflow */
RELOC_NUMBER (R_MEP_GNU_VTENTRY, 21) /* ---- ---- ---- ---- U no-overflow */
 
END_RELOC_NUMBERS(R_MEP_max)
 
#define EF_MEP_CPU_MASK 0xff000000 /* specific cpu bits */
#define EF_MEP_CPU_MEP 0x00000000 /* generic MEP */
#define EF_MEP_CPU_C2 0x01000000 /* MEP c2 */
#define EF_MEP_CPU_C3 0x02000000 /* MEP c3 */
#define EF_MEP_CPU_C4 0x04000000 /* MEP c4 */
/* 5..7 are reseved */
#define EF_MEP_CPU_C5 0x08000000 /* MEP c5 */
#define EF_MEP_CPU_H1 0x10000000 /* MEP h1 */
 
#define EF_MEP_COP_MASK 0x00ff0000
#define EF_MEP_COP_NONE 0x00000000
#define EF_MEP_COP_AVC 0x00010000
#define EF_MEP_COP_AVC2 0x00020000
#define EF_MEP_COP_FMAX 0x00030000
/* 4..5 are reserved. */
#define EF_MEP_COP_IVC2 0x00060000
 
#define EF_MEP_LIBRARY 0x00000100 /* Built as a library */
 
#define EF_MEP_INDEX_MASK 0x000000ff /* Configuration index */
 
#define EF_MEP_ALL_FLAGS 0xffff01ff
 
#endif /* _ELF_MEP_H */
/contrib/toolchain/binutils/include/elf/metag.h
0,0 → 1,91
/* Meta ELF support for BFD.
Copyright (C) 2013 Free Software Foundation, Inc.
Contributed by Imagination Technologies Ltd.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_METAG_H
#define _ELF_METAG_H
 
#include "elf/reloc-macros.h"
 
/* Relocation types. */
 
START_RELOC_NUMBERS (elf_metag_reloc_type)
RELOC_NUMBER (R_METAG_HIADDR16, 0)
RELOC_NUMBER (R_METAG_LOADDR16, 1)
RELOC_NUMBER (R_METAG_ADDR32, 2)
RELOC_NUMBER (R_METAG_NONE, 3)
RELOC_NUMBER (R_METAG_RELBRANCH, 4)
RELOC_NUMBER (R_METAG_GETSETOFF, 5)
 
/* Backward compatability */
RELOC_NUMBER (R_METAG_REG32OP1, 6)
RELOC_NUMBER (R_METAG_REG32OP2, 7)
RELOC_NUMBER (R_METAG_REG32OP3, 8)
RELOC_NUMBER (R_METAG_REG16OP1, 9)
RELOC_NUMBER (R_METAG_REG16OP2, 10)
RELOC_NUMBER (R_METAG_REG16OP3, 11)
RELOC_NUMBER (R_METAG_REG32OP4, 12)
 
RELOC_NUMBER (R_METAG_HIOG, 13)
RELOC_NUMBER (R_METAG_LOOG, 14)
 
RELOC_NUMBER (R_METAG_REL8, 15)
RELOC_NUMBER (R_METAG_REL16, 16)
 
/* GNU */
RELOC_NUMBER (R_METAG_GNU_VTINHERIT,30)
RELOC_NUMBER (R_METAG_GNU_VTENTRY, 31)
 
/* PIC relocations */
RELOC_NUMBER (R_METAG_HI16_GOTOFF, 32)
RELOC_NUMBER (R_METAG_LO16_GOTOFF, 33)
RELOC_NUMBER (R_METAG_GETSET_GOTOFF,34)
RELOC_NUMBER (R_METAG_GETSET_GOT, 35)
RELOC_NUMBER (R_METAG_HI16_GOTPC, 36)
RELOC_NUMBER (R_METAG_LO16_GOTPC, 37)
RELOC_NUMBER (R_METAG_HI16_PLT, 38)
RELOC_NUMBER (R_METAG_LO16_PLT, 39)
RELOC_NUMBER (R_METAG_RELBRANCH_PLT,40)
RELOC_NUMBER (R_METAG_GOTOFF, 41)
RELOC_NUMBER (R_METAG_PLT, 42)
RELOC_NUMBER (R_METAG_COPY, 43)
RELOC_NUMBER (R_METAG_JMP_SLOT, 44)
RELOC_NUMBER (R_METAG_RELATIVE, 45)
RELOC_NUMBER (R_METAG_GLOB_DAT, 46)
 
/* TLS relocations */
RELOC_NUMBER (R_METAG_TLS_GD, 47)
RELOC_NUMBER (R_METAG_TLS_LDM, 48)
RELOC_NUMBER (R_METAG_TLS_LDO_HI16, 49)
RELOC_NUMBER (R_METAG_TLS_LDO_LO16, 50)
RELOC_NUMBER (R_METAG_TLS_LDO, 51)
RELOC_NUMBER (R_METAG_TLS_IE, 52)
RELOC_NUMBER (R_METAG_TLS_IENONPIC, 53)
RELOC_NUMBER (R_METAG_TLS_IENONPIC_HI16,54)
RELOC_NUMBER (R_METAG_TLS_IENONPIC_LO16,55)
RELOC_NUMBER (R_METAG_TLS_TPOFF, 56)
RELOC_NUMBER (R_METAG_TLS_DTPMOD, 57)
RELOC_NUMBER (R_METAG_TLS_DTPOFF, 58)
RELOC_NUMBER (R_METAG_TLS_LE, 59)
RELOC_NUMBER (R_METAG_TLS_LE_HI16, 60)
RELOC_NUMBER (R_METAG_TLS_LE_LO16, 61)
 
END_RELOC_NUMBERS (R_METAG_MAX)
 
#endif /* _ELF_METAG_H */
/contrib/toolchain/binutils/include/elf/microblaze.h
0,0 → 1,71
/* Xilinx MicroBlaze support for BFD.
Copyright 2009, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
 
/* This file holds definitions specific to the MICROBLAZE ELF ABI. */
 
#ifndef _ELF_MICROBLAZE_H
#define _ELF_MICROBLAZE_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_microblaze_reloc_type)
RELOC_NUMBER (R_MICROBLAZE_NONE, 0)
RELOC_NUMBER (R_MICROBLAZE_32, 1)
RELOC_NUMBER (R_MICROBLAZE_32_PCREL, 2)
RELOC_NUMBER (R_MICROBLAZE_64_PCREL, 3)
RELOC_NUMBER (R_MICROBLAZE_32_PCREL_LO, 4)
RELOC_NUMBER (R_MICROBLAZE_64, 5)
RELOC_NUMBER (R_MICROBLAZE_32_LO, 6)
RELOC_NUMBER (R_MICROBLAZE_SRO32, 7)
RELOC_NUMBER (R_MICROBLAZE_SRW32, 8)
RELOC_NUMBER (R_MICROBLAZE_64_NONE, 9)
RELOC_NUMBER (R_MICROBLAZE_32_SYM_OP_SYM, 10)
RELOC_NUMBER (R_MICROBLAZE_GNU_VTINHERIT, 11)
RELOC_NUMBER (R_MICROBLAZE_GNU_VTENTRY, 12)
RELOC_NUMBER (R_MICROBLAZE_GOTPC_64, 13) /* PC-relative GOT offset. */
RELOC_NUMBER (R_MICROBLAZE_GOT_64, 14) /* GOT entry offset. */
RELOC_NUMBER (R_MICROBLAZE_PLT_64, 15) /* PLT offset (PC-relative). */
RELOC_NUMBER (R_MICROBLAZE_REL, 16) /* Adjust by program base. */
RELOC_NUMBER (R_MICROBLAZE_JUMP_SLOT, 17) /* Create PLT entry. */
RELOC_NUMBER (R_MICROBLAZE_GLOB_DAT, 18) /* Create GOT entry. */
RELOC_NUMBER (R_MICROBLAZE_GOTOFF_64, 19) /* Offset relative to GOT. */
RELOC_NUMBER (R_MICROBLAZE_GOTOFF_32, 20) /* Offset relative to GOT. */
RELOC_NUMBER (R_MICROBLAZE_COPY, 21) /* Runtime copy. */
RELOC_NUMBER (R_MICROBLAZE_TLS, 22) /* TLS Reloc */
RELOC_NUMBER (R_MICROBLAZE_TLSGD, 23) /* TLS General Dynamic */
RELOC_NUMBER (R_MICROBLAZE_TLSLD, 24) /* TLS Local Dynamic */
RELOC_NUMBER (R_MICROBLAZE_TLSDTPMOD32, 25) /* TLS Module ID */
RELOC_NUMBER (R_MICROBLAZE_TLSDTPREL32, 26) /* TLS Offset Within TLS Block */
RELOC_NUMBER (R_MICROBLAZE_TLSDTPREL64, 27) /* TLS Offset Within TLS Block */
RELOC_NUMBER (R_MICROBLAZE_TLSGOTTPREL32, 28) /* TLS Offset From Thread Pointer */
RELOC_NUMBER (R_MICROBLAZE_TLSTPREL32, 29) /* TLS Offset From Thread Pointer */
END_RELOC_NUMBERS (R_MICROBLAZE_max)
 
/* Global base address names. */
#define RO_SDA_ANCHOR_NAME "_SDA2_BASE_"
#define RW_SDA_ANCHOR_NAME "_SDA_BASE_"
 
/* Section Attributes. */
#define SHF_MICROBLAZE_NOREAD 0x80000000
 
#endif /* _ELF_MICROBLAZE_H */
/contrib/toolchain/binutils/include/elf/mips.h
0,0 → 1,1161
/* MIPS ELF support for BFD.
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
2003, 2004, 2005, 2008, 2009, 2010, 2013
Free Software Foundation, Inc.
 
By Ian Lance Taylor, Cygnus Support, <ian@cygnus.com>, from
information in the System V Application Binary Interface, MIPS
Processor Supplement.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
/* This file holds definitions specific to the MIPS ELF ABI. Note
that most of this is not actually implemented by BFD. */
 
#ifndef _ELF_MIPS_H
#define _ELF_MIPS_H
 
#include "elf/reloc-macros.h"
 
/* Relocation types. */
START_RELOC_NUMBERS (elf_mips_reloc_type)
RELOC_NUMBER (R_MIPS_NONE, 0)
RELOC_NUMBER (R_MIPS_16, 1)
RELOC_NUMBER (R_MIPS_32, 2) /* In Elf 64: alias R_MIPS_ADD */
RELOC_NUMBER (R_MIPS_REL32, 3) /* In Elf 64: alias R_MIPS_REL */
RELOC_NUMBER (R_MIPS_26, 4)
RELOC_NUMBER (R_MIPS_HI16, 5)
RELOC_NUMBER (R_MIPS_LO16, 6)
RELOC_NUMBER (R_MIPS_GPREL16, 7) /* In Elf 64: alias R_MIPS_GPREL */
RELOC_NUMBER (R_MIPS_LITERAL, 8)
RELOC_NUMBER (R_MIPS_GOT16, 9) /* In Elf 64: alias R_MIPS_GOT */
RELOC_NUMBER (R_MIPS_PC16, 10)
RELOC_NUMBER (R_MIPS_CALL16, 11) /* In Elf 64: alias R_MIPS_CALL */
RELOC_NUMBER (R_MIPS_GPREL32, 12)
/* The remaining relocs are defined on Irix, although they are not
in the MIPS ELF ABI. */
RELOC_NUMBER (R_MIPS_UNUSED1, 13)
RELOC_NUMBER (R_MIPS_UNUSED2, 14)
RELOC_NUMBER (R_MIPS_UNUSED3, 15)
RELOC_NUMBER (R_MIPS_SHIFT5, 16)
RELOC_NUMBER (R_MIPS_SHIFT6, 17)
RELOC_NUMBER (R_MIPS_64, 18)
RELOC_NUMBER (R_MIPS_GOT_DISP, 19)
RELOC_NUMBER (R_MIPS_GOT_PAGE, 20)
RELOC_NUMBER (R_MIPS_GOT_OFST, 21)
RELOC_NUMBER (R_MIPS_GOT_HI16, 22)
RELOC_NUMBER (R_MIPS_GOT_LO16, 23)
RELOC_NUMBER (R_MIPS_SUB, 24)
RELOC_NUMBER (R_MIPS_INSERT_A, 25)
RELOC_NUMBER (R_MIPS_INSERT_B, 26)
RELOC_NUMBER (R_MIPS_DELETE, 27)
RELOC_NUMBER (R_MIPS_HIGHER, 28)
RELOC_NUMBER (R_MIPS_HIGHEST, 29)
RELOC_NUMBER (R_MIPS_CALL_HI16, 30)
RELOC_NUMBER (R_MIPS_CALL_LO16, 31)
RELOC_NUMBER (R_MIPS_SCN_DISP, 32)
RELOC_NUMBER (R_MIPS_REL16, 33)
RELOC_NUMBER (R_MIPS_ADD_IMMEDIATE, 34)
RELOC_NUMBER (R_MIPS_PJUMP, 35)
RELOC_NUMBER (R_MIPS_RELGOT, 36)
RELOC_NUMBER (R_MIPS_JALR, 37)
/* TLS relocations. */
RELOC_NUMBER (R_MIPS_TLS_DTPMOD32, 38)
RELOC_NUMBER (R_MIPS_TLS_DTPREL32, 39)
RELOC_NUMBER (R_MIPS_TLS_DTPMOD64, 40)
RELOC_NUMBER (R_MIPS_TLS_DTPREL64, 41)
RELOC_NUMBER (R_MIPS_TLS_GD, 42)
RELOC_NUMBER (R_MIPS_TLS_LDM, 43)
RELOC_NUMBER (R_MIPS_TLS_DTPREL_HI16, 44)
RELOC_NUMBER (R_MIPS_TLS_DTPREL_LO16, 45)
RELOC_NUMBER (R_MIPS_TLS_GOTTPREL, 46)
RELOC_NUMBER (R_MIPS_TLS_TPREL32, 47)
RELOC_NUMBER (R_MIPS_TLS_TPREL64, 48)
RELOC_NUMBER (R_MIPS_TLS_TPREL_HI16, 49)
RELOC_NUMBER (R_MIPS_TLS_TPREL_LO16, 50)
RELOC_NUMBER (R_MIPS_GLOB_DAT, 51)
FAKE_RELOC (R_MIPS_max, 52)
/* These relocs are used for the mips16. */
FAKE_RELOC (R_MIPS16_min, 100)
RELOC_NUMBER (R_MIPS16_26, 100)
RELOC_NUMBER (R_MIPS16_GPREL, 101)
RELOC_NUMBER (R_MIPS16_GOT16, 102)
RELOC_NUMBER (R_MIPS16_CALL16, 103)
RELOC_NUMBER (R_MIPS16_HI16, 104)
RELOC_NUMBER (R_MIPS16_LO16, 105)
RELOC_NUMBER (R_MIPS16_TLS_GD, 106)
RELOC_NUMBER (R_MIPS16_TLS_LDM, 107)
RELOC_NUMBER (R_MIPS16_TLS_DTPREL_HI16, 108)
RELOC_NUMBER (R_MIPS16_TLS_DTPREL_LO16, 109)
RELOC_NUMBER (R_MIPS16_TLS_GOTTPREL, 110)
RELOC_NUMBER (R_MIPS16_TLS_TPREL_HI16, 111)
RELOC_NUMBER (R_MIPS16_TLS_TPREL_LO16, 112)
FAKE_RELOC (R_MIPS16_max, 113)
/* These relocations are specific to VxWorks. */
RELOC_NUMBER (R_MIPS_COPY, 126)
RELOC_NUMBER (R_MIPS_JUMP_SLOT, 127)
 
/* These relocations are specific to microMIPS. */
FAKE_RELOC (R_MICROMIPS_min, 130)
RELOC_NUMBER (R_MICROMIPS_26_S1, 133)
RELOC_NUMBER (R_MICROMIPS_HI16, 134)
RELOC_NUMBER (R_MICROMIPS_LO16, 135)
RELOC_NUMBER (R_MICROMIPS_GPREL16, 136) /* In Elf 64:
alias R_MICROMIPS_GPREL */
RELOC_NUMBER (R_MICROMIPS_LITERAL, 137)
RELOC_NUMBER (R_MICROMIPS_GOT16, 138) /* In Elf 64:
alias R_MICROMIPS_GOT */
RELOC_NUMBER (R_MICROMIPS_PC7_S1, 139)
RELOC_NUMBER (R_MICROMIPS_PC10_S1, 140)
RELOC_NUMBER (R_MICROMIPS_PC16_S1, 141)
RELOC_NUMBER (R_MICROMIPS_CALL16, 142) /* In Elf 64:
alias R_MICROMIPS_CALL */
RELOC_NUMBER (R_MICROMIPS_GOT_DISP, 145)
RELOC_NUMBER (R_MICROMIPS_GOT_PAGE, 146)
RELOC_NUMBER (R_MICROMIPS_GOT_OFST, 147)
RELOC_NUMBER (R_MICROMIPS_GOT_HI16, 148)
RELOC_NUMBER (R_MICROMIPS_GOT_LO16, 149)
RELOC_NUMBER (R_MICROMIPS_SUB, 150)
RELOC_NUMBER (R_MICROMIPS_HIGHER, 151)
RELOC_NUMBER (R_MICROMIPS_HIGHEST, 152)
RELOC_NUMBER (R_MICROMIPS_CALL_HI16, 153)
RELOC_NUMBER (R_MICROMIPS_CALL_LO16, 154)
RELOC_NUMBER (R_MICROMIPS_SCN_DISP, 155)
RELOC_NUMBER (R_MICROMIPS_JALR, 156)
RELOC_NUMBER (R_MICROMIPS_HI0_LO16, 157)
/* TLS relocations. */
RELOC_NUMBER (R_MICROMIPS_TLS_GD, 162)
RELOC_NUMBER (R_MICROMIPS_TLS_LDM, 163)
RELOC_NUMBER (R_MICROMIPS_TLS_DTPREL_HI16, 164)
RELOC_NUMBER (R_MICROMIPS_TLS_DTPREL_LO16, 165)
RELOC_NUMBER (R_MICROMIPS_TLS_GOTTPREL, 166)
RELOC_NUMBER (R_MICROMIPS_TLS_TPREL_HI16, 169)
RELOC_NUMBER (R_MICROMIPS_TLS_TPREL_LO16, 170)
/* microMIPS GP- and PC-relative relocations. */
RELOC_NUMBER (R_MICROMIPS_GPREL7_S2, 172)
RELOC_NUMBER (R_MICROMIPS_PC23_S2, 173)
FAKE_RELOC (R_MICROMIPS_max, 174)
 
/* This was a GNU extension used by embedded-PIC. It was co-opted by
mips-linux for exception-handling data. GCC stopped using it in
May, 2004, then started using it again for compact unwind tables. */
RELOC_NUMBER (R_MIPS_PC32, 248)
RELOC_NUMBER (R_MIPS_EH, 249)
/* FIXME: this relocation is used internally by gas. */
RELOC_NUMBER (R_MIPS_GNU_REL16_S2, 250)
/* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_MIPS_GNU_VTINHERIT, 253)
RELOC_NUMBER (R_MIPS_GNU_VTENTRY, 254)
END_RELOC_NUMBERS (R_MIPS_maxext)
 
/* Processor specific flags for the ELF header e_flags field. */
 
/* At least one .noreorder directive appears in the source. */
#define EF_MIPS_NOREORDER 0x00000001
 
/* File contains position independent code. */
#define EF_MIPS_PIC 0x00000002
 
/* Code in file uses the standard calling sequence for calling
position independent code. */
#define EF_MIPS_CPIC 0x00000004
 
/* ??? Unknown flag, set in IRIX 6's BSDdup2.o in libbsd.a. */
#define EF_MIPS_XGOT 0x00000008
 
/* Code in file uses UCODE (obsolete) */
#define EF_MIPS_UCODE 0x00000010
 
/* Code in file uses new ABI (-n32 on Irix 6). */
#define EF_MIPS_ABI2 0x00000020
 
/* Process the .MIPS.options section first by ld */
#define EF_MIPS_OPTIONS_FIRST 0x00000080
 
/* Indicates code compiled for a 64-bit machine in 32-bit mode
(regs are 32-bits wide). */
#define EF_MIPS_32BITMODE 0x00000100
 
/* 32-bit machine but FP registers are 64 bit (-mfp64). */
#define EF_MIPS_FP64 0x00000200
 
/* Code in file uses the IEEE 754-2008 NaN encoding convention. */
#define EF_MIPS_NAN2008 0x00000400
 
/* Architectural Extensions used by this file */
#define EF_MIPS_ARCH_ASE 0x0f000000
 
/* Use MDMX multimedia extensions */
#define EF_MIPS_ARCH_ASE_MDMX 0x08000000
 
/* Use MIPS-16 ISA extensions */
#define EF_MIPS_ARCH_ASE_M16 0x04000000
 
/* Use MICROMIPS ISA extensions. */
#define EF_MIPS_ARCH_ASE_MICROMIPS 0x02000000
 
/* Four bit MIPS architecture field. */
#define EF_MIPS_ARCH 0xf0000000
 
/* -mips1 code. */
#define E_MIPS_ARCH_1 0x00000000
 
/* -mips2 code. */
#define E_MIPS_ARCH_2 0x10000000
 
/* -mips3 code. */
#define E_MIPS_ARCH_3 0x20000000
 
/* -mips4 code. */
#define E_MIPS_ARCH_4 0x30000000
 
/* -mips5 code. */
#define E_MIPS_ARCH_5 0x40000000
 
/* -mips32 code. */
#define E_MIPS_ARCH_32 0x50000000
 
/* -mips64 code. */
#define E_MIPS_ARCH_64 0x60000000
 
/* -mips32r2 code. */
#define E_MIPS_ARCH_32R2 0x70000000
 
/* -mips64r2 code. */
#define E_MIPS_ARCH_64R2 0x80000000
 
/* The ABI of the file. Also see EF_MIPS_ABI2 above. */
#define EF_MIPS_ABI 0x0000F000
 
/* The original o32 abi. */
#define E_MIPS_ABI_O32 0x00001000
 
/* O32 extended to work on 64 bit architectures */
#define E_MIPS_ABI_O64 0x00002000
 
/* EABI in 32 bit mode */
#define E_MIPS_ABI_EABI32 0x00003000
 
/* EABI in 64 bit mode */
#define E_MIPS_ABI_EABI64 0x00004000
 
 
/* Machine variant if we know it. This field was invented at Cygnus,
but it is hoped that other vendors will adopt it. If some standard
is developed, this code should be changed to follow it. */
 
#define EF_MIPS_MACH 0x00FF0000
 
/* Cygnus is choosing values between 80 and 9F;
00 - 7F should be left for a future standard;
the rest are open. */
 
#define E_MIPS_MACH_3900 0x00810000
#define E_MIPS_MACH_4010 0x00820000
#define E_MIPS_MACH_4100 0x00830000
#define E_MIPS_MACH_4650 0x00850000
#define E_MIPS_MACH_4120 0x00870000
#define E_MIPS_MACH_4111 0x00880000
#define E_MIPS_MACH_SB1 0x008a0000
#define E_MIPS_MACH_OCTEON 0x008b0000
#define E_MIPS_MACH_XLR 0x008c0000
#define E_MIPS_MACH_OCTEON2 0x008d0000
#define E_MIPS_MACH_5400 0x00910000
#define E_MIPS_MACH_5900 0x00920000
#define E_MIPS_MACH_5500 0x00980000
#define E_MIPS_MACH_9000 0x00990000
#define E_MIPS_MACH_LS2E 0x00A00000
#define E_MIPS_MACH_LS2F 0x00A10000
#define E_MIPS_MACH_LS3A 0x00A20000
/* Processor specific section indices. These sections do not actually
exist. Symbols with a st_shndx field corresponding to one of these
values have a special meaning. */
 
/* Defined and allocated common symbol. Value is virtual address. If
relocated, alignment must be preserved. */
#define SHN_MIPS_ACOMMON SHN_LORESERVE
 
/* Defined and allocated text symbol. Value is virtual address.
Occur in the dynamic symbol table of Alpha OSF/1 and Irix 5 executables. */
#define SHN_MIPS_TEXT (SHN_LORESERVE + 1)
 
/* Defined and allocated data symbol. Value is virtual address.
Occur in the dynamic symbol table of Alpha OSF/1 and Irix 5 executables. */
#define SHN_MIPS_DATA (SHN_LORESERVE + 2)
 
/* Small common symbol. */
#define SHN_MIPS_SCOMMON (SHN_LORESERVE + 3)
 
/* Small undefined symbol. */
#define SHN_MIPS_SUNDEFINED (SHN_LORESERVE + 4)
/* Processor specific section types. */
 
/* Section contains the set of dynamic shared objects used when
statically linking. */
#define SHT_MIPS_LIBLIST 0x70000000
 
/* I'm not sure what this is, but it's used on Irix 5. */
#define SHT_MIPS_MSYM 0x70000001
 
/* Section contains list of symbols whose definitions conflict with
symbols defined in shared objects. */
#define SHT_MIPS_CONFLICT 0x70000002
 
/* Section contains the global pointer table. */
#define SHT_MIPS_GPTAB 0x70000003
 
/* Section contains microcode information. The exact format is
unspecified. */
#define SHT_MIPS_UCODE 0x70000004
 
/* Section contains some sort of debugging information. The exact
format is unspecified. It's probably ECOFF symbols. */
#define SHT_MIPS_DEBUG 0x70000005
 
/* Section contains register usage information. */
#define SHT_MIPS_REGINFO 0x70000006
 
/* ??? */
#define SHT_MIPS_PACKAGE 0x70000007
 
/* ??? */
#define SHT_MIPS_PACKSYM 0x70000008
 
/* ??? */
#define SHT_MIPS_RELD 0x70000009
 
/* Section contains interface information. */
#define SHT_MIPS_IFACE 0x7000000b
 
/* Section contains description of contents of another section. */
#define SHT_MIPS_CONTENT 0x7000000c
 
/* Section contains miscellaneous options. */
#define SHT_MIPS_OPTIONS 0x7000000d
 
/* ??? */
#define SHT_MIPS_SHDR 0x70000010
 
/* ??? */
#define SHT_MIPS_FDESC 0x70000011
 
/* ??? */
#define SHT_MIPS_EXTSYM 0x70000012
 
/* ??? */
#define SHT_MIPS_DENSE 0x70000013
 
/* ??? */
#define SHT_MIPS_PDESC 0x70000014
 
/* ??? */
#define SHT_MIPS_LOCSYM 0x70000015
 
/* ??? */
#define SHT_MIPS_AUXSYM 0x70000016
 
/* ??? */
#define SHT_MIPS_OPTSYM 0x70000017
 
/* ??? */
#define SHT_MIPS_LOCSTR 0x70000018
 
/* ??? */
#define SHT_MIPS_LINE 0x70000019
 
/* ??? */
#define SHT_MIPS_RFDESC 0x7000001a
 
/* Delta C++: symbol table */
#define SHT_MIPS_DELTASYM 0x7000001b
 
/* Delta C++: instance table */
#define SHT_MIPS_DELTAINST 0x7000001c
 
/* Delta C++: class table */
#define SHT_MIPS_DELTACLASS 0x7000001d
 
/* DWARF debugging section. */
#define SHT_MIPS_DWARF 0x7000001e
 
/* Delta C++: declarations */
#define SHT_MIPS_DELTADECL 0x7000001f
 
/* List of libraries the binary depends on. Includes a time stamp, version
number. */
#define SHT_MIPS_SYMBOL_LIB 0x70000020
 
/* Events section. */
#define SHT_MIPS_EVENTS 0x70000021
 
/* ??? */
#define SHT_MIPS_TRANSLATE 0x70000022
 
/* Special pixie sections */
#define SHT_MIPS_PIXIE 0x70000023
 
/* Address translation table (for debug info) */
#define SHT_MIPS_XLATE 0x70000024
 
/* SGI internal address translation table (for debug info) */
#define SHT_MIPS_XLATE_DEBUG 0x70000025
 
/* Intermediate code */
#define SHT_MIPS_WHIRL 0x70000026
 
/* C++ exception handling region info */
#define SHT_MIPS_EH_REGION 0x70000027
 
/* Obsolete address translation table (for debug info) */
#define SHT_MIPS_XLATE_OLD 0x70000028
 
/* Runtime procedure descriptor table exception information (ucode) ??? */
#define SHT_MIPS_PDR_EXCEPTION 0x70000029
 
 
/* A section of type SHT_MIPS_LIBLIST contains an array of the
following structure. The sh_link field is the section index of the
string table. The sh_info field is the number of entries in the
section. */
typedef struct
{
/* String table index for name of shared object. */
unsigned long l_name;
/* Time stamp. */
unsigned long l_time_stamp;
/* Checksum of symbol names and common sizes. */
unsigned long l_checksum;
/* String table index for version. */
unsigned long l_version;
/* Flags. */
unsigned long l_flags;
} Elf32_Lib;
 
/* The external version of Elf32_Lib. */
typedef struct
{
unsigned char l_name[4];
unsigned char l_time_stamp[4];
unsigned char l_checksum[4];
unsigned char l_version[4];
unsigned char l_flags[4];
} Elf32_External_Lib;
 
/* The l_flags field of an Elf32_Lib structure may contain the
following flags. */
 
/* Require an exact match at runtime. */
#define LL_EXACT_MATCH 0x00000001
 
/* Ignore version incompatibilities at runtime. */
#define LL_IGNORE_INT_VER 0x00000002
 
/* Require matching minor version number. */
#define LL_REQUIRE_MINOR 0x00000004
 
/* ??? */
#define LL_EXPORTS 0x00000008
 
/* Delay loading of this library until really needed. */
#define LL_DELAY_LOAD 0x00000010
 
/* ??? Delta C++ stuff ??? */
#define LL_DELTA 0x00000020
 
 
/* A section of type SHT_MIPS_CONFLICT is an array of indices into the
.dynsym section. Each element has the following type. */
typedef unsigned long Elf32_Conflict;
typedef unsigned char Elf32_External_Conflict[4];
 
typedef unsigned long Elf64_Conflict;
typedef unsigned char Elf64_External_Conflict[8];
 
/* A section of type SHT_MIPS_GPTAB contains information about how
much GP space would be required for different -G arguments. This
information is only used so that the linker can provide informative
suggestions as to the best -G value to use. The sh_info field is
the index of the section for which this information applies. The
contents of the section are an array of the following union. The
first element uses the gt_header field. The remaining elements use
the gt_entry field. */
typedef union
{
struct
{
/* -G value actually used for this object file. */
unsigned long gt_current_g_value;
/* Unused. */
unsigned long gt_unused;
} gt_header;
struct
{
/* If this -G argument has been used... */
unsigned long gt_g_value;
/* ...this many GP section bytes would be required. */
unsigned long gt_bytes;
} gt_entry;
} Elf32_gptab;
 
/* The external version of Elf32_gptab. */
 
typedef union
{
struct
{
unsigned char gt_current_g_value[4];
unsigned char gt_unused[4];
} gt_header;
struct
{
unsigned char gt_g_value[4];
unsigned char gt_bytes[4];
} gt_entry;
} Elf32_External_gptab;
 
/* A section of type SHT_MIPS_REGINFO contains the following
structure. */
typedef struct
{
/* Mask of general purpose registers used. */
unsigned long ri_gprmask;
/* Mask of co-processor registers used. */
unsigned long ri_cprmask[4];
/* GP register value for this object file. */
long ri_gp_value;
} Elf32_RegInfo;
 
/* The external version of the Elf_RegInfo structure. */
typedef struct
{
unsigned char ri_gprmask[4];
unsigned char ri_cprmask[4][4];
unsigned char ri_gp_value[4];
} Elf32_External_RegInfo;
 
/* MIPS ELF .reginfo swapping routines. */
extern void bfd_mips_elf32_swap_reginfo_in
(bfd *, const Elf32_External_RegInfo *, Elf32_RegInfo *);
extern void bfd_mips_elf32_swap_reginfo_out
(bfd *, const Elf32_RegInfo *, Elf32_External_RegInfo *);
/* Processor specific section flags. */
 
/* This section must be in the global data area. */
#define SHF_MIPS_GPREL 0x10000000
 
/* This section should be merged. */
#define SHF_MIPS_MERGE 0x20000000
 
/* This section contains address data of size implied by section
element size. */
#define SHF_MIPS_ADDR 0x40000000
 
/* This section contains string data. */
#define SHF_MIPS_STRING 0x80000000
 
/* This section may not be stripped. */
#define SHF_MIPS_NOSTRIP 0x08000000
 
/* This section is local to threads. */
#define SHF_MIPS_LOCAL 0x04000000
 
/* Linker should generate implicit weak names for this section. */
#define SHF_MIPS_NAMES 0x02000000
 
/* Section contais text/data which may be replicated in other sections.
Linker should retain only one copy. */
#define SHF_MIPS_NODUPES 0x01000000
/* Processor specific program header types. */
 
/* Register usage information. Identifies one .reginfo section. */
#define PT_MIPS_REGINFO 0x70000000
 
/* Runtime procedure table. */
#define PT_MIPS_RTPROC 0x70000001
 
/* .MIPS.options section. */
#define PT_MIPS_OPTIONS 0x70000002
/* Processor specific dynamic array tags. */
 
/* 32 bit version number for runtime linker interface. */
#define DT_MIPS_RLD_VERSION 0x70000001
 
/* Time stamp. */
#define DT_MIPS_TIME_STAMP 0x70000002
 
/* Checksum of external strings and common sizes. */
#define DT_MIPS_ICHECKSUM 0x70000003
 
/* Index of version string in string table. */
#define DT_MIPS_IVERSION 0x70000004
 
/* 32 bits of flags. */
#define DT_MIPS_FLAGS 0x70000005
 
/* Base address of the segment. */
#define DT_MIPS_BASE_ADDRESS 0x70000006
 
/* ??? */
#define DT_MIPS_MSYM 0x70000007
 
/* Address of .conflict section. */
#define DT_MIPS_CONFLICT 0x70000008
 
/* Address of .liblist section. */
#define DT_MIPS_LIBLIST 0x70000009
 
/* Number of local global offset table entries. */
#define DT_MIPS_LOCAL_GOTNO 0x7000000a
 
/* Number of entries in the .conflict section. */
#define DT_MIPS_CONFLICTNO 0x7000000b
 
/* Number of entries in the .liblist section. */
#define DT_MIPS_LIBLISTNO 0x70000010
 
/* Number of entries in the .dynsym section. */
#define DT_MIPS_SYMTABNO 0x70000011
 
/* Index of first external dynamic symbol not referenced locally. */
#define DT_MIPS_UNREFEXTNO 0x70000012
 
/* Index of first dynamic symbol in global offset table. */
#define DT_MIPS_GOTSYM 0x70000013
 
/* Number of page table entries in global offset table. */
#define DT_MIPS_HIPAGENO 0x70000014
 
/* Address of run time loader map, used for debugging. */
#define DT_MIPS_RLD_MAP 0x70000016
 
/* Delta C++ class definition. */
#define DT_MIPS_DELTA_CLASS 0x70000017
 
/* Number of entries in DT_MIPS_DELTA_CLASS. */
#define DT_MIPS_DELTA_CLASS_NO 0x70000018
 
/* Delta C++ class instances. */
#define DT_MIPS_DELTA_INSTANCE 0x70000019
 
/* Number of entries in DT_MIPS_DELTA_INSTANCE. */
#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a
 
/* Delta relocations. */
#define DT_MIPS_DELTA_RELOC 0x7000001b
 
/* Number of entries in DT_MIPS_DELTA_RELOC. */
#define DT_MIPS_DELTA_RELOC_NO 0x7000001c
 
/* Delta symbols that Delta relocations refer to. */
#define DT_MIPS_DELTA_SYM 0x7000001d
 
/* Number of entries in DT_MIPS_DELTA_SYM. */
#define DT_MIPS_DELTA_SYM_NO 0x7000001e
 
/* Delta symbols that hold class declarations. */
#define DT_MIPS_DELTA_CLASSSYM 0x70000020
 
/* Number of entries in DT_MIPS_DELTA_CLASSSYM. */
#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021
 
/* Flags indicating information about C++ flavor. */
#define DT_MIPS_CXX_FLAGS 0x70000022
 
/* Pixie information (???). */
#define DT_MIPS_PIXIE_INIT 0x70000023
 
/* Address of .MIPS.symlib */
#define DT_MIPS_SYMBOL_LIB 0x70000024
 
/* The GOT index of the first PTE for a segment */
#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025
 
/* The GOT index of the first PTE for a local symbol */
#define DT_MIPS_LOCAL_GOTIDX 0x70000026
 
/* The GOT index of the first PTE for a hidden symbol */
#define DT_MIPS_HIDDEN_GOTIDX 0x70000027
 
/* The GOT index of the first PTE for a protected symbol */
#define DT_MIPS_PROTECTED_GOTIDX 0x70000028
 
/* Address of `.MIPS.options'. */
#define DT_MIPS_OPTIONS 0x70000029
 
/* Address of `.interface'. */
#define DT_MIPS_INTERFACE 0x7000002a
 
/* ??? */
#define DT_MIPS_DYNSTR_ALIGN 0x7000002b
 
/* Size of the .interface section. */
#define DT_MIPS_INTERFACE_SIZE 0x7000002c
 
/* Size of rld_text_resolve function stored in the GOT. */
#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d
 
/* Default suffix of DSO to be added by rld on dlopen() calls. */
#define DT_MIPS_PERF_SUFFIX 0x7000002e
 
/* Size of compact relocation section (O32). */
#define DT_MIPS_COMPACT_SIZE 0x7000002f
 
/* GP value for auxiliary GOTs. */
#define DT_MIPS_GP_VALUE 0x70000030
 
/* Address of auxiliary .dynamic. */
#define DT_MIPS_AUX_DYNAMIC 0x70000031
 
/* Address of the base of the PLTGOT. */
#define DT_MIPS_PLTGOT 0x70000032
 
/* Points to the base of a writable PLT. */
#define DT_MIPS_RWPLT 0x70000034
/* Flags which may appear in a DT_MIPS_FLAGS entry. */
 
/* No flags. */
#define RHF_NONE 0x00000000
 
/* Uses shortcut pointers. */
#define RHF_QUICKSTART 0x00000001
 
/* Hash size is not a power of two. */
#define RHF_NOTPOT 0x00000002
 
/* Ignore LD_LIBRARY_PATH. */
#define RHS_NO_LIBRARY_REPLACEMENT 0x00000004
 
/* DSO address may not be relocated. */
#define RHF_NO_MOVE 0x00000008
 
/* SGI specific features. */
#define RHF_SGI_ONLY 0x00000010
 
/* Guarantee that .init will finish executing before any non-init
code in DSO is called. */
#define RHF_GUARANTEE_INIT 0x00000020
 
/* Contains Delta C++ code. */
#define RHF_DELTA_C_PLUS_PLUS 0x00000040
 
/* Guarantee that .init will start executing before any non-init
code in DSO is called. */
#define RHF_GUARANTEE_START_INIT 0x00000080
 
/* Generated by pixie. */
#define RHF_PIXIE 0x00000100
 
/* Delay-load DSO by default. */
#define RHF_DEFAULT_DELAY_LOAD 0x00000200
 
/* Object may be requickstarted */
#define RHF_REQUICKSTART 0x00000400
 
/* Object has been requickstarted */
#define RHF_REQUICKSTARTED 0x00000800
 
/* Generated by cord. */
#define RHF_CORD 0x00001000
 
/* Object contains no unresolved undef symbols. */
#define RHF_NO_UNRES_UNDEF 0x00002000
 
/* Symbol table is in a safe order. */
#define RHF_RLD_ORDER_SAFE 0x00004000
/* Special values for the st_other field in the symbol table. These
are used in an Irix 5 dynamic symbol table. */
 
#define STO_DEFAULT STV_DEFAULT
#define STO_INTERNAL STV_INTERNAL
#define STO_HIDDEN STV_HIDDEN
#define STO_PROTECTED STV_PROTECTED
 
/* Two topmost bits denote the MIPS ISA for .text symbols:
+ 00 -- standard MIPS code,
+ 10 -- microMIPS code,
+ 11 -- MIPS16 code; requires the following two bits to be set too.
Note that one of the MIPS16 bits overlaps with STO_MIPS_PIC. See below
for details. */
#define STO_MIPS_ISA (3 << 6)
 
/* The mask spanning the rest of MIPS psABI flags. At most one is expected
to be set except for STO_MIPS16. */
#define STO_MIPS_FLAGS (~(STO_MIPS_ISA | ELF_ST_VISIBILITY (-1)))
 
/* The MIPS psABI was updated in 2008 with support for PLTs and copy
relocs. There are therefore two types of nonzero SHN_UNDEF functions:
PLT entries and traditional MIPS lazy binding stubs. We mark the former
with STO_MIPS_PLT to distinguish them from the latter. */
#define STO_MIPS_PLT 0x8
#define ELF_ST_IS_MIPS_PLT(other) \
((ELF_ST_IS_MIPS16 (other) \
? ((other) & (~STO_MIPS16 & STO_MIPS_FLAGS)) \
: ((other) & STO_MIPS_FLAGS)) == STO_MIPS_PLT)
#define ELF_ST_SET_MIPS_PLT(other) \
((ELF_ST_IS_MIPS16 (other) \
? ((other) & (STO_MIPS16 | ~STO_MIPS_FLAGS)) \
: ((other) & ~STO_MIPS_FLAGS)) | STO_MIPS_PLT)
 
/* This value is used to mark PIC functions in an object that mixes
PIC and non-PIC. Note that this bit overlaps with STO_MIPS16,
although MIPS16 symbols are never considered to be MIPS_PIC. */
#define STO_MIPS_PIC 0x20
#define ELF_ST_IS_MIPS_PIC(other) (((other) & STO_MIPS_FLAGS) == STO_MIPS_PIC)
#define ELF_ST_SET_MIPS_PIC(other) \
((ELF_ST_IS_MIPS16 (other) \
? ((other) & ~(STO_MIPS16 | STO_MIPS_FLAGS)) \
: ((other) & ~STO_MIPS_FLAGS)) | STO_MIPS_PIC)
 
/* This value is used for a mips16 .text symbol. */
#define STO_MIPS16 0xf0
#define ELF_ST_IS_MIPS16(other) (((other) & STO_MIPS16) == STO_MIPS16)
#define ELF_ST_SET_MIPS16(other) ((other) | STO_MIPS16)
 
/* This value is used for a microMIPS .text symbol. To distinguish from
STO_MIPS16, we set top two bits to be 10 to denote STO_MICROMIPS. The
mask is STO_MIPS_ISA. */
#define STO_MICROMIPS (2 << 6)
#define ELF_ST_IS_MICROMIPS(other) (((other) & STO_MIPS_ISA) == STO_MICROMIPS)
#define ELF_ST_SET_MICROMIPS(other) (((other) & ~STO_MIPS_ISA) | STO_MICROMIPS)
 
/* Whether code compression (either of the MIPS16 or the microMIPS ASEs)
has been indicated for a .text symbol. */
#define ELF_ST_IS_COMPRESSED(other) \
(ELF_ST_IS_MIPS16 (other) || ELF_ST_IS_MICROMIPS (other))
 
/* This bit is used on Irix to indicate a symbol whose definition
is optional - if, at final link time, it cannot be found, no
error message should be produced. */
#define STO_OPTIONAL (1 << 2)
/* A macro to examine the STO_OPTIONAL bit. */
#define ELF_MIPS_IS_OPTIONAL(other) ((other) & STO_OPTIONAL)
/* The 64-bit MIPS ELF ABI uses an unusual reloc format. Each
relocation entry specifies up to three actual relocations, all at
the same address. The first relocation which required a symbol
uses the symbol in the r_sym field. The second relocation which
requires a symbol uses the symbol in the r_ssym field. If all
three relocations require a symbol, the third one uses a zero
value. */
 
/* An entry in a 64 bit SHT_REL section. */
 
typedef struct
{
/* Address of relocation. */
unsigned char r_offset[8];
/* Symbol index. */
unsigned char r_sym[4];
/* Special symbol. */
unsigned char r_ssym[1];
/* Third relocation. */
unsigned char r_type3[1];
/* Second relocation. */
unsigned char r_type2[1];
/* First relocation. */
unsigned char r_type[1];
} Elf64_Mips_External_Rel;
 
typedef struct
{
/* Address of relocation. */
bfd_vma r_offset;
/* Symbol index. */
unsigned long r_sym;
/* Special symbol. */
unsigned char r_ssym;
/* Third relocation. */
unsigned char r_type3;
/* Second relocation. */
unsigned char r_type2;
/* First relocation. */
unsigned char r_type;
} Elf64_Mips_Internal_Rel;
 
/* An entry in a 64 bit SHT_RELA section. */
 
typedef struct
{
/* Address of relocation. */
unsigned char r_offset[8];
/* Symbol index. */
unsigned char r_sym[4];
/* Special symbol. */
unsigned char r_ssym[1];
/* Third relocation. */
unsigned char r_type3[1];
/* Second relocation. */
unsigned char r_type2[1];
/* First relocation. */
unsigned char r_type[1];
/* Addend. */
unsigned char r_addend[8];
} Elf64_Mips_External_Rela;
 
typedef struct
{
/* Address of relocation. */
bfd_vma r_offset;
/* Symbol index. */
unsigned long r_sym;
/* Special symbol. */
unsigned char r_ssym;
/* Third relocation. */
unsigned char r_type3;
/* Second relocation. */
unsigned char r_type2;
/* First relocation. */
unsigned char r_type;
/* Addend. */
bfd_signed_vma r_addend;
} Elf64_Mips_Internal_Rela;
 
/* MIPS ELF 64 relocation info access macros. */
#define ELF64_MIPS_R_SSYM(i) (((i) >> 24) & 0xff)
#define ELF64_MIPS_R_TYPE3(i) (((i) >> 16) & 0xff)
#define ELF64_MIPS_R_TYPE2(i) (((i) >> 8) & 0xff)
#define ELF64_MIPS_R_TYPE(i) ((i) & 0xff)
 
/* Values found in the r_ssym field of a relocation entry. */
 
/* No relocation. */
#define RSS_UNDEF 0
 
/* Value of GP. */
#define RSS_GP 1
 
/* Value of GP in object being relocated. */
#define RSS_GP0 2
 
/* Address of location being relocated. */
#define RSS_LOC 3
/* A SHT_MIPS_OPTIONS section contains a series of options, each of
which starts with this header. */
 
typedef struct
{
/* Type of option. */
unsigned char kind[1];
/* Size of option descriptor, including header. */
unsigned char size[1];
/* Section index of affected section, or 0 for global option. */
unsigned char section[2];
/* Information specific to this kind of option. */
unsigned char info[4];
} Elf_External_Options;
 
typedef struct
{
/* Type of option. */
unsigned char kind;
/* Size of option descriptor, including header. */
unsigned char size;
/* Section index of affected section, or 0 for global option. */
unsigned short section;
/* Information specific to this kind of option. */
unsigned long info;
} Elf_Internal_Options;
 
/* MIPS ELF option header swapping routines. */
extern void bfd_mips_elf_swap_options_in
(bfd *, const Elf_External_Options *, Elf_Internal_Options *);
extern void bfd_mips_elf_swap_options_out
(bfd *, const Elf_Internal_Options *, Elf_External_Options *);
 
/* Values which may appear in the kind field of an Elf_Options
structure. */
 
/* Undefined. */
#define ODK_NULL 0
 
/* Register usage and GP value. */
#define ODK_REGINFO 1
 
/* Exception processing information. */
#define ODK_EXCEPTIONS 2
 
/* Section padding information. */
#define ODK_PAD 3
 
/* Hardware workarounds performed. */
#define ODK_HWPATCH 4
 
/* Fill value used by the linker. */
#define ODK_FILL 5
 
/* Reserved space for desktop tools. */
#define ODK_TAGS 6
 
/* Hardware workarounds, AND bits when merging. */
#define ODK_HWAND 7
 
/* Hardware workarounds, OR bits when merging. */
#define ODK_HWOR 8
 
/* GP group to use for text/data sections. */
#define ODK_GP_GROUP 9
 
/* ID information. */
#define ODK_IDENT 10
 
/* In the 32 bit ABI, an ODK_REGINFO option is just a Elf32_RegInfo
structure. In the 64 bit ABI, it is the following structure. The
info field of the options header is not used. */
 
typedef struct
{
/* Mask of general purpose registers used. */
unsigned char ri_gprmask[4];
/* Padding. */
unsigned char ri_pad[4];
/* Mask of co-processor registers used. */
unsigned char ri_cprmask[4][4];
/* GP register value for this object file. */
unsigned char ri_gp_value[8];
} Elf64_External_RegInfo;
 
typedef struct
{
/* Mask of general purpose registers used. */
unsigned long ri_gprmask;
/* Padding. */
unsigned long ri_pad;
/* Mask of co-processor registers used. */
unsigned long ri_cprmask[4];
/* GP register value for this object file. */
bfd_vma ri_gp_value;
} Elf64_Internal_RegInfo;
 
typedef struct
{
/* The hash value computed from the name of the corresponding
dynamic symbol. */
unsigned char ms_hash_value[4];
/* Contains both the dynamic relocation index and the symbol flags
field. The macros ELF32_MS_REL_INDEX and ELF32_MS_FLAGS are used
to access the individual values. The dynamic relocation index
identifies the first entry in the .rel.dyn section that
references the dynamic symbol corresponding to this msym entry.
If the index is 0, no dynamic relocations are associated with the
symbol. The symbol flags field is reserved for future use. */
unsigned char ms_info[4];
} Elf32_External_Msym;
 
typedef struct
{
/* The hash value computed from the name of the corresponding
dynamic symbol. */
unsigned long ms_hash_value;
/* Contains both the dynamic relocation index and the symbol flags
field. The macros ELF32_MS_REL_INDEX and ELF32_MS_FLAGS are used
to access the individual values. The dynamic relocation index
identifies the first entry in the .rel.dyn section that
references the dynamic symbol corresponding to this msym entry.
If the index is 0, no dynamic relocations are associated with the
symbol. The symbol flags field is reserved for future use. */
unsigned long ms_info;
} Elf32_Internal_Msym;
 
#define ELF32_MS_REL_INDEX(i) ((i) >> 8)
#define ELF32_MS_FLAGS(i) (i) & 0xff)
#define ELF32_MS_INFO(r, f) (((r) << 8) + ((f) & 0xff))
 
/* MIPS ELF reginfo swapping routines. */
extern void bfd_mips_elf64_swap_reginfo_in
(bfd *, const Elf64_External_RegInfo *, Elf64_Internal_RegInfo *);
extern void bfd_mips_elf64_swap_reginfo_out
(bfd *, const Elf64_Internal_RegInfo *, Elf64_External_RegInfo *);
 
/* Masks for the info work of an ODK_EXCEPTIONS descriptor. */
#define OEX_FPU_MIN 0x1f /* FPEs which must be enabled. */
#define OEX_FPU_MAX 0x1f00 /* FPEs which may be enabled. */
#define OEX_PAGE0 0x10000 /* Page zero must be mapped. */
#define OEX_SMM 0x20000 /* Force sequential memory mode. */
#define OEX_FPDBUG 0x40000 /* Force precise floating-point
exceptions (debug mode). */
#define OEX_DISMISS 0x80000 /* Dismiss invalid address faults. */
 
/* Masks of the FP exceptions for OEX_FPU_MIN and OEX_FPU_MAX. */
#define OEX_FPU_INVAL 0x10 /* Invalid operation exception. */
#define OEX_FPU_DIV0 0x08 /* Division by zero exception. */
#define OEX_FPU_OFLO 0x04 /* Overflow exception. */
#define OEX_FPU_UFLO 0x02 /* Underflow exception. */
#define OEX_FPU_INEX 0x01 /* Inexact exception. */
 
/* Masks for the info word of an ODK_PAD descriptor. */
#define OPAD_PREFIX 0x01
#define OPAD_POSTFIX 0x02
#define OPAD_SYMBOL 0x04
 
/* Masks for the info word of an ODK_HWPATCH descriptor. */
#define OHW_R4KEOP 0x00000001 /* R4000 end-of-page patch. */
#define OHW_R8KPFETCH 0x00000002 /* May need R8000 prefetch patch. */
#define OHW_R5KEOP 0x00000004 /* R5000 end-of-page patch. */
#define OHW_R5KCVTL 0x00000008 /* R5000 cvt.[ds].l bug
(clean == 1). */
#define OHW_R10KLDL 0x00000010 /* Needs R10K misaligned
load patch. */
 
/* Masks for the info word of an ODK_IDENT/ODK_GP_GROUP descriptor. */
#define OGP_GROUP 0x0000ffff /* GP group number. */
#define OGP_SELF 0xffff0000 /* Self-contained GP groups. */
 
/* Masks for the info word of an ODK_HWAND/ODK_HWOR descriptor. */
#define OHWA0_R4KEOP_CHECKED 0x00000001
#define OHWA0_R4KEOP_CLEAN 0x00000002
 
/* Object attribute tags. */
enum
{
/* 0-3 are generic. */
 
/* Floating-point ABI used by this object file. */
Tag_GNU_MIPS_ABI_FP = 4,
};
 
/* Object attribute values. */
enum
{
/* Values defined for Tag_GNU_MIPS_ABI_FP. */
 
/* Not tagged or not using any ABIs affected by the differences. */
Val_GNU_MIPS_ABI_FP_ANY = 0,
 
/* Using hard-float -mdouble-float. */
Val_GNU_MIPS_ABI_FP_DOUBLE = 1,
 
/* Using hard-float -msingle-float. */
Val_GNU_MIPS_ABI_FP_SINGLE = 2,
 
/* Using soft-float. */
Val_GNU_MIPS_ABI_FP_SOFT = 3,
 
/* Using -mips32r2 -mfp64. */
Val_GNU_MIPS_ABI_FP_64 = 4,
};
 
#endif /* _ELF_MIPS_H */
/contrib/toolchain/binutils/include/elf/mmix.h
0,0 → 1,173
/* MMIX support for BFD.
Copyright 2001, 2002, 2003, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
/* This file holds definitions specific to the MMIX ELF ABI. */
 
#ifndef ELF_MMIX_H
#define ELF_MMIX_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. See the reloc table in bfd/elf64-mmix.c for details. */
START_RELOC_NUMBERS (elf_mmix_reloc_type)
RELOC_NUMBER (R_MMIX_NONE, 0)
 
/* Standard absolute relocations. */
RELOC_NUMBER (R_MMIX_8, 1)
RELOC_NUMBER (R_MMIX_16, 2)
RELOC_NUMBER (R_MMIX_24, 3)
RELOC_NUMBER (R_MMIX_32, 4)
RELOC_NUMBER (R_MMIX_64, 5)
 
/* Standard relative relocations. */
RELOC_NUMBER (R_MMIX_PC_8, 6)
RELOC_NUMBER (R_MMIX_PC_16, 7)
RELOC_NUMBER (R_MMIX_PC_24, 8)
RELOC_NUMBER (R_MMIX_PC_32, 9)
RELOC_NUMBER (R_MMIX_PC_64, 10)
 
/* GNU extensions for C++ vtables. */
RELOC_NUMBER (R_MMIX_GNU_VTINHERIT, 11)
RELOC_NUMBER (R_MMIX_GNU_VTENTRY, 12)
 
/* A GETA instruction. */
RELOC_NUMBER (R_MMIX_GETA, 13)
RELOC_NUMBER (R_MMIX_GETA_1, 14)
RELOC_NUMBER (R_MMIX_GETA_2, 15)
RELOC_NUMBER (R_MMIX_GETA_3, 16)
 
/* A conditional branch instruction. */
RELOC_NUMBER (R_MMIX_CBRANCH, 17)
RELOC_NUMBER (R_MMIX_CBRANCH_J, 18)
RELOC_NUMBER (R_MMIX_CBRANCH_1, 19)
RELOC_NUMBER (R_MMIX_CBRANCH_2, 20)
RELOC_NUMBER (R_MMIX_CBRANCH_3, 21)
 
/* A PUSHJ instruction. */
RELOC_NUMBER (R_MMIX_PUSHJ, 22)
RELOC_NUMBER (R_MMIX_PUSHJ_1, 23)
RELOC_NUMBER (R_MMIX_PUSHJ_2, 24)
RELOC_NUMBER (R_MMIX_PUSHJ_3, 25)
 
/* A JMP instruction. */
RELOC_NUMBER (R_MMIX_JMP, 26)
RELOC_NUMBER (R_MMIX_JMP_1, 27)
RELOC_NUMBER (R_MMIX_JMP_2, 28)
RELOC_NUMBER (R_MMIX_JMP_3, 29)
 
/* A relative address such as in a GETA or a branch. */
RELOC_NUMBER (R_MMIX_ADDR19, 30)
 
/* A relative address such as in a JMP (only). */
RELOC_NUMBER (R_MMIX_ADDR27, 31)
 
/* A general register or a number 0..255. */
RELOC_NUMBER (R_MMIX_REG_OR_BYTE, 32)
 
/* A general register. */
RELOC_NUMBER (R_MMIX_REG, 33)
 
/* A global register and an offset, the global register (allocated at
link time) contents plus the offset made equivalent to the relocation
expression at link time. The relocation must point at the Y field of
an instruction. */
RELOC_NUMBER (R_MMIX_BASE_PLUS_OFFSET, 34)
 
/* A LOCAL assertion. */
RELOC_NUMBER (R_MMIX_LOCAL, 35)
 
/* A PUSHJ instruction, generating a stub if it does not reach. */
RELOC_NUMBER (R_MMIX_PUSHJ_STUBBABLE, 36)
END_RELOC_NUMBERS (R_MMIX_max)
 
 
/* Section Attributes. */
/* A section containing necessary information for relaxation. */
#define SHF_MMIX_CANRELAX 0x80000000
 
/* Symbol attributes. */
/* A symbol with this section-index is a register. */
#define SHN_REGISTER SHN_LOPROC
 
/* This section holds contents for each initialized register, at VMA
regno*8. A symbol relative to this section will be transformed to an
absolute symbol with the value corresponding to the register number at
final link time. A symbol with a value outside the inclusive range
32*8 .. 254*8 is an error. It is highly recommended to only use an
upper bound of 253*8 or lower as specified in the (currently
unspecified) ABI. */
#define MMIX_REG_CONTENTS_SECTION_NAME ".MMIX.reg_contents"
 
/* At link time, a section by this name is created, expected to be
included in MMIX_REG_CONTENTS_SECTION_NAME in the output. */
#define MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME \
".MMIX.reg_contents.linker_allocated"
 
/* This is a faked section holding symbols with SHN_REGISTER. Don't
confuse it with MMIX_REG_CONTENTS_SECTION_NAME; this one has no
contents, just values. It is an error for a value in this section to
be outside the range 32..255 and it must never become an actual section
in an object file. */
#define MMIX_REG_SECTION_NAME "*REG*"
 
/* Appended with a number N=0..65535, this is a representation of the
mmixal "BSPEC N" ... "ESPEC" directive pair; the contents go into an
ELF section by name ".MMIX.spec_data.N". */
#define MMIX_OTHER_SPEC_SECTION_PREFIX ".MMIX.spec_data."
 
/* A section SECNAME is noted to start at "__.MMIX.start.SECNAME" by the
presence of this symbol. Currently only implemented for ".text"
through the symbol "__.MMIX.start..text". */
#define MMIX_LOC_SECTION_START_SYMBOL_PREFIX "__.MMIX.start."
 
/* This symbol is always a function. */
#define MMIX_START_SYMBOL_NAME "Main"
 
 
/* We smuggle in a few MMO specifics here. We don't make a specific MMO
file, since we can't reasonably support MMO without ELF; we have to
include this file anyway. */
 
#define MMO_TEXT_SECTION_NAME ".text"
#define MMO_DATA_SECTION_NAME ".data"
 
/* A definition for the flags we put in spec data in files. A copy of our
own of some flags to keep immune to BFD flag changes. See section.c of
2001-07-18 for flag documentation. */
#define MMO_SEC_ALLOC 0x001
#define MMO_SEC_LOAD 0x002
#define MMO_SEC_RELOC 0x004
#define MMO_SEC_READONLY 0x010
#define MMO_SEC_CODE 0x020
#define MMO_SEC_DATA 0x040
#define MMO_SEC_NEVER_LOAD 0x400
#define MMO_SEC_IS_COMMON 0x8000
#define MMO_SEC_DEBUGGING 0x10000
 
#ifdef BFD_ARCH_SIZE
extern bfd_boolean _bfd_mmix_before_linker_allocation
(bfd *, struct bfd_link_info *);
extern bfd_boolean _bfd_mmix_after_linker_allocation
(bfd *, struct bfd_link_info *);
extern bfd_boolean _bfd_mmix_check_all_relocs
(bfd *, struct bfd_link_info *);
#endif
 
#endif /* ELF_MMIX_H */
/contrib/toolchain/binutils/include/elf/mn10200.h
0,0 → 1,40
/* MN10200 ELF support for BFD.
Copyright 1998, 2000, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
/* This file holds definitions specific to the MN10200 ELF ABI. */
 
#ifndef _ELF_MN10200_H
#define _ELF_MN10200_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_mn10200_reloc_type)
RELOC_NUMBER (R_MN10200_NONE, 0)
RELOC_NUMBER (R_MN10200_32, 1)
RELOC_NUMBER (R_MN10200_16, 2)
RELOC_NUMBER (R_MN10200_8, 3)
RELOC_NUMBER (R_MN10200_24, 4)
RELOC_NUMBER (R_MN10200_PCREL8, 5)
RELOC_NUMBER (R_MN10200_PCREL16, 6)
RELOC_NUMBER (R_MN10200_PCREL24, 7)
END_RELOC_NUMBERS (R_MN10200_max)
 
#endif /* _ELF_MN10200_H */
/contrib/toolchain/binutils/include/elf/mn10300.h
0,0 → 1,80
/* MN10300 ELF support for BFD.
Copyright 1998, 1999, 2000, 2003, 2007 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
/* This file holds definitions specific to the MN10300 ELF ABI. */
 
#ifndef _ELF_MN10300_H
#define _ELF_MN10300_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_mn10300_reloc_type)
RELOC_NUMBER (R_MN10300_NONE, 0)
RELOC_NUMBER (R_MN10300_32, 1)
RELOC_NUMBER (R_MN10300_16, 2)
RELOC_NUMBER (R_MN10300_8, 3)
RELOC_NUMBER (R_MN10300_PCREL32, 4)
RELOC_NUMBER (R_MN10300_PCREL16, 5)
RELOC_NUMBER (R_MN10300_PCREL8, 6)
RELOC_NUMBER (R_MN10300_GNU_VTINHERIT, 7)
RELOC_NUMBER (R_MN10300_GNU_VTENTRY, 8)
RELOC_NUMBER (R_MN10300_24, 9)
RELOC_NUMBER (R_MN10300_GOTPC32, 10)
RELOC_NUMBER (R_MN10300_GOTPC16, 11)
RELOC_NUMBER (R_MN10300_GOTOFF32, 12)
RELOC_NUMBER (R_MN10300_GOTOFF24, 13)
RELOC_NUMBER (R_MN10300_GOTOFF16, 14)
RELOC_NUMBER (R_MN10300_PLT32, 15)
RELOC_NUMBER (R_MN10300_PLT16, 16)
RELOC_NUMBER (R_MN10300_GOT32, 17)
RELOC_NUMBER (R_MN10300_GOT24, 18)
RELOC_NUMBER (R_MN10300_GOT16, 19)
RELOC_NUMBER (R_MN10300_COPY, 20)
RELOC_NUMBER (R_MN10300_GLOB_DAT, 21)
RELOC_NUMBER (R_MN10300_JMP_SLOT, 22)
RELOC_NUMBER (R_MN10300_RELATIVE, 23)
RELOC_NUMBER (R_MN10300_TLS_GD, 24)
RELOC_NUMBER (R_MN10300_TLS_LD, 25)
RELOC_NUMBER (R_MN10300_TLS_LDO, 26)
RELOC_NUMBER (R_MN10300_TLS_GOTIE, 27)
RELOC_NUMBER (R_MN10300_TLS_IE, 28)
RELOC_NUMBER (R_MN10300_TLS_LE, 29)
RELOC_NUMBER (R_MN10300_TLS_DTPMOD, 30)
RELOC_NUMBER (R_MN10300_TLS_DTPOFF, 31)
RELOC_NUMBER (R_MN10300_TLS_TPOFF, 32)
RELOC_NUMBER (R_MN10300_SYM_DIFF, 33)
RELOC_NUMBER (R_MN10300_ALIGN, 34)
END_RELOC_NUMBERS (R_MN10300_MAX)
 
/* Machine variant if we know it. This field was invented at Cygnus,
but it is hoped that other vendors will adopt it. If some standard
is developed, this code should be changed to follow it. */
 
#define EF_MN10300_MACH 0x00FF0000
 
/* Cygnus is choosing values between 80 and 9F;
00 - 7F should be left for a future standard;
the rest are open. */
 
#define E_MN10300_MACH_MN10300 0x00810000
#define E_MN10300_MACH_AM33 0x00820000
#define E_MN10300_MACH_AM33_2 0x00830000
#endif /* _ELF_MN10300_H */
/contrib/toolchain/binutils/include/elf/moxie.h
0,0 → 1,32
/* moxie ELF support for BFD.
Copyright 2009, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_MOXIE_H
#define _ELF_MOXIE_H
 
#include "elf/reloc-macros.h"
 
/* Relocation types. */
START_RELOC_NUMBERS (elf_moxie_reloc_type)
RELOC_NUMBER (R_MOXIE_NONE, 0)
RELOC_NUMBER (R_MOXIE_32, 1)
RELOC_NUMBER (R_MOXIE_PCREL10, 2)
END_RELOC_NUMBERS (R_MOXIE_max)
 
#endif /* _ELF_MOXIE_H */
/contrib/toolchain/binutils/include/elf/msp430.h
0,0 → 1,101
/* MSP430 ELF support for BFD.
Copyright (C) 2002-2013 Free Software Foundation, Inc.
Contributed by Dmitry Diky <diwil@mail.ru>
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_MSP430_H
#define _ELF_MSP430_H
 
#include "elf/reloc-macros.h"
 
/* Processor specific flags for the ELF header e_flags field. */
#define EF_MSP430_MACH 0xff
 
#define E_MSP430_MACH_MSP430x11 11
#define E_MSP430_MACH_MSP430x11x1 110
#define E_MSP430_MACH_MSP430x12 12
#define E_MSP430_MACH_MSP430x13 13
#define E_MSP430_MACH_MSP430x14 14
#define E_MSP430_MACH_MSP430x15 15
#define E_MSP430_MACH_MSP430x16 16
#define E_MSP430_MACH_MSP430x20 20
#define E_MSP430_MACH_MSP430x22 22
#define E_MSP430_MACH_MSP430x23 23
#define E_MSP430_MACH_MSP430x24 24
#define E_MSP430_MACH_MSP430x26 26
#define E_MSP430_MACH_MSP430x31 31
#define E_MSP430_MACH_MSP430x32 32
#define E_MSP430_MACH_MSP430x33 33
#define E_MSP430_MACH_MSP430x41 41
#define E_MSP430_MACH_MSP430x42 42
#define E_MSP430_MACH_MSP430x43 43
#define E_MSP430_MACH_MSP430x44 44
#define E_MSP430_MACH_MSP430X 45
#define E_MSP430_MACH_MSP430x46 46
#define E_MSP430_MACH_MSP430x47 47
#define E_MSP430_MACH_MSP430x54 54
 
#define SHT_MSP430_ATTRIBUTES 0x70000003 /* Section holds ABI attributes. */
#define SHT_MSP430_SEC_FLAGS 0x7f000005 /* Holds TI compiler's section flags. */
#define SHT_MSP430_SYM_ALIASES 0x7f000006 /* Holds TI compiler's symbol aliases. */
 
/* Tag values for an attribute section. */
#define OFBA_MSPABI_Tag_ISA 4
#define OFBA_MSPABI_Tag_Code_Model 6
#define OFBA_MSPABI_Tag_Data_Model 8
 
/* Relocations. */
START_RELOC_NUMBERS (elf_msp430_reloc_type)
RELOC_NUMBER (R_MSP430_NONE, 0)
RELOC_NUMBER (R_MSP430_32, 1)
RELOC_NUMBER (R_MSP430_10_PCREL, 2)
RELOC_NUMBER (R_MSP430_16, 3)
RELOC_NUMBER (R_MSP430_16_PCREL, 4)
RELOC_NUMBER (R_MSP430_16_BYTE, 5)
RELOC_NUMBER (R_MSP430_16_PCREL_BYTE, 6)
RELOC_NUMBER (R_MSP430_2X_PCREL, 7)
RELOC_NUMBER (R_MSP430_RL_PCREL, 8)
RELOC_NUMBER (R_MSP430_8, 9)
RELOC_NUMBER (R_MSP430_SYM_DIFF, 10)
END_RELOC_NUMBERS (R_MSP430_max)
 
START_RELOC_NUMBERS (elf_msp430x_reloc_type)
RELOC_NUMBER (R_MSP430_ABS32, 1) /* aka R_MSP430_32 */
RELOC_NUMBER (R_MSP430_ABS16, 2) /* aka R_MSP430_16 */
RELOC_NUMBER (R_MSP430_ABS8, 3)
RELOC_NUMBER (R_MSP430_PCR16, 4) /* aka R_MSP430_16_PCREL */
RELOC_NUMBER (R_MSP430X_PCR20_EXT_SRC, 5)
RELOC_NUMBER (R_MSP430X_PCR20_EXT_DST, 6)
RELOC_NUMBER (R_MSP430X_PCR20_EXT_ODST, 7)
RELOC_NUMBER (R_MSP430X_ABS20_EXT_SRC, 8)
RELOC_NUMBER (R_MSP430X_ABS20_EXT_DST, 9)
RELOC_NUMBER (R_MSP430X_ABS20_EXT_ODST, 10)
RELOC_NUMBER (R_MSP430X_ABS20_ADR_SRC, 11)
RELOC_NUMBER (R_MSP430X_ABS20_ADR_DST, 12)
RELOC_NUMBER (R_MSP430X_PCR16, 13) /* Like R_MSP430_PCR16 but with overflow checking. */
RELOC_NUMBER (R_MSP430X_PCR20_CALL, 14)
RELOC_NUMBER (R_MSP430X_ABS16, 15) /* Like R_MSP430_ABS16 but with overflow checking. */
RELOC_NUMBER (R_MSP430_ABS_HI16, 16)
RELOC_NUMBER (R_MSP430_PREL31, 17)
RELOC_NUMBER (R_MSP430_EHTYPE, 18) /* Mentioned in ABI. */
RELOC_NUMBER (R_MSP430X_10_PCREL, 19) /* Red Hat invention. Used for Jump instructions. */
RELOC_NUMBER (R_MSP430X_2X_PCREL, 20) /* Red Hat invention. Used for relaxing jumps. */
RELOC_NUMBER (R_MSP430X_SYM_DIFF, 21) /* Red Hat invention. Used for relaxing debug info. */
END_RELOC_NUMBERS (R_MSP430x_max)
 
#endif /* _ELF_MSP430_H */
/contrib/toolchain/binutils/include/elf/mt.h
0,0 → 1,46
/* MS1 ELF support for BFD.
Copyright (C) 2000, 2005, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_MT_H
#define _ELF_MT_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_mt_reloc_type)
RELOC_NUMBER (R_MT_NONE, 0)
RELOC_NUMBER (R_MT_16, 1)
RELOC_NUMBER (R_MT_32, 2)
RELOC_NUMBER (R_MT_32_PCREL, 3)
RELOC_NUMBER (R_MT_PC16, 4)
RELOC_NUMBER (R_MT_HI16, 5)
RELOC_NUMBER (R_MT_LO16, 6)
END_RELOC_NUMBERS(R_MT_max)
 
#define EF_MT_CPU_MRISC 0x00000001 /* default */
#define EF_MT_CPU_MRISC2 0x00000002 /* MRISC2 */
#define EF_MT_CPU_MS2 0x00000003 /* MS2 */
#define EF_MT_CPU_MASK 0x00000003 /* specific cpu bits */
#define EF_MT_ALL_FLAGS (EF_MT_CPU_MASK)
 
/* The location of the memory mapped hardware stack. */
#define MT_STACK_VALUE 0x0f000000
#define MT_STACK_SIZE 0x20
 
#endif /* _ELF_MT_H */
/contrib/toolchain/binutils/include/elf/nios2.h
0,0 → 1,91
/* Altera Nios II ELF support for BFD.
Copyright (C) 2012, 2013 Free Software Foundation, Inc.
Contributed by Nigel Gray (ngray@altera.com).
Contributed by Mentor Graphics, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
 
/* This file holds definitions specific to the Altera Nios II ELF ABI. Note
that most of this is not actually implemented by BFD. */
 
#ifndef _ELF_NIOS2_H
#define _ELF_NIOS2_H
 
#include "elf/reloc-macros.h"
 
/* The order of these numbers must match the order in
the elf_nios2_howto_table_rel table for the lookup
function to work properly. */
 
START_RELOC_NUMBERS (elf_nios2_reloc_type)
RELOC_NUMBER (R_NIOS2_NONE, 0)
RELOC_NUMBER (R_NIOS2_S16, 1)
RELOC_NUMBER (R_NIOS2_U16, 2)
RELOC_NUMBER (R_NIOS2_PCREL16, 3)
RELOC_NUMBER (R_NIOS2_CALL26, 4)
RELOC_NUMBER (R_NIOS2_IMM5, 5)
RELOC_NUMBER (R_NIOS2_CACHE_OPX, 6)
RELOC_NUMBER (R_NIOS2_IMM6, 7)
RELOC_NUMBER (R_NIOS2_IMM8, 8)
RELOC_NUMBER (R_NIOS2_HI16, 9)
RELOC_NUMBER (R_NIOS2_LO16, 10)
RELOC_NUMBER (R_NIOS2_HIADJ16, 11)
RELOC_NUMBER (R_NIOS2_BFD_RELOC_32, 12)
RELOC_NUMBER (R_NIOS2_BFD_RELOC_16, 13)
RELOC_NUMBER (R_NIOS2_BFD_RELOC_8, 14)
RELOC_NUMBER (R_NIOS2_GPREL, 15)
RELOC_NUMBER (R_NIOS2_GNU_VTINHERIT, 16)
RELOC_NUMBER (R_NIOS2_GNU_VTENTRY, 17)
RELOC_NUMBER (R_NIOS2_UJMP, 18)
RELOC_NUMBER (R_NIOS2_CJMP, 19)
RELOC_NUMBER (R_NIOS2_CALLR, 20)
RELOC_NUMBER (R_NIOS2_ALIGN, 21)
RELOC_NUMBER (R_NIOS2_GOT16, 22)
RELOC_NUMBER (R_NIOS2_CALL16, 23)
RELOC_NUMBER (R_NIOS2_GOTOFF_LO, 24)
RELOC_NUMBER (R_NIOS2_GOTOFF_HA, 25)
RELOC_NUMBER (R_NIOS2_PCREL_LO, 26)
RELOC_NUMBER (R_NIOS2_PCREL_HA, 27)
RELOC_NUMBER (R_NIOS2_TLS_GD16, 28)
RELOC_NUMBER (R_NIOS2_TLS_LDM16, 29)
RELOC_NUMBER (R_NIOS2_TLS_LDO16, 30)
RELOC_NUMBER (R_NIOS2_TLS_IE16, 31)
RELOC_NUMBER (R_NIOS2_TLS_LE16, 32)
RELOC_NUMBER (R_NIOS2_TLS_DTPMOD, 33)
RELOC_NUMBER (R_NIOS2_TLS_DTPREL, 34)
RELOC_NUMBER (R_NIOS2_TLS_TPREL, 35)
RELOC_NUMBER (R_NIOS2_COPY, 36)
RELOC_NUMBER (R_NIOS2_GLOB_DAT, 37)
RELOC_NUMBER (R_NIOS2_JUMP_SLOT, 38)
RELOC_NUMBER (R_NIOS2_RELATIVE, 39)
RELOC_NUMBER (R_NIOS2_GOTOFF, 40)
RELOC_NUMBER (R_NIOS2_ILLEGAL, 41)
END_RELOC_NUMBERS (R_NIOS2_maxext)
 
/* Processor-specific section flags. */
 
/* This is used to mark gp-relative sections. */
#define SHF_NIOS2_GPREL 0x10000000
 
/* Processor-specific dynamic array tags. */
 
/* Address of _gp. */
#define DT_NIOS2_GP 0x70000002
 
#endif /* _ELF_NIOS2_H */
/contrib/toolchain/binutils/include/elf/openrisc.h
0,0 → 1,39
/* OpenRISC ELF support for BFD.
Copyright 2001, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_OPENRISC_H
#define _ELF_OPENRISC_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_openrisc_reloc_type)
RELOC_NUMBER (R_OPENRISC_NONE, 0)
RELOC_NUMBER (R_OPENRISC_INSN_REL_26, 1)
RELOC_NUMBER (R_OPENRISC_INSN_ABS_26, 2)
RELOC_NUMBER (R_OPENRISC_LO_16_IN_INSN, 3)
RELOC_NUMBER (R_OPENRISC_HI_16_IN_INSN, 4)
RELOC_NUMBER (R_OPENRISC_8, 5)
RELOC_NUMBER (R_OPENRISC_16, 6)
RELOC_NUMBER (R_OPENRISC_32, 7)
RELOC_NUMBER (R_OPENRISC_GNU_VTINHERIT, 8)
RELOC_NUMBER (R_OPENRISC_GNU_VTENTRY, 9)
END_RELOC_NUMBERS (R_OPENRISC_max)
 
#endif /* _ELF_OPENRISC_H */
/contrib/toolchain/binutils/include/elf/or32.h
0,0 → 1,56
/* OR1K ELF support for BFD. Derived from ppc.h.
Copyright (C) 2002, 2010 Free Software Foundation, Inc.
Contributed by Ivan Guzvinec <ivang@opencores.org>
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
#ifndef _ELF_OR1K_H
#define _ELF_OR1K_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_or32_reloc_type)
RELOC_NUMBER (R_OR32_NONE, 0)
RELOC_NUMBER (R_OR32_32, 1)
RELOC_NUMBER (R_OR32_16, 2)
RELOC_NUMBER (R_OR32_8, 3)
RELOC_NUMBER (R_OR32_CONST, 4)
RELOC_NUMBER (R_OR32_CONSTH, 5)
RELOC_NUMBER (R_OR32_JUMPTARG, 6)
RELOC_NUMBER (R_OR32_GNU_VTENTRY, 7)
RELOC_NUMBER (R_OR32_GNU_VTINHERIT, 8)
END_RELOC_NUMBERS (R_OR32_max)
 
/* Four bit OR32 machine type field. */
#define EF_OR32_MACH 0x0000000f
 
/* Various CPU types. */
#define E_OR32_MACH_BASE 0x00000000
#define E_OR32_MACH_UNUSED1 0x00000001
#define E_OR32_MACH_UNUSED2 0x00000002
#define E_OR32_MACH_UNUSED4 0x00000003
 
/* Processor specific section headers, sh_type field */
#define SHT_ORDERED SHT_HIPROC /* Link editor is to sort the \
entries in this section \
based on the address \
specified in the associated \
symbol table entry. */
 
#endif /* _ELF_OR1K_H */
/contrib/toolchain/binutils/include/elf/pj.h
0,0 → 1,44
/* picoJava ELF support for BFD.
Copyright 1999, 2000, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_PJ_H
#define _ELF_PJ_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
 
START_RELOC_NUMBERS (elf_pj_reloc_type)
RELOC_NUMBER (R_PJ_NONE, 0)
RELOC_NUMBER (R_PJ_DATA_DIR32, 1)
RELOC_NUMBER (R_PJ_CODE_REL32, 2)
RELOC_NUMBER (R_PJ_CODE_REL16, 3)
RELOC_NUMBER (R_PJ_CODE_DIR32, 6)
RELOC_NUMBER (R_PJ_CODE_DIR16, 7)
RELOC_NUMBER (R_PJ_CODE_LO16, 13)
RELOC_NUMBER (R_PJ_CODE_HI16, 14)
RELOC_NUMBER (R_PJ_GNU_VTINHERIT, 15)
RELOC_NUMBER (R_PJ_GNU_VTENTRY, 16)
END_RELOC_NUMBERS (R_PJ_max)
 
#define EF_PICOJAVA_ARCH 0x0000000f
#define EF_PICOJAVA_NEWCALLS 0x00000010
#define EF_PICOJAVA_GNUCALLS 0x00000020 /* The (currently) non standard GNU calling convention */
 
#endif
/contrib/toolchain/binutils/include/elf/ppc.h
0,0 → 1,224
/* PPC ELF support for BFD.
Copyright 1995, 1996, 1998, 2000, 2001, 2002, 2003, 2005, 2007, 2008,
2009, 2010 Free Software Foundation, Inc.
 
By Michael Meissner, Cygnus Support, <meissner@cygnus.com>,
from information in the System V Application Binary Interface,
PowerPC Processor Supplement and the PowerPC Embedded Application
Binary Interface (eabi).
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
/* This file holds definitions specific to the PPC ELF ABI. Note
that most of this is not actually implemented by BFD. */
 
#ifndef _ELF_PPC_H
#define _ELF_PPC_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_ppc_reloc_type)
RELOC_NUMBER (R_PPC_NONE, 0)
RELOC_NUMBER (R_PPC_ADDR32, 1)
RELOC_NUMBER (R_PPC_ADDR24, 2)
RELOC_NUMBER (R_PPC_ADDR16, 3)
RELOC_NUMBER (R_PPC_ADDR16_LO, 4)
RELOC_NUMBER (R_PPC_ADDR16_HI, 5)
RELOC_NUMBER (R_PPC_ADDR16_HA, 6)
RELOC_NUMBER (R_PPC_ADDR14, 7)
RELOC_NUMBER (R_PPC_ADDR14_BRTAKEN, 8)
RELOC_NUMBER (R_PPC_ADDR14_BRNTAKEN, 9)
RELOC_NUMBER (R_PPC_REL24, 10)
RELOC_NUMBER (R_PPC_REL14, 11)
RELOC_NUMBER (R_PPC_REL14_BRTAKEN, 12)
RELOC_NUMBER (R_PPC_REL14_BRNTAKEN, 13)
RELOC_NUMBER (R_PPC_GOT16, 14)
RELOC_NUMBER (R_PPC_GOT16_LO, 15)
RELOC_NUMBER (R_PPC_GOT16_HI, 16)
RELOC_NUMBER (R_PPC_GOT16_HA, 17)
RELOC_NUMBER (R_PPC_PLTREL24, 18)
RELOC_NUMBER (R_PPC_COPY, 19)
RELOC_NUMBER (R_PPC_GLOB_DAT, 20)
RELOC_NUMBER (R_PPC_JMP_SLOT, 21)
RELOC_NUMBER (R_PPC_RELATIVE, 22)
RELOC_NUMBER (R_PPC_LOCAL24PC, 23)
RELOC_NUMBER (R_PPC_UADDR32, 24)
RELOC_NUMBER (R_PPC_UADDR16, 25)
RELOC_NUMBER (R_PPC_REL32, 26)
RELOC_NUMBER (R_PPC_PLT32, 27)
RELOC_NUMBER (R_PPC_PLTREL32, 28)
RELOC_NUMBER (R_PPC_PLT16_LO, 29)
RELOC_NUMBER (R_PPC_PLT16_HI, 30)
RELOC_NUMBER (R_PPC_PLT16_HA, 31)
RELOC_NUMBER (R_PPC_SDAREL16, 32)
RELOC_NUMBER (R_PPC_SECTOFF, 33)
RELOC_NUMBER (R_PPC_SECTOFF_LO, 34)
RELOC_NUMBER (R_PPC_SECTOFF_HI, 35)
RELOC_NUMBER (R_PPC_SECTOFF_HA, 36)
RELOC_NUMBER (R_PPC_ADDR30, 37)
 
#ifndef RELOC_MACROS_GEN_FUNC
/* Fake relocations for branch stubs, only used internally by ld. */
RELOC_NUMBER (R_PPC_RELAX, 48)
RELOC_NUMBER (R_PPC_RELAX_PLT, 49)
RELOC_NUMBER (R_PPC_RELAX_PLTREL24, 50)
#endif
 
/* Relocs added to support TLS. */
RELOC_NUMBER (R_PPC_TLS, 67)
RELOC_NUMBER (R_PPC_DTPMOD32, 68)
RELOC_NUMBER (R_PPC_TPREL16, 69)
RELOC_NUMBER (R_PPC_TPREL16_LO, 70)
RELOC_NUMBER (R_PPC_TPREL16_HI, 71)
RELOC_NUMBER (R_PPC_TPREL16_HA, 72)
RELOC_NUMBER (R_PPC_TPREL32, 73)
RELOC_NUMBER (R_PPC_DTPREL16, 74)
RELOC_NUMBER (R_PPC_DTPREL16_LO, 75)
RELOC_NUMBER (R_PPC_DTPREL16_HI, 76)
RELOC_NUMBER (R_PPC_DTPREL16_HA, 77)
RELOC_NUMBER (R_PPC_DTPREL32, 78)
RELOC_NUMBER (R_PPC_GOT_TLSGD16, 79)
RELOC_NUMBER (R_PPC_GOT_TLSGD16_LO, 80)
RELOC_NUMBER (R_PPC_GOT_TLSGD16_HI, 81)
RELOC_NUMBER (R_PPC_GOT_TLSGD16_HA, 82)
RELOC_NUMBER (R_PPC_GOT_TLSLD16, 83)
RELOC_NUMBER (R_PPC_GOT_TLSLD16_LO, 84)
RELOC_NUMBER (R_PPC_GOT_TLSLD16_HI, 85)
RELOC_NUMBER (R_PPC_GOT_TLSLD16_HA, 86)
RELOC_NUMBER (R_PPC_GOT_TPREL16, 87)
RELOC_NUMBER (R_PPC_GOT_TPREL16_LO, 88)
RELOC_NUMBER (R_PPC_GOT_TPREL16_HI, 89)
RELOC_NUMBER (R_PPC_GOT_TPREL16_HA, 90)
RELOC_NUMBER (R_PPC_GOT_DTPREL16, 91)
RELOC_NUMBER (R_PPC_GOT_DTPREL16_LO, 92)
RELOC_NUMBER (R_PPC_GOT_DTPREL16_HI, 93)
RELOC_NUMBER (R_PPC_GOT_DTPREL16_HA, 94)
RELOC_NUMBER (R_PPC_TLSGD, 95)
RELOC_NUMBER (R_PPC_TLSLD, 96)
 
/* The remaining relocs are from the Embedded ELF ABI, and are not
in the SVR4 ELF ABI. */
RELOC_NUMBER (R_PPC_EMB_NADDR32, 101)
RELOC_NUMBER (R_PPC_EMB_NADDR16, 102)
RELOC_NUMBER (R_PPC_EMB_NADDR16_LO, 103)
RELOC_NUMBER (R_PPC_EMB_NADDR16_HI, 104)
RELOC_NUMBER (R_PPC_EMB_NADDR16_HA, 105)
RELOC_NUMBER (R_PPC_EMB_SDAI16, 106)
RELOC_NUMBER (R_PPC_EMB_SDA2I16, 107)
RELOC_NUMBER (R_PPC_EMB_SDA2REL, 108)
RELOC_NUMBER (R_PPC_EMB_SDA21, 109)
RELOC_NUMBER (R_PPC_EMB_MRKREF, 110)
RELOC_NUMBER (R_PPC_EMB_RELSEC16, 111)
RELOC_NUMBER (R_PPC_EMB_RELST_LO, 112)
RELOC_NUMBER (R_PPC_EMB_RELST_HI, 113)
RELOC_NUMBER (R_PPC_EMB_RELST_HA, 114)
RELOC_NUMBER (R_PPC_EMB_BIT_FLD, 115)
RELOC_NUMBER (R_PPC_EMB_RELSDA, 116)
 
/* PowerPC VLE relocations. */
RELOC_NUMBER (R_PPC_VLE_REL8, 216)
RELOC_NUMBER (R_PPC_VLE_REL15, 217)
RELOC_NUMBER (R_PPC_VLE_REL24, 218)
RELOC_NUMBER (R_PPC_VLE_LO16A, 219)
RELOC_NUMBER (R_PPC_VLE_LO16D, 220)
RELOC_NUMBER (R_PPC_VLE_HI16A, 221)
RELOC_NUMBER (R_PPC_VLE_HI16D, 222)
RELOC_NUMBER (R_PPC_VLE_HA16A, 223)
RELOC_NUMBER (R_PPC_VLE_HA16D, 224)
RELOC_NUMBER (R_PPC_VLE_SDA21, 225)
RELOC_NUMBER (R_PPC_VLE_SDA21_LO, 226)
RELOC_NUMBER (R_PPC_VLE_SDAREL_LO16A, 227)
RELOC_NUMBER (R_PPC_VLE_SDAREL_LO16D, 228)
RELOC_NUMBER (R_PPC_VLE_SDAREL_HI16A, 229)
RELOC_NUMBER (R_PPC_VLE_SDAREL_HI16D, 230)
RELOC_NUMBER (R_PPC_VLE_SDAREL_HA16A, 231)
RELOC_NUMBER (R_PPC_VLE_SDAREL_HA16D, 232)
 
/* Support STT_GNU_IFUNC plt calls. */
RELOC_NUMBER (R_PPC_IRELATIVE, 248)
 
/* These are GNU extensions used in PIC code sequences. */
RELOC_NUMBER (R_PPC_REL16, 249)
RELOC_NUMBER (R_PPC_REL16_LO, 250)
RELOC_NUMBER (R_PPC_REL16_HI, 251)
RELOC_NUMBER (R_PPC_REL16_HA, 252)
 
/* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_PPC_GNU_VTINHERIT, 253)
RELOC_NUMBER (R_PPC_GNU_VTENTRY, 254)
 
/* This is a phony reloc to handle any old fashioned TOC16 references
that may still be in object files. */
RELOC_NUMBER (R_PPC_TOC16, 255)
 
END_RELOC_NUMBERS (R_PPC_max)
 
#define IS_PPC_TLS_RELOC(R) \
((R) >= R_PPC_TLS && (R) <= R_PPC_GOT_DTPREL16_HA)
 
/* Specify the value of _GLOBAL_OFFSET_TABLE_. */
#define DT_PPC_GOT (DT_LOPROC)
 
/* Specify that tls descriptors should be optimized. */
#define DT_PPC_OPT (DT_LOPROC + 1)
#define PPC_OPT_TLS 1
 
/* Processor specific flags for the ELF header e_flags field. */
 
#define EF_PPC_EMB 0x80000000 /* PowerPC embedded flag. */
 
#define EF_PPC_RELOCATABLE 0x00010000 /* PowerPC -mrelocatable flag. */
#define EF_PPC_RELOCATABLE_LIB 0x00008000 /* PowerPC -mrelocatable-lib flag. */
 
/* Processor specific program headers, p_flags field. */
#define PF_PPC_VLE 0x10000000 /* PowerPC VLE. */
 
/* Processor specific section headers, sh_flags field. */
#define SHF_PPC_VLE 0x10000000 /* PowerPC VLE text section. */
 
/* Processor specific section headers, sh_type field. */
 
#define SHT_ORDERED SHT_HIPROC /* Link editor is to sort the \
entries in this section \
based on the address \
specified in the associated \
symbol table entry. */
 
/* Object attribute tags. */
enum
{
/* 0-3 are generic. */
Tag_GNU_Power_ABI_FP = 4, /* Value 1 for hard-float, 2 for
soft-float, 3 for single=precision
hard-float; 0 for not tagged or not
using any ABIs affected by the
differences. */
 
/* Value 1 for general purpose registers only, 2 for AltiVec
registers, 3 for SPE registers; 0 for not tagged or not using any
ABIs affected by the differences. */
Tag_GNU_Power_ABI_Vector = 8,
 
/* Value 1 for ABIs using r3/r4 for returning structures <= 8 bytes,
2 for ABIs using memory; 0 for not tagged or not using any ABIs
affected by the differences. */
Tag_GNU_Power_ABI_Struct_Return = 12
};
 
#endif /* _ELF_PPC_H */
/contrib/toolchain/binutils/include/elf/ppc64.h
0,0 → 1,242
/* PPC64 ELF support for BFD.
Copyright 2003, 2005, 2009, 2010, 2011 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
#ifndef _ELF_PPC64_H
#define _ELF_PPC64_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_ppc64_reloc_type)
RELOC_NUMBER (R_PPC64_NONE, 0)
RELOC_NUMBER (R_PPC64_ADDR32, 1)
RELOC_NUMBER (R_PPC64_ADDR24, 2)
RELOC_NUMBER (R_PPC64_ADDR16, 3)
RELOC_NUMBER (R_PPC64_ADDR16_LO, 4)
RELOC_NUMBER (R_PPC64_ADDR16_HI, 5)
RELOC_NUMBER (R_PPC64_ADDR16_HA, 6)
RELOC_NUMBER (R_PPC64_ADDR14, 7)
RELOC_NUMBER (R_PPC64_ADDR14_BRTAKEN, 8)
RELOC_NUMBER (R_PPC64_ADDR14_BRNTAKEN, 9)
RELOC_NUMBER (R_PPC64_REL24, 10)
RELOC_NUMBER (R_PPC64_REL14, 11)
RELOC_NUMBER (R_PPC64_REL14_BRTAKEN, 12)
RELOC_NUMBER (R_PPC64_REL14_BRNTAKEN, 13)
RELOC_NUMBER (R_PPC64_GOT16, 14)
RELOC_NUMBER (R_PPC64_GOT16_LO, 15)
RELOC_NUMBER (R_PPC64_GOT16_HI, 16)
RELOC_NUMBER (R_PPC64_GOT16_HA, 17)
/* 18 unused. 32-bit reloc is R_PPC_PLTREL24. */
RELOC_NUMBER (R_PPC64_COPY, 19)
RELOC_NUMBER (R_PPC64_GLOB_DAT, 20)
RELOC_NUMBER (R_PPC64_JMP_SLOT, 21)
RELOC_NUMBER (R_PPC64_RELATIVE, 22)
/* 23 unused. 32-bit reloc is R_PPC_LOCAL24PC. */
RELOC_NUMBER (R_PPC64_UADDR32, 24)
RELOC_NUMBER (R_PPC64_UADDR16, 25)
RELOC_NUMBER (R_PPC64_REL32, 26)
RELOC_NUMBER (R_PPC64_PLT32, 27)
RELOC_NUMBER (R_PPC64_PLTREL32, 28)
RELOC_NUMBER (R_PPC64_PLT16_LO, 29)
RELOC_NUMBER (R_PPC64_PLT16_HI, 30)
RELOC_NUMBER (R_PPC64_PLT16_HA, 31)
/* 32 unused. 32-bit reloc is R_PPC_SDAREL16. */
RELOC_NUMBER (R_PPC64_SECTOFF, 33)
RELOC_NUMBER (R_PPC64_SECTOFF_LO, 34)
RELOC_NUMBER (R_PPC64_SECTOFF_HI, 35)
RELOC_NUMBER (R_PPC64_SECTOFF_HA, 36)
RELOC_NUMBER (R_PPC64_REL30, 37)
RELOC_NUMBER (R_PPC64_ADDR64, 38)
RELOC_NUMBER (R_PPC64_ADDR16_HIGHER, 39)
RELOC_NUMBER (R_PPC64_ADDR16_HIGHERA, 40)
RELOC_NUMBER (R_PPC64_ADDR16_HIGHEST, 41)
RELOC_NUMBER (R_PPC64_ADDR16_HIGHESTA, 42)
RELOC_NUMBER (R_PPC64_UADDR64, 43)
RELOC_NUMBER (R_PPC64_REL64, 44)
RELOC_NUMBER (R_PPC64_PLT64, 45)
RELOC_NUMBER (R_PPC64_PLTREL64, 46)
RELOC_NUMBER (R_PPC64_TOC16, 47)
RELOC_NUMBER (R_PPC64_TOC16_LO, 48)
RELOC_NUMBER (R_PPC64_TOC16_HI, 49)
RELOC_NUMBER (R_PPC64_TOC16_HA, 50)
RELOC_NUMBER (R_PPC64_TOC, 51)
RELOC_NUMBER (R_PPC64_PLTGOT16, 52)
RELOC_NUMBER (R_PPC64_PLTGOT16_LO, 53)
RELOC_NUMBER (R_PPC64_PLTGOT16_HI, 54)
RELOC_NUMBER (R_PPC64_PLTGOT16_HA, 55)
 
/* The following relocs were added in the 64-bit PowerPC ELF ABI
revision 1.2. */
RELOC_NUMBER (R_PPC64_ADDR16_DS, 56)
RELOC_NUMBER (R_PPC64_ADDR16_LO_DS, 57)
RELOC_NUMBER (R_PPC64_GOT16_DS, 58)
RELOC_NUMBER (R_PPC64_GOT16_LO_DS, 59)
RELOC_NUMBER (R_PPC64_PLT16_LO_DS, 60)
RELOC_NUMBER (R_PPC64_SECTOFF_DS, 61)
RELOC_NUMBER (R_PPC64_SECTOFF_LO_DS, 62)
RELOC_NUMBER (R_PPC64_TOC16_DS, 63)
RELOC_NUMBER (R_PPC64_TOC16_LO_DS, 64)
RELOC_NUMBER (R_PPC64_PLTGOT16_DS, 65)
RELOC_NUMBER (R_PPC64_PLTGOT16_LO_DS, 66)
 
/* Relocs added to support TLS. PowerPC64 ELF ABI revision 1.5. */
RELOC_NUMBER (R_PPC64_TLS, 67)
RELOC_NUMBER (R_PPC64_DTPMOD64, 68)
RELOC_NUMBER (R_PPC64_TPREL16, 69)
RELOC_NUMBER (R_PPC64_TPREL16_LO, 70)
RELOC_NUMBER (R_PPC64_TPREL16_HI, 71)
RELOC_NUMBER (R_PPC64_TPREL16_HA, 72)
RELOC_NUMBER (R_PPC64_TPREL64, 73)
RELOC_NUMBER (R_PPC64_DTPREL16, 74)
RELOC_NUMBER (R_PPC64_DTPREL16_LO, 75)
RELOC_NUMBER (R_PPC64_DTPREL16_HI, 76)
RELOC_NUMBER (R_PPC64_DTPREL16_HA, 77)
RELOC_NUMBER (R_PPC64_DTPREL64, 78)
RELOC_NUMBER (R_PPC64_GOT_TLSGD16, 79)
RELOC_NUMBER (R_PPC64_GOT_TLSGD16_LO, 80)
RELOC_NUMBER (R_PPC64_GOT_TLSGD16_HI, 81)
RELOC_NUMBER (R_PPC64_GOT_TLSGD16_HA, 82)
RELOC_NUMBER (R_PPC64_GOT_TLSLD16, 83)
RELOC_NUMBER (R_PPC64_GOT_TLSLD16_LO, 84)
RELOC_NUMBER (R_PPC64_GOT_TLSLD16_HI, 85)
RELOC_NUMBER (R_PPC64_GOT_TLSLD16_HA, 86)
RELOC_NUMBER (R_PPC64_GOT_TPREL16_DS, 87)
RELOC_NUMBER (R_PPC64_GOT_TPREL16_LO_DS, 88)
RELOC_NUMBER (R_PPC64_GOT_TPREL16_HI, 89)
RELOC_NUMBER (R_PPC64_GOT_TPREL16_HA, 90)
RELOC_NUMBER (R_PPC64_GOT_DTPREL16_DS, 91)
RELOC_NUMBER (R_PPC64_GOT_DTPREL16_LO_DS, 92)
RELOC_NUMBER (R_PPC64_GOT_DTPREL16_HI, 93)
RELOC_NUMBER (R_PPC64_GOT_DTPREL16_HA, 94)
RELOC_NUMBER (R_PPC64_TPREL16_DS, 95)
RELOC_NUMBER (R_PPC64_TPREL16_LO_DS, 96)
RELOC_NUMBER (R_PPC64_TPREL16_HIGHER, 97)
RELOC_NUMBER (R_PPC64_TPREL16_HIGHERA, 98)
RELOC_NUMBER (R_PPC64_TPREL16_HIGHEST, 99)
RELOC_NUMBER (R_PPC64_TPREL16_HIGHESTA, 100)
RELOC_NUMBER (R_PPC64_DTPREL16_DS, 101)
RELOC_NUMBER (R_PPC64_DTPREL16_LO_DS, 102)
RELOC_NUMBER (R_PPC64_DTPREL16_HIGHER, 103)
RELOC_NUMBER (R_PPC64_DTPREL16_HIGHERA, 104)
RELOC_NUMBER (R_PPC64_DTPREL16_HIGHEST, 105)
RELOC_NUMBER (R_PPC64_DTPREL16_HIGHESTA, 106)
RELOC_NUMBER (R_PPC64_TLSGD, 107)
RELOC_NUMBER (R_PPC64_TLSLD, 108)
RELOC_NUMBER (R_PPC64_TOCSAVE, 109)
 
/* Added when HA and HI relocs were changed to report overflows. */
RELOC_NUMBER (R_PPC64_ADDR16_HIGH, 110)
RELOC_NUMBER (R_PPC64_ADDR16_HIGHA, 111)
RELOC_NUMBER (R_PPC64_TPREL16_HIGH, 112)
RELOC_NUMBER (R_PPC64_TPREL16_HIGHA, 113)
RELOC_NUMBER (R_PPC64_DTPREL16_HIGH, 114)
RELOC_NUMBER (R_PPC64_DTPREL16_HIGHA, 115)
 
#ifndef RELOC_MACROS_GEN_FUNC
/* Fake relocation only used internally by ld. */
RELOC_NUMBER (R_PPC64_LO_DS_OPT, 128)
#endif
/* Support STT_GNU_IFUNC plt calls. */
RELOC_NUMBER (R_PPC64_JMP_IREL, 247)
RELOC_NUMBER (R_PPC64_IRELATIVE, 248)
 
/* These are GNU extensions used in PIC code sequences. */
RELOC_NUMBER (R_PPC64_REL16, 249)
RELOC_NUMBER (R_PPC64_REL16_LO, 250)
RELOC_NUMBER (R_PPC64_REL16_HI, 251)
RELOC_NUMBER (R_PPC64_REL16_HA, 252)
 
/* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_PPC64_GNU_VTINHERIT, 253)
RELOC_NUMBER (R_PPC64_GNU_VTENTRY, 254)
 
END_RELOC_NUMBERS (R_PPC64_max)
 
#define IS_PPC64_TLS_RELOC(R) \
(((R) >= R_PPC64_TLS && (R) <= R_PPC64_DTPREL16_HIGHESTA) \
|| ((R) >= R_PPC64_TPREL16_HIGH && (R) <= R_PPC64_DTPREL16_HIGHA))
 
 
/* e_flags bits specifying ABI.
1 for original function descriptor using ABI,
2 for revised ABI without function descriptors,
0 for unspecified or not using any features affected by the differences. */
#define EF_PPC64_ABI 3
 
/* The ELFv2 ABI uses three bits in the symbol st_other field of a
function definition to specify the number of instructions between a
function's global entry point and local entry point.
The global entry point is used when it is necessary to set up the
toc pointer (r2) for the function. Callers must enter the global
entry point with r12 set to the global entry point address. On
return from the function, r2 may have a different value to that
which it had on entry.
The local entry point is used when r2 is known to already be valid
for the function. There is no requirement on r12 when using the
local entry point, and on return r2 will contain the same value as
at entry.
A value of zero in these bits means that the function has a single
entry point with no requirement on r12 or r2, and that on return r2
will contain the same value as at entry.
Values of one and seven are reserved. */
#define STO_PPC64_LOCAL_BIT 5
#define STO_PPC64_LOCAL_MASK (7 << STO_PPC64_LOCAL_BIT)
 
// 3 bit other field to bytes.
static inline unsigned int
ppc64_decode_local_entry(unsigned int other)
{
return ((1 << other) >> 2) << 2;
}
 
// bytes to field value.
static inline unsigned int
ppc64_encode_local_entry(unsigned int val)
{
return (val >= 4 * 4
? (val >= 8 * 4
? (val >= 16 * 4 ? 6 : 5)
: 4)
: (val >= 2 * 4
? 3
: (val >= 1 * 4 ? 2 : 0)));
}
 
/* st_other to number of bytes. */
#define PPC64_LOCAL_ENTRY_OFFSET(other) \
ppc64_decode_local_entry (((other) & STO_PPC64_LOCAL_MASK) \
>> STO_PPC64_LOCAL_BIT)
/* number of bytes to st_other. */
#define PPC64_SET_LOCAL_ENTRY_OFFSET(val) \
ppc64_encode_local_entry (val) << STO_PPC64_LOCAL_BIT
 
/* Specify the start of the .glink section. */
#define DT_PPC64_GLINK DT_LOPROC
 
/* Specify the start and size of the .opd section. */
#define DT_PPC64_OPD (DT_LOPROC + 1)
#define DT_PPC64_OPDSZ (DT_LOPROC + 2)
 
/* Specify whether various optimisations are possible. */
#define DT_PPC64_OPT (DT_LOPROC + 3)
#define PPC64_OPT_TLS 1
#define PPC64_OPT_MULTI_TOC 2
 
#endif /* _ELF_PPC64_H */
/contrib/toolchain/binutils/include/elf/reloc-macros.h
0,0 → 1,129
/* Generic relocation support for BFD.
Copyright 1998, 1999, 2000, 2003, 2010, 2011 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
/* These macros are used by the various *.h target specific header
files to either generate an enum containing all the known relocations
for that target, or if RELOC_MACROS_GEN_FUNC is defined, a recognition
function is generated instead. (This is used by binutils/readelf.c)
 
Given a header file like this:
 
START_RELOC_NUMBERS (foo)
RELOC_NUMBER (R_foo_NONE, 0)
RELOC_NUMBER (R_foo_32, 1)
EMPTY_RELOC (R_foo_good)
FAKE_RELOC (R_foo_illegal, 9)
END_RELOC_NUMBERS (R_foo_count)
 
Then the following will be produced by default (ie if
RELOC_MACROS_GEN_FUNC is *not* defined).
 
enum foo
{
R_foo_NONE = 0,
R_foo_32 = 1,
R_foo_good,
R_foo_illegal = 9,
R_foo_count
};
 
Note: The value of the symbol defined in the END_RELOC_NUMBERS
macro (R_foo_count in the case of the example above) will be
set to the value of the whichever *_RELOC macro precedes it plus
one. Therefore if you intend to use the symbol as a sentinel for
the highest valid macro value you should make sure that the
preceding *_RELOC macro is the highest valid number. ie a
declaration like this:
 
START_RELOC_NUMBERS (foo)
RELOC_NUMBER (R_foo_NONE, 0)
RELOC_NUMBER (R_foo_32, 1)
FAKE_RELOC (R_foo_illegal, 9)
FAKE_RELOC (R_foo_synonym, 0)
END_RELOC_NUMBERS (R_foo_count)
 
will result in R_foo_count having a value of 1 (R_foo_synonym + 1)
rather than 10 or 2 as might be expected.
 
Alternatively you can assign a value to END_RELOC_NUMBERS symbol
explicitly, like this:
 
START_RELOC_NUMBERS (foo)
RELOC_NUMBER (R_foo_NONE, 0)
RELOC_NUMBER (R_foo_32, 1)
FAKE_RELOC (R_foo_illegal, 9)
FAKE_RELOC (R_foo_synonym, 0)
END_RELOC_NUMBERS (R_foo_count = 2)
 
If RELOC_MACROS_GEN_FUNC *is* defined, then instead the
following function will be generated:
 
static const char *foo (unsigned long rtype);
static const char *
foo (unsigned long rtype)
{
switch (rtype)
{
case 0: return "R_foo_NONE";
case 1: return "R_foo_32";
default: return NULL;
}
}
*/
 
#ifndef _RELOC_MACROS_H
#define _RELOC_MACROS_H
 
#ifdef RELOC_MACROS_GEN_FUNC
 
/* This function takes the relocation number and returns the
string version name of the name of that relocation. If
the relocation is not recognised, NULL is returned. */
 
#define START_RELOC_NUMBERS(name) \
static const char *name (unsigned long rtype); \
static const char * \
name (unsigned long rtype) \
{ \
switch (rtype) \
{
 
#define RELOC_NUMBER(name, number) \
case number: return #name;
 
#define FAKE_RELOC(name, number)
#define EMPTY_RELOC(name)
 
#define END_RELOC_NUMBERS(name) \
default: return NULL; \
} \
}
 
 
#else /* Default to generating enum. */
 
#define START_RELOC_NUMBERS(name) enum name {
#define RELOC_NUMBER(name, number) name = number,
#define FAKE_RELOC(name, number) name = number,
#define EMPTY_RELOC(name) name,
#define END_RELOC_NUMBERS(name) name };
 
#endif
 
#endif /* _RELOC_MACROS_H */
/contrib/toolchain/binutils/include/elf/rl78.h
0,0 → 1,120
/* RL78 ELF support for BFD.
Copyright (C) 2008-2013 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_RL78_H
#define _ELF_RL78_H
 
#include "elf/reloc-macros.h"
 
/* Note that there are a few internal relocation types used by the
linker to do link-time relaxation. If you update this file, please
check elf32-rl78.c to see if any of the internal relocations need to
be, er, relocated. */
 
/* Preliminary relocations. */
START_RELOC_NUMBERS (elf_rl78_reloc_type)
 
RELOC_NUMBER (R_RL78_NONE, 0x00)
/* These are for data, and are bi-endian. */
RELOC_NUMBER (R_RL78_DIR32, 0x01) /* Was: R_RL78_32. */
RELOC_NUMBER (R_RL78_DIR24S, 0x02) /* Was: R_RL78_24. */
RELOC_NUMBER (R_RL78_DIR16, 0x03)
RELOC_NUMBER (R_RL78_DIR16U, 0x04) /* Was: R_RL78_16_UNS. */
RELOC_NUMBER (R_RL78_DIR16S, 0x05) /* Was: R_RL78_16. */
RELOC_NUMBER (R_RL78_DIR8, 0x06)
RELOC_NUMBER (R_RL78_DIR8U, 0x07) /* Was: R_RL78_8_UNS. */
RELOC_NUMBER (R_RL78_DIR8S, 0x08) /* Was: R_RL78_8. */
 
/* Signed pc-relative values. */
RELOC_NUMBER (R_RL78_DIR24S_PCREL, 0x09) /* Was: R_RL78_24_PCREL. */
RELOC_NUMBER (R_RL78_DIR16S_PCREL, 0x0a) /* Was: R_RL78_16_PCREL. */
RELOC_NUMBER (R_RL78_DIR8S_PCREL, 0x0b) /* Was: R_RL78_8_PCREL. */
 
/* These are for fields in the instructions. */
RELOC_NUMBER (R_RL78_DIR16UL, 0x0c)
RELOC_NUMBER (R_RL78_DIR16UW, 0x0d)
RELOC_NUMBER (R_RL78_DIR8UL, 0x0e)
RELOC_NUMBER (R_RL78_DIR8UW, 0x0f)
RELOC_NUMBER (R_RL78_DIR32_REV, 0x10)
RELOC_NUMBER (R_RL78_DIR16_REV, 0x11)
RELOC_NUMBER (R_RL78_DIR3U_PCREL, 0x12)
 
/* These are extensions added by Red Hat. */
RELOC_NUMBER (R_RL78_RH_RELAX, 0x2d) /* Marks opcodes suitable for linker relaxation. */
RELOC_NUMBER (R_RL78_RH_SFR, 0x2e) /* SFR addresses - internal use only. */
RELOC_NUMBER (R_RL78_RH_SADDR, 0x2f) /* SADDR addresses - internal use only.. */
 
/* These are for complex relocs. */
RELOC_NUMBER (R_RL78_ABS32, 0x41)
RELOC_NUMBER (R_RL78_ABS24S, 0x42)
RELOC_NUMBER (R_RL78_ABS16, 0x43)
RELOC_NUMBER (R_RL78_ABS16U, 0x44)
RELOC_NUMBER (R_RL78_ABS16S, 0x45)
RELOC_NUMBER (R_RL78_ABS8, 0x46)
RELOC_NUMBER (R_RL78_ABS8U, 0x47)
RELOC_NUMBER (R_RL78_ABS8S, 0x48)
RELOC_NUMBER (R_RL78_ABS24S_PCREL, 0x49)
RELOC_NUMBER (R_RL78_ABS16S_PCREL, 0x4a)
RELOC_NUMBER (R_RL78_ABS8S_PCREL, 0x4b)
RELOC_NUMBER (R_RL78_ABS16UL, 0x4c)
RELOC_NUMBER (R_RL78_ABS16UW, 0x4d)
RELOC_NUMBER (R_RL78_ABS8UL, 0x4e)
RELOC_NUMBER (R_RL78_ABS8UW, 0x4f)
RELOC_NUMBER (R_RL78_ABS32_REV, 0x50)
RELOC_NUMBER (R_RL78_ABS16_REV, 0x51)
 
RELOC_NUMBER (R_RL78_SYM, 0x80)
RELOC_NUMBER (R_RL78_OPneg, 0x81)
RELOC_NUMBER (R_RL78_OPadd, 0x82)
RELOC_NUMBER (R_RL78_OPsub, 0x83)
RELOC_NUMBER (R_RL78_OPmul, 0x84)
RELOC_NUMBER (R_RL78_OPdiv, 0x85)
RELOC_NUMBER (R_RL78_OPshla, 0x86)
RELOC_NUMBER (R_RL78_OPshra, 0x87)
RELOC_NUMBER (R_RL78_OPsctsize, 0x88)
RELOC_NUMBER (R_RL78_OPscttop, 0x8d)
RELOC_NUMBER (R_RL78_OPand, 0x90)
RELOC_NUMBER (R_RL78_OPor, 0x91)
RELOC_NUMBER (R_RL78_OPxor, 0x92)
RELOC_NUMBER (R_RL78_OPnot, 0x93)
RELOC_NUMBER (R_RL78_OPmod, 0x94)
RELOC_NUMBER (R_RL78_OPromtop, 0x95)
RELOC_NUMBER (R_RL78_OPramtop, 0x96)
 
END_RELOC_NUMBERS (R_RL78_max)
 
#define EF_RL78_CPU_RL78 0x00000079 /* FIXME: correct value? */
#define EF_RL78_CPU_MASK 0x0000007F /* specific cpu bits. */
#define EF_RL78_ALL_FLAGS (EF_RL78_CPU_MASK)
 
/* Values for the e_flags field in the ELF header. */
#define E_FLAG_RL78_64BIT_DOUBLES (1 << 0)
#define E_FLAG_RL78_DSP (1 << 1) /* Defined in the RL78 CPU Object file specification, but not explained. */
#define E_FLAG_RL78_G10 (1 << 2) /* CPU is missing register banks 1-3, so uses different ABI. */
 
/* These define the addend field of R_RL78_RH_RELAX relocations. */
#define RL78_RELAXA_BRA 0x00000010 /* Any type of branch (must be decoded). */
#define RL78_RELAXA_ADDR16 0x00000020 /* addr16->sfr/saddr opportunity */
#define RL78_RELAXA_RNUM 0x0000000f /* Number of associated relocations. */
/* These mark the place where alignment is requested, and the place where the filler bytes end. */
#define RL78_RELAXA_ALIGN 0x10000000 /* Start alignment; the remaining bits are the alignment value. */
#define RL78_RELAXA_ELIGN 0x20000000 /* End alignment; the remaining bits are the alignment value. */
#define RL78_RELAXA_ANUM 0x00ffffff /* Alignment amount, in bytes (i.e. .balign). */
 
#endif /* _ELF_RL78_H */
/contrib/toolchain/binutils/include/elf/rx.h
0,0 → 1,136
/* RX ELF support for BFD.
Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_RX_H
#define _ELF_RX_H
 
#include "elf/reloc-macros.h"
 
/* Note that there are a few internal relocation types used by the
linker to do link-time relaxation. If you update this file, please
check elf32-rx.c to see if any of the internal relocations need to
be, er, relocated. */
 
/* Preliminary relocations. */
START_RELOC_NUMBERS (elf_rx_reloc_type)
 
RELOC_NUMBER (R_RX_NONE, 0x00)
/* These are for data, and are bi-endian. */
RELOC_NUMBER (R_RX_DIR32, 0x01) /* Was: R_RX_32. */
RELOC_NUMBER (R_RX_DIR24S, 0x02) /* Was: R_RX_24. */
RELOC_NUMBER (R_RX_DIR16, 0x03)
RELOC_NUMBER (R_RX_DIR16U, 0x04) /* Was: R_RX_16_UNS. */
RELOC_NUMBER (R_RX_DIR16S, 0x05) /* Was: R_RX_16. */
RELOC_NUMBER (R_RX_DIR8, 0x06)
RELOC_NUMBER (R_RX_DIR8U, 0x07) /* Was: R_RX_8_UNS. */
RELOC_NUMBER (R_RX_DIR8S, 0x08) /* Was: R_RX_8. */
 
/* Signed pc-relative values. */
RELOC_NUMBER (R_RX_DIR24S_PCREL, 0x09) /* Was: R_RX_24_PCREL. */
RELOC_NUMBER (R_RX_DIR16S_PCREL, 0x0a) /* Was: R_RX_16_PCREL. */
RELOC_NUMBER (R_RX_DIR8S_PCREL, 0x0b) /* Was: R_RX_8_PCREL. */
 
/* These are for fields in the instructions. */
RELOC_NUMBER (R_RX_DIR16UL, 0x0c)
RELOC_NUMBER (R_RX_DIR16UW, 0x0d)
RELOC_NUMBER (R_RX_DIR8UL, 0x0e)
RELOC_NUMBER (R_RX_DIR8UW, 0x0f)
RELOC_NUMBER (R_RX_DIR32_REV, 0x10)
RELOC_NUMBER (R_RX_DIR16_REV, 0x11)
RELOC_NUMBER (R_RX_DIR3U_PCREL, 0x12)
 
/* These are extensions added by Red Hat. */
RELOC_NUMBER (R_RX_RH_3_PCREL, 0x20) /* Like R_RX_DIR8S_PCREL but only 3-bits. */
RELOC_NUMBER (R_RX_RH_16_OP, 0x21) /* Like R_RX_DIR16 but for opcodes - always big endian. */
RELOC_NUMBER (R_RX_RH_24_OP, 0x22) /* Like R_RX_DIR24S but for opcodes - always big endian. */
RELOC_NUMBER (R_RX_RH_32_OP, 0x23) /* Like R_RX_DIR32 but for opcodes - always big endian. */
RELOC_NUMBER (R_RX_RH_24_UNS, 0x24) /* Like R_RX_DIR24S but for unsigned values. */
RELOC_NUMBER (R_RX_RH_8_NEG, 0x25) /* Like R_RX_DIR8 but -x is stored. */
RELOC_NUMBER (R_RX_RH_16_NEG, 0x26) /* Like R_RX_DIR16 but -x is stored. */
RELOC_NUMBER (R_RX_RH_24_NEG, 0x27) /* Like R_RX_DIR24S but -x is stored. */
RELOC_NUMBER (R_RX_RH_32_NEG, 0x28) /* Like R_RX_DIR32 but -x is stored. */
RELOC_NUMBER (R_RX_RH_DIFF, 0x29) /* Subtract from a previous relocation. */
RELOC_NUMBER (R_RX_RH_GPRELB, 0x2a) /* Byte value, relative to __gp. */
RELOC_NUMBER (R_RX_RH_GPRELW, 0x2b) /* Word value, relative to __gp. */
RELOC_NUMBER (R_RX_RH_GPRELL, 0x2c) /* Long value, relative to __gp. */
RELOC_NUMBER (R_RX_RH_RELAX, 0x2d) /* Marks opcodes suitable for linker relaxation. */
 
/* These are for complex relocs. */
RELOC_NUMBER (R_RX_ABS32, 0x41)
RELOC_NUMBER (R_RX_ABS24S, 0x42)
RELOC_NUMBER (R_RX_ABS16, 0x43)
RELOC_NUMBER (R_RX_ABS16U, 0x44)
RELOC_NUMBER (R_RX_ABS16S, 0x45)
RELOC_NUMBER (R_RX_ABS8, 0x46)
RELOC_NUMBER (R_RX_ABS8U, 0x47)
RELOC_NUMBER (R_RX_ABS8S, 0x48)
RELOC_NUMBER (R_RX_ABS24S_PCREL, 0x49)
RELOC_NUMBER (R_RX_ABS16S_PCREL, 0x4a)
RELOC_NUMBER (R_RX_ABS8S_PCREL, 0x4b)
RELOC_NUMBER (R_RX_ABS16UL, 0x4c)
RELOC_NUMBER (R_RX_ABS16UW, 0x4d)
RELOC_NUMBER (R_RX_ABS8UL, 0x4e)
RELOC_NUMBER (R_RX_ABS8UW, 0x4f)
RELOC_NUMBER (R_RX_ABS32_REV, 0x50)
RELOC_NUMBER (R_RX_ABS16_REV, 0x51)
 
RELOC_NUMBER (R_RX_SYM, 0x80)
RELOC_NUMBER (R_RX_OPneg, 0x81)
RELOC_NUMBER (R_RX_OPadd, 0x82)
RELOC_NUMBER (R_RX_OPsub, 0x83)
RELOC_NUMBER (R_RX_OPmul, 0x84)
RELOC_NUMBER (R_RX_OPdiv, 0x85)
RELOC_NUMBER (R_RX_OPshla, 0x86)
RELOC_NUMBER (R_RX_OPshra, 0x87)
RELOC_NUMBER (R_RX_OPsctsize, 0x88)
RELOC_NUMBER (R_RX_OPscttop, 0x8d)
RELOC_NUMBER (R_RX_OPand, 0x90)
RELOC_NUMBER (R_RX_OPor, 0x91)
RELOC_NUMBER (R_RX_OPxor, 0x92)
RELOC_NUMBER (R_RX_OPnot, 0x93)
RELOC_NUMBER (R_RX_OPmod, 0x94)
RELOC_NUMBER (R_RX_OPromtop, 0x95)
RELOC_NUMBER (R_RX_OPramtop, 0x96)
 
END_RELOC_NUMBERS (R_RX_max)
 
#define EF_RX_CPU_RX 0x00000079 /* FIXME: this collides with the E_FLAG_RX_... values below. */
#define EF_RX_CPU_MASK 0x0000007F /* specific cpu bits. */
#define EF_RX_ALL_FLAGS (EF_RX_CPU_MASK)
 
/* Values for the e_flags field in the ELF header. */
#define E_FLAG_RX_64BIT_DOUBLES (1 << 0)
#define E_FLAG_RX_DSP (1 << 1) /* Defined in the RX CPU Object file specification, but not explained. */
#define E_FLAG_RX_PID (1 << 2) /* Unofficial - DJ */
#define E_FLAG_RX_ABI (1 << 3) /* Binary passes stacked arguments using natural alignment. Unofficial - NC. */
 
/* These define the addend field of R_RX_RH_RELAX relocations. */
#define RX_RELAXA_IMM6 0x00000010 /* Imm8/16/24/32 at bit offset 6. */
#define RX_RELAXA_IMM12 0x00000020 /* Imm8/16/24/32 at bit offset 12. */
#define RX_RELAXA_DSP4 0x00000040 /* Dsp0/8/16 at bit offset 4. */
#define RX_RELAXA_DSP6 0x00000080 /* Dsp0/8/16 at bit offset 6. */
#define RX_RELAXA_DSP14 0x00000100 /* Dsp0/8/16 at bit offset 14. */
#define RX_RELAXA_BRA 0x00000200 /* Any type of branch (must be decoded). */
#define RX_RELAXA_RNUM 0x0000000f /* Number of associated relocations. */
/* These mark the place where alignment is requested, and the place where the filler bytes end. */
#define RX_RELAXA_ALIGN 0x10000000 /* Start alignment; the remaining bits are the alignment value. */
#define RX_RELAXA_ELIGN 0x20000000 /* End alignment; the remaining bits are the alignment value. */
#define RX_RELAXA_ANUM 0x00ffffff /* Alignment amount, in bytes (i.e. .balign). */
 
#endif /* _ELF_RX_H */
/contrib/toolchain/binutils/include/elf/s390.h
0,0 → 1,134
/* 390 ELF support for BFD.
Copyright 2000, 2001, 2003, 2010 Free Software Foundation, Inc.
Contributed by Carl B. Pedersen and Martin Schwidefsky.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
 
#ifndef _ELF_390_H
#define _ELF_390_H
 
/* Processor specific flags for the ELF header e_flags field. */
 
/* Symbol types. */
 
#define STACK_REG 15 /* Global Stack reg */
#define BACKL_REG 14 /* Global Backlink reg */
#define BASE_REG 13 /* Global Base reg */
#define GOT_REG 12 /* Holds addr of GOT */
 
#include "elf/reloc-macros.h"
 
/* Processor specific flags for the ELF header e_flags field. */
 
#define EF_S390_HIGH_GPRS 0x00000001
 
/* Relocation types. */
 
START_RELOC_NUMBERS (elf_s390_reloc_type)
RELOC_NUMBER (R_390_NONE, 0) /* No reloc. */
RELOC_NUMBER (R_390_8, 1) /* Direct 8 bit. */
RELOC_NUMBER (R_390_12, 2) /* Direct 12 bit. */
RELOC_NUMBER (R_390_16, 3) /* Direct 16 bit. */
RELOC_NUMBER (R_390_32, 4) /* Direct 32 bit. */
RELOC_NUMBER (R_390_PC32, 5) /* PC relative 32 bit. */
RELOC_NUMBER (R_390_GOT12, 6) /* 12 bit GOT offset. */
RELOC_NUMBER (R_390_GOT32, 7) /* 32 bit GOT offset. */
RELOC_NUMBER (R_390_PLT32, 8) /* 32 bit PC relative PLT address. */
RELOC_NUMBER (R_390_COPY, 9) /* Copy symbol at runtime. */
RELOC_NUMBER (R_390_GLOB_DAT, 10) /* Create GOT entry. */
RELOC_NUMBER (R_390_JMP_SLOT, 11) /* Create PLT entry. */
RELOC_NUMBER (R_390_RELATIVE, 12) /* Adjust by program base. */
RELOC_NUMBER (R_390_GOTOFF32, 13) /* 32 bit offset to GOT. */
RELOC_NUMBER (R_390_GOTPC, 14) /* 32 bit PC relative offset to GOT. */
RELOC_NUMBER (R_390_GOT16, 15) /* 16 bit GOT offset. */
RELOC_NUMBER (R_390_PC16, 16) /* PC relative 16 bit. */
RELOC_NUMBER (R_390_PC12DBL, 62) /* PC relative 12 bit shifted by 1. */
RELOC_NUMBER (R_390_PLT12DBL, 63) /* 12 bit PC rel. PLT shifted by 1. */
RELOC_NUMBER (R_390_PC16DBL, 17) /* PC relative 16 bit shifted by 1. */
RELOC_NUMBER (R_390_PLT16DBL, 18) /* 16 bit PC rel. PLT shifted by 1. */
RELOC_NUMBER (R_390_PC24DBL, 64) /* PC relative 24 bit shifted by 1. */
RELOC_NUMBER (R_390_PLT24DBL, 65) /* 24 bit PC rel. PLT shifted by 1. */
RELOC_NUMBER (R_390_PC32DBL, 19) /* PC relative 32 bit shifted by 1. */
RELOC_NUMBER (R_390_PLT32DBL, 20) /* 32 bit PC rel. PLT shifted by 1. */
RELOC_NUMBER (R_390_GOTPCDBL, 21) /* 32 bit PC rel. GOT shifted by 1. */
RELOC_NUMBER (R_390_64, 22) /* Direct 64 bit. */
RELOC_NUMBER (R_390_PC64, 23) /* PC relative 64 bit. */
RELOC_NUMBER (R_390_GOT64, 24) /* 64 bit GOT offset. */
RELOC_NUMBER (R_390_PLT64, 25) /* 64 bit PC relative PLT address. */
RELOC_NUMBER (R_390_GOTENT, 26) /* 32 bit PC rel. to GOT entry >> 1. */
RELOC_NUMBER (R_390_GOTOFF16, 27) /* 16 bit offset to GOT. */
RELOC_NUMBER (R_390_GOTOFF64, 28) /* 64 bit offset to GOT. */
RELOC_NUMBER (R_390_GOTPLT12, 29) /* 12 bit offset to jump slot. */
RELOC_NUMBER (R_390_GOTPLT16, 30) /* 16 bit offset to jump slot. */
RELOC_NUMBER (R_390_GOTPLT32, 31) /* 32 bit offset to jump slot. */
RELOC_NUMBER (R_390_GOTPLT64, 32) /* 64 bit offset to jump slot. */
RELOC_NUMBER (R_390_GOTPLTENT, 33) /* 32 bit rel. offset to jump slot. */
RELOC_NUMBER (R_390_PLTOFF16, 34) /* 16 bit offset from GOT to PLT. */
RELOC_NUMBER (R_390_PLTOFF32, 35) /* 32 bit offset from GOT to PLT. */
RELOC_NUMBER (R_390_PLTOFF64, 36) /* 16 bit offset from GOT to PLT. */
RELOC_NUMBER (R_390_TLS_LOAD, 37) /* Tag for load insn in TLS code. */
RELOC_NUMBER (R_390_TLS_GDCALL, 38) /* Tag for function call in general
dynamic TLS code. */
RELOC_NUMBER (R_390_TLS_LDCALL, 39) /* Tag for function call in local
dynamic TLS code. */
RELOC_NUMBER (R_390_TLS_GD32, 40) /* Direct 32 bit for general dynamic
thread local data. */
RELOC_NUMBER (R_390_TLS_GD64, 41) /* Direct 64 bit for general dynamic
thread local data. */
RELOC_NUMBER (R_390_TLS_GOTIE12, 42)/* 12 bit GOT offset for static TLS
block offset. */
RELOC_NUMBER (R_390_TLS_GOTIE32, 43)/* 32 bit GOT offset for static TLS
block offset. */
RELOC_NUMBER (R_390_TLS_GOTIE64, 44)/* 64 bit GOT offset for static TLS
block offset. */
RELOC_NUMBER (R_390_TLS_LDM32, 45) /* Direct 32 bit for local dynamic
thread local data in LD code. */
RELOC_NUMBER (R_390_TLS_LDM64, 46) /* Direct 64 bit for local dynamic
thread local data in LD code. */
RELOC_NUMBER (R_390_TLS_IE32, 47) /* 32 bit address of GOT entry for
negated static TLS block offset. */
RELOC_NUMBER (R_390_TLS_IE64, 48) /* 64 bit address of GOT entry for
negated static TLS block offset. */
RELOC_NUMBER (R_390_TLS_IEENT, 49) /* 32 bit rel. offset to GOT entry for
negated static TLS block offset. */
RELOC_NUMBER (R_390_TLS_LE32, 50) /* 32 bit negated offset relative to
static TLS block. */
RELOC_NUMBER (R_390_TLS_LE64, 51) /* 64 bit negated offset relative to
static TLS block. */
RELOC_NUMBER (R_390_TLS_LDO32, 52) /* 32 bit offset relative to TLS
block. */
RELOC_NUMBER (R_390_TLS_LDO64, 53) /* 64 bit offset relative to TLS
block. */
RELOC_NUMBER (R_390_TLS_DTPMOD, 54) /* ID of module containing symbol. */
RELOC_NUMBER (R_390_TLS_DTPOFF, 55) /* Offset in TLS block. */
RELOC_NUMBER (R_390_TLS_TPOFF, 56) /* Negate offset in static TLS
block. */
RELOC_NUMBER (R_390_20, 57) /* Direct 20 bit. */
RELOC_NUMBER (R_390_GOT20, 58) /* 20 bit GOT offset. */
RELOC_NUMBER (R_390_GOTPLT20, 59) /* 20 bit offset to jump slot. */
RELOC_NUMBER (R_390_TLS_GOTIE20, 60)/* 20 bit GOT offset for statis TLS
block offset. */
RELOC_NUMBER (R_390_IRELATIVE, 61) /* IFUNC relocation. */
/* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_390_GNU_VTINHERIT, 250)
RELOC_NUMBER (R_390_GNU_VTENTRY, 251)
END_RELOC_NUMBERS (R_390_max)
 
#endif /* _ELF_390_H */
 
 
/contrib/toolchain/binutils/include/elf/score.h
0,0 → 1,130
/* Score ELF support for BFD.
Copyright 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
Contributed by
Brain.lin (brain.lin@sunplusct.com)
Mei Ligang (ligang@sunnorth.com.cn)
Pei-Lin Tsai (pltsai@sunplus.com)
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_SCORE_H
#define _ELF_SCORE_H
 
#include "elf/reloc-macros.h"
 
#define SCORE_SIMULATOR_ACTIVE 1
#define OPC_PTMASK 0xc0000000 /* Parity-bit Mask. */
#define OPC16_PTMASK 0x00008000
/* The parity-bit denotes. */
#define OPC_32 0xc0000000 /* Denotes 32b instruction, (default). */
#define OPC_16 0x00000000 /* Denotes 16b instruction. */
#define OPC_PE 0x8000 /* Denotes parallel-execution instructions. */
#define GP_DISP_LABEL "_gp_disp"
 
/* Processor specific flags for the ELF header e_flags field: */
#define EF_SCORE_MACH 0xffff0000
#define EF_OMIT_PIC_FIXDD 0x0fff0000
#define E_SCORE_MACH_SCORE3 0x00030000
#define E_SCORE_MACH_SCORE7 0x00070000
 
/* File contains position independent code. */
#define EF_SCORE_PIC 0x80000000
 
/* Fix data dependency. */
#define EF_SCORE_FIXDEP 0x40000000
 
/* Defined and allocated common symbol. Value is virtual address. If
relocated, alignment must be preserved. */
#define SHN_SCORE_TEXT (SHN_LORESERVE + 1)
#define SHN_SCORE_DATA (SHN_LORESERVE + 2)
/* Small common symbol. */
#define SHN_SCORE_SCOMMON (SHN_LORESERVE + 3)
 
/* Processor specific section flags. */
 
/* This section must be in the global data area. */
#define SHF_SCORE_GPREL 0x10000000
 
/* This section should be merged. */
#define SHF_SCORE_MERGE 0x20000000
 
/* This section contains address data of size implied by section
element size. */
#define SHF_SCORE_ADDR 0x40000000
 
/* This section contains string data. */
#define SHF_SCORE_STRING 0x80000000
 
/* This section may not be stripped. */
#define SHF_SCORE_NOSTRIP 0x08000000
 
/* This section is local to threads. */
#define SHF_SCORE_LOCAL 0x04000000
 
/* Linker should generate implicit weak names for this section. */
#define SHF_SCORE_NAMES 0x02000000
 
/* Section contais text/data which may be replicated in other sections.
Linker should retain only one copy. */
#define SHF_SCORE_NODUPES 0x01000000
 
/* Processor specific dynamic array tags. */
 
/* Base address of the segment. */
#define DT_SCORE_BASE_ADDRESS 0x70000001
/* Number of local global offset table entries. */
#define DT_SCORE_LOCAL_GOTNO 0x70000002
/* Number of entries in the .dynsym section. */
#define DT_SCORE_SYMTABNO 0x70000003
/* Index of first dynamic symbol in global offset table. */
#define DT_SCORE_GOTSYM 0x70000004
/* Index of first external dynamic symbol not referenced locally. */
#define DT_SCORE_UNREFEXTNO 0x70000005
/* Number of page table entries in global offset table. */
#define DT_SCORE_HIPAGENO 0x70000006
 
 
/* Processor specific section types. */
 
 
/* Relocation types. */
START_RELOC_NUMBERS (elf_score_reloc_type)
RELOC_NUMBER (R_SCORE_NONE, 0)
RELOC_NUMBER (R_SCORE_HI16, 1)
RELOC_NUMBER (R_SCORE_LO16, 2)
RELOC_NUMBER (R_SCORE_BCMP, 3)
RELOC_NUMBER (R_SCORE_24, 4)
RELOC_NUMBER (R_SCORE_PC19, 5)
RELOC_NUMBER (R_SCORE16_11, 6)
RELOC_NUMBER (R_SCORE16_PC8, 7)
RELOC_NUMBER (R_SCORE_ABS32, 8)
RELOC_NUMBER (R_SCORE_ABS16, 9)
RELOC_NUMBER (R_SCORE_DUMMY2, 10)
RELOC_NUMBER (R_SCORE_GP15, 11)
RELOC_NUMBER (R_SCORE_GNU_VTINHERIT, 12)
RELOC_NUMBER (R_SCORE_GNU_VTENTRY, 13)
RELOC_NUMBER (R_SCORE_GOT15, 14)
RELOC_NUMBER (R_SCORE_GOT_LO16, 15)
RELOC_NUMBER (R_SCORE_CALL15, 16)
RELOC_NUMBER (R_SCORE_GPREL32, 17)
RELOC_NUMBER (R_SCORE_REL32, 18)
RELOC_NUMBER (R_SCORE_DUMMY_HI16, 19)
RELOC_NUMBER (R_SCORE_IMM30, 20)
RELOC_NUMBER (R_SCORE_IMM32, 21)
END_RELOC_NUMBERS (R_SCORE_max)
 
#endif /* _ELF_SCORE_H */
/contrib/toolchain/binutils/include/elf/sh.h
0,0 → 1,250
/* SH ELF support for BFD.
Copyright 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2010
Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_SH_H
#define _ELF_SH_H
 
/* Processor specific flags for the ELF header e_flags field. */
 
#define EF_SH_MACH_MASK 0x1f
#define EF_SH_UNKNOWN 0 /* For backwards compatibility. */
#define EF_SH1 1
#define EF_SH2 2
#define EF_SH3 3
#define EF_SH_DSP 4
#define EF_SH3_DSP 5
#define EF_SH4AL_DSP 6
#define EF_SH3E 8
#define EF_SH4 9
#define EF_SH2E 11
#define EF_SH4A 12
#define EF_SH2A 13
 
#define EF_SH4_NOFPU 16
#define EF_SH4A_NOFPU 17
#define EF_SH4_NOMMU_NOFPU 18
#define EF_SH2A_NOFPU 19
#define EF_SH3_NOMMU 20
 
#define EF_SH2A_SH4_NOFPU 21
#define EF_SH2A_SH3_NOFPU 22
#define EF_SH2A_SH4 23
#define EF_SH2A_SH3E 24
 
/* This one can only mix in objects from other EF_SH5 objects. */
#define EF_SH5 10
 
/* Define the mapping from ELF to bfd mach numbers.
bfd_mach_* are defined in bfd_in2.h (generated from
archures.c). */
#define EF_SH_BFD_TABLE \
/* EF_SH_UNKNOWN */ bfd_mach_sh , \
/* EF_SH1 */ bfd_mach_sh , \
/* EF_SH2 */ bfd_mach_sh2 , \
/* EF_SH3 */ bfd_mach_sh3 , \
/* EF_SH_DSP */ bfd_mach_sh_dsp , \
/* EF_SH3_DSP */ bfd_mach_sh3_dsp , \
/* EF_SHAL_DSP */ bfd_mach_sh4al_dsp , \
/* 7 */ 0, \
/* EF_SH3E */ bfd_mach_sh3e , \
/* EF_SH4 */ bfd_mach_sh4 , \
/* EF_SH5 */ 0, \
/* EF_SH2E */ bfd_mach_sh2e , \
/* EF_SH4A */ bfd_mach_sh4a , \
/* EF_SH2A */ bfd_mach_sh2a , \
/* 14, 15 */ 0, 0, \
/* EF_SH4_NOFPU */ bfd_mach_sh4_nofpu , \
/* EF_SH4A_NOFPU */ bfd_mach_sh4a_nofpu , \
/* EF_SH4_NOMMU_NOFPU */ bfd_mach_sh4_nommu_nofpu, \
/* EF_SH2A_NOFPU */ bfd_mach_sh2a_nofpu , \
/* EF_SH3_NOMMU */ bfd_mach_sh3_nommu , \
/* EF_SH2A_SH4_NOFPU */ bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu, \
/* EF_SH2A_SH3_NOFPU */ bfd_mach_sh2a_nofpu_or_sh3_nommu, \
/* EF_SH2A_SH4 */ bfd_mach_sh2a_or_sh4 , \
/* EF_SH2A_SH3E */ bfd_mach_sh2a_or_sh3e
 
/* Convert arch_sh* into EF_SH*. */
int sh_find_elf_flags (unsigned int arch_set);
 
/* Convert bfd_mach_* into EF_SH*. */
int sh_elf_get_flags_from_mach (unsigned long mach);
 
/* Other e_flags bits. */
 
#define EF_SH_PIC 0x100 /* Segments of an FDPIC binary may
be relocated independently. */
#define EF_SH_FDPIC 0x8000 /* Uses the FDPIC ABI. */
 
/* Flags for the st_other symbol field.
Keep away from the STV_ visibility flags (bit 0..1). */
 
/* A reference to this symbol should by default add 1. */
#define STO_SH5_ISA32 (1 << 2)
 
/* Section contains only SHmedia code (no SHcompact code). */
#define SHF_SH5_ISA32 0x40000000
 
/* Section contains both SHmedia and SHcompact code, and possibly also
constants. */
#define SHF_SH5_ISA32_MIXED 0x20000000
 
/* If applied to a .cranges section, marks that the section is sorted by
increasing cr_addr values. */
#define SHT_SH5_CR_SORTED 0x80000001
 
/* Symbol should be handled as DataLabel (attached to global SHN_UNDEF
symbols). */
#define STT_DATALABEL STT_LOPROC
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
/* Relocations 10-32 and 128-255 are GNU extensions.
25..32 and 10 are used for relaxation. */
START_RELOC_NUMBERS (elf_sh_reloc_type)
RELOC_NUMBER (R_SH_NONE, 0)
RELOC_NUMBER (R_SH_DIR32, 1)
RELOC_NUMBER (R_SH_REL32, 2)
RELOC_NUMBER (R_SH_DIR8WPN, 3)
RELOC_NUMBER (R_SH_IND12W, 4)
RELOC_NUMBER (R_SH_DIR8WPL, 5)
RELOC_NUMBER (R_SH_DIR8WPZ, 6)
RELOC_NUMBER (R_SH_DIR8BP, 7)
RELOC_NUMBER (R_SH_DIR8W, 8)
RELOC_NUMBER (R_SH_DIR8L, 9)
 
RELOC_NUMBER (R_SH_LOOP_START, 10)
RELOC_NUMBER (R_SH_LOOP_END, 11)
 
FAKE_RELOC (R_SH_FIRST_INVALID_RELOC, 12)
FAKE_RELOC (R_SH_LAST_INVALID_RELOC, 21)
 
RELOC_NUMBER (R_SH_GNU_VTINHERIT, 22)
RELOC_NUMBER (R_SH_GNU_VTENTRY, 23)
RELOC_NUMBER (R_SH_SWITCH8, 24)
RELOC_NUMBER (R_SH_SWITCH16, 25)
RELOC_NUMBER (R_SH_SWITCH32, 26)
RELOC_NUMBER (R_SH_USES, 27)
RELOC_NUMBER (R_SH_COUNT, 28)
RELOC_NUMBER (R_SH_ALIGN, 29)
RELOC_NUMBER (R_SH_CODE, 30)
RELOC_NUMBER (R_SH_DATA, 31)
RELOC_NUMBER (R_SH_LABEL, 32)
 
RELOC_NUMBER (R_SH_DIR16, 33)
RELOC_NUMBER (R_SH_DIR8, 34)
RELOC_NUMBER (R_SH_DIR8UL, 35)
RELOC_NUMBER (R_SH_DIR8UW, 36)
RELOC_NUMBER (R_SH_DIR8U, 37)
RELOC_NUMBER (R_SH_DIR8SW, 38)
RELOC_NUMBER (R_SH_DIR8S, 39)
RELOC_NUMBER (R_SH_DIR4UL, 40)
RELOC_NUMBER (R_SH_DIR4UW, 41)
RELOC_NUMBER (R_SH_DIR4U, 42)
RELOC_NUMBER (R_SH_PSHA, 43)
RELOC_NUMBER (R_SH_PSHL, 44)
RELOC_NUMBER (R_SH_DIR5U, 45)
RELOC_NUMBER (R_SH_DIR6U, 46)
RELOC_NUMBER (R_SH_DIR6S, 47)
RELOC_NUMBER (R_SH_DIR10S, 48)
RELOC_NUMBER (R_SH_DIR10SW, 49)
RELOC_NUMBER (R_SH_DIR10SL, 50)
RELOC_NUMBER (R_SH_DIR10SQ, 51)
FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_2, 52)
FAKE_RELOC (R_SH_LAST_INVALID_RELOC_2, 52)
RELOC_NUMBER (R_SH_DIR16S, 53)
FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_3, 54)
FAKE_RELOC (R_SH_LAST_INVALID_RELOC_3, 143)
RELOC_NUMBER (R_SH_TLS_GD_32, 144)
RELOC_NUMBER (R_SH_TLS_LD_32, 145)
RELOC_NUMBER (R_SH_TLS_LDO_32, 146)
RELOC_NUMBER (R_SH_TLS_IE_32, 147)
RELOC_NUMBER (R_SH_TLS_LE_32, 148)
RELOC_NUMBER (R_SH_TLS_DTPMOD32, 149)
RELOC_NUMBER (R_SH_TLS_DTPOFF32, 150)
RELOC_NUMBER (R_SH_TLS_TPOFF32, 151)
FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_4, 152)
FAKE_RELOC (R_SH_LAST_INVALID_RELOC_4, 159)
RELOC_NUMBER (R_SH_GOT32, 160)
RELOC_NUMBER (R_SH_PLT32, 161)
RELOC_NUMBER (R_SH_COPY, 162)
RELOC_NUMBER (R_SH_GLOB_DAT, 163)
RELOC_NUMBER (R_SH_JMP_SLOT, 164)
RELOC_NUMBER (R_SH_RELATIVE, 165)
RELOC_NUMBER (R_SH_GOTOFF, 166)
RELOC_NUMBER (R_SH_GOTPC, 167)
RELOC_NUMBER (R_SH_GOTPLT32, 168)
RELOC_NUMBER (R_SH_GOT_LOW16, 169)
RELOC_NUMBER (R_SH_GOT_MEDLOW16, 170)
RELOC_NUMBER (R_SH_GOT_MEDHI16, 171)
RELOC_NUMBER (R_SH_GOT_HI16, 172)
RELOC_NUMBER (R_SH_GOTPLT_LOW16, 173)
RELOC_NUMBER (R_SH_GOTPLT_MEDLOW16, 174)
RELOC_NUMBER (R_SH_GOTPLT_MEDHI16, 175)
RELOC_NUMBER (R_SH_GOTPLT_HI16, 176)
RELOC_NUMBER (R_SH_PLT_LOW16, 177)
RELOC_NUMBER (R_SH_PLT_MEDLOW16, 178)
RELOC_NUMBER (R_SH_PLT_MEDHI16, 179)
RELOC_NUMBER (R_SH_PLT_HI16, 180)
RELOC_NUMBER (R_SH_GOTOFF_LOW16, 181)
RELOC_NUMBER (R_SH_GOTOFF_MEDLOW16, 182)
RELOC_NUMBER (R_SH_GOTOFF_MEDHI16, 183)
RELOC_NUMBER (R_SH_GOTOFF_HI16, 184)
RELOC_NUMBER (R_SH_GOTPC_LOW16, 185)
RELOC_NUMBER (R_SH_GOTPC_MEDLOW16, 186)
RELOC_NUMBER (R_SH_GOTPC_MEDHI16, 187)
RELOC_NUMBER (R_SH_GOTPC_HI16, 188)
RELOC_NUMBER (R_SH_GOT10BY4, 189)
RELOC_NUMBER (R_SH_GOTPLT10BY4, 190)
RELOC_NUMBER (R_SH_GOT10BY8, 191)
RELOC_NUMBER (R_SH_GOTPLT10BY8, 192)
RELOC_NUMBER (R_SH_COPY64, 193)
RELOC_NUMBER (R_SH_GLOB_DAT64, 194)
RELOC_NUMBER (R_SH_JMP_SLOT64, 195)
RELOC_NUMBER (R_SH_RELATIVE64, 196)
FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_5, 197)
FAKE_RELOC (R_SH_LAST_INVALID_RELOC_5, 200)
RELOC_NUMBER (R_SH_GOT20, 201)
RELOC_NUMBER (R_SH_GOTOFF20, 202)
RELOC_NUMBER (R_SH_GOTFUNCDESC, 203)
RELOC_NUMBER (R_SH_GOTFUNCDESC20, 204)
RELOC_NUMBER (R_SH_GOTOFFFUNCDESC, 205)
RELOC_NUMBER (R_SH_GOTOFFFUNCDESC20, 206)
RELOC_NUMBER (R_SH_FUNCDESC, 207)
RELOC_NUMBER (R_SH_FUNCDESC_VALUE, 208)
FAKE_RELOC (R_SH_FIRST_INVALID_RELOC_6, 209)
FAKE_RELOC (R_SH_LAST_INVALID_RELOC_6, 241)
RELOC_NUMBER (R_SH_SHMEDIA_CODE, 242)
RELOC_NUMBER (R_SH_PT_16, 243)
RELOC_NUMBER (R_SH_IMMS16, 244)
RELOC_NUMBER (R_SH_IMMU16, 245)
RELOC_NUMBER (R_SH_IMM_LOW16, 246)
RELOC_NUMBER (R_SH_IMM_LOW16_PCREL, 247)
RELOC_NUMBER (R_SH_IMM_MEDLOW16, 248)
RELOC_NUMBER (R_SH_IMM_MEDLOW16_PCREL, 249)
RELOC_NUMBER (R_SH_IMM_MEDHI16, 250)
RELOC_NUMBER (R_SH_IMM_MEDHI16_PCREL, 251)
RELOC_NUMBER (R_SH_IMM_HI16, 252)
RELOC_NUMBER (R_SH_IMM_HI16_PCREL, 253)
RELOC_NUMBER (R_SH_64, 254)
RELOC_NUMBER (R_SH_64_PCREL, 255)
END_RELOC_NUMBERS (R_SH_max)
 
#endif
/contrib/toolchain/binutils/include/elf/sparc.h
0,0 → 1,231
/* SPARC ELF support for BFD.
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2008, 2010,
2011
Free Software Foundation, Inc.
By Doug Evans, Cygnus Support, <dje@cygnus.com>.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
#ifndef _ELF_SPARC_H
#define _ELF_SPARC_H
 
/* Processor specific flags for the ELF header e_flags field. */
 
/* These are defined by Sun. */
 
#define EF_SPARC_32PLUS_MASK 0xffff00 /* bits indicating V8+ type */
#define EF_SPARC_32PLUS 0x000100 /* generic V8+ features */
#define EF_SPARC_SUN_US1 0x000200 /* Sun UltraSPARC1 extensions */
#define EF_SPARC_HAL_R1 0x000400 /* HAL R1 extensions */
#define EF_SPARC_SUN_US3 0x000800 /* Sun UltraSPARCIII extensions */
 
#define EF_SPARC_LEDATA 0x800000 /* little endian data */
 
/* This name is used in the V9 ABI. */
#define EF_SPARC_EXT_MASK 0xffff00 /* reserved for vendor extensions */
 
/* V9 memory models */
#define EF_SPARCV9_MM 0x3 /* memory model mask */
#define EF_SPARCV9_TSO 0x0 /* total store ordering */
#define EF_SPARCV9_PSO 0x1 /* partial store ordering */
#define EF_SPARCV9_RMO 0x2 /* relaxed store ordering */
 
/* Section indices. */
 
#define SHN_BEFORE SHN_LORESERVE /* Used with SHF_ORDERED and... */
#define SHN_AFTER (SHN_LORESERVE + 1) /* SHF_LINK_ORDER section flags. */
 
/* Section flags. */
 
#define SHF_ORDERED 0x40000000 /* treat sh_link,sh_info specially */
 
/* Symbol types. */
 
#define STT_REGISTER 13 /* global reg reserved to app. */
 
#include "elf/reloc-macros.h"
 
/* Relocation types. */
START_RELOC_NUMBERS (elf_sparc_reloc_type)
RELOC_NUMBER (R_SPARC_NONE, 0)
RELOC_NUMBER (R_SPARC_8, 1)
RELOC_NUMBER (R_SPARC_16, 2)
RELOC_NUMBER (R_SPARC_32, 3)
RELOC_NUMBER (R_SPARC_DISP8, 4)
RELOC_NUMBER (R_SPARC_DISP16, 5)
RELOC_NUMBER (R_SPARC_DISP32, 6)
RELOC_NUMBER (R_SPARC_WDISP30, 7)
RELOC_NUMBER (R_SPARC_WDISP22, 8)
RELOC_NUMBER (R_SPARC_HI22, 9)
RELOC_NUMBER (R_SPARC_22, 10)
RELOC_NUMBER (R_SPARC_13, 11)
RELOC_NUMBER (R_SPARC_LO10, 12)
RELOC_NUMBER (R_SPARC_GOT10, 13)
RELOC_NUMBER (R_SPARC_GOT13, 14)
RELOC_NUMBER (R_SPARC_GOT22, 15)
RELOC_NUMBER (R_SPARC_PC10, 16)
RELOC_NUMBER (R_SPARC_PC22, 17)
RELOC_NUMBER (R_SPARC_WPLT30, 18)
RELOC_NUMBER (R_SPARC_COPY, 19)
RELOC_NUMBER (R_SPARC_GLOB_DAT, 20)
RELOC_NUMBER (R_SPARC_JMP_SLOT, 21)
RELOC_NUMBER (R_SPARC_RELATIVE, 22)
RELOC_NUMBER (R_SPARC_UA32, 23)
 
/* ??? These 6 relocs are new but not currently used. For binary
compatibility in the sparc64-elf toolchain, we leave them out.
A non-binary upward compatible change is expected for sparc64-elf. */
#ifndef SPARC64_OLD_RELOCS
/* ??? New relocs on the UltraSPARC. Not sure what they're for yet. */
RELOC_NUMBER (R_SPARC_PLT32, 24)
RELOC_NUMBER (R_SPARC_HIPLT22, 25)
RELOC_NUMBER (R_SPARC_LOPLT10, 26)
RELOC_NUMBER (R_SPARC_PCPLT32, 27)
RELOC_NUMBER (R_SPARC_PCPLT22, 28)
RELOC_NUMBER (R_SPARC_PCPLT10, 29)
#endif
 
/* v9 relocs */
RELOC_NUMBER (R_SPARC_10, 30)
RELOC_NUMBER (R_SPARC_11, 31)
RELOC_NUMBER (R_SPARC_64, 32)
RELOC_NUMBER (R_SPARC_OLO10, 33)
RELOC_NUMBER (R_SPARC_HH22, 34)
RELOC_NUMBER (R_SPARC_HM10, 35)
RELOC_NUMBER (R_SPARC_LM22, 36)
RELOC_NUMBER (R_SPARC_PC_HH22, 37)
RELOC_NUMBER (R_SPARC_PC_HM10, 38)
RELOC_NUMBER (R_SPARC_PC_LM22, 39)
RELOC_NUMBER (R_SPARC_WDISP16, 40)
RELOC_NUMBER (R_SPARC_WDISP19, 41)
RELOC_NUMBER (R_SPARC_UNUSED_42, 42)
RELOC_NUMBER (R_SPARC_7, 43)
RELOC_NUMBER (R_SPARC_5, 44)
RELOC_NUMBER (R_SPARC_6, 45)
RELOC_NUMBER (R_SPARC_DISP64, 46)
RELOC_NUMBER (R_SPARC_PLT64, 47)
RELOC_NUMBER (R_SPARC_HIX22, 48)
RELOC_NUMBER (R_SPARC_LOX10, 49)
RELOC_NUMBER (R_SPARC_H44, 50)
RELOC_NUMBER (R_SPARC_M44, 51)
RELOC_NUMBER (R_SPARC_L44, 52)
RELOC_NUMBER (R_SPARC_REGISTER, 53)
RELOC_NUMBER (R_SPARC_UA64, 54)
RELOC_NUMBER (R_SPARC_UA16, 55)
 
RELOC_NUMBER (R_SPARC_TLS_GD_HI22, 56)
RELOC_NUMBER (R_SPARC_TLS_GD_LO10, 57)
RELOC_NUMBER (R_SPARC_TLS_GD_ADD, 58)
RELOC_NUMBER (R_SPARC_TLS_GD_CALL, 59)
RELOC_NUMBER (R_SPARC_TLS_LDM_HI22, 60)
RELOC_NUMBER (R_SPARC_TLS_LDM_LO10, 61)
RELOC_NUMBER (R_SPARC_TLS_LDM_ADD, 62)
RELOC_NUMBER (R_SPARC_TLS_LDM_CALL, 63)
RELOC_NUMBER (R_SPARC_TLS_LDO_HIX22, 64)
RELOC_NUMBER (R_SPARC_TLS_LDO_LOX10, 65)
RELOC_NUMBER (R_SPARC_TLS_LDO_ADD, 66)
RELOC_NUMBER (R_SPARC_TLS_IE_HI22, 67)
RELOC_NUMBER (R_SPARC_TLS_IE_LO10, 68)
RELOC_NUMBER (R_SPARC_TLS_IE_LD, 69)
RELOC_NUMBER (R_SPARC_TLS_IE_LDX, 70)
RELOC_NUMBER (R_SPARC_TLS_IE_ADD, 71)
RELOC_NUMBER (R_SPARC_TLS_LE_HIX22, 72)
RELOC_NUMBER (R_SPARC_TLS_LE_LOX10, 73)
RELOC_NUMBER (R_SPARC_TLS_DTPMOD32, 74)
RELOC_NUMBER (R_SPARC_TLS_DTPMOD64, 75)
RELOC_NUMBER (R_SPARC_TLS_DTPOFF32, 76)
RELOC_NUMBER (R_SPARC_TLS_DTPOFF64, 77)
RELOC_NUMBER (R_SPARC_TLS_TPOFF32, 78)
RELOC_NUMBER (R_SPARC_TLS_TPOFF64, 79)
 
RELOC_NUMBER (R_SPARC_GOTDATA_HIX22, 80)
RELOC_NUMBER (R_SPARC_GOTDATA_LOX10, 81)
RELOC_NUMBER (R_SPARC_GOTDATA_OP_HIX22, 82)
RELOC_NUMBER (R_SPARC_GOTDATA_OP_LOX10, 83)
RELOC_NUMBER (R_SPARC_GOTDATA_OP, 84)
 
RELOC_NUMBER (R_SPARC_H34, 85)
RELOC_NUMBER (R_SPARC_SIZE32, 86)
RELOC_NUMBER (R_SPARC_SIZE64, 87)
RELOC_NUMBER (R_SPARC_WDISP10, 88)
EMPTY_RELOC (R_SPARC_max_std)
 
RELOC_NUMBER (R_SPARC_JMP_IREL, 248)
RELOC_NUMBER (R_SPARC_IRELATIVE, 249)
RELOC_NUMBER (R_SPARC_GNU_VTINHERIT, 250)
RELOC_NUMBER (R_SPARC_GNU_VTENTRY, 251)
RELOC_NUMBER (R_SPARC_REV32, 252)
 
END_RELOC_NUMBERS (R_SPARC_max)
 
/* Relocation macros. */
 
#define ELF64_R_TYPE_DATA(info) \
(((bfd_signed_vma)(ELF64_R_TYPE(info) >> 8) ^ 0x800000) - 0x800000)
#define ELF64_R_TYPE_ID(info) \
((info) & 0xff)
#define ELF64_R_TYPE_INFO(data, type) \
(((bfd_vma) ((data) & 0xffffff) << 8) | (bfd_vma) (type))
 
/* Values for Elf64_Dyn.d_tag. */
 
#define DT_SPARC_REGISTER 0x70000001
 
/* Object attribute tags. */
enum
{
/* 0-3 are generic. */
Tag_GNU_Sparc_HWCAPS = 4,
};
 
/* These values match the AV_SPARC_* hwcap bits defined under Solaris. */
#define ELF_SPARC_HWCAP_MUL32 0x00000001 /* umul/umulcc/smul/smulcc insns */
#define ELF_SPARC_HWCAP_DIV32 0x00000002 /* udiv/udivcc/sdiv/sdivcc insns */
#define ELF_SPARC_HWCAP_FSMULD 0x00000004 /* 'fsmuld' insn */
#define ELF_SPARC_HWCAP_V8PLUS 0x00000008 /* v9 insns available to 32bit */
#define ELF_SPARC_HWCAP_POPC 0x00000010 /* 'popc' insn */
#define ELF_SPARC_HWCAP_VIS 0x00000020 /* VIS insns */
#define ELF_SPARC_HWCAP_VIS2 0x00000040 /* VIS2 insns */
#define ELF_SPARC_HWCAP_ASI_BLK_INIT \
0x00000080 /* block init ASIs */
#define ELF_SPARC_HWCAP_FMAF 0x00000100 /* fused multiply-add */
#define ELF_SPARC_HWCAP_VIS3 0x00000400 /* VIS3 insns */
#define ELF_SPARC_HWCAP_HPC 0x00000800 /* HPC insns */
#define ELF_SPARC_HWCAP_RANDOM 0x00001000 /* 'random' insn */
#define ELF_SPARC_HWCAP_TRANS 0x00002000 /* transaction insns */
#define ELF_SPARC_HWCAP_FJFMAU 0x00004000 /* unfused multiply-add */
#define ELF_SPARC_HWCAP_IMA 0x00008000 /* integer multiply-add */
#define ELF_SPARC_HWCAP_ASI_CACHE_SPARING \
0x00010000 /* cache sparing ASIs */
#define ELF_SPARC_HWCAP_AES 0x00020000 /* AES crypto insns */
#define ELF_SPARC_HWCAP_DES 0x00040000 /* DES crypto insns */
#define ELF_SPARC_HWCAP_KASUMI 0x00080000 /* KASUMI crypto insns */
#define ELF_SPARC_HWCAP_CAMELLIA \
0x00100000 /* CAMELLIA crypto insns */
#define ELF_SPARC_HWCAP_MD5 0x00200000 /* MD5 hashing insns */
#define ELF_SPARC_HWCAP_SHA1 0x00400000 /* SHA1 hashing insns */
#define ELF_SPARC_HWCAP_SHA256 0x00800000 /* SHA256 hashing insns */
#define ELF_SPARC_HWCAP_SHA512 0x01000000 /* SHA512 hashing insns */
#define ELF_SPARC_HWCAP_MPMUL 0x02000000 /* Multiple Precision Multiply */
#define ELF_SPARC_HWCAP_MONT 0x04000000 /* Montgomery Mult/Sqrt */
#define ELF_SPARC_HWCAP_PAUSE 0x08000000 /* Pause insn */
#define ELF_SPARC_HWCAP_CBCOND 0x10000000 /* Compare and Branch insns */
#define ELF_SPARC_HWCAP_CRC32C 0x20000000 /* CRC32C insn */
 
#endif /* _ELF_SPARC_H */
/contrib/toolchain/binutils/include/elf/spu.h
0,0 → 1,61
/* SPU ELF support for BFD.
 
Copyright 2006, 2007, 2009, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_SPU_H
#define _ELF_SPU_H
 
#include "elf/reloc-macros.h"
 
/* elf32-spu.c depends on these being consecutive. */
START_RELOC_NUMBERS (elf_spu_reloc_type)
RELOC_NUMBER (R_SPU_NONE, 0)
RELOC_NUMBER (R_SPU_ADDR10, 1)
RELOC_NUMBER (R_SPU_ADDR16, 2)
RELOC_NUMBER (R_SPU_ADDR16_HI, 3)
RELOC_NUMBER (R_SPU_ADDR16_LO, 4)
RELOC_NUMBER (R_SPU_ADDR18, 5)
RELOC_NUMBER (R_SPU_ADDR32, 6)
RELOC_NUMBER (R_SPU_REL16, 7)
RELOC_NUMBER (R_SPU_ADDR7, 8)
RELOC_NUMBER (R_SPU_REL9, 9)
RELOC_NUMBER (R_SPU_REL9I, 10)
RELOC_NUMBER (R_SPU_ADDR10I, 11)
RELOC_NUMBER (R_SPU_ADDR16I, 12)
RELOC_NUMBER (R_SPU_REL32, 13)
RELOC_NUMBER (R_SPU_ADDR16X, 14)
RELOC_NUMBER (R_SPU_PPU32, 15)
RELOC_NUMBER (R_SPU_PPU64, 16)
RELOC_NUMBER (R_SPU_ADD_PIC, 17)
END_RELOC_NUMBERS (R_SPU_max)
 
/* Program header extensions */
 
/* Mark a PT_LOAD segment as containing an overlay which should not
initially be loaded. */
#define PF_OVERLAY (1 << 27)
 
/* SPU Dynamic Object Information. */
#define PT_SPU_INFO 0x70000000
 
/* SPU plugin information */
#define SPU_PLUGIN_NAME "SPUNAME"
#define SPU_PTNOTE_SPUNAME ".note.spu_name"
 
#endif /* _ELF_SPU_H */
/contrib/toolchain/binutils/include/elf/tic6x-attrs.h
0,0 → 1,35
/* TI C6X ELF attributes.
Copyright 2010
Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
/* Define the TAG macro before including this file; it takes a tag
name and value. */
 
TAG(Tag_ISA, 4)
TAG(Tag_ABI_wchar_t, 6)
TAG(Tag_ABI_stack_align_needed, 8)
TAG(Tag_ABI_stack_align_preserved, 10)
TAG(Tag_ABI_DSBT, 12)
TAG(Tag_ABI_PID, 14)
TAG(Tag_ABI_PIC, 16)
TAG(Tag_ABI_array_object_alignment, 18)
TAG(Tag_ABI_array_object_align_expected, 20)
TAG(Tag_ABI_compatibility, 32)
TAG(Tag_ABI_conformance, 67)
/contrib/toolchain/binutils/include/elf/tic6x.h
0,0 → 1,167
/* TI C6X ELF support for BFD.
Copyright 2010, 2011
Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
#ifndef _ELF_TIC6X_H
#define _ELF_TIC6X_H
 
#include "elf/reloc-macros.h"
 
/* Relocation types. */
START_RELOC_NUMBERS (elf_tic6x_reloc_type)
RELOC_NUMBER (R_C6000_NONE, 0)
RELOC_NUMBER (R_C6000_ABS32, 1)
RELOC_NUMBER (R_C6000_ABS16, 2)
RELOC_NUMBER (R_C6000_ABS8, 3)
RELOC_NUMBER (R_C6000_PCR_S21, 4)
RELOC_NUMBER (R_C6000_PCR_S12, 5)
RELOC_NUMBER (R_C6000_PCR_S10, 6)
RELOC_NUMBER (R_C6000_PCR_S7, 7)
RELOC_NUMBER (R_C6000_ABS_S16, 8)
RELOC_NUMBER (R_C6000_ABS_L16, 9)
RELOC_NUMBER (R_C6000_ABS_H16, 10)
RELOC_NUMBER (R_C6000_SBR_U15_B, 11)
RELOC_NUMBER (R_C6000_SBR_U15_H, 12)
RELOC_NUMBER (R_C6000_SBR_U15_W, 13)
RELOC_NUMBER (R_C6000_SBR_S16, 14)
RELOC_NUMBER (R_C6000_SBR_L16_B, 15)
RELOC_NUMBER (R_C6000_SBR_L16_H, 16)
RELOC_NUMBER (R_C6000_SBR_L16_W, 17)
RELOC_NUMBER (R_C6000_SBR_H16_B, 18)
RELOC_NUMBER (R_C6000_SBR_H16_H, 19)
RELOC_NUMBER (R_C6000_SBR_H16_W, 20)
RELOC_NUMBER (R_C6000_SBR_GOT_U15_W, 21)
RELOC_NUMBER (R_C6000_SBR_GOT_L16_W, 22)
RELOC_NUMBER (R_C6000_SBR_GOT_H16_W, 23)
RELOC_NUMBER (R_C6000_DSBT_INDEX, 24)
RELOC_NUMBER (R_C6000_PREL31, 25)
RELOC_NUMBER (R_C6000_COPY, 26)
RELOC_NUMBER (R_C6000_JUMP_SLOT, 27)
RELOC_NUMBER (R_C6000_EHTYPE, 28)
RELOC_NUMBER (R_C6000_PCR_H16, 29)
RELOC_NUMBER (R_C6000_PCR_L16, 30)
RELOC_NUMBER (R_C6000_ALIGN, 253)
RELOC_NUMBER (R_C6000_FPHEAD, 254)
RELOC_NUMBER (R_C6000_NOCMP, 255)
END_RELOC_NUMBERS (R_TIC6X_max)
 
/* Processor-specific flags. */
 
/* File contains static relocation information. */
#define EF_C6000_REL 0x1
 
/* Processor-specific section types. */
 
/* Unwind function table for stack unwinding. */
#define SHT_C6000_UNWIND 0x70000001
 
/* DLL dynamic linking pre-emption map. */
#define SHT_C6000_PREEMPTMAP 0x70000002
 
/* Object file compatibility attributes. */
#define SHT_C6000_ATTRIBUTES 0x70000003
 
/* Intermediate code for link-time optimization. */
#define SHT_TI_ICODE 0x7F000000
 
/* Symbolic cross reference information. */
#define SHT_TI_XREF 0x7F000001
 
/* Reserved. */
#define SHT_TI_HANDLER 0x7F000002
 
/* Compressed data for initializing C variables. */
#define SHT_TI_INITINFO 0x7F000003
 
/* Extended program header attributes. */
#define SHT_TI_PHATTRS 0x7F000004
 
/* Processor specific section indices. These sections do not actually
exist. Symbols with a st_shndx field corresponding to one of these
values have a special meaning. */
 
/* Small data area common symbol. */
#define SHN_TIC6X_SCOMMON SHN_LORESERVE
 
/* Processor-specific segment types. */
 
/* Extended Segment Attributes. */
#define PT_C6000_PHATTR 0x70000000
 
/* Processor-specific dynamic tags. */
 
/* Undocumented. */
#define DT_C6000_GSYM_OFFSET 0x6000000D
 
/* Undocumented. */
#define DT_C6000_GSTR_OFFSET 0x6000000F
 
/* Statically linked base address of data segment. */
#define DT_C6000_DSBT_BASE 0x70000000
 
/* Number of entries in this module's DSBT. */
#define DT_C6000_DSBT_SIZE 0x70000001
 
/* Undocumented. */
#define DT_C6000_PREEMPTMAP 0x70000002
 
/* The hard-coded DSBT index for this module, if any. */
#define DT_C6000_DSBT_INDEX 0x70000003
 
/* Extended program header attributes. */
 
/* Terminate a segment. */
#define PHA_NULL 0x0
 
/* Segment's address bound to the final address. */
#define PHA_BOUND 0x1
 
/* Segment cannot be further relocated. */
#define PHA_READONLY 0x2
 
/* Build attributes. */
enum
{
#define TAG(tag, value) tag = value,
#include "elf/tic6x-attrs.h"
#undef TAG
Tag_C6XABI_last
};
 
/* Values for Tag_ISA. GNU-specific names; the ABI does not specify
names for these values. */
enum
{
C6XABI_Tag_ISA_none = 0,
C6XABI_Tag_ISA_C62X = 1,
C6XABI_Tag_ISA_C67X = 3,
C6XABI_Tag_ISA_C67XP = 4,
C6XABI_Tag_ISA_C64X = 6,
C6XABI_Tag_ISA_C64XP = 7,
C6XABI_Tag_ISA_C674X = 8
};
 
/* Special section names. */
#define ELF_STRING_C6000_unwind ".c6xabi.exidx"
#define ELF_STRING_C6000_unwind_info ".c6xabi.extab"
#define ELF_STRING_C6000_unwind_once ".gnu.linkonce.c6xabi.exidx."
#define ELF_STRING_C6000_unwind_info_once ".gnu.linkonce.c6xabi.extab."
 
#endif /* _ELF_TIC6X_H */
/contrib/toolchain/binutils/include/elf/tilegx.h
0,0 → 1,176
/* TILE-Gx ELF support for BFD.
Copyright 2011 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
#ifndef _ELF_TILEGX_H
#define _ELF_TILEGX_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_tilegx_reloc_type)
RELOC_NUMBER (R_TILEGX_NONE, 0)
 
/* Standard relocations */
RELOC_NUMBER (R_TILEGX_64, 1)
RELOC_NUMBER (R_TILEGX_32, 2)
RELOC_NUMBER (R_TILEGX_16, 3)
RELOC_NUMBER (R_TILEGX_8, 4)
RELOC_NUMBER (R_TILEGX_64_PCREL, 5)
RELOC_NUMBER (R_TILEGX_32_PCREL, 6)
RELOC_NUMBER (R_TILEGX_16_PCREL, 7)
RELOC_NUMBER (R_TILEGX_8_PCREL, 8)
 
/* Custom relocations */
 
RELOC_NUMBER (R_TILEGX_HW0, 9)
RELOC_NUMBER (R_TILEGX_HW1, 10)
RELOC_NUMBER (R_TILEGX_HW2, 11)
RELOC_NUMBER (R_TILEGX_HW3, 12)
RELOC_NUMBER (R_TILEGX_HW0_LAST, 13)
RELOC_NUMBER (R_TILEGX_HW1_LAST, 14)
RELOC_NUMBER (R_TILEGX_HW2_LAST, 15)
 
RELOC_NUMBER (R_TILEGX_COPY, 16)
RELOC_NUMBER (R_TILEGX_GLOB_DAT, 17)
RELOC_NUMBER (R_TILEGX_JMP_SLOT, 18)
RELOC_NUMBER (R_TILEGX_RELATIVE, 19)
 
/* Branch/jump offsets */
RELOC_NUMBER (R_TILEGX_BROFF_X1, 20)
RELOC_NUMBER (R_TILEGX_JUMPOFF_X1, 21)
RELOC_NUMBER (R_TILEGX_JUMPOFF_X1_PLT, 22)
 
/* Immediate operands. */
RELOC_NUMBER (R_TILEGX_IMM8_X0, 23)
RELOC_NUMBER (R_TILEGX_IMM8_Y0, 24)
RELOC_NUMBER (R_TILEGX_IMM8_X1, 25)
RELOC_NUMBER (R_TILEGX_IMM8_Y1, 26)
RELOC_NUMBER (R_TILEGX_DEST_IMM8_X1, 27)
RELOC_NUMBER (R_TILEGX_MT_IMM14_X1, 28)
RELOC_NUMBER (R_TILEGX_MF_IMM14_X1, 29)
RELOC_NUMBER (R_TILEGX_MMSTART_X0, 30)
RELOC_NUMBER (R_TILEGX_MMEND_X0, 31)
RELOC_NUMBER (R_TILEGX_SHAMT_X0, 32)
RELOC_NUMBER (R_TILEGX_SHAMT_X1, 33)
RELOC_NUMBER (R_TILEGX_SHAMT_Y0, 34)
RELOC_NUMBER (R_TILEGX_SHAMT_Y1, 35)
 
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0, 36)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0, 37)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1, 38)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1, 39)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2, 40)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2, 41)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW3, 42)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW3, 43)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST, 44)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST, 45)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST, 46)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST, 47)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_LAST, 48)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_LAST, 49)
 
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_PCREL, 50)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_PCREL, 51)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_PCREL, 52)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_PCREL, 53)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_PCREL, 54)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_PCREL, 55)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW3_PCREL, 56)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW3_PCREL, 57)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_PCREL, 58)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_PCREL, 59)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_PCREL, 60)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_PCREL, 61)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_LAST_PCREL, 62)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_LAST_PCREL, 63)
 
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_GOT, 64)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_GOT, 65)
 
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_PLT_PCREL, 66)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_PLT_PCREL, 67)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_PLT_PCREL, 68)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_PLT_PCREL, 69)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_PLT_PCREL, 70)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_PLT_PCREL, 71)
 
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_GOT, 72)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_GOT, 73)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_GOT, 74)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_GOT, 75)
 
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW3_PLT_PCREL, 76)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW3_PLT_PCREL, 77)
 
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_TLS_GD, 78)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_TLS_GD, 79)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_TLS_LE, 80)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_TLS_LE, 81)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE, 82)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE, 83)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE, 84)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE, 85)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD, 86)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD, 87)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD, 88)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD, 89)
/* Relocs 90-91 are currently not defined. */
 
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_TLS_IE, 92)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_TLS_IE, 93)
 
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL, 94)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL, 95)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL, 96)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL, 97)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL, 98)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL, 99)
 
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE, 100)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE, 101)
RELOC_NUMBER (R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE, 102)
RELOC_NUMBER (R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE, 103)
/* Relocs 104-105 are currently not defined. */
 
RELOC_NUMBER (R_TILEGX_TLS_DTPMOD64, 106)
RELOC_NUMBER (R_TILEGX_TLS_DTPOFF64, 107)
RELOC_NUMBER (R_TILEGX_TLS_TPOFF64, 108)
RELOC_NUMBER (R_TILEGX_TLS_DTPMOD32, 109)
RELOC_NUMBER (R_TILEGX_TLS_DTPOFF32, 110)
RELOC_NUMBER (R_TILEGX_TLS_TPOFF32, 111)
 
RELOC_NUMBER (R_TILEGX_TLS_GD_CALL, 112)
RELOC_NUMBER (R_TILEGX_IMM8_X0_TLS_GD_ADD, 113)
RELOC_NUMBER (R_TILEGX_IMM8_X1_TLS_GD_ADD, 114)
RELOC_NUMBER (R_TILEGX_IMM8_Y0_TLS_GD_ADD, 115)
RELOC_NUMBER (R_TILEGX_IMM8_Y1_TLS_GD_ADD, 116)
RELOC_NUMBER (R_TILEGX_TLS_IE_LOAD, 117)
RELOC_NUMBER (R_TILEGX_IMM8_X0_TLS_ADD, 118)
RELOC_NUMBER (R_TILEGX_IMM8_X1_TLS_ADD, 119)
RELOC_NUMBER (R_TILEGX_IMM8_Y0_TLS_ADD, 120)
RELOC_NUMBER (R_TILEGX_IMM8_Y1_TLS_ADD, 121)
 
/* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_TILEGX_GNU_VTINHERIT, 128)
RELOC_NUMBER (R_TILEGX_GNU_VTENTRY, 129)
END_RELOC_NUMBERS (R_TILEGX_max)
 
#endif /* _ELF_TILEGX_H */
/contrib/toolchain/binutils/include/elf/tilepro.h
0,0 → 1,144
/* TILEPro ELF support for BFD.
Copyright 2011 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
#ifndef _ELF_TILEPRO_H
#define _ELF_TILEPRO_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_tilepro_reloc_type)
RELOC_NUMBER (R_TILEPRO_NONE, 0)
 
/* Standard relocations */
RELOC_NUMBER (R_TILEPRO_32, 1)
RELOC_NUMBER (R_TILEPRO_16, 2)
RELOC_NUMBER (R_TILEPRO_8, 3)
RELOC_NUMBER (R_TILEPRO_32_PCREL, 4)
RELOC_NUMBER (R_TILEPRO_16_PCREL, 5)
RELOC_NUMBER (R_TILEPRO_8_PCREL, 6)
 
RELOC_NUMBER (R_TILEPRO_LO16, 7)
RELOC_NUMBER (R_TILEPRO_HI16, 8)
RELOC_NUMBER (R_TILEPRO_HA16, 9)
 
RELOC_NUMBER (R_TILEPRO_COPY, 10)
RELOC_NUMBER (R_TILEPRO_GLOB_DAT, 11)
RELOC_NUMBER (R_TILEPRO_JMP_SLOT, 12)
RELOC_NUMBER (R_TILEPRO_RELATIVE, 13)
 
/* Branch/jump offsets */
RELOC_NUMBER (R_TILEPRO_BROFF_X1, 14)
RELOC_NUMBER (R_TILEPRO_JOFFLONG_X1, 15)
RELOC_NUMBER (R_TILEPRO_JOFFLONG_X1_PLT, 16)
 
/* Immediate operands. */
RELOC_NUMBER (R_TILEPRO_IMM8_X0, 17)
RELOC_NUMBER (R_TILEPRO_IMM8_Y0, 18)
RELOC_NUMBER (R_TILEPRO_IMM8_X1, 19)
RELOC_NUMBER (R_TILEPRO_IMM8_Y1, 20)
RELOC_NUMBER (R_TILEPRO_MT_IMM15_X1, 21)
RELOC_NUMBER (R_TILEPRO_MF_IMM15_X1, 22)
 
RELOC_NUMBER (R_TILEPRO_IMM16_X0, 23)
RELOC_NUMBER (R_TILEPRO_IMM16_X1, 24)
RELOC_NUMBER (R_TILEPRO_IMM16_X0_LO, 25)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_LO, 26)
RELOC_NUMBER (R_TILEPRO_IMM16_X0_HI, 27)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_HI, 28)
RELOC_NUMBER (R_TILEPRO_IMM16_X0_HA, 29)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_HA, 30)
 
RELOC_NUMBER (R_TILEPRO_IMM16_X0_PCREL, 31)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_PCREL, 32)
RELOC_NUMBER (R_TILEPRO_IMM16_X0_LO_PCREL, 33)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_LO_PCREL, 34)
RELOC_NUMBER (R_TILEPRO_IMM16_X0_HI_PCREL, 35)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_HI_PCREL, 36)
RELOC_NUMBER (R_TILEPRO_IMM16_X0_HA_PCREL, 37)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_HA_PCREL, 38)
 
RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT, 39)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT, 40)
RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT_LO, 41)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT_LO, 42)
RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT_HI, 43)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT_HI, 44)
RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT_HA, 45)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT_HA, 46)
 
RELOC_NUMBER (R_TILEPRO_MMSTART_X0, 47)
RELOC_NUMBER (R_TILEPRO_MMEND_X0, 48)
RELOC_NUMBER (R_TILEPRO_MMSTART_X1, 49)
RELOC_NUMBER (R_TILEPRO_MMEND_X1, 50)
 
RELOC_NUMBER (R_TILEPRO_SHAMT_X0, 51)
RELOC_NUMBER (R_TILEPRO_SHAMT_X1, 52)
RELOC_NUMBER (R_TILEPRO_SHAMT_Y0, 53)
RELOC_NUMBER (R_TILEPRO_SHAMT_Y1, 54)
 
RELOC_NUMBER (R_TILEPRO_DEST_IMM8_X1, 55)
 
/* Relocs 56-59 are currently not defined. */
 
RELOC_NUMBER (R_TILEPRO_TLS_GD_CALL, 60)
RELOC_NUMBER (R_TILEPRO_IMM8_X0_TLS_GD_ADD, 61)
RELOC_NUMBER (R_TILEPRO_IMM8_X1_TLS_GD_ADD, 62)
RELOC_NUMBER (R_TILEPRO_IMM8_Y0_TLS_GD_ADD, 63)
RELOC_NUMBER (R_TILEPRO_IMM8_Y1_TLS_GD_ADD, 64)
RELOC_NUMBER (R_TILEPRO_TLS_IE_LOAD, 65)
 
RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD, 66)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD, 67)
RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD_LO, 68)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD_LO, 69)
RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD_HI, 70)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD_HI, 71)
RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD_HA, 72)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD_HA, 73)
 
RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE, 74)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE, 75)
RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE_LO, 76)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE_LO, 77)
RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE_HI, 78)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE_HI, 79)
RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE_HA, 80)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE_HA, 81)
 
RELOC_NUMBER (R_TILEPRO_TLS_DTPMOD32, 82)
RELOC_NUMBER (R_TILEPRO_TLS_DTPOFF32, 83)
RELOC_NUMBER (R_TILEPRO_TLS_TPOFF32, 84)
 
RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE, 85)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE, 86)
RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE_LO, 87)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE_LO, 88)
RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE_HI, 89)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE_HI, 90)
RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE_HA, 91)
RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE_HA, 92)
 
/* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_TILEPRO_GNU_VTINHERIT, 128)
RELOC_NUMBER (R_TILEPRO_GNU_VTENTRY, 129)
END_RELOC_NUMBERS (R_TILEPRO_max)
 
#endif /* _ELF_TILEPRO_H */
/contrib/toolchain/binutils/include/elf/v850.h
0,0 → 1,283
/* V850 ELF support for BFD.
Copyright 1997-2013 Free Software Foundation, Inc.
Created by Michael Meissner, Cygnus Support <meissner@cygnus.com>
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
/* This file holds definitions specific to the MIPS ELF ABI. Note
that most of this is not actually implemented by BFD. */
 
#ifndef _ELF_V850_H
#define _ELF_V850_H
 
/* Processor specific flags for the ELF header e_flags field. */
 
/* Four bit V850 architecture field. */
#define EF_V850_ARCH 0xf0000000
 
/* v850 code. */
#define E_V850_ARCH 0x00000000
 
/* v850e code. */
#define E_V850E_ARCH 0x10000000
 
/* v850e1 code. */
#define E_V850E1_ARCH 0x20000000
 
/* v850e2 code. */
#define E_V850E2_ARCH 0x30000000
 
/* v850e2v3 code. */
#define E_V850E2V3_ARCH 0x40000000
 
/* v850e3v5 code. */
#define E_V850E3V5_ARCH 0x60000000
 
/* Flags for the st_other field. */
#define V850_OTHER_SDA 0x10 /* Symbol had SDA relocations. */
#define V850_OTHER_ZDA 0x20 /* Symbol had ZDA relocations. */
#define V850_OTHER_TDA 0x40 /* Symbol had TDA relocations. */
#define V850_OTHER_ERROR 0x80 /* Symbol had an error reported. */
 
/* V850 relocations. */
#include "elf/reloc-macros.h"
 
START_RELOC_NUMBERS (v850_reloc_type)
RELOC_NUMBER (R_V850_NONE, 0)
RELOC_NUMBER (R_V850_9_PCREL, 1)
RELOC_NUMBER (R_V850_22_PCREL, 2)
RELOC_NUMBER (R_V850_HI16_S, 3)
RELOC_NUMBER (R_V850_HI16, 4)
RELOC_NUMBER (R_V850_LO16, 5)
RELOC_NUMBER (R_V850_ABS32, 6)
RELOC_NUMBER (R_V850_16, 7)
RELOC_NUMBER (R_V850_8, 8)
RELOC_NUMBER( R_V850_SDA_16_16_OFFSET, 9) /* For ld.b, st.b, set1, clr1, not1, tst1, movea, movhi */
RELOC_NUMBER( R_V850_SDA_15_16_OFFSET, 10) /* For ld.w, ld.h, ld.hu, st.w, st.h */
RELOC_NUMBER( R_V850_ZDA_16_16_OFFSET, 11) /* For ld.b, st.b, set1, clr1, not1, tst1, movea, movhi */
RELOC_NUMBER( R_V850_ZDA_15_16_OFFSET, 12) /* For ld.w, ld.h, ld.hu, st.w, st.h */
RELOC_NUMBER( R_V850_TDA_6_8_OFFSET, 13) /* For sst.w, sld.w */
RELOC_NUMBER( R_V850_TDA_7_8_OFFSET, 14) /* For sst.h, sld.h */
RELOC_NUMBER( R_V850_TDA_7_7_OFFSET, 15) /* For sst.b, sld.b */
RELOC_NUMBER( R_V850_TDA_16_16_OFFSET, 16) /* For set1, clr1, not1, tst1, movea, movhi */
RELOC_NUMBER( R_V850_TDA_4_5_OFFSET, 17) /* For sld.hu */
RELOC_NUMBER( R_V850_TDA_4_4_OFFSET, 18) /* For sld.bu */
RELOC_NUMBER( R_V850_SDA_16_16_SPLIT_OFFSET, 19) /* For ld.bu */
RELOC_NUMBER( R_V850_ZDA_16_16_SPLIT_OFFSET, 20) /* For ld.bu */
RELOC_NUMBER( R_V850_CALLT_6_7_OFFSET, 21) /* For callt */
RELOC_NUMBER( R_V850_CALLT_16_16_OFFSET, 22) /* For callt */
RELOC_NUMBER (R_V850_GNU_VTINHERIT, 23)
RELOC_NUMBER (R_V850_GNU_VTENTRY, 24)
RELOC_NUMBER (R_V850_LONGCALL, 25)
RELOC_NUMBER (R_V850_LONGJUMP, 26)
RELOC_NUMBER (R_V850_ALIGN, 27)
RELOC_NUMBER (R_V850_REL32, 28)
RELOC_NUMBER (R_V850_LO16_SPLIT_OFFSET, 29) /* For ld.bu */
RELOC_NUMBER (R_V850_16_PCREL, 30) /* For loop */
RELOC_NUMBER (R_V850_17_PCREL, 31) /* For br */
RELOC_NUMBER (R_V850_23, 32) /* For 23bit ld.[w,h,hu,b,bu],st.[w,h,b] */
RELOC_NUMBER (R_V850_32_PCREL, 33) /* For jr32, jarl32 */
RELOC_NUMBER (R_V850_32_ABS, 34) /* For jmp32 */
RELOC_NUMBER (R_V850_16_SPLIT_OFFSET, 35) /* For ld.bu */
RELOC_NUMBER (R_V850_16_S1, 36) /* For ld.w, ld.h st.w st.h */
RELOC_NUMBER (R_V850_LO16_S1, 37) /* For ld.w, ld.h st.w st.h */
RELOC_NUMBER (R_V850_CALLT_15_16_OFFSET, 38) /* For ld.w, ld.h, ld.hu, st.w, st.h */
RELOC_NUMBER (R_V850_32_GOTPCREL, 39) /* GLOBAL_OFFSET_TABLE from pc */
RELOC_NUMBER (R_V850_16_GOT, 40) /* GOT ENTRY from gp */
RELOC_NUMBER (R_V850_32_GOT, 41)
RELOC_NUMBER (R_V850_22_PLT, 42) /* For jr */
RELOC_NUMBER (R_V850_32_PLT, 43) /* For jr32 */
RELOC_NUMBER (R_V850_COPY, 44)
RELOC_NUMBER (R_V850_GLOB_DAT, 45)
RELOC_NUMBER (R_V850_JMP_SLOT, 46)
RELOC_NUMBER (R_V850_RELATIVE, 47)
RELOC_NUMBER (R_V850_16_GOTOFF, 48) /* From gp */
RELOC_NUMBER (R_V850_32_GOTOFF, 49)
RELOC_NUMBER (R_V850_CODE, 50)
RELOC_NUMBER (R_V850_DATA, 51) /* For loop */
 
END_RELOC_NUMBERS (R_V850_max)
 
/* Processor specific section indices. These sections do not actually
exist. Symbols with a st_shndx field corresponding to one of these
values have a special meaning. */
 
/* Small data area common symbol. */
#define SHN_V850_SCOMMON SHN_LORESERVE
 
/* Tiny data area common symbol. */
#define SHN_V850_TCOMMON (SHN_LORESERVE + 1)
 
/* Zero data area common symbol. */
#define SHN_V850_ZCOMMON (SHN_LORESERVE + 2)
 
/* Processor specific section types. */
 
/* Section contains the .scommon data. */
#define SHT_V850_SCOMMON 0x70000000
 
/* Section contains the .scommon data. */
#define SHT_V850_TCOMMON 0x70000001
 
/* Section contains the .scommon data. */
#define SHT_V850_ZCOMMON 0x70000002
 
/* Processor specific section flags. */
 
/* This section must be in the small data area (pointed to by GP). */
#define SHF_V850_GPREL 0x10000000
 
/* This section must be in the tiny data area (pointed to by EP). */
#define SHF_V850_EPREL 0x20000000
 
/* This section must be in the zero data area (pointed to by R0). */
#define SHF_V850_R0REL 0x40000000
 
/* Alternative versions of the above definitions, as specified by the RH850 ABI. */
 
#define EF_RH850_ABI 0xF0000000
 
#define EF_V800_850E3 0x00100000
 
#define EF_RH850_FPU_DOUBLE 0x00000001 /* sizeof(double) == 8. */
#define EF_RH850_FPU_SINGLE 0x00000002 /* sizeof(double) == 4. */
#define EF_RH850_SIMD 0x00000004
#define EF_RH850_CACHE 0x00000008
#define EF_RH850_MMU 0x00000010
#define EF_RH850_REGMODE22 0x00000020 /* Registers r15-r24 (inclusive) are not used. */
#define EF_RH850_REGMODE32 0x00000040
#define EF_RH850_DATA_ALIGN8 0x00000080 /* 8-byte alignment supported. */
#define EF_RH850_GP_FIX 0x00000100 /* r4 is fixed. */
#define EF_RH850_GP_NOFIX 0x00000200 /* r4 is callee save. */
#define EF_RH850_EP_FIX 0x00000400 /* r30 is fixed. */
#define EF_RH850_EP_NOFIX 0x00000800 /* r30 is callee save. */
#define EF_RH850_TP_FIX 0x00001000 /* r5 is fixed. */
#define EF_RH850_TP_NOFIX 0x00002000 /* r5 is callee save. */
#define EF_RH850_REG2_RESERVE 0x00004000 /* r2 is fixed. */
#define EF_RH850_REG2_NORESERVE 0x00008000 /* r2 is callee saved. */
 
#define SHT_RNESAS_IOP SHT_LOUSER /* Used by Renesas linker. */
 
#define SHF_RENESAS_ABS 0x80000000 /* Absolute section. */
#define SHF_GHS_ABS 0x00000400 /* Use unknown. */
 
#define STT_RENESAS_ENTRY 14 /* Set for functions called at reset time. */
 
START_RELOC_NUMBERS (v800_reloc_type)
 
RELOC_NUMBER (R_V800_NONE, 0x00)
RELOC_NUMBER (R_V810_NONE, 0x30)
RELOC_NUMBER (R_V810_BYTE, 0x31)
RELOC_NUMBER (R_V810_HWORD, 0x32)
RELOC_NUMBER (R_V810_WORD, 0x33)
RELOC_NUMBER (R_V810_WLO, 0x34)
RELOC_NUMBER (R_V810_WHI, 0x35)
RELOC_NUMBER (R_V810_WHI1, 0x36)
RELOC_NUMBER (R_V810_GPBYTE, 0x37)
RELOC_NUMBER (R_V810_GPHWORD, 0x38)
RELOC_NUMBER (R_V810_GPWORD, 0x39)
RELOC_NUMBER (R_V810_GPWLO, 0x3a)
RELOC_NUMBER (R_V810_GPWHI, 0x3b)
RELOC_NUMBER (R_V810_GPWHI1, 0x3c)
RELOC_NUMBER (R_V850_HWLO, 0x3d)
FAKE_RELOC (R_V810_reserved1, 0x3e)
RELOC_NUMBER (R_V850_EP7BIT, 0x3f)
RELOC_NUMBER (R_V850_EPHBYTE, 0x40)
RELOC_NUMBER (R_V850_EPWBYTE, 0x41)
RELOC_NUMBER (R_V850_REGHWLO, 0x42)
FAKE_RELOC (R_V810_reserved2, 0x43)
RELOC_NUMBER (R_V850_GPHWLO, 0x44)
FAKE_RELOC (R_V810_reserved3, 0x45)
RELOC_NUMBER (R_V850_PCR22, 0x46)
RELOC_NUMBER (R_V850_BLO, 0x47)
RELOC_NUMBER (R_V850_EP4BIT, 0x48)
RELOC_NUMBER (R_V850_EP5BIT, 0x49)
RELOC_NUMBER (R_V850_REGBLO, 0x4a)
RELOC_NUMBER (R_V850_GPBLO, 0x4b)
RELOC_NUMBER (R_V810_WLO_1, 0x4c)
RELOC_NUMBER (R_V810_GPWLO_1, 0x4d)
RELOC_NUMBER (R_V850_BLO_1, 0x4e)
RELOC_NUMBER (R_V850_HWLO_1, 0x4f)
FAKE_RELOC (R_V810_reserved4, 0x50)
RELOC_NUMBER (R_V850_GPBLO_1, 0x51)
RELOC_NUMBER (R_V850_GPHWLO_1, 0x52)
FAKE_RELOC (R_V810_reserved5, 0x53)
RELOC_NUMBER (R_V850_EPBLO, 0x54)
RELOC_NUMBER (R_V850_EPHWLO, 0x55)
FAKE_RELOC (R_V810_reserved6, 0x56)
RELOC_NUMBER (R_V850_EPWLO_N, 0x57)
RELOC_NUMBER (R_V850_PC32, 0x58)
RELOC_NUMBER (R_V850_W23BIT, 0x59)
RELOC_NUMBER (R_V850_GPW23BIT, 0x5a)
RELOC_NUMBER (R_V850_EPW23BIT, 0x5b)
RELOC_NUMBER (R_V850_B23BIT, 0x5c)
RELOC_NUMBER (R_V850_GPB23BIT, 0x5d)
RELOC_NUMBER (R_V850_EPB23BIT, 0x5e)
RELOC_NUMBER (R_V850_PC16U, 0x5f)
RELOC_NUMBER (R_V850_PC17, 0x60)
RELOC_NUMBER (R_V850_DW8, 0x61)
RELOC_NUMBER (R_V850_GPDW8, 0x62)
RELOC_NUMBER (R_V850_EPDW8, 0x63)
RELOC_NUMBER (R_V850_PC9, 0x64)
RELOC_NUMBER (R_V810_REGBYTE, 0x65)
RELOC_NUMBER (R_V810_REGHWORD, 0x66)
RELOC_NUMBER (R_V810_REGWORD, 0x67)
RELOC_NUMBER (R_V810_REGWLO, 0x68)
RELOC_NUMBER (R_V810_REGWHI, 0x69)
RELOC_NUMBER (R_V810_REGWHI1, 0x6a)
RELOC_NUMBER (R_V850_REGW23BIT, 0x6b)
RELOC_NUMBER (R_V850_REGB23BIT, 0x6c)
RELOC_NUMBER (R_V850_REGDW8, 0x6d)
RELOC_NUMBER (R_V810_EPBYTE, 0x6e)
RELOC_NUMBER (R_V810_EPHWORD, 0x6f)
RELOC_NUMBER (R_V810_EPWORD, 0x70)
RELOC_NUMBER (R_V850_WLO23, 0x71)
RELOC_NUMBER (R_V850_WORD_E, 0x72)
RELOC_NUMBER (R_V850_REGWORD_E, 0x73)
RELOC_NUMBER (R_V850_WORD, 0x74)
RELOC_NUMBER (R_V850_GPWORD, 0x75)
RELOC_NUMBER (R_V850_REGWORD, 0x76)
RELOC_NUMBER (R_V850_EPWORD, 0x77)
RELOC_NUMBER (R_V810_TPBYTE, 0x78)
RELOC_NUMBER (R_V810_TPHWORD, 0x79)
RELOC_NUMBER (R_V810_TPWORD, 0x7a)
RELOC_NUMBER (R_V810_TPWLO, 0x7b)
RELOC_NUMBER (R_V810_TPWHI, 0x7c)
RELOC_NUMBER (R_V810_TPWHI1, 0x7d)
RELOC_NUMBER (R_V850_TPHWLO, 0x7e)
RELOC_NUMBER (R_V850_TPBLO, 0x7f)
RELOC_NUMBER (R_V810_TPWLO_1, 0x80)
RELOC_NUMBER (R_V850_TPBLO_1, 0x81)
RELOC_NUMBER (R_V850_TPHWLO_1, 0x82)
RELOC_NUMBER (R_V850_TP23BIT, 0x83)
RELOC_NUMBER (R_V850_TPW23BIT, 0x84)
RELOC_NUMBER (R_V850_TPDW8, 0x85)
 
/* These are defined by the RH850 ABI, but not used. */
RELOC_NUMBER (R_V810_ABS32, 0xa0)
RELOC_NUMBER (R_V850_SYM, 0xe0)
RELOC_NUMBER (R_V850_OPadd, 0xe1)
RELOC_NUMBER (R_V850_OPsub, 0xe2)
RELOC_NUMBER (R_V850_OPsctsize, 0xe3)
RELOC_NUMBER (R_V850_OPscttop, 0xe4)
 
END_RELOC_NUMBERS (R_V800_max)
 
#endif /* _ELF_V850_H */
/contrib/toolchain/binutils/include/elf/vax.h
0,0 → 1,51
/* VAX ELF support for BFD.
Copyright (C) 2002, 2010 Free Software Foundation, Inc.
Contributed by Matt Thomas <matt@3am-software.com>.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_VAX_H
#define _ELF_VAX_H
 
#include "elf/reloc-macros.h"
 
/* Relocation types. */
START_RELOC_NUMBERS (elf_vax_reloc_type)
RELOC_NUMBER (R_VAX_NONE, 0) /* No reloc */
RELOC_NUMBER (R_VAX_32, 1) /* Direct 32 bit */
RELOC_NUMBER (R_VAX_16, 2) /* Direct 16 bit */
RELOC_NUMBER (R_VAX_8, 3) /* Direct 8 bit */
RELOC_NUMBER (R_VAX_PC32, 4) /* PC relative 32 bit */
RELOC_NUMBER (R_VAX_PC16, 5) /* PC relative 16 bit */
RELOC_NUMBER (R_VAX_PC8, 6) /* PC relative 8 bit */
RELOC_NUMBER (R_VAX_GOT32, 7) /* 32 bit PC relative GOT entry */
RELOC_NUMBER (R_VAX_PLT32, 13) /* 32 bit PC relative PLT address */
RELOC_NUMBER (R_VAX_COPY, 19) /* Copy symbol at runtime */
RELOC_NUMBER (R_VAX_GLOB_DAT, 20) /* Create GOT entry */
RELOC_NUMBER (R_VAX_JMP_SLOT, 21) /* Create PLT entry */
RELOC_NUMBER (R_VAX_RELATIVE, 22) /* Adjust by program base */
/* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_VAX_GNU_VTINHERIT, 23)
RELOC_NUMBER (R_VAX_GNU_VTENTRY, 24)
END_RELOC_NUMBERS (R_VAX_max)
 
/* Processor specific flags for the ELF header e_flags field. */
#define EF_VAX_NONPIC 0x0001 /* Object contains non-PIC code */
#define EF_VAX_DFLOAT 0x0100 /* Object contains D-Float insn. */
#define EF_VAX_GFLOAT 0x0200 /* Object contains G-Float insn. */
 
#endif
/contrib/toolchain/binutils/include/elf/vxworks.h
0,0 → 1,33
/* VxWorks ELF support for BFD.
Copyright 2007, 2010
Free Software Foundation, Inc.
 
Contributed by Nathan Sidwell <nathan@codesourcery.com>
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
 
#ifndef _ELF_VXWORKS_H
#define _ELF_VXWORKS_H
 
#define DT_VX_WRS_TLS_DATA_START 0x60000010
#define DT_VX_WRS_TLS_DATA_SIZE 0x60000011
#define DT_VX_WRS_TLS_DATA_ALIGN 0x60000015
#define DT_VX_WRS_TLS_VARS_START 0x60000012
#define DT_VX_WRS_TLS_VARS_SIZE 0x60000013
#endif /* _ELF_VXWORKS_H */
/contrib/toolchain/binutils/include/elf/x86-64.h
0,0 → 1,94
/* x86_64 ELF support for BFD.
Copyright (C) 2000, 2001, 2002, 2004, 2005, 2006, 2008, 2009, 2010
Free Software Foundation, Inc.
Contributed by Jan Hubicka <jh@suse.cz>
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_X86_64_H
#define _ELF_X86_64_H
 
#include "elf/reloc-macros.h"
 
START_RELOC_NUMBERS (elf_x86_64_reloc_type)
RELOC_NUMBER (R_X86_64_NONE, 0) /* No reloc */
RELOC_NUMBER (R_X86_64_64, 1) /* Direct 64 bit */
RELOC_NUMBER (R_X86_64_PC32, 2) /* PC relative 32 bit signed */
RELOC_NUMBER (R_X86_64_GOT32, 3) /* 32 bit GOT entry */
RELOC_NUMBER (R_X86_64_PLT32, 4) /* 32 bit PLT address */
RELOC_NUMBER (R_X86_64_COPY, 5) /* Copy symbol at runtime */
RELOC_NUMBER (R_X86_64_GLOB_DAT, 6) /* Create GOT entry */
RELOC_NUMBER (R_X86_64_JUMP_SLOT,7) /* Create PLT entry */
RELOC_NUMBER (R_X86_64_RELATIVE, 8) /* Adjust by program base */
RELOC_NUMBER (R_X86_64_GOTPCREL, 9) /* 32 bit signed pc relative
offset to GOT entry */
RELOC_NUMBER (R_X86_64_32, 10) /* Direct 32 bit zero extended */
RELOC_NUMBER (R_X86_64_32S, 11) /* Direct 32 bit sign extended */
RELOC_NUMBER (R_X86_64_16, 12) /* Direct 16 bit zero extended */
RELOC_NUMBER (R_X86_64_PC16, 13) /* 16 bit sign extended pc relative*/
RELOC_NUMBER (R_X86_64_8, 14) /* Direct 8 bit sign extended */
RELOC_NUMBER (R_X86_64_PC8, 15) /* 8 bit sign extended pc relative*/
RELOC_NUMBER (R_X86_64_DTPMOD64, 16) /* ID of module containing symbol */
RELOC_NUMBER (R_X86_64_DTPOFF64, 17) /* Offset in TLS block */
RELOC_NUMBER (R_X86_64_TPOFF64, 18) /* Offset in initial TLS block */
RELOC_NUMBER (R_X86_64_TLSGD, 19) /* PC relative offset to GD GOT block */
RELOC_NUMBER (R_X86_64_TLSLD, 20) /* PC relative offset to LD GOT block */
RELOC_NUMBER (R_X86_64_DTPOFF32, 21) /* Offset in TLS block */
RELOC_NUMBER (R_X86_64_GOTTPOFF, 22) /* PC relative offset to IE GOT entry */
RELOC_NUMBER (R_X86_64_TPOFF32, 23) /* Offset in initial TLS block */
RELOC_NUMBER (R_X86_64_PC64, 24) /* PC relative 64 bit */
RELOC_NUMBER (R_X86_64_GOTOFF64, 25) /* 64 bit offset to GOT */
RELOC_NUMBER (R_X86_64_GOTPC32, 26) /* 32 bit signed pc relative
offset to GOT */
RELOC_NUMBER (R_X86_64_GOT64, 27) /* 64 bit GOT entry offset */
RELOC_NUMBER (R_X86_64_GOTPCREL64, 28) /* 64 bit signed pc relative
offset to GOT entry */
RELOC_NUMBER (R_X86_64_GOTPC64, 29) /* 64 bit signed pc relative
offset to GOT */
RELOC_NUMBER (R_X86_64_GOTPLT64, 30) /* like GOT64, but indicates
that PLT entry is needed */
RELOC_NUMBER (R_X86_64_PLTOFF64, 31) /* 64 bit GOT relative offset
to PLT entry */
RELOC_NUMBER (R_X86_64_SIZE32, 32) /* 32-bit symbol size */
RELOC_NUMBER (R_X86_64_SIZE64, 33) /* 64-bit symbol size */
RELOC_NUMBER (R_X86_64_GOTPC32_TLSDESC, 34)
/* 32 bit signed pc relative
offset to TLS descriptor
in the GOT. */
RELOC_NUMBER (R_X86_64_TLSDESC_CALL, 35) /* Relaxable call through TLS
descriptor. */
RELOC_NUMBER (R_X86_64_TLSDESC, 36) /* 2x64-bit TLS descriptor. */
RELOC_NUMBER (R_X86_64_IRELATIVE, 37) /* Adjust indirectly by program base */
RELOC_NUMBER (R_X86_64_RELATIVE64, 38) /* 64bit adjust by program base */
RELOC_NUMBER (R_X86_64_PC32_BND, 39) /* PC relative 32 bit
signed with BND prefix */
RELOC_NUMBER (R_X86_64_PLT32_BND, 40) /* 32 bit PLT address with
BND prefix */
RELOC_NUMBER (R_X86_64_GNU_VTINHERIT, 250) /* GNU C++ hack */
RELOC_NUMBER (R_X86_64_GNU_VTENTRY, 251) /* GNU C++ hack */
END_RELOC_NUMBERS (R_X86_64_max)
 
/* Processor specific section types. */
 
#define SHT_X86_64_UNWIND 0x70000001 /* unwind information */
 
/* Like SHN_COMMON but the symbol will be allocated in the .lbss
section. */
#define SHN_X86_64_LCOMMON (SHN_LORESERVE + 2)
 
#define SHF_X86_64_LARGE 0x10000000
#endif
/contrib/toolchain/binutils/include/elf/xc16x.h
0,0 → 1,40
/* Infineon XC16X ELF support for BFD.
Copyright 2006, 2010 Free Software Foundation, Inc.
Contributed by KPIT Cummins Infosystems
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_XC16X_H
#define _ELF_XC16X_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_xc16x_reloc_type)
RELOC_NUMBER (R_XC16X_NONE, 0)
RELOC_NUMBER (R_XC16X_ABS_8, 1)
RELOC_NUMBER (R_XC16X_ABS_16, 2)
RELOC_NUMBER (R_XC16X_ABS_32, 3)
RELOC_NUMBER (R_XC16X_8_PCREL, 4)
RELOC_NUMBER (R_XC16X_PAG, 5)
RELOC_NUMBER (R_XC16X_POF, 6)
RELOC_NUMBER (R_XC16X_SEG, 7)
RELOC_NUMBER (R_XC16X_SOF, 8)
 
END_RELOC_NUMBERS (R_XC16X_max)
 
#endif /* _ELF_XC16X_H */
/contrib/toolchain/binutils/include/elf/xgate.h
0,0 → 1,77
/* XGATE ELF support for BFD.
Copyright 2010, 2011, 2012 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_XGATE_H
#define _ELF_XGATE_H
 
#include "elf/reloc-macros.h"
 
/* Relocation types. */
START_RELOC_NUMBERS (elf_xgate_reloc_type)
RELOC_NUMBER (R_XGATE_NONE, 0)
RELOC_NUMBER (R_XGATE_8, 1)
RELOC_NUMBER (R_XGATE_PCREL_8, 2)
RELOC_NUMBER (R_XGATE_16, 3)
RELOC_NUMBER (R_XGATE_32, 4)
RELOC_NUMBER (R_XGATE_PCREL_16, 5)
/* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_XGATE_GNU_VTINHERIT, 6)
RELOC_NUMBER (R_XGATE_GNU_VTENTRY, 7)
 
RELOC_NUMBER (R_XGATE_24, 8)
RELOC_NUMBER (R_XGATE_LO16, 9)
RELOC_NUMBER (R_XGATE_GPAGE, 10)
RELOC_NUMBER (R_XGATE_PCREL_9, 11)
RELOC_NUMBER (R_XGATE_PCREL_10, 12)
RELOC_NUMBER (R_XGATE_IMM8_LO, 13)
RELOC_NUMBER (R_XGATE_IMM8_HI, 14)
RELOC_NUMBER (R_XGATE_IMM3, 15)
RELOC_NUMBER (R_XGATE_IMM4, 16)
RELOC_NUMBER (R_XGATE_IMM5, 17)
 
/* GNU extension for linker relaxation.
Mark beginning of a jump instruction (any form). */
RELOC_NUMBER (R_XGATE_RL_JUMP, 18)
 
/* Mark beginning of Gcc relaxation group instruction. */
RELOC_NUMBER (R_XGATE_RL_GROUP, 19)
END_RELOC_NUMBERS (R_XGATE_max)
 
/* Processor specific flags for the ELF header e_flags field. */
 
/* ABI identification. */
#define EF_XGATE_ABI 0x00000000F
 
/* Integers are 32-bit long. */
#define E_XGATE_I32 0x000000001
 
/* Doubles are 64-bit long. */
#define E_XGATE_F64 0x000000002
 
#define EF_XGATE_MACH_MASK 0xF0
 
#define EF_XGATE_MACH 0x80 /* XGATE microcontroller. */
 
#define E_M68HCS12X_GLOBAL 0x100
 
/* Identify interrupt handlers. This is used by the debugger to
correctly compute the stack frame. */
#define STO_XGATE_INTERRUPT 0x40
#endif
/contrib/toolchain/binutils/include/elf/xstormy16.h
0,0 → 1,57
/* XSTORMY16 ELF support for BFD.
Copyright (C) 2001, 2002, 2010 Free Software Foundation, Inc.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
#ifndef _ELF_XSTORMY16_H
#define _ELF_XSTORMY16_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_xstormy16_reloc_type)
RELOC_NUMBER (R_XSTORMY16_NONE, 0)
 
RELOC_NUMBER (R_XSTORMY16_32, 1)
RELOC_NUMBER (R_XSTORMY16_16, 2)
RELOC_NUMBER (R_XSTORMY16_8, 3)
RELOC_NUMBER (R_XSTORMY16_PC32, 4)
RELOC_NUMBER (R_XSTORMY16_PC16, 5)
RELOC_NUMBER (R_XSTORMY16_PC8, 6)
 
RELOC_NUMBER (R_XSTORMY16_REL_12, 7)
RELOC_NUMBER (R_XSTORMY16_24, 8)
RELOC_NUMBER (R_XSTORMY16_FPTR16, 9)
 
RELOC_NUMBER (R_XSTORMY16_LO16, 10)
RELOC_NUMBER (R_XSTORMY16_HI16, 11)
RELOC_NUMBER (R_XSTORMY16_12, 12)
 
RELOC_NUMBER (R_XSTORMY16_GNU_VTINHERIT, 128)
RELOC_NUMBER (R_XSTORMY16_GNU_VTENTRY, 129)
END_RELOC_NUMBERS (R_XSTORMY16_max)
 
/* Define the data & instruction memory discriminator. In a linked
executable, an symbol should be deemed to point to an instruction
if ((address & XSTORMY16_INSN_MASK) == XSTORMY16_INSN_VALUE), and similarly
for the data space. See also `ld/emulparams/elf32xstormy16.sh'. */
#define XSTORMY16_DATA_MASK 0xffc00000
#define XSTORMY16_DATA_VALUE 0x00000000
#define XSTORMY16_INSN_MASK 0xffc00000
#define XSTORMY16_INSN_VALUE 0x00400000
 
#endif /* _ELF_XSTORMY16_H */
/contrib/toolchain/binutils/include/elf/xtensa.h
0,0 → 1,208
/* Xtensa ELF support for BFD.
Copyright 2003, 2004, 2007, 2008, 2010 Free Software Foundation, Inc.
Contributed by Bob Wilson (bwilson@tensilica.com) at Tensilica.
 
This file is part of BFD, the Binary File Descriptor library.
 
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301,
USA. */
 
/* This file holds definitions specific to the Xtensa ELF ABI. */
 
#ifndef _ELF_XTENSA_H
#define _ELF_XTENSA_H
 
#include "elf/reloc-macros.h"
 
/* Relocations. */
START_RELOC_NUMBERS (elf_xtensa_reloc_type)
RELOC_NUMBER (R_XTENSA_NONE, 0)
RELOC_NUMBER (R_XTENSA_32, 1)
RELOC_NUMBER (R_XTENSA_RTLD, 2)
RELOC_NUMBER (R_XTENSA_GLOB_DAT, 3)
RELOC_NUMBER (R_XTENSA_JMP_SLOT, 4)
RELOC_NUMBER (R_XTENSA_RELATIVE, 5)
RELOC_NUMBER (R_XTENSA_PLT, 6)
RELOC_NUMBER (R_XTENSA_OP0, 8)
RELOC_NUMBER (R_XTENSA_OP1, 9)
RELOC_NUMBER (R_XTENSA_OP2, 10)
RELOC_NUMBER (R_XTENSA_ASM_EXPAND, 11)
RELOC_NUMBER (R_XTENSA_ASM_SIMPLIFY, 12)
RELOC_NUMBER (R_XTENSA_32_PCREL, 14)
RELOC_NUMBER (R_XTENSA_GNU_VTINHERIT, 15)
RELOC_NUMBER (R_XTENSA_GNU_VTENTRY, 16)
RELOC_NUMBER (R_XTENSA_DIFF8, 17)
RELOC_NUMBER (R_XTENSA_DIFF16, 18)
RELOC_NUMBER (R_XTENSA_DIFF32, 19)
RELOC_NUMBER (R_XTENSA_SLOT0_OP, 20)
RELOC_NUMBER (R_XTENSA_SLOT1_OP, 21)
RELOC_NUMBER (R_XTENSA_SLOT2_OP, 22)
RELOC_NUMBER (R_XTENSA_SLOT3_OP, 23)
RELOC_NUMBER (R_XTENSA_SLOT4_OP, 24)
RELOC_NUMBER (R_XTENSA_SLOT5_OP, 25)
RELOC_NUMBER (R_XTENSA_SLOT6_OP, 26)
RELOC_NUMBER (R_XTENSA_SLOT7_OP, 27)
RELOC_NUMBER (R_XTENSA_SLOT8_OP, 28)
RELOC_NUMBER (R_XTENSA_SLOT9_OP, 29)
RELOC_NUMBER (R_XTENSA_SLOT10_OP, 30)
RELOC_NUMBER (R_XTENSA_SLOT11_OP, 31)
RELOC_NUMBER (R_XTENSA_SLOT12_OP, 32)
RELOC_NUMBER (R_XTENSA_SLOT13_OP, 33)
RELOC_NUMBER (R_XTENSA_SLOT14_OP, 34)
RELOC_NUMBER (R_XTENSA_SLOT0_ALT, 35)
RELOC_NUMBER (R_XTENSA_SLOT1_ALT, 36)
RELOC_NUMBER (R_XTENSA_SLOT2_ALT, 37)
RELOC_NUMBER (R_XTENSA_SLOT3_ALT, 38)
RELOC_NUMBER (R_XTENSA_SLOT4_ALT, 39)
RELOC_NUMBER (R_XTENSA_SLOT5_ALT, 40)
RELOC_NUMBER (R_XTENSA_SLOT6_ALT, 41)
RELOC_NUMBER (R_XTENSA_SLOT7_ALT, 42)
RELOC_NUMBER (R_XTENSA_SLOT8_ALT, 43)
RELOC_NUMBER (R_XTENSA_SLOT9_ALT, 44)
RELOC_NUMBER (R_XTENSA_SLOT10_ALT, 45)
RELOC_NUMBER (R_XTENSA_SLOT11_ALT, 46)
RELOC_NUMBER (R_XTENSA_SLOT12_ALT, 47)
RELOC_NUMBER (R_XTENSA_SLOT13_ALT, 48)
RELOC_NUMBER (R_XTENSA_SLOT14_ALT, 49)
RELOC_NUMBER (R_XTENSA_TLSDESC_FN, 50)
RELOC_NUMBER (R_XTENSA_TLSDESC_ARG, 51)
RELOC_NUMBER (R_XTENSA_TLS_DTPOFF, 52)
RELOC_NUMBER (R_XTENSA_TLS_TPOFF, 53)
RELOC_NUMBER (R_XTENSA_TLS_FUNC, 54)
RELOC_NUMBER (R_XTENSA_TLS_ARG, 55)
RELOC_NUMBER (R_XTENSA_TLS_CALL, 56)
END_RELOC_NUMBERS (R_XTENSA_max)
 
/* Processor-specific flags for the ELF header e_flags field. */
 
/* Four-bit Xtensa machine type field. */
#define EF_XTENSA_MACH 0x0000000f
 
/* Various CPU types. */
#define E_XTENSA_MACH 0x00000000
 
/* Leave bits 0xf0 alone in case we ever have more than 16 cpu types.
Highly unlikely, but what the heck. */
 
#define EF_XTENSA_XT_INSN 0x00000100
#define EF_XTENSA_XT_LIT 0x00000200
 
 
/* Processor-specific dynamic array tags. */
 
/* Offset of the table that records the GOT location(s). */
#define DT_XTENSA_GOT_LOC_OFF 0x70000000
 
/* Number of entries in the GOT location table. */
#define DT_XTENSA_GOT_LOC_SZ 0x70000001
 
 
/* Definitions for instruction and literal property tables. The
tables for ".gnu.linkonce.*" sections are placed in the following
sections:
 
instruction tables: .gnu.linkonce.x.*
literal tables: .gnu.linkonce.p.*
*/
 
#define XTENSA_INSN_SEC_NAME ".xt.insn"
#define XTENSA_LIT_SEC_NAME ".xt.lit"
#define XTENSA_PROP_SEC_NAME ".xt.prop"
 
typedef struct property_table_entry_t
{
bfd_vma address;
bfd_vma size;
flagword flags;
} property_table_entry;
 
/* Flags in the property tables to specify whether blocks of memory are
literals, instructions, data, or unreachable. For instructions,
blocks that begin loop targets and branch targets are designated.
Blocks that do not allow density instructions, instruction reordering
or transformation are also specified. Finally, for branch targets,
branch target alignment priority is included. Alignment of the next
block is specified in the current block and the size of the current
block does not include any fill required to align to the next
block. */
#define XTENSA_PROP_LITERAL 0x00000001
#define XTENSA_PROP_INSN 0x00000002
#define XTENSA_PROP_DATA 0x00000004
#define XTENSA_PROP_UNREACHABLE 0x00000008
/* Instruction-only properties at beginning of code. */
#define XTENSA_PROP_INSN_LOOP_TARGET 0x00000010
#define XTENSA_PROP_INSN_BRANCH_TARGET 0x00000020
/* Instruction-only properties about code. */
#define XTENSA_PROP_INSN_NO_DENSITY 0x00000040
#define XTENSA_PROP_INSN_NO_REORDER 0x00000080
/* Historically, NO_TRANSFORM was a property of instructions,
but it should apply to literals under certain circumstances. */
#define XTENSA_PROP_NO_TRANSFORM 0x00000100
 
/* Branch target alignment information. This transmits information
to the linker optimization about the priority of aligning a
particular block for branch target alignment: None, low priority,
high priority, or required. These only need to be checked in
instruction blocks marked as XTENSA_PROP_INSN_BRANCH_TARGET.
Common usage is:
 
switch (GET_XTENSA_PROP_BT_ALIGN(flags))
case XTENSA_PROP_BT_ALIGN_NONE:
case XTENSA_PROP_BT_ALIGN_LOW:
case XTENSA_PROP_BT_ALIGN_HIGH:
case XTENSA_PROP_BT_ALIGN_REQUIRE:
*/
#define XTENSA_PROP_BT_ALIGN_MASK 0x00000600
 
/* No branch target alignment. */
#define XTENSA_PROP_BT_ALIGN_NONE 0x0
/* Low priority branch target alignment. */
#define XTENSA_PROP_BT_ALIGN_LOW 0x1
/* High priority branch target alignment. */
#define XTENSA_PROP_BT_ALIGN_HIGH 0x2
/* Required branch target alignment. */
#define XTENSA_PROP_BT_ALIGN_REQUIRE 0x3
 
#define GET_XTENSA_PROP_BT_ALIGN(flag) \
(((unsigned)((flag) & (XTENSA_PROP_BT_ALIGN_MASK))) >> 9)
#define SET_XTENSA_PROP_BT_ALIGN(flag, align) \
(((flag) & (~XTENSA_PROP_BT_ALIGN_MASK)) | \
(((align) << 9) & XTENSA_PROP_BT_ALIGN_MASK))
 
/* Alignment is specified in the block BEFORE the one that needs
alignment. Up to 5 bits. Use GET_XTENSA_PROP_ALIGNMENT(flags) to
get the required alignment specified as a power of 2. Use
SET_XTENSA_PROP_ALIGNMENT(flags, pow2) to set the required
alignment. Be careful of side effects since the SET will evaluate
flags twice. Also, note that the SIZE of a block in the property
table does not include the alignment size, so the alignment fill
must be calculated to determine if two blocks are contiguous.
TEXT_ALIGN is not currently implemented but is a placeholder for a
possible future implementation. */
 
#define XTENSA_PROP_ALIGN 0x00000800
 
#define XTENSA_PROP_ALIGNMENT_MASK 0x0001f000
 
#define GET_XTENSA_PROP_ALIGNMENT(flag) \
(((unsigned)((flag) & (XTENSA_PROP_ALIGNMENT_MASK))) >> 12)
#define SET_XTENSA_PROP_ALIGNMENT(flag, align) \
(((flag) & (~XTENSA_PROP_ALIGNMENT_MASK)) | \
(((align) << 12) & XTENSA_PROP_ALIGNMENT_MASK))
 
#define XTENSA_PROP_INSN_ABSLIT 0x00020000
 
#endif /* _ELF_XTENSA_H */