public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Jan Kratochvil <jan.kratochvil@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/gdb] gdb-17.2-rebase-f44: Rebase to FSF GDB 7.7.90.20140627 (pre-7.8 snapshot).
Date: Sat, 27 Jun 2026 23:56:41 GMT	[thread overview]
Message-ID: <178260460111.1.13616907710339729121.rpms-gdb-de9f421a3c3f@fedoraproject.org> (raw)

A new commit has been pushed.

Repo   : rpms/gdb
Branch : gdb-17.2-rebase-f44
Commit : de9f421a3c3f30b7d13669d95592794c43925c33
Author : Jan Kratochvil <jan.kratochvil@redhat.com>
Date   : 2014-06-27T18:00:57+02:00
Stats  : +10/-581 in 6 file(s)
URL    : https://src.fedoraproject.org/rpms/gdb/c/de9f421a3c3f30b7d13669d95592794c43925c33?branch=gdb-17.2-rebase-f44

Log:
Rebase to FSF GDB 7.7.90.20140627 (pre-7.8 snapshot).

---
diff --git a/.gitignore b/.gitignore
index 5975d9c..e5461cd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,2 @@
 /gdb-libstdc++-v3-python-r155978.tar.bz2
-/gdb-7.7.90.20140613.tar.bz2
+/gdb-7.7.90.20140627.tar.bz2

