components/gdb/patches/gdb.bfd.elf32-i386.c.patch
author Stefan Teleman <stefan.teleman@oracle.com>
Wed, 16 Oct 2013 06:53:51 -0700
changeset 1511 4d3b0b480760
child 6420 65948e9e205b
permissions -rw-r--r--
17086418 upgrade gdb to 7.6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1511
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     1
--- gdb-7.6/bfd/elf32-i386.c	2013-02-20 19:02:29.000000000 -0800
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     2
+++ gdb-7.6/bfd/elf32-i386.c	2013-10-08 09:04:26.769608447 -0700
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     3
@@ -434,6 +434,45 @@
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     4
       offset = 28;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     5
       size = bfd_get_32 (abfd, note->descdata + 8);
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     6
     }
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     7
+  else if (note->namesz == 5 && strncmp (note->namedata, "CORE", 4) == 0)
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     8
+  {
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     9
+    if (note->descsz == 432) /* sizeof(prstatus_t) Solaris Intel 32 */
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    10
+    {
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    11
+      /* pr_cursig */
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    12
+      elf_tdata (abfd)->core->signal =
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    13
+        bfd_get_16 (abfd, note->descdata + 136);
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    14
+
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    15
+      /* pr_pid */
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    16
+      elf_tdata (abfd)->core->pid =
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    17
+        bfd_get_32 (abfd, note->descdata + 216);
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    18
+
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    19
+      /* pr_lwpid */
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    20
+      elf_tdata (abfd)->core->lwpid =
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    21
+        bfd_get_32 (abfd, note->descdata + 308);
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    22
+
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    23
+      /* pr_reg */
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    24
+      offset = 356;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    25
+      size = 76;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    26
+    }
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    27
+    else if (note->descsz == 824) /* sizeof(prstatus_t) Solaris Intel 64 */
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    28
+    {
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    29
+      /* pr_cursig */
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    30
+      elf_tdata (abfd)->core->signal =
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    31
+        bfd_get_16 (abfd, note->descdata + 264);
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    32
+
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    33
+      /* pr_pid */
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    34
+      elf_tdata (abfd)->core->pid =
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    35
+        bfd_get_32 (abfd, note->descdata + 360);
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    36
+
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    37
+      /* pr_lwpid */
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    38
+      elf_tdata (abfd)->core->lwpid =
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    39
+        bfd_get_32 (abfd, note->descdata + 520);
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    40
+
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    41
+      /* pr_reg */
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    42
+      offset = 600;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    43
+      size = 224;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    44
+    }
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    45
+  }
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    46
   else
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    47
     {
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    48
       switch (note->descsz)
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    49
@@ -476,6 +515,31 @@
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    50
       elf_tdata (abfd)->core->command
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    51
 	= _bfd_elfcore_strndup (abfd, note->descdata + 25, 81);
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    52
     }
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    53
+  else if (note->namesz == 5 && strncmp (note->namedata, "CORE", 4) == 0)
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    54
+  {
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    55
+    switch (note->descsz)
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    56
+    {
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    57
+      default:
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    58
+        return FALSE;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    59
+        break;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    60
+      case 260: /* sizeof(prpsinfo_t) on 32-bit Solaris */
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    61
+        elf_tdata (abfd)->core->pid =
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    62
+          bfd_get_32 (abfd, note->descdata + 16);
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    63
+        elf_tdata (abfd)->core->program =
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    64
+          _bfd_elfcore_strndup (abfd, note->descdata + 84, 16);
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    65
+        elf_tdata (abfd)->core->command =
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    66
+          _bfd_elfcore_strndup (abfd, note->descdata + 100, 80);
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    67
+        break;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    68
+      case 328: /* sizeof(prpsinfo_t) on 64-bit Solaris */
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    69
+        elf_tdata (abfd)->core->pid =
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    70
+          bfd_get_32 (abfd, note->descdata + 16);
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    71
+        elf_tdata (abfd)->core->program =
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    72
+          _bfd_elfcore_strndup (abfd, note->descdata + 120, 16);
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    73
+        elf_tdata (abfd)->core->command =
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    74
+          _bfd_elfcore_strndup (abfd, note->descdata + 136, 80);
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    75
+        break;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    76
+    }
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    77
+  }
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    78
   else
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    79
     {
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    80
       switch (note->descsz)
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    81
@@ -507,6 +571,83 @@
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    82
   return TRUE;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    83
 }
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    84
 
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    85
+static bfd_boolean
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    86
+elf_i386_grok_lwpstatus (bfd *abfd, Elf_Internal_Note *note)
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    87
+{
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    88
+  asection *sect;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    89
+  char reg2_section_name[16];
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    90
+  size_t gregset_size;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    91
+  size_t fpregset_size;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    92
+
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    93
+  /* Solaris */
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    94
+  if (note->namesz == 5 && strncmp (note->namedata, "CORE", 4) == 0)
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    95
+  {
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    96
+    switch (note->descsz)
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    97
+    {
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    98
+      default:
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    99
+        return FALSE;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   100
+        break;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   101
+      case 800: /* sizeof(lwpstatus_t) on Intel 32-bit */
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   102
+        gregset_size = 76;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   103
+        fpregset_size = 380;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   104
+
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   105
+        (void) snprintf (reg2_section_name, 16, "%s/%i", ".reg2", 1);
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   106
+        sect = bfd_get_section_by_name (abfd, reg2_section_name);
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   107
+        if (sect != NULL)
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   108
+        {
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   109
+          sect->size = fpregset_size;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   110
+          sect->filepos = note->descpos + 420;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   111
+          sect->alignment_power = 2;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   112
+        }
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   113
+        else
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   114
+          return _bfd_elfcore_make_pseudosection (abfd, reg2_section_name,
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   115
+              fpregset_size, note->descpos + 420);
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   116
+
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   117
+        sect = bfd_get_section_by_name (abfd, ".reg");
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   118
+        if (sect != NULL)
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   119
+        {
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   120
+          sect->size = gregset_size;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   121
+          sect->filepos = note->descpos + 344;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   122
+          sect->alignment_power = 2;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   123
+        }
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   124
+        else
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   125
+          return _bfd_elfcore_make_pseudosection (abfd, ".reg",
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   126
+              gregset_size, note->descpos + 344);
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   127
+        break;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   128
+      case 1296: /* sizeof(lwpstatus_t) on Intel 64-bit */
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   129
+        gregset_size = 224;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   130
+        fpregset_size = 528;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   131
+
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   132
+        (void) snprintf (reg2_section_name, 16, "%s/%i", ".reg2", 1);
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   133
+        sect = bfd_get_section_by_name (abfd, reg2_section_name);
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   134
+        if (sect != NULL)
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   135
+        {
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   136
+          sect->size = fpregset_size;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   137
+          sect->filepos = note->descpos + 420;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   138
+          sect->alignment_power = 2;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   139
+        }
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   140
+        else
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   141
+          return _bfd_elfcore_make_pseudosection (abfd, reg2_section_name,
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   142
+              fpregset_size, note->descpos + 420);
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   143
+
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   144
+        sect = bfd_get_section_by_name (abfd, ".reg");
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   145
+        if (sect != NULL)
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   146
+        {
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   147
+          sect->size = gregset_size;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   148
+          sect->filepos = note->descpos + 344;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   149
+          sect->alignment_power = 2;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   150
+        }
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   151
+        else
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   152
+          return _bfd_elfcore_make_pseudosection (abfd, ".reg",
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   153
+              gregset_size, note->descpos + 344);
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   154
+        break;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   155
+    }
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   156
+  }
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   157
+  return TRUE;
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   158
+}
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   159
+
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   160
+
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   161
+
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   162
 /* Functions for the i386 ELF linker.
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   163
 
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   164
    In order to gain some understanding of code in this file without
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   165
@@ -5053,6 +5194,7 @@
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   166
 #define elf_backend_gc_mark_hook	      elf_i386_gc_mark_hook
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   167
 #define elf_backend_gc_sweep_hook	      elf_i386_gc_sweep_hook
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   168
 #define elf_backend_grok_prstatus	      elf_i386_grok_prstatus
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   169
+#define elf_backend_grok_lwpstatus	      elf_i386_grok_lwpstatus
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   170
 #define elf_backend_grok_psinfo		      elf_i386_grok_psinfo
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   171
 #define elf_backend_reloc_type_class	      elf_i386_reloc_type_class
4d3b0b480760 17086418 upgrade gdb to 7.6
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   172
 #define elf_backend_relocate_section	      elf_i386_relocate_section