Create new common/pathstuff.[ch]
[deliverable/binutils-gdb.git] / bfd / elf32-i860.c
index b890384bc86e9c922cc2bad80e1afe915aec2b64..737e7f5990c9df544dd3f0077d8889372bc9fb0c 100644 (file)
@@ -1,7 +1,5 @@
 /* Intel i860 specific support for 32-bit ELF.
-   Copyright 1993, 1995, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008,
-   2010, 2011, 2012
-   Free Software Foundation, Inc.
+   Copyright (C) 1993-2018 Free Software Foundation, Inc.
 
    Full i860 support contributed by Jason Eckhardt <jle@cygnus.com>.
 
 /* special_function for R_860_PC26 relocation.  */
 static bfd_reloc_status_type
 i860_howto_pc26_reloc (bfd *abfd ATTRIBUTE_UNUSED,
-                       arelent *reloc_entry,
-                       asymbol *symbol,
-                       void *data ATTRIBUTE_UNUSED,
-                       asection *input_section,
-                       bfd *output_bfd,
-                       char **error_message ATTRIBUTE_UNUSED)
+                      arelent *reloc_entry,
+                      asymbol *symbol,
+                      void *data ATTRIBUTE_UNUSED,
+                      asection *input_section,
+                      bfd *output_bfd,
+                      char **error_message ATTRIBUTE_UNUSED)
 {
   bfd_vma insn;
   bfd_vma relocation;
@@ -70,13 +68,13 @@ i860_howto_pc26_reloc (bfd *abfd ATTRIBUTE_UNUSED,
 
   /* Adjust for PC-relative relocation.  */
   relocation -= (input_section->output_section->vma
-                 + input_section->output_offset
-                 + reloc_entry->address
-                 + 4);
+                + input_section->output_offset
+                + reloc_entry->address
+                + 4);
 
   /* Check for target out of range.  */
   if ((bfd_signed_vma)relocation > (0x3ffffff << 2)
-      || (bfd_signed_vma)relocation < (-0x4000000 << 2))
+      || (bfd_signed_vma)relocation < (-0x4000000 * 4))
     return bfd_reloc_outofrange;
 
   addr = (bfd_byte *) data + reloc_entry->address;
