Update my email address in MAINTAINERS
[deliverable/binutils-gdb.git] / bfd / elf32-epiphany.c
index 08f3be1798cfd30a322accac6b26158c20d10542..6de4211546be8fccc39b842b62c6f46ab989f44b 100644 (file)
@@ -1,6 +1,5 @@
 /* Adapteva epiphany specific support for 32-bit ELF
 /* Adapteva epiphany specific support for 32-bit ELF
-   Copyright 2011
-   Free Software Foundation, Inc.
+   Copyright (C) 2000-2021 Free Software Foundation, Inc.
    Contributed by Embecosm on behalf of Adapteva, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
    Contributed by Embecosm on behalf of Adapteva, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -33,7 +32,7 @@ struct misc
 {
   Elf_Internal_Shdr *  symtab_hdr;
   Elf_Internal_Rela *  irelbase;
 {
   Elf_Internal_Shdr *  symtab_hdr;
   Elf_Internal_Rela *  irelbase;
-  bfd_byte *           contents;
+  bfd_byte *          contents;
   Elf_Internal_Sym *   isymbuf;
 };
 
   Elf_Internal_Sym *   isymbuf;
 };
 
@@ -43,60 +42,60 @@ struct epiphany_opcode
   unsigned short mask;
 };
 
   unsigned short mask;
 };
 
-static bfd_boolean epiphany_relaxed = FALSE;
+static bool epiphany_relaxed = false;
 
 /* Relocation tables.  */
 static reloc_howto_type epiphany_elf_howto_table [] =
 {
 #define AHOW(t,rs,s,bs,pr,bp,co,name,sm,dm)    \
 
 /* Relocation tables.  */
 static reloc_howto_type epiphany_elf_howto_table [] =
 {
 #define AHOW(t,rs,s,bs,pr,bp,co,name,sm,dm)    \
-    HOWTO(t,                    /* type */ \
-         rs,                   /* rightshift */ \
-         s,                    /* size (0 = byte, 1 = short, 2 = long) */ \
-         bs,                   /* bitsize */ \
-         pr,                   /* pc_relative */ \
-         bp,                   /* bitpos */ \
+    HOWTO(t,                   /* type */ \
+         rs,                   /* rightshift */ \
+         s,                    /* size (0 = byte, 1 = short, 2 = long) */ \
+         bs,                   /* bitsize */ \
+         pr,                   /* pc_relative */ \
+         bp,                   /* bitpos */ \
          co,                   /* complain_on_overflow */             \
          bfd_elf_generic_reloc,/* special_function */ \
          co,                   /* complain_on_overflow */             \
          bfd_elf_generic_reloc,/* special_function */ \
-         name,                 /* name */ \
-         FALSE,                /* partial_inplace */ \
-         sm,                   /* src_mask */ \
-         dm,                   /* dst_mask */ \
-         pr)                   /* pcrel_offset */
+         name,                 /* name */ \
+         false,                /* partial_inplace */ \
+         sm,                   /* src_mask */ \
+         dm,                   /* dst_mask */ \
+         pr)                   /* pcrel_offset */
 
   /* This reloc does nothing.  */
 
   /* This reloc does nothing.  */
-  AHOW (R_EPIPHANY_NONE,    0, 0,32, FALSE, 0, complain_overflow_dont,     "R_EPIPHANY_NONE",        0,          0),
+  AHOW (R_EPIPHANY_NONE,    0, 3,0, false, 0, complain_overflow_dont,    "R_EPIPHANY_NONE",        0,          0),
 
   /* 8 bit absolute (not likely) */
 
   /* 8 bit absolute (not likely) */
-  AHOW (R_EPIPHANY_8,       0, 0, 8, FALSE, 0, complain_overflow_bitfield, "R_EPIPHANY_8",      0x000000ff, 0x000000ff),
+  AHOW (R_EPIPHANY_8,      0, 0, 8, false, 0, complain_overflow_bitfield, "R_EPIPHANY_8",      0x000000ff, 0x000000ff),
   /* 16 bit absolute */
   /* 16 bit absolute */
-  AHOW (R_EPIPHANY_16,      0, 1,16, FALSE, 0, complain_overflow_bitfield, "R_EPIPHANY_16",     0x0000ffff, 0x00ff1fe0),
+  AHOW (R_EPIPHANY_16,     0, 1,16, false, 0, complain_overflow_bitfield, "R_EPIPHANY_16",     0x0000ffff, 0x00ff1fe0),
   /* A 32 bit absolute relocation.  */
   /* A 32 bit absolute relocation.  */
-  AHOW (R_EPIPHANY_32,      0, 2,32, FALSE, 0, complain_overflow_dont,     "R_EPIPHANY_32",     0xffffffff, 0xffffffff),
+  AHOW (R_EPIPHANY_32,     0, 2,32, false, 0, complain_overflow_dont,     "R_EPIPHANY_32",     0xffffffff, 0xffffffff),
 
   /*  8 bit relative relocation */
 
   /*  8 bit relative relocation */
-  HOWTO ( R_EPIPHANY_8_PCREL,  0, 0,  8, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_EPIPHANY_8_PCREL", FALSE, 0x000000ff, 0x000000ff, FALSE),
+  HOWTO ( R_EPIPHANY_8_PCREL,  0, 0,  8, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_EPIPHANY_8_PCREL", false, 0x000000ff, 0x000000ff, false),
   /* 16 bit relative relocation */
   /* 16 bit relative relocation */
-  HOWTO ( R_EPIPHANY_16_PCREL, 0, 1, 16, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_EPIPHANY_8_PCREL", FALSE, 0x000000ff, 0x000000ff, FALSE),
+  HOWTO ( R_EPIPHANY_16_PCREL, 0, 1, 16, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_EPIPHANY_8_PCREL", false, 0x000000ff, 0x000000ff, false),
   /* 32 bit relative relocation */
   /* 32 bit relative relocation */
-  HOWTO ( R_EPIPHANY_32_PCREL, 0, 2, 32, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_EPIPHANY_8_PCREL", FALSE, 0x000000ff, 0x000000ff, FALSE),
+  HOWTO ( R_EPIPHANY_32_PCREL, 0, 2, 32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_EPIPHANY_8_PCREL", false, 0x000000ff, 0x000000ff, false),
 
   /* 8 bit pc-relative relocation */
 
   /* 8 bit pc-relative relocation */
-  AHOW (R_EPIPHANY_SIMM8,   1, 0, 8,  TRUE, 8, complain_overflow_signed,   "R_EPIPHANY_SIMM8",   0x000000ff, 0x0000ff00),
+  AHOW (R_EPIPHANY_SIMM8,   1, 0, 8,  true, 8, complain_overflow_signed,   "R_EPIPHANY_SIMM8",  0x000000ff, 0x0000ff00),
   /* 24 bit pc-relative relocation */
   /* 24 bit pc-relative relocation */
-  AHOW (R_EPIPHANY_SIMM24,  1, 2,24,  TRUE, 8, complain_overflow_signed,   "R_EPIPHANY_SIMM24",  0x00ffffff, 0xffffff00),
+  AHOW (R_EPIPHANY_SIMM24,  1, 2,24,  true, 8, complain_overflow_signed,   "R_EPIPHANY_SIMM24",         0x00ffffff, 0xffffff00),
 
   /* %HIGH(EA) */
 
   /* %HIGH(EA) */
-  AHOW (R_EPIPHANY_HIGH,    0, 2,16, FALSE, 0, complain_overflow_dont,     "R_EPIPHANY_HIGH",    0x0ff01fe0, 0x0ff01fe0),
+  AHOW (R_EPIPHANY_HIGH,    0, 2,16, false, 0, complain_overflow_dont,    "R_EPIPHANY_HIGH",    0x0ff01fe0, 0x0ff01fe0),
 
   /* %LOW(EA) */
 
   /* %LOW(EA) */
-  AHOW (R_EPIPHANY_LOW,     0, 2,16, FALSE, 0, complain_overflow_dont, "R_EPIPHANY_LOW",     0x0ff01fe0, 0x0ff01fe0),
+  AHOW (R_EPIPHANY_LOW,            0, 2,16, false, 0, complain_overflow_dont,  "R_EPIPHANY_LOW",     0x0ff01fe0, 0x0ff01fe0),
 
   /* simm11 */
 
   /* simm11 */
-  AHOW (R_EPIPHANY_SIMM11,  0, 2,11, FALSE, 0, complain_overflow_bitfield, "R_EPIPHANY_SIMM11",  0x00ff0380, 0x00ff0380),
+  AHOW (R_EPIPHANY_SIMM11,  0, 2,11, false, 0, complain_overflow_bitfield, "R_EPIPHANY_SIMM11",         0x00ff0380, 0x00ff0380),
   /* imm12 - sign-magnitude */
   /* imm12 - sign-magnitude */
-  AHOW (R_EPIPHANY_IMM11,   0, 2,11, FALSE, 0, complain_overflow_bitfield, "R_EPIPHANY_IMM12",   0x00ff0380, 0x00ff0380),
+  AHOW (R_EPIPHANY_IMM11,   0, 2,11, false, 0, complain_overflow_bitfield, "R_EPIPHANY_IMM12",  0x00ff0380, 0x00ff0380),
   /* imm8 */
   /* imm8 */
-  AHOW (R_EPIPHANY_IMM8,    0, 1, 8, FALSE, 8, complain_overflow_signed,   "R_EPIPHANY_IMM8",    0x0000ff00, 0x0000ff00)
+  AHOW (R_EPIPHANY_IMM8,    0, 1, 8, false, 8, complain_overflow_signed,   "R_EPIPHANY_IMM8",   0x0000ff00, 0x0000ff00)
 
 
 };
 
 
 };
@@ -176,10 +175,10 @@ epiphany_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, const char *r_name)
 /* This function handles relaxing for the epiphany.
    Dummy placeholder for future optimizations.  */
 
 /* This function handles relaxing for the epiphany.
    Dummy placeholder for future optimizations.  */
 
-static bfd_boolean
+static bool
 epiphany_elf_relax_section (bfd *abfd, asection *sec,
                            struct bfd_link_info *link_info,
 epiphany_elf_relax_section (bfd *abfd, asection *sec,
                            struct bfd_link_info *link_info,
-                           bfd_boolean *again)
+                           bool *again)
 {
   Elf_Internal_Shdr *symtab_hdr;
   Elf_Internal_Rela *internal_relocs;
 {
   Elf_Internal_Shdr *symtab_hdr;
   Elf_Internal_Rela *internal_relocs;
@@ -190,34 +189,34 @@ epiphany_elf_relax_section (bfd *abfd, asection *sec,
   static unsigned long page_start = 0;
   static unsigned long page_end = 0;
   static unsigned int pass = 0;
   static unsigned long page_start = 0;
   static unsigned long page_end = 0;
   static unsigned int pass = 0;
-  static bfd_boolean new_pass = FALSE;
-  static bfd_boolean changed = FALSE;
+  static bool new_pass = false;
+  static bool changed = false;
   struct misc misc ATTRIBUTE_UNUSED;
   asection *stab;
 
   /* Assume nothing changes.  */
   struct misc misc ATTRIBUTE_UNUSED;
   asection *stab;
 
   /* Assume nothing changes.  */
-  *again = FALSE;
+  *again = false;
 
   if (first_section == NULL)
     {
 
   if (first_section == NULL)
     {
-      epiphany_relaxed = TRUE;
+      epiphany_relaxed = true;
       first_section = sec;
     }
 
   if (first_section == sec)
     {
       pass++;
       first_section = sec;
     }
 
   if (first_section == sec)
     {
       pass++;
-      new_pass = TRUE;
+      new_pass = true;
     }
 
   /* We don't have to do anything for a relocatable link,
      if this section does not have relocs, or if this is
      not a code section.  */
     }
 
   /* We don't have to do anything for a relocatable link,
      if this section does not have relocs, or if this is
      not a code section.  */
-  if (link_info->relocatable
+  if (bfd_link_relocatable (link_info)
       || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0
       || (sec->flags & SEC_CODE) == 0)
       || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0
       || (sec->flags & SEC_CODE) == 0)
-    return TRUE;
+    return true;
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
 
 
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
 
@@ -279,8 +278,8 @@ epiphany_elf_relax_section (bfd *abfd, asection *sec,
       if (new_pass)
        {
          pass = 1;
       if (new_pass)
        {
          pass = 1;
-         new_pass = FALSE;
-         changed = TRUE; /* Pre-initialize to break out of pass 1.  */
+         new_pass = false;
+         changed = true; /* Pre-initialize to break out of pass 1.  */
          search_addr = 0xFFFFFFFF;
        }
 
          search_addr = 0xFFFFFFFF;
        }
 
@@ -293,15 +292,15 @@ epiphany_elf_relax_section (bfd *abfd, asection *sec,
            search_addr = BASEADDR (sec);
 
          /* Found a page => more work to do.  */
            search_addr = BASEADDR (sec);
 
          /* Found a page => more work to do.  */
-         *again = TRUE;
+         *again = true;
        }
     }
   else
     {
       if (new_pass)
        {
        }
     }
   else
     {
       if (new_pass)
        {
-         new_pass = FALSE;
-         changed = FALSE;
+         new_pass = false;
+         changed = false;
          page_start = PAGENO (search_addr);
          page_end = page_start | 0x00003FFF;
        }
          page_start = PAGENO (search_addr);
          page_end = page_start | 0x00003FFF;
        }
@@ -314,9 +313,9 @@ epiphany_elf_relax_section (bfd *abfd, asection *sec,
          if (!epiphany_elf_relax_section_page (abfd, sec, &changed, &misc,
                                                page_start, page_end))
 #endif
          if (!epiphany_elf_relax_section_page (abfd, sec, &changed, &misc,
                                                page_start, page_end))
 #endif
-           return FALSE;
+           return false;
        }
        }
-      *again = TRUE;
+      *again = true;
     }
 
   /* Perform some house keeping after relaxing the section.  */
     }
 
   /* Perform some house keeping after relaxing the section.  */
@@ -342,36 +341,41 @@ epiphany_elf_relax_section (bfd *abfd, asection *sec,
        }
     }
 
        }
     }
 
-  if (internal_relocs != NULL
-      && elf_section_data (sec)->relocs != internal_relocs)
+  if (elf_section_data (sec)->relocs != internal_relocs)
     free (internal_relocs);
 
     free (internal_relocs);
 
-  return TRUE;
+  return true;
 
  error_return:
 
  error_return:
-  if (isymbuf != NULL
-      && symtab_hdr->contents != (unsigned char *) isymbuf)
+  if (symtab_hdr->contents != (unsigned char *) isymbuf)
     free (isymbuf);
     free (isymbuf);
-  if (contents != NULL
-      && elf_section_data (sec)->this_hdr.contents != contents)
+  if (elf_section_data (sec)->this_hdr.contents != contents)
     free (contents);
     free (contents);
-  if (internal_relocs != NULL
-      && elf_section_data (sec)->relocs != internal_relocs)
+  if (elf_section_data (sec)->relocs != internal_relocs)
     free (internal_relocs);
     free (internal_relocs);
-  return FALSE;
+  return false;
 }
 
 /* Set the howto pointer for a EPIPHANY ELF reloc.  */
 
 }
 
 /* Set the howto pointer for a EPIPHANY ELF reloc.  */
 
