daily update
[deliverable/binutils-gdb.git] / bfd / elfxx-ia64.c
index 0646ed1a8fc94568eb937b25868c0cf1ee6beb67..bd73d28465ee9734bf46d1b0a684c87dceb56b9c 100644 (file)
@@ -28,6 +28,7 @@
 #include "elf/ia64.h"
 #include "objalloc.h"
 #include "hashtab.h"
+#include "bfd_stdint.h"
 
 #define ARCH_SIZE      NN
 
@@ -636,7 +637,7 @@ elfNN_ia64_relax_br (bfd_byte *contents, bfd_vma off)
   bfd_byte *hit_addr;
 
   hit_addr = (bfd_byte *) (contents + off);
-  br_slot = (long) hit_addr & 0x3;
+  br_slot = (intptr_t) hit_addr & 0x3;
   hit_addr -= br_slot;
   t0 = bfd_getl64 (hit_addr + 0);
   t1 = bfd_getl64 (hit_addr + 8);
@@ -738,7 +739,7 @@ elfNN_ia64_relax_brl (bfd_byte *contents, bfd_vma off)
   bfd_vma t0, t1, i0, i1, i2;
 
   hit_addr = (bfd_byte *) (contents + off);
-  hit_addr -= (long) hit_addr & 0x3;
+  hit_addr -= (intptr_t) hit_addr & 0x3;
   t0 = bfd_getl64 (hit_addr);
   t1 = bfd_getl64 (hit_addr + 8);
 
@@ -2598,17 +2599,10 @@ get_reloc_section (bfd *abfd,
 
   srel_name = (bfd_elf_string_from_elf_section
               (abfd, elf_elfheader(abfd)->e_shstrndx,
-               elf_section_data(sec)->rel_hdr.sh_name));
+               _bfd_elf_single_rel_hdr (sec)->sh_name));
   if (srel_name == NULL)
     return NULL;
 
-  BFD_ASSERT ((CONST_STRNEQ (srel_name, ".rela")
-              && strcmp (bfd_get_section_name (abfd, sec),
-                         srel_name+5) == 0)
-             || (CONST_STRNEQ (srel_name, ".rel")
-                 && strcmp (bfd_get_section_name (abfd, sec),
-                            srel_name+4) == 0));
-
   dynobj = ia64_info->root.dynobj;
   if (!dynobj)
     ia64_info->root.dynobj = dynobj = abfd;
@@ -3881,7 +3875,7 @@ elfNN_ia64_install_value (bfd_byte *hit_addr, bfd_vma v,
   switch (opnd)
     {
     case IA64_OPND_IMMU64:
-      hit_addr -= (long) hit_addr & 0x3;
+      hit_addr -= (intptr_t) hit_addr & 0x3;
       t0 = bfd_getl64 (hit_addr);
       t1 = bfd_getl64 (hit_addr + 8);
 
@@ -3910,7 +3904,7 @@ elfNN_ia64_install_value (bfd_byte *hit_addr, bfd_vma v,
       break;
 
     case IA64_OPND_TGT64:
-      hit_addr -= (long) hit_addr & 0x3;
+      hit_addr -= (intptr_t) hit_addr & 0x3;
       t0 = bfd_getl64 (hit_addr);
       t1 = bfd_getl64 (hit_addr + 8);
 
@@ -3935,7 +3929,7 @@ elfNN_ia64_install_value (bfd_byte *hit_addr, bfd_vma v,
       break;
 
     default:
-      switch ((long) hit_addr & 0x3)
+      switch ((intptr_t) hit_addr & 0x3)
        {
        case 0: shift =  5; break;
        case 1: shift = 14; hit_addr += 3; break;
@@ -4662,16 +4656,9 @@ elfNN_ia64_relocate_section (bfd *output_bfd,
            continue;
        }
 
-      /* For relocs against symbols from removed linkonce sections,
-        or sections discarded by a linker script, we just want the
-        section contents zeroed.  Avoid any special processing.  */
       if (sym_sec != NULL && elf_discarded_section (sym_sec))
-       {
-         _bfd_clear_contents (howto, input_bfd, contents + rel->r_offset);
-         rel->r_info = 0;
-         rel->r_addend = 0;
-         continue;
-       }
+       RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
+                                        rel, relend, howto, contents);
 
       if (info->relocatable)
        continue;
@@ -4695,7 +4682,7 @@ elfNN_ia64_relocate_section (bfd *output_bfd,
        case R_IA64_DIR64LSB:
          /* Install a dynamic relocation for this reloc.  */
          if ((dynamic_symbol_p || info->shared)
-             && r_symndx != 0
+             && r_symndx != STN_UNDEF
              && (input_section->flags & SEC_ALLOC) != 0)
            {
              unsigned int dyn_r_type;
@@ -4924,7 +4911,7 @@ elfNN_ia64_relocate_section (bfd *output_bfd,
        case R_IA64_PCREL64MSB:
        case R_IA64_PCREL64LSB:
          /* Install a dynamic relocation for this reloc.  */
-         if (dynamic_symbol_p && r_symndx != 0)
+         if (dynamic_symbol_p && r_symndx != STN_UNDEF)
            {
              BFD_ASSERT (srel != NULL);
 
@@ -5996,6 +5983,7 @@ elfNN_vms_close_and_cleanup (bfd *abfd)
 #define TARGET_BIG_SYM                 bfd_elfNN_ia64_big_vec
 #define TARGET_BIG_NAME                        "elfNN-ia64-big"
 #define ELF_ARCH                       bfd_arch_ia64
+#define ELF_TARGET_ID                  IA64_ELF_DATA
 #define ELF_MACHINE_CODE               EM_IA_64
 #define ELF_MACHINE_ALT1               1999    /* EAS2.3 */
 #define ELF_MACHINE_ALT2               1998    /* EAS2.2 */
This page took 0.025153 seconds and 4 git commands to generate.