diff --git a/gdb-bfd-demangled-names.patch b/gdb-bfd-demangled-names.patch
deleted file mode 100644
index 72bd834..0000000
--- a/gdb-bfd-demangled-names.patch
+++ /dev/null
@@ -1,207 +0,0 @@
-Re: ASAN crash regression [Re: [PATCH 2/2] move the demangled_names_hash into the per-BFD]
-https://sourceware.org/ml/gdb-patches/2014-06/msg00550.html
-
-Jan> ./configure ... -fsanitize=address
-Jan> echo 'void f(){}main(){}'|gcc -x c++ - -g;ASAN_OPTIONS=symbolize=1 ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer ./gdb -batch a.out -ex 'file a.out'
-
-Readily seen with valgrind as well.
-
-Here's my proposed fix.
-
-Tom
-
-commit 3a93a67ad0ea3495f67c9708673345b73de2d806
-Author: Tom Tromey <tromey@redhat.com>
-Date:   Mon Jun 16 03:17:19 2014 -0600
-
-    fix memory errors with demangled name hash
-    
-    This fixes a regression that Jan pointed out.
-    
-    The bug is that some names were allocated by dwarf2read on the objfile
-    obstack, but then passed to SYMBOL_SET_NAMES with copy_name=0.  This
-    violates the invariant that the names must have a lifetime tied to the
-    lifetime of the BFD.
-    
-    The fix is to allocate names on the per-BFD obstack.
-    
-    I looked at all callers, direct or indirect, of SYMBOL_SET_NAMES that
-    pass copy_name=0.  Note that only the ELF and DWARF readers do this;
-    other symbol readers were never updated (and perhaps cannot be,
-    depending on the details of the formats).  This is why the patch is
-    relatively small.
-    
-    Built and regtested on x86-64 Fedora 20.
-    
-    2014-06-16  Tom Tromey  <tromey@redhat.com>
-    
-    	* dwarf2read.c (fixup_go_packaging, dwarf2_compute_name)
-    	(dwarf2_physname, read_partial_die)
-    	(guess_partial_die_structure_name, fixup_partial_die)
-    	(guess_full_die_structure_name, anonymous_struct_prefix)
-    	(dwarf2_name): Use per-BFD obstack.
-
-### a/gdb/ChangeLog
-### b/gdb/ChangeLog
-## -1,5 +1,13 @@
- 2014-06-16  Tom Tromey  <tromey@redhat.com>
- 
-+	* dwarf2read.c (fixup_go_packaging, dwarf2_compute_name)
-+	(dwarf2_physname, read_partial_die)
-+	(guess_partial_die_structure_name, fixup_partial_die)
-+	(guess_full_die_structure_name, anonymous_struct_prefix)
-+	(dwarf2_name): Use per-BFD obstack.
-+
-+2014-06-16  Tom Tromey  <tromey@redhat.com>
-+
- 	* minsyms.h (prim_record_minimal_symbol)
- 	(prim_record_minimal_symbol_and_info): Update comments.
- 
---- a/gdb/dwarf2read.c
-+++ b/gdb/dwarf2read.c
-@@ -7745,9 +7745,10 @@ fixup_go_packaging (struct dwarf2_cu *cu)
-   if (package_name != NULL)
-     {
-       struct objfile *objfile = cu->objfile;
--      const char *saved_package_name = obstack_copy0 (&objfile->objfile_obstack,
--						      package_name,
--						      strlen (package_name));
-+      const char *saved_package_name
-+	= obstack_copy0 (&objfile->per_bfd->storage_obstack,
-+			 package_name,
-+			 strlen (package_name));
-       struct type *type = init_type (TYPE_CODE_MODULE, 0, 0,
- 				     saved_package_name, objfile);
-       struct symbol *sym;
-@@ -8365,6 +8366,8 @@ dwarf2_compute_name (const char *name,
- 	  long length;
- 	  const char *prefix;
- 	  struct ui_file *buf;
-+	  char *intermediate_name;
-+	  const char *canonical_name = NULL;
- 
- 	  prefix = determine_prefix (die, cu);
- 	  buf = mem_fileopen ();
-@@ -8541,19 +8544,25 @@ dwarf2_compute_name (const char *name,
- 		}
- 	    }
- 
--	  name = ui_file_obsavestring (buf, &objfile->objfile_obstack,
--				       &length);
-+	  intermediate_name = ui_file_xstrdup (buf, &length);
- 	  ui_file_delete (buf);
- 
- 	  if (cu->language == language_cplus)
--	    {
--	      const char *cname
--		= dwarf2_canonicalize_name (name, cu,
--					    &objfile->objfile_obstack);
-+	    canonical_name
-+	      = dwarf2_canonicalize_name (intermediate_name, cu,
-+					  &objfile->per_bfd->storage_obstack);
-+
-+	  /* If we only computed INTERMEDIATE_NAME, or if
-+	     INTERMEDIATE_NAME is already canonical, then we need to
-+	     copy it to the appropriate obstack.  */
-+	  if (canonical_name == NULL || canonical_name == intermediate_name)
-+	    name = obstack_copy0 (&objfile->per_bfd->storage_obstack,
-+				  intermediate_name,
-+				  strlen (intermediate_name));
-+	  else
-+	    name = canonical_name;
- 
--	      if (cname != NULL)
--		name = cname;
--	    }
-+	  xfree (intermediate_name);
- 	}
-     }
- 
-@@ -8562,7 +8571,7 @@ dwarf2_compute_name (const char *name,
- 
- /* Return the fully qualified name of DIE, based on its DW_AT_name.
-    If scope qualifiers are appropriate they will be added.  The result
--   will be allocated on the objfile_obstack, or NULL if the DIE does
-+   will be allocated on the storage_obstack, or NULL if the DIE does
-    not have a name.  NAME may either be from a previous call to
-    dwarf2_name or NULL.
- 
-@@ -8677,7 +8686,8 @@ dwarf2_physname (const char *name, struct die_info *die, struct dwarf2_cu *cu)
-     retval = canon;
- 
-   if (need_copy)
--    retval = obstack_copy0 (&objfile->objfile_obstack, retval, strlen (retval));
-+    retval = obstack_copy0 (&objfile->per_bfd->storage_obstack,
-+			    retval, strlen (retval));
- 
-   do_cleanups (back_to);
-   return retval;
-@@ -15508,7 +15518,7 @@ read_partial_die (const struct die_reader_specs *reader,
- 	    default:
- 	      part_die->name
- 		= dwarf2_canonicalize_name (DW_STRING (&attr), cu,
--					    &objfile->objfile_obstack);
-+					    &objfile->per_bfd->storage_obstack);
- 	      break;
- 	    }
- 	  break;
-@@ -15793,7 +15803,7 @@ guess_partial_die_structure_name (struct partial_die_info *struct_pdi,
- 	  if (actual_class_name != NULL)
- 	    {
- 	      struct_pdi->name
--		= obstack_copy0 (&cu->objfile->objfile_obstack,
-+		= obstack_copy0 (&cu->objfile->per_bfd->storage_obstack,
- 				 actual_class_name,
- 				 strlen (actual_class_name));
- 	      xfree (actual_class_name);
-@@ -15879,8 +15889,9 @@ fixup_partial_die (struct partial_die_info *part_die,
- 	  else
- 	    base = demangled;
- 
--	  part_die->name = obstack_copy0 (&cu->objfile->objfile_obstack,
--					  base, strlen (base));
-+	  part_die->name
-+	    = obstack_copy0 (&cu->objfile->per_bfd->storage_obstack,
-+			     base, strlen (base));
- 	  xfree (demangled);
- 	}
-     }
-@@ -18557,7 +18568,7 @@ guess_full_die_structure_name (struct die_info *die, struct dwarf2_cu *cu)
- 			  && actual_name[actual_name_len
- 					 - die_name_len - 1] == ':')
- 			name =
--			  obstack_copy0 (&cu->objfile->objfile_obstack,
-+			  obstack_copy0 (&cu->objfile->per_bfd->storage_obstack,
- 					 actual_name,
- 					 actual_name_len - die_name_len - 2);
- 		    }
-@@ -18603,7 +18614,7 @@ anonymous_struct_prefix (struct die_info *die, struct dwarf2_cu *cu)
-   if (base == NULL || base == DW_STRING (attr) || base[-1] != ':')
-     return "";
- 
--  return obstack_copy0 (&cu->objfile->objfile_obstack,
-+  return obstack_copy0 (&cu->objfile->per_bfd->storage_obstack,
- 			DW_STRING (attr), &base[-1] - DW_STRING (attr));
- }
- 
-@@ -18943,8 +18954,9 @@ dwarf2_name (struct die_info *die, struct dwarf2_cu *cu)
- 	      char *base;
- 
- 	      /* FIXME: we already did this for the partial symbol... */
--	      DW_STRING (attr) = obstack_copy0 (&cu->objfile->objfile_obstack,
--						demangled, strlen (demangled));
-+	      DW_STRING (attr)
-+		= obstack_copy0 (&cu->objfile->per_bfd->storage_obstack,
-+				 demangled, strlen (demangled));
- 	      DW_STRING_IS_CANONICAL (attr) = 1;
- 	      xfree (demangled);
- 
-@@ -18967,7 +18979,7 @@ dwarf2_name (struct die_info *die, struct dwarf2_cu *cu)
-     {
-       DW_STRING (attr)
- 	= dwarf2_canonicalize_name (DW_STRING (attr), cu,
--				    &cu->objfile->objfile_obstack);
-+				    &cu->objfile->per_bfd->storage_obstack);
-       DW_STRING_IS_CANONICAL (attr) = 1;
-     }
-   return DW_STRING (attr);

