* ppc.h: Split out ppc64 definitions to..
authorAlan Modra <amodra@gmail.com>
Thu, 16 Jan 2003 04:08:47 +0000 (04:08 +0000)
committerAlan Modra <amodra@gmail.com>
Thu, 16 Jan 2003 04:08:47 +0000 (04:08 +0000)
* pcc64.h: ..here.  New file.
(R_PPC64_REL30): Rename from R_PPC64_ADDR30.

include/elf/ChangeLog
include/elf/ppc.h
include/elf/ppc64.h [new file with mode: 0644]

index 40c8884..07c9bbf 100644 (file)
@@ -1,3 +1,9 @@
+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
index dfb43f4..9234860 100644 (file)
@@ -1,5 +1,6 @@
 /* PPC ELF support for BFD.
-   Copyright 1995, 1996, 1998, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1995, 1996, 1998, 2000, 2001, 2002, 2003
+   Free Software Foundation, Inc.
 
    By Michael Meissner, Cygnus Support, <meissner@cygnus.com>, from information
    in the System V Application Binary Interface, PowerPC Processor Supplement
@@ -70,39 +71,6 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type)
   RELOC_NUMBER (R_PPC_SECTOFF_HA, 36)
   RELOC_NUMBER (R_PPC_ADDR30, 37)
 
-/* The following relocs are from the 64-bit PowerPC ELF ABI. */
-  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)
-
 /* The remaining relocs are from the Embedded ELF ABI, and are not
    in the SVR4 ELF ABI.  */
   RELOC_NUMBER (R_PPC_EMB_NADDR32, 101)
@@ -132,51 +100,6 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type)
 
 END_RELOC_NUMBERS (R_PPC_max)
 
-/* Aliases for R_PPC64-relocs. */
-#define R_PPC64_NONE              R_PPC_NONE
-#define R_PPC64_ADDR32            R_PPC_ADDR32
-#define R_PPC64_ADDR24            R_PPC_ADDR24
-#define R_PPC64_ADDR16            R_PPC_ADDR16
-#define R_PPC64_ADDR16_LO         R_PPC_ADDR16_LO
-#define R_PPC64_ADDR16_HI         R_PPC_ADDR16_HI
-#define R_PPC64_ADDR16_HA         R_PPC_ADDR16_HA
-#define R_PPC64_ADDR14            R_PPC_ADDR14
-#define R_PPC64_ADDR14_BRTAKEN    R_PPC_ADDR14_BRTAKEN
-#define R_PPC64_ADDR14_BRNTAKEN   R_PPC_ADDR14_BRNTAKEN
-#define R_PPC64_REL24             R_PPC_REL24
-#define R_PPC64_REL14             R_PPC_REL14
-#define R_PPC64_REL14_BRTAKEN     R_PPC_REL14_BRTAKEN
-#define R_PPC64_REL14_BRNTAKEN    R_PPC_REL14_BRNTAKEN
-#define R_PPC64_GOT16             R_PPC_GOT16
-#define R_PPC64_GOT16_LO          R_PPC_GOT16_LO
-#define R_PPC64_GOT16_HI          R_PPC_GOT16_HI
-#define R_PPC64_GOT16_HA          R_PPC_GOT16_HA
-#define R_PPC64_COPY              R_PPC_COPY
-#define R_PPC64_GLOB_DAT          R_PPC_GLOB_DAT
-#define R_PPC64_JMP_SLOT          R_PPC_JMP_SLOT
-#define R_PPC64_RELATIVE          R_PPC_RELATIVE
-#define R_PPC64_UADDR32           R_PPC_UADDR32
-#define R_PPC64_UADDR16           R_PPC_UADDR16
-#define R_PPC64_REL32             R_PPC_REL32
-#define R_PPC64_PLT32             R_PPC_PLT32
-#define R_PPC64_PLTREL32          R_PPC_PLTREL32
-#define R_PPC64_PLT16_LO          R_PPC_PLT16_LO
-#define R_PPC64_PLT16_HI          R_PPC_PLT16_HI
-#define R_PPC64_PLT16_HA          R_PPC_PLT16_HA
-#define R_PPC64_SECTOFF           R_PPC_SECTOFF
-#define R_PPC64_SECTOFF_LO        R_PPC_SECTOFF_LO
-#define R_PPC64_SECTOFF_HI        R_PPC_SECTOFF_HI
-#define R_PPC64_SECTOFF_HA        R_PPC_SECTOFF_HA
-#define R_PPC64_ADDR30            R_PPC_ADDR30
-#define R_PPC64_GNU_VTINHERIT    R_PPC_GNU_VTINHERIT
-#define R_PPC64_GNU_VTENTRY      R_PPC_GNU_VTENTRY
-
-/* 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)
 
 /* Processor specific flags for the ELF header e_flags field.  */
 
diff --git a/include/elf/ppc64.h b/include/elf/ppc64.h
new file mode 100644 (file)
index 0000000..1cbb639
--- /dev/null
@@ -0,0 +1,111 @@
+/* PPC64 ELF support for BFD.
+   Copyright 2003 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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)
+
+  /* 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)
+
+/* 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)
+
+#endif /* _ELF_PPC64_H */