Accepting request 198490 from devel:gcc
- gdb-aarch64-hw-break.patch: fix setting hardware debug registers after fork - Merge from fedoras gdb-7.6.50-20130731-cvs, of what will become 7.7 eventually. This includes 7.6, which gave: * new native configurations (e.g. ARM AArch64 GNU/Linux) * new targets (e.g. ARM AArch64, Lynx 178 PowerPC, x86_64/Cygwin) * support for the "mini debuginfo" section, .gnu_debugdata * the C++ ABI now defaults to the GNU v3 ABI * more Python scripting improvements * some GDB/MI improvements * new configure options, new commands, and options * new remote packets * a new "target record-btrace" has been added while the "target record" command has been renamed to "target record-full" - gdb-ia64-tdep.patch: build fixes - gdb-ppc-ptrace.diff: Remove patch, not needed on new kernels OBS-URL: https://build.opensuse.org/request/show/198490 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gdb?expand=0&rev=93
This commit is contained in:
parent
9cdd33a15c
commit
21901929ed
@ -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);
|
@ -4,11 +4,11 @@
|
||||
to install and uninstall.
|
||||
* gstack.sh, gstack.1: New files.
|
||||
|
||||
Index: gdb-7.4.50.20120103/gdb/Makefile.in
|
||||
Index: gdb-7.6/gdb/Makefile.in
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120103.orig/gdb/Makefile.in 2012-01-03 05:52:15.000000000 +0100
|
||||
+++ gdb-7.4.50.20120103/gdb/Makefile.in 2012-01-03 05:53:25.974210230 +0100
|
||||
@@ -1017,7 +1017,7 @@ gdb.z:gdb.1
|
||||
--- gdb-7.6.orig/gdb/Makefile.in 2013-05-21 13:26:33.496820763 +0200
|
||||
+++ gdb-7.6/gdb/Makefile.in 2013-05-21 13:26:33.609819579 +0200
|
||||
@@ -1029,7 +1029,7 @@ info install-info clean-info dvi pdf ins
|
||||
install: all
|
||||
@$(MAKE) $(FLAGS_TO_PASS) install-only
|
||||
|
||||
@ -17,7 +17,7 @@ Index: gdb-7.4.50.20120103/gdb/Makefile.in
|
||||
transformed_name=`t='$(program_transform_name)'; \
|
||||
echo gdb | sed -e "$$t"` ; \
|
||||
if test "x$$transformed_name" = x; then \
|
||||
@@ -1039,7 +1039,25 @@ install-only: $(CONFIG_INSTALL)
|
||||
@@ -1060,7 +1060,25 @@ install-only: $(CONFIG_INSTALL)
|
||||
install-python:
|
||||
$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(GDB_DATADIR)/python/gdb
|
||||
|
||||
@ -44,8 +44,8 @@ Index: gdb-7.4.50.20120103/gdb/Makefile.in
|
||||
transformed_name=`t='$(program_transform_name)'; \
|
||||
echo gdb | sed -e $$t` ; \
|
||||
if test "x$$transformed_name" = x; then \
|
||||
@@ -1051,6 +1069,18 @@ uninstall: force $(CONFIG_UNINSTALL)
|
||||
$(DESTDIR)$(man1dir)/$$transformed_name.1
|
||||
@@ -1083,6 +1101,18 @@ uninstall: force $(CONFIG_UNINSTALL)
|
||||
fi
|
||||
@$(MAKE) DO=uninstall "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do
|
||||
|
||||
+.PHONY: uninstall-gstack
|
||||
@ -63,10 +63,10 @@ Index: gdb-7.4.50.20120103/gdb/Makefile.in
|
||||
# The C++ name parser can be built standalone for testing.
|
||||
test-cp-name-parser.o: cp-name-parser.c
|
||||
$(COMPILE) -DTEST_CPNAMES cp-name-parser.c
|
||||
Index: gdb-7.4.50.20120103/gdb/gstack.sh
|
||||
Index: gdb-7.6/gdb/gstack.sh
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.4.50.20120103/gdb/gstack.sh 2012-01-03 05:52:37.278385632 +0100
|
||||
+++ gdb-7.6/gdb/gstack.sh 2013-05-21 13:26:55.434625908 +0200
|
||||
@@ -0,0 +1,43 @@
|
||||
+#!/bin/sh
|
||||
+
|
||||
@ -101,7 +101,7 @@ Index: gdb-7.4.50.20120103/gdb/gstack.sh
|
||||
+
|
||||
+# Run GDB, strip out unwanted noise.
|
||||
+# --readnever is no longer used since .gdb_index is now in use.
|
||||
+$GDB --quiet -nx /proc/$1/exe $1 <<EOF 2>&1 |
|
||||
+$GDB --quiet -nx $GDBARGS /proc/$1/exe $1 <<EOF 2>&1 |
|
||||
+set width 0
|
||||
+set height 0
|
||||
+set pagination no
|
||||
@ -111,10 +111,10 @@ Index: gdb-7.4.50.20120103/gdb/gstack.sh
|
||||
+ -e 's/^\((gdb) \)*//' \
|
||||
+ -e '/^#/p' \
|
||||
+ -e '/^Thread/p'
|
||||
Index: gdb-7.4.50.20120103/gdb/testsuite/gdb.base/gstack.exp
|
||||
Index: gdb-7.6/gdb/testsuite/gdb.base/gstack.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.4.50.20120103/gdb/testsuite/gdb.base/gstack.exp 2012-01-03 05:52:37.279385629 +0100
|
||||
+++ gdb-7.6/gdb/testsuite/gdb.base/gstack.exp 2013-05-21 13:26:55.434625908 +0200
|
||||
@@ -0,0 +1,66 @@
|
||||
+# Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -167,7 +167,7 @@ Index: gdb-7.4.50.20120103/gdb/testsuite/gdb.base/gstack.exp
|
||||
+# exiting the function. Still we could retry the gstack command if we fail.
|
||||
+
|
||||
+set test "spawn gstack"
|
||||
+set command "sh -c GDB=$GDB\\ sh\\ ${srcdir}/../gstack.sh\\ $pid\\;echo\\ GSTACK-END"
|
||||
+set command "sh -c GDB=$GDB\\ GDBARGS=-data-directory\\\\\\ $BUILD_DATA_DIRECTORY\\ sh\\ ${srcdir}/../gstack.sh\\ $pid\\;echo\\ GSTACK-END"
|
||||
+set res [remote_spawn host $command];
|
||||
+if { $res < 0 || $res == "" } {
|
||||
+ perror "Spawning $command failed."
|
||||
@ -182,10 +182,10 @@ Index: gdb-7.4.50.20120103/gdb/testsuite/gdb.base/gstack.exp
|
||||
+gdb_exit
|
||||
+
|
||||
+remote_exec host "kill -9 $pid"
|
||||
Index: gdb-7.4.50.20120103/gdb/testsuite/gdb.base/gstack.c
|
||||
Index: gdb-7.6/gdb/testsuite/gdb.base/gstack.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.4.50.20120103/gdb/testsuite/gdb.base/gstack.c 2012-01-03 05:52:37.279385629 +0100
|
||||
+++ gdb-7.6/gdb/testsuite/gdb.base/gstack.c 2013-05-21 13:26:33.610819569 +0200
|
||||
@@ -0,0 +1,43 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
|
@ -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,8 +1,8 @@
|
||||
Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.exp 2009-06-29 16:24:36.000000000 +0200
|
||||
@@ -0,0 +1,96 @@
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.exp 2013-08-02 22:24:04.747745133 +0200
|
||||
@@ -0,0 +1,101 @@
|
||||
+# Copyright 2007, 2009 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
@ -46,16 +46,21 @@ Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.exp
|
||||
+gdb_breakpoint "initialized"
|
||||
+gdb_breakpoint "unresolved"
|
||||
+
|
||||
+set oldtimeout $timeout
|
||||
+set timeout [expr $oldtimeout + 120]
|
||||
+
|
||||
+set test "Continue to initialized."
|
||||
+gdb_test_multiple "continue" $test {
|
||||
+ -re "Breakpoint .*, initialized .* at .*\r\n$gdb_prompt $" {
|
||||
+ pass $test
|
||||
+ }
|
||||
+ -re "Breakpoint .*, unresolved .* at .*\r\n$gdb_prompt $" {
|
||||
+ set timeout $oldtimeout
|
||||
+ unsupported $test
|
||||
+ return -1
|
||||
+ }
|
||||
+}
|
||||
+set timeout $oldtimeout
|
||||
+
|
||||
+set escapedfilename [string_to_regexp ${objdir}/${subdir}/gcore-shmid0.test]
|
||||
+
|
||||
@ -99,11 +104,11 @@ Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.exp
|
||||
+ fail $test
|
||||
+ }
|
||||
+}
|
||||
Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.c 2009-06-29 16:22:49.000000000 +0200
|
||||
@@ -0,0 +1,123 @@
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gcore-shmid0.c 2013-08-02 22:22:17.573599496 +0200
|
||||
@@ -0,0 +1,127 @@
|
||||
+/* Copyright 2007, 2009 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This file is part of GDB.
|
||||
@ -140,14 +145,18 @@ Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.c
|
||||
+
|
||||
+#define TIMEOUT_SEC 10
|
||||
+
|
||||
+static volatile int v;
|
||||
+
|
||||
+static void
|
||||
+initialized (void)
|
||||
+{
|
||||
+ v++;
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+unresolved (void)
|
||||
+{
|
||||
+ v++;
|
||||
+}
|
||||
+
|
||||
+int
|
||||
@ -189,7 +198,7 @@ Index: gdb-6.8.50.20090302/gdb/testsuite/gdb.base/gcore-shmid0.c
|
||||
+ }
|
||||
+
|
||||
+ printf ("Problem is not reproducible on this kernel (attempt %d, "
|
||||
+ "round %d))\n", attempt, round);
|
||||
+ "round %d)\n", attempt, round);
|
||||
+ unresolved ();
|
||||
+ exit (1);
|
||||
+ }
|
||||
|
@ -11,11 +11,11 @@
|
||||
|
||||
* gdb.texinfo (File Options): Document --readnever.
|
||||
|
||||
Index: gdb-7.5.50.20130215/gdb/doc/gdb.texinfo
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/doc/gdb.texinfo 2013-02-15 22:31:37.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/doc/gdb.texinfo 2013-02-15 22:34:22.381165443 +0100
|
||||
@@ -1026,6 +1026,12 @@ Read each symbol file's entire symbol ta
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/doc/gdb.texinfo 2013-08-02 16:12:54.970085942 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo 2013-08-02 16:20:21.164687886 +0200
|
||||
@@ -1030,6 +1030,12 @@ Read each symbol file's entire symbol ta
|
||||
the default, which is to read it incrementally as it is needed.
|
||||
This makes startup slower, but makes future operations faster.
|
||||
|
||||
@ -28,11 +28,11 @@ Index: gdb-7.5.50.20130215/gdb/doc/gdb.texinfo
|
||||
@end table
|
||||
|
||||
@node Mode Options
|
||||
Index: gdb-7.5.50.20130215/gdb/main.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/main.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/main.c 2013-02-15 22:31:37.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/main.c 2013-02-15 22:34:22.382165445 +0100
|
||||
@@ -447,6 +447,7 @@ captured_main (void *data)
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/main.c 2013-08-02 16:12:54.974085948 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/main.c 2013-08-02 16:20:53.704731449 +0200
|
||||
@@ -459,6 +459,7 @@ captured_main (void *data)
|
||||
{"xdb", no_argument, &xdb_commands, 1},
|
||||
{"dbx", no_argument, &dbx_commands, 1},
|
||||
{"readnow", no_argument, &readnow_symbol_files, 1},
|
||||
@ -40,19 +40,19 @@ Index: gdb-7.5.50.20130215/gdb/main.c
|
||||
{"r", no_argument, &readnow_symbol_files, 1},
|
||||
{"quiet", no_argument, &quiet, 1},
|
||||
{"q", no_argument, &quiet, 1},
|
||||
@@ -1165,6 +1166,7 @@ Options:\n\n\
|
||||
fputs_unfiltered (_("\
|
||||
--quiet Do not print version number on startup.\n\
|
||||
@@ -1154,6 +1155,7 @@ Selection of debuggee and its files:\n\n
|
||||
--se=FILE Use FILE as symbol file and executable file.\n\
|
||||
--symbols=SYMFILE Read symbols from SYMFILE.\n\
|
||||
--readnow Fully read symbol files on first access.\n\
|
||||
+ --readnever Do not read symbol files.\n\
|
||||
--write Set writing into executable and core files.\n\n\
|
||||
"), stream);
|
||||
fputs_unfiltered (_("\
|
||||
--se=FILE Use FILE as symbol file and executable file.\n\
|
||||
Index: gdb-7.5.50.20130215/gdb/symfile.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/symfile.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/symfile.c 2013-02-01 20:39:03.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/symfile.c 2013-02-15 22:34:22.383165447 +0100
|
||||
@@ -81,6 +81,7 @@ static void clear_symtab_users_cleanup (
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/symfile.c 2013-08-02 16:12:54.975085949 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/symfile.c 2013-08-02 16:20:21.165687888 +0200
|
||||
@@ -82,6 +82,7 @@ static void clear_symtab_users_cleanup (
|
||||
|
||||
/* Global variables owned by this file. */
|
||||
int readnow_symbol_files; /* Read full symbols immediately. */
|
||||
@ -60,19 +60,19 @@ Index: gdb-7.5.50.20130215/gdb/symfile.c
|
||||
|
||||
/* Functions this file defines. */
|
||||
|
||||
Index: gdb-7.5.50.20130215/gdb/dwarf2read.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/dwarf2read.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/dwarf2read.c 2013-02-15 22:31:37.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/dwarf2read.c 2013-02-15 22:34:34.479181584 +0100
|
||||
@@ -68,6 +68,7 @@
|
||||
#include "gdb_bfd.h"
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/dwarf2read.c 2013-08-02 16:12:54.979085954 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/dwarf2read.c 2013-08-02 16:20:37.190709689 +0200
|
||||
@@ -69,6 +69,7 @@
|
||||
#include "f-lang.h"
|
||||
#include "source.h"
|
||||
#include "filestuff.h"
|
||||
+#include "top.h"
|
||||
|
||||
#include <fcntl.h>
|
||||
#include "gdb_string.h"
|
||||
@@ -1793,8 +1794,9 @@ dwarf2_has_info (struct objfile *objfile
|
||||
@@ -1834,8 +1835,9 @@ dwarf2_has_info (struct objfile *objfile
|
||||
(void *) names);
|
||||
dwarf2_per_objfile->objfile = objfile;
|
||||
}
|
||||
@ -84,11 +84,11 @@ Index: gdb-7.5.50.20130215/gdb/dwarf2read.c
|
||||
}
|
||||
|
||||
/* When loading sections, we look either for uncompressed section or for
|
||||
Index: gdb-7.5.50.20130215/gdb/top.h
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/top.h
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/top.h 2013-01-07 17:40:36.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/top.h 2013-02-15 22:34:22.389165459 +0100
|
||||
@@ -58,6 +58,7 @@ extern void set_prompt (const char *s);
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/top.h 2013-08-02 16:12:54.980085956 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/top.h 2013-08-02 16:20:21.169687893 +0200
|
||||
@@ -59,6 +59,7 @@ extern void set_prompt (const char *s);
|
||||
|
||||
/* From random places. */
|
||||
extern int readnow_symbol_files;
|
||||
|
@ -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
|
||||
+ }
|
||||
+}
|
@ -1,7 +1,7 @@
|
||||
Index: gdb-7.4.50.20120602/gdb/testsuite/configure.ac
|
||||
Index: gdb-7.5.91.20130323/gdb/testsuite/configure.ac
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120602.orig/gdb/testsuite/configure.ac 2012-04-25 16:07:22.000000000 +0200
|
||||
+++ gdb-7.4.50.20120602/gdb/testsuite/configure.ac 2012-06-02 18:24:38.456266545 +0200
|
||||
--- gdb-7.5.91.20130323.orig/gdb/testsuite/configure.ac 2013-03-11 09:59:00.000000000 +0100
|
||||
+++ gdb-7.5.91.20130323/gdb/testsuite/configure.ac 2013-03-23 19:47:24.189683555 +0100
|
||||
@@ -96,6 +96,6 @@ AC_OUTPUT([Makefile \
|
||||
gdb.hp/gdb.aCC/Makefile gdb.hp/gdb.compat/Makefile \
|
||||
gdb.hp/gdb.defects/Makefile gdb.linespec/Makefile \
|
||||
@ -10,20 +10,20 @@ Index: gdb-7.4.50.20120602/gdb/testsuite/configure.ac
|
||||
+ gdb.objc/Makefile gdb.opencl/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.pie/Makefile \
|
||||
gdb.python/Makefile gdb.reverse/Makefile gdb.stabs/Makefile \
|
||||
gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile])
|
||||
Index: gdb-7.4.50.20120602/gdb/testsuite/configure
|
||||
Index: gdb-7.5.91.20130323/gdb/testsuite/configure
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120602.orig/gdb/testsuite/configure 2012-04-25 16:07:21.000000000 +0200
|
||||
+++ gdb-7.4.50.20120602/gdb/testsuite/configure 2012-06-02 18:25:06.200258240 +0200
|
||||
--- gdb-7.5.91.20130323.orig/gdb/testsuite/configure 2013-03-11 09:59:00.000000000 +0100
|
||||
+++ gdb-7.5.91.20130323/gdb/testsuite/configure 2013-03-23 19:47:47.256822312 +0100
|
||||
@@ -3448,7 +3448,7 @@ done
|
||||
|
||||
|
||||
|
||||
-ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.cell/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.go/Makefile gdb.server/Makefile gdb.java/Makefile gdb.hp/Makefile gdb.hp/gdb.objdbg/Makefile gdb.hp/gdb.base-hp/Makefile gdb.hp/gdb.aCC/Makefile gdb.hp/gdb.compat/Makefile gdb.hp/gdb.defects/Makefile gdb.linespec/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.multi/Makefile gdb.objc/Makefile gdb.opencl/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.stabs/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
|
||||
+ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.cell/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.go/Makefile gdb.server/Makefile gdb.java/Makefile gdb.hp/Makefile gdb.hp/gdb.objdbg/Makefile gdb.hp/gdb.base-hp/Makefile gdb.hp/gdb.aCC/Makefile gdb.hp/gdb.compat/Makefile gdb.hp/gdb.defects/Makefile gdb.linespec/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.multi/Makefile gdb.objc/Makefile gdb.opencl/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.pie/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.stabs/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
|
||||
-ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.btrace/Makefile gdb.cell/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.go/Makefile gdb.server/Makefile gdb.java/Makefile gdb.hp/Makefile gdb.hp/gdb.objdbg/Makefile gdb.hp/gdb.base-hp/Makefile gdb.hp/gdb.aCC/Makefile gdb.hp/gdb.compat/Makefile gdb.hp/gdb.defects/Makefile gdb.linespec/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.multi/Makefile gdb.objc/Makefile gdb.opencl/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.stabs/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
|
||||
+ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.btrace/Makefile gdb.cell/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.go/Makefile gdb.server/Makefile gdb.java/Makefile gdb.hp/Makefile gdb.hp/gdb.objdbg/Makefile gdb.hp/gdb.base-hp/Makefile gdb.hp/gdb.aCC/Makefile gdb.hp/gdb.compat/Makefile gdb.hp/gdb.defects/Makefile gdb.linespec/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.multi/Makefile gdb.objc/Makefile gdb.opencl/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.pie/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.stabs/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
|
||||
|
||||
cat >confcache <<\_ACEOF
|
||||
# This file is a shell script that caches the results of configure
|
||||
@@ -4175,6 +4175,7 @@ do
|
||||
@@ -4176,6 +4176,7 @@ do
|
||||
"gdb.opencl/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.opencl/Makefile" ;;
|
||||
"gdb.opt/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.opt/Makefile" ;;
|
||||
"gdb.pascal/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.pascal/Makefile" ;;
|
||||
@ -31,10 +31,10 @@ Index: gdb-7.4.50.20120602/gdb/testsuite/configure
|
||||
"gdb.python/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.python/Makefile" ;;
|
||||
"gdb.reverse/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.reverse/Makefile" ;;
|
||||
"gdb.stabs/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.stabs/Makefile" ;;
|
||||
Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/attach.c
|
||||
Index: gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/attach.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/attach.c 2012-06-02 18:24:38.497266532 +0200
|
||||
+++ gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/attach.c 2013-03-23 19:47:24.191683466 +0100
|
||||
@@ -0,0 +1,20 @@
|
||||
+/* This program is intended to be started outside of gdb, and then
|
||||
+ attached to by gdb. Thus, it simply spins in a loop. The loop
|
||||
@ -56,10 +56,10 @@ Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/attach.c
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/attach2.c
|
||||
Index: gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/attach2.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/attach2.c 2012-06-02 18:24:38.504266529 +0200
|
||||
+++ gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/attach2.c 2013-03-23 19:47:24.192683421 +0100
|
||||
@@ -0,0 +1,24 @@
|
||||
+/* This program is intended to be started outside of gdb, and then
|
||||
+ attached to by gdb. Thus, it simply spins in a loop. The loop
|
||||
@ -85,10 +85,10 @@ Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/attach2.c
|
||||
+ }
|
||||
+ return (0);
|
||||
+}
|
||||
Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/break.c
|
||||
Index: gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/break.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/break.c 2012-06-02 18:24:38.505266529 +0200
|
||||
+++ gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/break.c 2013-03-23 19:47:24.192683421 +0100
|
||||
@@ -0,0 +1,146 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
@ -236,10 +236,10 @@ Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/break.c
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/break1.c
|
||||
Index: gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/break1.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/break1.c 2012-06-02 18:24:38.506266530 +0200
|
||||
+++ gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/break1.c 2013-03-23 19:47:24.192683421 +0100
|
||||
@@ -0,0 +1,44 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
@ -285,10 +285,10 @@ Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/break1.c
|
||||
+void marker3 (a, b) char *a, *b; {} /* set breakpoint 18 here */
|
||||
+void marker4 (d) long d; {} /* set breakpoint 13 here */
|
||||
+#endif
|
||||
Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/coremaker.c
|
||||
Index: gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/coremaker.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/coremaker.c 2012-06-02 18:24:38.506266530 +0200
|
||||
+++ gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/coremaker.c 2013-03-23 19:47:24.192683421 +0100
|
||||
@@ -0,0 +1,142 @@
|
||||
+/* Copyright 1992, 1993, 1994, 1995, 1996, 1999
|
||||
+ Free Software Foundation, Inc.
|
||||
@ -432,10 +432,10 @@ Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/coremaker.c
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/attach.exp
|
||||
Index: gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/attach.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/attach.exp 2012-06-02 18:24:38.508266531 +0200
|
||||
+++ gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/attach.exp 2013-03-23 19:47:24.193683377 +0100
|
||||
@@ -0,0 +1,417 @@
|
||||
+# Copyright 1997, 1999, 2002 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -854,10 +854,10 @@ Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/attach.exp
|
||||
+do_call_attach_tests
|
||||
+
|
||||
+return 0
|
||||
Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/break.exp
|
||||
Index: gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/break.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/break.exp 2012-06-02 18:24:38.510266529 +0200
|
||||
+++ gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/break.exp 2013-03-23 19:47:24.194683332 +0100
|
||||
@@ -0,0 +1,962 @@
|
||||
+# Copyright 1988, 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||
+# 2000, 2002, 2003, 2004
|
||||
@ -1821,10 +1821,10 @@ Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/break.exp
|
||||
+ send_gdb "set args main\n"
|
||||
+ gdb_expect -re ".*$gdb_prompt $" {}
|
||||
+}
|
||||
Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/corefile.exp
|
||||
Index: gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/corefile.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/corefile.exp 2012-06-02 18:24:38.511266528 +0200
|
||||
+++ gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/corefile.exp 2013-03-23 19:47:24.194683332 +0100
|
||||
@@ -0,0 +1,233 @@
|
||||
+# Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
|
||||
+# Free Software Foundation, Inc.
|
||||
@ -2059,10 +2059,10 @@ Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/corefile.exp
|
||||
+gdb_test "up" "#\[0-9\]* *\[0-9xa-fH'\]* in .* \\(.*\\).*" "up in corefile.exp (reinit)"
|
||||
+
|
||||
+gdb_test "core" "No core file now."
|
||||
Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/Makefile.in
|
||||
Index: gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/Makefile.in
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.4.50.20120602/gdb/testsuite/gdb.pie/Makefile.in 2012-06-02 18:24:38.512266527 +0200
|
||||
+++ gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/Makefile.in 2013-03-23 19:47:24.194683332 +0100
|
||||
@@ -0,0 +1,19 @@
|
||||
+VPATH = @srcdir@
|
||||
+srcdir = @srcdir@
|
||||
|
@ -6,96 +6,30 @@
|
||||
* gdb.gdb/xfullpath.exp: Ditto.
|
||||
* gdb.gdb/observer.exp: Ditto.
|
||||
|
||||
Index: gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/complaints.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/selftest-support.exp
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/testsuite/gdb.gdb/complaints.exp 2009-01-03 06:58:04.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/complaints.exp 2009-02-26 22:10:48.000000000 +0100
|
||||
@@ -302,13 +302,13 @@ proc find_gdb { arg } {
|
||||
set GDB_FULLPATH [find_gdb $GDB]
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/lib/selftest-support.exp 2013-08-02 16:11:29.195971922 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/selftest-support.exp 2013-08-02 16:12:20.404040378 +0200
|
||||
@@ -130,18 +130,18 @@ proc do_self_tests {function body} {
|
||||
set GDB_FULLPATH [find_gdb $GDB]
|
||||
|
||||
# Remove any old copy lying around.
|
||||
-remote_file host delete x$tool
|
||||
+#remote_file host delete x$tool
|
||||
# Remove any old copy lying around.
|
||||
- remote_file host delete x$tool
|
||||
+ #remote_file host delete x$tool
|
||||
|
||||
gdb_start
|
||||
gdb_start
|
||||
- set file [remote_download host $GDB_FULLPATH x$tool]
|
||||
+ #set file [remote_download host $GDB_FULLPATH x$tool]
|
||||
|
||||
-set file [remote_download host $GDB_FULLPATH x$tool]
|
||||
+#set file [remote_download host $GDB_FULLPATH x$tool]
|
||||
- set result [selftest_setup $file $function]
|
||||
+ set result [selftest_setup $GDB_FULLPATH $function]
|
||||
if {$result == 0} then {
|
||||
set result [uplevel $body]
|
||||
}
|
||||
|
||||
-set setup_result [setup_test $file ]
|
||||
+set setup_result [setup_test $GDB_FULLPATH ]
|
||||
if {$setup_result <0} then {
|
||||
return -1
|
||||
}
|
||||
@@ -319,4 +319,4 @@ test_short_complaints
|
||||
test_empty_complaints
|
||||
gdb_exit
|
||||
- catch "remote_file host delete $file"
|
||||
+ #catch "remote_file host delete $file"
|
||||
|
||||
gdb_exit;
|
||||
-catch "remote_file host delete $file";
|
||||
+#catch "remote_file host delete $file";
|
||||
Index: gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/observer.exp
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/testsuite/gdb.gdb/observer.exp 2009-02-17 20:52:27.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/observer.exp 2009-02-26 22:11:40.000000000 +0100
|
||||
@@ -258,13 +258,13 @@ proc find_gdb { arg } {
|
||||
set GDB_FULLPATH [find_gdb $GDB]
|
||||
|
||||
# Remove any old copy lying around.
|
||||
-remote_file host delete x$tool
|
||||
+#remote_file host delete x$tool
|
||||
|
||||
gdb_start
|
||||
-set file [remote_download host $GDB_FULLPATH x$tool]
|
||||
-set result [test_observer $file];
|
||||
+#set file [remote_download host $GDB_FULLPATH x$tool]
|
||||
+set result [test_observer $GDB_FULLPATH];
|
||||
gdb_exit;
|
||||
-catch "remote_file host delete $file";
|
||||
+#catch "remote_file host delete $file";
|
||||
|
||||
if {$result <0} then {
|
||||
warning "Couldn't test self"
|
||||
Index: gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/selftest.exp
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/testsuite/gdb.gdb/selftest.exp 2009-02-26 22:09:59.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/selftest.exp 2009-02-26 22:10:48.000000000 +0100
|
||||
@@ -551,13 +551,13 @@ proc find_gdb { arg } {
|
||||
set GDB_FULLPATH [find_gdb $GDB]
|
||||
|
||||
# Remove any old copy lying around.
|
||||
-remote_file host delete x$tool
|
||||
+#remote_file host delete x$tool
|
||||
|
||||
gdb_start
|
||||
-set file [remote_download host $GDB_FULLPATH x$tool]
|
||||
-set result [test_with_self $file];
|
||||
+#set file [remote_download host $GDB_FULLPATH x$tool]
|
||||
+set result [test_with_self $GDB_FULLPATH];
|
||||
gdb_exit;
|
||||
-catch "remote_file host delete $file";
|
||||
+#catch "remote_file host delete $file";
|
||||
|
||||
if {$result <0} then {
|
||||
warning "Couldn't test self"
|
||||
Index: gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/xfullpath.exp
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20090226.orig/gdb/testsuite/gdb.gdb/xfullpath.exp 2009-01-03 06:58:04.000000000 +0100
|
||||
+++ gdb-6.8.50.20090226/gdb/testsuite/gdb.gdb/xfullpath.exp 2009-02-26 22:10:48.000000000 +0100
|
||||
@@ -179,13 +179,13 @@ proc find_gdb { arg } {
|
||||
set GDB_FULLPATH [find_gdb $GDB]
|
||||
|
||||
# Remove any old copy lying around.
|
||||
-remote_file host delete x$tool
|
||||
+#remote_file host delete x$tool
|
||||
|
||||
gdb_start
|
||||
-set file [remote_download host $GDB_FULLPATH x$tool]
|
||||
-set result [test_with_self $file];
|
||||
+#set file [remote_download host $GDB_FULLPATH x$tool]
|
||||
+set result [test_with_self $GDB_FULLPATH];
|
||||
gdb_exit;
|
||||
-catch "remote_file host delete $file";
|
||||
+#catch "remote_file host delete $file";
|
||||
|
||||
if {$result <0} then {
|
||||
warning "Couldn't test self"
|
||||
if {$result < 0} then {
|
||||
warning "Couldn't test self"
|
||||
|
@ -1,9 +1,7 @@
|
||||
Index: ./gdb/testsuite/gdb.threads/threadcrash.c
|
||||
Index: gdb-7.6/gdb/testsuite/gdb.threads/threadcrash.c
|
||||
===================================================================
|
||||
RCS file: gdb/testsuite/gdb.threads/threadcrash.c
|
||||
diff -N gdb/testsuite/gdb.threads/threadcrash.c
|
||||
--- /dev/null 1 Jan 1970 00:00:00 -0000
|
||||
+++ ./gdb/testsuite/gdb.threads/threadcrash.c 31 Oct 2006 17:54:38 -0000
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.6/gdb/testsuite/gdb.threads/threadcrash.c 2013-05-21 13:35:45.592059786 +0200
|
||||
@@ -0,0 +1,301 @@
|
||||
+/*
|
||||
+ * The point of this program is to crash in a multi-threaded app.
|
||||
@ -306,12 +304,10 @@ diff -N gdb/testsuite/gdb.threads/threadcrash.c
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
Index: ./gdb/testsuite/gdb.threads/threadcrash.exp
|
||||
Index: gdb-7.6/gdb/testsuite/gdb.threads/threadcrash.exp
|
||||
===================================================================
|
||||
RCS file: gdb/testsuite/gdb.threads/threadcrash.exp
|
||||
diff -N gdb/testsuite/gdb.threads/threadcrash.exp
|
||||
--- /dev/null 1 Jan 1970 00:00:00 -0000
|
||||
+++ ./gdb/testsuite/gdb.threads/threadcrash.exp 31 Oct 2006 17:54:38 -0000
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.6/gdb/testsuite/gdb.threads/threadcrash.exp 2013-05-21 13:36:01.451056746 +0200
|
||||
@@ -0,0 +1,37 @@
|
||||
+# threadcrash.exp - The point of this program is to crash in a multi-threaded app.
|
||||
+
|
||||
@ -337,7 +333,7 @@ diff -N gdb/testsuite/gdb.threads/threadcrash.exp
|
||||
+}
|
||||
+
|
||||
+# ${shellfile} argument must not contain any directories.
|
||||
+set fd [open "|bash ${shellfile} ${binfile} $GDB -nw $GDBFLAGS" r]
|
||||
+set fd [open "|bash ${shellfile} ${binfile} $GDB $INTERNAL_GDBFLAGS $GDBFLAGS [host_info gdb_opts]" r]
|
||||
+while { [gets $fd line] >= 0 } {
|
||||
+ if [regexp " PASS: (.*)$" $line trash message] {
|
||||
+ pass $message
|
||||
@ -350,12 +346,10 @@ diff -N gdb/testsuite/gdb.threads/threadcrash.exp
|
||||
+}
|
||||
+
|
||||
+return 0
|
||||
Index: ./gdb/testsuite/gdb.threads/threadcrash.sh
|
||||
Index: gdb-7.6/gdb/testsuite/gdb.threads/threadcrash.sh
|
||||
===================================================================
|
||||
RCS file: gdb/testsuite/gdb.threads/threadcrash.sh
|
||||
diff -N gdb/testsuite/gdb.threads/threadcrash.sh
|
||||
--- /dev/null 1 Jan 1970 00:00:00 -0000
|
||||
+++ ./gdb/testsuite/gdb.threads/threadcrash.sh 31 Oct 2006 17:54:38 -0000
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.6/gdb/testsuite/gdb.threads/threadcrash.sh 2013-05-21 13:35:45.593059786 +0200
|
||||
@@ -0,0 +1,324 @@
|
||||
+#! /bin/bash
|
||||
+
|
||||
@ -681,12 +675,10 @@ diff -N gdb/testsuite/gdb.threads/threadcrash.sh
|
||||
+rm -rf $WORKDIR
|
||||
+
|
||||
+exit $FAILURES
|
||||
Index: ./gdb/testsuite/gdb.threads/threadcrash.sh-orig
|
||||
Index: gdb-7.6/gdb/testsuite/gdb.threads/threadcrash.sh-orig
|
||||
===================================================================
|
||||
RCS file: gdb/testsuite/gdb.threads/threadcrash.sh-orig
|
||||
diff -N gdb/testsuite/gdb.threads/threadcrash.sh-orig
|
||||
--- /dev/null 1 Jan 1970 00:00:00 -0000
|
||||
+++ ./gdb/testsuite/gdb.threads/threadcrash.sh-orig 31 Oct 2006 17:54:38 -0000
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.6/gdb/testsuite/gdb.threads/threadcrash.sh-orig 2013-05-21 13:35:45.593059786 +0200
|
||||
@@ -0,0 +1,248 @@
|
||||
+#! /bin/bash
|
||||
+
|
||||
|
@ -32,21 +32,23 @@ glibc-debuginfo-2.7-2.x86_64: /usr/lib/debug/lib64/libc.so.6.debug:
|
||||
<81a2> DW_AT_name : (indirect string, offset: 0x280e): __errno_location
|
||||
<81a8> DW_AT_MIPS_linkage_name: (indirect string, offset: 0x2808): *__GI___errno_location
|
||||
|
||||
--- a/gdb/printcmd.c
|
||||
+++ b/gdb/printcmd.c
|
||||
@@ -967,6 +967,8 @@ print_command_1 (char *exp, int inspect, int voidprint)
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/printcmd.c
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/printcmd.c 2013-08-02 16:21:13.665758324 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/printcmd.c 2013-08-02 16:22:24.367853322 +0200
|
||||
@@ -982,6 +982,8 @@ print_command_1 (const char *exp, int vo
|
||||
|
||||
if (exp && *exp)
|
||||
{
|
||||
+ if (strcmp (exp, "errno") == 0)
|
||||
+ exp = "*((int *(*) (void)) __errno_location) ()";
|
||||
expr = parse_expression (exp);
|
||||
old_chain = make_cleanup (free_current_contents, &expr);
|
||||
cleanup = 1;
|
||||
Index: gdb-7.2/gdb/testsuite/gdb.dwarf2/dw2-errno.c
|
||||
make_cleanup (free_current_contents, &expr);
|
||||
val = evaluate_expression (expr);
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.dwarf2/dw2-errno.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.2/gdb/testsuite/gdb.dwarf2/dw2-errno.c 2011-03-29 10:55:35.000000000 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.dwarf2/dw2-errno.c 2013-08-02 16:21:13.665758324 +0200
|
||||
@@ -0,0 +1,28 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
@ -76,10 +78,10 @@ Index: gdb-7.2/gdb/testsuite/gdb.dwarf2/dw2-errno.c
|
||||
+
|
||||
+ return 0; /* breakpoint */
|
||||
+}
|
||||
Index: gdb-7.2/gdb/testsuite/gdb.dwarf2/dw2-errno.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.dwarf2/dw2-errno.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.2/gdb/testsuite/gdb.dwarf2/dw2-errno.exp 2011-03-29 10:55:35.000000000 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.dwarf2/dw2-errno.exp 2013-08-02 16:21:13.665758324 +0200
|
||||
@@ -0,0 +1,60 @@
|
||||
+# Copyright 2007 Free Software Foundation, Inc.
|
||||
+
|
||||
|
@ -1,11 +1,11 @@
|
||||
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=218379
|
||||
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/symtab.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/symtab.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/symtab.c 2013-01-18 23:53:22.009797788 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/symtab.c 2013-01-18 23:53:51.044846777 +0100
|
||||
@@ -2356,6 +2356,13 @@ find_pc_sect_line (CORE_ADDR pc, struct
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/symtab.c 2013-08-02 17:06:19.854663801 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/symtab.c 2013-08-02 17:07:04.317721471 +0200
|
||||
@@ -2327,6 +2327,13 @@ find_pc_sect_line (CORE_ADDR pc, struct
|
||||
SYMBOL_LINKAGE_NAME (msymbol)); */
|
||||
;
|
||||
/* fall through */
|
||||
@ -14,7 +14,7 @@ Index: gdb-7.5.50.20130118/gdb/symtab.c
|
||||
+ Avoid `find_pc_sect_line'<->`find_pc_line' infinite loop.
|
||||
+ Red Hat Bug 218379. */
|
||||
+ else if (SYMBOL_VALUE (mfunsym) == pc)
|
||||
+ warning ("In stub for %s (0x%s); interlocked, please submit the binary to http://bugzilla.redhat.com", SYMBOL_LINKAGE_NAME (msymbol), paddress (target_gdbarch (), pc));
|
||||
+ warning ("In stub for %s (0x%s); interlocked, please submit the binary to http://bugzilla.redhat.com", SYMBOL_LINKAGE_NAME (msymbol.minsym), paddress (target_gdbarch (), pc));
|
||||
+ /* fall through */
|
||||
else
|
||||
return find_pc_line (SYMBOL_VALUE_ADDRESS (mfunsym), 0);
|
||||
|
@ -58,13 +58,13 @@ Http://sourceware.org/ml/gdb-patches/2010-01/msg00517.html
|
||||
* exec.c (exec_file_attach): Print a more useful error message if the
|
||||
user did "gdb core".
|
||||
|
||||
Index: gdb-7.4.91.20120801/gdb/exceptions.h
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/exceptions.h
|
||||
===================================================================
|
||||
--- gdb-7.4.91.20120801.orig/gdb/exceptions.h 2012-01-04 09:17:01.000000000 +0100
|
||||
+++ gdb-7.4.91.20120801/gdb/exceptions.h 2012-08-01 18:43:39.806959992 +0200
|
||||
@@ -86,6 +86,9 @@ enum errors {
|
||||
/* DW_OP_GNU_entry_value resolving failed. */
|
||||
NO_ENTRY_VALUE_ERROR,
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/exceptions.h 2013-08-02 16:29:44.770440262 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/exceptions.h 2013-08-02 16:30:06.197468727 +0200
|
||||
@@ -90,6 +90,9 @@ enum errors {
|
||||
aborted as the inferior state is no longer valid. */
|
||||
TARGET_CLOSE_ERROR,
|
||||
|
||||
+ /* Attempt to load a core file as executable. */
|
||||
+ IS_CORE_ERROR,
|
||||
@ -72,10 +72,10 @@ Index: gdb-7.4.91.20120801/gdb/exceptions.h
|
||||
/* Add more errors here. */
|
||||
NR_ERRORS
|
||||
};
|
||||
Index: gdb-7.4.91.20120801/gdb/exec.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/exec.c
|
||||
===================================================================
|
||||
--- gdb-7.4.91.20120801.orig/gdb/exec.c 2012-08-01 18:36:51.000000000 +0200
|
||||
+++ gdb-7.4.91.20120801/gdb/exec.c 2012-08-01 18:44:39.928627287 +0200
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/exec.c 2013-08-02 16:29:44.771440264 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/exec.c 2013-08-02 16:31:30.100618657 +0200
|
||||
@@ -34,6 +34,7 @@
|
||||
#include "gdbthread.h"
|
||||
#include "progspace.h"
|
||||
@ -84,7 +84,7 @@ Index: gdb-7.4.91.20120801/gdb/exec.c
|
||||
|
||||
#include <fcntl.h>
|
||||
#include "readline/readline.h"
|
||||
@@ -242,12 +243,27 @@ exec_file_attach (char *filename, int fr
|
||||
@@ -217,12 +218,27 @@ exec_file_attach (char *filename, int fr
|
||||
|
||||
if (!bfd_check_format_matches (exec_bfd, bfd_object, &matching))
|
||||
{
|
||||
@ -114,12 +114,12 @@ Index: gdb-7.4.91.20120801/gdb/exec.c
|
||||
+ gdb_bfd_errmsg (bfd_get_error (), matching));
|
||||
}
|
||||
|
||||
/* FIXME - This should only be run for RS6000, but the ifdef is a poor
|
||||
Index: gdb-7.4.91.20120801/gdb/main.c
|
||||
if (build_section_table (exec_bfd, §ions, §ions_end))
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/main.c
|
||||
===================================================================
|
||||
--- gdb-7.4.91.20120801.orig/gdb/main.c 2012-08-01 18:36:51.000000000 +0200
|
||||
+++ gdb-7.4.91.20120801/gdb/main.c 2012-08-01 18:43:39.810959970 +0200
|
||||
@@ -266,6 +266,36 @@ typedef struct cmdarg {
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/main.c 2013-08-02 16:29:44.772440265 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/main.c 2013-08-02 16:30:06.199468730 +0200
|
||||
@@ -300,6 +300,36 @@ typedef struct cmdarg {
|
||||
/* Define type VEC (cmdarg_s). */
|
||||
DEF_VEC_O (cmdarg_s);
|
||||
|
||||
@ -156,7 +156,7 @@ Index: gdb-7.4.91.20120801/gdb/main.c
|
||||
static int
|
||||
captured_main (void *data)
|
||||
{
|
||||
@@ -762,6 +792,8 @@ captured_main (void *data)
|
||||
@@ -810,6 +840,8 @@ captured_main (void *data)
|
||||
{
|
||||
symarg = argv[optind];
|
||||
execarg = argv[optind];
|
||||
@ -165,7 +165,7 @@ Index: gdb-7.4.91.20120801/gdb/main.c
|
||||
optind++;
|
||||
}
|
||||
|
||||
@@ -917,11 +949,25 @@ captured_main (void *data)
|
||||
@@ -975,11 +1007,25 @@ captured_main (void *data)
|
||||
&& symarg != NULL
|
||||
&& strcmp (execarg, symarg) == 0)
|
||||
{
|
||||
|
105
gdb-6.6-buildid-locate-rpm-scl.patch
Normal file
105
gdb-6.6-buildid-locate-rpm-scl.patch
Normal file
@ -0,0 +1,105 @@
|
||||
warning: Skipping deprecated .gdb_index section
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=953585
|
||||
|
||||
--- gdb-7.5.91.20130407-orig/gdb/dwarf2read.c 2013-04-22 15:47:18.837806752 +0200
|
||||
+++ gdb-7.5.91.20130407/gdb/dwarf2read.c 2013-04-22 16:12:55.043171881 +0200
|
||||
@@ -2700,6 +2700,14 @@ read_index_from_section (struct objfile
|
||||
"set use-deprecated-index-sections on". */
|
||||
if (version < 6 && !deprecated_ok)
|
||||
{
|
||||
+ extern int rpm_verify_vendor (const char *filename);
|
||||
+
|
||||
+ /* Red Hat Developer Toolset exception. */
|
||||
+ if (rpm_verify_vendor (filename))
|
||||
+ {}
|
||||
+ else
|
||||
+ {
|
||||
+
|
||||
static int warning_printed = 0;
|
||||
if (!warning_printed)
|
||||
{
|
||||
@@ -2711,6 +2719,8 @@ to use the section anyway."),
|
||||
warning_printed = 1;
|
||||
}
|
||||
return 0;
|
||||
+
|
||||
+ }
|
||||
}
|
||||
/* Version 7 indices generated by gold refer to the CU for a symbol instead
|
||||
of the TU (for symbols coming from TUs). It's just a performance bug, and
|
||||
--- gdb-7.5.91.20130407-orig/gdb/elfread.c 2013-04-22 15:47:18.637807200 +0200
|
||||
+++ gdb-7.5.91.20130407/gdb/elfread.c 2013-04-22 16:04:09.259429034 +0200
|
||||
@@ -1674,7 +1674,7 @@ static int missing_rpm_list_entries;
|
||||
/* Returns the count of newly added rpms. */
|
||||
|
||||
static int
|
||||
-missing_rpm_enlist (const char *filename)
|
||||
+missing_rpm_enlist_1 (const char *filename, int verify_vendor)
|
||||
{
|
||||
static int rpm_init_done = 0;
|
||||
rpmts ts;
|
||||
@@ -1778,7 +1778,7 @@ missing_rpm_enlist (const char *filename
|
||||
mi = rpmtsInitIterator_p (ts, RPMTAG_BASENAMES, filename, 0);
|
||||
if (mi != NULL)
|
||||
{
|
||||
- for (;;)
|
||||
+ if (!verify_vendor) for (;;)
|
||||
{
|
||||
Header h;
|
||||
char *debuginfo, **slot, *s, *s2;
|
||||
@@ -1897,6 +1897,35 @@ missing_rpm_enlist (const char *filename
|
||||
xfree (debuginfo);
|
||||
count++;
|
||||
}
|
||||
+ else /* verify_vendor */
|
||||
+ {
|
||||
+ int vendor_pass = 0, vendor_fail = 0;
|
||||
+
|
||||
+ for (;;)
|
||||
+ {
|
||||
+ Header h;
|
||||
+ errmsg_t err;
|
||||
+ char *vendor;
|
||||
+
|
||||
+ h = rpmdbNextIterator_p (mi);
|
||||
+ if (h == NULL)
|
||||
+ break;
|
||||
+
|
||||
+ vendor = headerFormat_p (h, "%{vendor}", &err);
|
||||
+ if (!vendor)
|
||||
+ {
|
||||
+ warning (_("Error querying the rpm file `%s': %s"), filename,
|
||||
+ err);
|
||||
+ continue;
|
||||
+ }
|
||||
+ if (strcmp (vendor, "Red Hat, Inc.") == 0)
|
||||
+ vendor_pass = 1;
|
||||
+ else
|
||||
+ vendor_fail = 1;
|
||||
+ xfree (vendor);
|
||||
+ }
|
||||
+ count = vendor_pass != 0 && vendor_fail == 0;
|
||||
+ }
|
||||
|
||||
rpmdbFreeIterator_p (mi);
|
||||
}
|
||||
@@ -1907,6 +1936,19 @@ missing_rpm_enlist (const char *filename
|
||||
}
|
||||
|
||||
static int
|
||||
+missing_rpm_enlist (const char *filename)
|
||||
+{
|
||||
+ return missing_rpm_enlist_1 (filename, 0);
|
||||
+}
|
||||
+
|
||||
+extern int rpm_verify_vendor (const char *filename);
|
||||
+int
|
||||
+rpm_verify_vendor (const char *filename)
|
||||
+{
|
||||
+ return missing_rpm_enlist_1 (filename, 1);
|
||||
+}
|
||||
+
|
||||
+static int
|
||||
missing_rpm_list_compar (const char *const *ap, const char *const *bp)
|
||||
{
|
||||
return strcoll (*ap, *bp);
|
@ -1,8 +1,8 @@
|
||||
Index: gdb-7.4.50.20120603/gdb/elfread.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120603.orig/gdb/elfread.c 2012-06-12 15:12:05.000000000 +0200
|
||||
+++ gdb-7.4.50.20120603/gdb/elfread.c 2012-06-12 15:13:39.678712939 +0200
|
||||
@@ -1809,9 +1809,9 @@ missing_rpm_enlist (const char *filename
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/elfread.c 2013-08-07 14:59:00.000000000 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/elfread.c 2013-08-07 15:01:35.000000000 +0200
|
||||
@@ -1863,9 +1863,9 @@ missing_rpm_enlist_1 (const char *filena
|
||||
if (h == NULL)
|
||||
break;
|
||||
|
||||
@ -15,7 +15,7 @@ Index: gdb-7.4.50.20120603/gdb/elfread.c
|
||||
&err);
|
||||
if (!debuginfo)
|
||||
{
|
||||
@@ -1819,60 +1819,19 @@ missing_rpm_enlist (const char *filename
|
||||
@@ -1873,60 +1873,19 @@ missing_rpm_enlist_1 (const char *filena
|
||||
err);
|
||||
continue;
|
||||
}
|
||||
@ -77,8 +77,8 @@ Index: gdb-7.4.50.20120603/gdb/elfread.c
|
||||
-
|
||||
/* Base package name for `debuginfo-install'. We do not use the
|
||||
`yum' command directly as the line
|
||||
yum --disablerepo='*' --enablerepo='*debug*' \
|
||||
@@ -1958,7 +1917,7 @@ missing_rpm_list_print (void)
|
||||
yum --enablerepo='*debug*' install NAME-debuginfo.ARCH
|
||||
@@ -2053,7 +2012,7 @@ missing_rpm_list_print (void)
|
||||
(int (*) (const void *, const void *)) missing_rpm_list_compar);
|
||||
|
||||
printf_unfiltered (_("Missing separate debuginfos, use: %s"),
|
||||
@ -87,13 +87,12 @@ Index: gdb-7.4.50.20120603/gdb/elfread.c
|
||||
for (array_iter = array; array_iter < array + missing_rpm_list_entries;
|
||||
array_iter++)
|
||||
{
|
||||
@@ -2171,9 +2130,12 @@ debug_print_missing (const char *binary,
|
||||
@@ -2266,8 +2225,12 @@ debug_print_missing (const char *binary,
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
_("Missing separate debuginfo for %s\n"), binary);
|
||||
if (debug != NULL)
|
||||
- fprintf_unfiltered (gdb_stdlog, _("Try: %s %s\n"),
|
||||
- "yum --disablerepo='*' --enablerepo='*debug*'"
|
||||
- " install", debug);
|
||||
- "yum --enablerepo='*debug*' install", debug);
|
||||
+ {
|
||||
+ const char *p = strrchr (debug, '/');
|
||||
+ fprintf_unfiltered (gdb_stdlog, _("Try: %s%.2s%.38s\"\n"),
|
||||
|
@ -1,16 +1,16 @@
|
||||
Index: gdb-7.5.50.20130215/gdb/event-top.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/event-top.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/event-top.c 2013-01-31 19:37:37.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/event-top.c 2013-02-15 22:36:11.217308539 +0100
|
||||
@@ -36,6 +36,7 @@
|
||||
#include "continuations.h"
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/event-top.c 2013-08-02 16:25:24.968094398 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/event-top.c 2013-08-02 16:25:38.638112874 +0200
|
||||
@@ -37,6 +37,7 @@
|
||||
#include "gdbcmd.h" /* for dont_repeat() */
|
||||
#include "annotate.h"
|
||||
#include "maint.h"
|
||||
+#include "symfile.h"
|
||||
|
||||
/* readline include files. */
|
||||
#include "readline/readline.h"
|
||||
@@ -170,6 +171,8 @@ rl_callback_read_char_wrapper (gdb_clien
|
||||
@@ -171,6 +172,8 @@ rl_callback_read_char_wrapper (gdb_clien
|
||||
void
|
||||
cli_command_loop (void)
|
||||
{
|
||||
@ -19,7 +19,7 @@ Index: gdb-7.5.50.20130215/gdb/event-top.c
|
||||
display_gdb_prompt (0);
|
||||
|
||||
/* Now it's time to start the event loop. */
|
||||
@@ -237,6 +240,8 @@ display_gdb_prompt (char *new_prompt)
|
||||
@@ -238,6 +241,8 @@ display_gdb_prompt (char *new_prompt)
|
||||
/* Reset the nesting depth used when trace-commands is set. */
|
||||
reset_command_nest_depth ();
|
||||
|
||||
@ -28,10 +28,10 @@ Index: gdb-7.5.50.20130215/gdb/event-top.c
|
||||
/* Each interpreter has its own rules on displaying the command
|
||||
prompt. */
|
||||
if (!current_interp_display_prompt_p ())
|
||||
Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/elfread.c 2013-02-15 22:35:36.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/elfread.c 2013-02-15 22:35:59.414292874 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/elfread.c 2013-08-02 16:25:24.970094401 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/elfread.c 2013-08-02 16:25:27.336097557 +0200
|
||||
@@ -49,6 +49,7 @@
|
||||
#include "gdbcore.h"
|
||||
#include "gdbcmd.h"
|
||||
@ -40,7 +40,7 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
#include <sys/stat.h>
|
||||
|
||||
extern void _initialize_elfread (void);
|
||||
@@ -1649,8 +1650,361 @@ build_id_to_filename (struct build_id *b
|
||||
@@ -1701,8 +1702,360 @@ build_id_to_filename (const struct elf_b
|
||||
return retval;
|
||||
}
|
||||
|
||||
@ -258,8 +258,7 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+
|
||||
+ /* Base package name for `debuginfo-install'. We do not use the
|
||||
+ `yum' command directly as the line
|
||||
+ yum --disablerepo='*' --enablerepo='*debug*' \
|
||||
+ install NAME-debuginfo.ARCH
|
||||
+ yum --enablerepo='*debug*' install NAME-debuginfo.ARCH
|
||||
+ would be more complicated than just:
|
||||
+ debuginfo-install NAME-VERSION-RELEASE.ARCH
|
||||
+ Do not supply the rpm base name (derived from .src.rpm name) as
|
||||
@ -399,11 +398,11 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+
|
||||
/* This MISSING_FILEPAIR_HASH tracker is used only for the duplicite messages
|
||||
- Try to install the hash file ...
|
||||
+ yum --disablerepo='*' --enablerepo='*debug*' install ...
|
||||
+ yum --enablerepo='*debug*' install ...
|
||||
avoidance. */
|
||||
|
||||
struct missing_filepair
|
||||
@@ -1704,11 +2058,17 @@ missing_filepair_change (void)
|
||||
@@ -1756,11 +2109,17 @@ missing_filepair_change (void)
|
||||
/* All their memory came just from missing_filepair_OBSTACK. */
|
||||
missing_filepair_hash = NULL;
|
||||
}
|
||||
@ -421,7 +420,7 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
missing_filepair_change ();
|
||||
}
|
||||
|
||||
@@ -1775,14 +2135,35 @@ debug_print_missing (const char *binary,
|
||||
@@ -1827,14 +2186,34 @@ debug_print_missing (const char *binary,
|
||||
|
||||
*slot = missing_filepair;
|
||||
|
||||
@ -458,18 +457,17 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+ _("Missing separate debuginfo for %s\n"), binary);
|
||||
+ if (debug != NULL)
|
||||
+ fprintf_unfiltered (gdb_stdlog, _("Try: %s %s\n"),
|
||||
+ "yum --disablerepo='*' --enablerepo='*debug*'"
|
||||
+ " install", debug);
|
||||
+ "yum --enablerepo='*debug*' install", debug);
|
||||
+ }
|
||||
}
|
||||
|
||||
static char *
|
||||
Index: gdb-7.5.50.20130215/gdb/symfile.h
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/symfile.h
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/symfile.h 2013-02-15 22:35:03.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/symfile.h 2013-02-15 22:35:59.414292874 +0100
|
||||
@@ -599,6 +599,8 @@ extern struct build_id *build_id_addr_ge
|
||||
extern char *build_id_to_filename (struct build_id *build_id,
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/symfile.h 2013-08-02 16:25:24.971094402 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/symfile.h 2013-08-02 16:25:27.336097557 +0200
|
||||
@@ -602,6 +602,8 @@ extern struct elf_build_id *build_id_add
|
||||
extern char *build_id_to_filename (const struct elf_build_id *build_id,
|
||||
char **link_return, int add_debug_suffix);
|
||||
extern void debug_print_missing (const char *binary, const char *debug);
|
||||
+extern void debug_flush_missing (void);
|
||||
@ -477,10 +475,10 @@ Index: gdb-7.5.50.20130215/gdb/symfile.h
|
||||
|
||||
/* From dwarf2read.c */
|
||||
|
||||
Index: gdb-7.5.50.20130215/gdb/testsuite/lib/gdb.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/gdb.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/testsuite/lib/gdb.exp 2013-02-15 22:35:03.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/testsuite/lib/gdb.exp 2013-02-15 22:35:59.415292878 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/lib/gdb.exp 2013-08-02 16:25:24.972094404 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/gdb.exp 2013-08-02 16:25:27.337097559 +0200
|
||||
@@ -1482,7 +1482,7 @@ proc default_gdb_start { } {
|
||||
warning "Couldn't set the width to 0."
|
||||
}
|
||||
@ -490,10 +488,10 @@ Index: gdb-7.5.50.20130215/gdb/testsuite/lib/gdb.exp
|
||||
send_gdb "set build-id-verbose 0\n"
|
||||
gdb_expect 10 {
|
||||
-re "$gdb_prompt $" {
|
||||
Index: gdb-7.5.50.20130215/gdb/testsuite/lib/mi-support.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/mi-support.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/testsuite/lib/mi-support.exp 2013-02-15 22:35:03.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/testsuite/lib/mi-support.exp 2013-02-15 22:35:59.416292881 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/lib/mi-support.exp 2013-08-02 16:25:24.973094405 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/mi-support.exp 2013-08-02 16:25:27.338097560 +0200
|
||||
@@ -212,7 +212,7 @@ proc default_mi_gdb_start { args } {
|
||||
warning "Couldn't set the width to 0."
|
||||
}
|
||||
@ -503,10 +501,10 @@ Index: gdb-7.5.50.20130215/gdb/testsuite/lib/mi-support.exp
|
||||
send_gdb "190-gdb-set build-id-verbose 0\n"
|
||||
gdb_expect 10 {
|
||||
-re ".*190-gdb-set build-id-verbose 0\r\n190\\\^done\r\n$mi_gdb_prompt$" {
|
||||
Index: gdb-7.5.50.20130215/gdb/tui/tui-interp.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/tui/tui-interp.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/tui/tui-interp.c 2013-01-01 07:41:30.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/tui/tui-interp.c 2013-02-15 22:35:59.416292881 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/tui/tui-interp.c 2013-08-02 16:25:24.974094406 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/tui/tui-interp.c 2013-08-02 16:25:27.338097560 +0200
|
||||
@@ -30,6 +30,7 @@
|
||||
#include "tui/tui.h"
|
||||
#include "tui/tui-io.h"
|
||||
@ -515,10 +513,10 @@ Index: gdb-7.5.50.20130215/gdb/tui/tui-interp.c
|
||||
|
||||
/* Set to 1 when the TUI mode must be activated when we first start
|
||||
gdb. */
|
||||
Index: gdb-7.5.50.20130215/gdb/aclocal.m4
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/aclocal.m4
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/aclocal.m4 2013-01-17 12:06:26.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/aclocal.m4 2013-02-15 22:35:59.417292883 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/aclocal.m4 2013-08-02 16:25:24.974094406 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/aclocal.m4 2013-08-02 16:25:27.339097561 +0200
|
||||
@@ -11,6 +11,164 @@
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
@ -684,10 +682,10 @@ Index: gdb-7.5.50.20130215/gdb/aclocal.m4
|
||||
# AM_CONDITIONAL -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
|
||||
Index: gdb-7.5.50.20130215/gdb/config.in
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/config.in
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/config.in 2012-12-09 19:39:58.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/config.in 2013-02-15 22:35:59.417292883 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/config.in 2013-08-02 16:25:24.975094407 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/config.in 2013-08-02 16:25:27.339097561 +0200
|
||||
@@ -33,6 +33,9 @@
|
||||
/* Define to BFD's default target vector. */
|
||||
#undef DEFAULT_BFD_VEC
|
||||
@ -698,7 +696,7 @@ Index: gdb-7.5.50.20130215/gdb/config.in
|
||||
/* Define to 1 if translation of program messages to the user's native
|
||||
language is requested. */
|
||||
#undef ENABLE_NLS
|
||||
@@ -210,6 +213,9 @@
|
||||
@@ -219,6 +222,9 @@
|
||||
/* Define if Python 2.7 is being used. */
|
||||
#undef HAVE_LIBPYTHON2_7
|
||||
|
||||
@ -708,12 +706,12 @@ Index: gdb-7.5.50.20130215/gdb/config.in
|
||||
/* Define to 1 if you have the <libunwind-ia64.h> header file. */
|
||||
#undef HAVE_LIBUNWIND_IA64_H
|
||||
|
||||
Index: gdb-7.5.50.20130215/gdb/configure
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/configure
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/configure 2013-01-09 18:21:33.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/configure 2013-02-15 22:35:59.422292893 +0100
|
||||
@@ -683,6 +683,11 @@ REPORT_BUGS_TO
|
||||
PKGVERSION
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/configure 2013-08-02 16:25:24.981094415 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/configure 2013-08-02 16:25:27.343097567 +0200
|
||||
@@ -689,6 +689,11 @@ PKGVERSION
|
||||
HAVE_NATIVE_GCORE_TARGET
|
||||
TARGET_OBS
|
||||
subdirs
|
||||
+RPM_LIBS
|
||||
@ -724,7 +722,7 @@ Index: gdb-7.5.50.20130215/gdb/configure
|
||||
GDB_DATADIR
|
||||
DEBUGDIR
|
||||
MAKEINFO_EXTRA_FLAGS
|
||||
@@ -783,6 +788,7 @@ with_gdb_datadir
|
||||
@@ -789,6 +794,7 @@ with_gdb_datadir
|
||||
with_relocated_sources
|
||||
with_auto_load_dir
|
||||
with_auto_load_safe_path
|
||||
@ -732,7 +730,7 @@ Index: gdb-7.5.50.20130215/gdb/configure
|
||||
enable_targets
|
||||
enable_64_bit_bfd
|
||||
enable_gdbcli
|
||||
@@ -831,6 +837,11 @@ CPPFLAGS
|
||||
@@ -839,6 +845,11 @@ CPPFLAGS
|
||||
CPP
|
||||
MAKEINFO
|
||||
MAKEINFOFLAGS
|
||||
@ -744,7 +742,7 @@ Index: gdb-7.5.50.20130215/gdb/configure
|
||||
YACC
|
||||
YFLAGS
|
||||
XMKMF'
|
||||
@@ -1501,6 +1512,8 @@ Optional Packages:
|
||||
@@ -1509,6 +1520,8 @@ Optional Packages:
|
||||
[--with-auto-load-dir]
|
||||
--without-auto-load-safe-path
|
||||
do not restrict auto-loaded files locations
|
||||
@ -753,7 +751,7 @@ Index: gdb-7.5.50.20130215/gdb/configure
|
||||
--with-libunwind-ia64 use libunwind frame unwinding for ia64 targets
|
||||
--with-curses use the curses library instead of the termcap
|
||||
library
|
||||
@@ -1545,6 +1558,13 @@ Some influential environment variables:
|
||||
@@ -1556,6 +1569,13 @@ Some influential environment variables:
|
||||
MAKEINFO Parent configure detects if it is of sufficient version.
|
||||
MAKEINFOFLAGS
|
||||
Parameters for MAKEINFO.
|
||||
@ -767,7 +765,7 @@ Index: gdb-7.5.50.20130215/gdb/configure
|
||||
YACC The `Yet Another C Compiler' implementation to use. Defaults to
|
||||
the first program found out of: `bison -y', `byacc', `yacc'.
|
||||
YFLAGS The list of arguments that will be passed by default to $YACC.
|
||||
@@ -5030,6 +5050,491 @@ _ACEOF
|
||||
@@ -5039,6 +5059,491 @@ _ACEOF
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_auto_load_safe_path" >&5
|
||||
$as_echo "$with_auto_load_safe_path" >&6; }
|
||||
|
||||
@ -1259,11 +1257,11 @@ Index: gdb-7.5.50.20130215/gdb/configure
|
||||
|
||||
|
||||
subdirs="$subdirs testsuite"
|
||||
Index: gdb-7.5.50.20130215/gdb/configure.ac
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/configure.ac
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/configure.ac 2013-01-09 18:21:35.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/configure.ac 2013-02-15 22:35:59.423292895 +0100
|
||||
@@ -166,6 +166,199 @@ AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escap
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/configure.ac 2013-08-02 16:25:24.983094418 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/configure.ac 2013-08-02 16:25:27.344097568 +0200
|
||||
@@ -164,6 +164,199 @@ AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escap
|
||||
[Directories safe to hold auto-loaded files.])
|
||||
AC_MSG_RESULT([$with_auto_load_safe_path])
|
||||
|
||||
@ -1463,11 +1461,11 @@ Index: gdb-7.5.50.20130215/gdb/configure.ac
|
||||
AC_CONFIG_SUBDIRS(testsuite)
|
||||
|
||||
# Check whether to support alternative target configurations
|
||||
Index: gdb-7.5.50.20130215/gdb/corelow.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/corelow.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/corelow.c 2013-02-15 22:35:03.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/corelow.c 2013-02-15 22:35:59.423292895 +0100
|
||||
@@ -313,7 +313,7 @@ build_id_locate_exec (int from_tty)
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/corelow.c 2013-08-02 16:25:24.984094419 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/corelow.c 2013-08-02 16:25:27.344097568 +0200
|
||||
@@ -316,7 +316,7 @@ build_id_locate_exec (int from_tty)
|
||||
symfile_objfile->flags |= OBJF_BUILD_ID_CORE_LOADED;
|
||||
}
|
||||
else
|
||||
|
@ -1,11 +1,13 @@
|
||||
--- gdb-7.4.50.20120120/gdb/solib-svr4.c.orig 2012-03-17 10:23:11.000000000 +0100
|
||||
+++ gdb-7.4.50.20120120/gdb/solib-svr4.c 2012-03-17 10:36:22.265628529 +0100
|
||||
@@ -1228,14 +1228,27 @@ svr4_read_so_list (CORE_ADDR lm, struct
|
||||
Index: gdb-7.5.50.20130310/gdb/solib-svr4.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130310.orig/gdb/solib-svr4.c 2013-03-10 16:37:49.000000000 +0100
|
||||
+++ gdb-7.5.50.20130310/gdb/solib-svr4.c 2013-03-10 16:43:45.498585091 +0100
|
||||
@@ -1225,14 +1225,27 @@ svr4_read_so_list (CORE_ADDR lm, struct
|
||||
}
|
||||
|
||||
{
|
||||
- struct build_id *build_id;
|
||||
+ struct build_id *build_id = NULL;
|
||||
- struct elf_build_id *build_id;
|
||||
+ struct elf_build_id *build_id = NULL;
|
||||
|
||||
strncpy (new->so_original_name, buffer, SO_NAME_MAX_PATH_SIZE - 1);
|
||||
new->so_original_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0';
|
||||
@ -30,7 +32,7 @@
|
||||
if (build_id != NULL)
|
||||
{
|
||||
char *name, *build_id_filename;
|
||||
@@ -1250,23 +1263,7 @@ svr4_read_so_list (CORE_ADDR lm, struct
|
||||
@@ -1247,23 +1260,7 @@ svr4_read_so_list (CORE_ADDR lm, struct
|
||||
xfree (name);
|
||||
}
|
||||
else
|
||||
|
@ -1,18 +1,18 @@
|
||||
Index: gdb-7.5.50.20130215/gdb/corelow.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/corelow.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/corelow.c 2013-01-31 19:37:37.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/corelow.c 2013-02-15 22:35:03.278219844 +0100
|
||||
@@ -46,6 +46,9 @@
|
||||
#include "progspace.h"
|
||||
#include "objfiles.h"
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/corelow.c 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/corelow.c 2013-08-02 17:07:28.434753293 +0200
|
||||
@@ -48,6 +48,9 @@
|
||||
#include "gdb_bfd.h"
|
||||
#include "completer.h"
|
||||
#include "filestuff.h"
|
||||
+#include "auxv.h"
|
||||
+#include "elf/common.h"
|
||||
+#include "gdbcmd.h"
|
||||
|
||||
#ifndef O_LARGEFILE
|
||||
#define O_LARGEFILE 0
|
||||
@@ -271,6 +274,52 @@ add_to_thread_list (bfd *abfd, asection
|
||||
@@ -273,6 +276,53 @@ add_to_thread_list (bfd *abfd, asection
|
||||
inferior_ptid = ptid; /* Yes, make it current. */
|
||||
}
|
||||
|
||||
@ -22,7 +22,7 @@ Index: gdb-7.5.50.20130215/gdb/corelow.c
|
||||
+build_id_locate_exec (int from_tty)
|
||||
+{
|
||||
+ CORE_ADDR at_entry;
|
||||
+ struct build_id *build_id;
|
||||
+ struct elf_build_id *build_id;
|
||||
+ char *exec_filename, *debug_filename;
|
||||
+ char *build_id_filename;
|
||||
+ struct cleanup *back_to;
|
||||
@ -36,6 +36,7 @@ Index: gdb-7.5.50.20130215/gdb/corelow.c
|
||||
+ build_id = build_id_addr_get (at_entry);
|
||||
+ if (build_id == NULL)
|
||||
+ return;
|
||||
+ back_to = make_cleanup (xfree, build_id);
|
||||
+
|
||||
+ /* SYMFILE_OBJFILE should refer to the main executable (not only to its
|
||||
+ separate debug info file). gcc44+ keeps .eh_frame only in the main
|
||||
@ -44,7 +45,7 @@ Index: gdb-7.5.50.20130215/gdb/corelow.c
|
||||
+ directly to the separate debug info file. */
|
||||
+
|
||||
+ exec_filename = build_id_to_filename (build_id, &build_id_filename, 0);
|
||||
+ back_to = make_cleanup (xfree, build_id_filename);
|
||||
+ make_cleanup (xfree, build_id_filename);
|
||||
+
|
||||
+ if (exec_filename != NULL)
|
||||
+ {
|
||||
@ -65,7 +66,7 @@ Index: gdb-7.5.50.20130215/gdb/corelow.c
|
||||
/* This routine opens and sets up the core file bfd. */
|
||||
|
||||
static void
|
||||
@@ -409,6 +458,14 @@ core_open (char *filename, int from_tty)
|
||||
@@ -411,6 +461,14 @@ core_open (char *filename, int from_tty)
|
||||
switch_to_thread (thread->ptid);
|
||||
}
|
||||
|
||||
@ -80,10 +81,10 @@ Index: gdb-7.5.50.20130215/gdb/corelow.c
|
||||
post_create_inferior (&core_ops, from_tty);
|
||||
|
||||
/* Now go through the target stack looking for threads since there
|
||||
@@ -978,4 +1035,11 @@ _initialize_corelow (void)
|
||||
@@ -974,4 +1032,11 @@ _initialize_corelow (void)
|
||||
init_core_ops ();
|
||||
|
||||
add_target (&core_ops);
|
||||
add_target_with_completer (&core_ops, filename_completer);
|
||||
+
|
||||
+ add_setshow_boolean_cmd ("build-id-core-loads", class_files,
|
||||
+ &build_id_core_loads, _("\
|
||||
@ -92,11 +93,11 @@ Index: gdb-7.5.50.20130215/gdb/corelow.c
|
||||
+ NULL, NULL, NULL,
|
||||
+ &setlist, &showlist);
|
||||
}
|
||||
Index: gdb-7.5.50.20130215/gdb/doc/gdb.texinfo
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/doc/gdb.texinfo 2013-02-15 22:34:22.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/doc/gdb.texinfo 2013-02-15 22:35:03.287219863 +0100
|
||||
@@ -16662,6 +16662,27 @@ information files.
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/doc/gdb.texinfo 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo 2013-08-02 17:07:28.443753304 +0200
|
||||
@@ -17119,6 +17119,27 @@ information files.
|
||||
|
||||
@end table
|
||||
|
||||
@ -124,11 +125,11 @@ Index: gdb-7.5.50.20130215/gdb/doc/gdb.texinfo
|
||||
@cindex @code{.gnu_debuglink} sections
|
||||
@cindex debug link sections
|
||||
A debug link is a special section of the executable file named
|
||||
Index: gdb-7.5.50.20130215/gdb/solib-svr4.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/solib-svr4.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/solib-svr4.c 2013-01-31 14:52:52.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/solib-svr4.c 2013-02-15 22:35:03.287219863 +0100
|
||||
@@ -1224,9 +1224,52 @@ svr4_read_so_list (CORE_ADDR lm, struct
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/solib-svr4.c 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/solib-svr4.c 2013-08-02 17:07:28.444753305 +0200
|
||||
@@ -1365,9 +1365,52 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -136,7 +137,7 @@ Index: gdb-7.5.50.20130215/gdb/solib-svr4.c
|
||||
- new->so_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0';
|
||||
- strcpy (new->so_original_name, new->so_name);
|
||||
+ {
|
||||
+ struct build_id *build_id;
|
||||
+ struct elf_build_id *build_id;
|
||||
+
|
||||
+ strncpy (new->so_original_name, buffer, SO_NAME_MAX_PATH_SIZE - 1);
|
||||
+ new->so_original_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0';
|
||||
@ -184,10 +185,10 @@ Index: gdb-7.5.50.20130215/gdb/solib-svr4.c
|
||||
xfree (buffer);
|
||||
|
||||
/* If this entry has no name, or its name matches the name
|
||||
Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/elfread.c 2013-02-01 20:39:03.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/elfread.c 2013-02-15 22:35:36.826263354 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/elfread.c 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/elfread.c 2013-08-02 17:09:06.460881503 +0200
|
||||
@@ -45,6 +45,11 @@
|
||||
#include "regcache.h"
|
||||
#include "bcache.h"
|
||||
@ -200,10 +201,11 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
|
||||
extern void _initialize_elfread (void);
|
||||
|
||||
@@ -1074,16 +1079,65 @@ elf_gnu_ifunc_resolver_return_stop (stru
|
||||
@@ -1087,10 +1092,59 @@ elf_gnu_ifunc_resolver_return_stop (stru
|
||||
update_breakpoint_locations (b, sals, sals_end);
|
||||
}
|
||||
|
||||
-/* Locate NT_GNU_BUILD_ID from ABFD and return its content. */
|
||||
+#define BUILD_ID_VERBOSE_NONE 0
|
||||
+#define BUILD_ID_VERBOSE_FILENAMES 1
|
||||
+#define BUILD_ID_VERBOSE_BINARY_PARSE 2
|
||||
@ -216,18 +218,10 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+ value);
|
||||
+}
|
||||
+
|
||||
struct build_id
|
||||
{
|
||||
size_t size;
|
||||
gdb_byte data[1];
|
||||
};
|
||||
|
||||
-/* Locate NT_GNU_BUILD_ID from ABFD and return its content. */
|
||||
+/* Locate NT_GNU_BUILD_ID and return its matching debug filename.
|
||||
+ FIXME: NOTE decoding should be unified with the BFD core notes decoding. */
|
||||
|
||||
static struct build_id *
|
||||
-build_id_bfd_get (bfd *abfd)
|
||||
+
|
||||
+static struct elf_build_id *
|
||||
+build_id_buf_get (bfd *templ, gdb_byte *buf, bfd_size_type size)
|
||||
+{
|
||||
+ bfd_byte *p;
|
||||
@ -239,7 +233,7 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+ Elf_External_Note *xnp = (Elf_External_Note *) p;
|
||||
+ size_t namesz = H_GET_32 (templ, xnp->namesz);
|
||||
+ size_t descsz = H_GET_32 (templ, xnp->descsz);
|
||||
+ bfd_byte *descdata = xnp->name + BFD_ALIGN (namesz, 4);
|
||||
+ bfd_byte *descdata = (gdb_byte *) xnp->name + BFD_ALIGN (namesz, 4);
|
||||
+
|
||||
+ if (H_GET_32 (templ, xnp->type) == NT_GNU_BUILD_ID
|
||||
+ && namesz == sizeof "GNU"
|
||||
@ -247,7 +241,7 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+ {
|
||||
+ size_t size = descsz;
|
||||
+ gdb_byte *data = (void *) descdata;
|
||||
+ struct build_id *retval;
|
||||
+ struct elf_build_id *retval;
|
||||
+
|
||||
+ retval = xmalloc (sizeof *retval - 1 + size);
|
||||
+ retval->size = size;
|
||||
@ -262,26 +256,27 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+
|
||||
+/* Separate debuginfo files have corrupted PHDR but SHDR is correct there.
|
||||
+ Locate NT_GNU_BUILD_ID from ABFD and return its content. */
|
||||
+
|
||||
+static struct build_id *
|
||||
|
||||
static const struct elf_build_id *
|
||||
-build_id_bfd_get (bfd *abfd)
|
||||
+build_id_bfd_shdr_get (bfd *abfd)
|
||||
{
|
||||
struct build_id *retval;
|
||||
|
||||
@@ -1099,6 +1153,348 @@ build_id_bfd_get (bfd *abfd)
|
||||
return retval;
|
||||
if (!bfd_check_format (abfd, bfd_object)
|
||||
|| bfd_get_flavour (abfd) != bfd_target_elf_flavour
|
||||
@@ -1100,6 +1154,348 @@ build_id_bfd_get (bfd *abfd)
|
||||
return elf_tdata (abfd)->build_id;
|
||||
}
|
||||
|
||||
+/* Core files may have missing (corrupt) SHDR but PDHR is correct there.
|
||||
+ bfd_elf_bfd_from_remote_memory () has too much overhead by
|
||||
+ allocating/reading all the available ELF PT_LOADs. */
|
||||
+
|
||||
+static struct build_id *
|
||||
+static struct elf_build_id *
|
||||
+build_id_phdr_get (bfd *templ, bfd_vma loadbase, unsigned e_phnum,
|
||||
+ Elf_Internal_Phdr *i_phdr)
|
||||
+{
|
||||
+ int i;
|
||||
+ struct build_id *retval = NULL;
|
||||
+ struct elf_build_id *retval = NULL;
|
||||
+
|
||||
+ for (i = 0; i < e_phnum; i++)
|
||||
+ if (i_phdr[i].p_type == PT_NOTE && i_phdr[i].p_filesz > 0)
|
||||
@ -568,11 +563,11 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+struct build_id *
|
||||
+struct elf_build_id *
|
||||
+build_id_addr_get (CORE_ADDR addr)
|
||||
+{
|
||||
+ struct build_id_addr_sect *candidate;
|
||||
+ struct build_id *retval = NULL;
|
||||
+ struct elf_build_id *retval = NULL;
|
||||
+ Elf_Internal_Phdr *i_phdr = NULL;
|
||||
+ bfd_vma loadbase = 0;
|
||||
+ unsigned e_phnum = 0;
|
||||
@ -617,7 +612,7 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
/* Return if FILENAME has NT_GNU_BUILD_ID matching the CHECK value. */
|
||||
|
||||
static int
|
||||
@@ -1113,7 +1509,7 @@ build_id_verify (const char *filename, s
|
||||
@@ -1114,7 +1510,7 @@ build_id_verify (const char *filename, c
|
||||
if (abfd == NULL)
|
||||
return 0;
|
||||
|
||||
@ -626,14 +621,48 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
|
||||
if (found == NULL)
|
||||
warning (_("File \"%s\" has no build-id, file skipped"), filename);
|
||||
@@ -1131,17 +1527,18 @@ build_id_verify (const char *filename, s
|
||||
return retval;
|
||||
@@ -1131,16 +1527,53 @@ build_id_verify (const char *filename, c
|
||||
}
|
||||
|
||||
-static char *
|
||||
-build_id_to_debug_filename (struct build_id *build_id)
|
||||
static char *
|
||||
-build_id_to_debug_filename (const struct elf_build_id *build_id)
|
||||
+link_resolve (const char *symlink, int level)
|
||||
+{
|
||||
+ char buf[PATH_MAX + 1], *target, *retval;
|
||||
+ ssize_t got;
|
||||
+
|
||||
+ if (level > 10)
|
||||
+ return xstrdup (symlink);
|
||||
+
|
||||
+ got = readlink (symlink, buf, sizeof (buf));
|
||||
+ if (got < 0 || got >= sizeof (buf))
|
||||
+ return xstrdup (symlink);
|
||||
+ buf[got] = '\0';
|
||||
+
|
||||
+ if (IS_ABSOLUTE_PATH (buf))
|
||||
+ target = xstrdup (buf);
|
||||
+ else
|
||||
+ {
|
||||
+ char *dir = ldirname (symlink);
|
||||
+
|
||||
+ if (dir == NULL)
|
||||
+ return xstrdup (symlink);
|
||||
+ target = xstrprintf ("%s"
|
||||
+#ifndef HAVE_DOS_BASED_FILE_SYSTEM
|
||||
+ "/"
|
||||
+#else /* HAVE_DOS_BASED_FILE_SYSTEM */
|
||||
+ "\\"
|
||||
+#endif /* HAVE_DOS_BASED_FILE_SYSTEM */
|
||||
+ "%s", dir, buf);
|
||||
+ }
|
||||
+
|
||||
+ retval = link_resolve (target, level + 1);
|
||||
+ xfree (target);
|
||||
+ return retval;
|
||||
+}
|
||||
+
|
||||
+char *
|
||||
+build_id_to_filename (struct build_id *build_id, char **link_return,
|
||||
+build_id_to_filename (const struct elf_build_id *build_id, char **link_return,
|
||||
+ int add_debug_suffix)
|
||||
{
|
||||
char *link, *debugdir, *retval = NULL;
|
||||
@ -649,16 +678,19 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
|
||||
/* Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will
|
||||
cause "/.build-id/..." lookups. */
|
||||
@@ -1154,6 +1551,8 @@ build_id_to_debug_filename (struct build
|
||||
@@ -1153,7 +1586,10 @@ build_id_to_debug_filename (const struct
|
||||
size_t debugdir_len = strlen (debugdir);
|
||||
gdb_byte *data = build_id->data;
|
||||
const gdb_byte *data = build_id->data;
|
||||
size_t size = build_id->size;
|
||||
- char *s;
|
||||
+ unsigned seqno;
|
||||
+ struct stat statbuf_trash;
|
||||
char *s;
|
||||
+ /* Initialize it just to avoid a GCC false warning. */
|
||||
+ char *s, *link0 = NULL, *link0_resolved;
|
||||
|
||||
memcpy (link, debugdir, debugdir_len);
|
||||
@@ -1168,37 +1567,240 @@ build_id_to_debug_filename (struct build
|
||||
s = &link[debugdir_len];
|
||||
@@ -1167,37 +1603,256 @@ build_id_to_debug_filename (const struct
|
||||
*s++ = '/';
|
||||
while (size-- > 0)
|
||||
s += sprintf (s, "%02x", (unsigned) *data++);
|
||||
@ -686,8 +718,14 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+ strcpy (s2, ".debug");
|
||||
+ else
|
||||
+ *s2 = 0;
|
||||
|
||||
- if (retval != NULL && !build_id_verify (retval, build_id))
|
||||
+
|
||||
+ if (!seqno)
|
||||
+ {
|
||||
+ /* If none of the real files is found report as missing file
|
||||
+ always the non-.%u-suffixed file. */
|
||||
+ link0 = xstrdup (link);
|
||||
+ }
|
||||
+
|
||||
+ /* `access' automatically dereferences LINK. */
|
||||
+ if (lstat (link, &statbuf_trash) != 0)
|
||||
+ {
|
||||
@ -708,42 +746,52 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+ }
|
||||
+
|
||||
+ if (retval != NULL)
|
||||
+ {
|
||||
+ /* LINK_ALL is not used below in this non-NULL RETVAL case. */
|
||||
+ xfree (link0);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ /* If the symlink has target request to install the target.
|
||||
+ BASE-debuginfo.rpm contains the symlink but BASE.rpm may be missing.
|
||||
+ https://bugzilla.redhat.com/show_bug.cgi?id=981154 */
|
||||
+ link0_resolved = link_resolve (link0, 0);
|
||||
+ xfree (link0);
|
||||
|
||||
- if (retval != NULL && !build_id_verify (retval, build_id))
|
||||
+ if (link_all == NULL)
|
||||
+ link_all = xstrdup (link0_resolved);
|
||||
+ else
|
||||
{
|
||||
- xfree (retval);
|
||||
- retval = NULL;
|
||||
+ /* LINK_ALL is not used below in this non-NULL RETVAL case. */
|
||||
+ break;
|
||||
+ size_t len_orig = strlen (link_all);
|
||||
+
|
||||
+ link_all = xrealloc (link_all,
|
||||
+ len_orig + 1 + strlen (link0_resolved) + 1);
|
||||
+
|
||||
+ /* Use whitespace instead of DIRNAME_SEPARATOR to be compatible with
|
||||
+ its possible use as an argument for installation command. */
|
||||
+ link_all[len_orig] = ' ';
|
||||
+
|
||||
+ strcpy (&link_all[len_orig + 1], link0_resolved);
|
||||
}
|
||||
|
||||
+ if (link_all == NULL)
|
||||
+ link_all = xstrdup (link);
|
||||
+ else
|
||||
+ {
|
||||
+ size_t len_orig = strlen (link_all);
|
||||
+
|
||||
+ link_all = xrealloc (link_all, len_orig + 1 + strlen (link) + 1);
|
||||
+
|
||||
+ /* Use whitespace instead of DIRNAME_SEPARATOR to be compatible with
|
||||
+ its possible use as an argument for installation command. */
|
||||
+ link_all[len_orig] = ' ';
|
||||
+
|
||||
+ strcpy (&link_all[len_orig + 1], link);
|
||||
+ }
|
||||
+ xfree (link0_resolved);
|
||||
+ }
|
||||
+
|
||||
|
||||
+ if (link_return != NULL)
|
||||
+ {
|
||||
if (retval != NULL)
|
||||
- break;
|
||||
+ {
|
||||
+ *link_return = link;
|
||||
+ link = NULL;
|
||||
+ }
|
||||
+ {
|
||||
+ *link_return = link;
|
||||
+ link = NULL;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ *link_return = link_all;
|
||||
+ link_all = NULL;
|
||||
+ }
|
||||
+ {
|
||||
+ *link_return = link_all;
|
||||
+ link_all = NULL;
|
||||
+ }
|
||||
}
|
||||
+ xfree (link);
|
||||
+ xfree (link_all);
|
||||
@ -893,7 +941,7 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+find_separate_debug_file_by_buildid (struct objfile *objfile,
|
||||
+ char **build_id_filename_return)
|
||||
{
|
||||
struct build_id *build_id;
|
||||
const struct elf_build_id *build_id;
|
||||
|
||||
- build_id = build_id_bfd_get (objfile->obfd);
|
||||
+ if (build_id_filename_return)
|
||||
@ -907,10 +955,10 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
- build_id_name = build_id_to_debug_filename (build_id);
|
||||
+ build_id_name = build_id_to_filename (build_id, build_id_filename_return,
|
||||
+ 1);
|
||||
xfree (build_id);
|
||||
/* Prevent looping on a stripped .debug file. */
|
||||
if (build_id_name != NULL
|
||||
@@ -1209,7 +1811,7 @@ find_separate_debug_file_by_buildid (str
|
||||
&& filename_cmp (build_id_name, objfile->name) == 0)
|
||||
@@ -1207,7 +1862,7 @@ find_separate_debug_file_by_buildid (str
|
||||
xfree (build_id_name);
|
||||
}
|
||||
else if (build_id_name != NULL)
|
||||
@ -919,7 +967,7 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
@@ -1444,9 +2046,10 @@ elf_symfile_read (struct objfile *objfil
|
||||
@@ -1445,9 +2100,10 @@ elf_symfile_read (struct objfile *objfil
|
||||
&& objfile->separate_debug_objfile == NULL
|
||||
&& objfile->separate_debug_objfile_backlink == NULL)
|
||||
{
|
||||
@ -932,7 +980,7 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
|
||||
if (debugfile == NULL)
|
||||
debugfile = find_separate_debug_file_by_debuglink (objfile);
|
||||
@@ -1460,6 +2063,12 @@ elf_symfile_read (struct objfile *objfil
|
||||
@@ -1461,6 +2117,12 @@ elf_symfile_read (struct objfile *objfil
|
||||
symbol_file_add_separate (abfd, symfile_flags, objfile);
|
||||
do_cleanups (cleanup);
|
||||
}
|
||||
@ -943,9 +991,9 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+
|
||||
+ xfree (build_id_filename);
|
||||
}
|
||||
}
|
||||
|
||||
if (symtab_create_debug)
|
||||
@@ -1782,4 +2391,16 @@ _initialize_elfread (void)
|
||||
@@ -1790,4 +2452,16 @@ _initialize_elfread (void)
|
||||
|
||||
elf_objfile_gnu_ifunc_cache_data = register_objfile_data ();
|
||||
gnu_ifunc_fns_p = &elf_gnu_ifunc_fns;
|
||||
@ -962,28 +1010,27 @@ Index: gdb-7.5.50.20130215/gdb/elfread.c
|
||||
+
|
||||
+ observer_attach_executable_changed (debug_print_executable_changed);
|
||||
}
|
||||
Index: gdb-7.5.50.20130215/gdb/symfile.h
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/symfile.h
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/symfile.h 2013-02-03 17:20:18.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/symfile.h 2013-02-15 22:35:03.288219867 +0100
|
||||
@@ -593,6 +593,13 @@ void free_symfile_segment_data (struct s
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/symfile.h 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/symfile.h 2013-08-02 17:07:28.446753308 +0200
|
||||
@@ -597,6 +597,12 @@ void free_symfile_segment_data (struct s
|
||||
|
||||
extern struct cleanup *increment_reading_symtab (void);
|
||||
|
||||
+/* build-id support. */
|
||||
+struct build_id;
|
||||
+extern struct build_id *build_id_addr_get (CORE_ADDR addr);
|
||||
+extern char *build_id_to_filename (struct build_id *build_id,
|
||||
+extern struct elf_build_id *build_id_addr_get (CORE_ADDR addr);
|
||||
+extern char *build_id_to_filename (const struct elf_build_id *build_id,
|
||||
+ char **link_return, int add_debug_suffix);
|
||||
+extern void debug_print_missing (const char *binary, const char *debug);
|
||||
+
|
||||
/* From dwarf2read.c */
|
||||
|
||||
/* Names for a dwarf2 debugging section. The field NORMAL is the normal
|
||||
Index: gdb-7.5.50.20130215/gdb/testsuite/lib/gdb.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/gdb.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/testsuite/lib/gdb.exp 2013-02-15 22:31:37.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/testsuite/lib/gdb.exp 2013-02-15 22:35:03.289219870 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/lib/gdb.exp 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/gdb.exp 2013-08-02 17:07:28.446753308 +0200
|
||||
@@ -1482,6 +1482,16 @@ proc default_gdb_start { } {
|
||||
warning "Couldn't set the width to 0."
|
||||
}
|
||||
@ -998,13 +1045,13 @@ Index: gdb-7.5.50.20130215/gdb/testsuite/lib/gdb.exp
|
||||
+ warning "Could not disable the missing debug infos warnings.."
|
||||
+ }
|
||||
+ }
|
||||
return 0;
|
||||
return 0
|
||||
}
|
||||
|
||||
Index: gdb-7.5.50.20130215/gdb/testsuite/lib/mi-support.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/mi-support.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/testsuite/lib/mi-support.exp 2013-01-22 00:57:59.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/testsuite/lib/mi-support.exp 2013-02-15 22:35:03.289219870 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/lib/mi-support.exp 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/mi-support.exp 2013-08-02 17:07:28.447753310 +0200
|
||||
@@ -212,6 +212,16 @@ proc default_mi_gdb_start { args } {
|
||||
warning "Couldn't set the width to 0."
|
||||
}
|
||||
@ -1022,11 +1069,11 @@ Index: gdb-7.5.50.20130215/gdb/testsuite/lib/mi-support.exp
|
||||
# If allowing the inferior to have its own PTY then assign the inferior
|
||||
# its own terminal device here.
|
||||
if { $separate_inferior_pty } {
|
||||
Index: gdb-7.5.50.20130215/gdb/objfiles.h
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/objfiles.h
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/objfiles.h 2013-01-01 07:32:47.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/objfiles.h 2013-02-15 22:35:03.290219872 +0100
|
||||
@@ -432,6 +432,10 @@ struct objfile
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/objfiles.h 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/objfiles.h 2013-08-02 17:07:28.447753310 +0200
|
||||
@@ -429,6 +429,10 @@ struct objfile
|
||||
|
||||
#define OBJF_MAINLINE (1 << 5)
|
||||
|
||||
@ -1037,11 +1084,11 @@ Index: gdb-7.5.50.20130215/gdb/objfiles.h
|
||||
/* The object file that contains the runtime common minimal symbols
|
||||
for SunOS4. Note that this objfile has no associated BFD. */
|
||||
|
||||
Index: gdb-7.5.50.20130215/gdb/testsuite/gdb.base/corefile.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/corefile.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/testsuite/gdb.base/corefile.exp 2013-01-01 07:33:25.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/testsuite/gdb.base/corefile.exp 2013-02-15 22:35:03.290219872 +0100
|
||||
@@ -256,3 +256,33 @@ if ![is_remote target] {
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/corefile.exp 2013-08-02 17:07:17.886739513 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/corefile.exp 2013-08-02 17:07:28.447753310 +0200
|
||||
@@ -255,3 +255,33 @@ if ![is_remote target] {
|
||||
|
||||
gdb_exit
|
||||
}
|
||||
|
@ -1,23 +1,23 @@
|
||||
Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.base/annota1.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/annota1.exp
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120602.orig/gdb/testsuite/gdb.base/annota1.exp 2012-03-16 17:47:33.000000000 +0100
|
||||
+++ gdb-7.4.50.20120602/gdb/testsuite/gdb.base/annota1.exp 2012-06-02 18:27:46.623210711 +0200
|
||||
@@ -45,6 +45,8 @@ gdb_start
|
||||
gdb_reinitialize_dir $srcdir/$subdir
|
||||
gdb_load ${binfile}
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/annota1.exp 2013-08-02 16:23:26.559936258 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/annota1.exp 2013-08-02 16:23:56.590976418 +0200
|
||||
@@ -41,6 +41,8 @@ if { [gdb_compile "${srcdir}/${subdir}/
|
||||
|
||||
clean_restart ${binfile}
|
||||
|
||||
+gdb_test "set breakpoint pending off" "" "Avoid lockup on nonexisting functions"
|
||||
+
|
||||
# The commands we test here produce many lines of output; disable "press
|
||||
# <return> to continue" prompts.
|
||||
gdb_test_no_output "set height 0"
|
||||
Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.base/annota3.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/annota3.exp
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120602.orig/gdb/testsuite/gdb.base/annota3.exp 2012-02-28 23:40:48.000000000 +0100
|
||||
+++ gdb-7.4.50.20120602/gdb/testsuite/gdb.base/annota3.exp 2012-06-02 18:28:00.375206457 +0200
|
||||
@@ -45,6 +45,8 @@ gdb_start
|
||||
gdb_reinitialize_dir $srcdir/$subdir
|
||||
gdb_load ${binfile}
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/annota3.exp 2013-08-02 16:23:26.560936259 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/annota3.exp 2013-08-02 16:24:11.654996267 +0200
|
||||
@@ -40,6 +40,8 @@ if { [gdb_compile "${srcdir}/${subdir}/
|
||||
|
||||
clean_restart ${binfile}
|
||||
|
||||
+gdb_test "set breakpoint pending off" "" "Avoid lockup on nonexisting functions"
|
||||
+
|
||||
|
@ -20,10 +20,10 @@ random FAIL: gdb.base/auxv.exp: matching auxv data from live and gcore
|
||||
gdb-6.8.50.20090209/gdb/testsuite/gdb.base/annota1.exp:
|
||||
frames-invalid can happen asynchronously.
|
||||
|
||||
Index: gdb-7.4.50.20120103/gdb/testsuite/gdb.base/fileio.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/fileio.c
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120103.orig/gdb/testsuite/gdb.base/fileio.c 2009-10-01 17:39:13.000000000 +0200
|
||||
+++ gdb-7.4.50.20120103/gdb/testsuite/gdb.base/fileio.c 2012-01-03 15:21:28.122729249 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/fileio.c 2013-08-02 16:25:49.466127074 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/fileio.c 2013-08-02 16:26:11.724156750 +0200
|
||||
@@ -58,6 +58,8 @@ system (const char * string);
|
||||
1) Invalid string/command. - returns 127. */
|
||||
static const char *strerrno (int err);
|
||||
@ -71,12 +71,12 @@ Index: gdb-7.4.50.20120103/gdb/testsuite/gdb.base/fileio.c
|
||||
/* Don't change the order of the calls. They partly depend on each other */
|
||||
test_open ();
|
||||
test_write ();
|
||||
Index: gdb-7.4.50.20120103/gdb/testsuite/gdb.base/fileio.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/fileio.exp
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120103.orig/gdb/testsuite/gdb.base/fileio.exp 2011-12-26 12:24:55.000000000 +0100
|
||||
+++ gdb-7.4.50.20120103/gdb/testsuite/gdb.base/fileio.exp 2012-01-03 15:22:02.716601956 +0100
|
||||
@@ -42,8 +42,8 @@ if [get_compiler_info ${binfile}] {
|
||||
return -1;
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/fileio.exp 2013-08-02 16:25:49.467127075 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/fileio.exp 2013-08-02 16:27:10.142234618 +0200
|
||||
@@ -35,8 +35,8 @@ if [get_compiler_info] {
|
||||
return -1
|
||||
}
|
||||
|
||||
-remote_exec build {sh -xc test\ -r\ dir2.fileio.test\ &&\ chmod\ -f\ +w\ dir2.fileio.test}
|
||||
@ -86,7 +86,7 @@ Index: gdb-7.4.50.20120103/gdb/testsuite/gdb.base/fileio.exp
|
||||
|
||||
set oldtimeout $timeout
|
||||
set timeout [expr "$timeout + 60"]
|
||||
@@ -85,7 +85,7 @@ gdb_test continue \
|
||||
@@ -78,7 +78,7 @@ gdb_test continue \
|
||||
|
||||
gdb_test "continue" ".*" ""
|
||||
|
||||
@ -95,7 +95,7 @@ Index: gdb-7.4.50.20120103/gdb/testsuite/gdb.base/fileio.exp
|
||||
|
||||
gdb_test continue \
|
||||
"Continuing\\..*open 5:.*EACCES$stop_msg" \
|
||||
@@ -251,8 +251,8 @@ gdb_exit
|
||||
@@ -244,8 +244,8 @@ gdb_exit
|
||||
# Wait till GDB really exits.
|
||||
sleep 1
|
||||
|
||||
|
@ -5,11 +5,11 @@ Some of the threads may not be properly PTRACE_DETACHed which hurts if they
|
||||
should have been detached with SIGSTOP (as they are accidentally left running
|
||||
on the debugger termination).
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/defs.h
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/defs.h
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/defs.h 2013-01-01 07:32:41.000000000 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/defs.h 2013-01-21 16:40:29.889256633 +0100
|
||||
@@ -176,6 +176,7 @@ extern int check_quit_flag (void);
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/defs.h 2013-08-02 16:58:31.453016573 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/defs.h 2013-08-02 16:58:41.221030412 +0200
|
||||
@@ -177,6 +177,7 @@ extern int check_quit_flag (void);
|
||||
/* Set the quit flag. */
|
||||
extern void set_quit_flag (void);
|
||||
|
||||
@ -17,26 +17,26 @@ Index: gdb-7.5.50.20130118/gdb/defs.h
|
||||
extern int immediate_quit;
|
||||
|
||||
extern void quit (void);
|
||||
Index: gdb-7.5.50.20130118/gdb/top.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/top.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/top.c 2013-01-21 14:56:12.000000000 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/top.c 2013-01-21 14:56:16.385710056 +0100
|
||||
@@ -1329,7 +1329,9 @@ quit_force (char *args, int from_tty)
|
||||
qt.args = args;
|
||||
qt.from_tty = from_tty;
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/top.c 2013-08-02 16:58:41.222030414 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/top.c 2013-08-02 16:59:06.321066228 +0200
|
||||
@@ -1415,7 +1415,9 @@ quit_force (char *args, int from_tty)
|
||||
if (ex.reason < 0) \
|
||||
exception_print (gdb_stderr, ex)
|
||||
|
||||
- /* We want to handle any quit errors and exit regardless. */
|
||||
+ /* We want to handle any quit errors and exit regardless but we should never
|
||||
+ get user-interrupted to properly detach the inferior. */
|
||||
+ quit_flag_cleanup = 1;
|
||||
catch_errors (quit_target, &qt,
|
||||
"Quitting: ", RETURN_MASK_ALL);
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/utils.c
|
||||
/* Get out of tfind mode, and kill or detach all inferiors. */
|
||||
DO_TRY
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/utils.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/utils.c 2013-01-21 14:56:12.000000000 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/utils.c 2013-01-21 16:41:02.225233493 +0100
|
||||
@@ -141,6 +141,11 @@ int quit_flag;
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/utils.c 2013-08-02 16:58:31.455016575 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/utils.c 2013-08-02 16:58:41.223030415 +0200
|
||||
@@ -136,6 +136,11 @@ int quit_flag;
|
||||
|
||||
int immediate_quit;
|
||||
|
||||
@ -48,7 +48,7 @@ Index: gdb-7.5.50.20130118/gdb/utils.c
|
||||
#ifndef HAVE_PYTHON
|
||||
|
||||
/* Clear the quit flag. */
|
||||
@@ -164,6 +169,9 @@ set_quit_flag (void)
|
||||
@@ -159,6 +164,9 @@ set_quit_flag (void)
|
||||
int
|
||||
check_quit_flag (void)
|
||||
{
|
||||
@ -58,11 +58,11 @@ Index: gdb-7.5.50.20130118/gdb/utils.c
|
||||
/* This is written in a particular way to avoid races. */
|
||||
if (quit_flag)
|
||||
{
|
||||
Index: gdb-7.5.50.20130118/gdb/python/python.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/python/python.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/python/python.c 2013-01-21 16:39:03.000000000 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/python/python.c 2013-01-21 16:39:30.698299142 +0100
|
||||
@@ -181,6 +181,9 @@ set_quit_flag (void)
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/python/python.c 2013-08-02 16:58:31.456016577 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/python/python.c 2013-08-02 16:58:41.224030416 +0200
|
||||
@@ -191,6 +191,9 @@ set_quit_flag (void)
|
||||
int
|
||||
check_quit_flag (void)
|
||||
{
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f1d77fa5fdc14f4f933010dfadfb4895d84a92dd038a1c1425cf9d75e147afe9
|
||||
size 24229281
|
3
gdb-7.6.50.20130731-cvs.tar.bz2
Normal file
3
gdb-7.6.50.20130731-cvs.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5ba2ee6049f792f7df7d8148f03bbb8126607ef40f59a6c5d65a08c744415d40
|
||||
size 24639930
|
17
gdb-aarch64-hw-break.patch
Normal file
17
gdb-aarch64-hw-break.patch
Normal file
@ -0,0 +1,17 @@
|
||||
http://permalink.gmane.org/gmane.comp.gdb.patches/88728
|
||||
|
||||
Index: gdb/aarch64-linux-nat.c
|
||||
===================================================================
|
||||
RCS file: /cvs/src/src/gdb/aarch64-linux-nat.c,v
|
||||
retrieving revision 1.4
|
||||
diff -u -p -r1.4 aarch64-linux-nat.c
|
||||
--- gdb/aarch64-linux-nat.c 14 Feb 2013 13:50:30 -0000 1.4
|
||||
+++ gdb/aarch64-linux-nat.c 27 Jul 2013 22:42:18 -0000
|
||||
@@ -312,6 +312,7 @@ aarch64_linux_set_debug_regs (const stru
|
||||
const CORE_ADDR *addr;
|
||||
const unsigned int *ctrl;
|
||||
|
||||
+ memset (®s, 0, sizeof (regs));
|
||||
iov.iov_base = ®s;
|
||||
iov.iov_len = sizeof (regs);
|
||||
count = watchpoint ? aarch64_num_wp_regs : aarch64_num_bp_regs;
|
@ -1,8 +1,8 @@
|
||||
Index: gdb-7.5.50.20130215/gdb/breakpoint.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/breakpoint.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/breakpoint.c 2013-02-15 22:31:37.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/breakpoint.c 2013-02-15 22:37:08.216381988 +0100
|
||||
@@ -16020,6 +16020,50 @@ initialize_breakpoint_ops (void)
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/breakpoint.c 2013-08-02 16:29:16.065402116 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/breakpoint.c 2013-08-02 16:29:17.073403456 +0200
|
||||
@@ -15963,6 +15963,50 @@ initialize_breakpoint_ops (void)
|
||||
static struct cmd_list_element *enablebreaklist = NULL;
|
||||
|
||||
void
|
||||
@ -53,23 +53,23 @@ Index: gdb-7.5.50.20130215/gdb/breakpoint.c
|
||||
_initialize_breakpoint (void)
|
||||
{
|
||||
struct cmd_list_element *c;
|
||||
Index: gdb-7.5.50.20130215/gdb/breakpoint.h
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/breakpoint.h
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/breakpoint.h 2013-02-03 16:57:06.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/breakpoint.h 2013-02-15 22:37:19.025395693 +0100
|
||||
@@ -1556,4 +1556,7 @@ extern void handle_solib_event (void);
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/breakpoint.h 2013-08-02 16:29:17.074403457 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/breakpoint.h 2013-08-02 16:29:30.221420896 +0200
|
||||
@@ -1555,4 +1555,7 @@ extern void breakpoint_free_objfile (str
|
||||
|
||||
extern void breakpoint_free_objfile (struct objfile *objfile);
|
||||
extern char *ep_parse_optional_if_clause (char **arg);
|
||||
|
||||
+extern void breakpoints_relocate (struct objfile *objfile,
|
||||
+ struct section_offsets *delta);
|
||||
+
|
||||
#endif /* !defined (BREAKPOINT_H) */
|
||||
Index: gdb-7.5.50.20130215/gdb/objfiles.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/objfiles.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/objfiles.c 2013-02-03 16:57:07.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/objfiles.c 2013-02-15 22:37:08.217381990 +0100
|
||||
@@ -831,6 +831,11 @@ objfile_relocate1 (struct objfile *objfi
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/objfiles.c 2013-08-02 16:29:16.068402120 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/objfiles.c 2013-08-02 16:29:17.075403458 +0200
|
||||
@@ -851,6 +851,11 @@ objfile_relocate1 (struct objfile *objfi
|
||||
objfile->sf->sym_probe_fns->sym_relocate_probe (objfile,
|
||||
new_offsets, delta);
|
||||
|
||||
|
1305
gdb-archer.patch
1305
gdb-archer.patch
File diff suppressed because it is too large
Load Diff
@ -37,10 +37,10 @@ gdb/gdbserver/
|
||||
(linux_create_inferior, linux_tracefork_child): Call it instead of
|
||||
direct ptrace.
|
||||
|
||||
Index: gdb-7.5.50.20130215/gdb/common/linux-ptrace.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/common/linux-ptrace.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/common/linux-ptrace.c 2013-01-08 20:38:51.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/common/linux-ptrace.c 2013-02-15 22:38:05.782456279 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/common/linux-ptrace.c 2013-08-02 16:33:52.767872412 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/common/linux-ptrace.c 2013-08-02 16:34:16.122910934 +0200
|
||||
@@ -29,6 +29,10 @@
|
||||
#include "gdb_assert.h"
|
||||
#include "gdb_wait.h"
|
||||
@ -61,7 +61,7 @@ Index: gdb-7.5.50.20130215/gdb/common/linux-ptrace.c
|
||||
}
|
||||
|
||||
#if defined __i386__ || defined __x86_64__
|
||||
@@ -243,3 +249,19 @@ linux_ptrace_init_warnings (void)
|
||||
@@ -236,3 +242,19 @@ linux_ptrace_init_warnings (void)
|
||||
|
||||
linux_ptrace_test_ret_to_nx ();
|
||||
}
|
||||
@ -81,10 +81,10 @@ Index: gdb-7.5.50.20130215/gdb/common/linux-ptrace.c
|
||||
+ "(gdb) shell sudo setsebool deny_ptrace=0"));
|
||||
+#endif /* HAVE_LIBSELINUX */
|
||||
+}
|
||||
Index: gdb-7.5.50.20130215/gdb/common/linux-ptrace.h
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/common/linux-ptrace.h
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/common/linux-ptrace.h 2013-01-01 07:32:54.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/common/linux-ptrace.h 2013-02-15 22:38:05.782456279 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/common/linux-ptrace.h 2013-08-02 16:33:52.768872414 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/common/linux-ptrace.h 2013-08-02 16:34:16.122910934 +0200
|
||||
@@ -69,5 +69,6 @@ struct buffer;
|
||||
|
||||
extern void linux_ptrace_attach_warnings (pid_t pid, struct buffer *buffer);
|
||||
@ -92,13 +92,13 @@ Index: gdb-7.5.50.20130215/gdb/common/linux-ptrace.h
|
||||
+extern void linux_ptrace_create_warnings (struct buffer *buffer);
|
||||
|
||||
#endif /* COMMON_LINUX_PTRACE_H */
|
||||
Index: gdb-7.5.50.20130215/gdb/configure.ac
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/configure.ac
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/configure.ac 2013-02-15 22:37:57.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/configure.ac 2013-02-15 22:38:05.783456281 +0100
|
||||
@@ -2068,6 +2068,10 @@ then
|
||||
[Define if you support the personality syscall.])
|
||||
fi
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/configure.ac 2013-08-02 16:34:16.123910936 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/configure.ac 2013-08-02 16:34:46.519960063 +0200
|
||||
@@ -2071,6 +2071,10 @@ case $host_os in
|
||||
esac
|
||||
AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
|
||||
|
||||
+dnl Check security_get_boolean_active availability.
|
||||
+AC_CHECK_HEADERS(selinux/selinux.h)
|
||||
@ -107,11 +107,11 @@ Index: gdb-7.5.50.20130215/gdb/configure.ac
|
||||
dnl Handle optional features that can be enabled.
|
||||
|
||||
# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
|
||||
Index: gdb-7.5.50.20130215/gdb/gdbserver/configure.ac
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/gdbserver/configure.ac
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/gdbserver/configure.ac 2013-01-01 07:33:00.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/gdbserver/configure.ac 2013-02-15 22:38:05.783456281 +0100
|
||||
@@ -451,6 +451,10 @@ if $want_ipa ; then
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/gdbserver/configure.ac 2013-08-02 16:34:16.124910938 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/gdbserver/configure.ac 2013-08-02 16:35:06.634991892 +0200
|
||||
@@ -471,6 +471,10 @@ if $want_ipa ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -121,12 +121,12 @@ Index: gdb-7.5.50.20130215/gdb/gdbserver/configure.ac
|
||||
+
|
||||
AC_SUBST(GDBSERVER_DEPFILES)
|
||||
AC_SUBST(GDBSERVER_LIBS)
|
||||
AC_SUBST(USE_THREAD_DB)
|
||||
Index: gdb-7.5.50.20130215/gdb/gdbserver/linux-low.c
|
||||
AC_SUBST(srv_xmlbuiltin)
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/gdbserver/linux-low.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/gdbserver/linux-low.c 2013-02-04 18:47:00.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/gdbserver/linux-low.c 2013-02-15 22:39:54.256591069 +0100
|
||||
@@ -602,6 +602,29 @@ add_lwp (ptid_t ptid)
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/gdbserver/linux-low.c 2013-08-02 16:33:52.772872421 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/gdbserver/linux-low.c 2013-08-02 16:34:16.126910941 +0200
|
||||
@@ -622,6 +622,29 @@ add_lwp (ptid_t ptid)
|
||||
return lwp;
|
||||
}
|
||||
|
||||
@ -156,7 +156,7 @@ Index: gdb-7.5.50.20130215/gdb/gdbserver/linux-low.c
|
||||
/* Start an inferior process and returns its pid.
|
||||
ALLARGS is a vector of program-name and args. */
|
||||
|
||||
@@ -642,7 +665,7 @@ linux_create_inferior (char *program, ch
|
||||
@@ -662,7 +685,7 @@ linux_create_inferior (char *program, ch
|
||||
|
||||
if (pid == 0)
|
||||
{
|
||||
@ -165,7 +165,7 @@ Index: gdb-7.5.50.20130215/gdb/gdbserver/linux-low.c
|
||||
|
||||
#ifndef __ANDROID__ /* Bionic doesn't use SIGRTMIN the way glibc does. */
|
||||
signal (__SIGRTMIN + 1, SIG_DFL);
|
||||
@@ -4587,7 +4610,7 @@ linux_tracefork_grandchild (void *arg)
|
||||
@@ -4685,7 +4708,7 @@ linux_tracefork_grandchild (void *arg)
|
||||
static int
|
||||
linux_tracefork_child (void *arg)
|
||||
{
|
||||
@ -174,10 +174,10 @@ Index: gdb-7.5.50.20130215/gdb/gdbserver/linux-low.c
|
||||
kill (getpid (), SIGSTOP);
|
||||
|
||||
#if !(defined(__UCLIBC__) && defined(HAS_NOMMU))
|
||||
Index: gdb-7.5.50.20130215/gdb/inf-ptrace.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/inf-ptrace.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/inf-ptrace.c 2013-01-01 07:32:45.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/inf-ptrace.c 2013-02-15 22:38:05.786456289 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/inf-ptrace.c 2013-08-02 16:33:52.772872421 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/inf-ptrace.c 2013-08-02 16:34:16.126910941 +0200
|
||||
@@ -104,7 +104,15 @@ static void
|
||||
inf_ptrace_me (void)
|
||||
{
|
||||
@ -194,11 +194,11 @@ Index: gdb-7.5.50.20130215/gdb/inf-ptrace.c
|
||||
}
|
||||
|
||||
/* Start a new inferior Unix child process. EXEC_FILE is the file to
|
||||
Index: gdb-7.5.50.20130215/gdb/linux-nat.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/linux-nat.c 2013-02-15 22:34:44.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/linux-nat.c 2013-02-15 22:38:05.787456291 +0100
|
||||
@@ -1557,6 +1557,7 @@ linux_nat_create_inferior (struct target
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/linux-nat.c 2013-08-02 16:33:52.774872424 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/linux-nat.c 2013-08-02 16:34:16.128910944 +0200
|
||||
@@ -1554,6 +1554,7 @@ linux_nat_create_inferior (struct target
|
||||
#ifdef HAVE_PERSONALITY
|
||||
int personality_orig = 0, personality_set = 0;
|
||||
#endif /* HAVE_PERSONALITY */
|
||||
@ -206,7 +206,7 @@ Index: gdb-7.5.50.20130215/gdb/linux-nat.c
|
||||
|
||||
/* The fork_child mechanism is synchronous and calls target_wait, so
|
||||
we have to mask the async mode. */
|
||||
@@ -1581,7 +1582,10 @@ linux_nat_create_inferior (struct target
|
||||
@@ -1578,7 +1579,10 @@ linux_nat_create_inferior (struct target
|
||||
/* Make sure we report all signals during startup. */
|
||||
linux_nat_pass_signals (0, NULL);
|
||||
|
||||
@ -218,7 +218,7 @@ Index: gdb-7.5.50.20130215/gdb/linux-nat.c
|
||||
|
||||
#ifdef HAVE_PERSONALITY
|
||||
if (personality_set)
|
||||
@@ -1593,6 +1597,24 @@ linux_nat_create_inferior (struct target
|
||||
@@ -1590,6 +1594,24 @@ linux_nat_create_inferior (struct target
|
||||
safe_strerror (errno));
|
||||
}
|
||||
#endif /* HAVE_PERSONALITY */
|
||||
@ -243,3 +243,192 @@ Index: gdb-7.5.50.20130215/gdb/linux-nat.c
|
||||
}
|
||||
|
||||
static void
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/config.in
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/config.in 2013-08-02 16:25:27.339097561 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/config.in 2013-08-02 16:36:16.249099841 +0200
|
||||
@@ -225,6 +225,9 @@
|
||||
/* Define if librpm library is being used. */
|
||||
#undef HAVE_LIBRPM
|
||||
|
||||
+/* Define to 1 if you have the `selinux' library (-lselinux). */
|
||||
+#undef HAVE_LIBSELINUX
|
||||
+
|
||||
/* Define to 1 if you have the <libunwind-ia64.h> header file. */
|
||||
#undef HAVE_LIBUNWIND_IA64_H
|
||||
|
||||
@@ -372,6 +375,9 @@
|
||||
/* Define to 1 if you have the `sbrk' function. */
|
||||
#undef HAVE_SBRK
|
||||
|
||||
+/* Define to 1 if you have the <selinux/selinux.h> header file. */
|
||||
+#undef HAVE_SELINUX_SELINUX_H
|
||||
+
|
||||
/* Define to 1 if you have the `setlocale' function. */
|
||||
#undef HAVE_SETLOCALE
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/configure
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/configure 2013-08-02 16:25:27.343097567 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/configure 2013-08-02 16:36:14.665097434 +0200
|
||||
@@ -12851,6 +12851,64 @@ cat >>confdefs.h <<_ACEOF
|
||||
_ACEOF
|
||||
|
||||
|
||||
+for ac_header in selinux/selinux.h
|
||||
+do :
|
||||
+ ac_fn_c_check_header_mongrel "$LINENO" "selinux/selinux.h" "ac_cv_header_selinux_selinux_h" "$ac_includes_default"
|
||||
+if test "x$ac_cv_header_selinux_selinux_h" = x""yes; then :
|
||||
+ cat >>confdefs.h <<_ACEOF
|
||||
+#define HAVE_SELINUX_SELINUX_H 1
|
||||
+_ACEOF
|
||||
+
|
||||
+fi
|
||||
+
|
||||
+done
|
||||
+
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for security_get_boolean_active in -lselinux" >&5
|
||||
+$as_echo_n "checking for security_get_boolean_active in -lselinux... " >&6; }
|
||||
+if test "${ac_cv_lib_selinux_security_get_boolean_active+set}" = set; then :
|
||||
+ $as_echo_n "(cached) " >&6
|
||||
+else
|
||||
+ ac_check_lib_save_LIBS=$LIBS
|
||||
+LIBS="-lselinux $LIBS"
|
||||
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
+/* end confdefs.h. */
|
||||
+
|
||||
+/* Override any GCC internal prototype to avoid an error.
|
||||
+ Use char because int might match the return type of a GCC
|
||||
+ builtin and then its argument prototype would still apply. */
|
||||
+#ifdef __cplusplus
|
||||
+extern "C"
|
||||
+#endif
|
||||
+char security_get_boolean_active ();
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+return security_get_boolean_active ();
|
||||
+ ;
|
||||
+ return 0;
|
||||
+}
|
||||
+_ACEOF
|
||||
+if ac_fn_c_try_link "$LINENO"; then :
|
||||
+ ac_cv_lib_selinux_security_get_boolean_active=yes
|
||||
+else
|
||||
+ ac_cv_lib_selinux_security_get_boolean_active=no
|
||||
+fi
|
||||
+rm -f core conftest.err conftest.$ac_objext \
|
||||
+ conftest$ac_exeext conftest.$ac_ext
|
||||
+LIBS=$ac_check_lib_save_LIBS
|
||||
+fi
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_security_get_boolean_active" >&5
|
||||
+$as_echo "$ac_cv_lib_selinux_security_get_boolean_active" >&6; }
|
||||
+if test "x$ac_cv_lib_selinux_security_get_boolean_active" = x""yes; then :
|
||||
+ cat >>confdefs.h <<_ACEOF
|
||||
+#define HAVE_LIBSELINUX 1
|
||||
+_ACEOF
|
||||
+
|
||||
+ LIBS="-lselinux $LIBS"
|
||||
+
|
||||
+fi
|
||||
+
|
||||
+
|
||||
|
||||
# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
|
||||
# except that the argument to --with-sysroot is optional.
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/gdbserver/config.in
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/gdbserver/config.in 2013-07-31 21:41:54.000000000 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/gdbserver/config.in 2013-08-02 16:36:21.719108141 +0200
|
||||
@@ -76,6 +76,12 @@
|
||||
/* Define to 1 if you have the `dl' library (-ldl). */
|
||||
#undef HAVE_LIBDL
|
||||
|
||||
+/* Define to 1 if you have the `mcheck' library (-lmcheck). */
|
||||
+#undef HAVE_LIBMCHECK
|
||||
+
|
||||
+/* Define to 1 if you have the `selinux' library (-lselinux). */
|
||||
+#undef HAVE_LIBSELINUX
|
||||
+
|
||||
/* Define if the target supports branch tracing. */
|
||||
#undef HAVE_LINUX_BTRACE
|
||||
|
||||
@@ -146,6 +152,9 @@
|
||||
/* Define to 1 if you have the `readlink' function. */
|
||||
#undef HAVE_READLINK
|
||||
|
||||
+/* Define to 1 if you have the <selinux/selinux.h> header file. */
|
||||
+#undef HAVE_SELINUX_SELINUX_H
|
||||
+
|
||||
/* Define to 1 if you have the <sgtty.h> header file. */
|
||||
#undef HAVE_SGTTY_H
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/gdbserver/configure
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/gdbserver/configure 2013-07-31 21:41:54.000000000 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/gdbserver/configure 2013-08-02 16:36:20.237105894 +0200
|
||||
@@ -6003,6 +6003,64 @@ if $want_ipa ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
+for ac_header in selinux/selinux.h
|
||||
+do :
|
||||
+ ac_fn_c_check_header_mongrel "$LINENO" "selinux/selinux.h" "ac_cv_header_selinux_selinux_h" "$ac_includes_default"
|
||||
+if test "x$ac_cv_header_selinux_selinux_h" = x""yes; then :
|
||||
+ cat >>confdefs.h <<_ACEOF
|
||||
+#define HAVE_SELINUX_SELINUX_H 1
|
||||
+_ACEOF
|
||||
+
|
||||
+fi
|
||||
+
|
||||
+done
|
||||
+
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for security_get_boolean_active in -lselinux" >&5
|
||||
+$as_echo_n "checking for security_get_boolean_active in -lselinux... " >&6; }
|
||||
+if test "${ac_cv_lib_selinux_security_get_boolean_active+set}" = set; then :
|
||||
+ $as_echo_n "(cached) " >&6
|
||||
+else
|
||||
+ ac_check_lib_save_LIBS=$LIBS
|
||||
+LIBS="-lselinux $LIBS"
|
||||
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
+/* end confdefs.h. */
|
||||
+
|
||||
+/* Override any GCC internal prototype to avoid an error.
|
||||
+ Use char because int might match the return type of a GCC
|
||||
+ builtin and then its argument prototype would still apply. */
|
||||
+#ifdef __cplusplus
|
||||
+extern "C"
|
||||
+#endif
|
||||
+char security_get_boolean_active ();
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+return security_get_boolean_active ();
|
||||
+ ;
|
||||
+ return 0;
|
||||
+}
|
||||
+_ACEOF
|
||||
+if ac_fn_c_try_link "$LINENO"; then :
|
||||
+ ac_cv_lib_selinux_security_get_boolean_active=yes
|
||||
+else
|
||||
+ ac_cv_lib_selinux_security_get_boolean_active=no
|
||||
+fi
|
||||
+rm -f core conftest.err conftest.$ac_objext \
|
||||
+ conftest$ac_exeext conftest.$ac_ext
|
||||
+LIBS=$ac_check_lib_save_LIBS
|
||||
+fi
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_security_get_boolean_active" >&5
|
||||
+$as_echo "$ac_cv_lib_selinux_security_get_boolean_active" >&6; }
|
||||
+if test "x$ac_cv_lib_selinux_security_get_boolean_active" = x""yes; then :
|
||||
+ cat >>confdefs.h <<_ACEOF
|
||||
+#define HAVE_LIBSELINUX 1
|
||||
+_ACEOF
|
||||
+
|
||||
+ LIBS="-lselinux $LIBS"
|
||||
+
|
||||
+fi
|
||||
+
|
||||
+
|
||||
|
||||
|
||||
|
||||
|
@ -1,186 +0,0 @@
|
||||
Index: gdb-7.4.50.20120602/gdb/config.in
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120602.orig/gdb/config.in 2012-06-02 21:49:26.147399232 +0200
|
||||
+++ gdb-7.4.50.20120602/gdb/config.in 2012-06-02 21:49:27.206398845 +0200
|
||||
@@ -222,6 +222,9 @@
|
||||
/* Define if librpm library is being used. */
|
||||
#undef HAVE_LIBRPM
|
||||
|
||||
+/* Define to 1 if you have the `selinux' library (-lselinux). */
|
||||
+#undef HAVE_LIBSELINUX
|
||||
+
|
||||
/* Define to 1 if you have the <libunwind-ia64.h> header file. */
|
||||
#undef HAVE_LIBUNWIND_IA64_H
|
||||
|
||||
@@ -363,6 +366,9 @@
|
||||
/* Define to 1 if you have the `sbrk' function. */
|
||||
#undef HAVE_SBRK
|
||||
|
||||
+/* Define to 1 if you have the <selinux/selinux.h> header file. */
|
||||
+#undef HAVE_SELINUX_SELINUX_H
|
||||
+
|
||||
/* Define to 1 if you have the `setlocale' function. */
|
||||
#undef HAVE_SETLOCALE
|
||||
|
||||
Index: gdb-7.4.50.20120602/gdb/configure
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120602.orig/gdb/configure 2012-06-02 21:49:27.139398869 +0200
|
||||
+++ gdb-7.4.50.20120602/gdb/configure 2012-06-02 21:49:50.890390179 +0200
|
||||
@@ -12745,6 +12745,64 @@ $as_echo "#define HAVE_PERSONALITY 1" >>
|
||||
|
||||
fi
|
||||
|
||||
+for ac_header in selinux/selinux.h
|
||||
+do :
|
||||
+ ac_fn_c_check_header_mongrel "$LINENO" "selinux/selinux.h" "ac_cv_header_selinux_selinux_h" "$ac_includes_default"
|
||||
+if test "x$ac_cv_header_selinux_selinux_h" = x""yes; then :
|
||||
+ cat >>confdefs.h <<_ACEOF
|
||||
+#define HAVE_SELINUX_SELINUX_H 1
|
||||
+_ACEOF
|
||||
+
|
||||
+fi
|
||||
+
|
||||
+done
|
||||
+
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for security_get_boolean_active in -lselinux" >&5
|
||||
+$as_echo_n "checking for security_get_boolean_active in -lselinux... " >&6; }
|
||||
+if test "${ac_cv_lib_selinux_security_get_boolean_active+set}" = set; then :
|
||||
+ $as_echo_n "(cached) " >&6
|
||||
+else
|
||||
+ ac_check_lib_save_LIBS=$LIBS
|
||||
+LIBS="-lselinux $LIBS"
|
||||
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
+/* end confdefs.h. */
|
||||
+
|
||||
+/* Override any GCC internal prototype to avoid an error.
|
||||
+ Use char because int might match the return type of a GCC
|
||||
+ builtin and then its argument prototype would still apply. */
|
||||
+#ifdef __cplusplus
|
||||
+extern "C"
|
||||
+#endif
|
||||
+char security_get_boolean_active ();
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+return security_get_boolean_active ();
|
||||
+ ;
|
||||
+ return 0;
|
||||
+}
|
||||
+_ACEOF
|
||||
+if ac_fn_c_try_link "$LINENO"; then :
|
||||
+ ac_cv_lib_selinux_security_get_boolean_active=yes
|
||||
+else
|
||||
+ ac_cv_lib_selinux_security_get_boolean_active=no
|
||||
+fi
|
||||
+rm -f core conftest.err conftest.$ac_objext \
|
||||
+ conftest$ac_exeext conftest.$ac_ext
|
||||
+LIBS=$ac_check_lib_save_LIBS
|
||||
+fi
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_security_get_boolean_active" >&5
|
||||
+$as_echo "$ac_cv_lib_selinux_security_get_boolean_active" >&6; }
|
||||
+if test "x$ac_cv_lib_selinux_security_get_boolean_active" = x""yes; then :
|
||||
+ cat >>confdefs.h <<_ACEOF
|
||||
+#define HAVE_LIBSELINUX 1
|
||||
+_ACEOF
|
||||
+
|
||||
+ LIBS="-lselinux $LIBS"
|
||||
+
|
||||
+fi
|
||||
+
|
||||
+
|
||||
|
||||
# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
|
||||
# except that the argument to --with-sysroot is optional.
|
||||
Index: gdb-7.4.50.20120602/gdb/gdbserver/config.in
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120602.orig/gdb/gdbserver/config.in 2012-04-19 21:34:51.000000000 +0200
|
||||
+++ gdb-7.4.50.20120602/gdb/gdbserver/config.in 2012-06-02 21:49:55.945388329 +0200
|
||||
@@ -69,6 +69,9 @@
|
||||
/* Define to 1 if you have the `dl' library (-ldl). */
|
||||
#undef HAVE_LIBDL
|
||||
|
||||
+/* Define to 1 if you have the `selinux' library (-lselinux). */
|
||||
+#undef HAVE_LIBSELINUX
|
||||
+
|
||||
/* Define to 1 if you have the <linux/elf.h> header file. */
|
||||
#undef HAVE_LINUX_ELF_H
|
||||
|
||||
@@ -130,6 +133,9 @@
|
||||
/* Define to 1 if you have the `readlink' function. */
|
||||
#undef HAVE_READLINK
|
||||
|
||||
+/* Define to 1 if you have the <selinux/selinux.h> header file. */
|
||||
+#undef HAVE_SELINUX_SELINUX_H
|
||||
+
|
||||
/* Define to 1 if you have the <sgtty.h> header file. */
|
||||
#undef HAVE_SGTTY_H
|
||||
|
||||
Index: gdb-7.4.50.20120602/gdb/gdbserver/configure
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120602.orig/gdb/gdbserver/configure 2012-04-20 19:58:49.000000000 +0200
|
||||
+++ gdb-7.4.50.20120602/gdb/gdbserver/configure 2012-06-02 21:49:54.485388864 +0200
|
||||
@@ -5532,6 +5532,64 @@ if $want_ipa ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
+for ac_header in selinux/selinux.h
|
||||
+do :
|
||||
+ ac_fn_c_check_header_mongrel "$LINENO" "selinux/selinux.h" "ac_cv_header_selinux_selinux_h" "$ac_includes_default"
|
||||
+if test "x$ac_cv_header_selinux_selinux_h" = x""yes; then :
|
||||
+ cat >>confdefs.h <<_ACEOF
|
||||
+#define HAVE_SELINUX_SELINUX_H 1
|
||||
+_ACEOF
|
||||
+
|
||||
+fi
|
||||
+
|
||||
+done
|
||||
+
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for security_get_boolean_active in -lselinux" >&5
|
||||
+$as_echo_n "checking for security_get_boolean_active in -lselinux... " >&6; }
|
||||
+if test "${ac_cv_lib_selinux_security_get_boolean_active+set}" = set; then :
|
||||
+ $as_echo_n "(cached) " >&6
|
||||
+else
|
||||
+ ac_check_lib_save_LIBS=$LIBS
|
||||
+LIBS="-lselinux $LIBS"
|
||||
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
+/* end confdefs.h. */
|
||||
+
|
||||
+/* Override any GCC internal prototype to avoid an error.
|
||||
+ Use char because int might match the return type of a GCC
|
||||
+ builtin and then its argument prototype would still apply. */
|
||||
+#ifdef __cplusplus
|
||||
+extern "C"
|
||||
+#endif
|
||||
+char security_get_boolean_active ();
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+return security_get_boolean_active ();
|
||||
+ ;
|
||||
+ return 0;
|
||||
+}
|
||||
+_ACEOF
|
||||
+if ac_fn_c_try_link "$LINENO"; then :
|
||||
+ ac_cv_lib_selinux_security_get_boolean_active=yes
|
||||
+else
|
||||
+ ac_cv_lib_selinux_security_get_boolean_active=no
|
||||
+fi
|
||||
+rm -f core conftest.err conftest.$ac_objext \
|
||||
+ conftest$ac_exeext conftest.$ac_ext
|
||||
+LIBS=$ac_check_lib_save_LIBS
|
||||
+fi
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_security_get_boolean_active" >&5
|
||||
+$as_echo "$ac_cv_lib_selinux_security_get_boolean_active" >&6; }
|
||||
+if test "x$ac_cv_lib_selinux_security_get_boolean_active" = x""yes; then :
|
||||
+ cat >>confdefs.h <<_ACEOF
|
||||
+#define HAVE_LIBSELINUX 1
|
||||
+_ACEOF
|
||||
+
|
||||
+ LIBS="-lselinux $LIBS"
|
||||
+
|
||||
+fi
|
||||
+
|
||||
+
|
||||
|
||||
|
||||
|
@ -21,16 +21,16 @@ debugging problem of GOMP outside of the scope of this Bug.
|
||||
|
||||
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/infrun.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/infrun.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/infrun.c 2013-01-19 23:38:22.329371410 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/infrun.c 2013-01-19 23:39:03.322429041 +0100
|
||||
@@ -4918,6 +4918,16 @@ process_event_stop_test:
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/infrun.c 2013-08-02 17:10:08.446962958 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/infrun.c 2013-08-02 17:10:49.109016685 +0200
|
||||
@@ -4930,6 +4930,16 @@ process_event_stop_test:
|
||||
|
||||
if (ecs->event_thread->control.step_over_calls == STEP_OVER_ALL)
|
||||
{
|
||||
+ struct symbol *stop_fn = find_pc_function (stop_pc);
|
||||
+ struct minimal_symbol *stopf = lookup_minimal_symbol_by_pc (stop_pc);
|
||||
+ struct minimal_symbol *stopf = lookup_minimal_symbol_by_pc (stop_pc).minsym;
|
||||
+
|
||||
+ if ((stop_fn == NULL
|
||||
+ || strstr (SYMBOL_LINKAGE_NAME (stop_fn), ".omp_fn.") == NULL)
|
||||
@ -42,7 +42,7 @@ Index: gdb-7.5.50.20130118/gdb/infrun.c
|
||||
/* We're doing a "next".
|
||||
|
||||
Normal (forward) execution: set a breakpoint at the
|
||||
@@ -4953,6 +4963,7 @@ process_event_stop_test:
|
||||
@@ -4965,6 +4975,7 @@ process_event_stop_test:
|
||||
|
||||
keep_going (ecs);
|
||||
return;
|
||||
@ -50,10 +50,10 @@ Index: gdb-7.5.50.20130118/gdb/infrun.c
|
||||
}
|
||||
|
||||
/* If we are in a function call trampoline (a stub between the
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.fortran/omp-step.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.exp 2013-01-19 23:38:23.213372622 +0100
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.fortran/omp-step.exp 2013-08-02 17:10:37.063000571 +0200
|
||||
@@ -0,0 +1,31 @@
|
||||
+# Copyright 2009 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -86,10 +86,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.exp
|
||||
+
|
||||
+gdb_breakpoint [gdb_get_line_number "success"]
|
||||
+gdb_continue_to_breakpoint "success" ".*success.*"
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.f90
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.fortran/omp-step.f90
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.f90 2013-01-19 23:38:23.213372622 +0100
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.fortran/omp-step.f90 2013-08-02 17:10:37.063000571 +0200
|
||||
@@ -0,0 +1,32 @@
|
||||
+! Copyright 2009 Free Software Foundation, Inc.
|
||||
+
|
||||
|
@ -1,20 +1,20 @@
|
||||
Index: gdb-7.4.50.20120602/gdb/config/i386/linux64.mh
|
||||
Index: gdb-7.5.91.20130323/gdb/config/i386/linux64.mh
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120602.orig/gdb/config/i386/linux64.mh 2012-03-13 16:00:34.000000000 +0100
|
||||
+++ gdb-7.4.50.20120602/gdb/config/i386/linux64.mh 2012-06-02 19:56:03.196172503 +0200
|
||||
--- gdb-7.5.91.20130323.orig/gdb/config/i386/linux64.mh 2013-03-11 09:25:58.000000000 +0100
|
||||
+++ gdb-7.5.91.20130323/gdb/config/i386/linux64.mh 2013-03-23 19:48:37.707761117 +0100
|
||||
@@ -4,7 +4,7 @@ NATDEPFILES= inf-ptrace.o fork-child.o \
|
||||
linux-nat.o linux-osdata.o \
|
||||
proc-service.o linux-thread-db.o linux-fork.o \
|
||||
linux-procfs.o linux-ptrace.o
|
||||
linux-procfs.o linux-ptrace.o linux-btrace.o
|
||||
-NAT_FILE= config/nm-linux.h
|
||||
+NAT_FILE= nm-linux64.h
|
||||
NAT_CDEPS = $(srcdir)/proc-service.list
|
||||
|
||||
# The dynamically loaded libthread_db needs access to symbols in the
|
||||
Index: gdb-7.4.50.20120602/gdb/config/i386/linux.mh
|
||||
Index: gdb-7.5.91.20130323/gdb/config/i386/linux.mh
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120602.orig/gdb/config/i386/linux.mh 2012-03-13 16:00:33.000000000 +0100
|
||||
+++ gdb-7.4.50.20120602/gdb/config/i386/linux.mh 2012-06-02 19:55:42.418178412 +0200
|
||||
--- gdb-7.5.91.20130323.orig/gdb/config/i386/linux.mh 2013-03-11 09:25:58.000000000 +0100
|
||||
+++ gdb-7.5.91.20130323/gdb/config/i386/linux.mh 2013-03-23 19:48:22.757990256 +0100
|
||||
@@ -1,6 +1,6 @@
|
||||
# Host: Intel 386 running GNU/Linux.
|
||||
|
||||
@ -23,10 +23,10 @@ Index: gdb-7.4.50.20120602/gdb/config/i386/linux.mh
|
||||
NATDEPFILES= inf-ptrace.o fork-child.o \
|
||||
i386-nat.o i386-linux-nat.o \
|
||||
proc-service.o linux-thread-db.o \
|
||||
Index: gdb-7.4.50.20120602/gdb/config/i386/nm-linux.h
|
||||
Index: gdb-7.5.91.20130323/gdb/config/i386/nm-linux.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.4.50.20120602/gdb/config/i386/nm-linux.h 2012-06-02 19:55:42.433178408 +0200
|
||||
+++ gdb-7.5.91.20130323/gdb/config/i386/nm-linux.h 2013-03-23 19:48:22.757990256 +0100
|
||||
@@ -0,0 +1,28 @@
|
||||
+/* Native support for GNU/Linux i386.
|
||||
+
|
||||
@ -56,10 +56,10 @@ Index: gdb-7.4.50.20120602/gdb/config/i386/nm-linux.h
|
||||
+#define target_can_use_hardware_watchpoint(type, cnt, ot) 1
|
||||
+
|
||||
+#endif /* NM_LINUX64_H */
|
||||
Index: gdb-7.4.50.20120602/gdb/config/i386/nm-linux64.h
|
||||
Index: gdb-7.5.91.20130323/gdb/config/i386/nm-linux64.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.4.50.20120602/gdb/config/i386/nm-linux64.h 2012-06-02 19:55:42.434178407 +0200
|
||||
+++ gdb-7.5.91.20130323/gdb/config/i386/nm-linux64.h 2013-03-23 19:48:22.757990256 +0100
|
||||
@@ -0,0 +1,28 @@
|
||||
+/* Native support for GNU/Linux amd64.
|
||||
+
|
||||
@ -89,11 +89,11 @@ Index: gdb-7.4.50.20120602/gdb/config/i386/nm-linux64.h
|
||||
+#define target_can_use_hardware_watchpoint(type, cnt, ot) 1
|
||||
+
|
||||
+#endif /* NM_LINUX64_H */
|
||||
Index: gdb-7.4.50.20120602/gdb/target.h
|
||||
Index: gdb-7.5.91.20130323/gdb/target.h
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120602.orig/gdb/target.h 2012-06-01 18:37:59.000000000 +0200
|
||||
+++ gdb-7.4.50.20120602/gdb/target.h 2012-06-02 19:55:42.436178407 +0200
|
||||
@@ -1470,8 +1470,10 @@ extern char *target_thread_name (struct
|
||||
--- gdb-7.5.91.20130323.orig/gdb/target.h 2013-03-11 09:50:05.000000000 +0100
|
||||
+++ gdb-7.5.91.20130323/gdb/target.h 2013-03-23 19:48:22.758990238 +0100
|
||||
@@ -1563,8 +1563,10 @@ extern char *target_thread_name (struct
|
||||
bp_hardware_breakpoint. CNT is the number of such watchpoints used so far
|
||||
(including this one?). OTHERTYPE is who knows what... */
|
||||
|
||||
@ -104,10 +104,10 @@ Index: gdb-7.4.50.20120602/gdb/target.h
|
||||
|
||||
/* Returns the number of debug registers needed to watch the given
|
||||
memory region, or zero if not supported. */
|
||||
Index: gdb-7.4.50.20120602/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp
|
||||
Index: gdb-7.5.91.20130323/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.4.50.20120602/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp 2012-06-02 19:55:42.442178406 +0200
|
||||
+++ gdb-7.5.91.20130323/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp 2013-03-23 19:48:22.758990238 +0100
|
||||
@@ -0,0 +1,40 @@
|
||||
+# Copyright 2009, 2010 Free Software Foundation, Inc.
|
||||
+
|
||||
|
@ -3,11 +3,11 @@ Subject: [patch] Fix GNU/Linux core open: Can't read pathname for load map: Inp
|
||||
|
||||
[ New patch variant. ]
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/solib-svr4.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/solib-svr4.c 2013-01-18 23:05:19.414210015 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/solib-svr4.c 2013-01-18 23:05:34.813231664 +0100
|
||||
@@ -1221,8 +1221,17 @@ svr4_read_so_list (CORE_ADDR lm, struct
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/solib-svr4.c 2013-08-02 16:27:28.831259468 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/solib-svr4.c 2013-08-02 16:27:47.871284813 +0200
|
||||
@@ -1359,8 +1359,17 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD
|
||||
SO_NAME_MAX_PATH_SIZE - 1, &errcode);
|
||||
if (errcode != 0)
|
||||
{
|
||||
@ -27,20 +27,20 @@ Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
|
||||
do_cleanups (old_chain);
|
||||
continue;
|
||||
}
|
||||
Index: gdb-7.5.50.20130118/gdb/solib.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/solib.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/solib.c 2013-01-18 23:05:19.415210017 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/solib.c 2013-01-18 23:05:57.421263173 +0100
|
||||
@@ -666,7 +666,7 @@ solib_used (const struct so_list *const
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/solib.c 2013-08-02 16:27:28.832259470 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/solib.c 2013-08-02 16:28:50.421367694 +0200
|
||||
@@ -669,7 +669,7 @@ solib_used (const struct so_list *const
|
||||
processes we've just attached to, so that's okay. */
|
||||
|
||||
static void
|
||||
-update_solib_list (int from_tty, struct target_ops *target)
|
||||
+update_solib_list_1 (int from_tty, struct target_ops *target)
|
||||
{
|
||||
struct target_so_ops *ops = solib_ops (target_gdbarch ());
|
||||
const struct target_so_ops *ops = solib_ops (target_gdbarch ());
|
||||
struct so_list *inferior = ops->current_sos();
|
||||
@@ -837,6 +837,21 @@ Do you need \"set solib-search-path\" or
|
||||
@@ -840,6 +840,21 @@ Do you need \"set solib-search-path\" or
|
||||
}
|
||||
}
|
||||
|
||||
@ -62,11 +62,11 @@ Index: gdb-7.5.50.20130118/gdb/solib.c
|
||||
|
||||
/* Return non-zero if NAME is the libpthread shared library.
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/corefile.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/corefile.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.base/corefile.exp 2013-01-18 23:05:19.416210020 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/corefile.exp 2013-01-18 23:05:34.814231667 +0100
|
||||
@@ -286,3 +286,19 @@ if {$buildid == ""} {
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/corefile.exp 2013-08-02 16:27:28.833259471 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/corefile.exp 2013-08-02 16:27:47.872284814 +0200
|
||||
@@ -285,3 +285,19 @@ if {$buildid == ""} {
|
||||
gdb_test "info files" "Local exec file:\r\n\[ \t\]*`[string_to_regexp $debugdir/$buildid]', file type .*"
|
||||
pass $wholetest
|
||||
}
|
||||
@ -86,20 +86,18 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/corefile.exp
|
||||
+ pass $test
|
||||
+ }
|
||||
+}
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/solib-symbol.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/solib-symbol.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.base/solib-symbol.exp 2013-01-18 23:05:19.416210020 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/solib-symbol.exp 2013-01-18 23:05:34.814231667 +0100
|
||||
@@ -27,7 +27,8 @@ set lib_flags [list debug ldflags=-Wl,-B
|
||||
# Binary file.
|
||||
set testfile "solib-symbol-main"
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/solib-symbol.exp 2013-08-02 16:27:28.833259471 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/solib-symbol.exp 2013-08-02 16:28:22.549330973 +0200
|
||||
@@ -29,6 +29,7 @@ set testfile "solib-symbol-main"
|
||||
set srcfile ${srcdir}/${subdir}/${testfile}.c
|
||||
-set binfile ${objdir}/${subdir}/${testfile}
|
||||
+set executable ${testfile}
|
||||
+set binfile ${objdir}/${subdir}/${executable}
|
||||
set binfile [standard_output_file ${testfile}]
|
||||
set bin_flags [list debug shlib=${binfile_lib}]
|
||||
+set executable ${testfile}
|
||||
|
||||
if [get_compiler_info] {
|
||||
return -1
|
||||
@@ -72,8 +73,26 @@ gdb_test "br foo2" \
|
||||
"Breakpoint.*: foo2. .2 locations..*" \
|
||||
"foo2 in mdlib"
|
||||
|
@ -1,98 +0,0 @@
|
||||
2012-07-19 Gary Benson <gbenson@redhat.com>
|
||||
|
||||
* probe.h (get_probe_argument_count): New declaration.
|
||||
(evaluate_probe_argument): Likewise.
|
||||
* probe.c (get_probe_argument_count): New function.
|
||||
(evaluate_probe_argument): Likewise.
|
||||
(probe_safe_evaluate_at_pc): Use the above new functions.
|
||||
|
||||
diff --git a/gdb/probe.h b/gdb/probe.h
|
||||
index 8d44ca2..1d29b87 100644
|
||||
--- a/gdb/probe.h
|
||||
+++ b/gdb/probe.h
|
||||
@@ -214,6 +214,16 @@ extern void info_probes_for_ops (char *arg, int from_tty,
|
||||
|
||||
extern struct cmd_list_element **info_probes_cmdlist_get (void);
|
||||
|
||||
+/* Return the argument count of the specified probe. */
|
||||
+
|
||||
+extern unsigned get_probe_argument_count (struct probe *probe);
|
||||
+
|
||||
+/* Evaluate argument N of the specified probe. N must be between 0
|
||||
+ inclusive and get_probe_argument_count exclusive. */
|
||||
+
|
||||
+extern struct value *evaluate_probe_argument (struct probe *probe,
|
||||
+ unsigned n);
|
||||
+
|
||||
/* A convenience function that finds a probe at the PC in FRAME and
|
||||
evaluates argument N, with 0 <= N < number_of_args. If there is no
|
||||
probe at that location, or if the probe does not have enough arguments,
|
||||
diff --git a/gdb/probe.c b/gdb/probe.c
|
||||
index 77f3b13..a61f4ea 100644
|
||||
--- a/gdb/probe.c
|
||||
+++ b/gdb/probe.c
|
||||
@@ -632,28 +632,55 @@ info_probes_command (char *arg, int from_tty)
|
||||
|
||||
/* See comments in probe.h. */
|
||||
|
||||
+unsigned
|
||||
+get_probe_argument_count (struct probe *probe)
|
||||
+{
|
||||
+ const struct sym_probe_fns *probe_fns;
|
||||
+
|
||||
+ gdb_assert (probe->objfile != NULL);
|
||||
+ gdb_assert (probe->objfile->sf != NULL);
|
||||
+
|
||||
+ probe_fns = probe->objfile->sf->sym_probe_fns;
|
||||
+
|
||||
+ gdb_assert (probe_fns != NULL);
|
||||
+
|
||||
+ return probe_fns->sym_get_probe_argument_count (probe);
|
||||
+}
|
||||
+
|
||||
+/* See comments in probe.h. */
|
||||
+
|
||||
+struct value *
|
||||
+evaluate_probe_argument (struct probe *probe, unsigned n)
|
||||
+{
|
||||
+ const struct sym_probe_fns *probe_fns;
|
||||
+
|
||||
+ gdb_assert (probe->objfile != NULL);
|
||||
+ gdb_assert (probe->objfile->sf != NULL);
|
||||
+
|
||||
+ probe_fns = probe->objfile->sf->sym_probe_fns;
|
||||
+
|
||||
+ gdb_assert (probe_fns != NULL);
|
||||
+
|
||||
+ return probe_fns->sym_evaluate_probe_argument (probe, n);
|
||||
+}
|
||||
+
|
||||
+/* See comments in probe.h. */
|
||||
+
|
||||
struct value *
|
||||
probe_safe_evaluate_at_pc (struct frame_info *frame, unsigned n)
|
||||
{
|
||||
struct probe *probe;
|
||||
- const struct sym_probe_fns *probe_fns;
|
||||
unsigned n_args;
|
||||
|
||||
probe = find_probe_by_pc (get_frame_pc (frame));
|
||||
if (!probe)
|
||||
return NULL;
|
||||
|
||||
- gdb_assert (probe->objfile != NULL);
|
||||
- gdb_assert (probe->objfile->sf != NULL);
|
||||
- gdb_assert (probe->objfile->sf->sym_probe_fns != NULL);
|
||||
-
|
||||
- probe_fns = probe->objfile->sf->sym_probe_fns;
|
||||
- n_args = probe_fns->sym_get_probe_argument_count (probe);
|
||||
-
|
||||
+ n_args = get_probe_argument_count (probe);
|
||||
if (n >= n_args)
|
||||
return NULL;
|
||||
|
||||
- return probe_fns->sym_evaluate_probe_argument (probe, n);
|
||||
+ return evaluate_probe_argument (probe, n);
|
||||
}
|
||||
|
||||
/* See comment in probe.h. */
|
@ -1,131 +0,0 @@
|
||||
2012-07-19 Gary Benson <gbenson@redhat.com>
|
||||
|
||||
* solib-svr4.c (svr4_info): Move earlier.
|
||||
(solib_svr4_pspace_data): Likewise.
|
||||
(svr4_pspace_data_cleanup): Likewise.
|
||||
(get_svr4_info): Likewise.
|
||||
|
||||
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
|
||||
index 307e483..c88b9cb 100644
|
||||
--- a/gdb/solib-svr4.c
|
||||
+++ b/gdb/solib-svr4.c
|
||||
@@ -106,6 +106,59 @@ static const char * const main_name_list[] =
|
||||
NULL
|
||||
};
|
||||
|
||||
+/* Per pspace SVR4 specific data. */
|
||||
+
|
||||
+struct svr4_info
|
||||
+{
|
||||
+ CORE_ADDR debug_base; /* Base of dynamic linker structures. */
|
||||
+
|
||||
+ /* Validity flag for debug_loader_offset. */
|
||||
+ int debug_loader_offset_p;
|
||||
+
|
||||
+ /* Load address for the dynamic linker, inferred. */
|
||||
+ CORE_ADDR debug_loader_offset;
|
||||
+
|
||||
+ /* Name of the dynamic linker, valid if debug_loader_offset_p. */
|
||||
+ char *debug_loader_name;
|
||||
+
|
||||
+ /* Load map address for the main executable. */
|
||||
+ CORE_ADDR main_lm_addr;
|
||||
+
|
||||
+ CORE_ADDR interp_text_sect_low;
|
||||
+ CORE_ADDR interp_text_sect_high;
|
||||
+ CORE_ADDR interp_plt_sect_low;
|
||||
+ CORE_ADDR interp_plt_sect_high;
|
||||
+};
|
||||
+
|
||||
+/* Per-program-space data key. */
|
||||
+static const struct program_space_data *solib_svr4_pspace_data;
|
||||
+
|
||||
+static void
|
||||
+svr4_pspace_data_cleanup (struct program_space *pspace, void *arg)
|
||||
+{
|
||||
+ struct svr4_info *info;
|
||||
+
|
||||
+ info = program_space_data (pspace, solib_svr4_pspace_data);
|
||||
+ xfree (info);
|
||||
+}
|
||||
+
|
||||
+/* Get the current svr4 data. If none is found yet, add it now. This
|
||||
+ function always returns a valid object. */
|
||||
+
|
||||
+static struct svr4_info *
|
||||
+get_svr4_info (void)
|
||||
+{
|
||||
+ struct svr4_info *info;
|
||||
+
|
||||
+ info = program_space_data (current_program_space, solib_svr4_pspace_data);
|
||||
+ if (info != NULL)
|
||||
+ return info;
|
||||
+
|
||||
+ info = XZALLOC (struct svr4_info);
|
||||
+ set_program_space_data (current_program_space, solib_svr4_pspace_data, info);
|
||||
+ return info;
|
||||
+}
|
||||
+
|
||||
/* Return non-zero if GDB_SO_NAME and INFERIOR_SO_NAME represent
|
||||
the same shared library. */
|
||||
|
||||
@@ -291,59 +344,6 @@ lm_addr_check (struct so_list *so, bfd *abfd)
|
||||
return so->lm_info->l_addr;
|
||||
}
|
||||
|
||||
-/* Per pspace SVR4 specific data. */
|
||||
-
|
||||
-struct svr4_info
|
||||
-{
|
||||
- CORE_ADDR debug_base; /* Base of dynamic linker structures. */
|
||||
-
|
||||
- /* Validity flag for debug_loader_offset. */
|
||||
- int debug_loader_offset_p;
|
||||
-
|
||||
- /* Load address for the dynamic linker, inferred. */
|
||||
- CORE_ADDR debug_loader_offset;
|
||||
-
|
||||
- /* Name of the dynamic linker, valid if debug_loader_offset_p. */
|
||||
- char *debug_loader_name;
|
||||
-
|
||||
- /* Load map address for the main executable. */
|
||||
- CORE_ADDR main_lm_addr;
|
||||
-
|
||||
- CORE_ADDR interp_text_sect_low;
|
||||
- CORE_ADDR interp_text_sect_high;
|
||||
- CORE_ADDR interp_plt_sect_low;
|
||||
- CORE_ADDR interp_plt_sect_high;
|
||||
-};
|
||||
-
|
||||
-/* Per-program-space data key. */
|
||||
-static const struct program_space_data *solib_svr4_pspace_data;
|
||||
-
|
||||
-static void
|
||||
-svr4_pspace_data_cleanup (struct program_space *pspace, void *arg)
|
||||
-{
|
||||
- struct svr4_info *info;
|
||||
-
|
||||
- info = program_space_data (pspace, solib_svr4_pspace_data);
|
||||
- xfree (info);
|
||||
-}
|
||||
-
|
||||
-/* Get the current svr4 data. If none is found yet, add it now. This
|
||||
- function always returns a valid object. */
|
||||
-
|
||||
-static struct svr4_info *
|
||||
-get_svr4_info (void)
|
||||
-{
|
||||
- struct svr4_info *info;
|
||||
-
|
||||
- info = program_space_data (current_program_space, solib_svr4_pspace_data);
|
||||
- if (info != NULL)
|
||||
- return info;
|
||||
-
|
||||
- info = XZALLOC (struct svr4_info);
|
||||
- set_program_space_data (current_program_space, solib_svr4_pspace_data, info);
|
||||
- return info;
|
||||
-}
|
||||
-
|
||||
/* Local function prototypes */
|
||||
|
||||
static int match_main (const char *);
|
@ -1,17 +0,0 @@
|
||||
2012-07-19 Gary Benson <gbenson@redhat.com>
|
||||
|
||||
* solib-svr4.c (svr4_info): Made debug_loader_offset_p a bitfield.
|
||||
|
||||
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
|
||||
index c88b9cb..8e41f19 100644
|
||||
--- a/gdb/solib-svr4.c
|
||||
+++ b/gdb/solib-svr4.c
|
||||
@@ -113,7 +113,7 @@ struct svr4_info
|
||||
CORE_ADDR debug_base; /* Base of dynamic linker structures. */
|
||||
|
||||
/* Validity flag for debug_loader_offset. */
|
||||
- int debug_loader_offset_p;
|
||||
+ unsigned int debug_loader_offset_p : 1;
|
||||
|
||||
/* Load address for the dynamic linker, inferred. */
|
||||
CORE_ADDR debug_loader_offset;
|
File diff suppressed because it is too large
Load Diff
@ -1,147 +0,0 @@
|
||||
2012-07-30 Gary Benson <gbenson@redhat.com>
|
||||
|
||||
* objfiles.h (inhibit_section_map_updates): New function
|
||||
declaration.
|
||||
(resume_section_map_updates): Likewise.
|
||||
(resume_section_map_updates_cleanup): Likewise.
|
||||
* objfiles.c (objfile_pspace_info): New field "inhibit_updates".
|
||||
(find_pc_section): Do not update the section map if
|
||||
inhibit_updates is set.
|
||||
(inhibit_section_map_updates): New function.
|
||||
(resume_section_map_updates): Likewise.
|
||||
(resume_section_map_updates_cleanup): Likewise.
|
||||
* solib-svr4.c (svr4_handle_solib_event): Inhibit section map
|
||||
updates for calls to evaluate_probe_argument.
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/objfiles.h
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/objfiles.h 2013-01-18 23:18:16.862315673 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/objfiles.h 2013-01-18 23:18:36.702343482 +0100
|
||||
@@ -508,6 +508,22 @@ extern int in_plt_section (CORE_ADDR, ch
|
||||
modules. */
|
||||
DECLARE_REGISTRY(objfile);
|
||||
|
||||
+/* In normal use, the section map will be rebuilt by FIND_PC_SECTION
|
||||
+ if objfiles have been added, removed or relocated since it was last
|
||||
+ called. Calling INHIBIT_SECTION_MAP_UPDATES will inhibit this
|
||||
+ behavior until RESUME_SECTION_MAP_UPDATES is called. If you call
|
||||
+ INHIBIT_SECTION_MAP_UPDATES you must ensure that every call to
|
||||
+ FIND_PC_SECTION in the inhibited region relates to a section that
|
||||
+ is already in the section map and has not since been removed or
|
||||
+ relocated. */
|
||||
+extern void inhibit_section_map_updates (void);
|
||||
+
|
||||
+/* Resume automatically rebuilding the section map as required. */
|
||||
+extern void resume_section_map_updates (void);
|
||||
+
|
||||
+/* Version of the above suitable for use as a cleanup. */
|
||||
+extern void resume_section_map_updates_cleanup (void *arg);
|
||||
+
|
||||
extern void default_iterate_over_objfiles_in_search_order
|
||||
(struct gdbarch *gdbarch,
|
||||
iterate_over_objfiles_in_search_order_cb_ftype *cb,
|
||||
Index: gdb-7.5.50.20130118/gdb/objfiles.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/objfiles.c 2013-01-18 23:18:13.647311006 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/objfiles.c 2013-01-18 23:18:16.862315673 +0100
|
||||
@@ -69,6 +69,9 @@ struct objfile_pspace_info
|
||||
int objfiles_changed_p;
|
||||
struct obj_section **sections;
|
||||
int num_sections;
|
||||
+
|
||||
+ /* Nonzero if section map updates should be inhibited. */
|
||||
+ int inhibit_updates;
|
||||
};
|
||||
|
||||
/* Per-program-space data key. */
|
||||
@@ -1356,7 +1359,7 @@ find_pc_section (CORE_ADDR pc)
|
||||
return s;
|
||||
|
||||
pspace_info = get_objfile_pspace_data (current_program_space);
|
||||
- if (pspace_info->objfiles_changed_p != 0)
|
||||
+ if (pspace_info->objfiles_changed_p && !pspace_info->inhibit_updates)
|
||||
{
|
||||
update_section_map (current_program_space,
|
||||
&pspace_info->sections,
|
||||
@@ -1415,6 +1418,30 @@ objfiles_changed (void)
|
||||
get_objfile_pspace_data (current_program_space)->objfiles_changed_p = 1;
|
||||
}
|
||||
|
||||
+/* See comments in objfiles.h. */
|
||||
+
|
||||
+void
|
||||
+inhibit_section_map_updates (void)
|
||||
+{
|
||||
+ get_objfile_pspace_data (current_program_space)->inhibit_updates = 1;
|
||||
+}
|
||||
+
|
||||
+/* See comments in objfiles.h. */
|
||||
+
|
||||
+void
|
||||
+resume_section_map_updates (void)
|
||||
+{
|
||||
+ get_objfile_pspace_data (current_program_space)->inhibit_updates = 0;
|
||||
+}
|
||||
+
|
||||
+/* See comments in objfiles.h. */
|
||||
+
|
||||
+void
|
||||
+resume_section_map_updates_cleanup (void *arg)
|
||||
+{
|
||||
+ resume_section_map_updates ();
|
||||
+}
|
||||
+
|
||||
/* The default implementation for the "iterate_over_objfiles_in_search_order"
|
||||
gdbarch method. It is equivalent to use the ALL_OBJFILES macro,
|
||||
searching the objfiles in the order they are stored internally,
|
||||
Index: gdb-7.5.50.20130118/gdb/solib-svr4.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/solib-svr4.c 2013-01-18 23:18:13.649311010 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/solib-svr4.c 2013-01-18 23:18:16.863315675 +0100
|
||||
@@ -1849,6 +1849,7 @@ svr4_handle_solib_event (bpstat bs)
|
||||
struct svr4_info *info = get_svr4_info ();
|
||||
struct probe_and_info buf, *pi = &buf;
|
||||
enum probe_action action;
|
||||
+ struct cleanup *cleanups = NULL;
|
||||
struct value *val;
|
||||
LONGEST lmid;
|
||||
CORE_ADDR debug_base, lm = 0;
|
||||
@@ -1872,6 +1873,19 @@ svr4_handle_solib_event (bpstat bs)
|
||||
if (action == NAMESPACE_NO_ACTION)
|
||||
return;
|
||||
|
||||
+ /* EVALUATE_PROBE_ARGUMENT looks up symbols in the dynamic linker
|
||||
+ using FIND_PC_SECTION. FIND_PC_SECTION is accelerated by a cache
|
||||
+ called the section map. The section map is invalidated every
|
||||
+ time a shared library is loaded or unloaded, and if the inferior
|
||||
+ is generating a lot of shared library events then the section map
|
||||
+ will be updated every time SVR4_HANDLE_SOLIB_EVENT is called.
|
||||
+ We called FIND_PC_SECTION in SVR4_CREATE_SOLIB_EVENT_BREAKPOINTS,
|
||||
+ so we can guarantee that the dynamic linker's sections are in the
|
||||
+ section map. We can therefore inhibit section map updates across
|
||||
+ these calls to EVALUATE_PROBE_ARGUMENT and save a lot of time. */
|
||||
+ inhibit_section_map_updates ();
|
||||
+ cleanups = make_cleanup (resume_section_map_updates_cleanup, NULL);
|
||||
+
|
||||
val = evaluate_probe_argument (pi->probe, 0);
|
||||
if (val == NULL)
|
||||
goto error;
|
||||
@@ -1903,6 +1917,9 @@ svr4_handle_solib_event (bpstat bs)
|
||||
action = NAMESPACE_RELOAD;
|
||||
}
|
||||
|
||||
+ do_cleanups (cleanups);
|
||||
+ cleanups = NULL;
|
||||
+
|
||||
if (action == NAMESPACE_UPDATE_OR_RELOAD)
|
||||
{
|
||||
if (namespace_update_incremental (info, lmid, lm, is_initial_ns))
|
||||
@@ -1925,6 +1942,8 @@ svr4_handle_solib_event (bpstat bs)
|
||||
warning (_("Probes-based dynamic linker interface failed.\n"
|
||||
"Reverting to original interface.\n"));
|
||||
|
||||
+ if (cleanups != NULL)
|
||||
+ do_cleanups (cleanups);
|
||||
free_namespace_table (info);
|
||||
free_probes (info);
|
||||
info->using_probes = 0;
|
@ -1,30 +0,0 @@
|
||||
commit 21fd080d18f280c19fdc5489726dcd6c66eb5fbf
|
||||
Author: Gary Benson <gbenson@redhat.com>
|
||||
Date: Tue Jan 8 12:12:14 2013 +0000
|
||||
|
||||
Also stop on "map_failed" where appropriate
|
||||
|
||||
Removed a comment patch hunk.
|
||||
|
||||
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
|
||||
index 5eb84ba..a46fd74 100644
|
||||
--- a/gdb/solib-svr4.c
|
||||
+++ b/gdb/solib-svr4.c
|
||||
@@ -160,6 +160,7 @@ static const struct probe_info probe_info[] =
|
||||
{ "init_start", NAMESPACE_NO_ACTION },
|
||||
{ "init_complete", NAMESPACE_RELOAD },
|
||||
{ "map_start", NAMESPACE_NO_ACTION },
|
||||
+ { "map_failed", NAMESPACE_NO_ACTION },
|
||||
{ "reloc_complete", NAMESPACE_UPDATE_OR_RELOAD },
|
||||
{ "unmap_start", NAMESPACE_NO_ACTION },
|
||||
{ "unmap_complete", NAMESPACE_RELOAD },
|
||||
@@ -2056,6 +2058,9 @@ svr4_create_solib_event_breakpoints (struct gdbarch *gdbarch,
|
||||
info->probes[i] = find_probes_in_objfile (os->objfile, "rtld",
|
||||
name);
|
||||
|
||||
+ if (!strcmp (name, "rtld_map_failed"))
|
||||
+ continue;
|
||||
+
|
||||
if (!VEC_length (probe_p, info->probes[i]))
|
||||
{
|
||||
free_probes (info);
|
@ -1,307 +0,0 @@
|
||||
commit 5bfdc32cd3bf373c3b02e1fd864ed8ceab0292b2
|
||||
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
Date: Mon Aug 8 12:08:53 2011 +0200
|
||||
|
||||
+testcase
|
||||
|
||||
Index: gdb-7.4.50.20120714/gdb/testsuite/gdb.threads/dlopen-libpthread-lib.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.4.50.20120714/gdb/testsuite/gdb.threads/dlopen-libpthread-lib.c 2012-07-15 08:51:38.238701282 +0200
|
||||
@@ -0,0 +1,40 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
+ Copyright 2011 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 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 <pthread.h>
|
||||
+#include <assert.h>
|
||||
+
|
||||
+static void *
|
||||
+tfunc (void *arg)
|
||||
+{
|
||||
+ void (*notifyp) (void) = arg;
|
||||
+
|
||||
+ notifyp ();
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+f (void (*notifyp) (void))
|
||||
+{
|
||||
+ pthread_t t;
|
||||
+ int i;
|
||||
+
|
||||
+ i = pthread_create (&t, NULL, tfunc, notifyp);
|
||||
+ assert (i == 0);
|
||||
+
|
||||
+ i = pthread_join (t, NULL);
|
||||
+ assert (i == 0);
|
||||
+}
|
||||
Index: gdb-7.4.50.20120714/gdb/testsuite/gdb.threads/dlopen-libpthread.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.4.50.20120714/gdb/testsuite/gdb.threads/dlopen-libpthread.c 2012-07-15 08:51:38.239701277 +0200
|
||||
@@ -0,0 +1,46 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
+ Copyright 2011 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 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 <dlfcn.h>
|
||||
+#include <stddef.h>
|
||||
+#include <assert.h>
|
||||
+
|
||||
+static const char *volatile filename;
|
||||
+
|
||||
+static void
|
||||
+notify (void)
|
||||
+{
|
||||
+ filename = NULL; /* notify-here */
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+main (void)
|
||||
+{
|
||||
+ void *h;
|
||||
+ void (*fp) (void (*) (void));
|
||||
+
|
||||
+ assert (filename != NULL);
|
||||
+ h = dlopen (filename, RTLD_LAZY);
|
||||
+ assert (h != NULL);
|
||||
+
|
||||
+ fp = dlsym (h, "f");
|
||||
+ assert (fp != NULL);
|
||||
+
|
||||
+ fp (notify);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
Index: gdb-7.4.50.20120714/gdb/testsuite/gdb.threads/dlopen-libpthread.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.4.50.20120714/gdb/testsuite/gdb.threads/dlopen-libpthread.exp 2012-07-15 09:08:01.760258588 +0200
|
||||
@@ -0,0 +1,74 @@
|
||||
+# Copyright 2011 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 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/>.
|
||||
+
|
||||
+if {![istarget *-linux*] || [skip_shlib_tests]} {
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+load_lib prelink-support.exp
|
||||
+
|
||||
+set testfile "dlopen-libpthread"
|
||||
+set srcmainfile ${testfile}.c
|
||||
+set srclibfile ${testfile}-lib.c
|
||||
+set executable ${testfile}
|
||||
+set binfile_lib ${objdir}/${subdir}/${executable}.so
|
||||
+set binfile ${objdir}/${subdir}/${executable}
|
||||
+set lib_dlopen [shlib_target_file ${executable}.so]
|
||||
+
|
||||
+# Use build_executable_own_libs as prelinked libpthread.so can produce false
|
||||
+# PASS - it is OK if GDB processes it still before relocation.
|
||||
+
|
||||
+set relink_args [build_executable_own_libs ${testfile}.exp ${executable}.so $srclibfile {debug shlib_pthreads} no]
|
||||
+if {$relink_args == "" || ![prelink_no $relink_args]
|
||||
+ || [prepare_for_testing ${testfile}.exp ${executable} ${srcmainfile} {debug shlib_load}] } {
|
||||
+ return -1
|
||||
+}
|
||||
+gdb_load_shlibs $binfile_lib
|
||||
+
|
||||
+if { ![runto_main] } {
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+set test "info probes all rtld rtld_map_complete"
|
||||
+gdb_test_multiple $test $test {
|
||||
+ -re "\[ \t\]rtld_map_complete\[ \t\]+0x\[0-9a-f\]+.*\r\n$gdb_prompt $" {
|
||||
+ pass $test
|
||||
+ }
|
||||
+ -re "No probes matched\\.\r\n$gdb_prompt $" {
|
||||
+ xfail $test
|
||||
+ untested ${testfile}.exp
|
||||
+ return
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+set test "libpthread.so not found"
|
||||
+gdb_test_multiple "info sharedlibrary" $test {
|
||||
+ -re "/libpthread\\.so.*\r\n$gdb_prompt $" {
|
||||
+ fail $test
|
||||
+ }
|
||||
+ -re "/libc\\.so.*\r\n$gdb_prompt $" {
|
||||
+ pass $test
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+gdb_test "set variable filename=\"$lib_dlopen\""
|
||||
+
|
||||
+gdb_breakpoint "notify"
|
||||
+
|
||||
+# The error was:
|
||||
+# Cannot find new threads: generic error
|
||||
+gdb_continue_to_breakpoint "notify" ".* notify-here .*"
|
||||
+
|
||||
+gdb_test "info sharedlibrary" {/libpthread\.so.*} "libpthread.so found"
|
||||
Index: gdb-7.4.50.20120714/gdb/testsuite/lib/gdb.exp
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120714.orig/gdb/testsuite/lib/gdb.exp 2012-07-15 08:51:36.803709222 +0200
|
||||
+++ gdb-7.4.50.20120714/gdb/testsuite/lib/gdb.exp 2012-07-15 09:02:41.983028197 +0200
|
||||
@@ -3774,22 +3774,6 @@ proc build_executable_from_specs {testna
|
||||
|
||||
set binfile [standard_output_file $executable]
|
||||
|
||||
- set objects {}
|
||||
- set i 0
|
||||
- foreach {s local_options} $args {
|
||||
- if { [gdb_compile "${srcdir}/${subdir}/${s}" "${binfile}${i}.o" object $local_options] != "" } {
|
||||
- untested $testname
|
||||
- return -1
|
||||
- }
|
||||
- lappend objects "${binfile}${i}.o"
|
||||
- incr i
|
||||
- }
|
||||
-
|
||||
- if { [gdb_compile $objects "${binfile}" executable $options] != "" } {
|
||||
- untested $testname
|
||||
- return -1
|
||||
- }
|
||||
-
|
||||
set info_options ""
|
||||
if { [lsearch -exact $options "c++"] >= 0 } {
|
||||
set info_options "c++"
|
||||
@@ -3797,6 +3781,42 @@ proc build_executable_from_specs {testna
|
||||
if [get_compiler_info ${info_options}] {
|
||||
return -1
|
||||
}
|
||||
+
|
||||
+ set binfile [standard_output_file $executable]
|
||||
+
|
||||
+ set func gdb_compile
|
||||
+ set func_index [lsearch -regexp $options {^(pthreads|shlib|shlib_pthreads)$}]
|
||||
+ if {$func_index != -1} {
|
||||
+ set func "${func}_[lindex $options $func_index]"
|
||||
+ }
|
||||
+
|
||||
+ # gdb_compile_shlib and gdb_compile_shlib_pthreads do not use the 3rd
|
||||
+ # parameter. They also requires $sources while gdb_compile and
|
||||
+ # gdb_compile_pthreads require $objects. Moreover they ignore any options.
|
||||
+ if [string match gdb_compile_shlib* $func] {
|
||||
+ set sources_path {}
|
||||
+ foreach {s local_options} $args {
|
||||
+ lappend sources_path "${srcdir}/${subdir}/${s}"
|
||||
+ }
|
||||
+ set ret [$func $sources_path "${binfile}" $options]
|
||||
+ } else {
|
||||
+ set objects {}
|
||||
+ set i 0
|
||||
+ foreach {s local_options} $args {
|
||||
+ if { [gdb_compile "${srcdir}/${subdir}/${s}" "${binfile}${i}.o" object $local_options] != "" } {
|
||||
+ untested $testname
|
||||
+ return -1
|
||||
+ }
|
||||
+ lappend objects "${binfile}${i}.o"
|
||||
+ incr i
|
||||
+ }
|
||||
+ set ret [$func $objects "${binfile}" executable $options]
|
||||
+ }
|
||||
+ if { $ret != "" } {
|
||||
+ untested $testname
|
||||
+ return -1
|
||||
+ }
|
||||
+
|
||||
return 0
|
||||
}
|
||||
|
||||
Index: gdb-7.4.50.20120714/gdb/testsuite/lib/prelink-support.exp
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120714.orig/gdb/testsuite/lib/prelink-support.exp 2012-01-04 09:27:56.000000000 +0100
|
||||
+++ gdb-7.4.50.20120714/gdb/testsuite/lib/prelink-support.exp 2012-07-15 08:51:38.243701254 +0200
|
||||
@@ -95,8 +95,9 @@ proc file_copy {src dest} {
|
||||
# Wrap function build_executable so that the resulting executable is fully
|
||||
# self-sufficient (without dependencies on system libraries). Parameter
|
||||
# INTERP may be used to specify a loader (ld.so) to be used that is
|
||||
-# different from the default system one. Libraries on which the executable
|
||||
-# depends are copied into directory DIR. Default DIR value to
|
||||
+# different from the default system one. INTERP can be set to "no" if no ld.so
|
||||
+# copy should be made. Libraries on which the executable depends are copied
|
||||
+# into directory DIR. Default DIR value to
|
||||
# `${objdir}/${subdir}/${EXECUTABLE}.d'.
|
||||
#
|
||||
# In case of success, return a string containing the arguments to be used
|
||||
@@ -151,8 +152,15 @@ proc build_executable_own_libs {testname
|
||||
|
||||
if {$interp == ""} {
|
||||
set interp_system [section_get $binfile .interp]
|
||||
- set interp ${dir}/[file tail $interp_system]
|
||||
- file_copy $interp_system $interp
|
||||
+ if {$interp_system == ""} {
|
||||
+ fail "$test could not find .interp"
|
||||
+ } else {
|
||||
+ set interp ${dir}/[file tail $interp_system]
|
||||
+ file_copy $interp_system $interp
|
||||
+ }
|
||||
+ }
|
||||
+ if {$interp == "no"} {
|
||||
+ set interp ""
|
||||
}
|
||||
|
||||
set dests {}
|
||||
@@ -164,13 +172,19 @@ proc build_executable_own_libs {testname
|
||||
|
||||
# Do not lappend it so that "-rpath $dir" overrides any possible "-rpath"s
|
||||
# specified by the caller to be able to link it for ldd" above.
|
||||
- set options [linsert $options 0 "ldflags=-Wl,--dynamic-linker,$interp,-rpath,$dir"]
|
||||
+ set options [linsert $options 0 "ldflags=-Wl,-rpath,$dir"]
|
||||
+ if {$interp != ""} {
|
||||
+ set options [linsert $options 0 "ldflags=-Wl,--dynamic-linker,$interp"]
|
||||
+ }
|
||||
|
||||
if {[build_executable $testname $executable $sources $options] == -1} {
|
||||
return ""
|
||||
}
|
||||
|
||||
- set prelink_args "--dynamic-linker=$interp --ld-library-path=$dir $binfile $interp [concat $dests]"
|
||||
+ set prelink_args "--ld-library-path=$dir $binfile [concat $dests]"
|
||||
+ if {$interp != ""} {
|
||||
+ set prelink_args "--dynamic-linker=$interp $prelink_args $interp"
|
||||
+ }
|
||||
return $prelink_args
|
||||
}
|
||||
|
@ -1,69 +0,0 @@
|
||||
http://sourceware.org/ml/gdb-patches/2012-08/msg00500.html
|
||||
Subject: [patch] testsuite: Make solib-corrupted.exp untested for probes [Re: [RFA 0/4 take 2] Improved linker-debugger interface]
|
||||
|
||||
On Fri, 17 Aug 2012 22:53:53 +0200, Jan Kratochvil wrote:
|
||||
> It regresses with glibc-debuginfo installed:
|
||||
>
|
||||
> info sharedlibrary^M
|
||||
> From To Syms Read Shared Object Library^M
|
||||
> 0x00007ffff7ddcb20 0x00007ffff7df63d9 Yes /lib64/ld-linux-x86-64.so.2^M
|
||||
> 0x00007ffff7ae05b0 0x00007ffff7b4ad78 Yes /lib64/libm.so.6^M
|
||||
> 0x00007ffff77431a0 0x00007ffff7883cf0 Yes /lib64/libc.so.6^M
|
||||
> (gdb) FAIL: gdb.base/solib-corrupted.exp: corrupted list
|
||||
>
|
||||
> But I guess there is no longer a way to test it with probes so it should just
|
||||
> run some 'info probes' and make this test UNTESTED if rtld probes are
|
||||
> available.
|
||||
|
||||
I had to implement it for Fedora already anyway.
|
||||
|
||||
|
||||
Regards,
|
||||
Jan
|
||||
|
||||
|
||||
gdb/testsuite/
|
||||
2012-08-18 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* gdb.base/solib-corrupted.exp: New variable probes.
|
||||
(info probes): New test.
|
||||
|
||||
diff --git a/gdb/testsuite/gdb.base/solib-corrupted.exp b/gdb/testsuite/gdb.base/solib-corrupted.exp
|
||||
index 84b3b0c..c9f55d6 100644
|
||||
--- a/gdb/testsuite/gdb.base/solib-corrupted.exp
|
||||
+++ b/gdb/testsuite/gdb.base/solib-corrupted.exp
|
||||
@@ -36,6 +36,33 @@ if ![runto_main] {
|
||||
return
|
||||
}
|
||||
|
||||
+# With probes interface GDB no longer scans the inferior library list so its
|
||||
+# corruption cannot be tested. There is no way to disable the probes
|
||||
+# interface.
|
||||
+
|
||||
+set probes { init_start init_complete map_start reloc_complete unmap_start
|
||||
+ unmap_complete }
|
||||
+set test "info probes"
|
||||
+gdb_test_multiple $test $test {
|
||||
+ -re "^rtld\[ \t\]+(?:rtld_)?(\[a-z_\]+)\[ \t\]" {
|
||||
+ set idx [lsearch -exact $probes $expect_out(1,string)]
|
||||
+ if { $idx >= 0 } {
|
||||
+ set probes [lreplace $probes $idx $idx]
|
||||
+ }
|
||||
+ exp_continue
|
||||
+ }
|
||||
+ -re "^\[^\r\n\]*\r\n" {
|
||||
+ exp_continue
|
||||
+ }
|
||||
+ -re "^$gdb_prompt $" {
|
||||
+ }
|
||||
+}
|
||||
+if { [llength $probes] == 0 } {
|
||||
+ xfail $test
|
||||
+ untested "GDB is using probes"
|
||||
+ return
|
||||
+}
|
||||
+
|
||||
gdb_test "info sharedlibrary" "From * To .*" "normal list"
|
||||
|
||||
# GDB checks there for matching L_PREV.
|
||||
|
86
gdb-enable-count-crash.patch
Normal file
86
gdb-enable-count-crash.patch
Normal file
@ -0,0 +1,86 @@
|
||||
http://sourceware.org/ml/gdb-patches/2013-06/msg00788.html
|
||||
Subject: [PATCH] "enable count" user input error handling (PR gdb/15678)
|
||||
|
||||
Typing "enable count" by itself crashes GDB. Also, if you omit the
|
||||
breakpoint number/range, the error message is not very clear:
|
||||
|
||||
(gdb) enable count 2
|
||||
warning: bad breakpoint number at or near ''
|
||||
(gdb) enable count
|
||||
Segmentation fault (core dumped)
|
||||
|
||||
With this patch, the error messages are slightly more helpful:
|
||||
|
||||
(gdb) enable count 2
|
||||
Argument required (one or more breakpoint numbers).
|
||||
(gdb) enable count
|
||||
Argument required (hit count).
|
||||
|
||||
They are not as helpful to the user as I would like, but it's better
|
||||
than crashing. Suggestions are welcome.
|
||||
|
||||
Simon
|
||||
|
||||
gdb/ChangeLog:
|
||||
2013-06-26 Simon Marchi <simon.marchi@ericsson.com>
|
||||
|
||||
* breakpoint.c (map_breakpoint_numbers): Check for empty args
|
||||
string.
|
||||
(enable_count_command): Check args for NULL value.
|
||||
|
||||
gdb/testsuite/ChangeLog:
|
||||
2013-06-26 Simon Marchi <simon.marchi@ericsson.com>
|
||||
|
||||
* gdb.base/ena-dis-br.exp: Test "enable count" for bad user input.
|
||||
---
|
||||
gdb/breakpoint.c | 9 +++++++--
|
||||
gdb/testsuite/gdb.base/ena-dis-br.exp | 8 ++++++++
|
||||
2 files changed, 15 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
|
||||
index ccd05d9..5a0c5ab 100644
|
||||
--- a/gdb/breakpoint.c
|
||||
+++ b/gdb/breakpoint.c
|
||||
@@ -14389,7 +14389,7 @@ map_breakpoint_numbers (char *args, void (*function) (struct breakpoint *,
|
||||
int match;
|
||||
struct get_number_or_range_state state;
|
||||
|
||||
- if (args == 0)
|
||||
+ if (args == 0 || *args == '\0')
|
||||
error_no_arg (_("one or more breakpoint numbers"));
|
||||
|
||||
init_number_or_range (&state, args);
|
||||
@@ -14713,7 +14713,12 @@ do_map_enable_count_breakpoint (struct breakpoint *bpt, void *countptr)
|
||||
static void
|
||||
enable_count_command (char *args, int from_tty)
|
||||
{
|
||||
- int count = get_number (&args);
|
||||
+ int count;
|
||||
+
|
||||
+ if (args == NULL)
|
||||
+ error_no_arg (_("hit count"));
|
||||
+
|
||||
+ count = get_number (&args);
|
||||
|
||||
map_breakpoint_numbers (args, do_map_enable_count_breakpoint, &count);
|
||||
}
|
||||
diff --git a/gdb/testsuite/gdb.base/ena-dis-br.exp b/gdb/testsuite/gdb.base/ena-dis-br.exp
|
||||
index b08b709..82aef64 100644
|
||||
--- a/gdb/testsuite/gdb.base/ena-dis-br.exp
|
||||
+++ b/gdb/testsuite/gdb.base/ena-dis-br.exp
|
||||
@@ -173,6 +173,14 @@ set bp [break_at $bp_location7 "line $bp_location7"]
|
||||
|
||||
set bp2 [break_at marker1 " line ($bp_location15|$bp_location16)"]
|
||||
|
||||
+gdb_test "enable count" \
|
||||
+ "Argument required \\(hit count\\)\\." \
|
||||
+ "enable count missing arguments"
|
||||
+
|
||||
+gdb_test "enable count 2" \
|
||||
+ "Argument required \\(one or more breakpoint numbers\\)\\." \
|
||||
+ "enable count missing last argument"
|
||||
+
|
||||
gdb_test_no_output "enable count 2 $bp" "disable break with count"
|
||||
|
||||
gdb_test "continue" \
|
||||
|
@ -40,16 +40,14 @@ Subject: [PATCH 4/4] add gdb-add-index
|
||||
5 files changed, 57 insertions(+), 1 deletions(-)
|
||||
create mode 100755 gdb/gdb-add-index
|
||||
|
||||
Index: gdb-7.4.50.20120103/gdb/Makefile.in
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/Makefile.in
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120103.orig/gdb/Makefile.in 2012-01-03 05:53:25.000000000 +0100
|
||||
+++ gdb-7.4.50.20120103/gdb/Makefile.in 2012-01-03 15:24:25.693543435 +0100
|
||||
@@ -1033,7 +1033,16 @@ install-only: install-gstack $(CONFIG_IN
|
||||
$(INSTALL_DATA) $(srcdir)/gdb.1 \
|
||||
$(DESTDIR)$(man1dir)/$$transformed_name.1 ; \
|
||||
$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(includedir)/gdb ; \
|
||||
- $(INSTALL_DATA) jit-reader.h $(DESTDIR)$(includedir)/gdb/jit-reader.h
|
||||
+ $(INSTALL_DATA) jit-reader.h $(DESTDIR)$(includedir)/gdb/jit-reader.h; \
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/Makefile.in 2013-08-02 16:31:59.603674194 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/Makefile.in 2013-08-02 16:32:08.260690156 +0200
|
||||
@@ -1070,6 +1070,15 @@ install-only: install-gstack $(CONFIG_IN
|
||||
$(INSTALL_PROGRAM) gcore \
|
||||
$(DESTDIR)$(bindir)/$$transformed_name; \
|
||||
fi
|
||||
+ transformed_name=`t='$(program_transform_name)'; \
|
||||
+ echo gdb-add-index | sed -e "$$t"` ; \
|
||||
+ if test "x$$transformed_name" = x; then \
|
||||
@ -62,11 +60,11 @@ Index: gdb-7.4.50.20120103/gdb/Makefile.in
|
||||
@$(MAKE) DO=install "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do
|
||||
|
||||
install-python:
|
||||
Index: gdb-7.4.50.20120103/gdb/doc/gdb.texinfo
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120103.orig/gdb/doc/gdb.texinfo 2012-01-03 15:20:54.000000000 +0100
|
||||
+++ gdb-7.4.50.20120103/gdb/doc/gdb.texinfo 2012-01-03 15:23:43.295231946 +0100
|
||||
@@ -16228,6 +16228,14 @@ There are currently some limitation on i
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/doc/gdb.texinfo 2013-08-02 16:31:59.616674218 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo 2013-08-02 16:32:08.271690176 +0200
|
||||
@@ -17447,6 +17447,14 @@ There are currently some limitation on i
|
||||
for DWARF debugging information, not stabs. And, they do not
|
||||
currently work for programs using Ada.
|
||||
|
||||
@ -81,10 +79,73 @@ Index: gdb-7.4.50.20120103/gdb/doc/gdb.texinfo
|
||||
@node Symbol Errors
|
||||
@section Errors Reading Symbol Files
|
||||
|
||||
Index: gdb-7.4.50.20120103/gdb/gdb-add-index
|
||||
@@ -43044,6 +43052,7 @@ switch (die->tag)
|
||||
* gdbserver man:: Remote Server for the GNU Debugger man page
|
||||
* gcore man:: Generate a core file of a running program
|
||||
* gdbinit man:: gdbinit scripts
|
||||
+* gdb-add-index man:: Add index files to speed up GDB
|
||||
@end menu
|
||||
|
||||
@node gdb man
|
||||
@@ -43696,6 +43705,54 @@ gdb(1), @code{info -f gdb -n Startup}
|
||||
The full documentation for @value{GDBN} is maintained as a Texinfo manual.
|
||||
If the @code{info} and @code{gdb} programs and @value{GDBN}'s Texinfo
|
||||
documentation are properly installed at your site, the command
|
||||
+
|
||||
+@smallexample
|
||||
+info gdb
|
||||
+@end smallexample
|
||||
+
|
||||
+should give you access to the complete manual.
|
||||
+
|
||||
+@cite{Using GDB: A Guide to the GNU Source-Level Debugger},
|
||||
+Richard M. Stallman and Roland H. Pesch, July 1991.
|
||||
+@end ifset
|
||||
+@c man end
|
||||
+
|
||||
+@node gdb-add-index man
|
||||
+@heading gdb-add-index
|
||||
+
|
||||
+@c man title gdb-add-index Add index files to speed up GDB
|
||||
+
|
||||
+@c man begin SYNOPSIS gdb-add-index
|
||||
+gdb-add-index @var{filename}
|
||||
+@c man end
|
||||
+
|
||||
+@c man begin DESCRIPTION gdb-add-index
|
||||
+When GDB finds a symbol file, it scans the symbols in the file in order
|
||||
+to construct an internal symbol table. This lets most GDB operations
|
||||
+work quickly--at the cost of a delay early on. For large programs,
|
||||
+this delay can be quite lengthy, so GDB provides a way to build an
|
||||
+index, which speeds up startup.
|
||||
+
|
||||
+To determine whether a file contains such an index, use the command
|
||||
+@command{readelf -S filename}: the index is stored in a section named
|
||||
+@code{.gdb_index}. Note that the index is never generated for files that do
|
||||
+not contain DWARF debug information (sections named @code{.debug_*}).
|
||||
+
|
||||
+See more in
|
||||
+@ifset man
|
||||
+the @value{GDBN} manual in node @code{Index Files}
|
||||
+-- shell command @code{info -f gdb -n 'Index Files'}.
|
||||
+@end ifset
|
||||
+@ifclear man
|
||||
+@ref{Index Files}.
|
||||
+@end ifclear
|
||||
+@c man end
|
||||
+
|
||||
+@c man begin SEEALSO gdb-add-index
|
||||
+@ifset man
|
||||
+The full documentation for @value{GDBN} is maintained as a Texinfo manual.
|
||||
+If the @code{info} and @code{gdb} programs and @value{GDBN}'s Texinfo
|
||||
+documentation are properly installed at your site, the command
|
||||
|
||||
@smallexample
|
||||
info gdb
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/gdb-add-index
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.4.50.20120103/gdb/gdb-add-index 2012-01-03 15:23:43.296231942 +0100
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/gdb-add-index 2013-08-02 16:32:08.271690176 +0200
|
||||
@@ -0,0 +1,30 @@
|
||||
+#! /bin/sh
|
||||
+
|
||||
@ -116,3 +177,30 @@ Index: gdb-7.4.50.20120103/gdb/gdb-add-index
|
||||
+fi
|
||||
+
|
||||
+exit 0
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/doc/Makefile.in
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/doc/Makefile.in 2013-08-02 16:31:59.618674222 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/doc/Makefile.in 2013-08-02 16:32:28.828727314 +0200
|
||||
@@ -177,7 +177,7 @@ POD2MAN5 = pod2man --center="GNU Develop
|
||||
--release="gdb-`sed q version.subst`" --section=5
|
||||
|
||||
# List of man pages generated from gdb.texi
|
||||
-MAN1S = gdb.1 gdbserver.1 gcore.1
|
||||
+MAN1S = gdb.1 gdbserver.1 gcore.1 gdb-add-index.1
|
||||
MAN5S = gdbinit.5
|
||||
MANS = $(MAN1S) $(MAN5S)
|
||||
|
||||
@@ -630,6 +630,13 @@ gcore.1: $(GDB_DOC_FILES)
|
||||
mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
|
||||
rm -f gcore.pod
|
||||
|
||||
+gdb-add-index.1: $(GDB_DOC_FILES)
|
||||
+ touch $@
|
||||
+ -$(TEXI2POD) $(MANCONF) -Dgdb-add-index < $(srcdir)/gdb.texinfo > gdb-add-index.pod
|
||||
+ -($(POD2MAN1) gdb-add-index.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||||
+ mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
|
||||
+ rm -f gdb-add-index.pod
|
||||
+
|
||||
gdbinit.5: $(GDB_DOC_FILES)
|
||||
touch $@
|
||||
-$(TEXI2POD) $(MANCONF) -Dgdbinit < $(srcdir)/gdb.texinfo > gdbinit.pod
|
||||
|
@ -1,10 +1,10 @@
|
||||
Index: gdb-7.5.50.20130118/gdb/dwarf2read.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/dwarf2read.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/dwarf2read.c 2013-01-19 21:16:22.437961789 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/dwarf2read.c 2013-01-19 21:24:22.242969266 +0100
|
||||
@@ -15987,6 +15987,25 @@ new_symbol_full (struct die_info *die, s
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/dwarf2read.c 2013-08-02 16:37:51.619241696 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/dwarf2read.c 2013-08-02 16:38:16.159277461 +0200
|
||||
@@ -16654,6 +16654,25 @@ new_symbol_full (struct die_info *die, s
|
||||
/* Cache this symbol's name and the name's demangled form (if any). */
|
||||
SYMBOL_SET_LANGUAGE (sym, cu->language);
|
||||
SYMBOL_SET_LANGUAGE (sym, cu->language, &objfile->objfile_obstack);
|
||||
linkagename = dwarf2_physname (name, die, cu);
|
||||
+
|
||||
+ /* Workaround for:
|
||||
@ -28,10 +28,10 @@ Index: gdb-7.5.50.20130118/gdb/dwarf2read.c
|
||||
SYMBOL_SET_NAMES (sym, linkagename, strlen (linkagename), 0, objfile);
|
||||
|
||||
/* Fortran does not have mangling standard and the mangling does differ
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp 2013-01-19 21:23:09.119827963 +0100
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp 2013-08-02 16:37:51.620241697 +0200
|
||||
@@ -0,0 +1,108 @@
|
||||
+# Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
+
|
||||
|
@ -1,7 +1,25 @@
|
||||
Index: gdb-7.5.50.20130215/gdb/ia64-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/ia64-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/ia64-tdep.c
|
||||
+++ gdb-7.5.50.20130215/gdb/ia64-tdep.c
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/ia64-tdep.c 2013-08-07 15:16:31.000000000 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/ia64-tdep.c 2013-08-07 15:16:34.000000000 +0200
|
||||
@@ -2181,7 +2181,7 @@ static const struct frame_unwind ia64_fr
|
||||
avoid the additional bogus frame
|
||||
#7 0x0000000000000000 in ?? () */
|
||||
|
||||
-static char linux_clone2_code[] =
|
||||
+static unsigned char linux_clone2_code[] =
|
||||
{
|
||||
/* libc/sysdeps/unix/sysv/linux/ia64/clone2.S */
|
||||
0x09, 0x00, 0x20, 0x12, 0x90, 0x11, 0x00, 0x40,
|
||||
@@ -2220,7 +2220,7 @@ static int
|
||||
ia64_linux_clone2_running (struct frame_info *this_frame)
|
||||
{
|
||||
CORE_ADDR pc = get_frame_pc (this_frame);
|
||||
- char buf[LINUX_CLONE_LEN];
|
||||
+ unsigned char buf[LINUX_CLONE_LEN];
|
||||
struct minimal_symbol *minsym;
|
||||
long long instr;
|
||||
|
||||
@@ -2256,7 +2256,7 @@ static int
|
||||
ia64_outermost_frame (struct frame_info *this_frame)
|
||||
{
|
||||
@ -19,57 +37,3 @@ Index: gdb-7.5.50.20130215/gdb/ia64-tdep.c
|
||||
&ia64_clone2_frame_this_id,
|
||||
&ia64_clone2_frame_prev_register,
|
||||
NULL,
|
||||
@@ -2454,7 +2455,7 @@ ia64_sigtramp_frame_prev_register (struc
|
||||
ULONGEST unatN_val;
|
||||
ULONGEST unat;
|
||||
read_memory (cache->saved_regs[IA64_UNAT_REGNUM], (char *) &unat,
|
||||
- register_size (target_gdbarch, IA64_UNAT_REGNUM));
|
||||
+ register_size (gdbarch, IA64_UNAT_REGNUM));
|
||||
unatN_val = (unat & (1LL << (regnum - IA64_NAT0_REGNUM))) != 0;
|
||||
return frame_unwind_got_constant (this_frame, regnum, unatN_val);
|
||||
}
|
||||
@@ -2470,9 +2471,9 @@ ia64_sigtramp_frame_prev_register (struc
|
||||
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));
|
||||
+ register_size (gdbarch, IA64_BSP_REGNUM));
|
||||
read_memory (cache->saved_regs[IA64_CFM_REGNUM], (char *) &cfm,
|
||||
- register_size (target_gdbarch, IA64_CFM_REGNUM));
|
||||
+ register_size (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. */
|
||||
@@ -2496,7 +2497,7 @@ ia64_sigtramp_frame_prev_register (struc
|
||||
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));
|
||||
+ register_size (gdbarch, IA64_RNAT_REGNUM));
|
||||
}
|
||||
else
|
||||
nat_collection = read_memory_integer (nat_addr, 8, BFD_ENDIAN_LITTLE);
|
||||
@@ -2522,9 +2523,9 @@ ia64_sigtramp_frame_prev_register (struc
|
||||
ULONGEST bof;
|
||||
|
||||
read_memory (cache->saved_regs[IA64_BSP_REGNUM], (char *) &bsp,
|
||||
- register_size (target_gdbarch, IA64_BSP_REGNUM));
|
||||
+ register_size (gdbarch, IA64_BSP_REGNUM));
|
||||
read_memory (cache->saved_regs[IA64_CFM_REGNUM], (char *) &cfm,
|
||||
- register_size (target_gdbarch, IA64_CFM_REGNUM));
|
||||
+ register_size (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. */
|
||||
@@ -2564,9 +2565,9 @@ ia64_sigtramp_frame_prev_register (struc
|
||||
ULONGEST cfm;
|
||||
ULONGEST prN_val;
|
||||
read_memory (pr_addr, (char *) &pr,
|
||||
- register_size (target_gdbarch, IA64_PR_REGNUM));
|
||||
+ register_size (gdbarch, IA64_PR_REGNUM));
|
||||
read_memory (cache->saved_regs[IA64_CFM_REGNUM], (char *) &cfm,
|
||||
- register_size (target_gdbarch, IA64_CFM_REGNUM));
|
||||
+ register_size (gdbarch, IA64_CFM_REGNUM));
|
||||
|
||||
/* Get the register rename base for this frame and adjust the
|
||||
* register name to take rotation into account. */
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1877172a7efbf7540290471e64816c9549b24a65e825f0e1a725ac950b4e5029
|
||||
size 11744
|
||||
oid sha256:b475a3ef42507a47b1ea4b7f9a4849287b4c713e5081ec86874eaa7da194f78b
|
||||
size 11754
|
||||
|
@ -1,44 +0,0 @@
|
||||
--- a/gdb/configure
|
||||
+++ b/gdb/configure
|
||||
@@ -14631,6 +14631,10 @@ rm -f core conftest.err conftest.$ac_objext \
|
||||
# Problem does not happen for the recommended libpythonX.Y.so linkage.
|
||||
old_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $PYTHON_CFLAGS"
|
||||
+ old_CPPFLAGS="$CPPFLAGS"
|
||||
+ CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS"
|
||||
+ old_LIBS="$LIBS"
|
||||
+ LIBS="$LIBS $PYTHON_LIBS"
|
||||
if test "$cross_compiling" = yes; then :
|
||||
true
|
||||
else
|
||||
@@ -14657,6 +14661,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
|
||||
fi
|
||||
|
||||
CFLAGS="$old_CFLAGS"
|
||||
+ CPPFLAGS="$old_CPPFLAGS"
|
||||
+ LIBS="$old_LIBS"
|
||||
fi
|
||||
LDFLAGS="$old_LDFLAGS"
|
||||
fi
|
||||
--- a/gdb/configure.ac
|
||||
+++ b/gdb/configure.ac
|
||||
@@ -1576,6 +1576,10 @@ if test "${gdb_native}" = yes; then
|
||||
# Problem does not happen for the recommended libpythonX.Y.so linkage.
|
||||
old_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $PYTHON_CFLAGS"
|
||||
+ old_CPPFLAGS="$CPPFLAGS"
|
||||
+ CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS"
|
||||
+ old_LIBS="$LIBS"
|
||||
+ LIBS="$LIBS $PYTHON_LIBS"
|
||||
AC_RUN_IFELSE(
|
||||
AC_LANG_PROGRAM(
|
||||
[#include "]${have_libpython}[/Python.h"],
|
||||
@@ -1586,6 +1590,8 @@ if test "${gdb_native}" = yes; then
|
||||
return err == 0 ? 0 : 1;]),
|
||||
[dynamic_list=true], [], [true])
|
||||
CFLAGS="$old_CFLAGS"
|
||||
+ CPPFLAGS="$old_CPPFLAGS"
|
||||
+ LIBS="$old_LIBS"
|
||||
fi
|
||||
LDFLAGS="$old_LDFLAGS"
|
||||
fi
|
File diff suppressed because it is too large
Load Diff
@ -96,10 +96,10 @@ Content-Type: text/x-patch
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Content-Disposition: attachment; filename=bitpos-wp.patch
|
||||
|
||||
Index: gdb-7.5.50.20130215/gdb/arm-linux-nat.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/arm-linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/arm-linux-nat.c 2013-02-15 22:40:18.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/arm-linux-nat.c 2013-02-15 22:42:45.988804306 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/arm-linux-nat.c 2013-08-02 16:42:29.565632895 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/arm-linux-nat.c 2013-08-02 16:42:34.094639104 +0200
|
||||
@@ -1105,7 +1105,7 @@ arm_linux_region_ok_for_hw_watchpoint (C
|
||||
|
||||
/* Insert a Hardware breakpoint. */
|
||||
@ -127,10 +127,10 @@ Index: gdb-7.5.50.20130215/gdb/arm-linux-nat.c
|
||||
{
|
||||
return start <= addr && start + length - 1 >= addr;
|
||||
}
|
||||
Index: gdb-7.5.50.20130215/gdb/i386-nat.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/i386-nat.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/i386-nat.c 2013-02-15 22:41:53.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/i386-nat.c 2013-02-15 22:43:14.005838741 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/i386-nat.c 2013-08-02 16:42:29.566632896 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/i386-nat.c 2013-08-02 16:42:34.095639105 +0200
|
||||
@@ -589,7 +589,7 @@ i386_update_inferior_debug_regs (struct
|
||||
of the type TYPE. Return 0 on success, -1 on failure. */
|
||||
|
||||
@ -149,10 +149,10 @@ Index: gdb-7.5.50.20130215/gdb/i386-nat.c
|
||||
struct expression *cond)
|
||||
{
|
||||
struct i386_debug_reg_state *state
|
||||
Index: gdb-7.5.50.20130215/gdb/ia64-linux-nat.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/ia64-linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/ia64-linux-nat.c 2013-02-15 22:34:18.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/ia64-linux-nat.c 2013-02-15 22:42:45.989804309 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/ia64-linux-nat.c 2013-08-02 16:42:29.566632896 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/ia64-linux-nat.c 2013-08-02 16:42:34.095639105 +0200
|
||||
@@ -542,7 +542,7 @@ is_power_of_2 (int val)
|
||||
}
|
||||
|
||||
@ -171,11 +171,11 @@ Index: gdb-7.5.50.20130215/gdb/ia64-linux-nat.c
|
||||
struct expression *cond)
|
||||
{
|
||||
int idx;
|
||||
Index: gdb-7.5.50.20130215/gdb/inf-ttrace.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/inf-ttrace.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/inf-ttrace.c 2013-02-15 22:40:18.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/inf-ttrace.c 2013-02-15 22:42:45.989804309 +0100
|
||||
@@ -313,14 +313,14 @@ inf_ttrace_disable_page_protections (pid
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/inf-ttrace.c 2013-08-02 16:42:29.567632898 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/inf-ttrace.c 2013-08-02 16:42:34.095639105 +0200
|
||||
@@ -314,14 +314,14 @@ inf_ttrace_disable_page_protections (pid
|
||||
type TYPE. */
|
||||
|
||||
static int
|
||||
@ -193,7 +193,7 @@ Index: gdb-7.5.50.20130215/gdb/inf-ttrace.c
|
||||
|
||||
gdb_assert (type == hw_write);
|
||||
|
||||
@@ -337,14 +337,14 @@ inf_ttrace_insert_watchpoint (CORE_ADDR
|
||||
@@ -338,14 +338,14 @@ inf_ttrace_insert_watchpoint (CORE_ADDR
|
||||
type TYPE. */
|
||||
|
||||
static int
|
||||
@ -211,11 +211,11 @@ Index: gdb-7.5.50.20130215/gdb/inf-ttrace.c
|
||||
|
||||
gdb_assert (type == hw_write);
|
||||
|
||||
Index: gdb-7.5.50.20130215/gdb/mips-linux-nat.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/mips-linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/mips-linux-nat.c 2013-02-15 22:40:18.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/mips-linux-nat.c 2013-02-15 22:42:45.990804311 +0100
|
||||
@@ -1017,7 +1017,7 @@ populate_regs_from_watches (struct pt_wa
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/mips-linux-nat.c 2013-08-02 16:42:29.568632899 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/mips-linux-nat.c 2013-08-02 16:42:34.096639106 +0200
|
||||
@@ -644,7 +644,7 @@ mips_linux_new_thread (struct lwp_info *
|
||||
watch. Return zero on success. */
|
||||
|
||||
static int
|
||||
@ -224,7 +224,7 @@ Index: gdb-7.5.50.20130215/gdb/mips-linux-nat.c
|
||||
struct expression *cond)
|
||||
{
|
||||
struct pt_watch_regs regs;
|
||||
@@ -1067,7 +1067,7 @@ mips_linux_insert_watchpoint (CORE_ADDR
|
||||
@@ -697,7 +697,7 @@ mips_linux_insert_watchpoint (CORE_ADDR
|
||||
Return zero on success. */
|
||||
|
||||
static int
|
||||
@ -233,10 +233,10 @@ Index: gdb-7.5.50.20130215/gdb/mips-linux-nat.c
|
||||
struct expression *cond)
|
||||
{
|
||||
int retval;
|
||||
Index: gdb-7.5.50.20130215/gdb/nto-procfs.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/nto-procfs.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/nto-procfs.c 2013-01-01 07:32:47.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/nto-procfs.c 2013-02-15 22:42:45.990804311 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/nto-procfs.c 2013-08-02 16:42:29.568632899 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/nto-procfs.c 2013-08-02 16:42:34.096639106 +0200
|
||||
@@ -69,10 +69,10 @@ static ptid_t do_attach (ptid_t ptid);
|
||||
|
||||
static int procfs_can_use_hw_breakpoint (int, int, int);
|
||||
@ -267,11 +267,11 @@ Index: gdb-7.5.50.20130215/gdb/nto-procfs.c
|
||||
struct expression *cond)
|
||||
{
|
||||
return procfs_hw_watchpoint (addr, len, type);
|
||||
Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/ppc-linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/ppc-linux-nat.c 2013-02-15 22:40:18.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/ppc-linux-nat.c 2013-02-15 22:42:45.991804313 +0100
|
||||
@@ -1838,11 +1838,11 @@ can_use_watchpoint_cond_accel (void)
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/ppc-linux-nat.c 2013-08-02 16:42:29.570632902 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/ppc-linux-nat.c 2013-08-02 16:42:34.097639108 +0200
|
||||
@@ -1853,11 +1853,11 @@ can_use_watchpoint_cond_accel (void)
|
||||
CONDITION_VALUE will hold the value which should be put in the
|
||||
DVC register. */
|
||||
static void
|
||||
@ -286,7 +286,7 @@ Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
|
||||
CORE_ADDR addr_end_data, addr_end_dvc;
|
||||
|
||||
/* The DVC register compares bytes within fixed-length windows which
|
||||
@@ -1929,7 +1929,7 @@ num_memory_accesses (struct value *v)
|
||||
@@ -1944,7 +1944,7 @@ num_memory_accesses (struct value *v)
|
||||
of the constant. */
|
||||
static int
|
||||
check_condition (CORE_ADDR watch_addr, struct expression *cond,
|
||||
@ -295,7 +295,7 @@ Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
|
||||
{
|
||||
int pc = 1, num_accesses_left, num_accesses_right;
|
||||
struct value *left_val, *right_val, *left_chain, *right_chain;
|
||||
@@ -1996,7 +1996,7 @@ check_condition (CORE_ADDR watch_addr, s
|
||||
@@ -2011,7 +2011,7 @@ check_condition (CORE_ADDR watch_addr, s
|
||||
the condition expression, thus only triggering the watchpoint when it is
|
||||
true. */
|
||||
static int
|
||||
@ -304,7 +304,7 @@ Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
|
||||
struct expression *cond)
|
||||
{
|
||||
CORE_ADDR data_value;
|
||||
@@ -2013,7 +2013,7 @@ ppc_linux_can_accel_watchpoint_condition
|
||||
@@ -2028,7 +2028,7 @@ ppc_linux_can_accel_watchpoint_condition
|
||||
|
||||
static void
|
||||
create_watchpoint_request (struct ppc_hw_breakpoint *p, CORE_ADDR addr,
|
||||
@ -313,7 +313,7 @@ Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
|
||||
int insert)
|
||||
{
|
||||
if (len == 1
|
||||
@@ -2058,7 +2058,7 @@ create_watchpoint_request (struct ppc_hw
|
||||
@@ -2073,7 +2073,7 @@ create_watchpoint_request (struct ppc_hw
|
||||
}
|
||||
|
||||
static int
|
||||
@ -322,7 +322,7 @@ Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
|
||||
struct expression *cond)
|
||||
{
|
||||
struct lwp_info *lp;
|
||||
@@ -2126,7 +2126,7 @@ ppc_linux_insert_watchpoint (CORE_ADDR a
|
||||
@@ -2141,7 +2141,7 @@ ppc_linux_insert_watchpoint (CORE_ADDR a
|
||||
}
|
||||
|
||||
static int
|
||||
@ -331,7 +331,7 @@ Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
|
||||
struct expression *cond)
|
||||
{
|
||||
struct lwp_info *lp;
|
||||
@@ -2266,7 +2266,7 @@ ppc_linux_stopped_by_watchpoint (void)
|
||||
@@ -2292,7 +2292,7 @@ ppc_linux_stopped_by_watchpoint (void)
|
||||
static int
|
||||
ppc_linux_watchpoint_addr_within_range (struct target_ops *target,
|
||||
CORE_ADDR addr,
|
||||
@ -340,10 +340,10 @@ Index: gdb-7.5.50.20130215/gdb/ppc-linux-nat.c
|
||||
{
|
||||
int mask;
|
||||
|
||||
Index: gdb-7.5.50.20130215/gdb/procfs.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/procfs.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/procfs.c 2013-02-15 22:40:18.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/procfs.c 2013-02-15 22:42:45.992804315 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/procfs.c 2013-08-02 16:42:29.572632904 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/procfs.c 2013-08-02 16:42:34.098639109 +0200
|
||||
@@ -2433,7 +2433,7 @@ procfs_address_to_host_pointer (CORE_ADD
|
||||
#endif
|
||||
|
||||
@ -380,11 +380,11 @@ Index: gdb-7.5.50.20130215/gdb/procfs.c
|
||||
struct expression *cond)
|
||||
{
|
||||
return procfs_set_watchpoint (inferior_ptid, addr, 0, 0, 0);
|
||||
Index: gdb-7.5.50.20130215/gdb/remote-m32r-sdi.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/remote-m32r-sdi.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/remote-m32r-sdi.c 2013-01-01 07:32:50.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/remote-m32r-sdi.c 2013-02-15 22:42:45.993804317 +0100
|
||||
@@ -1417,14 +1417,15 @@ m32r_can_use_hw_watchpoint (int type, in
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/remote-m32r-sdi.c 2013-08-02 16:42:29.573632906 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/remote-m32r-sdi.c 2013-08-02 16:42:34.099639111 +0200
|
||||
@@ -1416,14 +1416,15 @@ m32r_can_use_hw_watchpoint (int type, in
|
||||
watchpoint. */
|
||||
|
||||
static int
|
||||
@ -403,7 +403,7 @@ Index: gdb-7.5.50.20130215/gdb/remote-m32r-sdi.c
|
||||
|
||||
for (i = 0; i < MAX_ACCESS_BREAKS; i++)
|
||||
{
|
||||
@@ -1442,14 +1443,15 @@ m32r_insert_watchpoint (CORE_ADDR addr,
|
||||
@@ -1441,14 +1442,15 @@ m32r_insert_watchpoint (CORE_ADDR addr,
|
||||
}
|
||||
|
||||
static int
|
||||
@ -422,11 +422,11 @@ Index: gdb-7.5.50.20130215/gdb/remote-m32r-sdi.c
|
||||
|
||||
for (i = 0; i < MAX_ACCESS_BREAKS; i++)
|
||||
{
|
||||
Index: gdb-7.5.50.20130215/gdb/remote-mips.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/remote-mips.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/remote-mips.c 2013-01-01 07:32:50.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/remote-mips.c 2013-02-15 22:42:45.994804319 +0100
|
||||
@@ -2419,7 +2419,7 @@ calculate_mask (CORE_ADDR addr, int len)
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/remote-mips.c 2013-08-02 16:42:29.574632907 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/remote-mips.c 2013-08-02 16:42:34.100639112 +0200
|
||||
@@ -2426,7 +2426,7 @@ calculate_mask (CORE_ADDR addr, int len)
|
||||
watchpoint. */
|
||||
|
||||
static int
|
||||
@ -435,7 +435,7 @@ Index: gdb-7.5.50.20130215/gdb/remote-mips.c
|
||||
struct expression *cond)
|
||||
{
|
||||
if (mips_set_breakpoint (addr, len, type))
|
||||
@@ -2431,7 +2431,7 @@ mips_insert_watchpoint (CORE_ADDR addr,
|
||||
@@ -2438,7 +2438,7 @@ mips_insert_watchpoint (CORE_ADDR addr,
|
||||
/* Remove a watchpoint. */
|
||||
|
||||
static int
|
||||
@ -444,11 +444,11 @@ Index: gdb-7.5.50.20130215/gdb/remote-mips.c
|
||||
struct expression *cond)
|
||||
{
|
||||
if (mips_clear_breakpoint (addr, len, type))
|
||||
Index: gdb-7.5.50.20130215/gdb/remote.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/remote.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/remote.c 2013-02-15 22:40:18.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/remote.c 2013-02-15 22:42:45.996804323 +0100
|
||||
@@ -8155,7 +8155,7 @@ watchpoint_to_Z_packet (int type)
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/remote.c 2013-08-02 16:42:29.577632911 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/remote.c 2013-08-02 16:42:34.103639116 +0200
|
||||
@@ -8277,7 +8277,7 @@ watchpoint_to_Z_packet (int type)
|
||||
}
|
||||
|
||||
static int
|
||||
@ -457,7 +457,7 @@ Index: gdb-7.5.50.20130215/gdb/remote.c
|
||||
struct expression *cond)
|
||||
{
|
||||
struct remote_state *rs = get_remote_state ();
|
||||
@@ -8170,7 +8170,7 @@ remote_insert_watchpoint (CORE_ADDR addr
|
||||
@@ -8297,7 +8297,7 @@ remote_insert_watchpoint (CORE_ADDR addr
|
||||
p = strchr (rs->buf, '\0');
|
||||
addr = remote_address_masked (addr);
|
||||
p += hexnumstr (p, (ULONGEST) addr);
|
||||
@ -466,7 +466,7 @@ Index: gdb-7.5.50.20130215/gdb/remote.c
|
||||
|
||||
putpkt (rs->buf);
|
||||
getpkt (&rs->buf, &rs->buf_size, 0);
|
||||
@@ -8190,7 +8190,7 @@ remote_insert_watchpoint (CORE_ADDR addr
|
||||
@@ -8317,7 +8317,7 @@ remote_insert_watchpoint (CORE_ADDR addr
|
||||
|
||||
static int
|
||||
remote_watchpoint_addr_within_range (struct target_ops *target, CORE_ADDR addr,
|
||||
@ -475,7 +475,7 @@ Index: gdb-7.5.50.20130215/gdb/remote.c
|
||||
{
|
||||
CORE_ADDR diff = remote_address_masked (addr - start);
|
||||
|
||||
@@ -8199,7 +8199,7 @@ remote_watchpoint_addr_within_range (str
|
||||
@@ -8326,7 +8326,7 @@ remote_watchpoint_addr_within_range (str
|
||||
|
||||
|
||||
static int
|
||||
@ -484,7 +484,7 @@ Index: gdb-7.5.50.20130215/gdb/remote.c
|
||||
struct expression *cond)
|
||||
{
|
||||
struct remote_state *rs = get_remote_state ();
|
||||
@@ -8214,7 +8214,7 @@ remote_remove_watchpoint (CORE_ADDR addr
|
||||
@@ -8346,7 +8346,7 @@ remote_remove_watchpoint (CORE_ADDR addr
|
||||
p = strchr (rs->buf, '\0');
|
||||
addr = remote_address_masked (addr);
|
||||
p += hexnumstr (p, (ULONGEST) addr);
|
||||
@ -493,10 +493,10 @@ Index: gdb-7.5.50.20130215/gdb/remote.c
|
||||
putpkt (rs->buf);
|
||||
getpkt (&rs->buf, &rs->buf_size, 0);
|
||||
|
||||
Index: gdb-7.5.50.20130215/gdb/s390-nat.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/s390-nat.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/s390-nat.c 2013-02-15 22:40:18.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/s390-nat.c 2013-02-15 22:42:45.997804325 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/s390-nat.c 2013-08-02 16:42:29.578632913 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/s390-nat.c 2013-08-02 16:42:34.103639116 +0200
|
||||
@@ -516,7 +516,7 @@ s390_fix_watch_points (struct lwp_info *
|
||||
}
|
||||
|
||||
@ -515,21 +515,20 @@ Index: gdb-7.5.50.20130215/gdb/s390-nat.c
|
||||
struct expression *cond)
|
||||
{
|
||||
struct lwp_info *lp;
|
||||
Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/target.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/target.c 2013-02-15 22:40:18.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/target.c 2013-02-15 22:42:45.997804325 +0100
|
||||
@@ -49,7 +49,8 @@ static void target_info (char *, int);
|
||||
static void default_terminal_info (char *, int);
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/target.c 2013-08-02 16:42:29.580632915 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/target.c 2013-08-02 16:42:52.160663787 +0200
|
||||
@@ -49,7 +49,7 @@ static void target_info (char *, int);
|
||||
static void default_terminal_info (const char *, int);
|
||||
|
||||
static int default_watchpoint_addr_within_range (struct target_ops *,
|
||||
- CORE_ADDR, CORE_ADDR, int);
|
||||
+ CORE_ADDR, CORE_ADDR,
|
||||
+ LONGEST);
|
||||
+ CORE_ADDR, CORE_ADDR, LONGEST);
|
||||
|
||||
static int default_region_ok_for_hw_watchpoint (CORE_ADDR, LONGEST);
|
||||
|
||||
@@ -114,10 +115,10 @@ static int debug_to_insert_hw_breakpoint
|
||||
@@ -114,10 +114,10 @@ static int debug_to_insert_hw_breakpoint
|
||||
static int debug_to_remove_hw_breakpoint (struct gdbarch *,
|
||||
struct bp_target_info *);
|
||||
|
||||
@ -542,7 +541,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
struct expression *);
|
||||
|
||||
static int debug_to_stopped_by_watchpoint (void);
|
||||
@@ -125,11 +126,12 @@ static int debug_to_stopped_by_watchpoin
|
||||
@@ -125,11 +125,12 @@ static int debug_to_stopped_by_watchpoin
|
||||
static int debug_to_stopped_data_address (struct target_ops *, CORE_ADDR *);
|
||||
|
||||
static int debug_to_watchpoint_addr_within_range (struct target_ops *,
|
||||
@ -557,7 +556,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
struct expression *);
|
||||
|
||||
static void debug_to_terminal_init (void);
|
||||
@@ -751,10 +753,10 @@ update_current_target (void)
|
||||
@@ -790,10 +791,10 @@ update_current_target (void)
|
||||
(int (*) (struct gdbarch *, struct bp_target_info *))
|
||||
return_minus_one);
|
||||
de_fault (to_insert_watchpoint,
|
||||
@ -570,7 +569,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
return_minus_one);
|
||||
de_fault (to_stopped_by_watchpoint,
|
||||
(int (*) (void))
|
||||
@@ -767,7 +769,7 @@ update_current_target (void)
|
||||
@@ -806,7 +807,7 @@ update_current_target (void)
|
||||
de_fault (to_region_ok_for_hw_watchpoint,
|
||||
default_region_ok_for_hw_watchpoint);
|
||||
de_fault (to_can_accel_watchpoint_condition,
|
||||
@ -579,7 +578,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
return_zero);
|
||||
de_fault (to_terminal_init,
|
||||
(void (*) (void))
|
||||
@@ -3558,7 +3560,7 @@ default_region_ok_for_hw_watchpoint (COR
|
||||
@@ -3594,7 +3595,7 @@ default_region_ok_for_hw_watchpoint (COR
|
||||
static int
|
||||
default_watchpoint_addr_within_range (struct target_ops *target,
|
||||
CORE_ADDR addr,
|
||||
@ -588,7 +587,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
{
|
||||
return addr >= start && addr < start + length;
|
||||
}
|
||||
@@ -4265,7 +4267,7 @@ debug_to_region_ok_for_hw_watchpoint (CO
|
||||
@@ -4555,7 +4556,7 @@ debug_to_region_ok_for_hw_watchpoint (CO
|
||||
}
|
||||
|
||||
static int
|
||||
@ -597,7 +596,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
struct expression *cond)
|
||||
{
|
||||
int retval;
|
||||
@@ -4275,8 +4277,8 @@ debug_to_can_accel_watchpoint_condition
|
||||
@@ -4565,8 +4566,8 @@ debug_to_can_accel_watchpoint_condition
|
||||
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
"target_can_accel_watchpoint_condition "
|
||||
@ -608,7 +607,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
host_address_to_string (cond), (unsigned long) retval);
|
||||
return retval;
|
||||
}
|
||||
@@ -4311,7 +4313,7 @@ debug_to_stopped_data_address (struct ta
|
||||
@@ -4601,7 +4602,7 @@ debug_to_stopped_data_address (struct ta
|
||||
static int
|
||||
debug_to_watchpoint_addr_within_range (struct target_ops *target,
|
||||
CORE_ADDR addr,
|
||||
@ -617,7 +616,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
{
|
||||
int retval;
|
||||
|
||||
@@ -4319,9 +4321,9 @@ debug_to_watchpoint_addr_within_range (s
|
||||
@@ -4609,9 +4610,9 @@ debug_to_watchpoint_addr_within_range (s
|
||||
start, length);
|
||||
|
||||
fprintf_filtered (gdb_stdlog,
|
||||
@ -629,7 +628,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
return retval;
|
||||
}
|
||||
|
||||
@@ -4356,7 +4358,7 @@ debug_to_remove_hw_breakpoint (struct gd
|
||||
@@ -4646,7 +4647,7 @@ debug_to_remove_hw_breakpoint (struct gd
|
||||
}
|
||||
|
||||
static int
|
||||
@ -638,7 +637,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
struct expression *cond)
|
||||
{
|
||||
int retval;
|
||||
@@ -4364,14 +4366,14 @@ debug_to_insert_watchpoint (CORE_ADDR ad
|
||||
@@ -4654,14 +4655,14 @@ debug_to_insert_watchpoint (CORE_ADDR ad
|
||||
retval = debug_target.to_insert_watchpoint (addr, len, type, cond);
|
||||
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
@ -656,7 +655,7 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
struct expression *cond)
|
||||
{
|
||||
int retval;
|
||||
@@ -4379,8 +4381,8 @@ debug_to_remove_watchpoint (CORE_ADDR ad
|
||||
@@ -4669,8 +4670,8 @@ debug_to_remove_watchpoint (CORE_ADDR ad
|
||||
retval = debug_target.to_remove_watchpoint (addr, len, type, cond);
|
||||
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
@ -667,11 +666,11 @@ Index: gdb-7.5.50.20130215/gdb/target.c
|
||||
host_address_to_string (cond), (unsigned long) retval);
|
||||
return retval;
|
||||
}
|
||||
Index: gdb-7.5.50.20130215/gdb/target.h
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/target.h
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/target.h 2013-02-15 22:40:18.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/target.h 2013-02-15 22:42:45.998804328 +0100
|
||||
@@ -466,8 +466,8 @@ struct target_ops
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/target.h 2013-08-02 16:42:29.580632915 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/target.h 2013-08-02 16:42:34.105639119 +0200
|
||||
@@ -373,8 +373,8 @@ struct target_ops
|
||||
|
||||
/* Documentation of what the two routines below are expected to do is
|
||||
provided with the corresponding target_* macros. */
|
||||
@ -682,7 +681,7 @@ Index: gdb-7.5.50.20130215/gdb/target.h
|
||||
|
||||
int (*to_insert_mask_watchpoint) (struct target_ops *,
|
||||
CORE_ADDR, CORE_ADDR, int);
|
||||
@@ -478,13 +478,13 @@ struct target_ops
|
||||
@@ -385,13 +385,13 @@ struct target_ops
|
||||
int to_have_continuable_watchpoint;
|
||||
int (*to_stopped_data_address) (struct target_ops *, CORE_ADDR *);
|
||||
int (*to_watchpoint_addr_within_range) (struct target_ops *,
|
||||
|
@ -137,10 +137,10 @@ Content-Type: text/x-patch
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Content-Disposition: attachment; filename=bitpos-tdep.patch
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/alpha-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/alpha-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/alpha-tdep.c 2013-01-18 23:36:59.954290362 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/alpha-tdep.c 2013-01-18 23:37:12.465307566 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/alpha-tdep.c 2013-08-02 16:43:01.128676094 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/alpha-tdep.c 2013-08-02 16:43:04.723681004 +0200
|
||||
@@ -299,18 +299,18 @@ alpha_push_dummy_call (struct gdbarch *g
|
||||
{
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
@ -184,10 +184,10 @@ Index: gdb-7.5.50.20130118/gdb/alpha-tdep.c
|
||||
memcpy (arg_reg_buffer + offset, contents, tlen);
|
||||
offset += tlen;
|
||||
contents += tlen;
|
||||
Index: gdb-7.5.50.20130118/gdb/amd64-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/amd64-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/amd64-tdep.c 2013-01-18 23:36:59.955290365 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/amd64-tdep.c 2013-01-18 23:37:12.466307569 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/amd64-tdep.c 2013-08-02 16:43:01.130676097 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/amd64-tdep.c 2013-08-02 16:43:04.724681006 +0200
|
||||
@@ -616,7 +616,7 @@ amd64_return_value (struct gdbarch *gdba
|
||||
{
|
||||
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
||||
@ -217,10 +217,10 @@ Index: gdb-7.5.50.20130118/gdb/amd64-tdep.c
|
||||
enum amd64_reg_class class[2];
|
||||
int needed_integer_regs = 0;
|
||||
int needed_sse_regs = 0;
|
||||
Index: gdb-7.5.50.20130118/gdb/amd64-windows-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/amd64-windows-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/amd64-windows-tdep.c 2013-01-18 23:36:59.956290369 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/amd64-windows-tdep.c 2013-01-18 23:37:12.466307569 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/amd64-windows-tdep.c 2013-08-02 16:43:01.135676104 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/amd64-windows-tdep.c 2013-08-02 16:43:04.724681006 +0200
|
||||
@@ -79,7 +79,7 @@ amd64_windows_return_value (struct gdbar
|
||||
struct type *type, struct regcache *regcache,
|
||||
gdb_byte *readbuf, const gdb_byte *writebuf)
|
||||
@ -230,11 +230,11 @@ Index: gdb-7.5.50.20130118/gdb/amd64-windows-tdep.c
|
||||
int regnum = -1;
|
||||
|
||||
/* See if our value is returned through a register. If it is, then
|
||||
Index: gdb-7.5.50.20130118/gdb/arm-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/arm-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/arm-tdep.c 2013-01-18 23:36:59.961290378 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/arm-tdep.c 2013-01-18 23:37:12.469307573 +0100
|
||||
@@ -3496,7 +3496,7 @@ arm_vfp_cprc_reg_char (enum arm_vfp_cprc
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/arm-tdep.c 2013-08-02 16:43:01.140676110 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/arm-tdep.c 2013-08-02 16:43:04.727681010 +0200
|
||||
@@ -3498,7 +3498,7 @@ arm_vfp_cprc_reg_char (enum arm_vfp_cprc
|
||||
array). Vectors and complex types are not currently supported,
|
||||
matching the generic AAPCS support. */
|
||||
|
||||
@ -243,7 +243,7 @@ Index: gdb-7.5.50.20130118/gdb/arm-tdep.c
|
||||
arm_vfp_cprc_sub_candidate (struct type *t,
|
||||
enum arm_vfp_cprc_base_type *base_type)
|
||||
{
|
||||
@@ -3527,7 +3527,7 @@ arm_vfp_cprc_sub_candidate (struct type
|
||||
@@ -3529,7 +3529,7 @@ arm_vfp_cprc_sub_candidate (struct type
|
||||
|
||||
case TYPE_CODE_ARRAY:
|
||||
{
|
||||
@ -252,7 +252,7 @@ Index: gdb-7.5.50.20130118/gdb/arm-tdep.c
|
||||
unsigned unitlen;
|
||||
count = arm_vfp_cprc_sub_candidate (TYPE_TARGET_TYPE (t), base_type);
|
||||
if (count == -1)
|
||||
@@ -3547,13 +3547,15 @@ arm_vfp_cprc_sub_candidate (struct type
|
||||
@@ -3549,13 +3549,15 @@ arm_vfp_cprc_sub_candidate (struct type
|
||||
|
||||
case TYPE_CODE_STRUCT:
|
||||
{
|
||||
@ -271,7 +271,7 @@ Index: gdb-7.5.50.20130118/gdb/arm-tdep.c
|
||||
if (sub_count == -1)
|
||||
return -1;
|
||||
count += sub_count;
|
||||
@@ -3573,13 +3575,15 @@ arm_vfp_cprc_sub_candidate (struct type
|
||||
@@ -3575,13 +3577,15 @@ arm_vfp_cprc_sub_candidate (struct type
|
||||
|
||||
case TYPE_CODE_UNION:
|
||||
{
|
||||
@ -290,7 +290,7 @@ Index: gdb-7.5.50.20130118/gdb/arm-tdep.c
|
||||
if (sub_count == -1)
|
||||
return -1;
|
||||
count = (count > sub_count ? count : sub_count);
|
||||
@@ -3615,7 +3619,7 @@ arm_vfp_call_candidate (struct type *t,
|
||||
@@ -3617,7 +3621,7 @@ arm_vfp_call_candidate (struct type *t,
|
||||
int *count)
|
||||
{
|
||||
enum arm_vfp_cprc_base_type b = VFP_CPRC_UNKNOWN;
|
||||
@ -299,7 +299,7 @@ Index: gdb-7.5.50.20130118/gdb/arm-tdep.c
|
||||
if (c <= 0 || c > 4)
|
||||
return 0;
|
||||
*base_type = b;
|
||||
@@ -3696,7 +3700,7 @@ arm_push_dummy_call (struct gdbarch *gdb
|
||||
@@ -3698,7 +3702,7 @@ arm_push_dummy_call (struct gdbarch *gdb
|
||||
|
||||
for (argnum = 0; argnum < nargs; argnum++)
|
||||
{
|
||||
@ -308,10 +308,10 @@ Index: gdb-7.5.50.20130118/gdb/arm-tdep.c
|
||||
struct type *arg_type;
|
||||
struct type *target_type;
|
||||
enum type_code typecode;
|
||||
Index: gdb-7.5.50.20130118/gdb/avr-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/avr-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/avr-tdep.c 2013-01-18 23:36:59.963290385 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/avr-tdep.c 2013-01-18 23:37:12.470307574 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/avr-tdep.c 2013-08-02 16:43:01.142676113 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/avr-tdep.c 2013-08-02 16:43:04.728681011 +0200
|
||||
@@ -1170,13 +1170,14 @@ avr_dummy_id (struct gdbarch *gdbarch, s
|
||||
|
||||
struct stack_item
|
||||
@ -345,12 +345,12 @@ Index: gdb-7.5.50.20130118/gdb/avr-tdep.c
|
||||
|
||||
/* Calculate the potential last register needed. */
|
||||
last_regnum = regnum - (len + (len & 1));
|
||||
Index: gdb-7.5.50.20130118/gdb/bfin-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/bfin-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/bfin-tdep.c 2013-01-18 23:36:59.963290385 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/bfin-tdep.c 2013-01-18 23:37:12.470307574 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/bfin-tdep.c 2013-08-02 16:43:01.142676113 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/bfin-tdep.c 2013-08-02 16:43:04.728681011 +0200
|
||||
@@ -506,7 +506,7 @@ bfin_push_dummy_call (struct gdbarch *gd
|
||||
char buf[4];
|
||||
gdb_byte buf[4];
|
||||
int i;
|
||||
long reg_r0, reg_r1, reg_r2;
|
||||
- int total_len = 0;
|
||||
@ -367,10 +367,10 @@ Index: gdb-7.5.50.20130118/gdb/bfin-tdep.c
|
||||
|
||||
sp -= container_len;
|
||||
write_memory (sp, value_contents_writeable (args[i]), container_len);
|
||||
Index: gdb-7.5.50.20130118/gdb/cris-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/cris-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/cris-tdep.c 2013-01-18 23:36:59.965290390 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/cris-tdep.c 2013-01-18 23:37:12.471307578 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/cris-tdep.c 2013-08-02 16:43:04.729681012 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/cris-tdep.c 2013-08-02 16:52:28.316491561 +0200
|
||||
@@ -670,13 +670,13 @@ static CORE_ADDR cris_unwind_sp (struct
|
||||
|
||||
struct stack_item
|
||||
@ -382,8 +382,8 @@ Index: gdb-7.5.50.20130118/gdb/cris-tdep.c
|
||||
};
|
||||
|
||||
static struct stack_item *
|
||||
-push_stack_item (struct stack_item *prev, void *contents, int len)
|
||||
+push_stack_item (struct stack_item *prev, void *contents, ssize_t len)
|
||||
-push_stack_item (struct stack_item *prev, const gdb_byte *contents, int len)
|
||||
+push_stack_item (struct stack_item *prev, const gdb_byte *contents, ssize_t len)
|
||||
{
|
||||
struct stack_item *si;
|
||||
si = xmalloc (sizeof (struct stack_item));
|
||||
@ -393,22 +393,22 @@ Index: gdb-7.5.50.20130118/gdb/cris-tdep.c
|
||||
{
|
||||
- int len;
|
||||
+ ssize_t len;
|
||||
char *val;
|
||||
const gdb_byte *val;
|
||||
- int reg_demand;
|
||||
- int i;
|
||||
+ ssize_t reg_demand;
|
||||
+ ssize_t i;
|
||||
|
||||
- len = TYPE_LENGTH (value_type (args[argnum]));
|
||||
val = (char *) value_contents (args[argnum]);
|
||||
val = value_contents (args[argnum]);
|
||||
+ len = TYPE_LENGTH (value_type (args[argnum]));
|
||||
|
||||
/* How may registers worth of storage do we need for this argument? */
|
||||
reg_demand = (len / 4) + (len % 4 != 0 ? 1 : 0);
|
||||
Index: gdb-7.5.50.20130118/gdb/h8300-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/h8300-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/h8300-tdep.c 2013-01-18 23:36:59.966290392 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/h8300-tdep.c 2013-01-18 23:37:12.472307583 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/h8300-tdep.c 2013-08-02 16:43:01.144676116 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/h8300-tdep.c 2013-08-02 16:43:04.730681014 +0200
|
||||
@@ -640,7 +640,7 @@ h8300_push_dummy_call (struct gdbarch *g
|
||||
int struct_return, CORE_ADDR struct_addr)
|
||||
{
|
||||
@ -441,10 +441,10 @@ Index: gdb-7.5.50.20130118/gdb/h8300-tdep.c
|
||||
|
||||
for (offset = 0; offset < padded_len; offset += wordsize)
|
||||
{
|
||||
Index: gdb-7.5.50.20130118/gdb/hppa-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/hppa-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/hppa-tdep.c 2013-01-18 23:36:59.966290392 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/hppa-tdep.c 2013-01-18 23:37:44.228351370 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/hppa-tdep.c 2013-08-02 16:43:01.145676117 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/hppa-tdep.c 2013-08-02 16:43:04.731681015 +0200
|
||||
@@ -961,7 +961,7 @@ hppa64_push_dummy_call (struct gdbarch *
|
||||
{
|
||||
struct value *arg = args[i];
|
||||
@ -463,10 +463,10 @@ Index: gdb-7.5.50.20130118/gdb/hppa-tdep.c
|
||||
int regnum, offset;
|
||||
|
||||
if (len > 16)
|
||||
Index: gdb-7.5.50.20130118/gdb/i386-darwin-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/i386-darwin-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/i386-darwin-tdep.c 2013-01-18 23:36:59.967290394 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/i386-darwin-tdep.c 2013-01-18 23:37:12.473307586 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/i386-darwin-tdep.c 2013-08-02 16:43:01.145676117 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/i386-darwin-tdep.c 2013-08-02 16:43:04.731681015 +0200
|
||||
@@ -166,7 +166,7 @@ i386_darwin_push_dummy_call (struct gdba
|
||||
|
||||
for (write_pass = 0; write_pass < 2; write_pass++)
|
||||
@ -476,10 +476,10 @@ Index: gdb-7.5.50.20130118/gdb/i386-darwin-tdep.c
|
||||
int num_m128 = 0;
|
||||
|
||||
if (struct_return)
|
||||
Index: gdb-7.5.50.20130118/gdb/i386-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/i386-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/i386-tdep.c 2013-01-18 23:36:59.969290398 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/i386-tdep.c 2013-01-18 23:37:12.475307589 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/i386-tdep.c 2013-08-02 16:43:01.147676120 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/i386-tdep.c 2013-08-02 16:43:04.733681018 +0200
|
||||
@@ -2407,7 +2407,7 @@ i386_push_dummy_call (struct gdbarch *gd
|
||||
gdb_byte buf[4];
|
||||
int i;
|
||||
@ -543,10 +543,10 @@ Index: gdb-7.5.50.20130118/gdb/i386-tdep.c
|
||||
|
||||
if (i386_fp_regnum_p (get_frame_arch (frame), regnum))
|
||||
{
|
||||
Index: gdb-7.5.50.20130118/gdb/ia64-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/ia64-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/ia64-tdep.c 2013-01-18 23:36:59.970290400 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/ia64-tdep.c 2013-01-18 23:37:12.476307589 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/ia64-tdep.c 2013-08-02 16:43:01.148676121 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/ia64-tdep.c 2013-08-02 16:43:04.734681019 +0200
|
||||
@@ -3974,8 +3974,10 @@ ia64_push_dummy_call (struct gdbarch *gd
|
||||
int argno;
|
||||
struct value *arg;
|
||||
@ -560,10 +560,10 @@ Index: gdb-7.5.50.20130118/gdb/ia64-tdep.c
|
||||
int floatreg;
|
||||
ULONGEST bsp;
|
||||
CORE_ADDR funcdescaddr, pc, global_pointer;
|
||||
Index: gdb-7.5.50.20130118/gdb/iq2000-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/iq2000-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/iq2000-tdep.c 2013-01-18 23:36:59.970290400 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/iq2000-tdep.c 2013-01-18 23:37:12.476307589 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/iq2000-tdep.c 2013-08-02 16:43:01.149676123 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/iq2000-tdep.c 2013-08-02 16:43:04.734681019 +0200
|
||||
@@ -654,8 +654,9 @@ iq2000_push_dummy_call (struct gdbarch *
|
||||
const bfd_byte *val;
|
||||
bfd_byte buf[4];
|
||||
@ -576,11 +576,11 @@ Index: gdb-7.5.50.20130118/gdb/iq2000-tdep.c
|
||||
/* Used to copy struct arguments into the stack. */
|
||||
CORE_ADDR struct_ptr;
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/m32r-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/m32r-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/m32r-tdep.c 2013-01-18 23:36:59.971290402 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/m32r-tdep.c 2013-01-18 23:37:12.476307589 +0100
|
||||
@@ -695,7 +695,7 @@ m32r_push_dummy_call (struct gdbarch *gd
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/m32r-tdep.c 2013-08-02 16:43:01.149676123 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/m32r-tdep.c 2013-08-02 16:43:04.734681019 +0200
|
||||
@@ -689,7 +689,7 @@ m32r_push_dummy_call (struct gdbarch *gd
|
||||
CORE_ADDR regval;
|
||||
gdb_byte *val;
|
||||
gdb_byte valbuf[MAX_REGISTER_SIZE];
|
||||
@ -589,10 +589,10 @@ Index: gdb-7.5.50.20130118/gdb/m32r-tdep.c
|
||||
|
||||
/* First force sp to a 4-byte alignment. */
|
||||
sp = sp & ~3;
|
||||
Index: gdb-7.5.50.20130118/gdb/m68k-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/m68k-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/m68k-tdep.c 2013-01-18 23:36:59.971290402 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/m68k-tdep.c 2013-01-18 23:39:06.474459041 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/m68k-tdep.c 2013-08-02 16:43:01.149676123 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/m68k-tdep.c 2013-08-02 16:43:04.735681021 +0200
|
||||
@@ -384,7 +384,7 @@ m68k_reg_struct_return_p (struct gdbarch
|
||||
{
|
||||
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
||||
@ -615,10 +615,10 @@ Index: gdb-7.5.50.20130118/gdb/m68k-tdep.c
|
||||
|
||||
/* Non-scalars bigger than 4 bytes are left aligned, others are
|
||||
right aligned. */
|
||||
Index: gdb-7.5.50.20130118/gdb/m88k-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/m88k-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/m88k-tdep.c 2013-01-18 23:36:59.971290402 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/m88k-tdep.c 2013-01-18 23:37:12.477307590 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/m88k-tdep.c 2013-08-02 16:43:01.150676124 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/m88k-tdep.c 2013-08-02 16:43:04.735681021 +0200
|
||||
@@ -260,13 +260,13 @@ m88k_store_arguments (struct regcache *r
|
||||
{
|
||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
||||
@ -646,11 +646,11 @@ Index: gdb-7.5.50.20130118/gdb/m88k-tdep.c
|
||||
|
||||
if (m88k_in_register_p (type))
|
||||
{
|
||||
Index: gdb-7.5.50.20130118/gdb/mep-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/mep-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/mep-tdep.c 2013-01-18 23:36:59.972290404 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/mep-tdep.c 2013-01-18 23:37:12.477307590 +0100
|
||||
@@ -2279,7 +2279,7 @@ push_large_arguments (CORE_ADDR sp, int
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/mep-tdep.c 2013-08-02 16:43:01.150676124 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/mep-tdep.c 2013-08-02 16:43:04.735681021 +0200
|
||||
@@ -2272,7 +2272,7 @@ push_large_arguments (CORE_ADDR sp, int
|
||||
|
||||
for (i = 0; i < argc; i++)
|
||||
{
|
||||
@ -659,11 +659,11 @@ Index: gdb-7.5.50.20130118/gdb/mep-tdep.c
|
||||
|
||||
if (arg_len > MEP_GPR_SIZE)
|
||||
{
|
||||
Index: gdb-7.5.50.20130118/gdb/mips-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/mips-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/mips-tdep.c 2013-01-18 23:36:59.975290414 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/mips-tdep.c 2013-01-18 23:37:12.479307599 +0100
|
||||
@@ -396,7 +396,7 @@ static void
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/mips-tdep.c 2013-08-02 16:43:01.153676128 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/mips-tdep.c 2013-08-02 16:43:04.737681023 +0200
|
||||
@@ -402,7 +402,7 @@ static void
|
||||
mips_xfer_register (struct gdbarch *gdbarch, struct regcache *regcache,
|
||||
int reg_num, int length,
|
||||
enum bfd_endian endian, gdb_byte *in,
|
||||
@ -672,7 +672,7 @@ Index: gdb-7.5.50.20130118/gdb/mips-tdep.c
|
||||
{
|
||||
int reg_offset = 0;
|
||||
|
||||
@@ -419,8 +419,8 @@ mips_xfer_register (struct gdbarch *gdba
|
||||
@@ -425,8 +425,8 @@ mips_xfer_register (struct gdbarch *gdba
|
||||
}
|
||||
if (mips_debug)
|
||||
fprintf_unfiltered (gdb_stderr,
|
||||
@ -808,23 +808,23 @@ Index: gdb-7.5.50.20130118/gdb/mips-tdep.c
|
||||
|
||||
val = value_contents (arg);
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/mn10300-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/mn10300-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/mn10300-tdep.c 2013-01-18 23:36:59.976290416 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/mn10300-tdep.c 2013-01-18 23:37:12.479307599 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/mn10300-tdep.c 2013-08-02 16:43:04.737681023 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/mn10300-tdep.c 2013-08-02 16:50:34.212320698 +0200
|
||||
@@ -1228,7 +1228,7 @@ mn10300_push_dummy_call (struct gdbarch
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
const int push_size = register_size (gdbarch, E_PC_REGNUM);
|
||||
int regs_used;
|
||||
- int len, arg_len;
|
||||
+ LONGEST len, arg_len;
|
||||
+ LONGEST len, arg_len;
|
||||
int stack_offset = 0;
|
||||
int argnum;
|
||||
char *val, valbuf[MAX_REGISTER_SIZE];
|
||||
Index: gdb-7.5.50.20130118/gdb/mt-tdep.c
|
||||
const gdb_byte *val;
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/mt-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/mt-tdep.c 2013-01-18 23:36:59.976290416 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/mt-tdep.c 2013-01-18 23:37:12.479307599 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/mt-tdep.c 2013-08-02 16:43:01.154676130 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/mt-tdep.c 2013-08-02 16:43:04.737681023 +0200
|
||||
@@ -783,9 +783,9 @@ mt_push_dummy_call (struct gdbarch *gdba
|
||||
gdb_byte buf[MT_MAX_STRUCT_SIZE];
|
||||
int argreg = MT_1ST_ARGREG;
|
||||
@ -837,10 +837,10 @@ Index: gdb-7.5.50.20130118/gdb/mt-tdep.c
|
||||
int i, j;
|
||||
|
||||
/* First handle however many args we can fit into MT_1ST_ARGREG thru
|
||||
Index: gdb-7.5.50.20130118/gdb/ppc-sysv-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/ppc-sysv-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/ppc-sysv-tdep.c 2013-01-18 23:36:59.977290417 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/ppc-sysv-tdep.c 2013-01-18 23:37:12.480307602 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/ppc-sysv-tdep.c 2013-08-02 16:43:01.155676131 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/ppc-sysv-tdep.c 2013-08-02 16:43:04.738681025 +0200
|
||||
@@ -68,7 +68,7 @@ ppc_sysv_abi_push_dummy_call (struct gdb
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
int opencl_abi = ppc_sysv_use_opencl_abi (value_type (function));
|
||||
@ -871,7 +871,7 @@ Index: gdb-7.5.50.20130118/gdb/ppc-sysv-tdep.c
|
||||
const bfd_byte *val = value_contents (arg);
|
||||
|
||||
if (TYPE_CODE (type) == TYPE_CODE_FLT && len <= 8
|
||||
@@ -1556,14 +1556,14 @@ ppc64_sysv_abi_push_dummy_call (struct g
|
||||
@@ -1613,14 +1613,14 @@ ppc64_sysv_abi_push_dummy_call (struct g
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -888,7 +888,7 @@ Index: gdb-7.5.50.20130118/gdb/ppc-sysv-tdep.c
|
||||
if (len > tdep->wordsize)
|
||||
len = tdep->wordsize;
|
||||
memset (regval, 0, sizeof regval);
|
||||
@@ -1591,7 +1591,7 @@ ppc64_sysv_abi_push_dummy_call (struct g
|
||||
@@ -1648,7 +1648,7 @@ ppc64_sysv_abi_push_dummy_call (struct g
|
||||
register. Work around this by always writing the
|
||||
value to memory. Fortunately, doing this
|
||||
simplifies the code. */
|
||||
@ -897,11 +897,11 @@ Index: gdb-7.5.50.20130118/gdb/ppc-sysv-tdep.c
|
||||
if (len < tdep->wordsize)
|
||||
write_memory (gparam + tdep->wordsize - len, val, len);
|
||||
else
|
||||
Index: gdb-7.5.50.20130118/gdb/rl78-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/rl78-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/rl78-tdep.c 2013-01-18 23:36:59.977290417 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/rl78-tdep.c 2013-01-18 23:37:12.480307602 +0100
|
||||
@@ -1019,8 +1019,8 @@ rl78_push_dummy_call (struct gdbarch *gd
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/rl78-tdep.c 2013-08-02 16:43:01.155676131 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/rl78-tdep.c 2013-08-02 16:43:04.738681025 +0200
|
||||
@@ -1030,8 +1030,8 @@ rl78_push_dummy_call (struct gdbarch *gd
|
||||
for (i = nargs - 1; i >= 0; i--)
|
||||
{
|
||||
struct type *value_type = value_enclosing_type (args[i]);
|
||||
@ -912,11 +912,11 @@ Index: gdb-7.5.50.20130118/gdb/rl78-tdep.c
|
||||
|
||||
sp -= container_len;
|
||||
write_memory (rl78_make_data_address (sp),
|
||||
Index: gdb-7.5.50.20130118/gdb/rs6000-aix-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/rs6000-aix-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/rs6000-aix-tdep.c 2013-01-18 23:36:59.978290418 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/rs6000-aix-tdep.c 2013-01-18 23:37:12.480307602 +0100
|
||||
@@ -198,9 +198,9 @@ rs6000_push_dummy_call (struct gdbarch *
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/rs6000-aix-tdep.c 2013-08-02 16:43:01.155676131 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/rs6000-aix-tdep.c 2013-08-02 16:43:04.738681025 +0200
|
||||
@@ -196,9 +196,9 @@ rs6000_push_dummy_call (struct gdbarch *
|
||||
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
int ii;
|
||||
@ -928,7 +928,7 @@ Index: gdb-7.5.50.20130118/gdb/rs6000-aix-tdep.c
|
||||
gdb_byte tmp_buffer[50];
|
||||
int f_argno = 0; /* current floating point argno */
|
||||
int wordsize = gdbarch_tdep (gdbarch)->wordsize;
|
||||
@@ -328,7 +328,7 @@ ran_out_of_registers_for_arguments:
|
||||
@@ -331,7 +331,7 @@ ran_out_of_registers_for_arguments:
|
||||
|
||||
if ((argno < nargs) || argbytes)
|
||||
{
|
||||
@ -937,11 +937,11 @@ Index: gdb-7.5.50.20130118/gdb/rs6000-aix-tdep.c
|
||||
|
||||
if (argbytes)
|
||||
{
|
||||
Index: gdb-7.5.50.20130118/gdb/s390-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/s390-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/s390-tdep.c 2013-01-18 23:36:59.979290420 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/s390-tdep.c 2013-01-18 23:37:12.480307602 +0100
|
||||
@@ -2482,7 +2482,7 @@ is_float_like (struct type *type)
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/s390-tdep.c 2013-08-02 16:43:01.156676132 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/s390-tdep.c 2013-08-02 16:43:04.739681026 +0200
|
||||
@@ -2483,7 +2483,7 @@ is_float_like (struct type *type)
|
||||
|
||||
|
||||
static int
|
||||
@ -950,7 +950,7 @@ Index: gdb-7.5.50.20130118/gdb/s390-tdep.c
|
||||
{
|
||||
return ((n & (n - 1)) == 0);
|
||||
}
|
||||
@@ -2668,7 +2668,7 @@ s390_push_dummy_call (struct gdbarch *gd
|
||||
@@ -2669,7 +2669,7 @@ s390_push_dummy_call (struct gdbarch *gd
|
||||
{
|
||||
struct value *arg = args[i];
|
||||
struct type *type = check_typedef (value_type (arg));
|
||||
@ -959,10 +959,10 @@ Index: gdb-7.5.50.20130118/gdb/s390-tdep.c
|
||||
|
||||
if (s390_function_arg_pass_by_reference (type))
|
||||
{
|
||||
Index: gdb-7.5.50.20130118/gdb/score-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/score-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/score-tdep.c 2013-01-18 23:36:59.979290420 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/score-tdep.c 2013-01-18 23:37:12.481307604 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/score-tdep.c 2013-08-02 16:43:01.157676134 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/score-tdep.c 2013-08-02 16:43:04.739681026 +0200
|
||||
@@ -515,7 +515,7 @@ score_push_dummy_call (struct gdbarch *g
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
int argnum;
|
||||
@ -972,10 +972,10 @@ Index: gdb-7.5.50.20130118/gdb/score-tdep.c
|
||||
CORE_ADDR stack_offset = 0;
|
||||
CORE_ADDR addr = 0;
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/sh-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/sh-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/sh-tdep.c 2013-01-18 23:36:59.980290423 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/sh-tdep.c 2013-01-18 23:37:12.481307604 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/sh-tdep.c 2013-08-02 16:43:01.157676134 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/sh-tdep.c 2013-08-02 16:51:29.604404553 +0200
|
||||
@@ -807,7 +807,7 @@ sh_skip_prologue (struct gdbarch *gdbarc
|
||||
static int
|
||||
sh_use_struct_convention (int renesas_abi, struct type *type)
|
||||
@ -988,36 +988,36 @@ Index: gdb-7.5.50.20130118/gdb/sh-tdep.c
|
||||
@@ -909,7 +909,7 @@ sh_frame_align (struct gdbarch *ignore,
|
||||
|
||||
/* Helper function to justify value in register according to endianess. */
|
||||
static char *
|
||||
static const gdb_byte *
|
||||
-sh_justify_value_in_reg (struct gdbarch *gdbarch, struct value *val, int len)
|
||||
+sh_justify_value_in_reg (struct gdbarch *gdbarch, struct value *val, LONGEST len)
|
||||
{
|
||||
static char valbuf[4];
|
||||
static gdb_byte valbuf[4];
|
||||
|
||||
@@ -1069,7 +1069,8 @@ sh_push_dummy_call_fpu (struct gdbarch *
|
||||
struct type *type;
|
||||
CORE_ADDR regval;
|
||||
char *val;
|
||||
const gdb_byte *val;
|
||||
- int len, reg_size = 0;
|
||||
+ LONGEST len;
|
||||
+ ssize_t reg_size = 0;
|
||||
+ int reg_size = 0;
|
||||
int pass_on_stack = 0;
|
||||
int treat_as_flt;
|
||||
int last_reg_arg = INT_MAX;
|
||||
@@ -1210,7 +1211,8 @@ sh_push_dummy_call_nofpu (struct gdbarch
|
||||
struct type *type;
|
||||
CORE_ADDR regval;
|
||||
char *val;
|
||||
const gdb_byte *val;
|
||||
- int len, reg_size = 0;
|
||||
+ LONGEST len;
|
||||
+ ssize_t reg_size = 0;
|
||||
+ int reg_size = 0;
|
||||
int pass_on_stack = 0;
|
||||
int last_reg_arg = INT_MAX;
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/sh64-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/sh64-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/sh64-tdep.c 2013-01-18 23:36:59.980290423 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/sh64-tdep.c 2013-01-18 23:37:12.482307606 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/sh64-tdep.c 2013-08-02 16:43:01.158676135 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/sh64-tdep.c 2013-08-02 16:50:49.740344125 +0200
|
||||
@@ -1058,7 +1058,7 @@ sh64_push_dummy_call (struct gdbarch *gd
|
||||
CORE_ADDR struct_addr)
|
||||
{
|
||||
@ -1029,17 +1029,17 @@ Index: gdb-7.5.50.20130118/gdb/sh64-tdep.c
|
||||
int double_argreg;
|
||||
@@ -1069,7 +1069,7 @@ sh64_push_dummy_call (struct gdbarch *gd
|
||||
CORE_ADDR regval;
|
||||
char *val;
|
||||
char valbuf[8];
|
||||
const gdb_byte *val;
|
||||
gdb_byte valbuf[8];
|
||||
- int len;
|
||||
+ LONGEST len;
|
||||
int argreg_size;
|
||||
int fp_args[12];
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/sparc-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/sparc-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/sparc-tdep.c 2013-01-18 23:36:59.981290427 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/sparc-tdep.c 2013-01-18 23:37:12.482307606 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/sparc-tdep.c 2013-08-02 16:43:01.159676136 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/sparc-tdep.c 2013-08-02 16:43:04.740681027 +0200
|
||||
@@ -471,7 +471,7 @@ sparc32_store_arguments (struct regcache
|
||||
for (i = 0; i < nargs; i++)
|
||||
{
|
||||
@ -1049,10 +1049,10 @@ Index: gdb-7.5.50.20130118/gdb/sparc-tdep.c
|
||||
|
||||
if (sparc_structure_or_union_p (type)
|
||||
|| (sparc_floating_p (type) && len == 16)
|
||||
Index: gdb-7.5.50.20130118/gdb/sparc64-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/sparc64-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/sparc64-tdep.c 2013-01-18 23:36:59.982290430 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/sparc64-tdep.c 2013-01-18 23:37:12.482307606 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/sparc64-tdep.c 2013-08-02 16:43:01.159676136 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/sparc64-tdep.c 2013-08-02 16:43:04.741681029 +0200
|
||||
@@ -639,7 +639,8 @@ sparc64_16_byte_align_p (struct type *ty
|
||||
|
||||
static void
|
||||
@ -1108,11 +1108,11 @@ Index: gdb-7.5.50.20130118/gdb/sparc64-tdep.c
|
||||
int regnum = -1;
|
||||
gdb_byte buf[16];
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/spu-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/spu-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/spu-tdep.c 2013-01-18 23:36:59.982290430 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/spu-tdep.c 2013-01-18 23:37:12.483307607 +0100
|
||||
@@ -1373,7 +1373,7 @@ spu_push_dummy_call (struct gdbarch *gdb
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/spu-tdep.c 2013-08-02 16:43:01.160676138 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/spu-tdep.c 2013-08-02 16:43:04.741681029 +0200
|
||||
@@ -1376,7 +1376,7 @@ spu_push_dummy_call (struct gdbarch *gdb
|
||||
struct value *arg = args[i];
|
||||
struct type *type = check_typedef (value_type (arg));
|
||||
const gdb_byte *contents = value_contents (arg);
|
||||
@ -1121,7 +1121,7 @@ Index: gdb-7.5.50.20130118/gdb/spu-tdep.c
|
||||
|
||||
/* If the argument doesn't wholly fit into registers, it and
|
||||
all subsequent arguments go to the stack. */
|
||||
@@ -1405,7 +1405,7 @@ spu_push_dummy_call (struct gdbarch *gdb
|
||||
@@ -1408,7 +1408,7 @@ spu_push_dummy_call (struct gdbarch *gdb
|
||||
{
|
||||
struct value *arg = args[i];
|
||||
struct type *type = check_typedef (value_type (arg));
|
||||
@ -1130,10 +1130,10 @@ Index: gdb-7.5.50.20130118/gdb/spu-tdep.c
|
||||
int preferred_slot;
|
||||
|
||||
if (spu_scalar_value_p (type))
|
||||
Index: gdb-7.5.50.20130118/gdb/tic6x-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/tic6x-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/tic6x-tdep.c 2013-01-18 23:36:59.983290432 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/tic6x-tdep.c 2013-01-18 23:39:27.770484516 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/tic6x-tdep.c 2013-08-02 16:43:01.160676138 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/tic6x-tdep.c 2013-08-02 16:43:04.742681030 +0200
|
||||
@@ -896,7 +896,7 @@ tic6x_push_dummy_call (struct gdbarch *g
|
||||
int argreg = 0;
|
||||
int argnum;
|
||||
@ -1171,24 +1171,24 @@ Index: gdb-7.5.50.20130118/gdb/tic6x-tdep.c
|
||||
|
||||
addr = sp + stack_offset;
|
||||
write_memory (addr, val, len);
|
||||
Index: gdb-7.5.50.20130118/gdb/tilegx-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/tilegx-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/tilegx-tdep.c 2013-01-18 23:36:59.983290432 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/tilegx-tdep.c 2013-01-18 23:37:12.483307607 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/tilegx-tdep.c 2013-08-02 16:43:01.161676139 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/tilegx-tdep.c 2013-08-02 16:43:04.742681030 +0200
|
||||
@@ -291,7 +291,7 @@ tilegx_push_dummy_call (struct gdbarch *
|
||||
CORE_ADDR stack_dest = sp;
|
||||
int argreg = TILEGX_R0_REGNUM;
|
||||
int i, j;
|
||||
- int typelen, slacklen, alignlen;
|
||||
+ LONGEST typelen, slacklen, alignlen;
|
||||
static const gdb_byte two_zero_words[8] = { 0 };
|
||||
static const gdb_byte four_zero_words[16] = { 0 };
|
||||
|
||||
/* If struct_return is 1, then the struct return address will
|
||||
Index: gdb-7.5.50.20130118/gdb/v850-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/v850-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/v850-tdep.c 2013-01-18 23:36:59.984290434 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/v850-tdep.c 2013-01-18 23:37:12.484307608 +0100
|
||||
@@ -808,7 +808,7 @@ v850_push_dummy_call (struct gdbarch *gd
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/v850-tdep.c 2013-08-02 16:43:01.161676139 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/v850-tdep.c 2013-08-02 16:52:55.219531101 +0200
|
||||
@@ -1021,7 +1021,7 @@ v850_push_dummy_call (struct gdbarch *gd
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
int argreg;
|
||||
int argnum;
|
||||
@ -1196,8 +1196,8 @@ Index: gdb-7.5.50.20130118/gdb/v850-tdep.c
|
||||
+ LONGEST len = 0;
|
||||
int stack_offset;
|
||||
|
||||
/* The offset onto the stack at which we will start copying parameters
|
||||
@@ -833,7 +833,7 @@ v850_push_dummy_call (struct gdbarch *gd
|
||||
if (gdbarch_tdep (gdbarch)->abi == V850_ABI_RH850)
|
||||
@@ -1049,7 +1049,7 @@ v850_push_dummy_call (struct gdbarch *gd
|
||||
in four registers available. Loop thru args from first to last. */
|
||||
for (argnum = 0; argnum < nargs; argnum++)
|
||||
{
|
||||
@ -1206,10 +1206,10 @@ Index: gdb-7.5.50.20130118/gdb/v850-tdep.c
|
||||
gdb_byte *val;
|
||||
gdb_byte valbuf[v850_reg_size];
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/vax-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/vax-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/vax-tdep.c 2013-01-18 23:36:59.984290434 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/vax-tdep.c 2013-01-18 23:37:12.484307608 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/vax-tdep.c 2013-08-02 16:43:01.161676139 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/vax-tdep.c 2013-08-02 16:43:04.742681030 +0200
|
||||
@@ -115,7 +115,7 @@ vax_store_arguments (struct regcache *re
|
||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
@ -1228,10 +1228,10 @@ Index: gdb-7.5.50.20130118/gdb/vax-tdep.c
|
||||
|
||||
sp -= (len + 3) & ~3;
|
||||
count += (len + 3) / 4;
|
||||
Index: gdb-7.5.50.20130118/gdb/xstormy16-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/xstormy16-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/xstormy16-tdep.c 2013-01-18 23:36:59.984290434 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/xstormy16-tdep.c 2013-01-18 23:37:12.484307608 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/xstormy16-tdep.c 2013-08-02 16:43:01.162676141 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/xstormy16-tdep.c 2013-08-02 16:43:04.743681032 +0200
|
||||
@@ -235,8 +235,9 @@ xstormy16_push_dummy_call (struct gdbarc
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
CORE_ADDR stack_dest = sp;
|
||||
@ -1242,12 +1242,12 @@ Index: gdb-7.5.50.20130118/gdb/xstormy16-tdep.c
|
||||
+ LONGEST j;
|
||||
+ LONGEST typelen;
|
||||
const gdb_byte *val;
|
||||
char buf[xstormy16_pc_size];
|
||||
gdb_byte buf[xstormy16_pc_size];
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/xtensa-tdep.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/xtensa-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/xtensa-tdep.c 2013-01-18 23:36:59.985290436 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/xtensa-tdep.c 2013-01-18 23:37:12.484307608 +0100
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/xtensa-tdep.c 2013-08-02 16:43:01.163676142 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/xtensa-tdep.c 2013-08-02 16:43:04.743681032 +0200
|
||||
@@ -1653,8 +1653,7 @@ xtensa_store_return_value (struct type *
|
||||
|
||||
if (len > (callsize > 8 ? 8 : 16))
|
||||
|
138
gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
Normal file
138
gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
Normal file
@ -0,0 +1,138 @@
|
||||
Index: gdb-7.5.91.20130407/gdb/testsuite/gdb.threads/tls-rhbz947564.cc
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ gdb-7.5.91.20130407/gdb/testsuite/gdb.threads/tls-rhbz947564.cc
|
||||
@@ -0,0 +1,53 @@
|
||||
+#include <iostream>
|
||||
+#include <pthread.h>
|
||||
+
|
||||
+class x
|
||||
+ {
|
||||
+ public:
|
||||
+ int n;
|
||||
+
|
||||
+ x() : n(0) {}
|
||||
+ };
|
||||
+
|
||||
+class y
|
||||
+ {
|
||||
+ public:
|
||||
+ int v;
|
||||
+
|
||||
+ y() : v(0) {}
|
||||
+ static __thread x *xp;
|
||||
+ };
|
||||
+
|
||||
+__thread x *y::xp;
|
||||
+
|
||||
+static void
|
||||
+foo (y *yp)
|
||||
+{
|
||||
+ yp->v = 1; /* foo_marker */
|
||||
+}
|
||||
+
|
||||
+static void *
|
||||
+bar (void *unused)
|
||||
+{
|
||||
+ x xinst;
|
||||
+ y::xp= &xinst;
|
||||
+
|
||||
+ y yy;
|
||||
+ foo(&yy);
|
||||
+
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+main(int argc, char *argv[])
|
||||
+{
|
||||
+ pthread_t t[2];
|
||||
+
|
||||
+ pthread_create (&t[0], NULL, bar, NULL);
|
||||
+ pthread_create (&t[1], NULL, bar, NULL);
|
||||
+
|
||||
+ pthread_join (t[0], NULL);
|
||||
+ pthread_join (t[1], NULL);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
Index: gdb-7.5.91.20130407/gdb/testsuite/gdb.threads/tls-rhbz947564.exp
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ gdb-7.5.91.20130407/gdb/testsuite/gdb.threads/tls-rhbz947564.exp
|
||||
@@ -0,0 +1,75 @@
|
||||
+# Copyright (C) 2013 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 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/>. */
|
||||
+
|
||||
+set testfile tls-rhbz947564
|
||||
+set srcfile ${testfile}.cc
|
||||
+set binfile ${objdir}/${subdir}/${testfile}
|
||||
+
|
||||
+if [istarget "*-*-linux"] then {
|
||||
+ set target_cflags "-D_MIT_POSIX_THREADS"
|
||||
+} else {
|
||||
+ set target_cflags ""
|
||||
+}
|
||||
+
|
||||
+if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list c++ debug]] != "" } {
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+gdb_exit
|
||||
+gdb_start
|
||||
+gdb_reinitialize_dir $srcdir/$subdir
|
||||
+
|
||||
+gdb_load ${binfile}
|
||||
+
|
||||
+if { ![runto_main] } {
|
||||
+ fail "Can't run to function main"
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
+gdb_breakpoint "foo"
|
||||
+gdb_continue_to_breakpoint "foo" ".* foo_marker .*"
|
||||
+
|
||||
+proc get_xp_val {try} {
|
||||
+ global expect_out
|
||||
+ global gdb_prompt
|
||||
+ global hex
|
||||
+
|
||||
+ set xp_val ""
|
||||
+ gdb_test_multiple "print *yp" "print yp value" {
|
||||
+ -re { = \{v = 0, static xp = (0x[0-9a-f]+)\}.* } {
|
||||
+ pass "print $try value of *yp"
|
||||
+ set xp_val $expect_out(1,string)
|
||||
+ }
|
||||
+ -re "$gdb_prompt $" {
|
||||
+ fail "print $try value of *yp"
|
||||
+ }
|
||||
+ timeout {
|
||||
+ fail "print $try value of *yp (timeout)"
|
||||
+ }
|
||||
+ }
|
||||
+ return $xp_val
|
||||
+}
|
||||
+
|
||||
+set first_run [get_xp_val "first"]
|
||||
+
|
||||
+gdb_test "continue" "Breakpoint \[0-9\]+, foo \\\(yp=$hex\\\) at.*"
|
||||
+
|
||||
+set second_run [get_xp_val "second"]
|
||||
+
|
||||
+if { $first_run != $second_run } {
|
||||
+ pass "different values for TLS variable"
|
||||
+} else {
|
||||
+ fail "different values for TLS variable"
|
||||
+}
|
@ -6,8 +6,10 @@ http://sourceware.org/ml/gdb-patches/2010-08/msg00085.html
|
||||
http://sourceware.org/ml/gdb-cvs/2010-08/msg00026.html
|
||||
2e5bcfdef1ec3883d48c3f87a4be5c0dff25e17e
|
||||
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.arch/x86_64-pid0-core.core.bz2.uu
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/x86_64-pid0-core.core.bz2.uu
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/x86_64-pid0-core.core.bz2.uu 2013-08-02 22:14:50.748990883 +0200
|
||||
@@ -0,0 +1,20 @@
|
||||
+begin 600 x86_64-pid0-core.core.bz2
|
||||
+M0EIH.3%!629362,CA>P!$/'_____^*#EZ-A!SP36P&_:G0#=14``04A&8,'U
|
||||
@ -29,8 +31,10 @@ http://sourceware.org/ml/gdb-cvs/2010-08/msg00026.html
|
||||
+4B.Z!/,0-IZ^W_Q=R13A0D",CA>P`
|
||||
+`
|
||||
+end
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.arch/x86_64-pid0-core.exp
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/x86_64-pid0-core.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/x86_64-pid0-core.exp 2013-08-02 22:17:30.575209385 +0200
|
||||
@@ -0,0 +1,46 @@
|
||||
+# This testcase is part of GDB, the GNU debugger.
|
||||
+#
|
||||
@ -77,4 +81,4 @@ http://sourceware.org/ml/gdb-cvs/2010-08/msg00026.html
|
||||
+
|
||||
+# Former crash was:
|
||||
+# thread.c:884: internal-error: switch_to_thread: Assertion `inf != NULL' failed.
|
||||
+gdb_test "core-file ${corefile}" "Program terminated with signal 11, Segmentation fault\\.\r\n.*"
|
||||
+gdb_test "core-file ${corefile}" "Program terminated with signal (11|SIGSEGV), Segmentation fault\\.\r\n.*"
|
||||
|
@ -102,7 +102,7 @@ gdb/
|
||||
}
|
||||
}
|
||||
+
|
||||
+ if (gdbarch_ptr_bit (gdbarch) == 32)
|
||||
+ if (gdbarch_bfd_arch_info (gdbarch)->bits_per_word == 32)
|
||||
+ {
|
||||
+ /* Sign-extend %eax as during return from a syscall it is being checked
|
||||
+ for -ERESTART* values -512 being above 0xfffffffffffffe00; tested by
|
||||
|
24
gdb.changes
24
gdb.changes
@ -1,3 +1,27 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 12 15:30:32 UTC 2013 - schwab@suse.de
|
||||
|
||||
- gdb-aarch64-hw-break.patch: fix setting hardware debug registers after
|
||||
fork
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Aug 7 13:27:17 UTC 2013 - matz@suse.com
|
||||
|
||||
- Merge from fedoras gdb-7.6.50-20130731-cvs, of what will become 7.7
|
||||
eventually. This includes 7.6, which gave:
|
||||
* new native configurations (e.g. ARM AArch64 GNU/Linux)
|
||||
* new targets (e.g. ARM AArch64, Lynx 178 PowerPC, x86_64/Cygwin)
|
||||
* support for the "mini debuginfo" section, .gnu_debugdata
|
||||
* the C++ ABI now defaults to the GNU v3 ABI
|
||||
* more Python scripting improvements
|
||||
* some GDB/MI improvements
|
||||
* new configure options, new commands, and options
|
||||
* new remote packets
|
||||
* a new "target record-btrace" has been added while the
|
||||
"target record" command has been renamed to "target record-full"
|
||||
- gdb-ia64-tdep.patch: build fixes
|
||||
- gdb-ppc-ptrace.diff: Remove patch, not needed on new kernels
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 2 12:34:27 UTC 2013 - schwab@suse.de
|
||||
|
||||
|
257
gdb.spec
257
gdb.spec
@ -16,10 +16,10 @@
|
||||
Summary: A GNU source-level debugger for C, C++, Fortran and other languages
|
||||
Name: gdb
|
||||
|
||||
%global snap 20130215
|
||||
%global snap 20130731
|
||||
# See timestamp of source gnulib installed into gdb/gnulib/ .
|
||||
%global snapgnulib 20121213
|
||||
Version: 7.5.50.20130215
|
||||
Version: 7.6.50.20130731
|
||||
|
||||
# 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.
|
||||
@ -30,7 +30,7 @@ Group: Development/Tools/Debuggers
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
# Do not provide URL for snapshots as the file lasts there only for 2 days.
|
||||
# ftp://sourceware.org/pub/gdb/releases/gdb-%{version}.tar.bz2
|
||||
Source: gdb-%{version}.tar.bz2
|
||||
Source: gdb-%{version}-cvs.tar.bz2
|
||||
URL: http://gnu.org/software/gdb/
|
||||
|
||||
%if "%{scl}" == "devtoolset-1.1"
|
||||
@ -38,7 +38,7 @@ Obsoletes: devtoolset-1.0-%{pkg_name}
|
||||
%endif
|
||||
|
||||
# For our convenience
|
||||
%global gdb_src %{name}-%{version}
|
||||
%global gdb_src %{name}-%{version}-cvs
|
||||
%global gdb_build build-%{_target_platform}
|
||||
%global gdb_docdir %{_docdir}/%{name}-doc
|
||||
|
||||
@ -73,7 +73,7 @@ Source3: gdb-gstack.man
|
||||
Source4: gdbinit
|
||||
|
||||
# libstdc++ pretty printers from GCC SVN HEAD (4.5 experimental).
|
||||
%global libstdcxxpython libstdc++-v3-python-r155978
|
||||
%global libstdcxxpython gdb-libstdc++-v3-python-r155978
|
||||
Source5: %{libstdcxxpython}.tar.bz2
|
||||
|
||||
# Provide gdbtui for RHEL-5 and RHEL-6 as it is removed upstream (BZ 797664).
|
||||
@ -84,127 +84,113 @@ Source6: gdbtui
|
||||
Patch1: gdb-6.3-rh-testversion-20041202.patch
|
||||
Patch2: gdb-archer.patch
|
||||
Patch3: gdb-6.3-rh-dummykfail-20041202.patch
|
||||
Patch4: gdb-6.3-rh-testlibunwind-20041202.patch
|
||||
Patch5: gdb-6.3-ppc64syscall-20040622.patch
|
||||
Patch6: gdb-6.3-ppc64displaysymbol-20041124.patch
|
||||
Patch7: gdb-6.6-scheduler_locking-step-sw-watchpoints2.patch
|
||||
Patch8: gdb-6.3-gstack-20050411.patch
|
||||
Patch9: gdb-6.3-test-pie-20050107.patch
|
||||
Patch10: gdb-6.3-test-self-20050110.patch
|
||||
Patch11: gdb-6.3-test-dtorfix-20050121.patch
|
||||
Patch12: gdb-6.3-test-movedir-20050125.patch
|
||||
Patch13: gdb-6.3-gcore-thread-20050204.patch
|
||||
Patch14: gdb-6.3-threaded-watchpoints2-20050225.patch
|
||||
Patch15: gdb-6.3-ia64-gcore-page0-20050421.patch
|
||||
Patch16: gdb-6.3-ia64-sigtramp-frame-20050708.patch
|
||||
Patch17: gdb-6.3-ia64-gcore-speedup-20050714.patch
|
||||
Patch18: gdb-6.3-inferior-notification-20050721.patch
|
||||
Patch19: gdb-6.3-ia64-info-frame-fix-20050725.patch
|
||||
Patch20: gdb-6.3-inheritancetest-20050726.patch
|
||||
Patch21: gdb-6.3-readnever-20050907.patch
|
||||
Patch22: gdb-6.3-ia64-sigill-20051115.patch
|
||||
Patch23: gdb-6.5-bz203661-emit-relocs.patch
|
||||
Patch24: gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
|
||||
Patch25: gdb-6.5-sharedlibrary-path.patch
|
||||
Patch26: gdb-6.5-bz190810-gdbserver-arch-advice.patch
|
||||
Patch27: gdb-6.5-BEA-testsuite.patch
|
||||
Patch28: gdb-6.5-last-address-space-byte-test.patch
|
||||
Patch29: gdb-6.5-readline-long-line-crash-test.patch
|
||||
Patch30: gdb-6.5-bz216711-clone-is-outermost.patch
|
||||
Patch31: gdb-6.5-bz218379-ppc-solib-trampoline-test.patch
|
||||
Patch32: gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch
|
||||
Patch33: gdb-6.5-bz109921-DW_AT_decl_file-test.patch
|
||||
Patch34: gdb-6.3-bz140532-ppc-unwinding-test.patch
|
||||
Patch35: gdb-6.3-bz202689-exec-from-pthread-test.patch
|
||||
Patch36: gdb-6.6-bz230000-power6-disassembly-test.patch
|
||||
Patch37: gdb-6.3-bz231832-obstack-2gb.patch
|
||||
Patch38: gdb-6.6-bz229517-gcore-without-terminal.patch
|
||||
Patch39: gdb-6.6-bz235197-fork-detach-info.patch
|
||||
Patch40: gdb-6.6-testsuite-timeouts.patch
|
||||
Patch41: gdb-6.6-bz237572-ppc-atomic-sequence-test.patch
|
||||
Patch42: gdb-6.6-scheduler_locking-step-is-default.patch
|
||||
Patch43: gdb-6.3-attach-see-vdso-test.patch
|
||||
Patch44: gdb-6.5-bz243845-stale-testing-zombie-test.patch
|
||||
Patch45: gdb-6.6-buildid-locate.patch
|
||||
Patch46: gdb-6.6-buildid-locate-solib-missing-ids.patch
|
||||
Patch47: gdb-6.6-buildid-locate-rpm.patch
|
||||
Patch48: gdb-6.6-bfd-vdso8k.patch
|
||||
Patch49: gdb-6.7-charsign-test.patch
|
||||
Patch50: gdb-6.7-ppc-clobbered-registers-O2-test.patch
|
||||
Patch51: gdb-6.7-testsuite-stable-results.patch
|
||||
Patch52: gdb-6.5-ia64-libunwind-leak-test.patch
|
||||
Patch53: gdb-6.5-missed-trap-on-step-test.patch
|
||||
Patch54: gdb-6.7-bz426600-DW_TAG_interface_type-test.patch
|
||||
Patch55: gdb-6.5-gcore-buffer-limit-test.patch
|
||||
Patch56: gdb-6.6-threads-static-test.patch
|
||||
Patch57: gdb-6.3-mapping-zero-inode-test.patch
|
||||
Patch58: gdb-6.3-focus-cmd-prev-test.patch
|
||||
Patch59: gdb-6.8-bz442765-threaded-exec-test.patch
|
||||
Patch60: gdb-6.8-sparc64-silence-memcpy-check.patch
|
||||
Patch61: gdb-6.5-section-num-fixup-test.patch
|
||||
Patch62: gdb-6.8-bz436037-reg-no-longer-active.patch
|
||||
Patch63: gdb-6.8-watchpoint-conditionals-test.patch
|
||||
Patch64: gdb-6.8-bz466901-backtrace-full-prelinked.patch
|
||||
Patch65: gdb-6.8-bz457187-largefile-test.patch
|
||||
Patch66: gdb-simultaneous-step-resume-breakpoint-test.patch
|
||||
Patch67: gdb-core-open-vdso-warning.patch
|
||||
Patch68: gdb-x86_64-i386-syscall-restart.patch
|
||||
Patch69: gdb-bz533176-fortran-omp-step.patch
|
||||
Patch70: gdb-follow-child-stale-parent.patch
|
||||
Patch71: gdb-ccache-workaround.patch
|
||||
Patch72: gdb-archer-pie-addons.patch
|
||||
Patch73: gdb-archer-pie-addons-keep-disabled.patch
|
||||
Patch74: gdb-lineno-makeup-test.patch
|
||||
Patch75: gdb-ppc-power7-test.patch
|
||||
Patch76: gdb-bz541866-rwatch-before-run.patch
|
||||
Patch77: gdb-moribund-utrace-workaround.patch
|
||||
Patch78: gdb-archer-next-over-throw-cxx-exec.patch
|
||||
Patch79: gdb-bz601887-dwarf4-rh-test.patch
|
||||
Patch80: gdb-6.6-buildid-locate-core-as-arg.patch
|
||||
Patch81: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
|
||||
Patch82: gdb-test-bt-cfi-without-die.patch
|
||||
Patch83: gdb-gdb-add-index-script.patch
|
||||
Patch84: gdb-bz568248-oom-is-error.patch
|
||||
Patch85: gdb-bz634108-solib_address.patch
|
||||
Patch86: gdb-test-pid0-core.patch
|
||||
Patch87: gdb-test-dw2-aranges.patch
|
||||
Patch88: gdb-test-expr-cumulative-archer.patch
|
||||
Patch89: gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch
|
||||
Patch90: gdb-dlopen-stap-probe-3of7.patch
|
||||
Patch91: gdb-dlopen-stap-probe-4of7.patch
|
||||
Patch92: gdb-dlopen-stap-probe-5of7.patch
|
||||
Patch93: gdb-dlopen-stap-probe-6of7.patch
|
||||
Patch94: gdb-dlopen-stap-probe-7of7.patch
|
||||
Patch95: gdb-dlopen-stap-probe-test2.patch
|
||||
Patch96: gdb-dlopen-stap-probe-mapfailed.patch
|
||||
Patch97: gdb-dlopen-stap-probe-test.patch
|
||||
Patch98: gdb-glibc-vdso-workaround.patch
|
||||
Patch99: gdb-runtest-pie-override.patch
|
||||
Patch100: gdb-python-rdynamic.patch
|
||||
Patch101: gdb-attach-fail-reasons-5of5.patch
|
||||
Patch102: gdb-attach-fail-reasons-5of5configure.patch
|
||||
Patch103: gdb-stale-frame_info.patch
|
||||
Patch104: gdb-glibc-strstr-workaround.patch
|
||||
Patch105: gdb-rhel5.9-testcase-xlf-var-inside-mod.patch
|
||||
Patch106: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
|
||||
Patch107: gdb-rhbz795424-bitpos-20of25.patch
|
||||
Patch108: gdb-rhbz795424-bitpos-21of25.patch
|
||||
Patch109: gdb-rhbz795424-bitpos-22of25.patch
|
||||
Patch110: gdb-rhbz795424-bitpos-23of25.patch
|
||||
Patch111: gdb-rhbz795424-bitpos-25of25.patch
|
||||
Patch112: gdb-rhbz795424-bitpos-25of25-test.patch
|
||||
Patch113: gdb-rhbz795424-bitpos-lazyvalue.patch
|
||||
Patch114: gdb-rhel5-gcc44.patch
|
||||
Patch115: gdb-readline62-ask-more-rh.patch
|
||||
Patch116: gdb-6.8-attach-signalled-detach-stopped.patch
|
||||
Patch117: gdb-6.8-quit-never-aborts.patch
|
||||
Patch118: gdb-rhel5-compat.patch
|
||||
Patch4: gdb-6.3-ppc64syscall-20040622.patch
|
||||
Patch5: gdb-6.3-ppc64displaysymbol-20041124.patch
|
||||
Patch6: gdb-6.6-scheduler_locking-step-sw-watchpoints2.patch
|
||||
Patch7: gdb-6.3-gstack-20050411.patch
|
||||
Patch8: gdb-6.3-test-pie-20050107.patch
|
||||
Patch9: gdb-6.3-test-self-20050110.patch
|
||||
Patch10: gdb-6.3-test-dtorfix-20050121.patch
|
||||
Patch11: gdb-6.3-test-movedir-20050125.patch
|
||||
Patch12: gdb-6.3-threaded-watchpoints2-20050225.patch
|
||||
Patch13: gdb-6.3-inferior-notification-20050721.patch
|
||||
Patch14: gdb-6.3-inheritancetest-20050726.patch
|
||||
Patch15: gdb-6.3-readnever-20050907.patch
|
||||
Patch16: gdb-6.5-bz203661-emit-relocs.patch
|
||||
Patch17: gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch
|
||||
Patch18: gdb-6.5-sharedlibrary-path.patch
|
||||
Patch19: gdb-6.5-bz190810-gdbserver-arch-advice.patch
|
||||
Patch20: gdb-6.5-BEA-testsuite.patch
|
||||
Patch21: gdb-6.5-last-address-space-byte-test.patch
|
||||
Patch22: gdb-6.5-readline-long-line-crash-test.patch
|
||||
Patch23: gdb-6.5-bz216711-clone-is-outermost.patch
|
||||
Patch24: gdb-6.5-bz218379-ppc-solib-trampoline-test.patch
|
||||
Patch25: gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch
|
||||
Patch26: gdb-6.5-bz109921-DW_AT_decl_file-test.patch
|
||||
Patch27: gdb-6.3-bz140532-ppc-unwinding-test.patch
|
||||
Patch28: gdb-6.3-bz202689-exec-from-pthread-test.patch
|
||||
Patch29: gdb-6.6-bz230000-power6-disassembly-test.patch
|
||||
Patch30: gdb-6.3-bz231832-obstack-2gb.patch
|
||||
Patch31: gdb-6.6-bz229517-gcore-without-terminal.patch
|
||||
Patch32: gdb-6.6-bz235197-fork-detach-info.patch
|
||||
Patch33: gdb-6.6-testsuite-timeouts.patch
|
||||
Patch34: gdb-6.6-bz237572-ppc-atomic-sequence-test.patch
|
||||
Patch35: gdb-6.6-scheduler_locking-step-is-default.patch
|
||||
Patch36: gdb-6.3-attach-see-vdso-test.patch
|
||||
Patch37: gdb-6.5-bz243845-stale-testing-zombie-test.patch
|
||||
Patch38: gdb-6.6-buildid-locate.patch
|
||||
Patch39: gdb-6.6-buildid-locate-solib-missing-ids.patch
|
||||
Patch40: gdb-6.6-buildid-locate-rpm.patch
|
||||
Patch41: gdb-6.6-bfd-vdso8k.patch
|
||||
Patch42: gdb-6.7-charsign-test.patch
|
||||
Patch43: gdb-6.7-ppc-clobbered-registers-O2-test.patch
|
||||
Patch44: gdb-6.7-testsuite-stable-results.patch
|
||||
Patch45: gdb-6.5-ia64-libunwind-leak-test.patch
|
||||
Patch46: gdb-6.5-missed-trap-on-step-test.patch
|
||||
Patch47: gdb-6.7-bz426600-DW_TAG_interface_type-test.patch
|
||||
Patch48: gdb-6.5-gcore-buffer-limit-test.patch
|
||||
Patch49: gdb-6.6-threads-static-test.patch
|
||||
Patch50: gdb-6.3-mapping-zero-inode-test.patch
|
||||
Patch51: gdb-6.3-focus-cmd-prev-test.patch
|
||||
Patch52: gdb-6.8-bz442765-threaded-exec-test.patch
|
||||
Patch53: gdb-6.8-sparc64-silence-memcpy-check.patch
|
||||
Patch54: gdb-6.5-section-num-fixup-test.patch
|
||||
Patch55: gdb-6.8-bz436037-reg-no-longer-active.patch
|
||||
Patch56: gdb-6.8-watchpoint-conditionals-test.patch
|
||||
Patch57: gdb-6.8-bz466901-backtrace-full-prelinked.patch
|
||||
Patch58: gdb-6.8-bz457187-largefile-test.patch
|
||||
Patch59: gdb-simultaneous-step-resume-breakpoint-test.patch
|
||||
Patch60: gdb-core-open-vdso-warning.patch
|
||||
Patch61: gdb-x86_64-i386-syscall-restart.patch
|
||||
Patch62: gdb-bz533176-fortran-omp-step.patch
|
||||
Patch63: gdb-follow-child-stale-parent.patch
|
||||
Patch64: gdb-ccache-workaround.patch
|
||||
Patch65: gdb-archer-pie-addons.patch
|
||||
Patch66: gdb-archer-pie-addons-keep-disabled.patch
|
||||
Patch67: gdb-lineno-makeup-test.patch
|
||||
Patch68: gdb-ppc-power7-test.patch
|
||||
Patch69: gdb-bz541866-rwatch-before-run.patch
|
||||
Patch70: gdb-moribund-utrace-workaround.patch
|
||||
Patch71: gdb-archer-next-over-throw-cxx-exec.patch
|
||||
Patch72: gdb-bz601887-dwarf4-rh-test.patch
|
||||
Patch73: gdb-6.6-buildid-locate-core-as-arg.patch
|
||||
Patch74: gdb-6.6-buildid-locate-rpm-librpm-workaround.patch
|
||||
Patch75: gdb-test-bt-cfi-without-die.patch
|
||||
Patch76: gdb-gdb-add-index-script.patch
|
||||
Patch77: gdb-bz568248-oom-is-error.patch
|
||||
Patch78: gdb-bz634108-solib_address.patch
|
||||
Patch79: gdb-test-pid0-core.patch
|
||||
Patch80: gdb-test-dw2-aranges.patch
|
||||
Patch81: gdb-test-expr-cumulative-archer.patch
|
||||
Patch82: gdb-7.2.50-sparc-add-workaround-to-broken-debug-files.patch
|
||||
Patch83: gdb-glibc-vdso-workaround.patch
|
||||
Patch84: gdb-runtest-pie-override.patch
|
||||
Patch85: gdb-attach-fail-reasons-5of5.patch
|
||||
Patch86: gdb-stale-frame_info.patch
|
||||
Patch87: gdb-glibc-strstr-workaround.patch
|
||||
Patch88: gdb-rhel5.9-testcase-xlf-var-inside-mod.patch
|
||||
Patch89: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
|
||||
Patch90: gdb-rhbz795424-bitpos-20of25.patch
|
||||
Patch91: gdb-rhbz795424-bitpos-21of25.patch
|
||||
Patch92: gdb-rhbz795424-bitpos-22of25.patch
|
||||
Patch93: gdb-rhbz795424-bitpos-23of25.patch
|
||||
Patch94: gdb-rhbz795424-bitpos-25of25.patch
|
||||
Patch95: gdb-rhbz795424-bitpos-25of25-test.patch
|
||||
Patch96: gdb-rhbz795424-bitpos-lazyvalue.patch
|
||||
Patch97: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
|
||||
Patch98: gdb-enable-count-crash.patch
|
||||
Patch99: gdb-rhel5-gcc44.patch
|
||||
Patch100: gdb-6.6-buildid-locate-rpm-scl.patch
|
||||
Patch101: gdb-readline62-ask-more-rh.patch
|
||||
Patch102: gdb-6.8-attach-signalled-detach-stopped.patch
|
||||
Patch103: gdb-6.8-quit-never-aborts.patch
|
||||
Patch104: gdb-rhel5-compat.patch
|
||||
#Fedora Packages end
|
||||
|
||||
# Upstream patch to fix gcc -Werror
|
||||
Patch1002: gdb-6.6-buildid-locate-rpm-suse.patch
|
||||
Patch1003: gdb-ppc-ptrace.diff
|
||||
Patch1004: gdb-ia64-tdep.patch
|
||||
Patch1005: gdb-aarch64-hw-break.patch
|
||||
|
||||
BuildRequires: ncurses-devel texinfo gettext flex bison glibc-devel zlib-devel
|
||||
%if %{suse_version} < 1020
|
||||
@ -423,32 +409,20 @@ find -name "*.info*"|xargs rm -f
|
||||
%patch97 -p1
|
||||
%patch98 -p1
|
||||
%patch99 -p1
|
||||
%patch100 -p1
|
||||
%patch101 -p1
|
||||
#%%patch100 -p1
|
||||
#%%patch100 -p1 -R
|
||||
#%%patch101 -p1
|
||||
#%%patch101 -p1 -R
|
||||
%patch102 -p1
|
||||
%patch103 -p1
|
||||
%patch104 -p1
|
||||
%patch105 -p1
|
||||
%patch106 -p1
|
||||
%patch107 -p1
|
||||
%patch108 -p1
|
||||
%patch109 -p1
|
||||
%patch110 -p1
|
||||
%patch111 -p1
|
||||
%patch112 -p1
|
||||
%patch113 -p1
|
||||
%patch114 -p1
|
||||
#%%patch115 -p1
|
||||
%patch116 -p1
|
||||
%patch117 -p1
|
||||
%patch118 -p1
|
||||
#Fedora patching end
|
||||
|
||||
|
||||
|
||||
%patch1002 -p1
|
||||
%patch1003 -p1
|
||||
%patch1004 -p1
|
||||
%patch1005 -p0
|
||||
|
||||
find -name "*.orig" | xargs rm -f
|
||||
! find -name "*.rej" # Should not happen.
|
||||
@ -722,10 +696,6 @@ cd %{gdb_build}
|
||||
|
||||
make %{?_smp_mflags} install DESTDIR=$RPM_BUILD_ROOT
|
||||
|
||||
# install the gcore script in /usr/bin
|
||||
cp $RPM_BUILD_DIR/%{gdb_src}/gdb/gdb_gcore.sh $RPM_BUILD_ROOT%{_bindir}/gcore
|
||||
chmod 755 $RPM_BUILD_ROOT%{_bindir}/gcore
|
||||
|
||||
# Provide gdbtui for RHEL-5 and RHEL-6 as it is removed upstream (BZ 797664).
|
||||
%if 0%{?rhel:1} && 0%{?rhel} <= 6
|
||||
test ! -e $RPM_BUILD_ROOT%{_prefix}/bin/gdbtui
|
||||
@ -860,6 +830,7 @@ fi
|
||||
%defattr(-,root,root)
|
||||
%doc COPYING3 COPYING COPYING.LIB README NEWS
|
||||
%{_bindir}/gcore
|
||||
%{_mandir}/*/gcore.1*
|
||||
%{_bindir}/gdb
|
||||
%config(noreplace) %{_sysconfdir}/gdbinit
|
||||
%{_sysconfdir}/gdbinit.d
|
||||
@ -872,6 +843,8 @@ fi
|
||||
%{_mandir}/*/gdbtui.1*
|
||||
%endif # 0%{?rhel:1} && 0%{?rhel} <= 6
|
||||
%{_bindir}/gdb-add-index
|
||||
%{_mandir}/*/gdb-add-index.1*
|
||||
%{_mandir}/*/gdbinit.5*
|
||||
%{_datadir}/gdb
|
||||
%{_infodir}/annotate.info*
|
||||
%{_infodir}/gdb.info*
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b475a3ef42507a47b1ea4b7f9a4849287b4c713e5081ec86874eaa7da194f78b
|
||||
size 11754
|
@ -9,7 +9,7 @@ chomp($dir);
|
||||
system "rm \$(grep \"^Patch[0-9]\\{1,3\\}:\" gdb.spec | cut -d\" \" -f 2) 2>/dev/null";
|
||||
system "rm *.tar.bz2";
|
||||
system "cp $gdbFedora/*.tar.bz2 ./";
|
||||
system "pushd $gdbFedora ; $dir/patchname_get.sh -v gdb.spec 2>$dir/test.txt; popd";
|
||||
system "pushd $gdbFedora ; sh $dir/patchname_get.sh -v gdb.spec 2>$dir/test.txt; popd";
|
||||
system "grep \"^Patch\" test.txt > test2.txt";
|
||||
|
||||
my @patchliste = `cat test2.txt`;
|
||||
|
Loading…
x
Reference in New Issue
Block a user