Remove arm_override_mode
[deliverable/binutils-gdb.git] / bfd / elf32-i386.c
index 417957214dbb6257e97fe1510ebd431807a1a256..311ca37cdb493c3935f673c8ac92791360ae8cfe 100644 (file)
@@ -383,8 +383,9 @@ elf_i386_rtype_to_howto (bfd *abfd, unsigned r_type)
       && ((indx = r_type - R_386_vt_offset) - R_386_ext2
          >= R_386_vt - R_386_ext2))
     {
-      (*_bfd_error_handler) (_("%B: invalid relocation type %d"),
-                            abfd, (int) r_type);
+      /* xgettext:c-format */
+      _bfd_error_handler (_("%B: invalid relocation type %d"),
+                         abfd, (int) r_type);
       indx = R_386_NONE;
     }
   /* PR 17512: file: 0f67f69d.  */
@@ -1555,7 +1556,8 @@ elf_i386_tls_transition (struct bfd_link_info *info, bfd *abfd,
            }
        }
 
-      (*_bfd_error_handler)
+      _bfd_error_handler
+       /* xgettext:c-format */
        (_("%B: TLS transition from %s to %s against `%s' at 0x%lx "
           "in section `%A' failed"),
         abfd, sec, from->name, to->name, name,
@@ -1642,7 +1644,8 @@ elf_i386_convert_load_reloc (bfd *abfd, Elf_Internal_Shdr *symtab_hdr,
       else
        name = h->root.root.string;
 
-      (*_bfd_error_handler)
+      _bfd_error_handler
+       /* xgettext:c-format */
        (_("%B: direct GOT relocation R_386_GOT32X against `%s' without base register can not be used when making a shared object"),
         abfd, name);
       return FALSE;
@@ -1898,9 +1901,9 @@ elf_i386_check_relocs (bfd *abfd,
 
       if (r_symndx >= NUM_SHDR_ENTRIES (symtab_hdr))
        {
-         (*_bfd_error_handler) (_("%B: bad symbol index: %d"),
-                                abfd,
-                                r_symndx);
+         /* xgettext:c-format */
+         _bfd_error_handler (_("%B: bad symbol index: %d"),
+                             abfd, r_symndx);
          goto error_return;
        }
 
@@ -1948,6 +1951,7 @@ elf_i386_check_relocs (bfd *abfd,
 
            case R_386_GOTOFF:
              eh->gotoff_ref = 1;
+             /* Fall through.  */
            case R_386_32:
            case R_386_PC32:
            case R_386_PLT32:
@@ -2098,7 +2102,8 @@ elf_i386_check_relocs (bfd *abfd,
                    else
                      name = bfd_elf_sym_name (abfd, symtab_hdr, isym,
                                             NULL);
-                   (*_bfd_error_handler)
+                   _bfd_error_handler
+                     /* xgettext:c-format */
                      (_("%B: `%s' accessed both as normal and "
                         "thread local symbol"),
                       abfd, name);
@@ -2178,6 +2183,21 @@ do_relocation:
                     a function defined in a shared library.  */
                  if ((sec->flags & SEC_CODE) == 0)
                    h->pointer_equality_needed = 1;
+                 else if (h->type == STT_GNU_IFUNC
+                          && bfd_link_pic (info))
+                   {
+                   if (isym == NULL)
+                     name = h->root.root.string;
+                   else
+                     name = bfd_elf_sym_name (abfd, symtab_hdr, isym,
+                                              NULL);
+                   _bfd_error_handler
+                     /* xgettext:c-format */
+                     (_("%B: unsupported non-PIC call to IFUNC `%s'"),
+                      abfd, name);
+                     bfd_set_error (bfd_error_bad_value);
+                     goto error_return;
+                   }
                }
              else
                {
@@ -3047,6 +3067,7 @@ elf_i386_readonly_dynrelocs (struct elf_link_hash_entry *h, void *inf)
 
          if ((info->warn_shared_textrel && bfd_link_pic (info))
              || info->error_textrel)
+           /* xgettext:c-format */
            info->callbacks->einfo (_("%P: %B: warning: relocation against `%s' in readonly section `%A'\n"),
                                    p->sec->owner, h->root.root.string,
                                    p->sec);
@@ -3258,6 +3279,7 @@ elf_i386_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
                      info->flags |= DF_TEXTREL;
                      if ((info->warn_shared_textrel && bfd_link_pic (info))
                          || info->error_textrel)
+                       /* xgettext:c-format */
                        info->callbacks->einfo (_("%P: %B: warning: relocation in readonly section `%A'\n"),
                                                p->sec->owner, p->sec);
                    }
@@ -3753,7 +3775,8 @@ elf_i386_relocate_section (bfd *output_bfd,
          && ((indx = r_type - R_386_tls_offset) - R_386_ext
              >= R_386_ext2 - R_386_ext))
        {
-         (*_bfd_error_handler)
+         _bfd_error_handler
+           /* xgettext:c-format */
            (_("%B: unrecognized relocation (0x%x) in section `%A'"),
             input_bfd, input_section, r_type);
          bfd_set_error (bfd_error_bad_value);
@@ -4032,7 +4055,8 @@ bad_ifunc_reloc:
              else
                name = bfd_elf_sym_name (input_bfd, symtab_hdr, sym,
                                         NULL);
-             (*_bfd_error_handler)
+             _bfd_error_handler
+               /* xgettext:c-format */
                (_("%B: relocation %s against STT_GNU_IFUNC "
                   "symbol `%s' isn't supported"), input_bfd,
                 howto->name, name);
@@ -4279,7 +4303,8 @@ disallow_got32:
                  else
                    name = h->root.root.string;
 
-                 (*_bfd_error_handler)
+                 _bfd_error_handler
+                   /* xgettext:c-format */
                    (_("%B: direct GOT relocation %s against `%s' without base register can not be used when making a shared object"),
                     input_bfd, howto->name, name);
                  bfd_set_error (bfd_error_bad_value);
@@ -4326,7 +4351,8 @@ disallow_got32:
                      break;
                    }
 
-                 (*_bfd_error_handler)
+                 _bfd_error_handler
+                   /* xgettext:c-format */
                    (_("%B: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object"),
                     input_bfd, v, h->root.root.string);
                  bfd_set_error (bfd_error_bad_value);
@@ -4337,7 +4363,8 @@ disallow_got32:
                           || h->type == STT_OBJECT)
                       && ELF_ST_VISIBILITY (h->other) == STV_PROTECTED)
                {
-                 (*_bfd_error_handler)
+                 _bfd_error_handler
+                   /* xgettext:c-format */
                    (_("%B: relocation R_386_GOTOFF against protected %s `%s' can not be used when making a shared object"),
                     input_bfd,
                     h->type == STT_FUNC ? "function" : "data",
@@ -5128,7 +5155,8 @@ disallow_got32:
          && _bfd_elf_section_offset (output_bfd, info, input_section,
                                      rel->r_offset) != (bfd_vma) -1)
        {
-         (*_bfd_error_handler)
+         _bfd_error_handler
+           /* xgettext:c-format */
            (_("%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"),
             input_bfd,
             input_section,
@@ -5167,7 +5195,8 @@ check_relocation_error:
               (bfd_vma) 0, input_bfd, input_section, rel->r_offset);
          else
            {
-             (*_bfd_error_handler)
+             _bfd_error_handler
+               /* xgettext:c-format */
                (_("%B(%A+0x%lx): reloc against `%s': error %d"),
                 input_bfd, input_section,
                 (long) rel->r_offset, name, (int) r);
@@ -5841,7 +5870,7 @@ elf_i386_finish_dynamic_sections (bfd *output_bfd,
     {
       if (bfd_is_abs_section (htab->elf.sgotplt->output_section))
        {
-         (*_bfd_error_handler)
+         _bfd_error_handler
            (_("discarded output section: `%A'"), htab->elf.sgotplt);
          return FALSE;
        }
This page took 0.026411 seconds and 4 git commands to generate.