From 0c6cb6731e970e3449c761b52b4364a8aadb23a0 Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Sat, 2 Jun 2012 15:47:38 +0200 Subject: [PATCH] [ppc] Fix hardware watchpoints on PowerPC (BZ 827600, Edjunior Machado). --- gdb-ppc-watchpoint.patch | 50 ++++++++++++++++++++++++++++++++++++++++ gdb.spec | 9 +++++++- 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 gdb-ppc-watchpoint.patch diff --git a/gdb-ppc-watchpoint.patch b/gdb-ppc-watchpoint.patch new file mode 100644 index 0000000..1556883 --- /dev/null +++ b/gdb-ppc-watchpoint.patch @@ -0,0 +1,50 @@ +https://bugzilla.redhat.com/show_bug.cgi?id=827600 +Re: [PATCH] disable ptrace BookE interface for PowerPC server processors +http://sourceware.org/ml/gdb-patches/2012-05/msg01107.html +http://sourceware.org/ml/gdb-cvs/2012-05/msg00221.html + +### src/gdb/ChangeLog 2012/05/31 18:44:47 1.14306 +### src/gdb/ChangeLog 2012/05/31 22:07:29 1.14307 +## -1,3 +1,9 @@ ++2012-05-31 Edjunior Machado ++ ++ * ppc-linux-nat.c (have_ptrace_booke_interface): Disable ptrace ++ BookE interface for PowerPC server processors if not available ++ in the Linux Kernel. ++ + 2012-05-31 Keith Seitz + + * linespec.c (decode_objc): Add cleanup to free +--- src/gdb/ppc-linux-nat.c 2012/05/30 13:37:17 1.112 ++++ src/gdb/ppc-linux-nat.c 2012/05/31 22:07:31 1.113 +@@ -1421,17 +1421,20 @@ + /* Check for kernel support for BOOKE debug registers. */ + if (ptrace (PPC_PTRACE_GETHWDBGINFO, tid, 0, &booke_debug_info) >= 0) + { +- have_ptrace_booke_interface = 1; +- max_slots_number = booke_debug_info.num_instruction_bps +- + booke_debug_info.num_data_bps +- + booke_debug_info.num_condition_regs; +- } +- else +- { +- /* Old school interface and no BOOKE debug registers support. */ +- have_ptrace_booke_interface = 0; +- memset (&booke_debug_info, 0, sizeof (struct ppc_debug_info)); ++ /* Check whether ptrace BOOKE interface is functional and ++ provides any supported feature. */ ++ if (booke_debug_info.features != 0) ++ { ++ have_ptrace_booke_interface = 1; ++ max_slots_number = booke_debug_info.num_instruction_bps ++ + booke_debug_info.num_data_bps ++ + booke_debug_info.num_condition_regs; ++ return have_ptrace_booke_interface; ++ } + } ++ /* Old school interface and no BOOKE debug registers support. */ ++ have_ptrace_booke_interface = 0; ++ memset (&booke_debug_info, 0, sizeof (struct ppc_debug_info)); + } + + return have_ptrace_booke_interface; diff --git a/gdb.spec b/gdb.spec index 02cd575..7ed50c8 100644 --- a/gdb.spec +++ b/gdb.spec @@ -35,7 +35,7 @@ Version: 7.4.50.%{snap} # 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: 47%{?dist} +Release: 48%{?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 @@ -622,6 +622,9 @@ Patch689: gdb-autoload-28of28.patch # Workaround PR libc/14166 for inferior calls of strstr. Patch690: gdb-glibc-strstr-workaround.patch +# [ppc] Fix hardware watchpoints on PowerPC (BZ 827600, Edjunior Machado). +Patch691: gdb-ppc-watchpoint.patch + %if 0%{!?rhel:1} || 0%{?rhel} > 6 # RL_STATE_FEDORA_GDB would not be found for: # Patch642: gdb-readline62-ask-more-rh.patch @@ -941,6 +944,7 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c %patch688 -p1 %patch689 -p1 %patch690 -p1 +%patch691 -p1 %patch393 -p1 %if 0%{!?el5:1} || 0%{?scl:1} @@ -1433,6 +1437,9 @@ fi %endif # 0%{!?el5:1} || "%{_target_cpu}" == "noarch" %changelog +* Sat Jun 2 2012 Jan Kratochvil - 7.4.50.20120120-48.fc17 +- [ppc] Fix hardware watchpoints on PowerPC (BZ 827600, Edjunior Machado). + * Mon May 28 2012 Jan Kratochvil - 7.4.50.20120120-47.fc17 - Workaround PR libc/14166 for inferior calls of strstr.