diff --git a/gdb-6.8-attach-signalled-detach-stopped.patch b/gdb-6.8-attach-signalled-detach-stopped.patch index b98e2f3..bf5526a 100644 --- a/gdb-6.8-attach-signalled-detach-stopped.patch +++ b/gdb-6.8-attach-signalled-detach-stopped.patch @@ -1,8 +1,8 @@ -Index: gdb-7.5.50.20130215/gdb/linux-nat.c +Index: gdb-7.7/gdb/linux-nat.c =================================================================== ---- gdb-7.5.50.20130215.orig/gdb/linux-nat.c 2013-02-15 22:38:05.000000000 +0100 -+++ gdb-7.5.50.20130215/gdb/linux-nat.c 2013-02-15 22:44:59.638985719 +0100 -@@ -181,6 +181,9 @@ blocked. */ +--- gdb-7.7.orig/gdb/linux-nat.c 2014-02-09 19:13:32.998214571 +0100 ++++ gdb-7.7/gdb/linux-nat.c 2014-02-09 19:17:37.561499606 +0100 +@@ -176,6 +176,9 @@ blocked. */ static struct target_ops *linux_ops; static struct target_ops linux_ops_saved; @@ -12,7 +12,7 @@ Index: gdb-7.5.50.20130215/gdb/linux-nat.c /* The method to call, if any, when a new thread is attached. */ static void (*linux_nat_new_thread) (struct lwp_info *); -@@ -914,7 +917,14 @@ holding the child stopped. Try \"set de +@@ -652,7 +655,14 @@ holding the child stopped. Try \"set de parent_inf->waiting_for_vfork_done = 0; } else if (detach_fork) @@ -28,25 +28,25 @@ Index: gdb-7.5.50.20130215/gdb/linux-nat.c /* Note that the detach above makes PARENT_INF dangling. */ -@@ -1362,6 +1372,7 @@ linux_nat_post_attach_wait (ptid_t ptid, +@@ -1099,6 +1109,7 @@ linux_nat_post_attach_wait (ptid_t ptid, if (debug_linux_nat) fprintf_unfiltered (gdb_stdlog, "LNPAW: Attaching to a stopped process\n"); -+ pid_was_stopped = GET_PID (ptid); ++ pid_was_stopped = ptid_get_pid (ptid); /* The process is definitely stopped. It is in a job control stop, unless the kernel predates the TASK_STOPPED / -@@ -1790,6 +1801,9 @@ get_pending_status (struct lwp_info *lp, +@@ -1518,6 +1529,9 @@ get_pending_status (struct lwp_info *lp, gdb_signal_to_string (signo)); } -+ if (*status == 0 && GET_PID (lp->ptid) == pid_was_stopped) ++ if (*status == 0 && ptid_get_pid (lp->ptid) == pid_was_stopped) + *status = W_STOPCODE (SIGSTOP); + return 0; } -@@ -1900,6 +1914,8 @@ linux_nat_detach (struct target_ops *ops +@@ -1631,6 +1645,8 @@ linux_nat_detach (struct target_ops *ops } else linux_ops->to_detach (ops, args, from_tty); @@ -55,7 +55,7 @@ Index: gdb-7.5.50.20130215/gdb/linux-nat.c } /* Resume LP. */ -@@ -2086,6 +2102,14 @@ linux_nat_resume (struct target_ops *ops +@@ -1813,6 +1829,14 @@ linux_nat_resume (struct target_ops *ops linux_nat_resume_callback. */ lp->stopped = 0; @@ -64,13 +64,13 @@ Index: gdb-7.5.50.20130215/gdb/linux-nat.c + it as stopped if the user detaches. PTID variable has PID set to LWP + while we need to check the real PID here. */ + -+ if (!step && lp && pid_was_stopped == GET_PID (lp->ptid)) ++ if (!step && lp && pid_was_stopped == ptid_get_pid (lp->ptid)) + pid_was_stopped = 0; + if (resume_many) iterate_over_lwps (ptid, linux_nat_resume_callback, NULL); -@@ -4137,6 +4161,8 @@ linux_nat_mourn_inferior (struct target_ +@@ -3864,6 +3888,8 @@ linux_nat_mourn_inferior (struct target_ /* Let the arch-specific native code know this process is gone. */ linux_nat_forget_process (pid); @@ -79,10 +79,10 @@ Index: gdb-7.5.50.20130215/gdb/linux-nat.c } /* Convert a native/host siginfo object, into/from the siginfo in the -Index: gdb-7.5.50.20130215/gdb/testsuite/gdb.threads/attach-stopped.exp +Index: gdb-7.7/gdb/testsuite/gdb.threads/attach-stopped.exp =================================================================== ---- gdb-7.5.50.20130215.orig/gdb/testsuite/gdb.threads/attach-stopped.exp 2013-01-01 07:41:27.000000000 +0100 -+++ gdb-7.5.50.20130215/gdb/testsuite/gdb.threads/attach-stopped.exp 2013-02-15 22:44:23.262930312 +0100 +--- gdb-7.7.orig/gdb/testsuite/gdb.threads/attach-stopped.exp 2014-01-08 10:23:36.000000000 +0100 ++++ gdb-7.7/gdb/testsuite/gdb.threads/attach-stopped.exp 2014-02-09 19:13:33.321214945 +0100 @@ -61,7 +61,65 @@ proc corefunc { threadtype } { gdb_reinitialize_dir $srcdir/$subdir gdb_load ${binfile} diff --git a/gdb-rhel5-compat.patch b/gdb-rhel5-compat.patch index 2b947d3..645e4ae 100644 --- a/gdb-rhel5-compat.patch +++ b/gdb-rhel5-compat.patch @@ -1,21 +1,21 @@ -Index: gdb-7.4.50.20120602/gdb/linux-nat.c +Index: gdb-7.7/gdb/linux-nat.c =================================================================== ---- gdb-7.4.50.20120602.orig/gdb/linux-nat.c 2012-06-02 20:54:30.000000000 +0200 -+++ gdb-7.4.50.20120602/gdb/linux-nat.c 2012-06-02 20:56:03.966493352 +0200 -@@ -1816,8 +1816,22 @@ get_pending_status (struct lwp_info *lp, +--- gdb-7.7.orig/gdb/linux-nat.c 2014-02-09 19:18:24.048554459 +0100 ++++ gdb-7.7/gdb/linux-nat.c 2014-02-09 19:19:22.210622806 +0100 +@@ -1529,8 +1529,22 @@ get_pending_status (struct lwp_info *lp, gdb_signal_to_string (signo)); } -- if (*status == 0 && GET_PID (lp->ptid) == pid_was_stopped) +- if (*status == 0 && ptid_get_pid (lp->ptid) == pid_was_stopped) - *status = W_STOPCODE (SIGSTOP); + /* Workaround RHEL-5 kernel which has unreliable PTRACE_DETACH, SIGSTOP (that + many TIDs are left unstopped). See RH Bug 496732. */ -+ if (GET_PID (lp->ptid) == pid_was_stopped) ++ if (ptid_get_pid (lp->ptid) == pid_was_stopped) + { + int err; + + errno = 0; -+ err = kill_lwp (GET_LWP (lp->ptid), SIGSTOP); ++ err = kill_lwp (ptid_get_lwp (lp->ptid), SIGSTOP); + if (debug_linux_nat) + { + fprintf_unfiltered (gdb_stdlog, diff --git a/gdb.spec b/gdb.spec index 1b8fc4f..cff6c19 100644 --- a/gdb.spec +++ b/gdb.spec @@ -39,7 +39,7 @@ Version: 7.7 # 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: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain Group: Development/Debuggers @@ -1340,6 +1340,9 @@ fi %endif # 0%{!?el5:1} || "%{_target_cpu}" == "noarch" %changelog +* Sun Feb 9 2014 Jan Kratochvil - 7.7-2.fc21 +- [rhel] Fix rebase build regression on RHEL systems (Tobias Burnus). + * Fri Feb 7 2014 Jan Kratochvil - 7.7-1.fc21 - Rebase to FSF GDB 7.7. - New rpmbuild option: --with asan