diff --git a/gdb-upstream.patch b/gdb-upstream.patch
deleted file mode 100644
index 21a6d20..0000000
--- a/gdb-upstream.patch
+++ /dev/null
@@ -1,321 +0,0 @@
-http://sourceware.org/ml/gdb-patches/2014-06/msg00656.html
-Subject: Re: Regression with default scheduler-locking=step  [Re: [pushed] Consecutive step-overs trigger internal error.]
-
-On 06/17/2014 08:24 PM, Jan Kratochvil wrote:
-> On Tue, 22 Apr 2014 20:24:28 +0200, Pedro Alves wrote:
->> Tested on x86_64 Fedora 17, native and gdbserver, and also native on
->> top of my "software single-step on x86_64" series.
-> 
-> 483805cf9ea5a6dace41415d8830e93fccc49c43 is the first bad commit
-> commit 483805cf9ea5a6dace41415d8830e93fccc49c43
-> Author: Pedro Alves <palves@redhat.com>
-> Date:   Tue Apr 22 15:00:56 2014 +0100
->     Consecutive step-overs trigger internal error.
->     
-> (gdb) next^M
-> [Thread 0x7ffff7fda700 (LWP 27168) exited]^M
-> [New LWP 27168]^M
-> [Thread 0x7ffff74ee700 (LWP 27174) exited]^M
-> process 27168 is executing new program: /home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.threads/thread-execl^M
-> [Thread debugging using libthread_db enabled]^M
-> Using host libthread_db library "/lib64/libthread_db.so.1".^M
-> infrun.c:5225: internal-error: switch_back_to_stepped_thread: Assertion `!schedlock_applies (1)' failed.^M
-> A problem internal to GDB has been detected,^M
-> further debugging may prove unreliable.^M
-> Quit this debugging session? (y or n) FAIL: gdb.threads/thread-execl.exp: get to main in new image (GDB internal error)
-> Resyncing due to internal error.
-
-Thanks Jan.
-
-> 
-> The regressions happens only with the attached patch which I am not sure if it
-> is considered as a valid FSF GDB regression or not but I think it is.
-
-If it worked before, then it's certainly a regression.  The user is
-free to do "set scheduler-locking step" herself.
-
-Here's a fix.  Let me know what you think.
-
-8<---------------------------------
->From f717378c16cb04f8350935a1336767d2541b36a5 Mon Sep 17 00:00:00 2001
-From: Pedro Alves <palves@redhat.com>
-Date: Wed, 18 Jun 2014 14:20:31 +0100
-Subject: [PATCH] Fix next over threaded execl with "set scheduler-locking
-Subject: [PATCH] Fix next over threaded execl with "set scheduler-locking
- step".
-
-Running gdb.threads/thread-execl.exp with scheduler-locking set to
-"step" reveals a problem:
-
- (gdb) next^M
- [Thread 0x7ffff7fda700 (LWP 27168) exited]^M
- [New LWP 27168]^M
- [Thread 0x7ffff74ee700 (LWP 27174) exited]^M
- process 27168 is executing new program: /home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.threads/thread-execl^M
- [Thread debugging using libthread_db enabled]^M
- Using host libthread_db library "/lib64/libthread_db.so.1".^M
- infrun.c:5225: internal-error: switch_back_to_stepped_thread: Assertion `!schedlock_applies (1)' failed.^M
- A problem internal to GDB has been detected,^M
- further debugging may prove unreliable.^M
- Quit this debugging session? (y or n) FAIL: gdb.threads/thread-execl.exp: schedlock step: get to main in new image (GDB internal error)
-
-The assertion is correct.  The issue is that GDB is mistakenly trying
-to switch back to an exited thread, that was previously stepping when
-it exited.  This is exactly the sort of thing the test wants to make
-sure doesn't happen:
-
-	# Now set a breakpoint at `main', and step over the execl call.  The
-	# breakpoint at main should be reached.  GDB should not try to revert
-	# back to the old thread from the old image and resume stepping it
-
-We don't see this bug with schedlock off only because a different
-sequence of events makes GDB manage to delete the thread instead of
-marking it exited.
-
-This particular internal error can be fixed by making the loop over
-all threads in switch_back_to_stepped_thread skip exited threads.
-But, looking over other ALL_THREADS users, all either can or should be
-skipping exited threads too.  So for simplicity, this patch replaces
-ALL_THREADS with a new macro that skips exited threads itself, and
-updates everything to use it.
-
-Tested on x86_64 Fedora 20.
-
-gdb/
-2014-06-18  Pedro Alves  <palves@redhat.com>
-
-	* gdbthread.h (ALL_THREADS): Delete.
-	(ALL_NON_EXITED_THREADS): New macro.
-	* btrace.c (btrace_free_objfile): Use ALL_NON_EXITED_THREADS
-	instead of ALL_THREADS.
-	* infrun.c (find_thread_needs_step_over)
-	(switch_back_to_stepped_thread): Use ALL_NON_EXITED_THREADS
-	instead of ALL_THREADS.
-	* record-btrace.c (record_btrace_open)
-	(record_btrace_stop_recording, record_btrace_close)
-	(record_btrace_is_replaying, record_btrace_resume)
-	(record_btrace_find_thread_to_move, record_btrace_wait): Likewise.
-	* remote.c (append_pending_thread_resumptions): Likewise.
-
-gdb/testsuite/
-2014-06-18  Pedro Alves  <palves@redhat.com>
-
-	* gdb.threads/thread-execl.exp (do_test): New procedure, factored
-	out from ...
-	(top level): ... here.  Iterate running tests under different
-	scheduler-locking settings.
----
- gdb/btrace.c                               |  2 +-
- gdb/gdbthread.h                            |  8 ++++--
- gdb/infrun.c                               |  4 +--
- gdb/record-btrace.c                        | 14 +++++-----
- gdb/remote.c                               |  2 +-
- gdb/testsuite/gdb.threads/thread-execl.exp | 44 ++++++++++++++++++++----------
- gdb/thread.c                               |  2 +-
- 7 files changed, 46 insertions(+), 30 deletions(-)
-
-diff --git a/gdb/btrace.c b/gdb/btrace.c
-index 601eb41..87a171e 100644
---- a/gdb/btrace.c
-+++ b/gdb/btrace.c
-@@ -958,7 +958,7 @@ btrace_free_objfile (struct objfile *objfile)
- 
-   DEBUG ("free objfile");
- 
--  ALL_THREADS (tp)
-+  ALL_NON_EXITED_THREADS (tp)
-     btrace_clear (tp);
- }
- 
-diff --git a/gdb/gdbthread.h b/gdb/gdbthread.h
-index 9f5dee6..64e37c3 100644
---- a/gdb/gdbthread.h
-+++ b/gdb/gdbthread.h
-@@ -317,10 +317,12 @@ void thread_change_ptid (ptid_t old_ptid, ptid_t new_ptid);
- typedef int (*thread_callback_func) (struct thread_info *, void *);
- extern struct thread_info *iterate_over_threads (thread_callback_func, void *);
- 
--/* Traverse all threads.  */
-+/* Traverse all threads, except those that have THREAD_EXITED
-+   state.  */
- 
--#define ALL_THREADS(T)				\
--  for (T = thread_list; T; T = T->next)
-+#define ALL_NON_EXITED_THREADS(T)				\
-+  for (T = thread_list; T; T = T->next) \
-+    if ((T)->state != THREAD_EXITED)
- 
- extern int thread_count (void);
- 
-diff --git a/gdb/infrun.c b/gdb/infrun.c
-index 4e808d9..e8e26e0 100644
---- a/gdb/infrun.c
-+++ b/gdb/infrun.c
-@@ -2160,7 +2160,7 @@ find_thread_needs_step_over (int step, struct thread_info *except)
-       return NULL;
-     }
- 
--  ALL_THREADS (tp)
-+  ALL_NON_EXITED_THREADS (tp)
-     {
-       /* Ignore the EXCEPT thread.  */
-       if (tp == except)
-@@ -5204,7 +5204,7 @@ switch_back_to_stepped_thread (struct execution_control_state *ecs)
- 	 step/next/etc.  */
-       stepping_thread = NULL;
-       step_over = NULL;
--      ALL_THREADS (tp)
-+      ALL_NON_EXITED_THREADS (tp)
-         {
- 	  /* Ignore threads of processes we're not resuming.  */
- 	  if (!sched_multi
-diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c
-index e0c537a8..6a9bfe1 100644
---- a/gdb/record-btrace.c
-+++ b/gdb/record-btrace.c
-@@ -206,7 +206,7 @@ record_btrace_open (char *args, int from_tty)
-   gdb_assert (record_btrace_thread_observer == NULL);
- 
-   disable_chain = make_cleanup (null_cleanup, NULL);
--  ALL_THREADS (tp)
-+  ALL_NON_EXITED_THREADS (tp)
-     if (args == NULL || *args == 0 || number_is_in_list (args, tp->num))
-       {
- 	btrace_enable (tp);
-@@ -238,7 +238,7 @@ record_btrace_stop_recording (struct target_ops *self)
- 
-   record_btrace_auto_disable ();
- 
--  ALL_THREADS (tp)
-+  ALL_NON_EXITED_THREADS (tp)
-     if (tp->btrace.target != NULL)
-       btrace_disable (tp);
- }
-@@ -259,7 +259,7 @@ record_btrace_close (struct target_ops *self)
- 
-   /* We should have already stopped recording.
-      Tear down btrace in case we have not.  */
--  ALL_THREADS (tp)
-+  ALL_NON_EXITED_THREADS (tp)
-     btrace_teardown (tp);
- }
- 
-@@ -835,7 +835,7 @@ record_btrace_is_replaying (struct target_ops *self)
- {
-   struct thread_info *tp;
- 
--  ALL_THREADS (tp)
-+  ALL_NON_EXITED_THREADS (tp)
-     if (btrace_is_replaying (tp))
-       return 1;
- 
-@@ -1522,7 +1522,7 @@ record_btrace_resume (struct target_ops *ops, ptid_t ptid, int step,
- 
-   /* Stop replaying other threads if the thread to resume is not replaying.  */
-   if (!btrace_is_replaying (tp) && execution_direction != EXEC_REVERSE)
--    ALL_THREADS (other)
-+    ALL_NON_EXITED_THREADS (other)
-       record_btrace_stop_replaying (other);
- 
-   /* As long as we're not replaying, just forward the request.  */
-@@ -1572,7 +1572,7 @@ record_btrace_find_thread_to_move (ptid_t ptid)
-     return tp;
- 
-   /* Otherwise, find one other thread that has been resumed.  */
--  ALL_THREADS (tp)
-+  ALL_NON_EXITED_THREADS (tp)
-     if ((tp->btrace.flags & BTHR_MOVE) != 0)
-       return tp;
- 
-@@ -1777,7 +1777,7 @@ record_btrace_wait (struct target_ops *ops, ptid_t ptid,
- 
-   /* Stop all other threads. */
-   if (!non_stop)
--    ALL_THREADS (other)
-+    ALL_NON_EXITED_THREADS (other)
-       other->btrace.flags &= ~BTHR_MOVE;
- 
-   /* Start record histories anew from the current position.  */
-diff --git a/gdb/remote.c b/gdb/remote.c
-index 6915dd8..b5318f1 100644
---- a/gdb/remote.c
-+++ b/gdb/remote.c
-@@ -4626,7 +4626,7 @@ append_pending_thread_resumptions (char *p, char *endp, ptid_t ptid)
- {
-   struct thread_info *thread;
- 
--  ALL_THREADS (thread)
-+  ALL_NON_EXITED_THREADS (thread)
-     if (ptid_match (thread->ptid, ptid)
- 	&& !ptid_equal (inferior_ptid, thread->ptid)
- 	&& thread->suspend.stop_signal != GDB_SIGNAL_0
-diff --git a/gdb/testsuite/gdb.threads/thread-execl.exp b/gdb/testsuite/gdb.threads/thread-execl.exp
-index d837fe4..14b96d2 100644
---- a/gdb/testsuite/gdb.threads/thread-execl.exp
-+++ b/gdb/testsuite/gdb.threads/thread-execl.exp
-@@ -28,19 +28,33 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
-     return -1
- }
- 
--clean_restart ${binfile}
--
--runto_main
--
--# Get ourselves to the thread that execs
--gdb_breakpoint "thread_execler"
--gdb_test "continue" ".*thread_execler.*" "continue to thread start"
--
--# Now set a breakpoint at `main', and step over the execl call.  The
--# breakpoint at main should be reached.  GDB should not try to revert
--# back to the old thread from the old image and resume stepping it
--# (since it is gone).
--gdb_breakpoint "main"
--gdb_test "next" ".*main.*" "get to main in new image"
-+# Run the test proper.  SCHEDLOCK specifies what scheduler-locking
-+# should be set to.
-+
-+proc do_test { schedlock } {
-+    global binfile
-+
-+    with_test_prefix "schedlock $schedlock" {
-+	clean_restart ${binfile}
-+
-+	if ![runto_main] {
-+	    return 0
-+	}
-+
-+	# Get ourselves to the thread that execs.
-+	gdb_breakpoint "thread_execler"
-+	gdb_test "continue" ".*thread_execler.*" "continue to thread start"
-+
-+	# Now set a breakpoint at `main', and step over the execl call.  The
-+	# breakpoint at main should be reached.  GDB should not try to revert
-+	# back to the old thread from the old image and resume stepping it
-+	# (since it is gone).
-+	gdb_breakpoint "main"
-+	gdb_test_no_output "set scheduler-locking $schedlock"
-+	gdb_test "next" ".*main.*" "get to main in new image"
-+    }
-+}
- 
--return 0
-+foreach schedlock {"off" "step" "on"} {
-+    do_test $schedlock
-+}
-diff --git a/gdb/thread.c b/gdb/thread.c
-index 7bc5271..532149d 100644
---- a/gdb/thread.c
-+++ b/gdb/thread.c
-@@ -1243,7 +1243,7 @@ thread_apply_all_command (char *cmd, int from_tty)
-       ta_cleanup.tp_array = tp_array;
-       ta_cleanup.count = tc;
- 
--      ALL_THREADS (tp)
-+      ALL_NON_EXITED_THREADS (tp)
-         {
-           tp_array[i] = tp;
-           tp->refcount++;
--- 
-1.9.3
-
-

diff --git a/gdb-watchpoint-fork-fix.patch b/gdb-watchpoint-fork-fix.patch
deleted file mode 100644
index 388d3a8..0000000
--- a/gdb-watchpoint-fork-fix.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-http://sourceware.org/ml/gdb-patches/2014-06/msg00710.html
-Subject: Re: Regression for watchpoint-fork.exp  [Re: [PATCH v3 2/5] PR breakpoints/7143 - Watchpoint does not trigger when first set]
-
-On 06/19/2014 04:02 PM, Pedro Alves wrote:
-
->> Attaching gzipped gdb.threads/watchpoint-fork-parent-st
->> from gcc-4.9.0-9.fc21.x86_64.
-> 
-> Thanks, I can reproduce it.
-
-Hmm, I suspect this might be related to kernel-side validation
-of DR_CONTROL vs DR0-3, like what we already handle in amd64_linux_prepare_to_resume.
-And indeed this below makes the error go away.  Not exactly sure why yet.
-
-[ patch extended by Jan Kratochvil ]
-
---- gdb-7.7.90.20140613/gdb/i386-linux-nat.c.orig	2014-06-19 21:42:00.788611544 +0200
-+++ gdb-7.7.90.20140613/gdb/i386-linux-nat.c	2014-06-19 21:42:04.556614401 +0200
-@@ -778,6 +778,8 @@ i386_linux_prepare_to_resume (struct lwp
-       /* See amd64_linux_prepare_to_resume for Linux kernel note on
- 	 i386_linux_dr_set calls ordering.  */
- 
-+      i386_linux_dr_set (lwp->ptid, DR_CONTROL, 0);
-+
-       for (i = DR_FIRSTADDR; i <= DR_LASTADDR; i++)
- 	if (state->dr_ref_count[i] > 0)
- 	  {
---- gdb-7.7.90.20140613/gdb/amd64-linux-nat.c.orig	2014-06-19 21:40:37.582534392 +0200
-+++ gdb-7.7.90.20140613/gdb/amd64-linux-nat.c	2014-06-19 21:41:17.192570902 +0200
-@@ -415,6 +415,8 @@ amd64_linux_prepare_to_resume (struct lw
- 
- 	 Ensure DR_CONTROL gets written as the very last register here.  */
- 
-+      amd64_linux_dr_set (lwp->ptid, DR_CONTROL, 0);
-+
-       for (i = DR_FIRSTADDR; i <= DR_LASTADDR; i++)
- 	if (state->dr_ref_count[i] > 0)
- 	  {

diff --git a/gdb.spec b/gdb.spec
index 5920c21..3cbe242 100644
--- a/gdb.spec
+++ b/gdb.spec
@@ -18,14 +18,14 @@ Summary: A GNU source-level debugger for C, C++, Fortran, Go and other languages
 Name: %{?scl_prefix}gdb
 
 # Freeze it when GDB gets branched
-%global snapsrc    20140613
+%global snapsrc    20140627
 # See timestamp of source gnulib installed into gdb/gnulib/ .
 %global snapgnulib 20121213
-Version: 7.7.90.20140613
+Version: 7.7.90.%{snapsrc}
 
 # The release always contains a leading reserved number, start it at 1.
 # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
-Release: 5%{?dist}
+Release: 6%{?dist}
 
 License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain and GFDL
 Group: Development/Debuggers
@@ -218,7 +218,7 @@ Patch231: gdb-6.3-bz202689-exec-from-pthread-test.patch
 
 # Backported fixups post the source tarball.
 #Xdrop: Just backports.
-Patch232: gdb-upstream.patch
+#Patch232: gdb-upstream.patch
 
 # Testcase for PPC Power6/DFP instructions disassembly (BZ 230000).
 #=fedoratest+ppc
@@ -531,12 +531,6 @@ Patch908: gdb-vla-intel-21of23.patch
 Patch909: gdb-vla-intel-22of23.patch
 Patch910: gdb-vla-intel-23of23.patch
 
-# Fix ASAN crash regression with demangled names copy (Tom Tromey).
-Patch911: gdb-bfd-demangled-names.patch
-
-# Fix gdb-7.8 watchpoint-fork.exp regression (Pedro Alves).
-Patch913: gdb-watchpoint-fork-fix.patch
-
 # Fix --with-system-readline with readline-6.3 patch 5.
 Patch914: gdb-readline-6.3.5.patch
 
@@ -716,7 +710,7 @@ find -name "*.info*"|xargs rm -f
 %patch2 -p1
 
 %patch349 -p1
-%patch232 -p1
+#patch232 -p1
 %patch888 -p1
 %patch889 -p1
 %patch890 -p1
@@ -839,8 +833,6 @@ find -name "*.info*"|xargs rm -f
 %patch852 -p1
 %patch863 -p1
 %patch887 -p1
-%patch911 -p1
-%patch913 -p1
 %patch914 -p1
 %patch918 -p1
 
@@ -1328,6 +1320,9 @@ then
 fi
 
 %changelog
+* Fri Jun 27 2014 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.7.90.20140627-6.fc21
+- Rebase to FSF GDB 7.7.90.20140627 (pre-7.8 snapshot).
+
 * Fri Jun 27 2014 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.7.90.20140613-5.fc21
 - Continue backtrace even if a frame filter throws an exception (Phil Muldoon).
 

diff --git a/sources b/sources
index f1c61d8..3c5cbbe 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
 4981307aa9619bbec5b73261e4e41c8d  gdb-libstdc++-v3-python-r155978.tar.bz2
-cf4ddceb79fef56b4146e14be72c8727  gdb-7.7.90.20140613.tar.bz2
+748f54dc55f6e21ce1235492629ef5d8  gdb-7.7.90.20140627.tar.bz2

                 reply	other threads:[~2026-06-27 23:56 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=178260460111.1.13616907710339729121.rpms-gdb-de9f421a3c3f@fedoraproject.org \
    --to=jan.kratochvil@redhat.com \
    --cc=git-commits@fedoraproject.org \
    /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