ubsan: som.c undefined shift in som_set_reloc_info
[binutils-gdb.git] / bfd / elf32-am33lin.c
index 781e9526bb9e5e2f77d4b4a330b27e5c9f7fcf4e..9d8e834b80339d866a9abb1fce1450c812f371c4 100644 (file)
@@ -1,12 +1,11 @@
 /* Matsushita AM33/2.0 support for 32-bit GNU/Linux ELF
 /* Matsushita AM33/2.0 support for 32-bit GNU/Linux ELF
-   Copyright 2003, 2005, 2007
-   Free Software Foundation, Inc.
+   Copyright (C) 2003-2022 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
    This file is part of BFD, the Binary File Descriptor library.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -16,7 +15,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
 
 #include "sysdep.h"
 #include "bfd.h"
 
 #include "sysdep.h"
 #include "bfd.h"
@@ -25,7 +25,7 @@
 
 #define elf_symbol_leading_char 0
 
 
 #define elf_symbol_leading_char 0
 
-#define TARGET_LITTLE_SYM      bfd_elf32_am33lin_vec
+#define TARGET_LITTLE_SYM      am33_elf32_linux_vec
 #define TARGET_LITTLE_NAME     "elf32-am33lin"
 #define ELF_ARCH               bfd_arch_mn10300
 #define ELF_MACHINE_CODE       EM_MN10300
 #define TARGET_LITTLE_NAME     "elf32-am33lin"
 #define ELF_ARCH               bfd_arch_mn10300
 #define ELF_MACHINE_CODE       EM_MN10300
 #define ELF_MAXPAGESIZE                0x1000
 
 /* Rename global functions.  */
 #define ELF_MAXPAGESIZE                0x1000
 
 /* Rename global functions.  */
-#define _bfd_mn10300_elf_merge_private_bfd_data  _bfd_am33_elf_merge_private_bfd_data
-#define _bfd_mn10300_elf_object_p                _bfd_am33_elf_object_p
-#define _bfd_mn10300_elf_final_write_processing  _bfd_am33_elf_final_write_processing
+#define _bfd_mn10300_elf_merge_private_bfd_data         _bfd_am33_elf_merge_private_bfd_data
+#define _bfd_mn10300_elf_object_p               _bfd_am33_elf_object_p
+#define _bfd_mn10300_elf_final_write_processing         _bfd_am33_elf_final_write_processing
 
 /* Support for core dump NOTE sections.  */
 
 /* Support for core dump NOTE sections.  */
-static bfd_boolean
+static bool
 elf32_am33lin_grok_prstatus (bfd *abfd, Elf_Internal_Note *note)
 {
   int offset;
 elf32_am33lin_grok_prstatus (bfd *abfd, Elf_Internal_Note *note)
 {
   int offset;
@@ -47,14 +47,15 @@ elf32_am33lin_grok_prstatus (bfd *abfd, Elf_Internal_Note *note)
   switch (note->descsz)
     {
       default:
   switch (note->descsz)
     {
       default:
-       return FALSE;
+       return false;
 
 
+      case 184:
       case 188:                /* Linux/am33 */
        /* pr_cursig */
       case 188:                /* Linux/am33 */
        /* pr_cursig */
-       elf_tdata (abfd)->core_signal = bfd_get_16 (abfd, note->descdata + 12);
+       elf_tdata (abfd)->core->signal = bfd_get_16 (abfd, note->descdata + 12);
 
        /* pr_pid */
 
        /* pr_pid */
-       elf_tdata (abfd)->core_pid = bfd_get_32 (abfd, note->descdata + 24);
+       elf_tdata (abfd)->core->lwpid = bfd_get_32 (abfd, note->descdata + 24);
 
        /* pr_reg */
        offset = 72;
 
        /* pr_reg */
        offset = 72;
@@ -68,18 +69,18 @@ elf32_am33lin_grok_prstatus (bfd *abfd, Elf_Internal_Note *note)
                                          note->descpos + offset);
 }
 
                                          note->descpos + offset);
 }
 
-static bfd_boolean
+static bool
 elf32_am33lin_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
 {
   switch (note->descsz)
     {
       default:
 elf32_am33lin_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
 {
   switch (note->descsz)
     {
       default:
-       return FALSE;
+       return false;
 
       case 124:                /* Linux/am33 elf_prpsinfo */
 
       case 124:                /* Linux/am33 elf_prpsinfo */
-       elf_tdata (abfd)->core_program
+       elf_tdata (abfd)->core->program
         = _bfd_elfcore_strndup (abfd, note->descdata + 28, 16);
         = _bfd_elfcore_strndup (abfd, note->descdata + 28, 16);
-       elf_tdata (abfd)->core_command
+       elf_tdata (abfd)->core->command
         = _bfd_elfcore_strndup (abfd, note->descdata + 44, 80);
     }
 
         = _bfd_elfcore_strndup (abfd, note->descdata + 44, 80);
     }
 
@@ -88,17 +89,19 @@ elf32_am33lin_grok_psinfo (bfd *abfd, Elf_Internal_Note *note)
      implementations, so strip it off if it exists.  */
 
   {
      implementations, so strip it off if it exists.  */
 
   {
-    char *command = elf_tdata (abfd)->core_command;
+    char *command = elf_tdata (abfd)->core->command;
     int n = strlen (command);
 
     if (0 < n && command[n - 1] == ' ')
       command[n - 1] = '\0';
   }
 
     int n = strlen (command);
 
     if (0 < n && command[n - 1] == ' ')
       command[n - 1] = '\0';
   }
 
-  return TRUE;
+  return true;
 }
 
 #define elf_backend_grok_prstatus      elf32_am33lin_grok_prstatus
 #define elf_backend_grok_psinfo                elf32_am33lin_grok_psinfo
 
 }
 
 #define elf_backend_grok_prstatus      elf32_am33lin_grok_prstatus
 #define elf_backend_grok_psinfo                elf32_am33lin_grok_psinfo
 
+#define elf_backend_linux_prpsinfo32_ugid16    true
+
 #include "elf-m10300.c"
 #include "elf-m10300.c"