Hello community,

here is the log from the commit of package gdb for openSUSE:Factory checked in 
at 2020-12-09 22:11:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gdb (Old)
 and      /work/SRC/openSUSE:Factory/.gdb.new.2328 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gdb"

Wed Dec  9 22:11:43 2020 rev:145 rq:854272 version:10.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/gdb/gdb.changes  2020-12-03 18:40:26.157950963 
+0100
+++ /work/SRC/openSUSE:Factory/.gdb.new.2328/gdb.changes        2020-12-09 
22:11:46.559088610 +0100
@@ -1,0 +2,13 @@
+Wed Dec  9 07:56:36 UTC 2020 - Tom de Vries <[email protected]>
+
+- Backport from master [jsc#13656]:
+  * gdb-powerpc-remove-512-bytes-region-limit-if-2nd-dawr-is-avaliable.patch
+- Require 8GB diskspace for x86_64.
+
+-------------------------------------------------------------------
+Mon Nov 30 15:43:58 UTC 2020 - Tom de Vries <[email protected]>
+
+- Patches to be upstreamed:
+  * gdb-fix-use-of-invalid-pointer-in-remote-async-inferior-event-handler.patch
+
+-------------------------------------------------------------------

New:
----
  gdb-fix-use-of-invalid-pointer-in-remote-async-inferior-event-handler.patch
  gdb-powerpc-remove-512-bytes-region-limit-if-2nd-dawr-is-avaliable.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gdb.spec ++++++
--- /var/tmp/diff_new_pack.W0gkAd/_old  2020-12-09 22:11:48.699090779 +0100
+++ /var/tmp/diff_new_pack.W0gkAd/_new  2020-12-09 22:11:48.699090779 +0100
@@ -294,6 +294,7 @@
 Patch1511:      gdb-testsuite-gdb-tui-new-layout-exp-partly-require-tcl86.patch
 Patch1512:      gdb-tui-enable-work-around-libncurses-segfault.patch
 Patch1513:      
gdb-testsuite-fix-control-flow-in-gdb-reverse-insn-reverse-exp.patch
+Patch1514:      
gdb-fix-use-of-invalid-pointer-in-remote-async-inferior-event-handler.patch
 
 # Backports from master
 
@@ -306,6 +307,7 @@
 Patch2007:      gdb-fix-section-matching-in-find_pc_sect_compunit.patch
 Patch2008:      gdb-symtab-fix-language-of-frame-without-debug-info.patch
 Patch2009:      
gdb-testsuite-fix-failure-in-gdb-base-step-over-no-symbols-exp.patch
+Patch2010:      
gdb-powerpc-remove-512-bytes-region-limit-if-2nd-dawr-is-avaliable.patch
 
 # Testsuite patches
 
@@ -702,6 +704,7 @@
 %patch1511 -p1
 %patch1512 -p1
 %patch1513 -p1
+%patch1514 -p1
 
 %patch2000 -p1
 %patch2002 -p1
@@ -712,6 +715,7 @@
 %patch2007 -p1
 %patch2008 -p1
 %patch2009 -p1
+%patch2010 -p1
 
 %patch2500 -p1
 %if 0%{?suse_version} > 1500 

++++++ _constraints ++++++
--- /var/tmp/diff_new_pack.W0gkAd/_old  2020-12-09 22:11:48.731090811 +0100
+++ /var/tmp/diff_new_pack.W0gkAd/_new  2020-12-09 22:11:48.735090816 +0100
@@ -10,5 +10,15 @@
       </disk>
     </hardware>
   </overwrite>
+  <overwrite>
+    <conditions>
+      <arch>x86_64</arch>
+    </conditions>
+    <hardware>
+      <disk>
+        <size unit="G">8</size>
+      </disk>
+    </hardware>
+  </overwrite>
 </constraints>
 

++++++ 
gdb-fix-use-of-invalid-pointer-in-remote-async-inferior-event-handler.patch 
++++++
[gdb] Fix use of invalid pointer in remote_async_inferior_event_handler

As proposed by palves here (
https://sourceware.org/bugzilla/show_bug.cgi?id=26614#c20 ).

---
 gdb/remote.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/gdb/remote.c b/gdb/remote.c
index ba9e6d6e9b..556de6033f 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -14163,9 +14163,13 @@ remote_async_serial_handler (struct serial *scb, void 
*context)
 static void
 remote_async_inferior_event_handler (gdb_client_data data)
 {
+  remote_target *remote = (remote_target *) data;
+  /* Hold a strong reference to the remote target while handling an
+     event, since that could result in closing the connection.  */
+  auto remote_ref = target_ops_ref::new_reference (remote);
+
   inferior_event_handler (INF_REG_EVENT);
 
-  remote_target *remote = (remote_target *) data;
   remote_state *rs = remote->get_remote_state ();
 
   /* inferior_event_handler may have consumed an event pending on the
++++++ gdb-powerpc-remove-512-bytes-region-limit-if-2nd-dawr-is-avaliable.patch 
++++++
PowerPC remove 512 bytes region limit if 2nd DAWR is avaliable.

Power 10 introduces the 2nd DAWR (second watchpoint) and also removed
a restriction that limit the watch region to 512 bytes.

2020-11-08  Rogerio A. Cardoso  <[email protected]>

/gdb

        * ppc-linux-nat.c: (PPC_DEBUG_FEATURE_DATA_BP_ARCH_31): New define.
        (region_ok_for_hw_watchpoint): Check if 2nd DAWR is avaliable before
        set region.

---
 gdb/ppc-linux-nat.c | 26 ++++++++++++++++++--------
 2 files changed, 23 insertions(+), 8 deletions(-)

Index: gdb-10.1/gdb/ppc-linux-nat.c
===================================================================
--- gdb-10.1.orig/gdb/ppc-linux-nat.c
+++ gdb-10.1/gdb/ppc-linux-nat.c
@@ -138,6 +138,11 @@ struct ppc_hw_breakpoint
 #define PPC_DEBUG_FEATURE_DATA_BP_DAWR 0x10
 #endif /* PPC_DEBUG_FEATURE_DATA_BP_DAWR */
 
+/* Feature defined on Linux kernel v5.1: Second watchpoint support.  */
+#ifndef PPC_DEBUG_FEATURE_DATA_BP_ARCH_31
+#define PPC_DEBUG_FEATURE_DATA_BP_ARCH_31 0x20
+#endif /* PPC_DEBUG_FEATURE_DATA_BP_ARCH_31 */
+
 /* The version of the PowerPC HWDEBUG kernel interface that we will use, if
    available.  */
 #define PPC_DEBUG_CURRENT_VERSION 1
@@ -2108,9 +2113,10 @@ ppc_linux_nat_target::region_ok_for_hw_w
      watchpoints.  */
   if (m_dreg_interface.hwdebug_p ())
     {
-      int region_size;
       const struct ppc_debug_info &hwdebug_info = (m_dreg_interface
                                                   .hwdebug_info ());
+      int region_size = hwdebug_info.data_bp_alignment;
+      int region_align = region_size;
 
       /* Embedded DAC-based processors, like the PowerPC 440 have ranged
         watchpoints and can watch any access within an arbitrary memory
@@ -2122,15 +2128,19 @@ ppc_linux_nat_target::region_ok_for_hw_w
        return 2;
       /* Check if the processor provides DAWR interface.  */
       if (hwdebug_info.features & PPC_DEBUG_FEATURE_DATA_BP_DAWR)
-       /* DAWR interface allows to watch up to 512 byte wide ranges which
-          can't cross a 512 byte boundary.  */
-       region_size = 512;
-      else
-       region_size = hwdebug_info.data_bp_alignment;
+       {
+         /* DAWR interface allows to watch up to 512 byte wide ranges.  */
+         region_size = 512;
+         /* DAWR interface allows to watch up to 512 byte wide ranges which
+            can't cross a 512 byte bondary on machines that doesn't have a
+            second DAWR (P9 or less).  */
+         if (!(hwdebug_info.features & PPC_DEBUG_FEATURE_DATA_BP_ARCH_31))
+           region_align = 512;
+       }
       /* Server processors provide one hardware watchpoint and addr+len should
          fall in the watchable region provided by the ptrace interface.  */
-      if (region_size
-         && (addr + len > (addr & ~(region_size - 1)) + region_size))
+      if (region_align
+         && (addr + len > (addr & ~(region_align - 1)) + region_size))
        return 0;
     }
   /* addr+len must fall in the 8 byte watchable region for DABR-based
_______________________________________________
openSUSE Commits mailing list -- [email protected]
To unsubscribe, email [email protected]
List Netiquette: https://en.opensuse.org/openSUSE:Mailing_list_netiquette
List Archives: 
https://lists.opensuse.org/archives/list/[email protected]

Reply via email to