public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/gdb] gdb-17.2-rebase-f44: Rebase to FSF GDB 7.7.90.20140627 (pre-7.8 snapshot).
@ 2026-06-27 23:56 Jan Kratochvil
0 siblings, 0 replies; only message in thread
From: Jan Kratochvil @ 2026-06-27 23:56 UTC (permalink / raw)
To: git-commits
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
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-06-27 23:56 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-27 23:56 [rpms/gdb] gdb-17.2-rebase-f44: Rebase to FSF GDB 7.7.90.20140627 (pre-7.8 snapshot) Jan Kratochvil
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox