public inbox for bfd@sourceware.org
 help / color / mirror / Atom feed
From: Aditya Kamath1 <Aditya.Kamath1@ibm.com>
To: "bfd@sourceware.org" <bfd@sourceware.org>,
	"amodra@gmail.com" <amodra@gmail.com>
Cc: Sangamesh Mallayya <sangamesh.swamy@in.ibm.com>
Subject: [PATCH] Enable vector register visibility in core file for AIX
Date: Tue, 14 Mar 2023 07:47:09 +0000	[thread overview]
Message-ID: <CH2PR15MB3544BC11BAF4B10196F118B9D6BE9@CH2PR15MB3544.namprd15.prod.outlook.com> (raw)


[-- Attachment #1.1: Type: text/plain, Size: 6548 bytes --]

Hi all,

Please find attached the patch { 0001-Enable-vector-register-visibility-in-core-file-for-A.patch}

This patch will enable vector register visibility when AIX FOLKS do core file analysis especially using applications like GDB.

Kindly check the outputs with the patch and without the patch. Changes are visible in bold for the output with patch.

Do let me know if any changes are required. If not kindly commit the same.

Thanks and regards,
Aditya.

-------------------------
Output without patch:-

./gdb ~/gdb_tests/bll_core core.13828468
GNU gdb (GDB) 14.0.50.20230221-git
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "powerpc64-ibm-aix7.2.0.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
https://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
    http://www.gnu.org/software/gdb/documentation/.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/aditya/gdb_tests/bll_core...
Core was generated by `bll_core'.
#0  main () at /home/aditya/gdb_tests/bll_core.c:24
24          int length1 = 7;
(gdb) info reg
r0             0x2ff22b50          804399952
r1             0x2ff22b10          804399888
r2             0x20000448          536872008
r3             0x2ff22b50          804399952
r4             0x100010e0          268439776
r5             0x0                 0
r6             0x5                 5
r7             0x2b67              11111
r8             0x56ce              22222
r9             0x60                96
r10            0xad9c              44444
r11            0x0                 0
r12            0x22648680          577013376
r13            0xdeadbeef          -559038737
r14            0x1                 1
r15            0x2ff22c00          804400128
r16            0x2ff22c08          804400136
r17            0xdeadbeef          -559038737
r18            0xdeadbeef          -559038737
r19            0xf0806b50          -260019376
r20            0xdeadbeef          -559038737
r21            0xdeadbeef          -559038737
r22            0xdeadbeef          -559038737
r23            0xdeadbeef          -559038737
r24            0xdeadbeef          -559038737
r25            0xdeadbeef          -559038737
r26            0x96c2062c          -1765669332
r27            0x88                136
r28            0x200002ed          536871661
r29            0x10000000          268435456
r30            0x3                 3
r31            0x2ff22b10          804399888
pc             0x10000690          0x10000690 <main+144>
msr            0x200d032           33607730
cnd            0x24648244          610566724
lr             0x10000634          0x10000634 <main+52>
cnt            0x0                 0
xer            0x20040000          537133056
fpscr          0x0                 0
mq             0xdeadbeef          -559038737

------------------------------------------
Output with patch:-

./gdb ~/gdb_tests/bll_core core.13828468
GNU gdb (GDB) 14.0.50.20230221-git
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "powerpc64-ibm-aix7.2.0.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
https://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
    http://www.gnu.org/software/gdb/documentation/.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/aditya/gdb_tests/bll_core...
Core was generated by `bll_core'.
#0  main () at /home/aditya/gdb_tests/bll_core.c:24
24          int length1 = 7;
(gdb) info reg
r0             0x2ff22b50          804399952
r1             0x2ff22b10          804399888
r2             0x20000448          536872008
r3             0x2ff22b50          804399952
r4             0x100010e0          268439776
r5             0x0                 0
r6             0x5                 5
r7             0x2b67              11111
r8             0x56ce              22222
r9             0x60                96
r10            0xad9c              44444
r11            0x0                 0
r12            0x22648680          577013376
r13            0xdeadbeef          3735928559
r14            0x1                 1
r15            0x2ff22c00          804400128
r16            0x2ff22c08          804400136
r17            0xdeadbeef          3735928559
r18            0xdeadbeef          3735928559
r19            0xf0806b50          4034947920
r20            0xdeadbeef          3735928559
r21            0xdeadbeef          3735928559
r22            0xdeadbeef          3735928559
r23            0xdeadbeef          3735928559
r24            0xdeadbeef          3735928559
r25            0xdeadbeef          3735928559
r26            0x96c2062c          2529297964
r27            0x88                136
r28            0x200002ed          536871661
r29            0x10000000          268435456
r30            0x3                 3
r31            0x2ff22b10          804399888
pc             0x10000690          0x10000690 <main+144>
msr            0x200d032           33607730
cr             0x24648244          610566724
lr             0x10000634          0x10000634 <main+52>
ctr            0x0                 0
xer            0x20040000          537133056
fpscr          0x0                 0
vscr           0x0                 0
vrsave         0x1                 1
(gdb) info reg $vr0
vr0            {uint128 = 0x14de4f00a6f27802337255053793c0, v4_float = {0x14de4f, 0xa6f278, 0x2337255, 0x53793c0}, v4_int32 = {0x14de4f, 0xa6f278, 0x2337255, 0x53793c0}, v8_int16 = {0x14, 0xde4f, 0xa6, 0xf278, 0x233, 0x7255, 0x537, 0x93c0}, v16_int8 = {0x0, 0x14, 0xde, 0x4f, 0x0, 0xa6, 0xf2, 0x78, 0x2, 0x33, 0x72, 0x55, 0x5, 0x37, 0x93, 0xc0}}
(gdb)


[-- Attachment #2: 0001-Enable-vector-register-visibility-in-core-file-for-A.patch --]
[-- Type: application/octet-stream, Size: 2785 bytes --]

From e7e441e524d037fe90fdadf198c210a479b63173 Mon Sep 17 00:00:00 2001
From: Aditya Vidyadhar Kamath <Aditya.Kamath1@ibm.com>
Date: Mon, 13 Mar 2023 07:32:57 -0500
Subject: [PATCH] 
 Enable-vector-register-visibility-in-core-file-for-AIX_binutils

This patch will enable vector register visibility when AIX FOLKS do core file analysis.
---
 bfd/aix5ppc-core.c | 21 +++++++++++++++++++++
 bfd/rs6000-core.c  | 16 +++++++++++++++-
 2 files changed, 36 insertions(+), 1 deletion(-)

diff --git a/bfd/aix5ppc-core.c b/bfd/aix5ppc-core.c
index 0a338ac391b..174b967cdbe 100644
--- a/bfd/aix5ppc-core.c
+++ b/bfd/aix5ppc-core.c
@@ -142,6 +142,27 @@ xcoff64_core_p (bfd *abfd)
   sec->filepos = 0;
   sec->contents = (bfd_byte *)&new_core_hdr->c_flt.r64;
 
+  if (core.c_extctx)
+  {
+    /* vmx section.  */
+    flags = SEC_HAS_CONTENTS;
+    sec = bfd_make_section_anyway_with_flags (abfd, ".aix-vmx", flags);
+    if (sec == NULL)
+      return NULL;
+    sec->size = 560;
+    sec->vma = 0;
+    sec->filepos = core.c_extctx;
+
+    /* vmx section.  */
+    flags = SEC_HAS_CONTENTS;
+    sec = bfd_make_section_anyway_with_flags (abfd, ".aix-vsx", flags);
+    if (sec == NULL)
+      return NULL;
+    sec->size = 256;
+    sec->vma = 0;
+    sec->filepos = core.c_extctx + 584;
+  }
+
   /* .ldinfo section.
      To actually find out how long this section is in this particular
      core dump would require going down the whole list of struct
diff --git a/bfd/rs6000-core.c b/bfd/rs6000-core.c
index eb096098256..cb8199ae76d 100644
--- a/bfd/rs6000-core.c
+++ b/bfd/rs6000-core.c
@@ -342,7 +342,7 @@ rs6000coff_core_p (bfd *abfd)
   /* Values from new and old core structures.  */
   int c_flag;
   file_ptr c_stack, c_regoff, c_loader;
-  bfd_size_type c_size, c_regsize, c_lsize;
+  bfd_size_type c_size, c_regsize, c_lsize, c_extoff;
   bfd_vma c_stackend;
   void *c_regptr;
   int proc64;
@@ -370,6 +370,7 @@ rs6000coff_core_p (bfd *abfd)
       c_stackend = CNEW_STACKORG (core.new_dump) + c_size;
       c_lsize = CNEW_LSIZE (core.new_dump);
       c_loader = CNEW_LOADER (core.new_dump);
+      c_extoff = core.new_dump.c_extctx;
 #ifndef BFD64
       proc64 = CNEW_PROC64 (core.new_dump);
     }
@@ -517,6 +518,19 @@ rs6000coff_core_p (bfd *abfd)
 			  c_regsize, (bfd_vma) 0, c_regoff))
     goto fail;
 
+  if (c_extoff)
+  {
+    if (!make_bfd_asection (abfd, ".aix-vmx",
+			    SEC_HAS_CONTENTS,
+		560, (bfd_vma) 0, c_extoff))
+      goto fail;
+
+    if (!make_bfd_asection (abfd, ".aix-vsx",
+			    SEC_HAS_CONTENTS,
+	   256, (bfd_vma) 0, c_extoff + 584))
+      goto fail;
+  }
+
   /* .ldinfo section.
      To actually find out how long this section is in this particular
      core dump would require going down the whole list of struct ld_info's.
-- 
2.38.3


             reply	other threads:[~2023-03-14  7:47 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-14  7:47 Aditya Kamath1 [this message]
2023-03-19 22:46 ` Alan Modra

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CH2PR15MB3544BC11BAF4B10196F118B9D6BE9@CH2PR15MB3544.namprd15.prod.outlook.com \
    --to=aditya.kamath1@ibm.com \
    --cc=amodra@gmail.com \
    --cc=bfd@sourceware.org \
    --cc=sangamesh.swamy@in.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).