ELF/BFD,GDB: Handle both variants of the 32-bit Linux core PRPSINFO note
[external/binutils.git] / bfd / elf32-m32r.c
index 9d14925..78f9ac3 100644 (file)
@@ -1,5 +1,5 @@
 /* M32R-specific support for 32-bit ELF.
-   Copyright (C) 1996-2016 Free Software Foundation, Inc.
+   Copyright (C) 1996-2017 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -2537,10 +2537,11 @@ m32r_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
                {
                  _bfd_error_handler
                    /* xgettext:c-format */
-                   (_("%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"),
+                   (_("%B(%A+%#Lx): unresolvable %s relocation "
+                      "against symbol `%s'"),
                     input_bfd,
                     input_section,
-                    (long) rel->r_offset,
+                    rel->r_offset,
                     howto->name,
                     h->root.root.string);
                }
@@ -2983,9 +2984,9 @@ m32r_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
                      /* xgettext:c-format */
                      (_("%B: The target (%s) of an %s relocation is in the wrong section (%A)"),
                       input_bfd,
-                      sec,
                       sym_name,
-                      m32r_elf_howto_table[(int) r_type].name);
+                      m32r_elf_howto_table[(int) r_type].name,
+                      sec);
                    /*bfd_set_error (bfd_error_bad_value); ??? why? */
                    ret = FALSE;
                    continue;
@@ -3330,24 +3331,6 @@ m32r_elf_finish_dynamic_sections (bfd *output_bfd,
              dyn.d_un.d_val = s->size;
               bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
               break;
-
-            case DT_RELASZ:
-              /* My reading of the SVR4 ABI indicates that the
-                 procedure linkage table relocs (DT_JMPREL) should be
-                 included in the overall relocs (DT_RELA).  This is
-                 what Solaris does.  However, UnixWare can not handle
-                 that case.  Therefore, we override the DT_RELASZ entry
-                 here to make it not include the JMPREL relocs.  Since
-                 the linker script arranges for .rela.plt to follow all
-                 other relocation sections, we don't have to worry
-                 about changing the DT_RELA entry.  */
-              if (htab->root.srelplt != NULL)
-                {
-                  s = htab->root.srelplt;
-                 dyn.d_un.d_val -= s->size;
-                }
-              bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
-              break;
             }
         }
 
@@ -3724,7 +3707,7 @@ m32r_elf_check_relocs (bfd *abfd,
 
          /* PR15323, ref flags aren't set for references in the same
             object.  */
-         h->root.non_ir_ref = 1;
+         h->root.non_ir_ref_regular = 1;
        }
 
       /* Some relocs require a global offset table.  */
@@ -4014,6 +3997,7 @@ m32r_elf_reloc_type_class (const struct bfd_link_info *info ATTRIBUTE_UNUSED,
 #define elf_backend_plt_readonly 1
 #define elf_backend_want_plt_sym 0
 #define elf_backend_got_header_size 12
+#define elf_backend_dtrel_excludes_plt 1
 
 #define elf_backend_may_use_rel_p       1
 #ifdef USE_M32R_OLD_RELOC
@@ -4031,6 +4015,8 @@ m32r_elf_reloc_type_class (const struct bfd_link_info *info ATTRIBUTE_UNUSED,
 #define bfd_elf32_bfd_print_private_bfd_data   m32r_elf_print_private_bfd_data
 #define elf_backend_special_sections           m32r_elf_special_sections
 
+#define elf_backend_linux_prpsinfo32_ugid16    TRUE
+
 #include "elf32-target.h"
 
 #undef  ELF_MAXPAGESIZE
@@ -4048,4 +4034,3 @@ m32r_elf_reloc_type_class (const struct bfd_link_info *info ATTRIBUTE_UNUSED,
 #define elf32_bed               elf32_m32r_lin_bed
 
 #include "elf32-target.h"
-