-static void
-epiphany_info_to_howto_rela (bfd * abfd ATTRIBUTE_UNUSED,
+static bool
+epiphany_info_to_howto_rela (bfd * abfd,
                             arelent * cache_ptr,
                             Elf_Internal_Rela * dst)
 {
   unsigned int r_type;
 
   r_type = ELF32_R_TYPE (dst->r_info);
                             arelent * cache_ptr,
                             Elf_Internal_Rela * dst)
 {
   unsigned int r_type;
 
   r_type = ELF32_R_TYPE (dst->r_info);
+  if (r_type >= (unsigned int) R_EPIPHANY_max)
+    {
+      /* xgettext:c-format */
+      _bfd_error_handler (_("%pB: unsupported relocation type %#x"),
+                         abfd, r_type);
+      bfd_set_error (bfd_error_bad_value);
+      return false;
+    }
   cache_ptr->howto = & epiphany_elf_howto_table [r_type];
   cache_ptr->howto = & epiphany_elf_howto_table [r_type];
+  return true;
 }
 
 /* Perform a single relocation.
 }
 
 /* Perform a single relocation.
@@ -379,11 +383,11 @@ epiphany_info_to_howto_rela (bfd * abfd ATTRIBUTE_UNUSED,
 
 static bfd_reloc_status_type
 epiphany_final_link_relocate (reloc_howto_type *  howto,
 
 static bfd_reloc_status_type
 epiphany_final_link_relocate (reloc_howto_type *  howto,
-                             bfd *               input_bfd,
-                             asection *          input_section,
-                             bfd_byte *          contents,
+                             bfd *               input_bfd,
+                             asection *          input_section,
+                             bfd_byte *          contents,
                              Elf_Internal_Rela * rel,
                              Elf_Internal_Rela * rel,
-                             bfd_vma             relocation)
+                             bfd_vma             relocation)
 {
   switch (howto->type)
     {
 {
   switch (howto->type)
     {
@@ -416,9 +420,10 @@ epiphany_final_link_relocate (reloc_howto_type *  howto,
       relocation += rel->r_addend;
       if ((unsigned int) relocation > 0x7ff)
        return bfd_reloc_outofrange;
       relocation += rel->r_addend;
       if ((unsigned int) relocation > 0x7ff)
        return bfd_reloc_outofrange;
+      /* Fall through.  */
     disp11:
     disp11:
-      relocation = ((relocation & 7) << 5)
-       || ((relocation & 0x7f8 )  << 13);
+      relocation = (((relocation & 7) << 5)
+                   | ((relocation & 0x7f8 ) << 13));
       return _bfd_relocate_contents (howto, input_bfd, relocation,
                                     contents + rel->r_offset);
 
       return _bfd_relocate_contents (howto, input_bfd, relocation,
                                     contents + rel->r_offset);
 
@@ -463,7 +468,7 @@ epiphany_final_link_relocate (reloc_howto_type *  howto,
    section, which means that the addend must be adjusted
    accordingly.  */
 
    section, which means that the addend must be adjusted
    accordingly.  */
 
-static bfd_boolean
+static int
 epiphany_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
                               struct bfd_link_info *info,
                               bfd *input_bfd,
 epiphany_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
                               struct bfd_link_info *info,
                               bfd *input_bfd,
@@ -484,15 +489,15 @@ epiphany_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 
   for (rel = relocs; rel < relend; rel ++)
     {
 
   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;
       struct elf_link_hash_entry * h;
-      bfd_vma                      relocation;
-      bfd_reloc_status_type        r;
-      const char *                 name = NULL;
-      int                          r_type ATTRIBUTE_UNUSED;
+      bfd_vma                     relocation;
+      bfd_reloc_status_type       r;
+      const char *                name = NULL;
+      int                         r_type ATTRIBUTE_UNUSED;
 
       r_type = ELF32_R_TYPE (rel->r_info);
       r_symndx = ELF32_R_SYM (rel->r_info);
 
       r_type = ELF32_R_TYPE (rel->r_info);
       r_symndx = ELF32_R_SYM (rel->r_info);
@@ -509,26 +514,27 @@ epiphany_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 
          name = bfd_elf_string_from_elf_section
            (input_bfd, symtab_hdr->sh_link, sym->st_name);
 
          name = bfd_elf_string_from_elf_section
            (input_bfd, symtab_hdr->sh_link, sym->st_name);
-         name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name;
+         name = name == NULL ? bfd_section_name (sec) : name;
        }
       else
        {
        }
       else
        {
-         bfd_boolean warned ATTRIBUTE_UNUSED;
-         bfd_boolean unresolved_reloc ATTRIBUTE_UNUSED;
+         bool warned ATTRIBUTE_UNUSED;
+         bool unresolved_reloc ATTRIBUTE_UNUSED;
+         bool ignored ATTRIBUTE_UNUSED;
 
          RELOC_FOR_GLOBAL_SYMBOL (info, input_bfd, input_section, rel,
                                   r_symndx, symtab_hdr, sym_hashes,
                                   h, sec, relocation,
 
          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);
 
          name = h->root.root.string;
        }
 
 
          name = h->root.root.string;
        }
 
-      if (sec != NULL && elf_discarded_section (sec))
+      if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
        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;
 
       /* Finally, the sole EPIPHANY-specific part.  */
        continue;
 
       /* Finally, the sole EPIPHANY-specific part.  */
@@ -542,14 +548,14 @@ epiphany_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
          switch (r)
            {
            case bfd_reloc_overflow:
          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:
                (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, name, input_bfd, input_section, rel->r_offset, TRUE);
+             (*info->callbacks->undefined_symbol)
+               (info, name, input_bfd, input_section, rel->r_offset, true);
              break;
 
            case bfd_reloc_outofrange:
              break;
 
            case bfd_reloc_outofrange:
@@ -573,19 +579,16 @@ epiphany_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
            }
 
          if (msg)
            }
 
          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);
        }
     }
 
        }
     }
 
