sje patch for 32-bit IA-64 ELF relocs for HPUX
authorJim Wilson <wilson@tuliptree.org>
Thu, 12 Jul 2001 01:24:14 +0000 (01:24 +0000)
committerJim Wilson <wilson@tuliptree.org>
Thu, 12 Jul 2001 01:24:14 +0000 (01:24 +0000)
* reloc.c (bfd_reloc_code_type): Add IA64 relocs
BFD_RELOC_IA64_LTOFF_FPTR32MSB and BFD_RELOC_IA64_LTOFF_FPTR32LSB
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* elfxx-ia64.c (ia64_howto_table): Define how to handle
new relocations.
(elfNN_ia64_reloc_type_lookup): Handle new relocations.
(elfNN_ia64_check_relocs): Likewise.
(elfNN_ia64_install_value): Likewise.
(elfNN_ia64_relocate_section): Likewise.

bfd/ChangeLog
bfd/bfd-in2.h
bfd/elfxx-ia64.c
bfd/libbfd.h
bfd/reloc.c

index 6bc50e51192e06edeb9beff7efdf88eb9304ccf5..795d06eeb1e81fd6d872386439142677f38ddec7 100644 (file)
@@ -1,3 +1,16 @@
+2001-07-11  Steve Ellcey  <sje@cup.hp.com>
+
+       * reloc.c (bfd_reloc_code_type): Add IA64 relocs
+       BFD_RELOC_IA64_LTOFF_FPTR32MSB and BFD_RELOC_IA64_LTOFF_FPTR32LSB
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Regenerate.
+       * elfxx-ia64.c (ia64_howto_table): Define how to handle
+       new relocations.
+       (elfNN_ia64_reloc_type_lookup): Handle new relocations.
+       (elfNN_ia64_check_relocs): Likewise.
+       (elfNN_ia64_install_value): Likewise.
+       (elfNN_ia64_relocate_section): Likewise.
+
 2001-07-11  Jakub Jelinek  <jakub@redhat.com>
 
        * elf32-sparc.c (_bfd_sparc_elf_howto_table): Remove support for
index 724fa25847cd1dc5379a69cfb19dab514f6a4b6c..c20f8b0b65e57e5647333cab8725089623f2f36f 100644 (file)
@@ -2672,6 +2672,8 @@ this offset in the reloc's section offset. */
   BFD_RELOC_IA64_PCREL64LSB,
   BFD_RELOC_IA64_LTOFF_FPTR22,
   BFD_RELOC_IA64_LTOFF_FPTR64I,
+  BFD_RELOC_IA64_LTOFF_FPTR32MSB,
+  BFD_RELOC_IA64_LTOFF_FPTR32LSB,
   BFD_RELOC_IA64_LTOFF_FPTR64MSB,
   BFD_RELOC_IA64_LTOFF_FPTR64LSB,
   BFD_RELOC_IA64_SEGREL32MSB,
index 6d2d1910603df38556dbd9e7dcbfc351c57067e0..481834bb4db5db9c16001271a43421d4ff3eba7a 100644 (file)
@@ -360,6 +360,8 @@ static reloc_howto_type ia64_howto_table[] =
 
     IA64_HOWTO (R_IA64_LTOFF_FPTR22, "LTOFF_FPTR22", 0, false, true),
     IA64_HOWTO (R_IA64_LTOFF_FPTR64I, "LTOFF_FPTR64I", 0, false, true),
+    IA64_HOWTO (R_IA64_LTOFF_FPTR32MSB, "LTOFF_FPTR32MSB", 2, false, true),
+    IA64_HOWTO (R_IA64_LTOFF_FPTR32LSB, "LTOFF_FPTR32LSB", 2, false, true),
     IA64_HOWTO (R_IA64_LTOFF_FPTR64MSB, "LTOFF_FPTR64MSB", 4, false, true),
     IA64_HOWTO (R_IA64_LTOFF_FPTR64LSB, "LTOFF_FPTR64LSB", 4, false, true),
 
