X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=include%2Felf%2Fppc.h;h=da00df8688d5f288bf8b66a2eca451e2b855aae9;hb=e8910a83af41c3dbfd00191b2720d4094f8d9532;hp=14c643a549e88691ff577addc8f02779b13bc8e9;hpb=e054468f6cf120142dbfdf64226a5c6c09ecf998;p=binutils-gdb.git diff --git a/include/elf/ppc.h b/include/elf/ppc.h index 14c643a549e..da00df8688d 100644 --- a/include/elf/ppc.h +++ b/include/elf/ppc.h @@ -1,26 +1,28 @@ /* PPC ELF support for BFD. Copyright 1995, 1996, 1998, 2000, 2001, 2002, 2003, 2005, 2007, 2008, - 2009 Free Software Foundation, Inc. + 2009, 2010 Free Software Foundation, Inc. - By Michael Meissner, Cygnus Support, , from information - in the System V Application Binary Interface, PowerPC Processor Supplement - and the PowerPC Embedded Application Binary Interface (eabi). + By Michael Meissner, Cygnus Support, , + 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 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 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. + 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. */ + 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. */ @@ -73,10 +75,9 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type) #ifndef RELOC_MACROS_GEN_FUNC /* Fake relocations for branch stubs, only used internally by ld. */ - RELOC_NUMBER (R_PPC_RELAX32, 48) - RELOC_NUMBER (R_PPC_RELAX32PC, 49) - RELOC_NUMBER (R_PPC_RELAX32_PLT, 50) - RELOC_NUMBER (R_PPC_RELAX32PC_PLT, 51) + 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. */ @@ -130,6 +131,25 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type) 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) @@ -153,7 +173,11 @@ END_RELOC_NUMBERS (R_PPC_max) ((R) >= R_PPC_TLS && (R) <= R_PPC_GOT_DTPREL16_HA) /* Specify the value of _GLOBAL_OFFSET_TABLE_. */ -#define DT_PPC_GOT DT_LOPROC +#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. */ @@ -162,6 +186,12 @@ END_RELOC_NUMBERS (R_PPC_max) #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 \ @@ -170,15 +200,6 @@ END_RELOC_NUMBERS (R_PPC_max) specified in the associated \ symbol table entry. */ -/* Processor specific section flags, sh_flags field. */ - -#define SHF_EXCLUDE 0x80000000 /* Link editor is to exclude \ - this section from executable \ - and shared objects that it \ - builds when those objects \ - are not to be furhter \ - relocated. */ - /* Object attribute tags. */ enum {