@@ -84,7 +82,7 @@ i860_howto_pc26_reloc (bfd *abfd ATTRIBUTE_UNUSED,
 
   relocation >>= reloc_entry->howto->rightshift;
   insn = (insn & ~reloc_entry->howto->dst_mask)
-         | (relocation & reloc_entry->howto->dst_mask);
+        | (relocation & reloc_entry->howto->dst_mask);
 
   bfd_put_32 (abfd, (bfd_vma) insn, addr);
 
@@ -94,12 +92,12 @@ i860_howto_pc26_reloc (bfd *abfd ATTRIBUTE_UNUSED,
 /* special_function for R_860_PC16 relocation.  */
 static bfd_reloc_status_type
 i860_howto_pc16_reloc (bfd *abfd,
-                       arelent *reloc_entry,
-                       asymbol *symbol,
-                       void *data,
-                       asection *input_section,
-                       bfd *output_bfd,
-                       char **error_message ATTRIBUTE_UNUSED)
+                      arelent *reloc_entry,
+                      asymbol *symbol,
+                      void *data,
+                      asection *input_section,
+                      bfd *output_bfd,
+                      char **error_message ATTRIBUTE_UNUSED)
 {
   bfd_vma insn;
   bfd_vma relocation;
@@ -133,13 +131,13 @@ i860_howto_pc16_reloc (bfd *abfd,
 
   /* Adjust for PC-relative relocation.  */
   relocation -= (input_section->output_section->vma
-                 + input_section->output_offset
-                 + reloc_entry->address
-                 + 4);
+                + input_section->output_offset
+                + reloc_entry->address
+                + 4);
 
   /* Check for target out of range.  */
   if ((bfd_signed_vma)relocation > (0x7fff << 2)
-      || (bfd_signed_vma)relocation < (-0x8000 << 2))
+      || (bfd_signed_vma)relocation < (-0x8000 * 4))
     return bfd_reloc_outofrange;
 
   addr = (bfd_byte *) data + reloc_entry->address;
@@ -147,7 +145,7 @@ i860_howto_pc16_reloc (bfd *abfd,
 
   relocation >>= reloc_entry->howto->rightshift;
   relocation = (((relocation & 0xf800) << 5) | (relocation & 0x7ff))
-               & reloc_entry->howto->dst_mask;
+              & reloc_entry->howto->dst_mask;
   insn = (insn & ~reloc_entry->howto->dst_mask) | relocation;
 
   bfd_put_32 (abfd, (bfd_vma) insn, addr);
@@ -158,12 +156,12 @@ i860_howto_pc16_reloc (bfd *abfd,
 /* special_function for R_860_HIGHADJ relocation.  */
 static bfd_reloc_status_type
 i860_howto_highadj_reloc (bfd *abfd,
-                          arelent *reloc_entry,
-                          asymbol *symbol,
-                          void *data,
-                          asection *input_section,
-                          bfd *output_bfd,
-                          char **error_message ATTRIBUTE_UNUSED)
+                         arelent *reloc_entry,
+                         asymbol *symbol,
+                         void *data,
+                         asection *input_section,
+                         bfd *output_bfd,
+                         char **error_message ATTRIBUTE_UNUSED)
 {
   bfd_vma insn;
   bfd_vma relocation;
@@ -211,12 +209,12 @@ i860_howto_highadj_reloc (bfd *abfd,
 /* special_function for R_860_SPLITn relocations.  */
 static bfd_reloc_status_type
 i860_howto_splitn_reloc (bfd *abfd,
-                         arelent *reloc_entry,
-                         asymbol *symbol,
-                         void *data,
-                         asection *input_section,
-                         bfd *output_bfd,
-                         char **error_message ATTRIBUTE_UNUSED)
+                        arelent *reloc_entry,
+                        asymbol *symbol,
+                        void *data,
+                        asection *input_section,
+                        bfd *output_bfd,
+                        char **error_message ATTRIBUTE_UNUSED)
 {
   bfd_vma insn;
   bfd_vma relocation;
@@ -252,7 +250,7 @@ i860_howto_splitn_reloc (bfd *abfd,
   insn = bfd_get_32 (abfd, addr);
 
   relocation = (((relocation & 0xf800) << 5) | (relocation & 0x7ff))
-               & reloc_entry->howto->dst_mask;
+              & reloc_entry->howto->dst_mask;
   insn = (insn & ~reloc_entry->howto->dst_mask) | relocation;
 
   bfd_put_32 (abfd, (bfd_vma) insn, addr);
@@ -266,11 +264,11 @@ static reloc_howto_type elf32_i860_howto_table [] =
   /* This relocation does nothing.  */
   HOWTO (R_860_NONE,           /* type */
         0,                     /* rightshift */
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        32,                    /* bitsize */
+        3,                     /* size (0 = byte, 1 = short, 2 = long) */
+        0,                     /* bitsize */
         FALSE,                 /* pc_relative */
         0,                     /* bitpos */
-        complain_overflow_bitfield, /* complain_on_overflow */
+        complain_overflow_dont, /* complain_on_overflow */
         bfd_elf_generic_reloc, /* special_function */
         "R_860_NONE",          /* name */
         FALSE,                 /* partial_inplace */
@@ -350,7 +348,7 @@ static reloc_howto_type elf32_i860_howto_table [] =
         FALSE),                /* pcrel_offset */
 
   /* A 26-bit PC-relative relocation.  */
-  HOWTO (R_860_PC26,           /* type */
+  HOWTO (R_860_PC26,           /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
@@ -362,9 +360,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         FALSE,                 /* partial_inplace */
         0x3ffffff,             /* src_mask */
         0x3ffffff,             /* dst_mask */
-        TRUE),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
-  HOWTO (R_860_PLT26,          /* type */
+  HOWTO (R_860_PLT26,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         26,                    /* bitsize */
@@ -376,10 +374,10 @@ static reloc_howto_type elf32_i860_howto_table [] =
         TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        TRUE),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
   /* A 16-bit PC-relative relocation.  */
-  HOWTO (R_860_PC16,           /* type */
+  HOWTO (R_860_PC16,           /* type */
         2,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
@@ -391,9 +389,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         FALSE,                 /* partial_inplace */
         0x1f07ff,              /* src_mask */
         0x1f07ff,              /* dst_mask */
-        TRUE),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
-  HOWTO (R_860_LOW0,           /* type */
+  HOWTO (R_860_LOW0,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
@@ -405,9 +403,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
-  HOWTO (R_860_SPLIT0,         /* type */
+  HOWTO (R_860_SPLIT0,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
@@ -419,9 +417,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         FALSE,                 /* partial_inplace */
         0x1f07ff,              /* src_mask */
         0x1f07ff,              /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
-  HOWTO (R_860_LOW1,           /* type */
+  HOWTO (R_860_LOW1,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
@@ -433,9 +431,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         FALSE,                 /* partial_inplace */
         0xfffe,                /* src_mask */
         0xfffe,                /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
-  HOWTO (R_860_SPLIT1,         /* type */
+  HOWTO (R_860_SPLIT1,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
@@ -447,9 +445,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         FALSE,                 /* partial_inplace */
         0x1f07fe,              /* src_mask */
         0x1f07fe,              /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
-  HOWTO (R_860_LOW2,           /* type */
+  HOWTO (R_860_LOW2,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
@@ -461,9 +459,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         FALSE,                 /* partial_inplace */
         0xfffc,                /* src_mask */
         0xfffc,                /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
-  HOWTO (R_860_SPLIT2,         /* type */
+  HOWTO (R_860_SPLIT2,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
@@ -475,9 +473,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         FALSE,                 /* partial_inplace */
         0x1f07fc,              /* src_mask */
         0x1f07fc,              /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
-  HOWTO (R_860_LOW3,           /* type */
+  HOWTO (R_860_LOW3,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
@@ -489,9 +487,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         FALSE,                 /* partial_inplace */
         0xfff8,                /* src_mask */
         0xfff8,                /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
-  HOWTO (R_860_LOGOT0,         /* type */
+  HOWTO (R_860_LOGOT0,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
@@ -503,9 +501,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        TRUE),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
-  HOWTO (R_860_SPGOT0,         /* type */
+  HOWTO (R_860_SPGOT0,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
@@ -517,9 +515,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        TRUE),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
-  HOWTO (R_860_LOGOT1,         /* type */
+  HOWTO (R_860_LOGOT1,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
@@ -531,9 +529,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        TRUE),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
-  HOWTO (R_860_SPGOT1,         /* type */
+  HOWTO (R_860_SPGOT1,         /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
@@ -545,9 +543,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        TRUE),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
-  HOWTO (R_860_LOGOTOFF0,        /* type */
+  HOWTO (R_860_LOGOTOFF0,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
@@ -559,9 +557,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
-  HOWTO (R_860_SPGOTOFF0,        /* type */
+  HOWTO (R_860_SPGOTOFF0,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
@@ -573,9 +571,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
-  HOWTO (R_860_LOGOTOFF1,        /* type */
+  HOWTO (R_860_LOGOTOFF1,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
@@ -587,7 +585,7 @@ static reloc_howto_type elf32_i860_howto_table [] =
         TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
   HOWTO (R_860_SPGOTOFF1,       /* type */
         0,                     /* rightshift */
@@ -601,9 +599,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
-  HOWTO (R_860_LOGOTOFF2,        /* type */
+  HOWTO (R_860_LOGOTOFF2,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
@@ -615,9 +613,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
-  HOWTO (R_860_LOGOTOFF3,        /* type */
+  HOWTO (R_860_LOGOTOFF3,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
@@ -629,9 +627,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
-  HOWTO (R_860_LOPC,           /* type */
+  HOWTO (R_860_LOPC,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
@@ -643,9 +641,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        TRUE),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
-  HOWTO (R_860_HIGHADJ,                /* type */
+  HOWTO (R_860_HIGHADJ,                /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
@@ -657,9 +655,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
-  HOWTO (R_860_HAGOT,          /* type */
+  HOWTO (R_860_HAGOT,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
@@ -671,9 +669,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        TRUE),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
-  HOWTO (R_860_HAGOTOFF,        /* type */
+  HOWTO (R_860_HAGOTOFF,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
@@ -685,9 +683,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
-  HOWTO (R_860_HAPC,           /* type */
+  HOWTO (R_860_HAPC,           /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
@@ -699,9 +697,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        TRUE),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
-  HOWTO (R_860_HIGH,           /* type */
+  HOWTO (R_860_HIGH,           /* type */
         16,                    /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
@@ -713,9 +711,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         FALSE,                 /* partial_inplace */
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 
-  HOWTO (R_860_HIGOT,          /* type */
+  HOWTO (R_860_HIGOT,          /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         16,                    /* bitsize */
@@ -727,9 +725,9 @@ static reloc_howto_type elf32_i860_howto_table [] =
         FALSE,                 /* partial_inplace */
         0,                     /* src_mask */
         0xffff,                /* dst_mask */
-        TRUE),                 /* pcrel_offset */
+        TRUE),                 /* pcrel_offset */
 
-  HOWTO (R_860_HIGOTOFF,        /* type */
+  HOWTO (R_860_HIGOTOFF,       /* type */
         0,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
         32,                    /* bitsize */
@@ -741,7 +739,7 @@ static reloc_howto_type elf32_i860_howto_table [] =
         TRUE,                  /* partial_inplace */
         0xffffffff,            /* src_mask */
         0xffffffff,            /* dst_mask */
-        FALSE),                /* pcrel_offset */
+        FALSE),                /* pcrel_offset */
 };
 \f
 static unsigned char elf_code_to_howto_index[R_860_max + 1];
@@ -760,13 +758,14 @@ lookup_howto (unsigned int rtype)
       memset (elf_code_to_howto_index, 0xff,
              sizeof (elf_code_to_howto_index));
       for (i = 0; i < howto_tbl_size; i++)
-        elf_code_to_howto_index[elf32_i860_howto_table[i].type] = i;
+       elf_code_to_howto_index[elf32_i860_howto_table[i].type] = i;
     }
 
-  BFD_ASSERT (rtype <= R_860_max);
+  if (rtype > R_860_max)
+    return NULL;
   i = elf_code_to_howto_index[rtype];
   if (i >= howto_tbl_size)
-    return 0;
+    return NULL;
   return elf32_i860_howto_table + i;
 }
 
@@ -882,8 +881,7 @@ elf32_i860_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
       rtype = R_860_HIGOTOFF;
       break;
     default:
-      rtype = 0;
-      break;
+      return NULL;
     }
   return lookup_howto (rtype);
 }
@@ -906,13 +904,15 @@ elf32_i860_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED,
 }
 
 /* Given a ELF reloc, return the matching HOWTO structure.  */
-static void
+
+static bfd_boolean
 elf32_i860_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED,
                               arelent *bfd_reloc,
                               Elf_Internal_Rela *elf_reloc)
 {
   bfd_reloc->howto
     = lookup_howto ((unsigned) ELF32_R_TYPE (elf_reloc->r_info));
+  return bfd_reloc->howto != NULL;
 }
 \f
 /* Specialized relocation handler for R_860_SPLITn.  These relocations
@@ -1015,7 +1015,7 @@ elf32_i860_relocate_highadj (bfd *input_bfd,
   insn = bfd_get_32 (input_bfd, contents + rel->r_offset);
 
   value += rel->r_addend;
-  value += 0x8000; 
+  value += 0x8000;
   value = ((value >> 16) & 0xffff);
 
   insn = (insn & 0xffff0000) | value;
@@ -1091,15 +1091,15 @@ elf32_i860_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 
   for (rel = relocs; rel < relend; rel ++)
     {
-      reloc_howto_type *           howto;
-      unsigned long                r_symndx;
-      Elf_Internal_Sym *           sym;
-      asection *                   sec;
+      reloc_howto_type *          howto;
+      unsigned long               r_symndx;
+      Elf_Internal_Sym *          sym;
+      asection *                  sec;
       struct elf_link_hash_entry * h;
-      bfd_vma                      relocation;
-      bfd_reloc_status_type        r;
-      const char *                 name = NULL;
-      int                          r_type;
+      bfd_vma                     relocation;
+      bfd_reloc_status_type       r;
+      const char *                name = NULL;
+      int                         r_type;
 
       r_type = ELF32_R_TYPE (rel->r_info);
       r_symndx = ELF32_R_SYM (rel->r_info);
@@ -1121,19 +1121,19 @@ elf32_i860_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
        }
       else
        {
-         bfd_boolean unresolved_reloc, warned;
+         bfd_boolean unresolved_reloc, warned, ignored;
 
          RELOC_FOR_GLOBAL_SYMBOL (info, input_bfd, input_section, rel,
                                   r_symndx, symtab_hdr, sym_hashes,
                                   h, sec, relocation,
-                                  unresolved_reloc, warned);
+                                  unresolved_reloc, warned, ignored);
        }
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
-      if (info->relocatable)
+      if (bfd_link_relocatable (info))
        continue;
 
       switch (r_type)
@@ -1198,13 +1198,13 @@ elf32_i860_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
          switch (r)
            {
            case bfd_reloc_overflow:
-             r = info->callbacks->reloc_overflow
+             (*info->callbacks->reloc_overflow)
                (info, (h ? &h->root : NULL), name, howto->name,
                 (bfd_vma) 0, input_bfd, input_section, rel->r_offset);
              break;
 
            case bfd_reloc_undefined:
-             r = info->callbacks->undefined_symbol
+             (*info->callbacks->undefined_symbol)
                (info, name, input_bfd, input_section, rel->r_offset, TRUE);
              break;
 
@@ -1226,11 +1226,8 @@ elf32_i860_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
            }
 
          if (msg)
-           r = info->callbacks->warning
-             (info, msg, name, input_bfd, input_section, rel->r_offset);
-
-         if (! r)
-           return FALSE;
+           (*info->callbacks->warning) (info, msg, name, input_bfd,
+                                        input_section, rel->r_offset);
        }
     }
 
@@ -1251,16 +1248,16 @@ elf32_i860_is_local_label_name (bfd *abfd, const char *name)
   return _bfd_elf_is_local_label_name (abfd, name);
 }
 \f
-#define TARGET_BIG_SYM         bfd_elf32_i860_vec
+#define TARGET_BIG_SYM         i860_elf32_vec
 #define TARGET_BIG_NAME                "elf32-i860"
-#define TARGET_LITTLE_SYM      bfd_elf32_i860_little_vec
+#define TARGET_LITTLE_SYM      i860_elf32_le_vec
 #define TARGET_LITTLE_NAME     "elf32-i860-little"
 #define ELF_ARCH               bfd_arch_i860
 #define ELF_MACHINE_CODE       EM_860
 #define ELF_MAXPAGESIZE                4096
 
 #define elf_backend_rela_normal                        1
-#define elf_info_to_howto_rel                   NULL
+#define elf_info_to_howto_rel                  NULL
 #define elf_info_to_howto                      elf32_i860_info_to_howto_rela
 #define elf_backend_relocate_section           elf32_i860_relocate_section
 #define bfd_elf32_bfd_reloc_type_lookup                elf32_i860_reloc_type_lookup
This page took 0.173046 seconds and 4 git commands to generate.