@@ -480,6 +482,8 @@ elfNN_ia64_reloc_type_lookup (abfd, bfd_code)
 
     case BFD_RELOC_IA64_LTOFF_FPTR22:  rtype = R_IA64_LTOFF_FPTR22; break;
     case BFD_RELOC_IA64_LTOFF_FPTR64I: rtype = R_IA64_LTOFF_FPTR64I; break;
+    case BFD_RELOC_IA64_LTOFF_FPTR32MSB: rtype = R_IA64_LTOFF_FPTR32MSB; break;
+    case BFD_RELOC_IA64_LTOFF_FPTR32LSB: rtype = R_IA64_LTOFF_FPTR32LSB; break;
     case BFD_RELOC_IA64_LTOFF_FPTR64MSB: rtype = R_IA64_LTOFF_FPTR64MSB; break;
     case BFD_RELOC_IA64_LTOFF_FPTR64LSB: rtype = R_IA64_LTOFF_FPTR64LSB; break;
 
@@ -2007,6 +2011,8 @@ elfNN_ia64_check_relocs (abfd, info, sec, relocs)
 
        case R_IA64_LTOFF_FPTR22:
        case R_IA64_LTOFF_FPTR64I:
+       case R_IA64_LTOFF_FPTR32MSB:
+       case R_IA64_LTOFF_FPTR32LSB:
        case R_IA64_LTOFF_FPTR64MSB:
        case R_IA64_LTOFF_FPTR64LSB:
          need_entry = NEED_FPTR | NEED_GOT | NEED_LTOFF_FPTR;
@@ -2814,6 +2820,7 @@ elfNN_ia64_install_value (abfd, hit_addr, val, r_type)
     case R_IA64_GPREL32MSB:
     case R_IA64_FPTR32MSB:
     case R_IA64_PCREL32MSB:
+    case R_IA64_LTOFF_FPTR32MSB:
     case R_IA64_SEGREL32MSB:
     case R_IA64_SECREL32MSB:
     case R_IA64_LTV32MSB:
@@ -2824,6 +2831,7 @@ elfNN_ia64_install_value (abfd, hit_addr, val, r_type)
     case R_IA64_GPREL32LSB:
     case R_IA64_FPTR32LSB:
     case R_IA64_PCREL32LSB:
+    case R_IA64_LTOFF_FPTR32LSB:
     case R_IA64_SEGREL32LSB:
     case R_IA64_SECREL32LSB:
     case R_IA64_LTV32LSB:
@@ -3678,6 +3686,8 @@ elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section,
 
        case R_IA64_LTOFF_FPTR22:
        case R_IA64_LTOFF_FPTR64I:
+       case R_IA64_LTOFF_FPTR32MSB:
+       case R_IA64_LTOFF_FPTR32LSB:
        case R_IA64_LTOFF_FPTR64MSB:
        case R_IA64_LTOFF_FPTR64LSB:
          {
index 536d67ab5e613cc10730a0126929fa337b831c52..d9ddc2330050dd00dcd382333afbe742a42ac36e 100644 (file)
@@ -1006,6 +1006,8 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_IA64_PCREL64LSB",
   "BFD_RELOC_IA64_LTOFF_FPTR22",
   "BFD_RELOC_IA64_LTOFF_FPTR64I",
+  "BFD_RELOC_IA64_LTOFF_FPTR32MSB",
+  "BFD_RELOC_IA64_LTOFF_FPTR32LSB",
   "BFD_RELOC_IA64_LTOFF_FPTR64MSB",
   "BFD_RELOC_IA64_LTOFF_FPTR64LSB",
   "BFD_RELOC_IA64_SEGREL32MSB",
index 6d9b35b7f7649640dcf5846ece06a704d7f7bfc1..68cc75b30b0cd097c3948a5f79d0e556f7cca921 100644 (file)
@@ -2935,6 +2935,10 @@ ENUMX
   BFD_RELOC_IA64_LTOFF_FPTR22
 ENUMX
   BFD_RELOC_IA64_LTOFF_FPTR64I
+ENUMX
+  BFD_RELOC_IA64_LTOFF_FPTR32MSB
+ENUMX
+  BFD_RELOC_IA64_LTOFF_FPTR32LSB
 ENUMX
   BFD_RELOC_IA64_LTOFF_FPTR64MSB
 ENUMX