Drop ia64 patches and .spec support.
This commit is contained in:
parent
872aab074e
commit
b6e7beb35c
@ -1,25 +0,0 @@
|
||||
2005-02-07 Jeff Johnston <jjohnstn@redhat.com>
|
||||
|
||||
* linux-nat.c (linux_nat_xfer_memory): Don't use
|
||||
linux_proc_xfer_memory for ia64.
|
||||
|
||||
Index: gdb-6.8.50.20090803/gdb/linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090803.orig/gdb/linux-nat.c 2009-08-04 06:29:47.000000000 +0200
|
||||
+++ gdb-6.8.50.20090803/gdb/linux-nat.c 2009-08-04 06:29:55.000000000 +0200
|
||||
@@ -4495,10 +4495,15 @@ linux_xfer_partial (struct target_ops *o
|
||||
offset &= ((ULONGEST) 1 << addr_bit) - 1;
|
||||
}
|
||||
|
||||
+#ifndef NATIVE_XFER_UNWIND_TABLE
|
||||
+ /* FIXME: For ia64, we cannot currently use linux_proc_xfer_memory
|
||||
+ for accessing thread storage. Revert when Bugzilla 147436
|
||||
+ is fixed. */
|
||||
xfer = linux_proc_xfer_partial (ops, object, annex, readbuf, writebuf,
|
||||
offset, len);
|
||||
if (xfer != 0)
|
||||
return xfer;
|
||||
+#endif
|
||||
|
||||
return super_xfer_partial (ops, object, annex, readbuf, writebuf,
|
||||
offset, len);
|
@ -1,20 +0,0 @@
|
||||
Index: gdb-7.5.50.20130118/gdb/gcore.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/gcore.c 2013-01-18 23:50:56.698573186 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/gcore.c 2013-01-18 23:52:29.636705040 +0100
|
||||
@@ -549,8 +549,14 @@ gcore_copy_callback (bfd *obfd, asection
|
||||
if (size > total_size)
|
||||
size = total_size;
|
||||
|
||||
+ /* Warn if read error occurs except if we were trying to read the
|
||||
+ first page for ia64. The first page is marked readable, but it cannot
|
||||
+ be read. */
|
||||
if (target_read_memory (bfd_section_vma (obfd, osec) + offset,
|
||||
- memhunk, size) != 0)
|
||||
+ memhunk, size) != 0
|
||||
+ && (strcmp (gdbarch_bfd_arch_info (target_gdbarch ())->arch_name,
|
||||
+ "ia64")
|
||||
+ || bfd_section_vma (obfd, osec) != 0))
|
||||
{
|
||||
warning (_("Memory read failed for corefile "
|
||||
"section, %s bytes at %s."),
|
@ -1,126 +0,0 @@
|
||||
2005-07-14 Jeff Johnsotn <jjohnstn@redhat.com>
|
||||
|
||||
* linux-nat.c (linux_nat_xfer_memory): Incorporate Fujitsu
|
||||
work-around to use /proc/mem for storage, but to fall-back
|
||||
to PTRACE for ia64 rse register areas.
|
||||
* ia64-linux-nat.c (ia64_rse_slot_num): New static function.
|
||||
(ia64_rse_skip_regs): Ditto.
|
||||
(ia64_linux_check_stack_region): New function.
|
||||
|
||||
Index: gdb-6.8.50.20090803/gdb/linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090803.orig/gdb/linux-nat.c 2009-08-04 06:29:55.000000000 +0200
|
||||
+++ gdb-6.8.50.20090803/gdb/linux-nat.c 2009-08-04 06:30:53.000000000 +0200
|
||||
@@ -4495,15 +4495,38 @@ linux_xfer_partial (struct target_ops *o
|
||||
offset &= ((ULONGEST) 1 << addr_bit) - 1;
|
||||
}
|
||||
|
||||
-#ifndef NATIVE_XFER_UNWIND_TABLE
|
||||
- /* FIXME: For ia64, we cannot currently use linux_proc_xfer_memory
|
||||
- for accessing thread storage. Revert when Bugzilla 147436
|
||||
- is fixed. */
|
||||
xfer = linux_proc_xfer_partial (ops, object, annex, readbuf, writebuf,
|
||||
offset, len);
|
||||
if (xfer != 0)
|
||||
- return xfer;
|
||||
+ {
|
||||
+#ifdef NATIVE_XFER_UNWIND_TABLE
|
||||
+ struct mem_region range;
|
||||
+ range.lo = memaddr;
|
||||
+ range.hi = memaddr + len;
|
||||
+
|
||||
+ /* FIXME: For ia64, we cannot currently use
|
||||
+ linux_proc_xfer_partial for accessing rse register storage.
|
||||
+ Revert when Bugzilla 147436 is fixed. */
|
||||
+#ifdef NATIVE_XFER_UNWIND_TABLE
|
||||
+ extern int ia64_linux_check_stack_region (struct lwp_info *lwp,
|
||||
+ void *range);
|
||||
+#endif
|
||||
+ if (iterate_over_lwps (ia64_linux_check_stack_region, &range) != NULL)
|
||||
+ { /* This region contains ia64 rse registers, we have to re-read. */
|
||||
+ int xxfer;
|
||||
+
|
||||
+ /* Re-read register stack area. */
|
||||
+ xxfer = super_xfer_partial (ops, object, annex,
|
||||
+ readbuf + (range.lo - memaddr),
|
||||
+ writebuf + (range.lo - memaddr),
|
||||
+ offset + (range.lo - memaddr),
|
||||
+ range.hi - range.lo);
|
||||
+ if (xxfer == 0)
|
||||
+ xfer = 0;
|
||||
+ }
|
||||
#endif
|
||||
+ return xfer;
|
||||
+ }
|
||||
|
||||
return super_xfer_partial (ops, object, annex, readbuf, writebuf,
|
||||
offset, len);
|
||||
Index: gdb-6.8.50.20090803/gdb/ia64-linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090803.orig/gdb/ia64-linux-nat.c 2009-02-23 01:03:49.000000000 +0100
|
||||
+++ gdb-6.8.50.20090803/gdb/ia64-linux-nat.c 2009-08-04 06:30:53.000000000 +0200
|
||||
@@ -809,6 +809,64 @@ ia64_linux_xfer_partial (struct target_o
|
||||
|
||||
void _initialize_ia64_linux_nat (void);
|
||||
|
||||
+/*
|
||||
+ * Note: taken from ia64_tdep.c
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+static __inline__ unsigned long
|
||||
+ia64_rse_slot_num (unsigned long addr)
|
||||
+{
|
||||
+ return (addr >> 3) & 0x3f;
|
||||
+}
|
||||
+
|
||||
+/* Skip over a designated number of registers in the backing
|
||||
+ store, remembering every 64th position is for NAT. */
|
||||
+static __inline__ unsigned long
|
||||
+ia64_rse_skip_regs (unsigned long addr, long num_regs)
|
||||
+{
|
||||
+ long delta = ia64_rse_slot_num(addr) + num_regs;
|
||||
+
|
||||
+ if (num_regs < 0)
|
||||
+ delta -= 0x3e;
|
||||
+ return addr + ((num_regs + delta/0x3f) << 3);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Check mem_region is stack or not. If stack, /proc/<pid>/mem cannot return
|
||||
+ * expected value.
|
||||
+ */
|
||||
+int ia64_linux_check_stack_region(struct lwp_info *ti, struct mem_region *range)
|
||||
+{
|
||||
+ CORE_ADDR addr;
|
||||
+ int error;
|
||||
+ unsigned long bsp, cfm, bspstore;
|
||||
+ long sof;
|
||||
+ pid_t pid = ptid_get_lwp(ti->ptid);
|
||||
+ bsp = ptrace(PTRACE_PEEKUSER, pid, PT_AR_BSP ,NULL);
|
||||
+ if (bsp == (unsigned long)-1) {
|
||||
+ return 1;
|
||||
+ }
|
||||
+ /* stack is allocated by one-segment, not separated into several segments.
|
||||
+ So, we only have to check whether bsp is in *range* or not. */
|
||||
+ if((range->lo <= bsp) && (bsp <= range->hi)) {
|
||||
+ bspstore = ptrace(PTRACE_PEEKUSER, pid, PT_AR_BSPSTORE, NULL);
|
||||
+ cfm = ptrace(PTRACE_PEEKUSER, pid, PT_CFM, NULL);
|
||||
+ sof = cfm & 0x3f;
|
||||
+ bsp = ia64_rse_skip_regs(bsp, -sof);
|
||||
+ range->lo = bspstore;
|
||||
+ range->hi = bsp;
|
||||
+ /* we have to check the size of dirty register stack area */
|
||||
+ /*
|
||||
+ fprintf_unfiltered(gdb_stdlog, "<%d> <%p> <%lx> <%p> <%p>\n",
|
||||
+ pid, bsp, sof, range->lo, range->hi);
|
||||
+ */
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
void
|
||||
_initialize_ia64_linux_nat (void)
|
||||
{
|
@ -1,107 +0,0 @@
|
||||
2005-07-25 Jeff Johnstno <jjohnstn@redhat.com>
|
||||
|
||||
* libunwind-frame.c (libunwind_frame_prev_register): Check valuep
|
||||
is not NULL before copying cursor address into it.
|
||||
|
||||
testsuite:
|
||||
2005-07-25 Jeff Johnstno <jjohnstn@redhat.com>
|
||||
|
||||
* gdb.arch/ia64-sigtramp.exp: New test.
|
||||
* gdb.arch/ia64-sigtramp.c: Ditto.
|
||||
|
||||
2008-02-24 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Port to GDB-6.8pre. (Only the testcase has remained.)
|
||||
|
||||
--- gdb-6.3/gdb/testsuite/gdb.arch/ia64-sigtramp.c.fix 2005-07-25 16:42:46.000000000 -0400
|
||||
+++ gdb-6.3/gdb/testsuite/gdb.arch/ia64-sigtramp.c 2005-07-25 16:42:08.000000000 -0400
|
||||
@@ -0,0 +1,23 @@
|
||||
+#include <stdio.h>
|
||||
+#include <signal.h>
|
||||
+
|
||||
+int *l;
|
||||
+
|
||||
+void x (int sig)
|
||||
+{
|
||||
+ printf ("in signal handler for signal %d\n", sig);
|
||||
+}
|
||||
+
|
||||
+int main()
|
||||
+{
|
||||
+ int k;
|
||||
+
|
||||
+ signal (SIGSEGV, &x);
|
||||
+
|
||||
+ k = *l;
|
||||
+
|
||||
+ printf ("k is %d\n", k);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
--- gdb-6.3/gdb/testsuite/gdb.arch/ia64-sigtramp.exp.fix 2005-07-25 16:42:50.000000000 -0400
|
||||
+++ gdb-6.3/gdb/testsuite/gdb.arch/ia64-sigtramp.exp 2005-07-25 16:42:01.000000000 -0400
|
||||
@@ -0,0 +1,63 @@
|
||||
+# Copyright 2005 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 2 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program; if not, write to the Free Software
|
||||
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
+
|
||||
+# Please email any bugs, comments, and/or additions to this file to:
|
||||
+# bug-gdb@prep.ai.mit.edu
|
||||
+
|
||||
+# This file was written by Jeff Johnston (jjohnstn@redhat.com)
|
||||
+
|
||||
+if ![istarget "ia64-*-*"] then {
|
||||
+ return
|
||||
+}
|
||||
+
|
||||
+set testfile "ia64-sigtramp"
|
||||
+set srcfile ${testfile}.c
|
||||
+set binfile ${objdir}/${subdir}/${testfile}
|
||||
+
|
||||
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-w}] != "" } {
|
||||
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
|
||||
+}
|
||||
+
|
||||
+if [get_compiler_info ${binfile}] {
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+gdb_exit
|
||||
+set match_max_old [match_max]
|
||||
+match_max -d 1000000
|
||||
+gdb_start
|
||||
+match_max -d $match_max_old
|
||||
+gdb_reinitialize_dir $srcdir/$subdir
|
||||
+gdb_load ${binfile}
|
||||
+
|
||||
+if ![runto_main] then {
|
||||
+ fail "Can't run to main"
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+gdb_test "handle SIGSEGV" "SIGSEGV.*Yes.*Yes.*Yes.*Segmentation fault"
|
||||
+gdb_test "next" "" "first next"
|
||||
+gdb_test "next" "Program received signal SIGSEGV.*" "getting SIGSEGV"
|
||||
+gdb_breakpoint "x"
|
||||
+gdb_test "continue" "Breakpoint.*x.*" "continue to x"
|
||||
+
|
||||
+gdb_test "f 1" ".*signal handler called.*" "frame 1"
|
||||
+
|
||||
+# gdb-7.0+ no longer prints the pseudo registers as they are computed.
|
||||
+# frame_info says: /* For moment, only display registers that were saved on the
|
||||
+# stack. */
|
||||
+gdb_test "set debug frame 1"
|
||||
+gdb_test "info frame" "Stack level 1, .*frame_unwind_register_value \\(frame=1,regnum=750\\(p63\\),\[^\r\n\]*\r\n\[^\r\n\]*-> computed bytes=.*" "info sigtramp frame"
|
@ -1,95 +0,0 @@
|
||||
2005-11-15 Jeff Johnston <jjohnstn@redhat.com>
|
||||
|
||||
* linux-thread-db.c (thread_db_wait): Don't bother continuing if
|
||||
the wait result indicates the program terminated with a signal.
|
||||
* linux-nat.c (linux_nat_wait): For SIGILL and SIGTRAP, don't
|
||||
throw away the event if the user has specified nostop noprint.
|
||||
|
||||
gdb/testsuite:
|
||||
|
||||
2005-11-15 Jeff Johnston <jjohnstn@redhat.com>
|
||||
|
||||
* gdb.arch/ia64-sigill.c: New test.
|
||||
* gdb.arch/ia64-sigill.exp: Ditto.
|
||||
|
||||
Index: gdb-7.3.50.20110722/gdb/testsuite/gdb.arch/ia64-sigill.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.3.50.20110722/gdb/testsuite/gdb.arch/ia64-sigill.exp 2011-07-22 19:16:13.000000000 +0200
|
||||
@@ -0,0 +1,49 @@
|
||||
+# Copyright 2005 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 2 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program; if not, write to the Free Software
|
||||
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
+
|
||||
+# Please email any bugs, comments, and/or additions to this file to:
|
||||
+# bug-gdb@prep.ai.mit.edu
|
||||
+
|
||||
+# This file was written by Jeff Johnston (jjohnstn@redhat.com)
|
||||
+
|
||||
+if ![istarget "ia64-*-*"] then {
|
||||
+ return
|
||||
+}
|
||||
+
|
||||
+set testfile "ia64-sigill"
|
||||
+set srcfile ${testfile}.c
|
||||
+set binfile ${objdir}/${subdir}/${testfile}
|
||||
+
|
||||
+# Deliberately compile with pthreads, even though test is single-threaded.
|
||||
+# We want to force gdb thread code to be exercised.
|
||||
+if { [gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-w}] != "" } {
|
||||
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
|
||||
+}
|
||||
+
|
||||
+if [get_compiler_info ${binfile}] {
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+gdb_exit
|
||||
+gdb_start
|
||||
+gdb_reinitialize_dir $srcdir/$subdir
|
||||
+gdb_load ${binfile}
|
||||
+
|
||||
+# We set up SIGILL nostop, noprint, pass and then run the program.
|
||||
+# We expect to just see a normal run.
|
||||
+gdb_test "handle SIGILL nostop noprint" "SIGILL.*No.*No.*Yes.*" "handle sigill"
|
||||
+gdb_test "run" "Starting program.*ia64-sigill.*\[New thread.*\].*hello world.*Program exited normally." "run to exit"
|
||||
+
|
||||
Index: gdb-7.3.50.20110722/gdb/testsuite/gdb.arch/ia64-sigill.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.3.50.20110722/gdb/testsuite/gdb.arch/ia64-sigill.c 2011-07-22 19:16:13.000000000 +0200
|
||||
@@ -0,0 +1,8 @@
|
||||
+#include <stdio.h>
|
||||
+
|
||||
+int main()
|
||||
+{
|
||||
+ printf ("hello world\n");
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
Index: gdb-7.3.50.20110722/gdb/linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-7.3.50.20110722.orig/gdb/linux-nat.c 2011-07-22 19:15:05.000000000 +0200
|
||||
+++ gdb-7.3.50.20110722/gdb/linux-nat.c 2011-07-22 19:16:13.000000000 +0200
|
||||
@@ -3733,7 +3733,8 @@ retry:
|
||||
threads can be a bit time-consuming so if we want decent
|
||||
performance with heavily multi-threaded programs, especially when
|
||||
they're using a high frequency timer, we'd better avoid it if we
|
||||
- can. */
|
||||
+ can. For possible trap signals like SIGTRAP and SIGILL, don't
|
||||
+ avoid reporting. */
|
||||
|
||||
if (WIFSTOPPED (status))
|
||||
{
|
@ -1,158 +0,0 @@
|
||||
2005-07-08 Jeff Johnston <jjohnstn@redhat.com>
|
||||
|
||||
* ia64-tdep.c (ia64_sigtramp_frame_prev_register): Build
|
||||
pseudo-registers the same as ia64_pseudo_register_read.
|
||||
|
||||
2008-04-16 Yi Zhan <yi.zhan@intel.com>
|
||||
|
||||
* ia64-tdep.c (ia64_sigtramp_frame_prev_register): Fix an
|
||||
ISO C compliance compilation error.
|
||||
|
||||
2008-02-12 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Port to gdb-6.8.50.20081128, follow the upstream change:
|
||||
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/ia64-tdep.c.diff?cvsroot=src&r1=1.176&r2=1.177
|
||||
|
||||
Index: gdb-6.8.50.20081128/gdb/ia64-tdep.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/ia64-tdep.c 2008-11-26 06:27:48.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/ia64-tdep.c 2008-12-02 19:04:32.000000000 +0100
|
||||
@@ -2107,6 +2107,94 @@ ia64_sigtramp_frame_prev_register (struc
|
||||
return frame_unwind_got_constant (this_frame, regnum, pc);
|
||||
}
|
||||
|
||||
+ /* Red Hat patch begin. */
|
||||
+ else if (IA64_NAT0_REGNUM <= regnum && regnum <= IA64_NAT31_REGNUM)
|
||||
+ {
|
||||
+ /* NAT pseudo registers 0-31: get them from UNAT.
|
||||
+ * "copied" from ia64_pseudo_register_read() */
|
||||
+ ULONGEST unatN_val;
|
||||
+ ULONGEST unat;
|
||||
+ read_memory (cache->saved_regs[IA64_UNAT_REGNUM], (char *) &unat,
|
||||
+ register_size (target_gdbarch, IA64_UNAT_REGNUM));
|
||||
+ unatN_val = (unat & (1LL << (regnum - IA64_NAT0_REGNUM))) != 0;
|
||||
+ return frame_unwind_got_constant (this_frame, regnum, unatN_val);
|
||||
+ }
|
||||
+ else if (IA64_NAT32_REGNUM <= regnum && regnum <= IA64_NAT127_REGNUM)
|
||||
+ {
|
||||
+ /* NAT pseudo registers 32-127.
|
||||
+ * "copied" from ia64_pseudo_register_read()
|
||||
+ * FIXME: Not currently tested -- cannot get the frame to include
|
||||
+ * NAT32-NAT127. */
|
||||
+ ULONGEST bsp;
|
||||
+ ULONGEST cfm;
|
||||
+ ULONGEST natN_val = 0;
|
||||
+ CORE_ADDR gr_addr = 0, nat_addr = 0;
|
||||
+
|
||||
+ read_memory (cache->saved_regs[IA64_BSP_REGNUM], (char *) &bsp,
|
||||
+ register_size (target_gdbarch, IA64_BSP_REGNUM));
|
||||
+ read_memory (cache->saved_regs[IA64_CFM_REGNUM], (char *) &cfm,
|
||||
+ register_size (target_gdbarch, IA64_CFM_REGNUM));
|
||||
+
|
||||
+ /* The bsp points at the end of the register frame so we
|
||||
+ subtract the size of frame from it to get start of register frame. */
|
||||
+ bsp = rse_address_add (bsp, -(cfm & 0x7f));
|
||||
+
|
||||
+ if ((cfm & 0x7f) > regnum - V32_REGNUM)
|
||||
+ gr_addr = rse_address_add (bsp, (regnum - V32_REGNUM));
|
||||
+
|
||||
+ if (gr_addr != 0)
|
||||
+ {
|
||||
+ /* Compute address of nat collection bits */
|
||||
+ CORE_ADDR nat_collection;
|
||||
+ int nat_bit;
|
||||
+ nat_addr = gr_addr | 0x1f8;
|
||||
+ /* If our nat collection address is bigger than bsp, we have to get
|
||||
+ the nat collection from rnat. Otherwise, we fetch the nat
|
||||
+ collection from the computed address. FIXME: Do not know if
|
||||
+ RNAT can be not stored in the frame--being extra cautious. */
|
||||
+ if (nat_addr >= bsp)
|
||||
+ {
|
||||
+ nat_addr = cache->saved_regs[IA64_RNAT_REGNUM];
|
||||
+ if (nat_addr != 0)
|
||||
+ read_memory (nat_addr, (char *) &nat_collection,
|
||||
+ register_size (target_gdbarch, IA64_RNAT_REGNUM));
|
||||
+ }
|
||||
+ else
|
||||
+ nat_collection = read_memory_integer (nat_addr, 8, BFD_ENDIAN_LITTLE);
|
||||
+ if (nat_addr != 0)
|
||||
+ {
|
||||
+ nat_bit = (gr_addr >> 3) & 0x3f;
|
||||
+ natN_val = (nat_collection >> nat_bit) & 1;
|
||||
+ return frame_unwind_got_constant (this_frame, regnum, natN_val);
|
||||
+ }
|
||||
+ }
|
||||
+ warning (_("ia64_sigtramp_frame_prev_register: unhandled register %d"),
|
||||
+ regnum);
|
||||
+ }
|
||||
+ else if (regnum == VBOF_REGNUM)
|
||||
+ {
|
||||
+ /* BOF pseudo register.
|
||||
+ * "copied" from ia64_pseudo_register_read()
|
||||
+ *
|
||||
+ * A virtual register frame start is provided for user convenience.
|
||||
+ * It can be calculated as the bsp - sof (sizeof frame). */
|
||||
+ ULONGEST bsp;
|
||||
+ ULONGEST cfm;
|
||||
+ ULONGEST bof;
|
||||
+
|
||||
+ read_memory (cache->saved_regs[IA64_BSP_REGNUM], (char *) &bsp,
|
||||
+ register_size (target_gdbarch, IA64_BSP_REGNUM));
|
||||
+ read_memory (cache->saved_regs[IA64_CFM_REGNUM], (char *) &cfm,
|
||||
+ register_size (target_gdbarch, IA64_CFM_REGNUM));
|
||||
+
|
||||
+ /* The bsp points at the end of the register frame so we
|
||||
+ subtract the size of frame from it to get beginning of frame. */
|
||||
+ bof = rse_address_add (bsp, -(cfm & 0x7f));
|
||||
+
|
||||
+ return frame_unwind_got_constant (this_frame, regnum, bof);
|
||||
+ }
|
||||
+ /* Red Hat patch end. */
|
||||
+
|
||||
else if ((regnum >= IA64_GR32_REGNUM && regnum <= IA64_GR127_REGNUM)
|
||||
|| (regnum >= V32_REGNUM && regnum <= V127_REGNUM))
|
||||
{
|
||||
@@ -2121,7 +2209,42 @@ ia64_sigtramp_frame_prev_register (struc
|
||||
return frame_unwind_got_constant (this_frame, regnum, 0);
|
||||
}
|
||||
|
||||
- else /* All other registers not listed above. */
|
||||
+ /* Red Hat patch begin. */
|
||||
+ else if (VP0_REGNUM <= regnum && regnum <= VP63_REGNUM)
|
||||
+ {
|
||||
+ /* VP 0-63.
|
||||
+ * "copied" from ia64_pseudo_register_read()
|
||||
+ *
|
||||
+ * FIXME: Not currently tested--cannot get the frame to include PR. */
|
||||
+ CORE_ADDR pr_addr = 0;
|
||||
+
|
||||
+ pr_addr = cache->saved_regs[IA64_PR_REGNUM];
|
||||
+ if (pr_addr != 0)
|
||||
+ {
|
||||
+ ULONGEST pr;
|
||||
+ ULONGEST cfm;
|
||||
+ ULONGEST prN_val;
|
||||
+ read_memory (pr_addr, (char *) &pr,
|
||||
+ register_size (target_gdbarch, IA64_PR_REGNUM));
|
||||
+ read_memory (cache->saved_regs[IA64_CFM_REGNUM], (char *) &cfm,
|
||||
+ register_size (target_gdbarch, IA64_CFM_REGNUM));
|
||||
+
|
||||
+ /* Get the register rename base for this frame and adjust the
|
||||
+ * register name to take rotation into account. */
|
||||
+ if (VP16_REGNUM <= regnum && regnum <= VP63_REGNUM)
|
||||
+ {
|
||||
+ int rrb_pr = (cfm >> 32) & 0x3f;
|
||||
+ regnum = VP16_REGNUM + ((regnum - VP16_REGNUM) + rrb_pr) % 48;
|
||||
+ }
|
||||
+ prN_val = (pr & (1LL << (regnum - VP0_REGNUM))) != 0;
|
||||
+ return frame_unwind_got_constant (this_frame, regnum, prN_val);
|
||||
+ }
|
||||
+ warning (_("ia64_sigtramp_frame_prev_register: unhandled register %d"),
|
||||
+ regnum);
|
||||
+ }
|
||||
+ /* Red Hat patch end. */
|
||||
+
|
||||
+ /* All other registers not listed above. */
|
||||
{
|
||||
CORE_ADDR addr = cache->saved_regs[regnum];
|
||||
|
@ -1,103 +0,0 @@
|
||||
2003-11-17 Elena Zannoni <ezannoni@redhat.com>
|
||||
|
||||
From Jeff Johnston <jjohnstn@redhat.com>
|
||||
* gdb.arch/ia64-libunwind.exp: New file.
|
||||
* gdb.arch/ia64-libunwind.c: New file.
|
||||
|
||||
2004-08-03 Jeff Johnston <jjohnstn@redhat.com>
|
||||
|
||||
* gdb.arch/ia64-libunwind.exp: Fix test string to match
|
||||
current code base.
|
||||
|
||||
[ acquire_unwind_info -> ia64_find_proc_info_x ]
|
||||
|
||||
2009-04-30 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Remove a race from send_gdb "COMMAND\n".
|
||||
Cleanup.
|
||||
Merge in: Patch4: gdb-6.3-rh-testlibunwind1fix-20041202.patch
|
||||
|
||||
--- /dev/null 2009-04-19 08:52:54.499000000 +0200
|
||||
+++ gdb-6.8/gdb/testsuite/gdb.arch/ia64-libunwind.c 2009-04-30 19:15:16.000000000 +0200
|
||||
@@ -0,0 +1,26 @@
|
||||
+/* Copyright 2003, 2009 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This file is part of GDB.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation; either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+#include <stdio.h>
|
||||
+
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+ printf ("hello world\n");
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
--- /dev/null 2009-04-19 08:52:54.499000000 +0200
|
||||
+++ gdb-6.8/gdb/testsuite/gdb.arch/ia64-libunwind.exp 2009-04-30 19:19:22.000000000 +0200
|
||||
@@ -0,0 +1,52 @@
|
||||
+# Copyright 2003, 2009 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 2 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program; if not, write to the Free Software
|
||||
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
+
|
||||
+# Please email any bugs, comments, and/or additions to this file to:
|
||||
+# bug-gdb@prep.ai.mit.edu
|
||||
+
|
||||
+# This file was written by Jeff Johnston (jjohnstn@redhat.com)
|
||||
+
|
||||
+if ![istarget "ia64-*-*"] then {
|
||||
+ return
|
||||
+}
|
||||
+
|
||||
+set testfile "ia64-libunwind"
|
||||
+set srcfile ${testfile}.c
|
||||
+set binfile ${objdir}/${subdir}/${testfile}
|
||||
+
|
||||
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-w}] != "" } {
|
||||
+ gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
|
||||
+}
|
||||
+
|
||||
+if [get_compiler_info ${binfile}] {
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+gdb_exit
|
||||
+gdb_start
|
||||
+gdb_reinitialize_dir $srcdir/$subdir
|
||||
+gdb_load ${binfile}
|
||||
+
|
||||
+gdb_test "set debug arch 1"
|
||||
+gdb_breakpoint "main"
|
||||
+gdb_run_cmd
|
||||
+
|
||||
+set test "libunwind message"
|
||||
+gdb_test_multiple "" $test {
|
||||
+ -re "ia64_find_proc_info_x.*$gdb_prompt $" {
|
||||
+ pass $test
|
||||
+ }
|
||||
+}
|
63
gdb.spec
63
gdb.spec
@ -37,7 +37,7 @@ Version: 7.6.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: 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
|
||||
@ -90,7 +90,6 @@ Provides: bundled(md5-gcc) = %{snapsrc}
|
||||
#push=Should be pushed upstream.
|
||||
#maybepush=Should be pushed upstream unless it got obsoleted there.
|
||||
#fedora=Should stay as a Fedora patch.
|
||||
#ia64=Drop after RHEL-5 rebases and rebuilds are no longer meaningful.
|
||||
#fedoratest=Keep it in Fedora only as a regression test safety.
|
||||
#+ppc=Specific for ppc32/ppc64/ppc*
|
||||
#+work=Requires some nontrivial work.
|
||||
@ -122,10 +121,6 @@ Patch1: gdb-6.3-rh-dummykfail-20041202.patch
|
||||
#=fedora
|
||||
Patch2: gdb-6.3-rh-testversion-20041202.patch
|
||||
|
||||
# Check that libunwind works - new test then fix
|
||||
#=ia64
|
||||
Patch3: gdb-6.3-rh-testlibunwind-20041202.patch
|
||||
|
||||
# Better parse 64-bit PPC system call prologues.
|
||||
#=maybepush+ppc: Write new testcase.
|
||||
Patch105: gdb-6.3-ppc64syscall-20040622.patch
|
||||
@ -167,34 +162,14 @@ Patch133: gdb-6.3-test-dtorfix-20050121.patch
|
||||
#=fedoratest
|
||||
Patch136: gdb-6.3-test-movedir-20050125.patch
|
||||
|
||||
# Fix gcore for threads
|
||||
#=ia64
|
||||
Patch140: gdb-6.3-gcore-thread-20050204.patch
|
||||
|
||||
# Test sibling threads to set threaded watchpoints for x86 and x86-64
|
||||
#=fedoratest
|
||||
Patch145: gdb-6.3-threaded-watchpoints2-20050225.patch
|
||||
|
||||
# Do not issue warning message about first page of storage for ia64 gcore
|
||||
#=ia64
|
||||
Patch153: gdb-6.3-ia64-gcore-page0-20050421.patch
|
||||
|
||||
# IA64 sigtramp prev register patch
|
||||
#=ia64
|
||||
Patch158: gdb-6.3-ia64-sigtramp-frame-20050708.patch
|
||||
|
||||
# IA64 gcore speed-up patch
|
||||
#=ia64
|
||||
Patch160: gdb-6.3-ia64-gcore-speedup-20050714.patch
|
||||
|
||||
# Notify observers that the inferior has been created
|
||||
#=fedoratest
|
||||
Patch161: gdb-6.3-inferior-notification-20050721.patch
|
||||
|
||||
# Fix ia64 info frame bug
|
||||
#=ia64
|
||||
Patch162: gdb-6.3-ia64-info-frame-fix-20050725.patch
|
||||
|
||||
# Verify printing of inherited members test
|
||||
#=fedoratest
|
||||
Patch163: gdb-6.3-inheritancetest-20050726.patch
|
||||
@ -203,10 +178,6 @@ Patch163: gdb-6.3-inheritancetest-20050726.patch
|
||||
#=push
|
||||
Patch164: gdb-6.3-readnever-20050907.patch
|
||||
|
||||
# Fix ia64 gdb problem with user-specified SIGILL handling
|
||||
#=ia64
|
||||
Patch169: gdb-6.3-ia64-sigill-20051115.patch
|
||||
|
||||
# Fix debuginfo addresses resolving for --emit-relocs Linux kernels (BZ 203661).
|
||||
#=push+work: There was some mail thread about it, this patch may be a hack.
|
||||
Patch188: gdb-6.5-bz203661-emit-relocs.patch
|
||||
@ -591,7 +562,7 @@ BuildRequires: texlive-ec texlive-cm-super
|
||||
|
||||
# BuildArch would break RHEL-5 by overriding arch and not building noarch.
|
||||
%if 0%{?el5:1}
|
||||
ExclusiveArch: noarch i386 x86_64 ppc ppc64 ia64 s390 s390x
|
||||
ExclusiveArch: noarch i386 x86_64 ppc ppc64 s390 s390x
|
||||
%endif # 0%{?el5:1}
|
||||
|
||||
%if 0%{?_with_testsuite:1}
|
||||
@ -638,7 +609,7 @@ BuildRequires: fpc
|
||||
BuildRequires: gcc44 gcc44-gfortran
|
||||
%endif
|
||||
# Copied from gcc-4.1.2-32.
|
||||
%ifarch %{ix86} x86_64 ia64 ppc alpha
|
||||
%ifarch %{ix86} x86_64 ppc alpha
|
||||
BuildRequires: gcc-gnat
|
||||
BuildRequires: libgnat%{bits_local} libgnat%{bits_other}
|
||||
%endif
|
||||
@ -667,16 +638,6 @@ BuildRequires: xz
|
||||
|
||||
%endif # 0%{?_with_testsuite:1}
|
||||
|
||||
%ifarch ia64
|
||||
%if 0%{!?el5:1}
|
||||
BuildRequires: libunwind-devel >= 0.99-0.1.frysk20070405cvs
|
||||
Requires: libunwind >= 0.99-0.1.frysk20070405cvs
|
||||
%else
|
||||
BuildRequires: libunwind >= 0.96-3
|
||||
Requires: libunwind >= 0.96-3
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%{?scl:Requires:%scl_runtime}
|
||||
|
||||
%description
|
||||
@ -756,7 +717,6 @@ find -name "*.info*"|xargs rm -f
|
||||
%patch349 -p1
|
||||
#patch232 -p1
|
||||
%patch1 -p1
|
||||
%patch3 -p1
|
||||
|
||||
%patch105 -p1
|
||||
%patch111 -p1
|
||||
@ -766,16 +726,10 @@ find -name "*.info*"|xargs rm -f
|
||||
%patch125 -p1
|
||||
%patch133 -p1
|
||||
%patch136 -p1
|
||||
%patch140 -p1
|
||||
%patch145 -p1
|
||||
%patch153 -p1
|
||||
%patch158 -p1
|
||||
%patch160 -p1
|
||||
%patch161 -p1
|
||||
%patch162 -p1
|
||||
%patch163 -p1
|
||||
%patch164 -p1
|
||||
%patch169 -p1
|
||||
%patch188 -p1
|
||||
%patch194 -p1
|
||||
%patch196 -p1
|
||||
@ -936,7 +890,7 @@ export LDFLAGS="%{?__global_ldflags}"
|
||||
--with-system-gdbinit=%{_sysconfdir}/gdbinit \
|
||||
--with-gdb-datadir=%{_datadir}/gdb \
|
||||
--enable-gdb-build-warnings=,-Wno-unused \
|
||||
%ifnarch %{ix86} alpha ia64 ppc s390 s390x x86_64 ppc64 sparc sparcv9 sparc64
|
||||
%ifnarch %{ix86} alpha ppc s390 s390x x86_64 ppc64 sparc sparcv9 sparc64
|
||||
--disable-werror \
|
||||
%else
|
||||
--enable-werror \
|
||||
@ -974,11 +928,7 @@ $(: RHEL-5 librpm has incompatible API. ) \
|
||||
%else
|
||||
--without-lzma \
|
||||
%endif
|
||||
%ifarch ia64
|
||||
--with-libunwind \
|
||||
%else
|
||||
--without-libunwind \
|
||||
%endif
|
||||
%ifarch sparc sparcv9 sparc64
|
||||
--without-mmap \
|
||||
%endif
|
||||
@ -1360,8 +1310,11 @@ fi
|
||||
%endif # 0%{!?el5:1} || "%{_target_cpu}" == "noarch"
|
||||
|
||||
%changelog
|
||||
* Fri Aug 2 2013 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.6.50.20130731-2.fc20
|
||||
- Drop ia64 patches and .spec support.
|
||||
|
||||
* Fri Aug 2 2013 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.6.50.20130731-1.fc20
|
||||
- Rebase to FSF GDB 7.6.50.20130731 (pre-7.6 snapshot).
|
||||
- Rebase to FSF GDB 7.6.50.20130731 (snapshot between 7.6 and future 7.7).
|
||||
|
||||
* Mon Jul 29 2013 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.6-36.fc20
|
||||
- Remove %%{gdb_docdir}, rebuild for unversioned docdirs (for BZ 986871).
|
||||
|
Loading…
Reference in New Issue
Block a user