-  return TRUE;
+  return true;
 }
 
 /* We only have a little-endian target.  */
 }
 
 /* We only have a little-endian target.  */
-#define TARGET_LITTLE_SYM       bfd_elf32_epiphany_vec
+#define TARGET_LITTLE_SYM       epiphany_elf32_vec
 #define TARGET_LITTLE_NAME  "elf32-epiphany"
 
 #define ELF_ARCH        bfd_arch_epiphany
 #define TARGET_LITTLE_NAME  "elf32-epiphany"
 
 #define ELF_ARCH        bfd_arch_epiphany
@@ -596,7 +599,7 @@ epiphany_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 #define elf_info_to_howto_rel                  NULL
 #define elf_info_to_howto                      epiphany_info_to_howto_rela
 
 #define elf_info_to_howto_rel                  NULL
 #define elf_info_to_howto                      epiphany_info_to_howto_rela
 
-#define elf_backend_can_gc_sections            1
+#define elf_backend_can_gc_sections            1
 #define elf_backend_rela_normal                        1
 #define elf_backend_relocate_section           epiphany_elf_relocate_section
 
 #define elf_backend_rela_normal                        1
 #define elf_backend_relocate_section           epiphany_elf_relocate_section
 
This page took 0.030029 seconds and 4 git commands to generate.