Accepting request 221851 from devel:gcc
- Use patchlist.pl to merge with gdb-Fedora at e86a0cc13a5d91ba95242690237bb77511500897. - Don't apply patches gdb-rhel5-gcc44.patch, gdb-6.6-buildid-locate-rpm-scl.patch, gdb-readline62-ask-more-rh.patch, gdb-6.8-attach-signalled-detach-stopped.patch, gdb-6.8-quit-never-aborts.patch, gdb-rhel5-compat.patch; retained to have same structure as fedoras package. - Add gdb-testsuite-nohostid.patch (from fedora). - Remove gdb-fix-attach-signalled-detach-stopped.patch again (as base not applied), gdb-ppc-ptrace.diff (not applied since some time). - Merge from fedoras gdb-7.7-1.fc21, a rebase to FSF GDB 7.7. The 7.7 features are: * For C++, the 'typeid' operator has been added and exception catchpoints can be filtered by type. * Python scripting has been extended * New commands and new command options * New convenice variables/functions * Some GDB/MI improvements * Remote protocal improvments * SystemTap SDT probes support AArch64 GNU/Linux * Support for Fission DWP file format version 2 * 'tsave' command supports CTF (Common Trace Format) * New script 'gcore' - Remove now obsolete gdb-aarch64-hw-break.patch - Remove merged bits from gdb-ppc64le.patch - Rediff gdb-6.6-buildid-locate-rpm-suse.patch - Add gdb-fix-attach-signalled-detach-stopped.patch OBS-URL: https://build.opensuse.org/request/show/221851 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gdb?expand=0&rev=98
This commit is contained in:
commit
a4d637ac1c
@ -4,11 +4,11 @@
|
||||
to install and uninstall.
|
||||
* gstack.sh, gstack.1: New files.
|
||||
|
||||
Index: gdb-7.6/gdb/Makefile.in
|
||||
Index: gdb-7.7/gdb/Makefile.in
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.7.orig/gdb/Makefile.in 2014-02-06 20:29:09.401214339 +0100
|
||||
+++ gdb-7.7/gdb/Makefile.in 2014-02-06 20:29:09.501214360 +0100
|
||||
@@ -1067,7 +1067,7 @@ info install-info clean-info dvi pdf ins
|
||||
install: all
|
||||
@$(MAKE) $(FLAGS_TO_PASS) install-only
|
||||
|
||||
@ -17,7 +17,7 @@ Index: gdb-7.6/gdb/Makefile.in
|
||||
transformed_name=`t='$(program_transform_name)'; \
|
||||
echo gdb | sed -e "$$t"` ; \
|
||||
if test "x$$transformed_name" = x; then \
|
||||
@@ -1060,7 +1060,25 @@ install-only: $(CONFIG_INSTALL)
|
||||
@@ -1104,7 +1104,25 @@ install-strip:
|
||||
install-python:
|
||||
$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(GDB_DATADIR)/python/gdb
|
||||
|
||||
@ -44,7 +44,7 @@ Index: gdb-7.6/gdb/Makefile.in
|
||||
transformed_name=`t='$(program_transform_name)'; \
|
||||
echo gdb | sed -e $$t` ; \
|
||||
if test "x$$transformed_name" = x; then \
|
||||
@@ -1083,6 +1101,18 @@ uninstall: force $(CONFIG_UNINSTALL)
|
||||
@@ -1127,6 +1145,18 @@ uninstall: force $(CONFIG_UNINSTALL)
|
||||
fi
|
||||
@$(MAKE) DO=uninstall "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do
|
||||
|
||||
@ -63,10 +63,10 @@ Index: gdb-7.6/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.6/gdb/gstack.sh
|
||||
Index: gdb-7.7/gdb/gstack.sh
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.6/gdb/gstack.sh 2013-05-21 13:26:55.434625908 +0200
|
||||
+++ gdb-7.7/gdb/gstack.sh 2014-02-06 20:29:09.501214360 +0100
|
||||
@@ -0,0 +1,43 @@
|
||||
+#!/bin/sh
|
||||
+
|
||||
@ -111,10 +111,10 @@ Index: gdb-7.6/gdb/gstack.sh
|
||||
+ -e 's/^\((gdb) \)*//' \
|
||||
+ -e '/^#/p' \
|
||||
+ -e '/^Thread/p'
|
||||
Index: gdb-7.6/gdb/testsuite/gdb.base/gstack.exp
|
||||
Index: gdb-7.7/gdb/testsuite/gdb.base/gstack.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.6/gdb/testsuite/gdb.base/gstack.exp 2013-05-21 13:26:55.434625908 +0200
|
||||
+++ gdb-7.7/gdb/testsuite/gdb.base/gstack.exp 2014-02-06 20:43:17.774747352 +0100
|
||||
@@ -0,0 +1,66 @@
|
||||
+# Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -133,7 +133,7 @@ Index: gdb-7.6/gdb/testsuite/gdb.base/gstack.exp
|
||||
+
|
||||
+set testfile gstack
|
||||
+set executable ${testfile}
|
||||
+set binfile ${objdir}/${subdir}/$executable
|
||||
+set binfile [standard_output_file $executable]
|
||||
+if {[build_executable ${testfile} ${executable} "" {debug}] == -1} {
|
||||
+ return -1
|
||||
+}
|
||||
@ -182,10 +182,10 @@ Index: gdb-7.6/gdb/testsuite/gdb.base/gstack.exp
|
||||
+gdb_exit
|
||||
+
|
||||
+remote_exec host "kill -9 $pid"
|
||||
Index: gdb-7.6/gdb/testsuite/gdb.base/gstack.c
|
||||
Index: gdb-7.7/gdb/testsuite/gdb.base/gstack.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.6/gdb/testsuite/gdb.base/gstack.c 2013-05-21 13:26:33.610819569 +0200
|
||||
+++ gdb-7.7/gdb/testsuite/gdb.base/gstack.c 2014-02-06 20:29:09.502214360 +0100
|
||||
@@ -0,0 +1,43 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
|
@ -11,11 +11,11 @@
|
||||
|
||||
* gdb.texinfo (File Options): Document --readnever.
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo
|
||||
Index: gdb-7.6.90.20140127/gdb/doc/gdb.texinfo
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/doc/gdb.texinfo 2014-01-27 22:42:53.150573603 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/doc/gdb.texinfo 2014-01-27 22:42:56.694576319 +0100
|
||||
@@ -1031,6 +1031,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.6.50.20130731-cvs/gdb/doc/gdb.texinfo
|
||||
@end table
|
||||
|
||||
@node Mode Options
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/main.c
|
||||
Index: gdb-7.6.90.20140127/gdb/main.c
|
||||
===================================================================
|
||||
--- 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)
|
||||
--- gdb-7.6.90.20140127.orig/gdb/main.c 2014-01-27 22:42:53.153573606 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/main.c 2014-01-27 22:42:56.695576319 +0100
|
||||
@@ -473,6 +473,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,7 +40,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/main.c
|
||||
{"r", no_argument, &readnow_symbol_files, 1},
|
||||
{"quiet", no_argument, &quiet, 1},
|
||||
{"q", no_argument, &quiet, 1},
|
||||
@@ -1154,6 +1155,7 @@ Selection of debuggee and its files:\n\n
|
||||
@@ -1164,6 +1165,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\
|
||||
@ -48,10 +48,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/main.c
|
||||
--write Set writing into executable and core files.\n\n\
|
||||
"), stream);
|
||||
fputs_unfiltered (_("\
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/symfile.c
|
||||
Index: gdb-7.6.90.20140127/gdb/symfile.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/symfile.c 2014-01-27 22:42:53.154573607 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/symfile.c 2014-01-27 22:42:56.696576320 +0100
|
||||
@@ -82,6 +82,7 @@ static void clear_symtab_users_cleanup (
|
||||
|
||||
/* Global variables owned by this file. */
|
||||
@ -60,34 +60,32 @@ Index: gdb-7.6.50.20130731-cvs/gdb/symfile.c
|
||||
|
||||
/* Functions this file defines. */
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/dwarf2read.c
|
||||
Index: gdb-7.6.90.20140127/gdb/dwarf2read.c
|
||||
===================================================================
|
||||
--- 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"
|
||||
--- gdb-7.6.90.20140127.orig/gdb/dwarf2read.c 2014-01-27 22:42:56.700576323 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/dwarf2read.c 2014-01-27 22:44:21.915641560 +0100
|
||||
@@ -70,6 +70,7 @@
|
||||
#include "source.h"
|
||||
#include "filestuff.h"
|
||||
#include "build-id.h"
|
||||
+#include "top.h"
|
||||
|
||||
#include <fcntl.h>
|
||||
#include "gdb_string.h"
|
||||
@@ -1834,8 +1835,9 @@ dwarf2_has_info (struct objfile *objfile
|
||||
#include <string.h>
|
||||
@@ -1975,7 +1976,8 @@ dwarf2_has_info (struct objfile *objfile
|
||||
(void *) names);
|
||||
dwarf2_per_objfile->objfile = objfile;
|
||||
}
|
||||
- return (dwarf2_per_objfile->info.asection != NULL
|
||||
- && dwarf2_per_objfile->abbrev.asection != NULL);
|
||||
+ return (! readnever_symbol_files
|
||||
+ && (dwarf2_per_objfile->info.asection != NULL
|
||||
+ && dwarf2_per_objfile->abbrev.asection != NULL));
|
||||
}
|
||||
|
||||
/* When loading sections, we look either for uncompressed section or for
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/top.h
|
||||
- return (!dwarf2_per_objfile->info.is_virtual
|
||||
+ return !readnever_symbol_files &&
|
||||
+ (!dwarf2_per_objfile->info.is_virtual
|
||||
&& dwarf2_per_objfile->info.s.asection != NULL
|
||||
&& !dwarf2_per_objfile->abbrev.is_virtual
|
||||
&& dwarf2_per_objfile->abbrev.s.asection != NULL);
|
||||
Index: gdb-7.6.90.20140127/gdb/top.h
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/top.h 2014-01-27 22:42:53.159573610 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/top.h 2014-01-27 22:42:56.701576324 +0100
|
||||
@@ -59,6 +59,7 @@ extern void set_prompt (const char *s);
|
||||
|
||||
/* From random places. */
|
||||
|
@ -1,25 +1,25 @@
|
||||
Index: gdb-7.5.91.20130323/gdb/testsuite/configure.ac
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/configure.ac
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/testsuite/configure.ac 2014-01-27 22:41:19.281501688 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/configure.ac 2014-01-27 22:41:39.736517360 +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 \
|
||||
gdb.mi/Makefile gdb.modula2/Makefile gdb.multi/Makefile \
|
||||
- gdb.objc/Makefile gdb.opencl/Makefile gdb.opt/Makefile gdb.pascal/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.perf/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.stabs/Makefile \
|
||||
gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile])
|
||||
Index: gdb-7.5.91.20130323/gdb/testsuite/configure
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/configure
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/testsuite/configure 2014-01-27 22:41:19.283501689 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/configure 2014-01-27 22:41:49.933525172 +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.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"
|
||||
-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.perf/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.perf/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
|
||||
@ -28,13 +28,13 @@ Index: gdb-7.5.91.20130323/gdb/testsuite/configure
|
||||
"gdb.opt/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.opt/Makefile" ;;
|
||||
"gdb.pascal/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.pascal/Makefile" ;;
|
||||
+ "gdb.pie/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.pie/Makefile" ;;
|
||||
"gdb.perf/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.perf/Makefile" ;;
|
||||
"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.5.91.20130323/gdb/testsuite/gdb.pie/attach.c
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/attach.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/attach.c 2013-03-23 19:47:24.191683466 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/attach.c 2014-01-27 22:41:19.284501690 +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.5.91.20130323/gdb/testsuite/gdb.pie/attach.c
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
Index: gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/attach2.c
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/attach2.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/attach2.c 2013-03-23 19:47:24.192683421 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/attach2.c 2014-01-27 22:41:19.284501690 +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.5.91.20130323/gdb/testsuite/gdb.pie/attach2.c
|
||||
+ }
|
||||
+ return (0);
|
||||
+}
|
||||
Index: gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/break.c
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/break.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/break.c 2013-03-23 19:47:24.192683421 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/break.c 2014-01-27 22:41:19.284501690 +0100
|
||||
@@ -0,0 +1,146 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
@ -236,10 +236,10 @@ Index: gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/break.c
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
Index: gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/break1.c
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/break1.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/break1.c 2013-03-23 19:47:24.192683421 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/break1.c 2014-01-27 22:41:19.284501690 +0100
|
||||
@@ -0,0 +1,44 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
@ -285,10 +285,10 @@ Index: gdb-7.5.91.20130323/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.5.91.20130323/gdb/testsuite/gdb.pie/coremaker.c
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/coremaker.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/coremaker.c 2013-03-23 19:47:24.192683421 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/coremaker.c 2014-01-27 22:41:19.284501690 +0100
|
||||
@@ -0,0 +1,142 @@
|
||||
+/* Copyright 1992, 1993, 1994, 1995, 1996, 1999
|
||||
+ Free Software Foundation, Inc.
|
||||
@ -432,10 +432,10 @@ Index: gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/coremaker.c
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
Index: gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/attach.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/attach.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/attach.exp 2013-03-23 19:47:24.193683377 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/attach.exp 2014-01-27 22:41:19.285501691 +0100
|
||||
@@ -0,0 +1,417 @@
|
||||
+# Copyright 1997, 1999, 2002 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -854,10 +854,10 @@ Index: gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/attach.exp
|
||||
+do_call_attach_tests
|
||||
+
|
||||
+return 0
|
||||
Index: gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/break.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/break.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/break.exp 2013-03-23 19:47:24.194683332 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/break.exp 2014-01-27 22:41:19.286501691 +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.5.91.20130323/gdb/testsuite/gdb.pie/break.exp
|
||||
+ send_gdb "set args main\n"
|
||||
+ gdb_expect -re ".*$gdb_prompt $" {}
|
||||
+}
|
||||
Index: gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/corefile.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/corefile.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/corefile.exp 2013-03-23 19:47:24.194683332 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/corefile.exp 2014-01-27 22:41:19.286501691 +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.5.91.20130323/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.5.91.20130323/gdb/testsuite/gdb.pie/Makefile.in
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/Makefile.in
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/Makefile.in 2013-03-23 19:47:24.194683332 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/Makefile.in 2014-01-27 22:41:19.286501691 +0100
|
||||
@@ -0,0 +1,19 @@
|
||||
+VPATH = @srcdir@
|
||||
+srcdir = @srcdir@
|
||||
|
@ -6,20 +6,20 @@
|
||||
* gdb.gdb/xfullpath.exp: Ditto.
|
||||
* gdb.gdb/observer.exp: Ditto.
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/selftest-support.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/lib/selftest-support.exp
|
||||
===================================================================
|
||||
--- 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]
|
||||
--- gdb-7.6.90.20140127.orig/gdb/testsuite/lib/selftest-support.exp 2014-01-27 22:42:04.022535966 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/lib/selftest-support.exp 2014-01-27 22:42:42.630565675 +0100
|
||||
@@ -136,18 +136,18 @@ proc do_self_tests {function body} {
|
||||
}
|
||||
|
||||
# Remove any old copy lying around.
|
||||
- remote_file host delete x$tool
|
||||
+ #remote_file host delete x$tool
|
||||
- remote_file host delete $xgdb
|
||||
+ #remote_file host delete $xgdb
|
||||
|
||||
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 $xgdb]
|
||||
+ #set file [remote_download host $GDB_FULLPATH $xgdb]
|
||||
|
||||
- set result [selftest_setup $file $function]
|
||||
+ set result [selftest_setup $GDB_FULLPATH $function]
|
||||
|
@ -23,11 +23,11 @@ instead.
|
||||
|
||||
Port to GDB-6.7.
|
||||
|
||||
Index: gdb-7.4.50.20120703/gdb/amd64-linux-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/amd64-linux-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120703.orig/gdb/amd64-linux-tdep.c 2012-06-13 22:36:48.000000000 +0200
|
||||
+++ gdb-7.4.50.20120703/gdb/amd64-linux-tdep.c 2012-07-03 17:32:46.547563363 +0200
|
||||
@@ -271,6 +271,80 @@ amd64_linux_register_reggroup_p (struct
|
||||
--- gdb-7.6.90.20140127.orig/gdb/amd64-linux-tdep.c 2014-02-04 23:40:06.263483469 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/amd64-linux-tdep.c 2014-02-04 23:47:18.438009290 +0100
|
||||
@@ -289,6 +289,80 @@ amd64_linux_register_reggroup_p (struct
|
||||
|
||||
/* Set the program counter for process PTID to PC. */
|
||||
|
||||
@ -108,20 +108,20 @@ Index: gdb-7.4.50.20120703/gdb/amd64-linux-tdep.c
|
||||
static void
|
||||
amd64_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
|
||||
{
|
||||
@@ -1547,6 +1621,8 @@ amd64_linux_init_abi (struct gdbarch_inf
|
||||
@@ -1607,6 +1681,8 @@ amd64_linux_init_abi_common(struct gdbar
|
||||
|
||||
amd64_linux_init_abi_common (info, gdbarch);
|
||||
tdep->xsave_xcr0_offset = I386_LINUX_XSAVE_XCR0_OFFSET;
|
||||
|
||||
+ tdep->outermost_frame_p = amd64_linux_outermost_frame;
|
||||
+
|
||||
/* GNU/Linux uses SVR4-style shared libraries. */
|
||||
set_solib_svr4_fetch_link_map_offsets
|
||||
(gdbarch, svr4_lp64_fetch_link_map_offsets);
|
||||
Index: gdb-7.4.50.20120703/gdb/amd64-tdep.c
|
||||
/* Add the %orig_rax register used for syscall restarting. */
|
||||
set_gdbarch_write_pc (gdbarch, amd64_linux_write_pc);
|
||||
|
||||
Index: gdb-7.6.90.20140127/gdb/amd64-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120703.orig/gdb/amd64-tdep.c 2012-06-16 17:20:22.000000000 +0200
|
||||
+++ gdb-7.4.50.20120703/gdb/amd64-tdep.c 2012-07-03 17:32:12.335604415 +0200
|
||||
@@ -2324,6 +2324,7 @@ amd64_frame_unwind_stop_reason (struct f
|
||||
--- gdb-7.6.90.20140127.orig/gdb/amd64-tdep.c 2014-02-04 23:40:06.265483471 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/amd64-tdep.c 2014-02-04 23:45:40.846891653 +0100
|
||||
@@ -2359,6 +2359,7 @@ amd64_frame_unwind_stop_reason (struct f
|
||||
{
|
||||
struct amd64_frame_cache *cache =
|
||||
amd64_frame_cache (this_frame, this_cache);
|
||||
@ -129,7 +129,7 @@ Index: gdb-7.4.50.20120703/gdb/amd64-tdep.c
|
||||
|
||||
if (!cache->base_p)
|
||||
return UNWIND_UNAVAILABLE;
|
||||
@@ -2332,6 +2333,10 @@ amd64_frame_unwind_stop_reason (struct f
|
||||
@@ -2367,6 +2368,10 @@ amd64_frame_unwind_stop_reason (struct f
|
||||
if (cache->base == 0)
|
||||
return UNWIND_OUTERMOST;
|
||||
|
||||
@ -140,30 +140,31 @@ Index: gdb-7.4.50.20120703/gdb/amd64-tdep.c
|
||||
return UNWIND_NO_REASON;
|
||||
}
|
||||
|
||||
@@ -2341,6 +2346,7 @@ amd64_frame_this_id (struct frame_info *
|
||||
@@ -2498,6 +2503,7 @@ amd64_sigtramp_frame_this_id (struct fra
|
||||
{
|
||||
struct amd64_frame_cache *cache =
|
||||
amd64_frame_cache (this_frame, this_cache);
|
||||
amd64_sigtramp_frame_cache (this_frame, this_cache);
|
||||
+ struct gdbarch_tdep *tdep = gdbarch_tdep (get_frame_arch (this_frame));
|
||||
|
||||
if (!cache->base_p)
|
||||
return;
|
||||
@@ -2349,6 +2355,10 @@ amd64_frame_this_id (struct frame_info *
|
||||
if (cache->base == 0)
|
||||
return;
|
||||
|
||||
+ /* Detect OS dependent outermost frames; such as `clone'. */
|
||||
+ if (tdep->outermost_frame_p && tdep->outermost_frame_p (this_frame))
|
||||
+ return;
|
||||
+
|
||||
(*this_id) = frame_id_build (cache->base + 16, cache->pc);
|
||||
(*this_id) = frame_id_build_unavailable_stack (get_frame_pc (this_frame));
|
||||
@@ -2506,6 +2512,11 @@ amd64_sigtramp_frame_this_id (struct fra
|
||||
/* This marks the outermost frame. */
|
||||
return;
|
||||
}
|
||||
+ else if (tdep->outermost_frame_p && tdep->outermost_frame_p (this_frame))
|
||||
+ {
|
||||
+ /* Detect OS dependent outermost frames; such as `clone'. */
|
||||
+ return;
|
||||
+ }
|
||||
else
|
||||
(*this_id) = frame_id_build (cache->base + 16, get_frame_pc (this_frame));
|
||||
}
|
||||
|
||||
Index: gdb-7.4.50.20120703/gdb/i386-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/i386-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120703.orig/gdb/i386-tdep.c 2012-06-18 19:31:34.000000000 +0200
|
||||
+++ gdb-7.4.50.20120703/gdb/i386-tdep.c 2012-07-03 17:32:12.339604409 +0200
|
||||
@@ -7655,6 +7655,9 @@ i386_gdbarch_init (struct gdbarch_info i
|
||||
--- gdb-7.6.90.20140127.orig/gdb/i386-tdep.c 2014-02-04 23:40:06.267483473 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/i386-tdep.c 2014-02-04 23:43:33.048734974 +0100
|
||||
@@ -7830,6 +7830,9 @@ i386_gdbarch_init (struct gdbarch_info i
|
||||
|
||||
tdep->xsave_xcr0_offset = -1;
|
||||
|
||||
@ -173,11 +174,11 @@ Index: gdb-7.4.50.20120703/gdb/i386-tdep.c
|
||||
tdep->record_regmap = i386_record_regmap;
|
||||
|
||||
set_gdbarch_long_long_align_bit (gdbarch, 32);
|
||||
Index: gdb-7.4.50.20120703/gdb/i386-tdep.h
|
||||
Index: gdb-7.6.90.20140127/gdb/i386-tdep.h
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120703.orig/gdb/i386-tdep.h 2012-06-13 22:29:15.000000000 +0200
|
||||
+++ gdb-7.4.50.20120703/gdb/i386-tdep.h 2012-07-03 17:32:12.340604408 +0200
|
||||
@@ -219,6 +219,9 @@ struct gdbarch_tdep
|
||||
--- gdb-7.6.90.20140127.orig/gdb/i386-tdep.h 2014-02-04 23:40:06.268483475 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/i386-tdep.h 2014-02-04 23:43:33.048734974 +0100
|
||||
@@ -192,6 +192,9 @@ struct gdbarch_tdep
|
||||
int (*i386_sysenter_record) (struct regcache *regcache);
|
||||
/* Parse syscall args. */
|
||||
int (*i386_syscall_record) (struct regcache *regcache);
|
||||
@ -187,10 +188,10 @@ Index: gdb-7.4.50.20120703/gdb/i386-tdep.h
|
||||
};
|
||||
|
||||
/* Floating-point registers. */
|
||||
Index: gdb-7.4.50.20120703/gdb/ia64-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/ia64-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120703.orig/gdb/ia64-tdep.c 2012-07-03 17:30:09.000000000 +0200
|
||||
+++ gdb-7.4.50.20120703/gdb/ia64-tdep.c 2012-07-03 17:32:12.343604405 +0200
|
||||
--- gdb-7.6.90.20140127.orig/gdb/ia64-tdep.c 2014-02-04 23:40:06.270483477 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/ia64-tdep.c 2014-02-04 23:43:33.049734975 +0100
|
||||
@@ -2176,6 +2176,138 @@ static const struct frame_unwind ia64_fr
|
||||
default_frame_sniffer
|
||||
};
|
||||
@ -330,7 +331,7 @@ Index: gdb-7.4.50.20120703/gdb/ia64-tdep.c
|
||||
/* Signal trampolines. */
|
||||
|
||||
static void
|
||||
@@ -4146,6 +4278,7 @@ ia64_gdbarch_init (struct gdbarch_info i
|
||||
@@ -4023,6 +4155,7 @@ ia64_gdbarch_init (struct gdbarch_info i
|
||||
set_gdbarch_dummy_id (gdbarch, ia64_dummy_id);
|
||||
|
||||
set_gdbarch_unwind_pc (gdbarch, ia64_unwind_pc);
|
||||
@ -338,10 +339,10 @@ Index: gdb-7.4.50.20120703/gdb/ia64-tdep.c
|
||||
#ifdef HAVE_LIBUNWIND_IA64_H
|
||||
frame_unwind_append_unwinder (gdbarch,
|
||||
&ia64_libunwind_sigtramp_frame_unwind);
|
||||
Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.threads/bt-clone-stop.c
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.threads/bt-clone-stop.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.4.50.20120703/gdb/testsuite/gdb.threads/bt-clone-stop.c 2012-07-03 17:32:12.344604404 +0200
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.threads/bt-clone-stop.c 2014-02-04 23:43:33.050734976 +0100
|
||||
@@ -0,0 +1,39 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
@ -382,10 +383,10 @@ Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.threads/bt-clone-stop.c
|
||||
+ for (;;)
|
||||
+ pause();
|
||||
+}
|
||||
Index: gdb-7.4.50.20120703/gdb/testsuite/gdb.threads/bt-clone-stop.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.threads/bt-clone-stop.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.4.50.20120703/gdb/testsuite/gdb.threads/bt-clone-stop.exp 2012-07-03 17:32:12.344604404 +0200
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.threads/bt-clone-stop.exp 2014-02-04 23:43:33.050734976 +0100
|
||||
@@ -0,0 +1,61 @@
|
||||
+# Copyright 2006 Free Software Foundation, Inc.
|
||||
+
|
||||
|
@ -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.6.50.20130731-cvs/gdb/exceptions.h
|
||||
Index: gdb-7.6.90.20140127/gdb/exceptions.h
|
||||
===================================================================
|
||||
--- 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,
|
||||
--- gdb-7.6.90.20140127.orig/gdb/exceptions.h 2014-02-06 17:31:00.148529736 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/exceptions.h 2014-02-06 17:31:17.560548525 +0100
|
||||
@@ -97,6 +97,9 @@ enum errors {
|
||||
/* An undefined command was executed. */
|
||||
UNDEFINED_COMMAND_ERROR,
|
||||
|
||||
+ /* Attempt to load a core file as executable. */
|
||||
+ IS_CORE_ERROR,
|
||||
@ -72,10 +72,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/exceptions.h
|
||||
/* Add more errors here. */
|
||||
NR_ERRORS
|
||||
};
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/exec.c
|
||||
Index: gdb-7.6.90.20140127/gdb/exec.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/exec.c 2014-02-06 17:30:58.266527708 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/exec.c 2014-02-06 17:31:00.149529737 +0100
|
||||
@@ -34,6 +34,7 @@
|
||||
#include "gdbthread.h"
|
||||
#include "progspace.h"
|
||||
@ -84,7 +84,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/exec.c
|
||||
|
||||
#include <fcntl.h>
|
||||
#include "readline/readline.h"
|
||||
@@ -217,12 +218,27 @@ exec_file_attach (char *filename, int fr
|
||||
@@ -228,12 +229,27 @@ exec_file_attach (char *filename, int fr
|
||||
|
||||
if (!bfd_check_format_matches (exec_bfd, bfd_object, &matching))
|
||||
{
|
||||
@ -115,11 +115,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/exec.c
|
||||
}
|
||||
|
||||
if (build_section_table (exec_bfd, §ions, §ions_end))
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/main.c
|
||||
Index: gdb-7.6.90.20140127/gdb/main.c
|
||||
===================================================================
|
||||
--- 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 {
|
||||
--- gdb-7.6.90.20140127.orig/gdb/main.c 2014-02-06 17:30:58.267527709 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/main.c 2014-02-06 17:32:32.232629052 +0100
|
||||
@@ -307,6 +307,36 @@ typedef struct cmdarg {
|
||||
/* Define type VEC (cmdarg_s). */
|
||||
DEF_VEC_O (cmdarg_s);
|
||||
|
||||
@ -156,7 +156,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/main.c
|
||||
static int
|
||||
captured_main (void *data)
|
||||
{
|
||||
@@ -810,6 +840,8 @@ captured_main (void *data)
|
||||
@@ -824,6 +854,8 @@ captured_main (void *data)
|
||||
{
|
||||
symarg = argv[optind];
|
||||
execarg = argv[optind];
|
||||
@ -165,7 +165,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/main.c
|
||||
optind++;
|
||||
}
|
||||
|
||||
@@ -975,11 +1007,25 @@ captured_main (void *data)
|
||||
@@ -987,11 +1019,25 @@ captured_main (void *data)
|
||||
&& symarg != NULL
|
||||
&& strcmp (execarg, symarg) == 0)
|
||||
{
|
||||
@ -191,6 +191,6 @@ Index: gdb-7.6.50.20130731-cvs/gdb/main.c
|
||||
+ as a core file. */
|
||||
+ if (catch_command_errors (func, execarg, !batch_flag, RETURN_MASK_ALL)
|
||||
+ && core_bfd == NULL)
|
||||
catch_command_errors (symbol_file_add_main, symarg,
|
||||
!batch_flag, RETURN_MASK_ALL);
|
||||
catch_command_errors_const (symbol_file_add_main, symarg,
|
||||
!batch_flag, RETURN_MASK_ALL);
|
||||
}
|
||||
|
@ -1,8 +1,20 @@
|
||||
Index: gdb-7.4.50.20120602/gdb/elfread.c
|
||||
Index: gdb-7.6.90.20140127/gdb/proc-service.list
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120602.orig/gdb/elfread.c 2012-06-02 21:35:09.669510757 +0200
|
||||
+++ gdb-7.4.50.20120602/gdb/elfread.c 2012-06-02 21:35:31.106502660 +0200
|
||||
@@ -1658,6 +1658,19 @@ build_id_to_filename (struct build_id *b
|
||||
--- gdb-7.6.90.20140127.orig/gdb/proc-service.list 2014-02-06 17:32:42.810640320 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/proc-service.list 2014-02-06 17:33:35.406696964 +0100
|
||||
@@ -37,4 +37,7 @@
|
||||
ps_pstop;
|
||||
ps_ptread;
|
||||
ps_ptwrite;
|
||||
+
|
||||
+ /* gdb-6.6-buildid-locate-rpm.patch */
|
||||
+ rpmsqEnable;
|
||||
};
|
||||
Index: gdb-7.6.90.20140127/gdb/build-id.c
|
||||
===================================================================
|
||||
--- gdb-7.6.90.20140127.orig/gdb/build-id.c 2014-02-06 17:30:14.230480264 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/build-id.c 2014-02-06 17:34:28.846754283 +0100
|
||||
@@ -677,6 +677,19 @@ build_id_to_filename (const struct elf_b
|
||||
#include <dlfcn.h>
|
||||
#endif
|
||||
|
||||
@ -22,15 +34,3 @@ Index: gdb-7.4.50.20120602/gdb/elfread.c
|
||||
/* This MISSING_RPM_HASH tracker is used to collect all the missing rpm files
|
||||
and avoid their duplicities during a single inferior run. */
|
||||
|
||||
Index: gdb-7.4.50.20120602/gdb/proc-service.list
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120602.orig/gdb/proc-service.list 2012-06-02 21:35:09.669510757 +0200
|
||||
+++ gdb-7.4.50.20120602/gdb/proc-service.list 2012-06-02 21:35:14.296508989 +0200
|
||||
@@ -37,4 +37,7 @@
|
||||
ps_pstop;
|
||||
ps_ptread;
|
||||
ps_ptwrite;
|
||||
+
|
||||
+ /* gdb-6.6-buildid-locate-rpm.patch */
|
||||
+ rpmsqEnable;
|
||||
};
|
||||
|
@ -1,9 +1,11 @@
|
||||
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
|
||||
Index: gdb-7.6.90.20140127/gdb/dwarf2read.c
|
||||
===================================================================
|
||||
--- gdb-7.6.90.20140127.orig/gdb/dwarf2read.c 2014-02-06 18:28:23.756232026 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/dwarf2read.c 2014-02-06 18:28:48.969259122 +0100
|
||||
@@ -3035,6 +3035,14 @@ read_index_from_section (struct objfile
|
||||
"set use-deprecated-index-sections on". */
|
||||
if (version < 6 && !deprecated_ok)
|
||||
{
|
||||
@ -18,7 +20,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=953585
|
||||
static int warning_printed = 0;
|
||||
if (!warning_printed)
|
||||
{
|
||||
@@ -2711,6 +2719,8 @@ to use the section anyway."),
|
||||
@@ -3046,6 +3054,8 @@ to use the section anyway."),
|
||||
warning_printed = 1;
|
||||
}
|
||||
return 0;
|
||||
@ -26,10 +28,12 @@ https://bugzilla.redhat.com/show_bug.cgi?id=953585
|
||||
+ }
|
||||
}
|
||||
/* 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;
|
||||
of the TU (for symbols coming from TUs),
|
||||
Index: gdb-7.6.90.20140127/gdb/build-id.c
|
||||
===================================================================
|
||||
--- gdb-7.6.90.20140127.orig/gdb/build-id.c 2014-02-06 18:28:23.758232029 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/build-id.c 2014-02-06 18:28:26.814235312 +0100
|
||||
@@ -711,7 +711,7 @@ static int missing_rpm_list_entries;
|
||||
/* Returns the count of newly added rpms. */
|
||||
|
||||
static int
|
||||
@ -38,7 +42,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=953585
|
||||
{
|
||||
static int rpm_init_done = 0;
|
||||
rpmts ts;
|
||||
@@ -1778,7 +1778,7 @@ missing_rpm_enlist (const char *filename
|
||||
@@ -815,7 +815,7 @@ missing_rpm_enlist (const char *filename
|
||||
mi = rpmtsInitIterator_p (ts, RPMTAG_BASENAMES, filename, 0);
|
||||
if (mi != NULL)
|
||||
{
|
||||
@ -47,7 +51,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=953585
|
||||
{
|
||||
Header h;
|
||||
char *debuginfo, **slot, *s, *s2;
|
||||
@@ -1897,6 +1897,35 @@ missing_rpm_enlist (const char *filename
|
||||
@@ -933,6 +933,35 @@ missing_rpm_enlist (const char *filename
|
||||
xfree (debuginfo);
|
||||
count++;
|
||||
}
|
||||
@ -83,7 +87,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=953585
|
||||
|
||||
rpmdbFreeIterator_p (mi);
|
||||
}
|
||||
@@ -1907,6 +1936,19 @@ missing_rpm_enlist (const char *filename
|
||||
@@ -943,6 +972,19 @@ missing_rpm_enlist (const char *filename
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
|
||||
Index: gdb-7.7/gdb/build-id.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.7.orig/gdb/build-id.c 2014-02-09 17:47:19.091979560 +0100
|
||||
+++ gdb-7.7/gdb/build-id.c 2014-02-09 17:50:48.936211228 +0100
|
||||
@@ -828,9 +828,9 @@ missing_rpm_enlist (const char *filename
|
||||
if (h == NULL)
|
||||
break;
|
||||
|
||||
@ -15,7 +15,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
|
||||
&err);
|
||||
if (!debuginfo)
|
||||
{
|
||||
@@ -1873,60 +1873,19 @@ missing_rpm_enlist_1 (const char *filena
|
||||
@@ -838,60 +838,19 @@ missing_rpm_enlist (const char *filename
|
||||
err);
|
||||
continue;
|
||||
}
|
||||
@ -78,7 +78,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
|
||||
/* Base package name for `debuginfo-install'. We do not use the
|
||||
`yum' command directly as the line
|
||||
yum --enablerepo='*debug*' install NAME-debuginfo.ARCH
|
||||
@@ -2053,7 +2012,7 @@ missing_rpm_list_print (void)
|
||||
@@ -976,7 +935,7 @@ missing_rpm_list_print (void)
|
||||
(int (*) (const void *, const void *)) missing_rpm_list_compar);
|
||||
|
||||
printf_unfiltered (_("Missing separate debuginfos, use: %s"),
|
||||
@ -87,7 +87,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
|
||||
for (array_iter = array; array_iter < array + missing_rpm_list_entries;
|
||||
array_iter++)
|
||||
{
|
||||
@@ -2266,8 +2225,12 @@ debug_print_missing (const char *binary,
|
||||
@@ -1189,8 +1148,12 @@ debug_print_missing (const char *binary,
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
_("Missing separate debuginfo for %s\n"), binary);
|
||||
if (debug != NULL)
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,18 +1,19 @@
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/corelow.c
|
||||
Index: gdb-7.6.90.20140127/gdb/corelow.c
|
||||
===================================================================
|
||||
--- 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 @@
|
||||
--- gdb-7.6.90.20140127.orig/gdb/corelow.c 2014-01-27 02:57:53.000000000 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/corelow.c 2014-02-06 16:46:52.261646499 +0100
|
||||
@@ -48,6 +48,10 @@
|
||||
#include "gdb_bfd.h"
|
||||
#include "completer.h"
|
||||
#include "filestuff.h"
|
||||
+#include "auxv.h"
|
||||
+#include "elf/common.h"
|
||||
+#include "gdbcmd.h"
|
||||
+#include "build-id.h"
|
||||
|
||||
#ifndef O_LARGEFILE
|
||||
#define O_LARGEFILE 0
|
||||
@@ -273,6 +276,53 @@ add_to_thread_list (bfd *abfd, asection
|
||||
@@ -271,6 +275,53 @@ add_to_thread_list (bfd *abfd, asection
|
||||
inferior_ptid = ptid; /* Yes, make it current. */
|
||||
}
|
||||
|
||||
@ -23,7 +24,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/corelow.c
|
||||
+{
|
||||
+ CORE_ADDR at_entry;
|
||||
+ struct elf_build_id *build_id;
|
||||
+ char *exec_filename, *debug_filename;
|
||||
+ char *execfilename, *debug_filename;
|
||||
+ char *build_id_filename;
|
||||
+ struct cleanup *back_to;
|
||||
+
|
||||
@ -44,14 +45,14 @@ Index: gdb-7.6.50.20130731-cvs/gdb/corelow.c
|
||||
+ file - such .eh_frame would not be found if SYMFILE_OBJFILE would refer
|
||||
+ directly to the separate debug info file. */
|
||||
+
|
||||
+ exec_filename = build_id_to_filename (build_id, &build_id_filename, 0);
|
||||
+ execfilename = build_id_to_filename (build_id, &build_id_filename);
|
||||
+ make_cleanup (xfree, build_id_filename);
|
||||
+
|
||||
+ if (exec_filename != NULL)
|
||||
+ if (execfilename != NULL)
|
||||
+ {
|
||||
+ make_cleanup (xfree, exec_filename);
|
||||
+ exec_file_attach (exec_filename, from_tty);
|
||||
+ symbol_file_add_main (exec_filename, from_tty);
|
||||
+ make_cleanup (xfree, execfilename);
|
||||
+ exec_file_attach (execfilename, from_tty);
|
||||
+ symbol_file_add_main (execfilename, from_tty);
|
||||
+ if (symfile_objfile != NULL)
|
||||
+ symfile_objfile->flags |= OBJF_BUILD_ID_CORE_LOADED;
|
||||
+ }
|
||||
@ -66,7 +67,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/corelow.c
|
||||
/* This routine opens and sets up the core file bfd. */
|
||||
|
||||
static void
|
||||
@@ -411,6 +461,14 @@ core_open (char *filename, int from_tty)
|
||||
@@ -409,6 +460,14 @@ core_open (char *filename, int from_tty)
|
||||
switch_to_thread (thread->ptid);
|
||||
}
|
||||
|
||||
@ -81,7 +82,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/corelow.c
|
||||
post_create_inferior (&core_ops, from_tty);
|
||||
|
||||
/* Now go through the target stack looking for threads since there
|
||||
@@ -974,4 +1032,11 @@ _initialize_corelow (void)
|
||||
@@ -980,4 +1039,11 @@ _initialize_corelow (void)
|
||||
init_core_ops ();
|
||||
|
||||
add_target_with_completer (&core_ops, filename_completer);
|
||||
@ -93,11 +94,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/corelow.c
|
||||
+ NULL, NULL, NULL,
|
||||
+ &setlist, &showlist);
|
||||
}
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo
|
||||
Index: gdb-7.6.90.20140127/gdb/doc/gdb.texinfo
|
||||
===================================================================
|
||||
--- 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.
|
||||
--- gdb-7.6.90.20140127.orig/gdb/doc/gdb.texinfo 2014-02-06 16:46:51.804645989 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/doc/gdb.texinfo 2014-02-06 16:46:52.110646331 +0100
|
||||
@@ -17413,6 +17413,27 @@ information files.
|
||||
|
||||
@end table
|
||||
|
||||
@ -125,11 +126,19 @@ Index: gdb-7.6.50.20130731-cvs/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.6.50.20130731-cvs/gdb/solib-svr4.c
|
||||
Index: gdb-7.6.90.20140127/gdb/solib-svr4.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/solib-svr4.c 2014-01-27 02:57:53.000000000 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/solib-svr4.c 2014-02-06 16:49:27.508819174 +0100
|
||||
@@ -47,6 +47,7 @@
|
||||
#include "exceptions.h"
|
||||
#include "gdb_bfd.h"
|
||||
#include "probe.h"
|
||||
+#include "build-id.h"
|
||||
|
||||
static struct link_map_offsets *svr4_fetch_link_map_offsets (void);
|
||||
static int svr4_have_link_map_offsets (void);
|
||||
@@ -1369,9 +1370,52 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -151,7 +160,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/solib-svr4.c
|
||||
+
|
||||
+ /* Missing the build-id matching separate debug info file
|
||||
+ would be handled while SO_NAME gets loaded. */
|
||||
+ name = build_id_to_filename (build_id, &build_id_filename, 0);
|
||||
+ name = build_id_to_filename (build_id, &build_id_filename);
|
||||
+ if (name != NULL)
|
||||
+ {
|
||||
+ strncpy (new->so_name, name, SO_NAME_MAX_PATH_SIZE - 1);
|
||||
@ -185,27 +194,160 @@ Index: gdb-7.6.50.20130731-cvs/gdb/solib-svr4.c
|
||||
xfree (buffer);
|
||||
|
||||
/* If this entry has no name, or its name matches the name
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
|
||||
Index: gdb-7.6.90.20140127/gdb/elfread.c
|
||||
===================================================================
|
||||
--- 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"
|
||||
#include "gdb_bfd.h"
|
||||
--- gdb-7.6.90.20140127.orig/gdb/elfread.c 2014-01-27 02:57:53.000000000 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/elfread.c 2014-02-06 16:46:52.249646486 +0100
|
||||
@@ -1316,9 +1316,10 @@ elf_symfile_read (struct objfile *objfil
|
||||
&& objfile->separate_debug_objfile == NULL
|
||||
&& objfile->separate_debug_objfile_backlink == NULL)
|
||||
{
|
||||
- char *debugfile;
|
||||
+ char *debugfile, *build_id_filename;
|
||||
|
||||
- debugfile = find_separate_debug_file_by_buildid (objfile);
|
||||
+ debugfile = find_separate_debug_file_by_buildid (objfile,
|
||||
+ &build_id_filename);
|
||||
|
||||
if (debugfile == NULL)
|
||||
debugfile = find_separate_debug_file_by_debuglink (objfile);
|
||||
@@ -1332,6 +1333,12 @@ elf_symfile_read (struct objfile *objfil
|
||||
symbol_file_add_separate (abfd, debugfile, symfile_flags, objfile);
|
||||
do_cleanups (cleanup);
|
||||
}
|
||||
+ /* Check if any separate debug info has been extracted out. */
|
||||
+ else if (bfd_get_section_by_name (objfile->obfd, ".gnu_debuglink")
|
||||
+ != NULL)
|
||||
+ debug_print_missing (objfile_name (objfile), build_id_filename);
|
||||
+
|
||||
+ xfree (build_id_filename);
|
||||
}
|
||||
}
|
||||
|
||||
Index: gdb-7.6.90.20140127/gdb/symfile.h
|
||||
===================================================================
|
||||
--- gdb-7.6.90.20140127.orig/gdb/symfile.h 2014-01-27 02:57:53.000000000 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/symfile.h 2014-02-06 16:46:52.250646487 +0100
|
||||
@@ -554,6 +554,10 @@ void free_symfile_segment_data (struct s
|
||||
|
||||
extern struct cleanup *increment_reading_symtab (void);
|
||||
|
||||
+/* build-id support. */
|
||||
+extern struct elf_build_id *build_id_addr_get (CORE_ADDR addr);
|
||||
+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.6.90.20140127/gdb/testsuite/lib/gdb.exp
|
||||
===================================================================
|
||||
--- gdb-7.6.90.20140127.orig/gdb/testsuite/lib/gdb.exp 2014-02-06 16:46:51.643645810 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/lib/gdb.exp 2014-02-06 16:46:52.251646488 +0100
|
||||
@@ -1504,6 +1504,16 @@ proc default_gdb_start { } {
|
||||
warning "Couldn't set the width to 0."
|
||||
}
|
||||
}
|
||||
+ # Turn off the missing warnings as the testsuite does not expect it.
|
||||
+ send_gdb "set build-id-verbose 0\n"
|
||||
+ gdb_expect 10 {
|
||||
+ -re "$gdb_prompt $" {
|
||||
+ verbose "Disabled the missing debug infos warnings." 2
|
||||
+ }
|
||||
+ timeout {
|
||||
+ warning "Could not disable the missing debug infos warnings.."
|
||||
+ }
|
||||
+ }
|
||||
return 0
|
||||
}
|
||||
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/lib/mi-support.exp
|
||||
===================================================================
|
||||
--- gdb-7.6.90.20140127.orig/gdb/testsuite/lib/mi-support.exp 2014-01-27 02:57:54.000000000 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/lib/mi-support.exp 2014-02-06 16:46:52.252646489 +0100
|
||||
@@ -212,6 +212,16 @@ proc default_mi_gdb_start { args } {
|
||||
warning "Couldn't set the width to 0."
|
||||
}
|
||||
}
|
||||
+ # Turn off the missing warnings as the testsuite does not expect it.
|
||||
+ 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$" {
|
||||
+ verbose "Disabled the missing debug infos warnings." 2
|
||||
+ }
|
||||
+ timeout {
|
||||
+ warning "Could not disable the missing debug infos warnings.."
|
||||
+ }
|
||||
+ }
|
||||
# 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.6.90.20140127/gdb/objfiles.h
|
||||
===================================================================
|
||||
--- gdb-7.6.90.20140127.orig/gdb/objfiles.h 2014-01-27 02:57:53.000000000 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/objfiles.h 2014-02-06 16:46:52.113646334 +0100
|
||||
@@ -436,6 +436,10 @@ struct objfile
|
||||
|
||||
#define OBJF_NOT_FILENAME (1 << 6)
|
||||
|
||||
+/* This file was loaded according to the BUILD_ID_CORE_LOADS rules. */
|
||||
+
|
||||
+#define OBJF_BUILD_ID_CORE_LOADED (1 << 12)
|
||||
+
|
||||
/* Declarations for functions defined in objfiles.c */
|
||||
|
||||
extern struct objfile *allocate_objfile (bfd *, const char *name, int);
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.base/corefile.exp
|
||||
===================================================================
|
||||
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.base/corefile.exp 2014-01-27 02:57:54.000000000 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.base/corefile.exp 2014-02-06 16:46:52.113646334 +0100
|
||||
@@ -281,3 +281,33 @@ gdb_test_multiple "core-file $corefile"
|
||||
pass $test
|
||||
}
|
||||
}
|
||||
+
|
||||
+
|
||||
+# Test auto-loading of binary files through build-id from the core file.
|
||||
+set buildid [build_id_debug_filename_get $binfile]
|
||||
+set wholetest "binfile found by build-id"
|
||||
+if {$buildid == ""} {
|
||||
+ untested "$wholetest (binary has no build-id)"
|
||||
+} else {
|
||||
+ gdb_exit
|
||||
+ gdb_start
|
||||
+
|
||||
+ regsub {\.debug$} $buildid {} buildid
|
||||
+ set debugdir ${objdir}/${subdir}/${testfile}-debugdir
|
||||
+ file delete -force -- $debugdir
|
||||
+ file mkdir $debugdir/[file dirname $buildid]
|
||||
+ file copy $binfile $debugdir/$buildid
|
||||
+
|
||||
+ set test "show debug-file-directory"
|
||||
+ gdb_test_multiple $test $test {
|
||||
+ -re "The directory where separate debug symbols are searched for is \"(.*)\"\\.\r\n$gdb_prompt $" {
|
||||
+ set debugdir_orig $expect_out(1,string)
|
||||
+ pass $test
|
||||
+ }
|
||||
+ }
|
||||
+ gdb_test_no_output "set debug-file-directory $debugdir:$debugdir_orig" "set debug-file-directory"
|
||||
+ gdb_test "show build-id-core-loads" {Whether CORE-FILE loads the build-id associated files automatically is on\.}
|
||||
+ gdb_test "core-file $corefile" "\r\nProgram terminated with .*" "core-file without executable"
|
||||
+ gdb_test "info files" "Local exec file:\r\n\[ \t\]*`[string_to_regexp $debugdir/$buildid]', file type .*"
|
||||
+ pass $wholetest
|
||||
+}
|
||||
Index: gdb-7.6.90.20140127/gdb/build-id.c
|
||||
===================================================================
|
||||
--- gdb-7.6.90.20140127.orig/gdb/build-id.c 2014-01-27 02:57:53.000000000 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/build-id.c 2014-02-06 16:46:52.113646334 +0100
|
||||
@@ -27,11 +27,65 @@
|
||||
#include "symfile.h"
|
||||
#include "objfiles.h"
|
||||
#include "filenames.h"
|
||||
+#include "libbfd.h"
|
||||
+#include "gdbcore.h"
|
||||
+#include "gdbcmd.h"
|
||||
+#include "observer.h"
|
||||
+#include <sys/stat.h>
|
||||
|
||||
extern void _initialize_elfread (void);
|
||||
|
||||
@@ -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
|
||||
@ -220,7 +362,8 @@ Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
|
||||
+
|
||||
+/* Locate NT_GNU_BUILD_ID and return its matching debug filename.
|
||||
+ FIXME: NOTE decoding should be unified with the BFD core notes decoding. */
|
||||
+
|
||||
|
||||
-/* Locate NT_GNU_BUILD_ID from ABFD and return its content. */
|
||||
+static struct elf_build_id *
|
||||
+build_id_buf_get (bfd *templ, gdb_byte *buf, bfd_size_type size)
|
||||
+{
|
||||
@ -253,17 +396,17 @@ Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
|
||||
+ }
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
|
||||
+/* Separate debuginfo files have corrupted PHDR but SHDR is correct there.
|
||||
+ Locate NT_GNU_BUILD_ID from ABFD and return its content. */
|
||||
|
||||
+
|
||||
static const struct elf_build_id *
|
||||
-build_id_bfd_get (bfd *abfd)
|
||||
+build_id_bfd_shdr_get (bfd *abfd)
|
||||
{
|
||||
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)
|
||||
@@ -45,6 +99,348 @@ build_id_bfd_get (bfd *abfd)
|
||||
return elf_tdata (abfd)->build_id;
|
||||
}
|
||||
|
||||
@ -609,23 +752,23 @@ Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
|
||||
+ return retval;
|
||||
+}
|
||||
+
|
||||
/* Return if FILENAME has NT_GNU_BUILD_ID matching the CHECK value. */
|
||||
/* See build-id.h. */
|
||||
|
||||
static int
|
||||
@@ -1114,7 +1510,7 @@ build_id_verify (const char *filename, c
|
||||
if (abfd == NULL)
|
||||
return 0;
|
||||
int
|
||||
@@ -53,7 +449,7 @@ build_id_verify (bfd *abfd, size_t check
|
||||
const struct elf_build_id *found;
|
||||
int retval = 0;
|
||||
|
||||
- found = build_id_bfd_get (abfd);
|
||||
+ found = build_id_bfd_shdr_get (abfd);
|
||||
|
||||
if (found == NULL)
|
||||
warning (_("File \"%s\" has no build-id, file skipped"), filename);
|
||||
@@ -1131,16 +1527,53 @@ build_id_verify (const char *filename, c
|
||||
warning (_("File \"%s\" has no build-id, file skipped"),
|
||||
@@ -68,20 +464,56 @@ build_id_verify (bfd *abfd, size_t check
|
||||
return retval;
|
||||
}
|
||||
|
||||
static char *
|
||||
-build_id_to_debug_filename (const struct elf_build_id *build_id)
|
||||
+static char *
|
||||
+link_resolve (const char *symlink, int level)
|
||||
+{
|
||||
+ char buf[PATH_MAX + 1], *target, *retval;
|
||||
@ -661,28 +804,33 @@ Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
|
||||
+ return retval;
|
||||
+}
|
||||
+
|
||||
+char *
|
||||
+build_id_to_filename (const struct elf_build_id *build_id, char **link_return,
|
||||
+ int add_debug_suffix)
|
||||
/* See build-id.h. */
|
||||
|
||||
bfd *
|
||||
-build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id)
|
||||
+build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id,
|
||||
+ char **link_return, int add_debug_suffix)
|
||||
{
|
||||
char *link, *debugdir, *retval = NULL;
|
||||
+ char *link_all = NULL;
|
||||
- char *link, *debugdir;
|
||||
+ char *link, *debugdir, *link_all = NULL;
|
||||
VEC (char_ptr) *debugdir_vec;
|
||||
struct cleanup *back_to;
|
||||
int ix;
|
||||
bfd *abfd = NULL;
|
||||
|
||||
/* DEBUG_FILE_DIRECTORY/.build-id/ab/cdef */
|
||||
- link = alloca (strlen (debug_file_directory) + (sizeof "/.build-id/" - 1) + 1
|
||||
- + 2 * build_id->size + (sizeof ".debug" - 1) + 1);
|
||||
+ link = xmalloc (strlen (debug_file_directory) + 2 * build_id->size + 50);
|
||||
- + 2 * build_id_len + (sizeof ".debug" - 1) + 1);
|
||||
+ link = xmalloc (strlen (debug_file_directory) + 2 * build_id_len + 50);
|
||||
|
||||
/* Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will
|
||||
cause "/.build-id/..." lookups. */
|
||||
@@ -1153,7 +1586,10 @@ build_id_to_debug_filename (const struct
|
||||
@@ -94,8 +526,11 @@ build_id_to_debug_bfd (size_t build_id_l
|
||||
size_t debugdir_len = strlen (debugdir);
|
||||
const gdb_byte *data = build_id->data;
|
||||
size_t size = build_id->size;
|
||||
const gdb_byte *data = build_id;
|
||||
size_t size = build_id_len;
|
||||
- char *s;
|
||||
char *filename = NULL;
|
||||
+ unsigned seqno;
|
||||
+ struct stat statbuf_trash;
|
||||
+ /* Initialize it just to avoid a GCC false warning. */
|
||||
@ -690,19 +838,18 @@ Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
|
||||
|
||||
memcpy (link, debugdir, debugdir_len);
|
||||
s = &link[debugdir_len];
|
||||
@@ -1167,37 +1603,256 @@ build_id_to_debug_filename (const struct
|
||||
@@ -109,44 +544,282 @@ build_id_to_debug_bfd (size_t build_id_l
|
||||
*s++ = '/';
|
||||
while (size-- > 0)
|
||||
s += sprintf (s, "%02x", (unsigned) *data++);
|
||||
- strcpy (s, ".debug");
|
||||
|
||||
- /* lrealpath() is expensive even for the usually non-existent files. */
|
||||
- if (access (link, F_OK) == 0)
|
||||
- retval = lrealpath (link);
|
||||
+ for (seqno = 0;; seqno++)
|
||||
+ {
|
||||
+ char *s2;
|
||||
+
|
||||
|
||||
- /* lrealpath() is expensive even for the usually non-existent files. */
|
||||
- if (access (link, F_OK) == 0)
|
||||
- filename = lrealpath (link);
|
||||
+ if (seqno)
|
||||
+ {
|
||||
+ /* There can be multiple build-id symlinks pointing to real files
|
||||
@ -733,21 +880,39 @@ Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ retval = lrealpath (link);
|
||||
+ filename = lrealpath (link);
|
||||
+ if (filename == NULL)
|
||||
+ continue;
|
||||
+
|
||||
+ if (retval != NULL && !build_id_verify (retval, build_id))
|
||||
+ /* We expect to be silent on the non-existing files. */
|
||||
+ abfd = gdb_bfd_open_maybe_remote (filename);
|
||||
+ if (abfd == NULL)
|
||||
+ {
|
||||
+ xfree (retval);
|
||||
+ retval = NULL;
|
||||
+ xfree (filename);
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ if (retval)
|
||||
|
||||
- if (filename == NULL)
|
||||
- continue;
|
||||
+ if (build_id_verify (abfd, build_id_len, build_id))
|
||||
+ break;
|
||||
|
||||
- /* We expect to be silent on the non-existing files. */
|
||||
- abfd = gdb_bfd_open_maybe_remote (filename);
|
||||
- if (abfd == NULL)
|
||||
- continue;
|
||||
+ gdb_bfd_unref (abfd);
|
||||
+ abfd = NULL;
|
||||
|
||||
- if (build_id_verify (abfd, build_id_len, build_id))
|
||||
- break;
|
||||
+ xfree (filename);
|
||||
+ filename = NULL;
|
||||
+ }
|
||||
+
|
||||
+ if (retval != NULL)
|
||||
+ if (filename != NULL)
|
||||
+ {
|
||||
+ /* LINK_ALL is not used below in this non-NULL RETVAL case. */
|
||||
+ /* LINK_ALL is not used below in this non-NULL FILENAME case. */
|
||||
+ xfree (link0);
|
||||
+ break;
|
||||
+ }
|
||||
@ -757,14 +922,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
|
||||
+ 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);
|
||||
+ link_all = link0_resolved;
|
||||
+ else
|
||||
{
|
||||
- xfree (retval);
|
||||
- retval = NULL;
|
||||
+ {
|
||||
+ size_t len_orig = strlen (link_all);
|
||||
+
|
||||
+ link_all = xrealloc (link_all,
|
||||
@ -773,16 +935,17 @@ Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
|
||||
+ /* 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);
|
||||
}
|
||||
+ xfree (link0_resolved);
|
||||
+ }
|
||||
|
||||
- gdb_bfd_unref (abfd);
|
||||
- abfd = NULL;
|
||||
+ strcpy (&link_all[len_orig + 1], link0_resolved);
|
||||
+ xfree (link0_resolved);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (link_return != NULL)
|
||||
+ {
|
||||
if (retval != NULL)
|
||||
- break;
|
||||
+ if (abfd != NULL)
|
||||
+ {
|
||||
+ *link_return = link;
|
||||
+ link = NULL;
|
||||
@ -797,9 +960,24 @@ Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
|
||||
+ xfree (link_all);
|
||||
|
||||
do_cleanups (back_to);
|
||||
return retval;
|
||||
return abfd;
|
||||
}
|
||||
|
||||
+char *
|
||||
+build_id_to_filename (const struct elf_build_id *build_id, char **link_return)
|
||||
+{
|
||||
+ bfd *abfd;
|
||||
+ char *result;
|
||||
+
|
||||
+ abfd = build_id_to_debug_bfd (build_id->size, build_id->data, link_return, 0);
|
||||
+ if (abfd == NULL)
|
||||
+ return NULL;
|
||||
+
|
||||
+ result = xstrdup (bfd_get_filename (abfd));
|
||||
+ gdb_bfd_unref (abfd);
|
||||
+ return result;
|
||||
+}
|
||||
+
|
||||
+/* This MISSING_FILEPAIR_HASH tracker is used only for the duplicite messages
|
||||
+ Try to install the hash file ...
|
||||
+ avoidance. */
|
||||
@ -936,7 +1114,9 @@ Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
|
||||
+ debug);
|
||||
+}
|
||||
+
|
||||
static char *
|
||||
/* See build-id.h. */
|
||||
|
||||
char *
|
||||
-find_separate_debug_file_by_buildid (struct objfile *objfile)
|
||||
+find_separate_debug_file_by_buildid (struct objfile *objfile,
|
||||
+ char **build_id_filename_return)
|
||||
@ -950,54 +1130,24 @@ Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
|
||||
+ build_id = build_id_bfd_shdr_get (objfile->obfd);
|
||||
if (build_id != NULL)
|
||||
{
|
||||
char *build_id_name;
|
||||
bfd *abfd;
|
||||
|
||||
- build_id_name = build_id_to_debug_filename (build_id);
|
||||
+ build_id_name = build_id_to_filename (build_id, build_id_filename_return,
|
||||
+ 1);
|
||||
- abfd = build_id_to_debug_bfd (build_id->size, build_id->data);
|
||||
+ abfd = build_id_to_debug_bfd (build_id->size, build_id->data,
|
||||
+ build_id_filename_return, 1);
|
||||
/* Prevent looping on a stripped .debug file. */
|
||||
if (build_id_name != NULL
|
||||
&& 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)
|
||||
- return build_id_name;
|
||||
+ return build_id_name;
|
||||
if (abfd != NULL
|
||||
&& filename_cmp (bfd_get_filename (abfd),
|
||||
@@ -166,3 +839,21 @@ find_separate_debug_file_by_buildid (str
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
@@ -1445,9 +2100,10 @@ elf_symfile_read (struct objfile *objfil
|
||||
&& objfile->separate_debug_objfile == NULL
|
||||
&& objfile->separate_debug_objfile_backlink == NULL)
|
||||
{
|
||||
- char *debugfile;
|
||||
+ char *debugfile, *build_id_filename;
|
||||
|
||||
- debugfile = find_separate_debug_file_by_buildid (objfile);
|
||||
+ debugfile = find_separate_debug_file_by_buildid (objfile,
|
||||
+ &build_id_filename);
|
||||
|
||||
if (debugfile == NULL)
|
||||
debugfile = find_separate_debug_file_by_debuglink (objfile);
|
||||
@@ -1461,6 +2117,12 @@ elf_symfile_read (struct objfile *objfil
|
||||
symbol_file_add_separate (abfd, symfile_flags, objfile);
|
||||
do_cleanups (cleanup);
|
||||
}
|
||||
+ /* Check if any separate debug info has been extracted out. */
|
||||
+ else if (bfd_get_section_by_name (objfile->obfd, ".gnu_debuglink")
|
||||
+ != NULL)
|
||||
+ debug_print_missing (objfile->name, build_id_filename);
|
||||
+
|
||||
+ xfree (build_id_filename);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1790,4 +2452,16 @@ _initialize_elfread (void)
|
||||
|
||||
elf_objfile_gnu_ifunc_cache_data = register_objfile_data ();
|
||||
gnu_ifunc_fns_p = &elf_gnu_ifunc_fns;
|
||||
+extern void _initialize_build_id (void);
|
||||
+
|
||||
+void
|
||||
+_initialize_build_id (void)
|
||||
+{
|
||||
+ add_setshow_zinteger_cmd ("build-id-verbose", no_class, &build_id_verbose,
|
||||
+ _("\
|
||||
+Set debugging level of the build-id locator."), _("\
|
||||
@ -1009,116 +1159,42 @@ Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
|
||||
+ &setlist, &showlist);
|
||||
+
|
||||
+ observer_attach_executable_changed (debug_print_executable_changed);
|
||||
}
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/symfile.h
|
||||
===================================================================
|
||||
--- 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. */
|
||||
+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.6.50.20130731-cvs/gdb/testsuite/lib/gdb.exp
|
||||
===================================================================
|
||||
--- 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."
|
||||
}
|
||||
}
|
||||
+ # Turn off the missing warnings as the testsuite does not expect it.
|
||||
+ send_gdb "set build-id-verbose 0\n"
|
||||
+ gdb_expect 10 {
|
||||
+ -re "$gdb_prompt $" {
|
||||
+ verbose "Disabled the missing debug infos warnings." 2
|
||||
+ }
|
||||
+ timeout {
|
||||
+ warning "Could not disable the missing debug infos warnings.."
|
||||
+ }
|
||||
+ }
|
||||
return 0
|
||||
}
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/mi-support.exp
|
||||
===================================================================
|
||||
--- 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."
|
||||
}
|
||||
}
|
||||
+ # Turn off the missing warnings as the testsuite does not expect it.
|
||||
+ 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$" {
|
||||
+ verbose "Disabled the missing debug infos warnings." 2
|
||||
+ }
|
||||
+ timeout {
|
||||
+ warning "Could not disable the missing debug infos warnings.."
|
||||
+ }
|
||||
+ }
|
||||
# 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.6.50.20130731-cvs/gdb/objfiles.h
|
||||
===================================================================
|
||||
--- 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)
|
||||
|
||||
+/* This file was loaded according to the BUILD_ID_CORE_LOADS rules. */
|
||||
+
|
||||
+#define OBJF_BUILD_ID_CORE_LOADED (1 << 12)
|
||||
+
|
||||
/* The object file that contains the runtime common minimal symbols
|
||||
for SunOS4. Note that this objfile has no associated BFD. */
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/corefile.exp
|
||||
===================================================================
|
||||
--- 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
|
||||
}
|
||||
+
|
||||
+
|
||||
+# Test auto-loading of binary files through build-id from the core file.
|
||||
+set buildid [build_id_debug_filename_get $binfile]
|
||||
+set wholetest "binfile found by build-id"
|
||||
+if {$buildid == ""} {
|
||||
+ untested "$wholetest (binary has no build-id)"
|
||||
+} else {
|
||||
+ gdb_exit
|
||||
+ gdb_start
|
||||
+
|
||||
+ regsub {\.debug$} $buildid {} buildid
|
||||
+ set debugdir ${objdir}/${subdir}/${testfile}-debugdir
|
||||
+ file delete -force -- $debugdir
|
||||
+ file mkdir $debugdir/[file dirname $buildid]
|
||||
+ file copy $binfile $debugdir/$buildid
|
||||
+
|
||||
+ set test "show debug-file-directory"
|
||||
+ gdb_test_multiple $test $test {
|
||||
+ -re "The directory where separate debug symbols are searched for is \"(.*)\"\\.\r\n$gdb_prompt $" {
|
||||
+ set debugdir_orig $expect_out(1,string)
|
||||
+ pass $test
|
||||
+ }
|
||||
+ }
|
||||
+ gdb_test_no_output "set debug-file-directory $debugdir:$debugdir_orig" "set debug-file-directory"
|
||||
+ gdb_test "show build-id-core-loads" {Whether CORE-FILE loads the build-id associated files automatically is on\.}
|
||||
+ gdb_test "core-file $corefile" "\r\nProgram terminated with .*" "core-file without executable"
|
||||
+ gdb_test "info files" "Local exec file:\r\n\[ \t\]*`[string_to_regexp $debugdir/$buildid]', file type .*"
|
||||
+ pass $wholetest
|
||||
+}
|
||||
Index: gdb-7.6.90.20140127/gdb/build-id.h
|
||||
===================================================================
|
||||
--- gdb-7.6.90.20140127.orig/gdb/build-id.h 2014-01-27 02:57:53.000000000 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/build-id.h 2014-02-06 16:46:52.114646335 +0100
|
||||
@@ -32,13 +32,18 @@ extern int build_id_verify (bfd *abfd,
|
||||
the caller. */
|
||||
|
||||
extern bfd *build_id_to_debug_bfd (size_t build_id_len,
|
||||
- const bfd_byte *build_id);
|
||||
+ const bfd_byte *build_id, char **link_return,
|
||||
+ int add_debug_suffix);
|
||||
+
|
||||
+extern char *build_id_to_filename (const struct elf_build_id *build_id,
|
||||
+ char **link_return);
|
||||
|
||||
/* Find the separate debug file for OBJFILE, by using the build-id
|
||||
associated with OBJFILE's BFD. If successful, returns a malloc'd
|
||||
file name for the separate debug file. The caller must free this.
|
||||
Otherwise, returns NULL. */
|
||||
|
||||
-extern char *find_separate_debug_file_by_buildid (struct objfile *objfile);
|
||||
+extern char *find_separate_debug_file_by_buildid (struct objfile *objfile,
|
||||
+ char **build_id_filename_return);
|
||||
|
||||
#endif /* BUILD_ID_H */
|
||||
Index: gdb-7.6.90.20140127/gdb/dwarf2read.c
|
||||
===================================================================
|
||||
--- gdb-7.6.90.20140127.orig/gdb/dwarf2read.c 2014-02-06 16:46:51.809645995 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/dwarf2read.c 2014-02-06 16:49:55.679850414 +0100
|
||||
@@ -2429,7 +2429,7 @@ dwarf2_get_dwz_file (void)
|
||||
}
|
||||
|
||||
if (dwz_bfd == NULL)
|
||||
- dwz_bfd = build_id_to_debug_bfd (buildid_len, buildid);
|
||||
+ dwz_bfd = build_id_to_debug_bfd (buildid_len, buildid, NULL, 1);
|
||||
|
||||
if (dwz_bfd == NULL)
|
||||
error (_("could not find '.gnu_debugaltlink' file for %s"),
|
||||
|
@ -3,12 +3,12 @@
|
||||
Port to GDB-6.8pre.
|
||||
Remove the `[' character from the GDB-6.8 default message.
|
||||
|
||||
Index: gdb-7.2.50.20110320/gdb/linux-nat.c
|
||||
Index: gdb-7.6.90.20140127/gdb/linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-7.2.50.20110320.orig/gdb/linux-nat.c 2011-03-20 16:59:51.000000000 +0100
|
||||
+++ gdb-7.2.50.20110320/gdb/linux-nat.c 2011-03-20 16:59:51.000000000 +0100
|
||||
@@ -716,7 +716,7 @@ holding the child stopped. Try \"set de
|
||||
remove_breakpoints_pid (GET_PID (inferior_ptid));
|
||||
--- gdb-7.6.90.20140127.orig/gdb/linux-nat.c 2014-02-04 23:47:39.275034491 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/linux-nat.c 2014-02-04 23:48:11.943074132 +0100
|
||||
@@ -426,7 +426,7 @@ holding the child stopped. Try \"set de
|
||||
remove_breakpoints_pid (ptid_get_pid (inferior_ptid));
|
||||
}
|
||||
|
||||
- if (info_verbose || debug_linux_nat)
|
||||
@ -16,10 +16,10 @@ Index: gdb-7.2.50.20110320/gdb/linux-nat.c
|
||||
{
|
||||
target_terminal_ours ();
|
||||
fprintf_filtered (gdb_stdlog,
|
||||
Index: gdb-7.2.50.20110320/gdb/testsuite/gdb.base/fork-detach.c
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.base/fork-detach.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.2.50.20110320/gdb/testsuite/gdb.base/fork-detach.c 2011-03-20 16:59:51.000000000 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.base/fork-detach.c 2014-02-04 23:47:39.275034491 +0100
|
||||
@@ -0,0 +1,57 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
@ -78,10 +78,10 @@ Index: gdb-7.2.50.20110320/gdb/testsuite/gdb.base/fork-detach.c
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
Index: gdb-7.2.50.20110320/gdb/testsuite/gdb.base/fork-detach.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.base/fork-detach.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.2.50.20110320/gdb/testsuite/gdb.base/fork-detach.exp 2011-03-20 17:12:22.000000000 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.base/fork-detach.exp 2014-02-04 23:47:39.276034493 +0100
|
||||
@@ -0,0 +1,36 @@
|
||||
+# Copyright 2007 Free Software Foundation, Inc.
|
||||
+
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: gdb-7.5.50.20130118/gdb/infrun.c
|
||||
Index: gdb-7.6.90.20140127/gdb/infrun.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/infrun.c 2013-01-19 20:56:34.142917416 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/infrun.c 2013-01-19 20:56:34.662918474 +0100
|
||||
@@ -1628,7 +1628,7 @@ static const char *const scheduler_enums
|
||||
--- gdb-7.6.90.20140127.orig/gdb/infrun.c 2014-02-04 23:48:27.262092869 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/infrun.c 2014-02-04 23:48:31.674096613 +0100
|
||||
@@ -1618,7 +1618,7 @@ static const char *const scheduler_enums
|
||||
schedlock_step,
|
||||
NULL
|
||||
};
|
||||
@ -11,10 +11,10 @@ Index: gdb-7.5.50.20130118/gdb/infrun.c
|
||||
static void
|
||||
show_scheduler_mode (struct ui_file *file, int from_tty,
|
||||
struct cmd_list_element *c, const char *value)
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.mi/mi-cli.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.mi/mi-cli.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.mi/mi-cli.exp 2013-01-01 07:41:24.000000000 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.mi/mi-cli.exp 2013-01-19 20:56:34.662918474 +0100
|
||||
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.mi/mi-cli.exp 2014-02-04 23:48:27.263092871 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.mi/mi-cli.exp 2014-02-04 23:48:31.674096613 +0100
|
||||
@@ -163,7 +163,7 @@ mi_execute_to "exec-continue" "breakpoin
|
||||
# Test that the token is output even for CLI commands
|
||||
# Also test that *stopped includes frame information.
|
||||
@ -24,10 +24,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.mi/mi-cli.exp
|
||||
"34 next: run"
|
||||
|
||||
if {!$async} {
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.mi/mi-logging.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.mi/mi-logging.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.mi/mi-logging.exp 2013-01-01 07:41:24.000000000 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.mi/mi-logging.exp 2013-01-19 20:56:34.662918474 +0100
|
||||
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.mi/mi-logging.exp 2014-02-04 23:48:27.263092871 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.mi/mi-logging.exp 2014-02-04 23:48:31.674096613 +0100
|
||||
@@ -53,7 +53,7 @@ close $chan
|
||||
|
||||
set mi_log_prompt "\[(\]gdb\[)\] \[\r\n\]+"
|
||||
@ -46,17 +46,17 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.mi/mi-logging.exp
|
||||
pass "Redirect log file contents"
|
||||
} else {
|
||||
fail "Redirect log file contents"
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.mi/mi-console.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.mi/mi-console.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.mi/mi-console.exp 2013-01-01 07:41:24.000000000 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.mi/mi-console.exp 2013-01-19 20:56:55.783961145 +0100
|
||||
@@ -45,6 +45,9 @@ if { [gdb_compile "${srcdir}/${subdir}/
|
||||
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.mi/mi-console.exp 2014-02-04 23:48:31.675096666 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.mi/mi-console.exp 2014-02-04 23:48:55.981127963 +0100
|
||||
@@ -60,6 +60,9 @@ if { [gdb_compile "${srcdir}/${subdir}/
|
||||
|
||||
mi_run_to_main
|
||||
|
||||
+# thread-id=\"all\" vs. thread-id=\"1\" below:
|
||||
+mi_gdb_test "210-gdb-set scheduler-locking off" "210\\^done" "set scheduler-locking off"
|
||||
+
|
||||
# Next over the hello() call which will produce lots of output
|
||||
mi_gdb_test "220-exec-next" \
|
||||
"220\\^running(\r\n\\*running,thread-id=\"all\")?" \
|
||||
# The output we get from the target depends on how it is hosted. If
|
||||
# we are semihosted (e.g., the sim or a remote target that supports
|
||||
# the File I/O remote protocol extension), we see the target I/O
|
||||
|
@ -21,11 +21,11 @@
|
||||
|
||||
Port to GDB-6.8pre.
|
||||
|
||||
Index: gdb-7.5.50.20130215/gdb/inferior.h
|
||||
Index: gdb-7.6.90.20140127/gdb/inferior.h
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/inferior.h 2013-01-16 18:31:38.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/inferior.h 2013-02-15 22:31:42.993944957 +0100
|
||||
@@ -160,7 +160,15 @@ extern void reopen_exec_file (void);
|
||||
--- gdb-7.6.90.20140127.orig/gdb/inferior.h 2014-01-27 22:05:28.801895347 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/inferior.h 2014-01-27 22:33:45.230157813 +0100
|
||||
@@ -155,7 +155,15 @@ extern void reopen_exec_file (void);
|
||||
/* The `resume' routine should only be called in special circumstances.
|
||||
Normally, use `proceed', which handles a lot of bookkeeping. */
|
||||
|
||||
@ -42,11 +42,11 @@ Index: gdb-7.5.50.20130215/gdb/inferior.h
|
||||
|
||||
extern ptid_t user_visible_resume_ptid (int step);
|
||||
|
||||
Index: gdb-7.5.50.20130215/gdb/infrun.c
|
||||
Index: gdb-7.6.90.20140127/gdb/infrun.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/infrun.c 2013-01-31 20:18:58.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/infrun.c 2013-02-15 22:34:07.132144519 +0100
|
||||
@@ -81,7 +81,7 @@ static int follow_fork (void);
|
||||
--- gdb-7.6.90.20140127.orig/gdb/infrun.c 2014-01-27 22:05:28.804895349 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/infrun.c 2014-01-27 22:35:12.781224279 +0100
|
||||
@@ -83,7 +83,7 @@ static int follow_fork (void);
|
||||
static void set_schedlock_func (char *args, int from_tty,
|
||||
struct cmd_list_element *c);
|
||||
|
||||
@ -55,7 +55,7 @@ Index: gdb-7.5.50.20130215/gdb/infrun.c
|
||||
|
||||
static int currently_stepping_or_nexting_callback (struct thread_info *tp,
|
||||
void *data);
|
||||
@@ -1709,7 +1709,8 @@ user_visible_resume_ptid (int step)
|
||||
@@ -1699,7 +1699,8 @@ user_visible_resume_ptid (int step)
|
||||
}
|
||||
else if ((scheduler_mode == schedlock_on)
|
||||
|| (scheduler_mode == schedlock_step
|
||||
@ -65,7 +65,7 @@ Index: gdb-7.5.50.20130215/gdb/infrun.c
|
||||
{
|
||||
/* User-settable 'scheduler' mode requires solo thread resume. */
|
||||
resume_ptid = inferior_ptid;
|
||||
@@ -1727,7 +1728,7 @@ user_visible_resume_ptid (int step)
|
||||
@@ -1717,7 +1718,7 @@ user_visible_resume_ptid (int step)
|
||||
STEP nonzero if we should step (zero to continue instead).
|
||||
SIG is the signal to give the inferior (zero for none). */
|
||||
void
|
||||
@ -74,23 +74,23 @@ Index: gdb-7.5.50.20130215/gdb/infrun.c
|
||||
{
|
||||
int should_resume = 1;
|
||||
struct cleanup *old_cleanups = make_cleanup (resume_cleanups, 0);
|
||||
@@ -1760,9 +1761,13 @@ resume (int step, enum gdb_signal sig)
|
||||
@@ -1750,9 +1751,13 @@ resume (int step, enum gdb_signal sig)
|
||||
|
||||
if (debug_infrun)
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
- "infrun: resume (step=%d, signal=%d), "
|
||||
+ "infrun: resume (step=%s, signal=%d), "
|
||||
- "infrun: resume (step=%d, signal=%s), "
|
||||
+ "infrun: resume (step=%s, signal=%s), "
|
||||
"trap_expected=%d, current thread [%s] at %s\n",
|
||||
- step, sig, tp->control.trap_expected,
|
||||
- step, gdb_signal_to_symbol_string (sig),
|
||||
+ (step == RESUME_STEP_CONTINUE
|
||||
+ ? "RESUME_STEP_CONTINUE"
|
||||
+ : (step == RESUME_STEP_USER ? "RESUME_STEP_USER"
|
||||
+ : "RESUME_STEP_NEEDED")),
|
||||
+ sig, tp->control.trap_expected,
|
||||
+ gdb_signal_to_symbol_string (sig),
|
||||
tp->control.trap_expected,
|
||||
target_pid_to_str (inferior_ptid),
|
||||
paddress (gdbarch, pc));
|
||||
|
||||
@@ -2140,7 +2145,7 @@ proceed (CORE_ADDR addr, enum gdb_signal
|
||||
@@ -2147,7 +2152,7 @@ proceed (CORE_ADDR addr, enum gdb_signal
|
||||
CORE_ADDR pc;
|
||||
struct address_space *aspace;
|
||||
/* GDB may force the inferior to step due to various reasons. */
|
||||
@ -99,7 +99,7 @@ Index: gdb-7.5.50.20130215/gdb/infrun.c
|
||||
|
||||
/* If we're stopped at a fork/vfork, follow the branch set by the
|
||||
"set follow-fork-mode" command; otherwise, we'll just proceed
|
||||
@@ -2180,13 +2185,13 @@ proceed (CORE_ADDR addr, enum gdb_signal
|
||||
@@ -2187,13 +2192,13 @@ proceed (CORE_ADDR addr, enum gdb_signal
|
||||
actually be executing the breakpoint insn anyway.
|
||||
We'll be (un-)executing the previous instruction. */
|
||||
|
||||
@ -115,7 +115,7 @@ Index: gdb-7.5.50.20130215/gdb/infrun.c
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2217,13 +2222,13 @@ proceed (CORE_ADDR addr, enum gdb_signal
|
||||
@@ -2225,13 +2230,13 @@ proceed (CORE_ADDR addr, enum gdb_signal
|
||||
is required it returns TRUE and sets the current thread to
|
||||
the old thread. */
|
||||
if (prepare_to_proceed (step))
|
||||
@ -131,7 +131,7 @@ Index: gdb-7.5.50.20130215/gdb/infrun.c
|
||||
{
|
||||
tp->control.trap_expected = 1;
|
||||
/* If displaced stepping is enabled, we can step over the
|
||||
@@ -2310,9 +2315,13 @@ proceed (CORE_ADDR addr, enum gdb_signal
|
||||
@@ -2318,9 +2323,13 @@ proceed (CORE_ADDR addr, enum gdb_signal
|
||||
/* Reset to normal state. */
|
||||
init_infwait_state ();
|
||||
|
||||
@ -147,7 +147,7 @@ Index: gdb-7.5.50.20130215/gdb/infrun.c
|
||||
|
||||
/* Wait for it to stop (if not standalone)
|
||||
and in any case decode why it stopped, and act accordingly. */
|
||||
@@ -5247,13 +5256,18 @@ process_event_stop_test:
|
||||
@@ -5332,13 +5341,18 @@ switch_back_to_stepped_thread (struct ex
|
||||
|
||||
/* Is thread TP in the middle of single-stepping? */
|
||||
|
||||
@ -171,11 +171,11 @@ Index: gdb-7.5.50.20130215/gdb/infrun.c
|
||||
}
|
||||
|
||||
/* Returns true if any thread *but* the one passed in "data" is in the
|
||||
Index: gdb-7.5.50.20130215/gdb/linux-nat.c
|
||||
Index: gdb-7.6.90.20140127/gdb/linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/linux-nat.c 2013-02-13 15:59:49.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/linux-nat.c 2013-02-15 22:31:42.997944967 +0100
|
||||
@@ -2971,7 +2971,11 @@ static int
|
||||
--- gdb-7.6.90.20140127.orig/gdb/linux-nat.c 2014-01-27 22:05:28.806895350 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/linux-nat.c 2014-01-27 22:33:45.330157889 +0100
|
||||
@@ -2697,7 +2697,11 @@ static int
|
||||
select_singlestep_lwp_callback (struct lwp_info *lp, void *data)
|
||||
{
|
||||
if (lp->last_resume_kind == resume_step
|
||||
@ -188,11 +188,11 @@ Index: gdb-7.5.50.20130215/gdb/linux-nat.c
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
Index: gdb-7.5.50.20130215/gdb/linux-nat.h
|
||||
Index: gdb-7.6.90.20140127/gdb/linux-nat.h
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/linux-nat.h 2013-02-13 15:59:49.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/linux-nat.h 2013-02-15 22:31:42.998944969 +0100
|
||||
@@ -73,8 +73,8 @@ struct lwp_info
|
||||
--- gdb-7.6.90.20140127.orig/gdb/linux-nat.h 2014-01-27 22:05:28.807895351 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/linux-nat.h 2014-01-27 22:33:45.334157892 +0100
|
||||
@@ -59,8 +59,8 @@ struct lwp_info
|
||||
/* If non-zero, a pending wait status. */
|
||||
int status;
|
||||
|
||||
|
@ -1,108 +0,0 @@
|
||||
gdb/testsuite/gdb.base/fileio.c:
|
||||
gdb/testsuite/gdb.base/fileio.exp:
|
||||
2007-12-08 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* gdb.base/fileio.c (ROOTSUBDIR): New macro.
|
||||
(main): CHDIR into ROOTSUBDIR. CHOWN ROOTSUBDIR and CHDIR into
|
||||
ROOTSUBDIR if we are being run as root.
|
||||
* gdb.base/fileio.exp: Change the startup and finish cleanup.
|
||||
Change the test file reference to be into the `fileio.dir' directory.
|
||||
|
||||
|
||||
sources/gdb/testsuite/gdb.base/dump.exp:
|
||||
Found on RHEL-5.s390x.
|
||||
|
||||
|
||||
gdb-6.8.50.20090209/gdb/testsuite/gdb.base/auxv.exp:
|
||||
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.6.50.20130731-cvs/gdb/testsuite/gdb.base/fileio.c
|
||||
===================================================================
|
||||
--- 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);
|
||||
|
||||
+#define ROOTSUBDIR "fileio.dir"
|
||||
+
|
||||
#define FILENAME "foo.fileio.test"
|
||||
#define RENAMED "bar.fileio.test"
|
||||
#define NONEXISTANT "nofoo.fileio.test"
|
||||
@@ -542,6 +544,37 @@ strerrno (int err)
|
||||
int
|
||||
main ()
|
||||
{
|
||||
+ /* ROOTSUBDIR is already prepared by fileio.exp. We use it for easy cleanup
|
||||
+ (by fileio.exp) if we are run by multiple users in the same directory. */
|
||||
+
|
||||
+ if (chdir (ROOTSUBDIR) != 0)
|
||||
+ {
|
||||
+ printf ("chdir " ROOTSUBDIR ": %s\n", strerror (errno));
|
||||
+ exit (1);
|
||||
+ }
|
||||
+
|
||||
+ /* These tests
|
||||
+ Open for write but no write permission returns EACCES
|
||||
+ Unlinking a file in a directory w/o write access returns EACCES
|
||||
+ fail if we are being run as root - drop the privileges here. */
|
||||
+
|
||||
+ if (geteuid () == 0)
|
||||
+ {
|
||||
+ uid_t uid = 99;
|
||||
+
|
||||
+ if (chown (".", uid, uid) != 0)
|
||||
+ {
|
||||
+ printf ("chown %d.%d " ROOTSUBDIR ": %s\n", (int) uid, (int) uid,
|
||||
+ strerror (errno));
|
||||
+ exit (1);
|
||||
+ }
|
||||
+ if (setuid (uid) || geteuid () == 0)
|
||||
+ {
|
||||
+ printf ("setuid %d: %s\n", (int) uid, strerror (errno));
|
||||
+ exit (1);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
/* Don't change the order of the calls. They partly depend on each other */
|
||||
test_open ();
|
||||
test_write ();
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/fileio.exp
|
||||
===================================================================
|
||||
--- 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}
|
||||
-remote_exec build {sh -xc rm\ -rf\ *.fileio.test}
|
||||
+remote_exec build {sh -xc rm\ -rf\ fileio.dir}
|
||||
+remote_exec build {sh -xc mkdir\ -m777\ fileio.dir}
|
||||
|
||||
set oldtimeout $timeout
|
||||
set timeout [expr "$timeout + 60"]
|
||||
@@ -78,7 +78,7 @@ gdb_test continue \
|
||||
|
||||
gdb_test "continue" ".*" ""
|
||||
|
||||
-catch "system \"chmod -f -w nowrt.fileio.test\""
|
||||
+catch "system \"chmod -f -w fileio.dir/nowrt.fileio.test\""
|
||||
|
||||
gdb_test continue \
|
||||
"Continuing\\..*open 5:.*EACCES$stop_msg" \
|
||||
@@ -244,8 +244,8 @@ gdb_exit
|
||||
# Wait till GDB really exits.
|
||||
sleep 1
|
||||
|
||||
-remote_exec build {sh -xc test\ -r\ dir2.fileio.test\ &&\ chmod\ -f\ +w\ dir2.fileio.test}
|
||||
-remote_exec build {sh -xc rm\ -rf\ *.fileio.test}
|
||||
+remote_exec build {sh -xc test\ -r\ fileio.dir/dir2.fileio.test\ &&\ chmod\ -f\ +w\ fileio.dir/dir2.fileio.test}
|
||||
+remote_exec build {sh -xc rm\ -rf\ fileio.dir}
|
||||
|
||||
set timeout $oldtimeout
|
||||
return 0
|
@ -1,8 +1,8 @@
|
||||
Index: gdb-7.5.50.20130215/gdb/linux-nat.c
|
||||
Index: gdb-7.7/gdb/linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/linux-nat.c 2013-02-15 22:38:05.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/linux-nat.c 2013-02-15 22:44:59.638985719 +0100
|
||||
@@ -181,6 +181,9 @@ blocked. */
|
||||
--- gdb-7.7.orig/gdb/linux-nat.c 2014-02-09 19:13:32.998214571 +0100
|
||||
+++ gdb-7.7/gdb/linux-nat.c 2014-02-09 19:17:37.561499606 +0100
|
||||
@@ -176,6 +176,9 @@ blocked. */
|
||||
static struct target_ops *linux_ops;
|
||||
static struct target_ops linux_ops_saved;
|
||||
|
||||
@ -12,7 +12,7 @@ Index: gdb-7.5.50.20130215/gdb/linux-nat.c
|
||||
/* The method to call, if any, when a new thread is attached. */
|
||||
static void (*linux_nat_new_thread) (struct lwp_info *);
|
||||
|
||||
@@ -914,7 +917,14 @@ holding the child stopped. Try \"set de
|
||||
@@ -652,7 +655,14 @@ holding the child stopped. Try \"set de
|
||||
parent_inf->waiting_for_vfork_done = 0;
|
||||
}
|
||||
else if (detach_fork)
|
||||
@ -28,25 +28,25 @@ Index: gdb-7.5.50.20130215/gdb/linux-nat.c
|
||||
|
||||
/* Note that the detach above makes PARENT_INF dangling. */
|
||||
|
||||
@@ -1362,6 +1372,7 @@ linux_nat_post_attach_wait (ptid_t ptid,
|
||||
@@ -1099,6 +1109,7 @@ linux_nat_post_attach_wait (ptid_t ptid,
|
||||
if (debug_linux_nat)
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
"LNPAW: Attaching to a stopped process\n");
|
||||
+ pid_was_stopped = GET_PID (ptid);
|
||||
+ pid_was_stopped = ptid_get_pid (ptid);
|
||||
|
||||
/* The process is definitely stopped. It is in a job control
|
||||
stop, unless the kernel predates the TASK_STOPPED /
|
||||
@@ -1790,6 +1801,9 @@ get_pending_status (struct lwp_info *lp,
|
||||
@@ -1518,6 +1529,9 @@ get_pending_status (struct lwp_info *lp,
|
||||
gdb_signal_to_string (signo));
|
||||
}
|
||||
|
||||
+ if (*status == 0 && GET_PID (lp->ptid) == pid_was_stopped)
|
||||
+ if (*status == 0 && ptid_get_pid (lp->ptid) == pid_was_stopped)
|
||||
+ *status = W_STOPCODE (SIGSTOP);
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1900,6 +1914,8 @@ linux_nat_detach (struct target_ops *ops
|
||||
@@ -1631,6 +1645,8 @@ linux_nat_detach (struct target_ops *ops
|
||||
}
|
||||
else
|
||||
linux_ops->to_detach (ops, args, from_tty);
|
||||
@ -55,7 +55,7 @@ Index: gdb-7.5.50.20130215/gdb/linux-nat.c
|
||||
}
|
||||
|
||||
/* Resume LP. */
|
||||
@@ -2086,6 +2102,14 @@ linux_nat_resume (struct target_ops *ops
|
||||
@@ -1813,6 +1829,14 @@ linux_nat_resume (struct target_ops *ops
|
||||
linux_nat_resume_callback. */
|
||||
lp->stopped = 0;
|
||||
|
||||
@ -64,13 +64,13 @@ Index: gdb-7.5.50.20130215/gdb/linux-nat.c
|
||||
+ it as stopped if the user detaches. PTID variable has PID set to LWP
|
||||
+ while we need to check the real PID here. */
|
||||
+
|
||||
+ if (!step && lp && pid_was_stopped == GET_PID (lp->ptid))
|
||||
+ if (!step && lp && pid_was_stopped == ptid_get_pid (lp->ptid))
|
||||
+ pid_was_stopped = 0;
|
||||
+
|
||||
if (resume_many)
|
||||
iterate_over_lwps (ptid, linux_nat_resume_callback, NULL);
|
||||
|
||||
@@ -4137,6 +4161,8 @@ linux_nat_mourn_inferior (struct target_
|
||||
@@ -3864,6 +3888,8 @@ linux_nat_mourn_inferior (struct target_
|
||||
|
||||
/* Let the arch-specific native code know this process is gone. */
|
||||
linux_nat_forget_process (pid);
|
||||
@ -79,10 +79,10 @@ Index: gdb-7.5.50.20130215/gdb/linux-nat.c
|
||||
}
|
||||
|
||||
/* Convert a native/host siginfo object, into/from the siginfo in the
|
||||
Index: gdb-7.5.50.20130215/gdb/testsuite/gdb.threads/attach-stopped.exp
|
||||
Index: gdb-7.7/gdb/testsuite/gdb.threads/attach-stopped.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130215.orig/gdb/testsuite/gdb.threads/attach-stopped.exp 2013-01-01 07:41:27.000000000 +0100
|
||||
+++ gdb-7.5.50.20130215/gdb/testsuite/gdb.threads/attach-stopped.exp 2013-02-15 22:44:23.262930312 +0100
|
||||
--- gdb-7.7.orig/gdb/testsuite/gdb.threads/attach-stopped.exp 2014-01-08 10:23:36.000000000 +0100
|
||||
+++ gdb-7.7/gdb/testsuite/gdb.threads/attach-stopped.exp 2014-02-09 19:13:33.321214945 +0100
|
||||
@@ -61,7 +61,65 @@ proc corefunc { threadtype } {
|
||||
gdb_reinitialize_dir $srcdir/$subdir
|
||||
gdb_load ${binfile}
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: gdb-7.5.50.20130118/gdb/gdb_bfd.c
|
||||
Index: gdb-7.6.90.20140127/gdb/gdb_bfd.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/gdb_bfd.c 2013-01-18 23:11:18.158718709 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/gdb_bfd.c 2013-01-18 23:12:06.841787893 +0100
|
||||
@@ -27,12 +27,14 @@
|
||||
--- gdb-7.6.90.20140127.orig/gdb/gdb_bfd.c 2014-02-06 17:39:46.370096290 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/gdb_bfd.c 2014-02-06 17:40:14.996127247 +0100
|
||||
@@ -29,12 +29,14 @@
|
||||
#ifdef HAVE_ZLIB_H
|
||||
#include <zlib.h>
|
||||
#endif
|
||||
@ -15,9 +15,9 @@ Index: gdb-7.5.50.20130118/gdb/gdb_bfd.c
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
/* An object of this type is stored in the section's user data when
|
||||
mapping a section. */
|
||||
@@ -205,6 +207,7 @@ free_one_bfd_section (bfd *abfd, asectio
|
||||
typedef bfd *bfdp;
|
||||
DEF_VEC_P (bfdp);
|
||||
@@ -210,6 +212,7 @@ free_one_bfd_section (bfd *abfd, asectio
|
||||
|
||||
if (sect != NULL && sect->data != NULL)
|
||||
{
|
||||
@ -25,7 +25,7 @@ Index: gdb-7.5.50.20130118/gdb/gdb_bfd.c
|
||||
#ifdef HAVE_MMAP
|
||||
if (sect->map_addr != NULL)
|
||||
{
|
||||
@@ -215,6 +218,7 @@ free_one_bfd_section (bfd *abfd, asectio
|
||||
@@ -220,6 +223,7 @@ free_one_bfd_section (bfd *abfd, asectio
|
||||
}
|
||||
else
|
||||
#endif
|
||||
@ -33,7 +33,7 @@ Index: gdb-7.5.50.20130118/gdb/gdb_bfd.c
|
||||
xfree (sect->data);
|
||||
}
|
||||
}
|
||||
@@ -360,6 +364,7 @@ gdb_bfd_map_section (asection *sectp, bf
|
||||
@@ -371,6 +375,7 @@ gdb_bfd_map_section (asection *sectp, bf
|
||||
if (descriptor->data != NULL)
|
||||
goto done;
|
||||
|
||||
@ -41,7 +41,7 @@ Index: gdb-7.5.50.20130118/gdb/gdb_bfd.c
|
||||
#ifdef HAVE_MMAP
|
||||
if (!bfd_is_section_compressed (abfd, sectp))
|
||||
{
|
||||
@@ -394,6 +399,7 @@ gdb_bfd_map_section (asection *sectp, bf
|
||||
@@ -405,6 +410,7 @@ gdb_bfd_map_section (asection *sectp, bf
|
||||
}
|
||||
}
|
||||
#endif /* HAVE_MMAP */
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5ba2ee6049f792f7df7d8148f03bbb8126607ef40f59a6c5d65a08c744415d40
|
||||
size 24639930
|
3
gdb-7.7.tar.bz2
Normal file
3
gdb-7.7.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0404d1c6ee6b3ddd811722b5197944758d37b4591c216030effbac204f5a6c23
|
||||
size 24846320
|
@ -1,27 +0,0 @@
|
||||
http://permalink.gmane.org/gmane.comp.gdb.patches/88728
|
||||
http://permalink.gmane.org/gmane.comp.gdb.patches/90237
|
||||
|
||||
Index: gdb/aarch64-linux-nat.c
|
||||
===================================================================
|
||||
--- gdb/aarch64-linux-nat.c.orig
|
||||
+++ gdb/aarch64-linux-nat.c
|
||||
@@ -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;
|
||||
Index: gdb/gdbserver/linux-aarch64-low.c
|
||||
===================================================================
|
||||
--- gdb/gdbserver/linux-aarch64-low.c.orig
|
||||
+++ gdb/gdbserver/linux-aarch64-low.c
|
||||
@@ -600,6 +600,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;
|
683
gdb-archer.patch
683
gdb-archer.patch
File diff suppressed because it is too large
Load Diff
@ -37,22 +37,22 @@ gdb/gdbserver/
|
||||
(linux_create_inferior, linux_tracefork_child): Call it instead of
|
||||
direct ptrace.
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/common/linux-ptrace.c
|
||||
Index: gdb-7.6.90.20140127/gdb/common/linux-ptrace.c
|
||||
===================================================================
|
||||
--- 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"
|
||||
--- gdb-7.6.90.20140127.orig/gdb/common/linux-ptrace.c 2014-02-06 17:40:32.530145960 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/common/linux-ptrace.c 2014-02-06 17:48:16.329644534 +0100
|
||||
@@ -32,6 +32,10 @@
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
+#ifdef HAVE_SELINUX_SELINUX_H
|
||||
+# include <selinux/selinux.h>
|
||||
+#endif /* HAVE_SELINUX_SELINUX_H */
|
||||
+
|
||||
/* Find all possible reasons we could fail to attach PID and append these
|
||||
newline terminated reason strings to initialized BUFFER. '\0' termination
|
||||
of BUFFER must be done by the caller. */
|
||||
@@ -48,6 +52,8 @@ linux_ptrace_attach_warnings (pid_t pid,
|
||||
/* Stores the currently supported ptrace options. A value of
|
||||
-1 means we did not check for features yet. A value of 0 means
|
||||
there are no supported features. */
|
||||
@@ -56,6 +60,8 @@ linux_ptrace_attach_warnings (pid_t pid,
|
||||
buffer_xml_printf (buffer, _("warning: process %d is a zombie "
|
||||
"- the process has already terminated\n"),
|
||||
(int) pid);
|
||||
@ -61,7 +61,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/common/linux-ptrace.c
|
||||
}
|
||||
|
||||
#if defined __i386__ || defined __x86_64__
|
||||
@@ -236,3 +242,19 @@ linux_ptrace_init_warnings (void)
|
||||
@@ -542,3 +548,19 @@ linux_ptrace_init_warnings (void)
|
||||
|
||||
linux_ptrace_test_ret_to_nx ();
|
||||
}
|
||||
@ -81,22 +81,23 @@ Index: gdb-7.6.50.20130731-cvs/gdb/common/linux-ptrace.c
|
||||
+ "(gdb) shell sudo setsebool deny_ptrace=0"));
|
||||
+#endif /* HAVE_LIBSELINUX */
|
||||
+}
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/common/linux-ptrace.h
|
||||
Index: gdb-7.6.90.20140127/gdb/common/linux-ptrace.h
|
||||
===================================================================
|
||||
--- 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;
|
||||
--- gdb-7.6.90.20140127.orig/gdb/common/linux-ptrace.h 2014-02-06 17:40:35.506149162 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/common/linux-ptrace.h 2014-02-06 17:48:00.601627995 +0100
|
||||
@@ -85,6 +85,7 @@ struct buffer;
|
||||
|
||||
extern void linux_ptrace_attach_warnings (pid_t pid, struct buffer *buffer);
|
||||
extern void linux_ptrace_init_warnings (void);
|
||||
+extern void linux_ptrace_create_warnings (struct buffer *buffer);
|
||||
|
||||
#endif /* COMMON_LINUX_PTRACE_H */
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/configure.ac
|
||||
extern void linux_enable_event_reporting (pid_t pid);
|
||||
extern int linux_supports_tracefork (void);
|
||||
extern int linux_supports_traceclone (void);
|
||||
Index: gdb-7.6.90.20140127/gdb/configure.ac
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/configure.ac 2014-02-06 17:40:32.532145962 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/configure.ac 2014-02-06 17:40:35.507149163 +0100
|
||||
@@ -1975,6 +1975,10 @@ case $host_os in
|
||||
esac
|
||||
AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
|
||||
|
||||
@ -107,11 +108,11 @@ Index: gdb-7.6.50.20130731-cvs/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.6.50.20130731-cvs/gdb/gdbserver/configure.ac
|
||||
Index: gdb-7.6.90.20140127/gdb/gdbserver/configure.ac
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/gdbserver/configure.ac 2014-02-06 17:40:32.532145962 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/gdbserver/configure.ac 2014-02-06 17:40:35.507149163 +0100
|
||||
@@ -454,6 +454,10 @@ if $want_ipa ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -122,11 +123,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/gdbserver/configure.ac
|
||||
AC_SUBST(GDBSERVER_DEPFILES)
|
||||
AC_SUBST(GDBSERVER_LIBS)
|
||||
AC_SUBST(srv_xmlbuiltin)
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/gdbserver/linux-low.c
|
||||
Index: gdb-7.6.90.20140127/gdb/gdbserver/linux-low.c
|
||||
===================================================================
|
||||
--- 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)
|
||||
--- gdb-7.6.90.20140127.orig/gdb/gdbserver/linux-low.c 2014-02-06 17:40:32.534145964 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/gdbserver/linux-low.c 2014-02-06 17:49:32.385726514 +0100
|
||||
@@ -543,6 +543,29 @@ add_lwp (ptid_t ptid)
|
||||
return lwp;
|
||||
}
|
||||
|
||||
@ -140,7 +141,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/gdbserver/linux-low.c
|
||||
+
|
||||
+ errno = 0;
|
||||
+ if (ptrace (PTRACE_TRACEME, 0,
|
||||
+ (PTRACE_ARG3_TYPE) 0, (PTRACE_ARG4_TYPE) 0) == 0)
|
||||
+ (PTRACE_TYPE_ARG3) 0, (PTRACE_TYPE_ARG4) 0) == 0)
|
||||
+ return;
|
||||
+
|
||||
+ save_errno = errno;
|
||||
@ -156,29 +157,20 @@ Index: gdb-7.6.50.20130731-cvs/gdb/gdbserver/linux-low.c
|
||||
/* Start an inferior process and returns its pid.
|
||||
ALLARGS is a vector of program-name and args. */
|
||||
|
||||
@@ -662,7 +685,7 @@ linux_create_inferior (char *program, ch
|
||||
|
||||
@@ -584,7 +607,7 @@ linux_create_inferior (char *program, ch
|
||||
if (pid == 0)
|
||||
{
|
||||
- ptrace (PTRACE_TRACEME, 0, (PTRACE_ARG3_TYPE) 0, (PTRACE_ARG4_TYPE) 0);
|
||||
close_most_fds ();
|
||||
- ptrace (PTRACE_TRACEME, 0, (PTRACE_TYPE_ARG3) 0, (PTRACE_TYPE_ARG4) 0);
|
||||
+ linux_traceme (program);
|
||||
|
||||
#ifndef __ANDROID__ /* Bionic doesn't use SIGRTMIN the way glibc does. */
|
||||
signal (__SIGRTMIN + 1, SIG_DFL);
|
||||
@@ -4685,7 +4708,7 @@ linux_tracefork_grandchild (void *arg)
|
||||
static int
|
||||
linux_tracefork_child (void *arg)
|
||||
{
|
||||
- ptrace (PTRACE_TRACEME, 0, (PTRACE_ARG3_TYPE) 0, (PTRACE_ARG4_TYPE) 0);
|
||||
+ linux_traceme ("PTRACE_O_TRACEFORK test");
|
||||
kill (getpid (), SIGSTOP);
|
||||
|
||||
#if !(defined(__UCLIBC__) && defined(HAS_NOMMU))
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/inf-ptrace.c
|
||||
Index: gdb-7.6.90.20140127/gdb/inf-ptrace.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/inf-ptrace.c 2014-02-06 17:40:32.535145965 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/inf-ptrace.c 2014-02-06 17:40:35.510149167 +0100
|
||||
@@ -105,7 +105,15 @@ static void
|
||||
inf_ptrace_me (void)
|
||||
{
|
||||
/* "Trace me, Dr. Memory!" */
|
||||
@ -194,11 +186,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/inf-ptrace.c
|
||||
}
|
||||
|
||||
/* Start a new inferior Unix child process. EXEC_FILE is the file to
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/linux-nat.c
|
||||
Index: gdb-7.6.90.20140127/gdb/linux-nat.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/linux-nat.c 2014-02-06 17:40:32.537145968 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/linux-nat.c 2014-02-06 17:40:35.511149168 +0100
|
||||
@@ -1283,6 +1283,7 @@ linux_nat_create_inferior (struct target
|
||||
#ifdef HAVE_PERSONALITY
|
||||
int personality_orig = 0, personality_set = 0;
|
||||
#endif /* HAVE_PERSONALITY */
|
||||
@ -206,7 +198,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/linux-nat.c
|
||||
|
||||
/* The fork_child mechanism is synchronous and calls target_wait, so
|
||||
we have to mask the async mode. */
|
||||
@@ -1578,7 +1579,10 @@ linux_nat_create_inferior (struct target
|
||||
@@ -1307,7 +1308,10 @@ linux_nat_create_inferior (struct target
|
||||
/* Make sure we report all signals during startup. */
|
||||
linux_nat_pass_signals (0, NULL);
|
||||
|
||||
@ -218,7 +210,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/linux-nat.c
|
||||
|
||||
#ifdef HAVE_PERSONALITY
|
||||
if (personality_set)
|
||||
@@ -1590,6 +1594,24 @@ linux_nat_create_inferior (struct target
|
||||
@@ -1319,6 +1323,24 @@ linux_nat_create_inferior (struct target
|
||||
safe_strerror (errno));
|
||||
}
|
||||
#endif /* HAVE_PERSONALITY */
|
||||
@ -243,11 +235,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/linux-nat.c
|
||||
}
|
||||
|
||||
static void
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/config.in
|
||||
Index: gdb-7.6.90.20140127/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 @@
|
||||
--- gdb-7.6.90.20140127.orig/gdb/config.in 2014-02-06 17:40:32.538145969 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/config.in 2014-02-06 17:40:35.511149168 +0100
|
||||
@@ -213,6 +213,9 @@
|
||||
/* Define if librpm library is being used. */
|
||||
#undef HAVE_LIBRPM
|
||||
|
||||
@ -257,7 +249,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/config.in
|
||||
/* Define to 1 if you have the <libunwind-ia64.h> header file. */
|
||||
#undef HAVE_LIBUNWIND_IA64_H
|
||||
|
||||
@@ -372,6 +375,9 @@
|
||||
@@ -345,6 +348,9 @@
|
||||
/* Define to 1 if you have the `sbrk' function. */
|
||||
#undef HAVE_SBRK
|
||||
|
||||
@ -267,11 +259,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/config.in
|
||||
/* Define to 1 if you have the `setlocale' function. */
|
||||
#undef HAVE_SETLOCALE
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/configure
|
||||
Index: gdb-7.6.90.20140127/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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/configure 2014-02-06 17:40:32.541145972 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/configure 2014-02-06 17:40:35.515149172 +0100
|
||||
@@ -12861,6 +12861,64 @@ cat >>confdefs.h <<_ACEOF
|
||||
_ACEOF
|
||||
|
||||
|
||||
@ -336,24 +328,21 @@ Index: gdb-7.6.50.20130731-cvs/gdb/configure
|
||||
|
||||
# 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
|
||||
Index: gdb-7.6.90.20140127/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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/gdbserver/config.in 2014-02-06 17:40:32.542145973 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/gdbserver/config.in 2014-02-06 17:54:06.923021799 +0100
|
||||
@@ -78,6 +78,9 @@
|
||||
/* Define to 1 if you have the `mcheck' library (-lmcheck). */
|
||||
#undef HAVE_LIBMCHECK
|
||||
|
||||
+/* 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 @@
|
||||
@@ -151,6 +154,9 @@
|
||||
/* Define to 1 if you have the `readlink' function. */
|
||||
#undef HAVE_READLINK
|
||||
|
||||
@ -363,11 +352,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/gdbserver/config.in
|
||||
/* 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
|
||||
Index: gdb-7.6.90.20140127/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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/gdbserver/configure 2014-02-06 17:40:32.543145974 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/gdbserver/configure 2014-02-06 17:40:35.516149173 +0100
|
||||
@@ -6170,6 +6170,64 @@ if $want_ipa ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -1,20 +1,20 @@
|
||||
Index: gdb-7.5.91.20130323/gdb/config/i386/linux64.mh
|
||||
Index: gdb-7.6.90.20140127/gdb/config/i386/linux64.mh
|
||||
===================================================================
|
||||
--- 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 \
|
||||
--- gdb-7.6.90.20140127.orig/gdb/config/i386/linux64.mh 2014-02-06 17:30:23.021489736 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/config/i386/linux64.mh 2014-02-06 17:30:44.984513403 +0100
|
||||
@@ -5,7 +5,7 @@ NATDEPFILES= inf-ptrace.o fork-child.o \
|
||||
proc-service.o linux-thread-db.o linux-fork.o \
|
||||
linux-procfs.o linux-ptrace.o linux-btrace.o
|
||||
linux-procfs.o linux-ptrace.o linux-btrace.o \
|
||||
linux-waitpid.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.5.91.20130323/gdb/config/i386/linux.mh
|
||||
Index: gdb-7.6.90.20140127/gdb/config/i386/linux.mh
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/config/i386/linux.mh 2014-02-06 17:30:15.893482056 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/config/i386/linux.mh 2014-02-06 17:30:23.021489736 +0100
|
||||
@@ -1,6 +1,6 @@
|
||||
# Host: Intel 386 running GNU/Linux.
|
||||
|
||||
@ -23,10 +23,10 @@ Index: gdb-7.5.91.20130323/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.5.91.20130323/gdb/config/i386/nm-linux.h
|
||||
Index: gdb-7.6.90.20140127/gdb/config/i386/nm-linux.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.5.91.20130323/gdb/config/i386/nm-linux.h 2013-03-23 19:48:22.757990256 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/config/i386/nm-linux.h 2014-02-06 17:30:23.021489736 +0100
|
||||
@@ -0,0 +1,28 @@
|
||||
+/* Native support for GNU/Linux i386.
|
||||
+
|
||||
@ -56,10 +56,10 @@ Index: gdb-7.5.91.20130323/gdb/config/i386/nm-linux.h
|
||||
+#define target_can_use_hardware_watchpoint(type, cnt, ot) 1
|
||||
+
|
||||
+#endif /* NM_LINUX64_H */
|
||||
Index: gdb-7.5.91.20130323/gdb/config/i386/nm-linux64.h
|
||||
Index: gdb-7.6.90.20140127/gdb/config/i386/nm-linux64.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.5.91.20130323/gdb/config/i386/nm-linux64.h 2013-03-23 19:48:22.757990256 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/config/i386/nm-linux64.h 2014-02-06 17:30:23.021489736 +0100
|
||||
@@ -0,0 +1,28 @@
|
||||
+/* Native support for GNU/Linux amd64.
|
||||
+
|
||||
@ -89,11 +89,11 @@ Index: gdb-7.5.91.20130323/gdb/config/i386/nm-linux64.h
|
||||
+#define target_can_use_hardware_watchpoint(type, cnt, ot) 1
|
||||
+
|
||||
+#endif /* NM_LINUX64_H */
|
||||
Index: gdb-7.5.91.20130323/gdb/target.h
|
||||
Index: gdb-7.6.90.20140127/gdb/target.h
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/target.h 2014-02-06 17:30:15.894482057 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/target.h 2014-02-06 17:30:23.022489737 +0100
|
||||
@@ -1521,8 +1521,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.5.91.20130323/gdb/target.h
|
||||
|
||||
/* Returns the number of debug registers needed to watch the given
|
||||
memory region, or zero if not supported. */
|
||||
Index: gdb-7.5.91.20130323/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.5.91.20130323/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp 2013-03-23 19:48:22.758990238 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp 2014-02-06 17:30:23.022489737 +0100
|
||||
@@ -0,0 +1,40 @@
|
||||
+# Copyright 2009, 2010 Free Software Foundation, Inc.
|
||||
+
|
||||
|
@ -1,5 +1,7 @@
|
||||
--- /dev/null 2010-06-08 20:35:46.800278452 +0200
|
||||
+++ gdb-7.1/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.S 2010-06-09 15:22:57.000000000 +0200
|
||||
Index: gdb-7.7/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.S
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.7/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.S 2014-02-06 22:02:21.981449555 +0100
|
||||
@@ -0,0 +1,167 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
@ -168,8 +170,10 @@
|
||||
+ .string "main"
|
||||
+ .ident "GCC: (GNU) 4.4.4 20100503 (Red Hat 4.4.4-2)"
|
||||
+ .section .note.GNU-stack,"",@progbits
|
||||
--- /dev/null 2010-06-08 20:35:46.800278452 +0200
|
||||
+++ gdb-7.1/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.c 2010-06-09 15:21:35.000000000 +0200
|
||||
Index: gdb-7.7/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.7/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.c 2014-02-06 22:02:21.981449555 +0100
|
||||
@@ -0,0 +1,22 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
@ -193,8 +197,10 @@
|
||||
+{
|
||||
+ return 0;
|
||||
+}
|
||||
--- /dev/null 2010-06-08 20:35:46.800278452 +0200
|
||||
+++ gdb-7.1/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.exp 2010-06-09 15:26:21.000000000 +0200
|
||||
Index: gdb-7.7/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.7/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.exp 2014-02-06 22:12:10.788032417 +0100
|
||||
@@ -0,0 +1,42 @@
|
||||
+# Copyright 2010 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -229,7 +235,7 @@
|
||||
+set testfile "rh-dwarf4-x86_64"
|
||||
+set srcfile ${testfile}.S
|
||||
+set executable ${testfile}.x
|
||||
+set binfile ${objdir}/${subdir}/${executable}
|
||||
+set binfile [standard_output_file ${executable}]
|
||||
+
|
||||
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" object {}] != "" } {
|
||||
+ return -1
|
||||
|
@ -3,89 +3,10 @@ Subject: [patch] Fix GNU/Linux core open: Can't read pathname for load map: Inp
|
||||
|
||||
[ New patch variant. ]
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/solib-svr4.c
|
||||
===================================================================
|
||||
--- 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)
|
||||
{
|
||||
- warning (_("Can't read pathname for load map: %s."),
|
||||
- safe_strerror (errcode));
|
||||
+ /* During the first ever DSO list reading some strings may be
|
||||
+ unreadable as residing in the ld.so readonly memory not being
|
||||
+ present in a dumped core file. Delay the error check after
|
||||
+ the first pass of DSO list scanning when ld.so should be
|
||||
+ already mapped in and all the DSO list l_name memory gets
|
||||
+ readable. */
|
||||
+
|
||||
+ if (master_so_list () != NULL)
|
||||
+ warning (_("Can't read pathname for load map: %s."),
|
||||
+ safe_strerror (errcode));
|
||||
+
|
||||
do_cleanups (old_chain);
|
||||
continue;
|
||||
}
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/solib.c
|
||||
===================================================================
|
||||
--- 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)
|
||||
{
|
||||
const struct target_so_ops *ops = solib_ops (target_gdbarch ());
|
||||
struct so_list *inferior = ops->current_sos();
|
||||
@@ -840,6 +840,21 @@ Do you need \"set solib-search-path\" or
|
||||
}
|
||||
}
|
||||
|
||||
+/* Wrapper for Fedora: gdb-core-open-vdso-warning.patch */
|
||||
+
|
||||
+static void
|
||||
+update_solib_list (int from_tty, struct target_ops *target)
|
||||
+{
|
||||
+ struct so_list *saved_so_list_head = so_list_head;
|
||||
+
|
||||
+ update_solib_list_1 (from_tty, target);
|
||||
+
|
||||
+ /* If this was the very first DSO list scan and we possibly read in ld.so
|
||||
+ recheck all the formerly unreadable DSO names strings. */
|
||||
+
|
||||
+ if (saved_so_list_head == NULL && so_list_head != NULL)
|
||||
+ update_solib_list_1 (from_tty, target);
|
||||
+}
|
||||
|
||||
/* Return non-zero if NAME is the libpthread shared library.
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/corefile.exp
|
||||
===================================================================
|
||||
--- 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
|
||||
}
|
||||
+
|
||||
+
|
||||
+# Test Linux specific vDSO warning:
|
||||
+# warning: Can't read pathname for load map: Input/output error.
|
||||
+
|
||||
+clean_restart ${testfile}
|
||||
+
|
||||
+set test "core-file vdso warning"
|
||||
+gdb_test_multiple "core-file $corefile" $test {
|
||||
+ -re "warning: Can't read pathname for load map: Input/output error\\.\r\n.*\r\n$gdb_prompt $" {
|
||||
+ fail $test
|
||||
+ }
|
||||
+ -re "\r\n$gdb_prompt $" {
|
||||
+ pass $test
|
||||
+ }
|
||||
+}
|
||||
commit 7d760051ffb8a23cdc51342d4e6243fbc462f73f
|
||||
Author: Ulrich Weigand <uweigand@de.ibm.com>
|
||||
Date: Wed Sep 25 11:52:50 2013 +0000
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/solib-symbol.exp
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/solib-symbol.exp 2013-08-02 16:27:28.833259471 +0200
|
||||
|
@ -40,12 +40,12 @@ 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.6.50.20130731-cvs/gdb/Makefile.in
|
||||
Index: gdb-7.6.90.20140127/gdb/Makefile.in
|
||||
===================================================================
|
||||
--- 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 \
|
||||
--- gdb-7.6.90.20140127.orig/gdb/Makefile.in 2014-02-06 17:37:54.555975958 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/Makefile.in 2014-02-06 17:38:52.110038415 +0100
|
||||
@@ -1093,6 +1093,15 @@ install-only: install-gstack $(CONFIG_IN
|
||||
$(INSTALL_SCRIPT) gcore \
|
||||
$(DESTDIR)$(bindir)/$$transformed_name; \
|
||||
fi
|
||||
+ transformed_name=`t='$(program_transform_name)'; \
|
||||
@ -55,16 +55,16 @@ Index: gdb-7.6.50.20130731-cvs/gdb/Makefile.in
|
||||
+ else \
|
||||
+ true ; \
|
||||
+ fi ; \
|
||||
+ $(INSTALL_PROGRAM) $(srcdir)/gdb-add-index \
|
||||
+ $(INSTALL_PROGRAM) $(srcdir)/contrib/gdb-add-index.sh \
|
||||
+ $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT)
|
||||
@$(MAKE) DO=install "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do
|
||||
|
||||
install-python:
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo
|
||||
install-strip:
|
||||
Index: gdb-7.6.90.20140127/gdb/doc/gdb.texinfo
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/doc/gdb.texinfo 2014-02-06 17:37:50.822971940 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/doc/gdb.texinfo 2014-02-06 17:37:54.565975968 +0100
|
||||
@@ -17749,6 +17749,14 @@ There are currently some limitation on i
|
||||
for DWARF debugging information, not stabs. And, they do not
|
||||
currently work for programs using Ada.
|
||||
|
||||
@ -79,7 +79,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo
|
||||
@node Symbol Errors
|
||||
@section Errors Reading Symbol Files
|
||||
|
||||
@@ -43044,6 +43052,7 @@ switch (die->tag)
|
||||
@@ -43878,6 +43886,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
|
||||
@ -87,7 +87,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo
|
||||
@end menu
|
||||
|
||||
@node gdb man
|
||||
@@ -43696,6 +43705,54 @@ gdb(1), @code{info -f gdb -n Startup}
|
||||
@@ -44530,6 +44539,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
|
||||
@ -142,46 +142,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo
|
||||
|
||||
@smallexample
|
||||
info gdb
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/gdb-add-index
|
||||
Index: gdb-7.6.90.20140127/gdb/doc/Makefile.in
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/gdb-add-index 2013-08-02 16:32:08.271690176 +0200
|
||||
@@ -0,0 +1,30 @@
|
||||
+#! /bin/sh
|
||||
+
|
||||
+# Add a .gdb_index section to a file.
|
||||
+
|
||||
+# Copyright (C) 2010 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/>.
|
||||
+
|
||||
+file="$1"
|
||||
+dir="${file%/*}"
|
||||
+
|
||||
+# We don't care if gdb gives an error.
|
||||
+gdb -nx --batch-silent -ex "file $file" -ex "save gdb-index $dir"
|
||||
+
|
||||
+if test -f "${file}.gdb-index"; then
|
||||
+ objcopy --add-section .gdb_index="${file}.gdb-index" --set-section-flags .gdb_index=readonly "$file" "$file"
|
||||
+ rm -f "${file}.gdb-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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/doc/Makefile.in 2014-02-06 17:37:50.824971942 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/doc/Makefile.in 2014-02-06 17:37:54.565975968 +0100
|
||||
@@ -165,7 +165,7 @@ POD2MAN5 = pod2man --center="GNU Develop
|
||||
--release="gdb-`sed q version.subst`" --section=5
|
||||
|
||||
# List of man pages generated from gdb.texi
|
||||
@ -190,7 +155,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/doc/Makefile.in
|
||||
MAN5S = gdbinit.5
|
||||
MANS = $(MAN1S) $(MAN5S)
|
||||
|
||||
@@ -630,6 +630,13 @@ gcore.1: $(GDB_DOC_FILES)
|
||||
@@ -590,6 +590,13 @@ gcore.1: $(GDB_DOC_FILES)
|
||||
mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
|
||||
rm -f gcore.pod
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/dwarf2read.c
|
||||
Index: gdb-7.6.90.20140127/gdb/dwarf2read.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/dwarf2read.c 2014-02-06 18:18:09.676572271 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/dwarf2read.c 2014-02-06 18:18:42.664607823 +0100
|
||||
@@ -17646,6 +17646,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, &objfile->objfile_obstack);
|
||||
linkagename = dwarf2_physname (name, die, cu);
|
||||
@ -11,7 +11,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/dwarf2read.c
|
||||
+ * invalid IFUNC DW_AT_linkage_name: memmove strstr time
|
||||
+ * http://sourceware.org/bugzilla/show_bug.cgi?id=14166 */
|
||||
+ if (strcmp (linkagename, "strstr") == 0
|
||||
+ && strstr (objfile->name, "/libc") != NULL)
|
||||
+ && strstr (objfile_name (objfile), "/libc") != NULL)
|
||||
+ {
|
||||
+ struct objfile *objfile_msym;
|
||||
+ struct minimal_symbol *msym;
|
||||
@ -28,10 +28,10 @@ Index: gdb-7.6.50.20130731-cvs/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.6.50.20130731-cvs/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp 2013-08-02 16:37:51.620241697 +0200
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp 2014-02-06 18:18:16.294579381 +0100
|
||||
@@ -0,0 +1,108 @@
|
||||
+# Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
+
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b475a3ef42507a47b1ea4b7f9a4849287b4c713e5081ec86874eaa7da194f78b
|
||||
size 11754
|
||||
oid sha256:1877172a7efbf7540290471e64816c9549b24a65e825f0e1a725ac950b4e5029
|
||||
size 11744
|
||||
|
@ -1,19 +0,0 @@
|
||||
Index: gdb-7.4.50.20120603/gdb/ppc-linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120603.orig/gdb/ppc-linux-nat.c 2012-06-01 00:07:31.000000000 +0200
|
||||
+++ gdb-7.4.50.20120603/gdb/ppc-linux-nat.c 2012-06-12 15:17:59.537703950 +0200
|
||||
@@ -1418,8 +1418,12 @@ have_ptrace_booke_interface (void)
|
||||
if (tid == 0)
|
||||
tid = PIDGET (inferior_ptid);
|
||||
|
||||
- /* Check for kernel support for BOOKE debug registers. */
|
||||
- if (ptrace (PPC_PTRACE_GETHWDBGINFO, tid, 0, &booke_debug_info) >= 0)
|
||||
+ /* Check for kernel support for BOOKE debug registers.
|
||||
+ As a workaround while the new ptrace interface is not accepted
|
||||
+ in upstream kernel, server processors still should use the old
|
||||
+ interface. */
|
||||
+ if (ptrace (PPC_PTRACE_GETHWDBGINFO, tid, 0, &booke_debug_info) >= 0
|
||||
+ && ppc_linux_get_hwcap () & PPC_FEATURE_BOOKE)
|
||||
{
|
||||
/* Check whether ptrace BOOKE interface is functional and
|
||||
provides any supported feature. */
|
@ -1,7 +1,7 @@
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/auxv.c
|
||||
Index: gdb-7.7/gdb/auxv.c
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/auxv.c
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/auxv.c
|
||||
--- gdb-7.7.orig/gdb/auxv.c 2014-02-06 03:21:29.000000000 +0100
|
||||
+++ gdb-7.7/gdb/auxv.c 2014-02-10 18:07:42.000000000 +0100
|
||||
@@ -442,6 +442,7 @@ fprint_target_auxv (struct ui_file *file
|
||||
TAG (AT_IGNOREPPC, _("Entry should be ignored"), dec);
|
||||
TAG (AT_BASE_PLATFORM, _("String identifying base platform"), str);
|
||||
@ -10,134 +10,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/auxv.c
|
||||
TAG (AT_EXECFN, _("File name of executable"), str);
|
||||
TAG (AT_SECURE, _("Boolean, was exec setuid-like?"), dec);
|
||||
TAG (AT_SYSINFO, _("Special system info/entry points"), hex);
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/configure.host
|
||||
Index: gdb-7.7/gdb/gdbarch.c
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/configure.host
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/configure.host
|
||||
@@ -129,18 +129,18 @@ mips64*-*-openbsd*) gdb_host=obsd64 ;;
|
||||
powerpc-*-aix* | rs6000-*-*)
|
||||
gdb_host=aix ;;
|
||||
powerpc*-*-freebsd*) gdb_host=fbsd ;;
|
||||
-powerpc-*-linux*) gdb_host=linux ;;
|
||||
powerpc-*-netbsd* | powerpc-*-knetbsd*-gnu)
|
||||
gdb_host=nbsd ;;
|
||||
powerpc-*-openbsd*) gdb_host=obsd ;;
|
||||
|
||||
-powerpc64-*-linux*) gdb_host=ppc64-linux
|
||||
+powerpc64*-*-linux*) gdb_host=ppc64-linux
|
||||
# Support 'pseudo-native' debugging on the Cell BE
|
||||
if test "${target_cpu}" = "spu"; then
|
||||
gdb_host=spu-linux
|
||||
gdb_native=yes
|
||||
fi
|
||||
;;
|
||||
+powerpc*-*-linux*) gdb_host=linux ;;
|
||||
|
||||
s390*-*-*) gdb_host=s390 ;;
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/configure.tgt
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/configure.tgt
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/configure.tgt
|
||||
@@ -438,7 +438,7 @@ powerpc-*-aix* | rs6000-*-*)
|
||||
ppc-sysv-tdep.o solib-aix.o \
|
||||
ravenscar-thread.o ppc-ravenscar-thread.o"
|
||||
;;
|
||||
-powerpc-*-linux* | powerpc64-*-linux*)
|
||||
+powerpc*-*-linux*)
|
||||
# Target: PowerPC running Linux
|
||||
gdb_target_obs="rs6000-tdep.o ppc-linux-tdep.o ppc-sysv-tdep.o \
|
||||
ppc64-tdep.o solib-svr4.o solib-spu.o \
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/doublest.c
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/doublest.c
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/doublest.c
|
||||
@@ -190,7 +190,8 @@ convert_floatformat_to_doublest (const s
|
||||
{
|
||||
double dto;
|
||||
|
||||
- floatformat_to_double (fmt, from, &dto);
|
||||
+ floatformat_to_double (fmt->split_half ? fmt->split_half : fmt,
|
||||
+ from, &dto);
|
||||
*to = (DOUBLEST) dto;
|
||||
return;
|
||||
}
|
||||
@@ -514,6 +515,11 @@ floatformat_is_negative (const struct fl
|
||||
gdb_assert (fmt->totalsize
|
||||
<= FLOATFORMAT_LARGEST_BYTES * FLOATFORMAT_CHAR_BIT);
|
||||
|
||||
+ /* An IBM long double (a two element array of double) always takes the
|
||||
+ sign of the first double. */
|
||||
+ if (fmt->split_half)
|
||||
+ fmt = fmt->split_half;
|
||||
+
|
||||
order = floatformat_normalize_byteorder (fmt, uval, newfrom);
|
||||
|
||||
if (order != fmt->byteorder)
|
||||
@@ -540,6 +546,13 @@ floatformat_classify (const struct float
|
||||
gdb_assert (fmt->totalsize
|
||||
<= FLOATFORMAT_LARGEST_BYTES * FLOATFORMAT_CHAR_BIT);
|
||||
|
||||
+ /* An IBM long double (a two element array of double) can be classified
|
||||
+ by looking at the first double. inf and nan are specified as
|
||||
+ ignoring the second double. zero and subnormal will always have
|
||||
+ the second double 0.0 if the long double is correctly rounded. */
|
||||
+ if (fmt->split_half)
|
||||
+ fmt = fmt->split_half;
|
||||
+
|
||||
order = floatformat_normalize_byteorder (fmt, uval, newfrom);
|
||||
|
||||
if (order != fmt->byteorder)
|
||||
@@ -622,6 +635,16 @@ floatformat_mantissa (const struct float
|
||||
gdb_assert (fmt->totalsize
|
||||
<= FLOATFORMAT_LARGEST_BYTES * FLOATFORMAT_CHAR_BIT);
|
||||
|
||||
+ /* For IBM long double (a two element array of double), return the
|
||||
+ mantissa of the first double. The problem with returning the
|
||||
+ actual mantissa from both doubles is that there can be an
|
||||
+ arbitrary number of implied 0's or 1's between the mantissas
|
||||
+ of the first and second double. In any case, this function
|
||||
+ is only used for dumping out nans, and a nan is specified to
|
||||
+ ignore the value in the second double. */
|
||||
+ if (fmt->split_half)
|
||||
+ fmt = fmt->split_half;
|
||||
+
|
||||
order = floatformat_normalize_byteorder (fmt, uval, newfrom);
|
||||
|
||||
if (order != fmt->byteorder)
|
||||
@@ -879,27 +902,3 @@ convert_typed_floating (const void *from
|
||||
floatformat_from_doublest (to_fmt, &d, to);
|
||||
}
|
||||
}
|
||||
-
|
||||
-const struct floatformat *floatformat_ieee_single[BFD_ENDIAN_UNKNOWN];
|
||||
-const struct floatformat *floatformat_ieee_double[BFD_ENDIAN_UNKNOWN];
|
||||
-const struct floatformat *floatformat_ieee_quad[BFD_ENDIAN_UNKNOWN];
|
||||
-const struct floatformat *floatformat_arm_ext[BFD_ENDIAN_UNKNOWN];
|
||||
-const struct floatformat *floatformat_ia64_spill[BFD_ENDIAN_UNKNOWN];
|
||||
-
|
||||
-extern void _initialize_doublest (void);
|
||||
-
|
||||
-extern void
|
||||
-_initialize_doublest (void)
|
||||
-{
|
||||
- floatformat_ieee_single[BFD_ENDIAN_LITTLE] = &floatformat_ieee_single_little;
|
||||
- floatformat_ieee_single[BFD_ENDIAN_BIG] = &floatformat_ieee_single_big;
|
||||
- floatformat_ieee_double[BFD_ENDIAN_LITTLE] = &floatformat_ieee_double_little;
|
||||
- floatformat_ieee_double[BFD_ENDIAN_BIG] = &floatformat_ieee_double_big;
|
||||
- floatformat_arm_ext[BFD_ENDIAN_LITTLE]
|
||||
- = &floatformat_arm_ext_littlebyte_bigword;
|
||||
- floatformat_arm_ext[BFD_ENDIAN_BIG] = &floatformat_arm_ext_big;
|
||||
- floatformat_ia64_spill[BFD_ENDIAN_LITTLE] = &floatformat_ia64_spill_little;
|
||||
- floatformat_ia64_spill[BFD_ENDIAN_BIG] = &floatformat_ia64_spill_big;
|
||||
- floatformat_ieee_quad[BFD_ENDIAN_LITTLE] = &floatformat_ia64_quad_little;
|
||||
- floatformat_ieee_quad[BFD_ENDIAN_BIG] = &floatformat_ia64_quad_big;
|
||||
-}
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/gdbarch.c
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/gdbarch.c
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/gdbarch.c
|
||||
@@ -200,6 +200,7 @@ struct gdbarch
|
||||
--- gdb-7.7.orig/gdb/gdbarch.c 2014-02-06 03:21:29.000000000 +0100
|
||||
+++ gdb-7.7/gdb/gdbarch.c 2014-02-10 18:07:42.000000000 +0100
|
||||
@@ -229,6 +229,7 @@ struct gdbarch
|
||||
gdbarch_return_in_first_hidden_param_p_ftype *return_in_first_hidden_param_p;
|
||||
gdbarch_skip_prologue_ftype *skip_prologue;
|
||||
gdbarch_skip_main_prologue_ftype *skip_main_prologue;
|
||||
@ -145,7 +22,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/gdbarch.c
|
||||
gdbarch_inner_than_ftype *inner_than;
|
||||
gdbarch_breakpoint_from_pc_ftype *breakpoint_from_pc;
|
||||
gdbarch_remote_breakpoint_from_pc_ftype *remote_breakpoint_from_pc;
|
||||
@@ -372,6 +373,7 @@ struct gdbarch startup_gdbarch =
|
||||
@@ -402,6 +403,7 @@ struct gdbarch startup_gdbarch =
|
||||
default_return_in_first_hidden_param_p, /* return_in_first_hidden_param_p */
|
||||
0, /* skip_prologue */
|
||||
0, /* skip_main_prologue */
|
||||
@ -153,7 +30,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/gdbarch.c
|
||||
0, /* inner_than */
|
||||
0, /* breakpoint_from_pc */
|
||||
default_remote_breakpoint_from_pc, /* remote_breakpoint_from_pc */
|
||||
@@ -674,6 +676,7 @@ verify_gdbarch (struct gdbarch *gdbarch)
|
||||
@@ -705,6 +707,7 @@ verify_gdbarch (struct gdbarch *gdbarch)
|
||||
if (gdbarch->skip_prologue == 0)
|
||||
fprintf_unfiltered (log, "\n\tskip_prologue");
|
||||
/* Skip verify of skip_main_prologue, has predicate. */
|
||||
@ -161,7 +38,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/gdbarch.c
|
||||
if (gdbarch->inner_than == 0)
|
||||
fprintf_unfiltered (log, "\n\tinner_than");
|
||||
if (gdbarch->breakpoint_from_pc == 0)
|
||||
@@ -1294,6 +1297,12 @@ gdbarch_dump (struct gdbarch *gdbarch, s
|
||||
@@ -1332,6 +1335,12 @@ gdbarch_dump (struct gdbarch *gdbarch, s
|
||||
"gdbarch_dump: single_step_through_delay = <%s>\n",
|
||||
host_address_to_string (gdbarch->single_step_through_delay));
|
||||
fprintf_unfiltered (file,
|
||||
@ -174,7 +51,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/gdbarch.c
|
||||
"gdbarch_dump: gdbarch_skip_main_prologue_p() = %d\n",
|
||||
gdbarch_skip_main_prologue_p (gdbarch));
|
||||
fprintf_unfiltered (file,
|
||||
@@ -2644,6 +2653,30 @@ set_gdbarch_skip_main_prologue (struct g
|
||||
@@ -2682,6 +2691,30 @@ set_gdbarch_skip_main_prologue (struct g
|
||||
}
|
||||
|
||||
int
|
||||
@ -205,11 +82,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/gdbarch.c
|
||||
gdbarch_inner_than (struct gdbarch *gdbarch, CORE_ADDR lhs, CORE_ADDR rhs)
|
||||
{
|
||||
gdb_assert (gdbarch != NULL);
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/gdbarch.h
|
||||
Index: gdb-7.7/gdb/gdbarch.h
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/gdbarch.h
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/gdbarch.h
|
||||
@@ -487,6 +487,12 @@ typedef CORE_ADDR (gdbarch_skip_main_pro
|
||||
--- gdb-7.7.orig/gdb/gdbarch.h 2014-02-06 03:21:29.000000000 +0100
|
||||
+++ gdb-7.7/gdb/gdbarch.h 2014-02-10 18:07:42.000000000 +0100
|
||||
@@ -486,6 +486,12 @@ typedef CORE_ADDR (gdbarch_skip_main_pro
|
||||
extern CORE_ADDR gdbarch_skip_main_prologue (struct gdbarch *gdbarch, CORE_ADDR ip);
|
||||
extern void set_gdbarch_skip_main_prologue (struct gdbarch *gdbarch, gdbarch_skip_main_prologue_ftype *skip_main_prologue);
|
||||
|
||||
@ -222,11 +99,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/gdbarch.h
|
||||
typedef int (gdbarch_inner_than_ftype) (CORE_ADDR lhs, CORE_ADDR rhs);
|
||||
extern int gdbarch_inner_than (struct gdbarch *gdbarch, CORE_ADDR lhs, CORE_ADDR rhs);
|
||||
extern void set_gdbarch_inner_than (struct gdbarch *gdbarch, gdbarch_inner_than_ftype *inner_than);
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/gdbarch.sh
|
||||
Index: gdb-7.7/gdb/gdbarch.sh
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/gdbarch.sh
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/gdbarch.sh
|
||||
@@ -527,6 +527,7 @@ m:int:return_in_first_hidden_param_p:str
|
||||
--- gdb-7.7.orig/gdb/gdbarch.sh 2014-02-06 03:21:29.000000000 +0100
|
||||
+++ gdb-7.7/gdb/gdbarch.sh 2014-02-10 18:07:42.000000000 +0100
|
||||
@@ -530,6 +530,7 @@ m:int:return_in_first_hidden_param_p:str
|
||||
|
||||
m:CORE_ADDR:skip_prologue:CORE_ADDR ip:ip:0:0
|
||||
M:CORE_ADDR:skip_main_prologue:CORE_ADDR ip:ip
|
||||
@ -234,26 +111,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/gdbarch.sh
|
||||
f:int:inner_than:CORE_ADDR lhs, CORE_ADDR rhs:lhs, rhs:0:0
|
||||
m:const gdb_byte *:breakpoint_from_pc:CORE_ADDR *pcptr, int *lenptr:pcptr, lenptr::0:
|
||||
# Return the adjusted address and kind to use for Z0/Z1 packets.
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/gdbtypes.c
|
||||
Index: gdb-7.7/gdb/infrun.c
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/gdbtypes.c
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/gdbtypes.c
|
||||
@@ -111,8 +111,8 @@ const struct floatformat *floatformats_v
|
||||
&floatformat_vax_d
|
||||
};
|
||||
const struct floatformat *floatformats_ibm_long_double[BFD_ENDIAN_UNKNOWN] = {
|
||||
- &floatformat_ibm_long_double,
|
||||
- &floatformat_ibm_long_double
|
||||
+ &floatformat_ibm_long_double_big,
|
||||
+ &floatformat_ibm_long_double_little
|
||||
};
|
||||
|
||||
/* Should opaque types be resolved? */
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/infrun.c
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/infrun.c
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/infrun.c
|
||||
@@ -3151,6 +3151,10 @@ fill_in_stop_func (struct gdbarch *gdbar
|
||||
--- gdb-7.7.orig/gdb/infrun.c 2014-02-10 18:07:40.000000000 +0100
|
||||
+++ gdb-7.7/gdb/infrun.c 2014-02-10 18:07:42.000000000 +0100
|
||||
@@ -3170,6 +3170,10 @@ fill_in_stop_func (struct gdbarch *gdbar
|
||||
ecs->stop_func_start
|
||||
+= gdbarch_deprecated_function_start_offset (gdbarch);
|
||||
|
||||
@ -264,296 +126,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/infrun.c
|
||||
ecs->stop_func_filled_in = 1;
|
||||
}
|
||||
}
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/ppc64-tdep.c
|
||||
Index: gdb-7.7/gdb/ppc-linux-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/ppc64-tdep.c
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/ppc64-tdep.c
|
||||
@@ -48,21 +48,21 @@
|
||||
| (((spr) & 0x3e0) << 6) \
|
||||
| (((xo) & 0x3ff) << 1))
|
||||
|
||||
-/* If DESC is the address of a 64-bit PowerPC FreeBSD function
|
||||
- descriptor, return the descriptor's entry point. */
|
||||
+/* If PLT is the address of a 64-bit PowerPC PLT entry,
|
||||
+ return the function's entry point. */
|
||||
|
||||
static CORE_ADDR
|
||||
-ppc64_desc_entry_point (struct gdbarch *gdbarch, CORE_ADDR desc)
|
||||
+ppc64_plt_entry_point (struct gdbarch *gdbarch, CORE_ADDR plt)
|
||||
{
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
- /* The first word of the descriptor is the entry point. */
|
||||
- return (CORE_ADDR) read_memory_unsigned_integer (desc, 8, byte_order);
|
||||
+ /* The first word of the PLT entry is the function entry point. */
|
||||
+ return (CORE_ADDR) read_memory_unsigned_integer (plt, 8, byte_order);
|
||||
}
|
||||
|
||||
/* Patterns for the standard linkage functions. These are built by
|
||||
build_plt_stub in bfd/elf64-ppc.c. */
|
||||
|
||||
-/* Old PLT call stub. */
|
||||
+/* Old ELFv1 PLT call stub. */
|
||||
|
||||
static struct ppc_insn_pattern ppc64_standard_linkage1[] =
|
||||
{
|
||||
@@ -96,7 +96,7 @@ static struct ppc_insn_pattern ppc64_sta
|
||||
{ 0, 0, 0 }
|
||||
};
|
||||
|
||||
-/* Current PLT call stub to access PLT entries more than +/- 32k from r2.
|
||||
+/* ELFv1 PLT call stub to access PLT entries more than +/- 32k from r2.
|
||||
Also supports older stub with different placement of std 2,40(1),
|
||||
a stub that omits the std 2,40(1), and both versions of power7
|
||||
thread safety read barriers. Note that there are actually two more
|
||||
@@ -144,7 +144,7 @@ static struct ppc_insn_pattern ppc64_sta
|
||||
{ 0, 0, 0 }
|
||||
};
|
||||
|
||||
-/* Current PLT call stub to access PLT entries within +/- 32k of r2. */
|
||||
+/* ELFv1 PLT call stub to access PLT entries within +/- 32k of r2. */
|
||||
|
||||
static struct ppc_insn_pattern ppc64_standard_linkage3[] =
|
||||
{
|
||||
@@ -181,6 +181,128 @@ static struct ppc_insn_pattern ppc64_sta
|
||||
{ 0, 0, 0 }
|
||||
};
|
||||
|
||||
+/* ELFv1 PLT call stub to access PLT entries more than +/- 32k from r2.
|
||||
+ A more modern variant of ppc64_standard_linkage2 differing in
|
||||
+ register usage. */
|
||||
+
|
||||
+static struct ppc_insn_pattern ppc64_standard_linkage4[] =
|
||||
+ {
|
||||
+ /* std r2, 40(r1) <optional> */
|
||||
+ { -1, insn_ds (62, 2, 1, 40, 0), 1 },
|
||||
+
|
||||
+ /* addis r11, r2, <any> */
|
||||
+ { insn_d (-1, -1, -1, 0), insn_d (15, 11, 2, 0), 0 },
|
||||
+
|
||||
+ /* ld r12, <any>(r11) */
|
||||
+ { insn_ds (-1, -1, -1, 0, -1), insn_ds (58, 12, 11, 0, 0), 0 },
|
||||
+
|
||||
+ /* addi r11, r11, <any> <optional> */
|
||||
+ { insn_d (-1, -1, -1, 0), insn_d (14, 11, 11, 0), 1 },
|
||||
+
|
||||
+ /* mtctr r12 */
|
||||
+ { insn_xfx (-1, -1, -1, -1), insn_xfx (31, 12, 9, 467), 0 },
|
||||
+
|
||||
+ /* xor r2, r12, r12 <optional> */
|
||||
+ { -1, 0x7d826278, 1 },
|
||||
+
|
||||
+ /* add r11, r11, r2 <optional> */
|
||||
+ { -1, 0x7d6b1214, 1 },
|
||||
+
|
||||
+ /* ld r2, <any>(r11) */
|
||||
+ { insn_ds (-1, -1, -1, 0, -1), insn_ds (58, 2, 11, 0, 0), 0 },
|
||||
+
|
||||
+ /* ld r11, <any>(r11) <optional> */
|
||||
+ { insn_ds (-1, -1, -1, 0, -1), insn_ds (58, 11, 11, 0, 0), 1 },
|
||||
+
|
||||
+ /* bctr <optional> */
|
||||
+ { -1, 0x4e800420, 1 },
|
||||
+
|
||||
+ /* cmpldi r2, 0 <optional> */
|
||||
+ { -1, 0x28220000, 1 },
|
||||
+
|
||||
+ { 0, 0, 0 }
|
||||
+ };
|
||||
+
|
||||
+/* ELFv1 PLT call stub to access PLT entries within +/- 32k of r2.
|
||||
+ A more modern variant of ppc64_standard_linkage3 differing in
|
||||
+ register usage. */
|
||||
+
|
||||
+static struct ppc_insn_pattern ppc64_standard_linkage5[] =
|
||||
+ {
|
||||
+ /* std r2, 40(r1) <optional> */
|
||||
+ { -1, insn_ds (62, 2, 1, 40, 0), 1 },
|
||||
+
|
||||
+ /* ld r12, <any>(r2) */
|
||||
+ { insn_ds (-1, -1, -1, 0, -1), insn_ds (58, 12, 2, 0, 0), 0 },
|
||||
+
|
||||
+ /* addi r2, r2, <any> <optional> */
|
||||
+ { insn_d (-1, -1, -1, 0), insn_d (14, 2, 2, 0), 1 },
|
||||
+
|
||||
+ /* mtctr r12 */
|
||||
+ { insn_xfx (-1, -1, -1, -1), insn_xfx (31, 12, 9, 467), 0 },
|
||||
+
|
||||
+ /* xor r11, r12, r12 <optional> */
|
||||
+ { -1, 0x7d8b6278, 1 },
|
||||
+
|
||||
+ /* add r2, r2, r11 <optional> */
|
||||
+ { -1, 0x7c425a14, 1 },
|
||||
+
|
||||
+ /* ld r11, <any>(r2) <optional> */
|
||||
+ { insn_ds (-1, -1, -1, 0, -1), insn_ds (58, 11, 2, 0, 0), 1 },
|
||||
+
|
||||
+ /* ld r2, <any>(r2) */
|
||||
+ { insn_ds (-1, -1, -1, 0, -1), insn_ds (58, 2, 2, 0, 0), 0 },
|
||||
+
|
||||
+ /* bctr <optional> */
|
||||
+ { -1, 0x4e800420, 1 },
|
||||
+
|
||||
+ /* cmpldi r2, 0 <optional> */
|
||||
+ { -1, 0x28220000, 1 },
|
||||
+
|
||||
+ { 0, 0, 0 }
|
||||
+ };
|
||||
+
|
||||
+/* ELFv2 PLT call stub to access PLT entries more than +/- 32k from r2. */
|
||||
+
|
||||
+static struct ppc_insn_pattern ppc64_standard_linkage6[] =
|
||||
+ {
|
||||
+ /* std r2, 24(r1) <optional> */
|
||||
+ { -1, insn_ds (62, 2, 1, 24, 0), 1 },
|
||||
+
|
||||
+ /* addis r11, r2, <any> */
|
||||
+ { insn_d (-1, -1, -1, 0), insn_d (15, 11, 2, 0), 0 },
|
||||
+
|
||||
+ /* ld r12, <any>(r11) */
|
||||
+ { insn_ds (-1, -1, -1, 0, -1), insn_ds (58, 12, 11, 0, 0), 0 },
|
||||
+
|
||||
+ /* mtctr r12 */
|
||||
+ { insn_xfx (-1, -1, -1, -1), insn_xfx (31, 12, 9, 467), 0 },
|
||||
+
|
||||
+ /* bctr */
|
||||
+ { -1, 0x4e800420, 0 },
|
||||
+
|
||||
+ { 0, 0, 0 }
|
||||
+ };
|
||||
+
|
||||
+/* ELFv2 PLT call stub to access PLT entries within +/- 32k of r2. */
|
||||
+
|
||||
+static struct ppc_insn_pattern ppc64_standard_linkage7[] =
|
||||
+ {
|
||||
+ /* std r2, 24(r1) <optional> */
|
||||
+ { -1, insn_ds (62, 2, 1, 24, 0), 1 },
|
||||
+
|
||||
+ /* ld r12, <any>(r2) */
|
||||
+ { insn_ds (-1, -1, -1, 0, -1), insn_ds (58, 12, 2, 0, 0), 0 },
|
||||
+
|
||||
+ /* mtctr r12 */
|
||||
+ { insn_xfx (-1, -1, -1, -1), insn_xfx (31, 12, 9, 467), 0 },
|
||||
+
|
||||
+ /* bctr */
|
||||
+ { -1, 0x4e800420, 0 },
|
||||
+
|
||||
+ { 0, 0, 0 }
|
||||
+ };
|
||||
+
|
||||
/* When the dynamic linker is doing lazy symbol resolution, the first
|
||||
call to a function in another object will go like this:
|
||||
|
||||
@@ -243,16 +365,14 @@ ppc64_standard_linkage1_target (struct f
|
||||
struct gdbarch *gdbarch = get_frame_arch (frame);
|
||||
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
||||
|
||||
- /* The address of the function descriptor this linkage function
|
||||
- references. */
|
||||
- CORE_ADDR desc
|
||||
+ /* The address of the PLT entry this linkage function references. */
|
||||
+ CORE_ADDR plt
|
||||
= ((CORE_ADDR) get_frame_register_unsigned (frame,
|
||||
tdep->ppc_gp0_regnum + 2)
|
||||
+ (ppc_insn_d_field (insn[0]) << 16)
|
||||
+ ppc_insn_ds_field (insn[2]));
|
||||
|
||||
- /* The first word of the descriptor is the entry point. Return that. */
|
||||
- return ppc64_desc_entry_point (gdbarch, desc);
|
||||
+ return ppc64_plt_entry_point (gdbarch, plt);
|
||||
}
|
||||
|
||||
static CORE_ADDR
|
||||
@@ -262,16 +382,14 @@ ppc64_standard_linkage2_target (struct f
|
||||
struct gdbarch *gdbarch = get_frame_arch (frame);
|
||||
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
||||
|
||||
- /* The address of the function descriptor this linkage function
|
||||
- references. */
|
||||
- CORE_ADDR desc
|
||||
+ /* The address of the PLT entry this linkage function references. */
|
||||
+ CORE_ADDR plt
|
||||
= ((CORE_ADDR) get_frame_register_unsigned (frame,
|
||||
tdep->ppc_gp0_regnum + 2)
|
||||
+ (ppc_insn_d_field (insn[1]) << 16)
|
||||
+ ppc_insn_ds_field (insn[3]));
|
||||
|
||||
- /* The first word of the descriptor is the entry point. Return that. */
|
||||
- return ppc64_desc_entry_point (gdbarch, desc);
|
||||
+ return ppc64_plt_entry_point (gdbarch, plt);
|
||||
}
|
||||
|
||||
static CORE_ADDR
|
||||
@@ -281,15 +399,28 @@ ppc64_standard_linkage3_target (struct f
|
||||
struct gdbarch *gdbarch = get_frame_arch (frame);
|
||||
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
||||
|
||||
- /* The address of the function descriptor this linkage function
|
||||
- references. */
|
||||
- CORE_ADDR desc
|
||||
+ /* The address of the PLT entry this linkage function references. */
|
||||
+ CORE_ADDR plt
|
||||
= ((CORE_ADDR) get_frame_register_unsigned (frame,
|
||||
tdep->ppc_gp0_regnum + 2)
|
||||
+ ppc_insn_ds_field (insn[1]));
|
||||
|
||||
- /* The first word of the descriptor is the entry point. Return that. */
|
||||
- return ppc64_desc_entry_point (gdbarch, desc);
|
||||
+ return ppc64_plt_entry_point (gdbarch, plt);
|
||||
+}
|
||||
+
|
||||
+static CORE_ADDR
|
||||
+ppc64_standard_linkage4_target (struct frame_info *frame,
|
||||
+ CORE_ADDR pc, unsigned int *insn)
|
||||
+{
|
||||
+ struct gdbarch *gdbarch = get_frame_arch (frame);
|
||||
+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
||||
+
|
||||
+ CORE_ADDR plt
|
||||
+ = ((CORE_ADDR) get_frame_register_unsigned (frame, tdep->ppc_gp0_regnum + 2)
|
||||
+ + (ppc_insn_d_field (insn[1]) << 16)
|
||||
+ + ppc_insn_ds_field (insn[2]));
|
||||
+
|
||||
+ return ppc64_plt_entry_point (gdbarch, plt);
|
||||
}
|
||||
|
||||
|
||||
@@ -300,13 +431,27 @@ CORE_ADDR
|
||||
ppc64_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc)
|
||||
{
|
||||
#define MAX(a,b) ((a) > (b) ? (a) : (b))
|
||||
- unsigned int insns[MAX (MAX (ARRAY_SIZE (ppc64_standard_linkage1),
|
||||
- ARRAY_SIZE (ppc64_standard_linkage2)),
|
||||
- ARRAY_SIZE (ppc64_standard_linkage3)) - 1];
|
||||
+ unsigned int insns[MAX (MAX (MAX (ARRAY_SIZE (ppc64_standard_linkage1),
|
||||
+ ARRAY_SIZE (ppc64_standard_linkage2)),
|
||||
+ MAX (ARRAY_SIZE (ppc64_standard_linkage3),
|
||||
+ ARRAY_SIZE (ppc64_standard_linkage4))),
|
||||
+ MAX (MAX (ARRAY_SIZE (ppc64_standard_linkage5),
|
||||
+ ARRAY_SIZE (ppc64_standard_linkage6)),
|
||||
+ ARRAY_SIZE (ppc64_standard_linkage7))) - 1];
|
||||
CORE_ADDR target;
|
||||
|
||||
- if (ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage3, insns)
|
||||
- && (insns[8] != 0 || insns[9] != 0))
|
||||
+ if (ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage7, insns))
|
||||
+ pc = ppc64_standard_linkage3_target (frame, pc, insns);
|
||||
+ else if (ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage6, insns))
|
||||
+ pc = ppc64_standard_linkage4_target (frame, pc, insns);
|
||||
+ else if (ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage5, insns)
|
||||
+ && (insns[8] != 0 || insns[9] != 0))
|
||||
+ pc = ppc64_standard_linkage3_target (frame, pc, insns);
|
||||
+ else if (ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage4, insns)
|
||||
+ && (insns[9] != 0 || insns[10] != 0))
|
||||
+ pc = ppc64_standard_linkage4_target (frame, pc, insns);
|
||||
+ else if (ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage3, insns)
|
||||
+ && (insns[8] != 0 || insns[9] != 0))
|
||||
pc = ppc64_standard_linkage3_target (frame, pc, insns);
|
||||
else if (ppc_insns_match_pattern (frame, pc, ppc64_standard_linkage2, insns)
|
||||
&& (insns[10] != 0 || insns[11] != 0))
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/ppc-linux-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/ppc-linux-tdep.c
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/ppc-linux-tdep.c
|
||||
--- gdb-7.7.orig/gdb/ppc-linux-tdep.c 2014-02-06 03:21:29.000000000 +0100
|
||||
+++ gdb-7.7/gdb/ppc-linux-tdep.c 2014-02-10 18:07:42.000000000 +0100
|
||||
@@ -44,6 +44,7 @@
|
||||
#include "observer.h"
|
||||
#include "auxv.h"
|
||||
@ -606,7 +182,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/ppc-linux-tdep.c
|
||||
/* Implementation of `gdbarch_stap_is_single_operand', as defined in
|
||||
gdbarch.h. */
|
||||
|
||||
@@ -1332,13 +1370,23 @@ ppc_linux_init_abi (struct gdbarch_info
|
||||
@@ -1339,13 +1377,23 @@ ppc_linux_init_abi (struct gdbarch_info
|
||||
|
||||
if (tdep->wordsize == 8)
|
||||
{
|
||||
@ -636,10 +212,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/ppc-linux-tdep.c
|
||||
|
||||
/* Shared library handling. */
|
||||
set_gdbarch_skip_trampoline_code (gdbarch, ppc64_skip_trampoline_code);
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/ppc-sysv-tdep.c
|
||||
Index: gdb-7.7/gdb/ppc-sysv-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/ppc-sysv-tdep.c
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/ppc-sysv-tdep.c
|
||||
--- gdb-7.7.orig/gdb/ppc-sysv-tdep.c 2014-02-10 18:07:42.000000000 +0100
|
||||
+++ gdb-7.7/gdb/ppc-sysv-tdep.c 2014-02-10 18:07:42.000000000 +0100
|
||||
@@ -610,42 +610,48 @@ ppc_sysv_abi_push_dummy_call (struct gdb
|
||||
}
|
||||
|
||||
@ -1337,10 +913,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/ppc-sysv-tdep.c
|
||||
}
|
||||
return RETURN_VALUE_STRUCT_CONVENTION;
|
||||
}
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/ppc-tdep.h
|
||||
Index: gdb-7.7/gdb/ppc-tdep.h
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/ppc-tdep.h
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/ppc-tdep.h
|
||||
--- gdb-7.7.orig/gdb/ppc-tdep.h 2014-02-06 03:21:29.000000000 +0100
|
||||
+++ gdb-7.7/gdb/ppc-tdep.h 2014-02-10 18:07:42.000000000 +0100
|
||||
@@ -182,6 +182,15 @@ extern void ppc_collect_vsxregset (const
|
||||
|
||||
/* Private data that this module attaches to struct gdbarch. */
|
||||
@ -1366,10 +942,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/ppc-tdep.h
|
||||
/* How to pass vector arguments. Never set to AUTO or LAST. */
|
||||
enum powerpc_vector_abi vector_abi;
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/rs6000-tdep.c
|
||||
Index: gdb-7.7/gdb/rs6000-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/rs6000-tdep.c
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/rs6000-tdep.c
|
||||
--- gdb-7.7.orig/gdb/rs6000-tdep.c 2014-02-10 18:07:39.000000000 +0100
|
||||
+++ gdb-7.7/gdb/rs6000-tdep.c 2014-02-10 18:07:42.000000000 +0100
|
||||
@@ -48,6 +48,7 @@
|
||||
|
||||
#include "elf-bfd.h"
|
||||
@ -1378,48 +954,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/rs6000-tdep.c
|
||||
|
||||
#include "solib-svr4.h"
|
||||
#include "ppc-tdep.h"
|
||||
@@ -1667,7 +1668,19 @@ skip_prologue (struct gdbarch *gdbarch,
|
||||
continue;
|
||||
|
||||
}
|
||||
- else if ((op & 0xffff0000) == 0x60000000)
|
||||
+ else if ((op & 0xffff0000) == 0x3c4c0000
|
||||
+ || (op & 0xffff0000) == 0x3c400000
|
||||
+ || (op & 0xffff0000) == 0x38420000)
|
||||
+ {
|
||||
+ /* . 0: addis 2,12,.TOC.-0b@ha
|
||||
+ . addi 2,2,.TOC.-0b@l
|
||||
+ or
|
||||
+ . lis 2,.TOC.@ha
|
||||
+ . addi 2,2,.TOC.@l
|
||||
+ used by ELFv2 global entry points to set up r2. */
|
||||
+ continue;
|
||||
+ }
|
||||
+ else if (op == 0x60000000)
|
||||
{
|
||||
/* nop */
|
||||
/* Allow nops in the prologue, but do not consider them to
|
||||
@@ -1678,8 +1691,7 @@ skip_prologue (struct gdbarch *gdbarch,
|
||||
|
||||
}
|
||||
else if ((op & 0xffff0000) == 0x3c000000)
|
||||
- { /* addis 0,0,NUM, used
|
||||
- for >= 32k frames */
|
||||
+ { /* addis 0,0,NUM, used for >= 32k frames */
|
||||
fdata->offset = (op & 0x0000ffff) << 16;
|
||||
fdata->frameless = 0;
|
||||
r0_contains_arg = 0;
|
||||
@@ -1687,8 +1699,7 @@ skip_prologue (struct gdbarch *gdbarch,
|
||||
|
||||
}
|
||||
else if ((op & 0xffff0000) == 0x60000000)
|
||||
- { /* ori 0,0,NUM, 2nd ha
|
||||
- lf of >= 32k frames */
|
||||
+ { /* ori 0,0,NUM, 2nd half of >= 32k frames */
|
||||
fdata->offset |= (op & 0x0000ffff);
|
||||
fdata->frameless = 0;
|
||||
r0_contains_arg = 0;
|
||||
@@ -2713,10 +2724,10 @@ dfp_pseudo_register_read (struct gdbarch
|
||||
@@ -2723,10 +2724,10 @@ dfp_pseudo_register_read (struct gdbarch
|
||||
else
|
||||
{
|
||||
status = regcache_raw_read (regcache, tdep->ppc_fp0_regnum +
|
||||
@ -1432,7 +967,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/rs6000-tdep.c
|
||||
}
|
||||
|
||||
return status;
|
||||
@@ -2742,9 +2753,9 @@ dfp_pseudo_register_write (struct gdbarc
|
||||
@@ -2752,9 +2753,9 @@ dfp_pseudo_register_write (struct gdbarc
|
||||
else
|
||||
{
|
||||
regcache_raw_write (regcache, tdep->ppc_fp0_regnum +
|
||||
@ -1444,7 +979,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/rs6000-tdep.c
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2822,7 +2833,8 @@ efpr_pseudo_register_read (struct gdbarc
|
||||
@@ -2832,7 +2833,8 @@ efpr_pseudo_register_read (struct gdbarc
|
||||
int reg_index = reg_nr - tdep->ppc_efpr0_regnum;
|
||||
|
||||
/* Read the portion that overlaps the VMX register. */
|
||||
@ -1454,7 +989,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/rs6000-tdep.c
|
||||
register_size (gdbarch, reg_nr), buffer);
|
||||
}
|
||||
|
||||
@@ -2835,7 +2847,8 @@ efpr_pseudo_register_write (struct gdbar
|
||||
@@ -2845,7 +2847,8 @@ efpr_pseudo_register_write (struct gdbar
|
||||
int reg_index = reg_nr - tdep->ppc_efpr0_regnum;
|
||||
|
||||
/* Write the portion that overlaps the VMX register. */
|
||||
@ -1464,7 +999,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/rs6000-tdep.c
|
||||
register_size (gdbarch, reg_nr), buffer);
|
||||
}
|
||||
|
||||
@@ -3591,6 +3604,7 @@ rs6000_gdbarch_init (struct gdbarch_info
|
||||
@@ -3601,6 +3604,7 @@ rs6000_gdbarch_init (struct gdbarch_info
|
||||
enum auto_boolean soft_float_flag = powerpc_soft_float_global;
|
||||
int soft_float;
|
||||
enum powerpc_vector_abi vector_abi = powerpc_vector_abi_global;
|
||||
@ -1472,7 +1007,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/rs6000-tdep.c
|
||||
int have_fpu = 1, have_spe = 0, have_mq = 0, have_altivec = 0, have_dfp = 0,
|
||||
have_vsx = 0;
|
||||
int tdesc_wordsize = -1;
|
||||
@@ -3897,6 +3911,21 @@ rs6000_gdbarch_init (struct gdbarch_info
|
||||
@@ -3907,6 +3911,21 @@ rs6000_gdbarch_init (struct gdbarch_info
|
||||
}
|
||||
|
||||
#ifdef HAVE_ELF
|
||||
@ -1494,7 +1029,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/rs6000-tdep.c
|
||||
if (soft_float_flag == AUTO_BOOLEAN_AUTO && from_elf_exec)
|
||||
{
|
||||
switch (bfd_elf_get_obj_attr_int (info.abfd, OBJ_ATTR_GNU,
|
||||
@@ -3933,6 +3962,15 @@ rs6000_gdbarch_init (struct gdbarch_info
|
||||
@@ -3943,6 +3962,15 @@ rs6000_gdbarch_init (struct gdbarch_info
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -1510,7 +1045,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/rs6000-tdep.c
|
||||
if (soft_float_flag == AUTO_BOOLEAN_TRUE)
|
||||
soft_float = 1;
|
||||
else if (soft_float_flag == AUTO_BOOLEAN_FALSE)
|
||||
@@ -3975,6 +4013,8 @@ rs6000_gdbarch_init (struct gdbarch_info
|
||||
@@ -3985,6 +4013,8 @@ rs6000_gdbarch_init (struct gdbarch_info
|
||||
meaningful, because 64-bit CPUs can run in 32-bit mode. So, perform
|
||||
separate word size check. */
|
||||
tdep = gdbarch_tdep (arches->gdbarch);
|
||||
@ -1519,7 +1054,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/rs6000-tdep.c
|
||||
if (tdep && tdep->soft_float != soft_float)
|
||||
continue;
|
||||
if (tdep && tdep->vector_abi != vector_abi)
|
||||
@@ -3997,6 +4037,7 @@ rs6000_gdbarch_init (struct gdbarch_info
|
||||
@@ -4007,6 +4037,7 @@ rs6000_gdbarch_init (struct gdbarch_info
|
||||
|
||||
tdep = XCALLOC (1, struct gdbarch_tdep);
|
||||
tdep->wordsize = wordsize;
|
||||
@ -1527,11 +1062,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/rs6000-tdep.c
|
||||
tdep->soft_float = soft_float;
|
||||
tdep->vector_abi = vector_abi;
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/symtab.c
|
||||
Index: gdb-7.7/gdb/symtab.c
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/symtab.c
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/symtab.c
|
||||
@@ -2882,6 +2882,8 @@ skip_prologue_sal (struct symtab_and_lin
|
||||
--- gdb-7.7.orig/gdb/symtab.c 2014-02-10 18:07:39.000000000 +0100
|
||||
+++ gdb-7.7/gdb/symtab.c 2014-02-10 18:07:42.000000000 +0100
|
||||
@@ -2941,6 +2941,8 @@ skip_prologue_sal (struct symtab_and_lin
|
||||
|
||||
/* Skip "first line" of function (which is actually its prologue). */
|
||||
pc += gdbarch_deprecated_function_start_offset (gdbarch);
|
||||
@ -1540,10 +1075,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/symtab.c
|
||||
if (skip)
|
||||
pc = gdbarch_skip_prologue (gdbarch, pc);
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/altivec-regs.exp
|
||||
Index: gdb-7.7/gdb/testsuite/gdb.arch/altivec-regs.exp
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.arch/altivec-regs.exp
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/altivec-regs.exp
|
||||
--- gdb-7.7.orig/gdb/testsuite/gdb.arch/altivec-regs.exp 2014-02-06 03:21:29.000000000 +0100
|
||||
+++ gdb-7.7/gdb/testsuite/gdb.arch/altivec-regs.exp 2014-02-10 18:07:42.000000000 +0100
|
||||
@@ -118,7 +118,7 @@ gdb_test "info reg vscr" "vscr.*0x1\t1"
|
||||
if {$endianness == "big"} {
|
||||
set decimal_vector ".uint128 = 0x00000001000000010000000100000001, v4_float = .1.*e-45, 1.*e-45, 1.*e-45, 1.*e-45., v4_int32 = .1, 1, 1, 1., v8_int16 = .0, 1, 0, 1, 0, 1, 0, 1., v16_int8 = .0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1.."
|
||||
@ -1553,10 +1088,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/altivec-regs.exp
|
||||
}
|
||||
|
||||
for {set i 0} {$i < 32} {incr i 1} {
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp
|
||||
Index: gdb-7.7/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp
|
||||
--- gdb-7.7.orig/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp 2014-02-06 03:21:29.000000000 +0100
|
||||
+++ gdb-7.7/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp 2014-02-10 18:07:42.000000000 +0100
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
# Testcase for ppc decimal128 pseudo-registers.
|
||||
@ -1566,10 +1101,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp
|
||||
verbose "Skipping powerpc Decimal128 pseudo-registers testcase."
|
||||
return
|
||||
}
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/vsx-regs.exp
|
||||
Index: gdb-7.7/gdb/testsuite/gdb.arch/vsx-regs.exp
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.arch/vsx-regs.exp
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/vsx-regs.exp
|
||||
--- gdb-7.7.orig/gdb/testsuite/gdb.arch/vsx-regs.exp 2014-02-06 03:21:29.000000000 +0100
|
||||
+++ gdb-7.7/gdb/testsuite/gdb.arch/vsx-regs.exp 2014-02-10 18:07:42.000000000 +0100
|
||||
@@ -58,19 +58,46 @@ if ![runto_main] then {
|
||||
gdb_suppress_tests
|
||||
}
|
||||
@ -1623,10 +1158,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/vsx-regs.exp
|
||||
|
||||
set float_register ".raw 0xdeadbeefdeadbeef."
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/sigbpt.exp
|
||||
Index: gdb-7.7/gdb/testsuite/gdb.base/sigbpt.exp
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/sigbpt.exp
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/sigbpt.exp
|
||||
--- gdb-7.7.orig/gdb/testsuite/gdb.base/sigbpt.exp 2014-02-06 03:21:29.000000000 +0100
|
||||
+++ gdb-7.7/gdb/testsuite/gdb.base/sigbpt.exp 2014-02-10 18:07:42.000000000 +0100
|
||||
@@ -76,7 +76,7 @@ gdb_test "break keeper"
|
||||
set bowler_addrs bowler
|
||||
set segv_addr none
|
||||
@ -1636,10 +1171,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/sigbpt.exp
|
||||
set test "stepping to fault"
|
||||
set signame "SIGSEGV"
|
||||
gdb_test_multiple "stepi" "$test" {
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/step-bt.exp
|
||||
Index: gdb-7.7/gdb/testsuite/gdb.base/step-bt.exp
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/step-bt.exp
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/step-bt.exp
|
||||
--- gdb-7.7.orig/gdb/testsuite/gdb.base/step-bt.exp 2014-01-08 10:23:36.000000000 +0100
|
||||
+++ gdb-7.7/gdb/testsuite/gdb.base/step-bt.exp 2014-02-10 18:07:42.000000000 +0100
|
||||
@@ -24,7 +24,7 @@ if {[prepare_for_testing $testfile.exp $
|
||||
return -1
|
||||
}
|
||||
@ -1649,10 +1184,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/step-bt.exp
|
||||
"Breakpoint.*at.* file .*$srcfile, line .*" \
|
||||
"breakpoint at first instruction of hello()"
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/include/elf/common.h
|
||||
Index: gdb-7.7/include/elf/common.h
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/include/elf/common.h
|
||||
+++ gdb-7.6.50.20130731-cvs/include/elf/common.h
|
||||
--- gdb-7.7.orig/include/elf/common.h 2014-02-06 03:21:29.000000000 +0100
|
||||
+++ gdb-7.7/include/elf/common.h 2014-02-10 18:07:42.000000000 +0100
|
||||
@@ -959,6 +959,7 @@
|
||||
#define AT_BASE_PLATFORM 24 /* String identifying real platform,
|
||||
may differ from AT_PLATFORM. */
|
||||
@ -1661,112 +1196,3 @@ Index: gdb-7.6.50.20130731-cvs/include/elf/common.h
|
||||
#define AT_EXECFN 31 /* Filename of executable. */
|
||||
/* Pointer to the global system page used for system calls and other
|
||||
nice things. */
|
||||
Index: gdb-7.6.50.20130731-cvs/include/floatformat.h
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/include/floatformat.h
|
||||
+++ gdb-7.6.50.20130731-cvs/include/floatformat.h
|
||||
@@ -128,7 +128,8 @@ extern const struct floatformat floatfor
|
||||
extern const struct floatformat floatformat_ia64_quad_big;
|
||||
extern const struct floatformat floatformat_ia64_quad_little;
|
||||
/* IBM long double (double+double). */
|
||||
-extern const struct floatformat floatformat_ibm_long_double;
|
||||
+extern const struct floatformat floatformat_ibm_long_double_big;
|
||||
+extern const struct floatformat floatformat_ibm_long_double_little;
|
||||
|
||||
/* Convert from FMT to a double.
|
||||
FROM is the address of the extended float.
|
||||
Index: gdb-7.6.50.20130731-cvs/libiberty/floatformat.c
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/libiberty/floatformat.c
|
||||
+++ gdb-7.6.50.20130731-cvs/libiberty/floatformat.c
|
||||
@@ -371,14 +371,23 @@ floatformat_ibm_long_double_is_valid (co
|
||||
}
|
||||
}
|
||||
|
||||
-const struct floatformat floatformat_ibm_long_double =
|
||||
+const struct floatformat floatformat_ibm_long_double_big =
|
||||
{
|
||||
floatformat_big, 128, 0, 1, 11, 1023, 2047, 12, 52,
|
||||
floatformat_intbit_no,
|
||||
- "floatformat_ibm_long_double",
|
||||
+ "floatformat_ibm_long_double_big",
|
||||
floatformat_ibm_long_double_is_valid,
|
||||
&floatformat_ieee_double_big
|
||||
};
|
||||
+
|
||||
+const struct floatformat floatformat_ibm_long_double_little =
|
||||
+{
|
||||
+ floatformat_little, 128, 0, 1, 11, 1023, 2047, 12, 52,
|
||||
+ floatformat_intbit_no,
|
||||
+ "floatformat_ibm_long_double_little",
|
||||
+ floatformat_ibm_long_double_is_valid,
|
||||
+ &floatformat_ieee_double_little
|
||||
+};
|
||||
|
||||
|
||||
#ifndef min
|
||||
Index: gdb-7.6.50.20130731-cvs/include/elf/ppc64.h
|
||||
===================================================================
|
||||
--- gdb-7.6.50.20130731-cvs.orig/include/elf/ppc64.h
|
||||
+++ gdb-7.6.50.20130731-cvs/include/elf/ppc64.h
|
||||
@@ -164,6 +164,60 @@ END_RELOC_NUMBERS (R_PPC64_max)
|
||||
#define IS_PPC64_TLS_RELOC(R) \
|
||||
((R) >= R_PPC64_TLS && (R) <= R_PPC64_DTPREL16_HIGHESTA)
|
||||
|
||||
+
|
||||
+/* e_flags bits specifying ABI.
|
||||
+ 1 for original function descriptor using ABI,
|
||||
+ 2 for revised ABI without function descriptors,
|
||||
+ 0 for unspecified or not using any features affected by the differences. */
|
||||
+#define EF_PPC64_ABI 3
|
||||
+
|
||||
+/* The ELFv2 ABI uses three bits in the symbol st_other field of a
|
||||
+ function definition to specify the number of instructions between a
|
||||
+ function's global entry point and local entry point.
|
||||
+ The global entry point is used when it is necessary to set up the
|
||||
+ toc pointer (r2) for the function. Callers must enter the global
|
||||
+ entry point with r12 set to the global entry point address. On
|
||||
+ return from the function, r2 may have a different value to that
|
||||
+ which it had on entry.
|
||||
+ The local entry point is used when r2 is known to already be valid
|
||||
+ for the function. There is no requirement on r12 when using the
|
||||
+ local entry point, and on return r2 will contain the same value as
|
||||
+ at entry.
|
||||
+ A value of zero in these bits means that the function has a single
|
||||
+ entry point with no requirement on r12 or r2, and that on return r2
|
||||
+ will contain the same value as at entry.
|
||||
+ Values of one and seven are reserved. */
|
||||
+#define STO_PPC64_LOCAL_BIT 5
|
||||
+#define STO_PPC64_LOCAL_MASK (7 << STO_PPC64_LOCAL_BIT)
|
||||
+
|
||||
+// 3 bit other field to bytes.
|
||||
+static inline unsigned int
|
||||
+ppc64_decode_local_entry(unsigned int other)
|
||||
+{
|
||||
+ return ((1 << other) >> 2) << 2;
|
||||
+}
|
||||
+
|
||||
+// bytes to field value.
|
||||
+static inline unsigned int
|
||||
+ppc64_encode_local_entry(unsigned int val)
|
||||
+{
|
||||
+ return (val >= 4 * 4
|
||||
+ ? (val >= 8 * 4
|
||||
+ ? (val >= 16 * 4 ? 6 : 5)
|
||||
+ : 4)
|
||||
+ : (val >= 2 * 4
|
||||
+ ? 3
|
||||
+ : (val >= 1 * 4 ? 2 : 0)));
|
||||
+}
|
||||
+
|
||||
+/* st_other to number of bytes. */
|
||||
+#define PPC64_LOCAL_ENTRY_OFFSET(other) \
|
||||
+ ppc64_decode_local_entry (((other) & STO_PPC64_LOCAL_MASK) \
|
||||
+ >> STO_PPC64_LOCAL_BIT)
|
||||
+/* number of bytes to st_other. */
|
||||
+#define PPC64_SET_LOCAL_ENTRY_OFFSET(val) \
|
||||
+ ppc64_encode_local_entry (val) << STO_PPC64_LOCAL_BIT
|
||||
+
|
||||
/* Specify the start of the .glink section. */
|
||||
#define DT_PPC64_GLINK DT_LOPROC
|
||||
|
||||
|
65
gdb-python-stacksmash.patch
Normal file
65
gdb-python-stacksmash.patch
Normal file
@ -0,0 +1,65 @@
|
||||
http://sourceware.org/ml/gdb-patches/2014-02/msg00216.html
|
||||
Subject: [patch] [python] Re: GDB crashing on gdb.python/py-linetable.exp
|
||||
|
||||
|
||||
--7AUc2qLy4jB3hD7Z
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
Content-Disposition: inline
|
||||
|
||||
On Fri, 07 Feb 2014 11:45:04 +0100, Phil Muldoon wrote:
|
||||
> I've tried most of the morning to reproduce this on Fedora 19, with
|
||||
> -lmcheck and after several thousand test runs I can't reproduce.
|
||||
|
||||
Due to the requirement of specific stack layout I found it is reproducible for
|
||||
me on Fedora 20 x86_64 with (it sure could be reduced):
|
||||
|
||||
CFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic" LDFLAGS="-static-libstdc++ -static-libgcc -Wl,-z,relro" ./configure --with-system-readline;make
|
||||
(ulimit -c unlimited;/usr/bin/runtest gdb.python/py-linetable.exp)
|
||||
|
||||
The fix is obvious, I will check it in.
|
||||
|
||||
- int py_line;
|
||||
+ gdb_py_longest py_line;
|
||||
[...]
|
||||
|
||||
|
||||
|
||||
Regards,
|
||||
Jan
|
||||
|
||||
--7AUc2qLy4jB3hD7Z
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
Content-Disposition: inline; filename=1
|
||||
|
||||
gdb/
|
||||
2014-02-07 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Fix Python stack corruption.
|
||||
* python/py-linetable.c (ltpy_get_pcs_for_line, ltpy_has_line): Use
|
||||
gdb_py_longest.
|
||||
|
||||
diff --git a/gdb/python/py-linetable.c b/gdb/python/py-linetable.c
|
||||
index e83d46d..8b5362b 100644
|
||||
--- a/gdb/python/py-linetable.c
|
||||
+++ b/gdb/python/py-linetable.c
|
||||
@@ -168,7 +168,7 @@ static PyObject *
|
||||
ltpy_get_pcs_for_line (PyObject *self, PyObject *args)
|
||||
{
|
||||
struct symtab *symtab;
|
||||
- int py_line;
|
||||
+ gdb_py_longest py_line;
|
||||
struct linetable_entry *best_entry = NULL;
|
||||
linetable_entry_object *result;
|
||||
VEC (CORE_ADDR) *pcs = NULL;
|
||||
@@ -200,7 +200,7 @@ static PyObject *
|
||||
ltpy_has_line (PyObject *self, PyObject *args)
|
||||
{
|
||||
struct symtab *symtab;
|
||||
- int py_line;
|
||||
+ gdb_py_longest py_line;
|
||||
int index;
|
||||
|
||||
LTPY_REQUIRE_VALID (self, symtab);
|
||||
|
||||
--7AUc2qLy4jB3hD7Z--
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -52,10 +52,10 @@ Content-Type: text/x-patch
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Content-Disposition: attachment; filename=bitpos-ensure-size_t.patch
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/alpha-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/alpha-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/alpha-tdep.c 2013-01-18 23:33:59.277047324 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/alpha-tdep.c 2013-01-18 23:34:02.678051846 +0100
|
||||
--- gdb-7.6.90.20140127.orig/gdb/alpha-tdep.c 2014-02-06 18:18:51.005616676 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/alpha-tdep.c 2014-02-06 18:18:53.671621349 +0100
|
||||
@@ -414,6 +414,13 @@ alpha_push_dummy_call (struct gdbarch *g
|
||||
accumulate_size = 0;
|
||||
else
|
||||
@ -70,11 +70,11 @@ Index: gdb-7.5.50.20130118/gdb/alpha-tdep.c
|
||||
sp -= accumulate_size;
|
||||
|
||||
/* Keep sp aligned to a multiple of 16 as the ABI requires. */
|
||||
Index: gdb-7.5.50.20130118/gdb/cp-valprint.c
|
||||
Index: gdb-7.6.90.20140127/gdb/cp-valprint.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/cp-valprint.c 2013-01-18 23:33:59.278047326 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/cp-valprint.c 2013-01-18 23:34:02.679051848 +0100
|
||||
@@ -540,6 +540,8 @@ cp_print_value (struct type *type, struc
|
||||
--- gdb-7.6.90.20140127.orig/gdb/cp-valprint.c 2014-02-06 18:18:51.006616677 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/cp-valprint.c 2014-02-06 18:18:53.671621349 +0100
|
||||
@@ -537,6 +537,8 @@ cp_print_value (struct type *type, struc
|
||||
gdb_byte *buf;
|
||||
struct cleanup *back_to;
|
||||
|
||||
@ -83,11 +83,11 @@ Index: gdb-7.5.50.20130118/gdb/cp-valprint.c
|
||||
buf = xmalloc (TYPE_LENGTH (baseclass));
|
||||
back_to = make_cleanup (xfree, buf);
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/dwarf2loc.c
|
||||
Index: gdb-7.6.90.20140127/gdb/dwarf2loc.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/dwarf2loc.c 2013-01-18 23:33:59.280047332 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/dwarf2loc.c 2013-01-18 23:34:02.680051851 +0100
|
||||
@@ -1784,6 +1784,8 @@ read_pieced_value (struct value *v)
|
||||
--- gdb-7.6.90.20140127.orig/gdb/dwarf2loc.c 2014-02-06 18:18:51.007616678 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/dwarf2loc.c 2014-02-06 18:18:53.672621293 +0100
|
||||
@@ -1821,6 +1821,8 @@ read_pieced_value (struct value *v)
|
||||
|
||||
this_size = (this_size_bits + source_offset_bits % 8 + 7) / 8;
|
||||
source_offset = source_offset_bits / 8;
|
||||
@ -96,7 +96,7 @@ Index: gdb-7.5.50.20130118/gdb/dwarf2loc.c
|
||||
if (buffer_size < this_size)
|
||||
{
|
||||
buffer_size = this_size;
|
||||
@@ -1975,6 +1977,7 @@ write_pieced_value (struct value *to, st
|
||||
@@ -2012,6 +2014,7 @@ write_pieced_value (struct value *to, st
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -104,11 +104,11 @@ Index: gdb-7.5.50.20130118/gdb/dwarf2loc.c
|
||||
if (buffer_size < this_size)
|
||||
{
|
||||
buffer_size = this_size;
|
||||
Index: gdb-7.5.50.20130118/gdb/findcmd.c
|
||||
Index: gdb-7.6.90.20140127/gdb/findcmd.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/findcmd.c 2013-01-18 23:33:59.280047332 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/findcmd.c 2013-01-18 23:34:02.680051851 +0100
|
||||
@@ -187,6 +187,7 @@ parse_find_args (char *args, ULONGEST *m
|
||||
--- gdb-7.6.90.20140127.orig/gdb/findcmd.c 2014-02-06 18:18:51.008616679 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/findcmd.c 2014-02-06 18:18:53.673621239 +0100
|
||||
@@ -185,6 +185,7 @@ parse_find_args (char *args, ULONGEST *m
|
||||
size_t current_offset = pattern_buf_end - pattern_buf;
|
||||
|
||||
pattern_buf_size = pattern_buf_size_need * 2;
|
||||
@ -116,11 +116,11 @@ Index: gdb-7.5.50.20130118/gdb/findcmd.c
|
||||
pattern_buf = xrealloc (pattern_buf, pattern_buf_size);
|
||||
pattern_buf_end = pattern_buf + current_offset;
|
||||
}
|
||||
Index: gdb-7.5.50.20130118/gdb/p-valprint.c
|
||||
Index: gdb-7.6.90.20140127/gdb/p-valprint.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/p-valprint.c 2013-01-18 23:33:59.281047334 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/p-valprint.c 2013-01-18 23:34:02.680051851 +0100
|
||||
@@ -797,6 +797,7 @@ pascal_object_print_value (struct type *
|
||||
--- gdb-7.6.90.20140127.orig/gdb/p-valprint.c 2014-02-06 18:18:51.008616679 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/p-valprint.c 2014-02-06 18:18:53.673621239 +0100
|
||||
@@ -798,6 +798,7 @@ pascal_object_print_value (struct type *
|
||||
gdb_byte *buf;
|
||||
struct cleanup *back_to;
|
||||
|
||||
@ -128,11 +128,11 @@ Index: gdb-7.5.50.20130118/gdb/p-valprint.c
|
||||
buf = xmalloc (TYPE_LENGTH (baseclass));
|
||||
back_to = make_cleanup (xfree, buf);
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/utils.c
|
||||
Index: gdb-7.6.90.20140127/gdb/utils.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/utils.c 2013-01-18 23:33:59.282047336 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/utils.c 2013-01-18 23:34:02.681051854 +0100
|
||||
@@ -3219,6 +3219,18 @@ host_address_to_string (const void *addr
|
||||
--- gdb-7.6.90.20140127.orig/gdb/utils.c 2014-02-06 18:18:51.008616679 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/utils.c 2014-02-06 18:18:53.674621186 +0100
|
||||
@@ -3169,6 +3169,18 @@ host_address_to_string (const void *addr
|
||||
return str;
|
||||
}
|
||||
|
||||
@ -151,11 +151,11 @@ Index: gdb-7.5.50.20130118/gdb/utils.c
|
||||
char *
|
||||
gdb_realpath (const char *filename)
|
||||
{
|
||||
Index: gdb-7.5.50.20130118/gdb/valops.c
|
||||
Index: gdb-7.6.90.20140127/gdb/valops.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/valops.c 2013-01-18 23:33:59.283047338 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/valops.c 2013-01-18 23:34:02.682051856 +0100
|
||||
@@ -2369,6 +2369,7 @@ search_struct_method (const char *name,
|
||||
--- gdb-7.6.90.20140127.orig/gdb/valops.c 2014-02-06 18:18:51.009616680 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/valops.c 2014-02-06 18:18:53.675621135 +0100
|
||||
@@ -2184,6 +2184,7 @@ search_struct_method (const char *name,
|
||||
struct cleanup *back_to;
|
||||
CORE_ADDR address;
|
||||
|
||||
@ -163,11 +163,11 @@ Index: gdb-7.5.50.20130118/gdb/valops.c
|
||||
tmp = xmalloc (TYPE_LENGTH (baseclass));
|
||||
back_to = make_cleanup (xfree, tmp);
|
||||
address = value_address (*arg1p);
|
||||
Index: gdb-7.5.50.20130118/gdb/value.c
|
||||
Index: gdb-7.6.90.20140127/gdb/value.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/value.c 2013-01-18 23:33:59.285047342 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/value.c 2013-01-18 23:34:02.683051858 +0100
|
||||
@@ -663,6 +663,7 @@ allocate_value_lazy (struct type *type)
|
||||
--- gdb-7.6.90.20140127.orig/gdb/value.c 2014-02-06 18:18:51.010616681 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/value.c 2014-02-06 18:19:10.261637398 +0100
|
||||
@@ -822,6 +822,7 @@ allocate_value_lazy (struct type *type)
|
||||
description correctly. */
|
||||
check_typedef (type);
|
||||
|
||||
@ -175,8 +175,8 @@ Index: gdb-7.5.50.20130118/gdb/value.c
|
||||
val = (struct value *) xzalloc (sizeof (struct value));
|
||||
val->contents = NULL;
|
||||
val->next = all_values;
|
||||
@@ -694,6 +695,8 @@ allocate_value_lazy (struct type *type)
|
||||
void
|
||||
@@ -853,6 +854,8 @@ allocate_value_lazy (struct type *type)
|
||||
static void
|
||||
allocate_value_contents (struct value *val)
|
||||
{
|
||||
+ ulongest_fits_host_or_error (TYPE_LENGTH (val->enclosing_type));
|
||||
@ -184,7 +184,7 @@ Index: gdb-7.5.50.20130118/gdb/value.c
|
||||
if (!val->contents)
|
||||
val->contents = (gdb_byte *) xzalloc (TYPE_LENGTH (val->enclosing_type));
|
||||
}
|
||||
@@ -2672,8 +2675,12 @@ void
|
||||
@@ -2854,8 +2857,12 @@ void
|
||||
set_value_enclosing_type (struct value *val, struct type *new_encl_type)
|
||||
{
|
||||
if (TYPE_LENGTH (new_encl_type) > TYPE_LENGTH (value_enclosing_type (val)))
|
||||
@ -199,10 +199,10 @@ Index: gdb-7.5.50.20130118/gdb/value.c
|
||||
|
||||
val->enclosing_type = new_encl_type;
|
||||
}
|
||||
Index: gdb-7.5.50.20130118/gdb/vax-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/vax-tdep.c
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/vax-tdep.c 2013-01-18 23:34:02.683051858 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/vax-tdep.c 2013-01-18 23:34:34.950094198 +0100
|
||||
--- gdb-7.6.90.20140127.orig/gdb/vax-tdep.c 2014-02-06 18:18:51.370617068 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/vax-tdep.c 2014-02-06 18:18:53.676621086 +0100
|
||||
@@ -223,6 +223,7 @@ vax_return_value (struct gdbarch *gdbarc
|
||||
ULONGEST addr;
|
||||
|
||||
@ -211,11 +211,11 @@ Index: gdb-7.5.50.20130118/gdb/vax-tdep.c
|
||||
read_memory (addr, readbuf, len);
|
||||
}
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/defs.h
|
||||
Index: gdb-7.6.90.20140127/gdb/defs.h
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/defs.h 2013-01-18 23:34:02.684051860 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/defs.h 2013-01-18 23:34:14.238067193 +0100
|
||||
@@ -801,4 +801,6 @@ enum block_enum
|
||||
--- gdb-7.6.90.20140127.orig/gdb/defs.h 2014-02-06 18:18:51.370617068 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/defs.h 2014-02-06 18:18:53.677621038 +0100
|
||||
@@ -768,4 +768,6 @@ enum block_enum
|
||||
|
||||
#include "utils.h"
|
||||
|
||||
|
@ -71,7 +71,7 @@ gdb/ChangeLog:
|
||||
(remote_remove_watchpoint): Likewise.
|
||||
(remote_watchpoint_addr_within_range): Expand parameter LENGTH
|
||||
to LONGEST.
|
||||
* s390-nat.c (s390_insert_watchpoint): Expand parameter LEN to
|
||||
* s390-linux-nat.c (s390_insert_watchpoint): Expand parameter LEN to
|
||||
LONGEST.
|
||||
(s390_remove_watchpoint): Likewise.
|
||||
* target.c (update_current_target): Expand parameter LEN for
|
||||
@ -493,10 +493,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/remote.c
|
||||
putpkt (rs->buf);
|
||||
getpkt (&rs->buf, &rs->buf_size, 0);
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/s390-nat.c
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/s390-linux-nat.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.50.20130731-cvs.orig/gdb/s390-linux-nat.c 2013-08-02 16:42:29.578632913 +0200
|
||||
+++ gdb-7.6.50.20130731-cvs/gdb/s390-linux-nat.c 2013-08-02 16:42:34.103639116 +0200
|
||||
@@ -516,7 +516,7 @@ s390_fix_watch_points (struct lwp_info *
|
||||
}
|
||||
|
||||
|
@ -96,7 +96,7 @@ gdb/ChangeLog
|
||||
LEN to LONGEST.
|
||||
(ran_out_of_registers_for_arguments): Expand SPACE, JJ to
|
||||
LONGEST.
|
||||
* s390-tdep.c (s390_value_from_register): Expand LEN to LONGEST.
|
||||
* s390-linux-tdep.c (s390_value_from_register): Expand LEN to LONGEST.
|
||||
(is_power_of_two): Expand parameter N to ULONGEST.
|
||||
(s390_push_dummy_call): Expand LENGTH to ULONGEST.
|
||||
* score-tdep.c (score_push_dummy_call): Expand ARGLEN to
|
||||
@ -137,10 +137,10 @@ Content-Type: text/x-patch
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Content-Disposition: attachment; filename=bitpos-tdep.patch
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/alpha-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/alpha-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/alpha-tdep.c 2014-02-06 18:20:52.970747716 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/alpha-tdep.c 2014-02-06 18:20:57.294752362 +0100
|
||||
@@ -299,18 +299,18 @@ alpha_push_dummy_call (struct gdbarch *g
|
||||
{
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
@ -184,22 +184,22 @@ Index: gdb-7.6.50.20130731-cvs/gdb/alpha-tdep.c
|
||||
memcpy (arg_reg_buffer + offset, contents, tlen);
|
||||
offset += tlen;
|
||||
contents += tlen;
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/amd64-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/amd64-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/amd64-tdep.c 2014-02-06 18:20:52.972747718 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/amd64-tdep.c 2014-02-06 18:21:51.106810814 +0100
|
||||
@@ -633,7 +633,7 @@ amd64_return_value (struct gdbarch *gdba
|
||||
gdb_byte *readbuf, const gdb_byte *writebuf)
|
||||
{
|
||||
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
||||
enum amd64_reg_class class[2];
|
||||
- int len = TYPE_LENGTH (type);
|
||||
+ LONGEST len = TYPE_LENGTH (type);
|
||||
static int integer_regnum[] = { AMD64_RAX_REGNUM, AMD64_RDX_REGNUM };
|
||||
static int sse_regnum[] = { AMD64_XMM0_REGNUM, AMD64_XMM1_REGNUM };
|
||||
int integer_reg = 0;
|
||||
@@ -769,8 +769,8 @@ amd64_push_arguments (struct regcache *r
|
||||
that register number (or a negative value otherwise). */
|
||||
int *arg_addr_regno = alloca (nargs * sizeof (int));
|
||||
@@ -784,8 +784,8 @@ amd64_push_arguments (struct regcache *r
|
||||
};
|
||||
struct value **stack_args = alloca (nargs * sizeof (struct value *));
|
||||
int num_stack_args = 0;
|
||||
- int num_elements = 0;
|
||||
- int element = 0;
|
||||
@ -208,7 +208,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/amd64-tdep.c
|
||||
int integer_reg = 0;
|
||||
int sse_reg = 0;
|
||||
int i;
|
||||
@@ -784,7 +784,7 @@ amd64_push_arguments (struct regcache *r
|
||||
@@ -797,7 +797,7 @@ amd64_push_arguments (struct regcache *r
|
||||
for (i = 0; i < nargs; i++)
|
||||
{
|
||||
struct type *type = value_type (args[i]);
|
||||
@ -217,11 +217,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/amd64-tdep.c
|
||||
enum amd64_reg_class class[2];
|
||||
int needed_integer_regs = 0;
|
||||
int needed_sse_regs = 0;
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/amd64-windows-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/amd64-windows-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/amd64-windows-tdep.c 2014-02-06 18:20:52.973747720 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/amd64-windows-tdep.c 2014-02-06 18:20:57.296752364 +0100
|
||||
@@ -288,7 +288,7 @@ amd64_windows_return_value (struct gdbar
|
||||
struct type *type, struct regcache *regcache,
|
||||
gdb_byte *readbuf, const gdb_byte *writebuf)
|
||||
{
|
||||
@ -230,10 +230,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/amd64-windows-tdep.c
|
||||
int regnum = -1;
|
||||
|
||||
/* See if our value is returned through a register. If it is, then
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/arm-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/arm-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/arm-tdep.c 2014-02-06 18:20:52.978747725 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/arm-tdep.c 2014-02-06 18:20:57.299752367 +0100
|
||||
@@ -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. */
|
||||
@ -308,11 +308,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/arm-tdep.c
|
||||
struct type *arg_type;
|
||||
struct type *target_type;
|
||||
enum type_code typecode;
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/avr-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/avr-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/avr-tdep.c 2014-02-06 18:20:52.980747727 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/avr-tdep.c 2014-02-06 18:20:57.299752367 +0100
|
||||
@@ -1167,13 +1167,14 @@ avr_dummy_id (struct gdbarch *gdbarch, s
|
||||
|
||||
struct stack_item
|
||||
{
|
||||
@ -329,7 +329,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/avr-tdep.c
|
||||
{
|
||||
struct stack_item *si;
|
||||
si = xmalloc (sizeof (struct stack_item));
|
||||
@@ -1265,12 +1266,12 @@ avr_push_dummy_call (struct gdbarch *gdb
|
||||
@@ -1262,12 +1263,12 @@ avr_push_dummy_call (struct gdbarch *gdb
|
||||
|
||||
for (i = 0; i < nargs; i++)
|
||||
{
|
||||
@ -345,10 +345,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/avr-tdep.c
|
||||
|
||||
/* Calculate the potential last register needed. */
|
||||
last_regnum = regnum - (len + (len & 1));
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/bfin-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/bfin-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/bfin-tdep.c 2014-02-06 18:20:52.980747727 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/bfin-tdep.c 2014-02-06 18:20:57.300752368 +0100
|
||||
@@ -506,7 +506,7 @@ bfin_push_dummy_call (struct gdbarch *gd
|
||||
gdb_byte buf[4];
|
||||
int i;
|
||||
@ -367,11 +367,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/bfin-tdep.c
|
||||
|
||||
sp -= container_len;
|
||||
write_memory (sp, value_contents_writeable (args[i]), container_len);
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/cris-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/cris-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/cris-tdep.c 2014-02-06 18:20:52.981747728 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/cris-tdep.c 2014-02-06 18:20:57.301752369 +0100
|
||||
@@ -665,13 +665,13 @@ static CORE_ADDR cris_unwind_sp (struct
|
||||
|
||||
struct stack_item
|
||||
{
|
||||
@ -387,7 +387,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/cris-tdep.c
|
||||
{
|
||||
struct stack_item *si;
|
||||
si = xmalloc (sizeof (struct stack_item));
|
||||
@@ -849,13 +849,13 @@ cris_push_dummy_call (struct gdbarch *gd
|
||||
@@ -844,13 +844,13 @@ cris_push_dummy_call (struct gdbarch *gd
|
||||
|
||||
for (argnum = 0; argnum < nargs; argnum++)
|
||||
{
|
||||
@ -405,10 +405,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/cris-tdep.c
|
||||
|
||||
/* How may registers worth of storage do we need for this argument? */
|
||||
reg_demand = (len / 4) + (len % 4 != 0 ? 1 : 0);
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/h8300-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/h8300-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/h8300-tdep.c 2014-02-06 18:20:52.981747728 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/h8300-tdep.c 2014-02-06 18:20:57.301752369 +0100
|
||||
@@ -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.6.50.20130731-cvs/gdb/h8300-tdep.c
|
||||
|
||||
for (offset = 0; offset < padded_len; offset += wordsize)
|
||||
{
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/hppa-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/hppa-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/hppa-tdep.c 2014-02-06 18:20:52.982747729 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/hppa-tdep.c 2014-02-06 18:20:57.302752371 +0100
|
||||
@@ -961,7 +961,7 @@ hppa64_push_dummy_call (struct gdbarch *
|
||||
{
|
||||
struct value *arg = args[i];
|
||||
@ -463,11 +463,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/hppa-tdep.c
|
||||
int regnum, offset;
|
||||
|
||||
if (len > 16)
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/i386-darwin-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/i386-darwin-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/i386-darwin-tdep.c 2014-02-06 18:20:52.982747729 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/i386-darwin-tdep.c 2014-02-06 18:20:57.302752371 +0100
|
||||
@@ -164,7 +164,7 @@ i386_darwin_push_dummy_call (struct gdba
|
||||
|
||||
for (write_pass = 0; write_pass < 2; write_pass++)
|
||||
{
|
||||
@ -476,11 +476,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/i386-darwin-tdep.c
|
||||
int num_m128 = 0;
|
||||
|
||||
if (struct_return)
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/i386-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/i386-tdep.c
|
||||
===================================================================
|
||||
--- 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-7.6.90.20140127.orig/gdb/i386-tdep.c 2014-02-06 18:20:52.985747732 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/i386-tdep.c 2014-02-06 18:20:57.303752372 +0100
|
||||
@@ -2473,7 +2473,7 @@ i386_push_dummy_call (struct gdbarch *gd
|
||||
gdb_byte buf[4];
|
||||
int i;
|
||||
int write_pass;
|
||||
@ -489,7 +489,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/i386-tdep.c
|
||||
|
||||
/* Determine the total space required for arguments and struct
|
||||
return address in a first pass (allowing for 16-byte-aligned
|
||||
@@ -2415,7 +2415,7 @@ i386_push_dummy_call (struct gdbarch *gd
|
||||
@@ -2481,7 +2481,7 @@ i386_push_dummy_call (struct gdbarch *gd
|
||||
|
||||
for (write_pass = 0; write_pass < 2; write_pass++)
|
||||
{
|
||||
@ -498,7 +498,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/i386-tdep.c
|
||||
|
||||
if (struct_return)
|
||||
{
|
||||
@@ -2432,7 +2432,7 @@ i386_push_dummy_call (struct gdbarch *gd
|
||||
@@ -2498,7 +2498,7 @@ i386_push_dummy_call (struct gdbarch *gd
|
||||
|
||||
for (i = 0; i < nargs; i++)
|
||||
{
|
||||
@ -507,7 +507,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/i386-tdep.c
|
||||
|
||||
if (write_pass)
|
||||
{
|
||||
@@ -2639,7 +2639,7 @@ i386_reg_struct_return_p (struct gdbarch
|
||||
@@ -2705,7 +2705,7 @@ i386_reg_struct_return_p (struct gdbarch
|
||||
{
|
||||
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
|
||||
enum type_code code = TYPE_CODE (type);
|
||||
@ -516,7 +516,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/i386-tdep.c
|
||||
|
||||
gdb_assert (code == TYPE_CODE_STRUCT
|
||||
|| code == TYPE_CODE_UNION
|
||||
@@ -3094,7 +3094,7 @@ static int
|
||||
@@ -3249,7 +3249,7 @@ static int
|
||||
i386_convert_register_p (struct gdbarch *gdbarch,
|
||||
int regnum, struct type *type)
|
||||
{
|
||||
@ -525,7 +525,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/i386-tdep.c
|
||||
|
||||
/* Values may be spread across multiple registers. Most debugging
|
||||
formats aren't expressive enough to specify the locations, so
|
||||
@@ -3127,7 +3127,7 @@ i386_register_to_value (struct frame_inf
|
||||
@@ -3282,7 +3282,7 @@ i386_register_to_value (struct frame_inf
|
||||
int *optimizedp, int *unavailablep)
|
||||
{
|
||||
struct gdbarch *gdbarch = get_frame_arch (frame);
|
||||
@ -534,7 +534,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/i386-tdep.c
|
||||
|
||||
if (i386_fp_regnum_p (gdbarch, regnum))
|
||||
return i387_register_to_value (frame, regnum, type, to,
|
||||
@@ -3163,7 +3163,7 @@ static void
|
||||
@@ -3318,7 +3318,7 @@ static void
|
||||
i386_value_to_register (struct frame_info *frame, int regnum,
|
||||
struct type *type, const gdb_byte *from)
|
||||
{
|
||||
@ -543,11 +543,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/i386-tdep.c
|
||||
|
||||
if (i386_fp_regnum_p (get_frame_arch (frame), regnum))
|
||||
{
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/ia64-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/ia64-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/ia64-tdep.c 2014-02-06 18:20:52.986747733 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/ia64-tdep.c 2014-02-06 18:20:57.304752373 +0100
|
||||
@@ -3851,8 +3851,10 @@ ia64_push_dummy_call (struct gdbarch *gd
|
||||
int argno;
|
||||
struct value *arg;
|
||||
struct type *type;
|
||||
@ -560,10 +560,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/ia64-tdep.c
|
||||
int floatreg;
|
||||
ULONGEST bsp;
|
||||
CORE_ADDR funcdescaddr, pc, global_pointer;
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/iq2000-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/iq2000-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/iq2000-tdep.c 2014-02-06 18:20:52.986747733 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/iq2000-tdep.c 2014-02-06 18:20:57.304752373 +0100
|
||||
@@ -654,8 +654,9 @@ iq2000_push_dummy_call (struct gdbarch *
|
||||
const bfd_byte *val;
|
||||
bfd_byte buf[4];
|
||||
@ -576,10 +576,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/iq2000-tdep.c
|
||||
/* Used to copy struct arguments into the stack. */
|
||||
CORE_ADDR struct_ptr;
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/m32r-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/m32r-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/m32r-tdep.c 2014-02-06 18:20:52.986747733 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/m32r-tdep.c 2014-02-06 18:20:57.304752373 +0100
|
||||
@@ -689,7 +689,7 @@ m32r_push_dummy_call (struct gdbarch *gd
|
||||
CORE_ADDR regval;
|
||||
gdb_byte *val;
|
||||
@ -589,10 +589,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/m32r-tdep.c
|
||||
|
||||
/* First force sp to a 4-byte alignment. */
|
||||
sp = sp & ~3;
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/m68k-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/m68k-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/m68k-tdep.c 2014-02-06 18:20:52.987747735 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/m68k-tdep.c 2014-02-06 18:20:57.305752374 +0100
|
||||
@@ -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.6.50.20130731-cvs/gdb/m68k-tdep.c
|
||||
|
||||
/* Non-scalars bigger than 4 bytes are left aligned, others are
|
||||
right aligned. */
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/m88k-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/m88k-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/m88k-tdep.c 2014-02-06 18:20:52.987747735 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/m88k-tdep.c 2014-02-06 18:20:57.305752374 +0100
|
||||
@@ -260,13 +260,13 @@ m88k_store_arguments (struct regcache *r
|
||||
{
|
||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
||||
@ -646,10 +646,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/m88k-tdep.c
|
||||
|
||||
if (m88k_in_register_p (type))
|
||||
{
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/mep-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/mep-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/mep-tdep.c 2014-02-06 18:20:52.987747735 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/mep-tdep.c 2014-02-06 18:20:57.306752375 +0100
|
||||
@@ -2272,7 +2272,7 @@ push_large_arguments (CORE_ADDR sp, int
|
||||
|
||||
for (i = 0; i < argc; i++)
|
||||
@ -659,10 +659,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/mep-tdep.c
|
||||
|
||||
if (arg_len > MEP_GPR_SIZE)
|
||||
{
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/mips-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/mips-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/mips-tdep.c 2014-02-06 18:20:52.990747738 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/mips-tdep.c 2014-02-06 18:20:57.307752376 +0100
|
||||
@@ -402,7 +402,7 @@ static void
|
||||
mips_xfer_register (struct gdbarch *gdbarch, struct regcache *regcache,
|
||||
int reg_num, int length,
|
||||
@ -808,11 +808,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/mips-tdep.c
|
||||
|
||||
val = value_contents (arg);
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/mn10300-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/mn10300-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/mn10300-tdep.c 2014-02-06 18:20:52.991747739 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/mn10300-tdep.c 2014-02-06 18:20:57.308752377 +0100
|
||||
@@ -1227,7 +1227,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;
|
||||
@ -821,10 +821,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/mn10300-tdep.c
|
||||
int stack_offset = 0;
|
||||
int argnum;
|
||||
const gdb_byte *val;
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/mt-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/mt-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/mt-tdep.c 2014-02-06 18:20:52.991747739 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/mt-tdep.c 2014-02-06 18:20:57.308752377 +0100
|
||||
@@ -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.6.50.20130731-cvs/gdb/mt-tdep.c
|
||||
int i, j;
|
||||
|
||||
/* First handle however many args we can fit into MT_1ST_ARGREG thru
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/ppc-sysv-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/ppc-sysv-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/ppc-sysv-tdep.c 2014-02-06 18:20:52.992747740 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/ppc-sysv-tdep.c 2014-02-06 18:20:57.308752377 +0100
|
||||
@@ -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));
|
||||
@ -897,11 +897,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/ppc-sysv-tdep.c
|
||||
if (len < tdep->wordsize)
|
||||
write_memory (gparam + tdep->wordsize - len, val, len);
|
||||
else
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/rl78-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/rl78-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/rl78-tdep.c 2014-02-06 18:20:52.992747740 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/rl78-tdep.c 2014-02-06 18:20:57.309752378 +0100
|
||||
@@ -1052,8 +1052,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,10 +912,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/rl78-tdep.c
|
||||
|
||||
sp -= container_len;
|
||||
write_memory (rl78_make_data_address (sp),
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/rs6000-aix-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/rs6000-aix-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/rs6000-aix-tdep.c 2014-02-06 18:20:52.993747741 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/rs6000-aix-tdep.c 2014-02-06 18:20:57.309752378 +0100
|
||||
@@ -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);
|
||||
@ -937,11 +937,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/rs6000-aix-tdep.c
|
||||
|
||||
if (argbytes)
|
||||
{
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/s390-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/s390-linux-tdep.c
|
||||
===================================================================
|
||||
--- 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)
|
||||
--- gdb-7.6.90.20140127.orig/gdb/s390-linux-tdep.c 2014-02-06 18:20:52.993747741 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/s390-linux-tdep.c 2014-02-06 18:22:17.330838389 +0100
|
||||
@@ -2526,7 +2526,7 @@ is_float_like (struct type *type)
|
||||
|
||||
|
||||
static int
|
||||
@ -950,19 +950,19 @@ Index: gdb-7.6.50.20130731-cvs/gdb/s390-tdep.c
|
||||
{
|
||||
return ((n & (n - 1)) == 0);
|
||||
}
|
||||
@@ -2669,7 +2669,7 @@ s390_push_dummy_call (struct gdbarch *gd
|
||||
@@ -2712,7 +2712,7 @@ s390_push_dummy_call (struct gdbarch *gd
|
||||
{
|
||||
struct value *arg = args[i];
|
||||
struct type *type = check_typedef (value_type (arg));
|
||||
- unsigned length = TYPE_LENGTH (type);
|
||||
+ ULONGEST length = TYPE_LENGTH (type);
|
||||
struct value *arg = args[i];
|
||||
struct type *type = check_typedef (value_type (arg));
|
||||
- unsigned length = TYPE_LENGTH (type);
|
||||
+ ULONGEST length = TYPE_LENGTH (type);
|
||||
|
||||
if (s390_function_arg_pass_by_reference (type))
|
||||
{
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/score-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/score-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/score-tdep.c 2014-02-06 18:20:52.994747742 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/score-tdep.c 2014-02-06 18:20:57.310752379 +0100
|
||||
@@ -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.6.50.20130731-cvs/gdb/score-tdep.c
|
||||
CORE_ADDR stack_offset = 0;
|
||||
CORE_ADDR addr = 0;
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/sh-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/sh-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/sh-tdep.c 2014-02-06 18:20:52.995747743 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/sh-tdep.c 2014-02-06 18:20:57.310752379 +0100
|
||||
@@ -807,7 +807,7 @@ sh_skip_prologue (struct gdbarch *gdbarc
|
||||
static int
|
||||
sh_use_struct_convention (int renesas_abi, struct type *type)
|
||||
@ -1014,10 +1014,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/sh-tdep.c
|
||||
int pass_on_stack = 0;
|
||||
int last_reg_arg = INT_MAX;
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/sh64-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/sh64-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/sh64-tdep.c 2014-02-06 18:20:52.995747743 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/sh64-tdep.c 2014-02-06 18:20:57.311752380 +0100
|
||||
@@ -1058,7 +1058,7 @@ sh64_push_dummy_call (struct gdbarch *gd
|
||||
CORE_ADDR struct_addr)
|
||||
{
|
||||
@ -1036,11 +1036,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/sh64-tdep.c
|
||||
int argreg_size;
|
||||
int fp_args[12];
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/sparc-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/sparc-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/sparc-tdep.c 2014-02-06 18:20:52.996747744 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/sparc-tdep.c 2014-02-06 18:20:57.311752380 +0100
|
||||
@@ -502,7 +502,7 @@ sparc32_store_arguments (struct regcache
|
||||
for (i = 0; i < nargs; i++)
|
||||
{
|
||||
struct type *type = value_type (args[i]);
|
||||
@ -1049,10 +1049,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/sparc-tdep.c
|
||||
|
||||
if (sparc_structure_or_union_p (type)
|
||||
|| (sparc_floating_p (type) && len == 16)
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/sparc64-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/sparc64-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/sparc64-tdep.c 2014-02-06 18:20:52.996747744 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/sparc64-tdep.c 2014-02-06 18:20:57.311752380 +0100
|
||||
@@ -639,7 +639,8 @@ sparc64_16_byte_align_p (struct type *ty
|
||||
|
||||
static void
|
||||
@ -1108,10 +1108,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/sparc64-tdep.c
|
||||
int regnum = -1;
|
||||
gdb_byte buf[16];
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/spu-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/spu-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/spu-tdep.c 2014-02-06 18:20:52.997747745 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/spu-tdep.c 2014-02-06 18:20:57.312752381 +0100
|
||||
@@ -1376,7 +1376,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.6.50.20130731-cvs/gdb/spu-tdep.c
|
||||
int preferred_slot;
|
||||
|
||||
if (spu_scalar_value_p (type))
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/tic6x-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/tic6x-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/tic6x-tdep.c 2014-02-06 18:20:52.997747745 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/tic6x-tdep.c 2014-02-06 18:20:57.312752381 +0100
|
||||
@@ -896,7 +896,7 @@ tic6x_push_dummy_call (struct gdbarch *g
|
||||
int argreg = 0;
|
||||
int argnum;
|
||||
@ -1171,11 +1171,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/tic6x-tdep.c
|
||||
|
||||
addr = sp + stack_offset;
|
||||
write_memory (addr, val, len);
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/tilegx-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/tilegx-tdep.c
|
||||
===================================================================
|
||||
--- 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 *
|
||||
--- gdb-7.6.90.20140127.orig/gdb/tilegx-tdep.c 2014-02-06 18:20:52.998747746 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/tilegx-tdep.c 2014-02-06 18:20:57.312752381 +0100
|
||||
@@ -290,7 +290,7 @@ tilegx_push_dummy_call (struct gdbarch *
|
||||
CORE_ADDR stack_dest = sp;
|
||||
int argreg = TILEGX_R0_REGNUM;
|
||||
int i, j;
|
||||
@ -1184,10 +1184,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/tilegx-tdep.c
|
||||
static const gdb_byte four_zero_words[16] = { 0 };
|
||||
|
||||
/* If struct_return is 1, then the struct return address will
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/v850-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/v850-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/v850-tdep.c 2014-02-06 18:20:52.998747746 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/v850-tdep.c 2014-02-06 18:20:57.313752383 +0100
|
||||
@@ -1021,7 +1021,7 @@ v850_push_dummy_call (struct gdbarch *gd
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
int argreg;
|
||||
@ -1206,10 +1206,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/v850-tdep.c
|
||||
gdb_byte *val;
|
||||
gdb_byte valbuf[v850_reg_size];
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/vax-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/vax-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/vax-tdep.c 2014-02-06 18:20:52.998747746 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/vax-tdep.c 2014-02-06 18:20:57.313752383 +0100
|
||||
@@ -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.6.50.20130731-cvs/gdb/vax-tdep.c
|
||||
|
||||
sp -= (len + 3) & ~3;
|
||||
count += (len + 3) / 4;
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/xstormy16-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/xstormy16-tdep.c
|
||||
===================================================================
|
||||
--- 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
|
||||
--- gdb-7.6.90.20140127.orig/gdb/xstormy16-tdep.c 2014-02-06 18:20:52.999747748 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/xstormy16-tdep.c 2014-02-06 18:20:57.313752383 +0100
|
||||
@@ -235,8 +235,9 @@ xstormy16_push_dummy_call (struct gdbarc
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
CORE_ADDR stack_dest = sp;
|
||||
@ -1244,11 +1244,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/xstormy16-tdep.c
|
||||
const gdb_byte *val;
|
||||
gdb_byte buf[xstormy16_pc_size];
|
||||
|
||||
Index: gdb-7.6.50.20130731-cvs/gdb/xtensa-tdep.c
|
||||
Index: gdb-7.6.90.20140127/gdb/xtensa-tdep.c
|
||||
===================================================================
|
||||
--- 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 *
|
||||
--- gdb-7.6.90.20140127.orig/gdb/xtensa-tdep.c 2014-02-06 18:20:53.000747749 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/xtensa-tdep.c 2014-02-06 18:20:57.314752384 +0100
|
||||
@@ -1652,8 +1652,7 @@ xtensa_store_return_value (struct type *
|
||||
|
||||
if (len > (callsize > 8 ? 8 : 16))
|
||||
internal_error (__FILE__, __LINE__,
|
||||
@ -1258,7 +1258,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/xtensa-tdep.c
|
||||
areg = arreg_number (gdbarch,
|
||||
gdbarch_tdep (gdbarch)->a0_base + 2 + callsize, wb);
|
||||
|
||||
@@ -1728,18 +1727,18 @@ xtensa_push_dummy_call (struct gdbarch *
|
||||
@@ -1727,18 +1726,18 @@ xtensa_push_dummy_call (struct gdbarch *
|
||||
{
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
int i;
|
||||
@ -1280,7 +1280,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/xtensa-tdep.c
|
||||
int regno; /* regno if in register. */
|
||||
} u;
|
||||
};
|
||||
@@ -1763,9 +1762,10 @@ xtensa_push_dummy_call (struct gdbarch *
|
||||
@@ -1762,9 +1761,10 @@ xtensa_push_dummy_call (struct gdbarch *
|
||||
{
|
||||
struct value *arg = args[i];
|
||||
struct type *arg_type = check_typedef (value_type (arg));
|
||||
@ -1294,7 +1294,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/xtensa-tdep.c
|
||||
switch (TYPE_CODE (arg_type))
|
||||
{
|
||||
case TYPE_CODE_INT:
|
||||
@@ -1835,8 +1835,8 @@ xtensa_push_dummy_call (struct gdbarch *
|
||||
@@ -1834,8 +1834,8 @@ xtensa_push_dummy_call (struct gdbarch *
|
||||
info->align = TYPE_LENGTH (builtin_type (gdbarch)->builtin_long);
|
||||
break;
|
||||
}
|
||||
@ -1304,7 +1304,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/xtensa-tdep.c
|
||||
|
||||
/* Align size and onstack_size. */
|
||||
size = (size + info->align - 1) & ~(info->align - 1);
|
||||
@@ -1881,7 +1881,7 @@ xtensa_push_dummy_call (struct gdbarch *
|
||||
@@ -1880,7 +1880,7 @@ xtensa_push_dummy_call (struct gdbarch *
|
||||
|
||||
if (info->onstack)
|
||||
{
|
||||
@ -1313,7 +1313,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/xtensa-tdep.c
|
||||
CORE_ADDR offset = sp + info->u.offset;
|
||||
|
||||
/* Odd-sized structs are aligned to the lower side of a memory
|
||||
@@ -1897,7 +1897,7 @@ xtensa_push_dummy_call (struct gdbarch *
|
||||
@@ -1896,7 +1896,7 @@ xtensa_push_dummy_call (struct gdbarch *
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1,21 +1,21 @@
|
||||
Index: gdb-7.4.50.20120602/gdb/linux-nat.c
|
||||
Index: gdb-7.7/gdb/linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-7.4.50.20120602.orig/gdb/linux-nat.c 2012-06-02 20:54:30.000000000 +0200
|
||||
+++ gdb-7.4.50.20120602/gdb/linux-nat.c 2012-06-02 20:56:03.966493352 +0200
|
||||
@@ -1816,8 +1816,22 @@ get_pending_status (struct lwp_info *lp,
|
||||
--- gdb-7.7.orig/gdb/linux-nat.c 2014-02-09 19:18:24.048554459 +0100
|
||||
+++ gdb-7.7/gdb/linux-nat.c 2014-02-09 19:19:22.210622806 +0100
|
||||
@@ -1529,8 +1529,22 @@ get_pending_status (struct lwp_info *lp,
|
||||
gdb_signal_to_string (signo));
|
||||
}
|
||||
|
||||
- if (*status == 0 && GET_PID (lp->ptid) == pid_was_stopped)
|
||||
- if (*status == 0 && ptid_get_pid (lp->ptid) == pid_was_stopped)
|
||||
- *status = W_STOPCODE (SIGSTOP);
|
||||
+ /* Workaround RHEL-5 kernel which has unreliable PTRACE_DETACH, SIGSTOP (that
|
||||
+ many TIDs are left unstopped). See RH Bug 496732. */
|
||||
+ if (GET_PID (lp->ptid) == pid_was_stopped)
|
||||
+ if (ptid_get_pid (lp->ptid) == pid_was_stopped)
|
||||
+ {
|
||||
+ int err;
|
||||
+
|
||||
+ errno = 0;
|
||||
+ err = kill_lwp (GET_LWP (lp->ptid), SIGSTOP);
|
||||
+ err = kill_lwp (ptid_get_lwp (lp->ptid), SIGSTOP);
|
||||
+ if (debug_linux_nat)
|
||||
+ {
|
||||
+ fprintf_unfiltered (gdb_stdlog,
|
||||
|
@ -1,10 +1,10 @@
|
||||
Some functionality is available on RHEL-5.4+ only with gcc44 and gfortran44 as
|
||||
the default gcc and gfortran binaries are from gcc-4.1.
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/vla.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.base/vla.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.base/vla.exp 2013-01-18 23:43:04.455756362 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/vla.exp 2013-01-18 23:43:08.082761164 +0100
|
||||
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.base/vla.exp 2014-02-06 18:26:05.115083077 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.base/vla.exp 2014-02-06 18:26:06.689084765 +0100
|
||||
@@ -16,7 +16,25 @@
|
||||
set testfile vla
|
||||
set srcfile ${testfile}.c
|
||||
@ -32,10 +32,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/vla.exp
|
||||
untested "Couldn't compile test program"
|
||||
return -1
|
||||
}
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-interp.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.base/break-interp.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.base/break-interp.exp 2013-01-18 23:43:04.456756365 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-interp.exp 2013-01-18 23:43:08.082761164 +0100
|
||||
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.base/break-interp.exp 2014-02-06 18:26:05.116083078 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.base/break-interp.exp 2014-02-06 18:26:06.689084765 +0100
|
||||
@@ -34,9 +34,29 @@ if [get_compiler_info] {
|
||||
return -1
|
||||
}
|
||||
@ -67,10 +67,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-interp.exp
|
||||
return -1
|
||||
}
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/common-block.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/common-block.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.fortran/common-block.exp 2013-01-18 23:43:08.082761164 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/common-block.exp 2013-01-18 23:44:23.047856182 +0100
|
||||
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.fortran/common-block.exp 2014-02-06 18:26:05.116083078 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/common-block.exp 2014-02-06 18:26:06.690084760 +0100
|
||||
@@ -22,8 +22,25 @@ if {[skip_fortran_tests]} {
|
||||
|
||||
standard_testfile .f90
|
||||
@ -99,10 +99,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/common-block.exp
|
||||
return -1
|
||||
}
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/dwarf-stride.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/dwarf-stride.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.fortran/dwarf-stride.exp 2013-01-18 23:43:04.456756365 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/dwarf-stride.exp 2013-01-18 23:43:08.083761148 +0100
|
||||
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.fortran/dwarf-stride.exp 2014-02-06 18:26:05.117083079 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/dwarf-stride.exp 2014-02-06 18:26:06.690084760 +0100
|
||||
@@ -27,7 +27,25 @@
|
||||
set testfile dwarf-stride
|
||||
set srcfile ${testfile}.f90
|
||||
@ -130,10 +130,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/dwarf-stride.exp
|
||||
return -1
|
||||
}
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/dynamic.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/dynamic.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.fortran/dynamic.exp 2013-01-18 23:43:04.457756367 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/dynamic.exp 2013-01-18 23:43:08.083761148 +0100
|
||||
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.fortran/dynamic.exp 2014-02-06 18:26:05.117083079 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/dynamic.exp 2014-02-06 18:26:06.690084760 +0100
|
||||
@@ -25,7 +25,25 @@ set testfile "dynamic"
|
||||
set srcfile ${testfile}.f90
|
||||
set binfile ${objdir}/${subdir}/${testfile}
|
||||
@ -161,10 +161,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/dynamic.exp
|
||||
untested "Couldn't compile ${srcfile}"
|
||||
return -1
|
||||
}
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/library-module.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/library-module.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.fortran/library-module.exp 2013-01-18 23:43:04.457756367 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/library-module.exp 2013-01-18 23:43:08.083761148 +0100
|
||||
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.fortran/library-module.exp 2014-02-06 18:26:05.117083079 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/library-module.exp 2014-02-06 18:26:06.690084760 +0100
|
||||
@@ -23,16 +23,34 @@ if [get_compiler_info] {
|
||||
return -1
|
||||
}
|
||||
@ -204,10 +204,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/library-module.exp
|
||||
untested "Couldn't compile ${srcfile}"
|
||||
return -1
|
||||
}
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/module.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/module.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.fortran/module.exp 2013-01-18 23:43:04.457756367 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/module.exp 2013-01-18 23:43:08.083761148 +0100
|
||||
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.fortran/module.exp 2014-02-06 18:26:05.118083080 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/module.exp 2014-02-06 18:26:06.690084760 +0100
|
||||
@@ -15,7 +15,25 @@
|
||||
|
||||
standard_testfile .f90
|
||||
@ -235,10 +235,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/module.exp
|
||||
return -1
|
||||
}
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/string.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/string.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.fortran/string.exp 2013-01-18 23:43:04.457756367 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/string.exp 2013-01-18 23:43:08.083761148 +0100
|
||||
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.fortran/string.exp 2014-02-06 18:26:05.118083080 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/string.exp 2014-02-06 18:26:06.691084763 +0100
|
||||
@@ -23,7 +23,25 @@ set testfile "string"
|
||||
set srcfile ${testfile}.f90
|
||||
set binfile ${objdir}/${subdir}/${testfile}
|
||||
@ -266,10 +266,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/string.exp
|
||||
untested "Couldn't compile ${srcfile}"
|
||||
return -1
|
||||
}
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/omp-step.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.fortran/omp-step.exp 2013-01-18 23:43:04.458756369 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.exp 2013-01-18 23:43:08.083761148 +0100
|
||||
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.fortran/omp-step.exp 2014-02-06 18:26:05.118083080 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/omp-step.exp 2014-02-06 18:26:06.691084763 +0100
|
||||
@@ -15,7 +15,26 @@
|
||||
|
||||
set testfile "omp-step"
|
||||
@ -298,10 +298,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.exp
|
||||
return -1
|
||||
}
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/derived-type.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/derived-type.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.fortran/derived-type.exp 2013-01-18 23:43:04.458756369 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/derived-type.exp 2013-01-18 23:43:08.084761135 +0100
|
||||
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.fortran/derived-type.exp 2014-02-06 18:26:05.119083082 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/derived-type.exp 2014-02-06 18:26:06.691084763 +0100
|
||||
@@ -22,7 +22,25 @@ if { [skip_fortran_tests] } { return -1
|
||||
|
||||
standard_testfile .f90
|
||||
@ -329,10 +329,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/derived-type.exp
|
||||
return -1
|
||||
}
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/subarray.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/subarray.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.fortran/subarray.exp 2013-01-18 23:43:04.458756369 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/subarray.exp 2013-01-18 23:43:08.084761135 +0100
|
||||
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.fortran/subarray.exp 2014-02-06 18:26:05.119083082 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.fortran/subarray.exp 2014-02-06 18:26:06.691084763 +0100
|
||||
@@ -22,7 +22,25 @@ if { [skip_fortran_tests] } { return -1
|
||||
|
||||
standard_testfile .f
|
||||
@ -360,10 +360,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/subarray.exp
|
||||
return -1
|
||||
}
|
||||
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.threads/tls-sepdebug.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.threads/tls-sepdebug.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/testsuite/gdb.threads/tls-sepdebug.exp 2013-01-18 23:43:04.459756371 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.threads/tls-sepdebug.exp 2013-01-18 23:43:08.084761135 +0100
|
||||
--- gdb-7.6.90.20140127.orig/gdb/testsuite/gdb.threads/tls-sepdebug.exp 2014-02-06 18:26:05.119083082 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.threads/tls-sepdebug.exp 2014-02-06 18:26:06.691084763 +0100
|
||||
@@ -32,7 +32,25 @@ set binshareddebugfile ${objdir}/${subdi
|
||||
|
||||
# FIXME: gcc dependency (-Wl,-soname).
|
||||
@ -391,13 +391,13 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.threads/tls-sepdebug.exp
|
||||
untested "Couldn't compile test library"
|
||||
return -1
|
||||
}
|
||||
Index: gdb-7.5.50.20130118/gdb/testsuite/lib/prelink-support.exp
|
||||
Index: gdb-7.6.90.20140127/gdb/testsuite/lib/prelink-support.exp
|
||||
===================================================================
|
||||
--- gdb-7.5.50.20130118.orig/gdb/testsuite/lib/prelink-support.exp 2013-01-18 23:43:04.459756371 +0100
|
||||
+++ gdb-7.5.50.20130118/gdb/testsuite/lib/prelink-support.exp 2013-01-18 23:43:08.084761135 +0100
|
||||
@@ -119,9 +119,31 @@ proc file_copy {src dest} {
|
||||
--- gdb-7.6.90.20140127.orig/gdb/testsuite/lib/prelink-support.exp 2014-02-06 18:26:06.692084767 +0100
|
||||
+++ gdb-7.6.90.20140127/gdb/testsuite/lib/prelink-support.exp 2014-02-06 18:27:44.960190192 +0100
|
||||
@@ -118,9 +118,31 @@ proc file_copy {src dest} {
|
||||
proc build_executable_own_libs {testname executable sources options {interp ""} {dir ""}} {
|
||||
global objdir subdir
|
||||
global subdir
|
||||
|
||||
- if {[build_executable $testname $executable $sources $options] == -1} {
|
||||
- return ""
|
||||
@ -426,6 +426,6 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/lib/prelink-support.exp
|
||||
+ return ""
|
||||
+ }
|
||||
+
|
||||
set binfile ${objdir}/${subdir}/${executable}
|
||||
set binfile [standard_output_file ${executable}]
|
||||
|
||||
set command "ldd $binfile"
|
||||
set ldd [gdb_find_ldd]
|
||||
|
@ -70,11 +70,10 @@ gdb/testsuite/
|
||||
create mode 100644 gdb/testsuite/gdb.base/cfi-without-die-main.c
|
||||
create mode 100644 gdb/testsuite/gdb.base/cfi-without-die.exp
|
||||
|
||||
diff --git a/gdb/testsuite/gdb.base/cfi-without-die-caller.c b/gdb/testsuite/gdb.base/cfi-without-die-caller.c
|
||||
new file mode 100644
|
||||
index 0000000..afdfd53
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.base/cfi-without-die-caller.c
|
||||
Index: gdb-7.7/gdb/testsuite/gdb.base/cfi-without-die-caller.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.7/gdb/testsuite/gdb.base/cfi-without-die-caller.c 2014-02-06 19:35:23.485863819 +0100
|
||||
@@ -0,0 +1,28 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
@ -104,11 +103,10 @@ index 0000000..afdfd53
|
||||
+ /* Modify the return value to prevent any tail-call optimization. */
|
||||
+ return (*callback) () - one;
|
||||
+}
|
||||
diff --git a/gdb/testsuite/gdb.base/cfi-without-die-main.c b/gdb/testsuite/gdb.base/cfi-without-die-main.c
|
||||
new file mode 100644
|
||||
index 0000000..8451c4b
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.base/cfi-without-die-main.c
|
||||
Index: gdb-7.7/gdb/testsuite/gdb.base/cfi-without-die-main.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.7/gdb/testsuite/gdb.base/cfi-without-die-main.c 2014-02-06 19:35:23.485863819 +0100
|
||||
@@ -0,0 +1,32 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
@ -142,11 +140,10 @@ index 0000000..8451c4b
|
||||
+{
|
||||
+ return caller (callback);
|
||||
+}
|
||||
diff --git a/gdb/testsuite/gdb.base/cfi-without-die.exp b/gdb/testsuite/gdb.base/cfi-without-die.exp
|
||||
new file mode 100644
|
||||
index 0000000..db6d248
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.base/cfi-without-die.exp
|
||||
Index: gdb-7.7/gdb/testsuite/gdb.base/cfi-without-die.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.7/gdb/testsuite/gdb.base/cfi-without-die.exp 2014-02-06 20:26:00.775208847 +0100
|
||||
@@ -0,0 +1,67 @@
|
||||
+# Copyright 2010 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -169,9 +166,9 @@ index 0000000..db6d248
|
||||
+set srcmainfile ${testfile}-main.c
|
||||
+set srccallerfile ${testfile}-caller.c
|
||||
+set executable ${testfile}
|
||||
+set objmainfile ${objdir}/${subdir}/${testfile}-main.o
|
||||
+set objcallerfile ${objdir}/${subdir}/${testfile}-caller.o
|
||||
+set binfile ${objdir}/${subdir}/${executable}
|
||||
+set objmainfile [standard_output_file ${testfile}-main.o]
|
||||
+set objcallerfile [standard_output_file ${testfile}-caller.o]
|
||||
+set binfile [standard_output_file ${executable}]
|
||||
+
|
||||
+if { [gdb_compile "${srcdir}/${subdir}/${srccallerfile}" ${objcallerfile} \
|
||||
+ object [list {additional_flags=-fomit-frame-pointer -fno-unwind-tables -fno-asynchronous-unwind-tables}]] != ""
|
||||
@ -215,6 +212,3 @@ index 0000000..db6d248
|
||||
+# #1 0x00000000004004e9 in caller ()
|
||||
+# #2 0x00000000004004cd in main () at ...
|
||||
+gdb_test "bt" "#0 +callback \[^\r\n\]+\r\n#1 \[^\r\n\]+ in caller \[^\r\n\]+\r\n#2 \[^\r\n\]+ in main \[^\r\n\]+" "verify unwindin works for CFI without DIEs"
|
||||
--
|
||||
1.7.1.1
|
||||
|
||||
|
@ -20,11 +20,10 @@ Date: Sat Aug 15 15:05:54 2009 +0200
|
||||
|
||||
* gdb.dwarf2/dw2-aranges.exp, gdb.dwarf2/dw2-aranges.S: New files.
|
||||
|
||||
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-aranges.S b/gdb/testsuite/gdb.dwarf2/dw2-aranges.S
|
||||
new file mode 100644
|
||||
index 0000000..d5b9ca5a
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.dwarf2/dw2-aranges.S
|
||||
Index: gdb-7.7/gdb/testsuite/gdb.dwarf2/dw2-aranges.S
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.7/gdb/testsuite/gdb.dwarf2/dw2-aranges.S 2014-02-06 22:02:22.087449660 +0100
|
||||
@@ -0,0 +1,140 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
@ -166,11 +165,10 @@ index 0000000..d5b9ca5a
|
||||
+ .byte 0 /* aranges segment_size */
|
||||
+
|
||||
+.Laranges_end:
|
||||
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-aranges.exp b/gdb/testsuite/gdb.dwarf2/dw2-aranges.exp
|
||||
new file mode 100644
|
||||
index 0000000..39632d5
|
||||
--- /dev/null
|
||||
+++ b/gdb/testsuite/gdb.dwarf2/dw2-aranges.exp
|
||||
Index: gdb-7.7/gdb/testsuite/gdb.dwarf2/dw2-aranges.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.7/gdb/testsuite/gdb.dwarf2/dw2-aranges.exp 2014-02-06 22:09:08.322852771 +0100
|
||||
@@ -0,0 +1,40 @@
|
||||
+# Copyright 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -202,7 +200,7 @@ index 0000000..39632d5
|
||||
+
|
||||
+set testfile "dw2-aranges"
|
||||
+set srcfile ${testfile}.S
|
||||
+set binfile ${objdir}/${subdir}/${testfile}
|
||||
+set binfile [standard_output_file ${testfile}]
|
||||
+
|
||||
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {nodebug}] != "" } {
|
||||
+ return -1
|
||||
|
50
gdb-testsuite-nohostid.patch
Normal file
50
gdb-testsuite-nohostid.patch
Normal file
@ -0,0 +1,50 @@
|
||||
http://sourceware.org/ml/gdb-patches/2014-02/msg00158.html
|
||||
Subject: [patch] testsuite: Fix "ERROR: no fileid for"
|
||||
|
||||
|
||||
--azLHFNyN32YCQGCU
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
Content-Disposition: inline
|
||||
|
||||
Hi,
|
||||
|
||||
a35cfb4007cee8cb84106412cd17f4e12f13345b is the first bad commit
|
||||
commit a35cfb4007cee8cb84106412cd17f4e12f13345b
|
||||
Author: Maciej W. Rozycki <macro@codesourcery.com>
|
||||
Date: Thu Oct 24 23:32:30 2013 +0100
|
||||
|
||||
$ runtest gdb.base/solib-disc.exp
|
||||
Running ./gdb.base/solib-disc.exp ...
|
||||
ERROR: no fileid for host1
|
||||
[...]
|
||||
|
||||
|
||||
Jan
|
||||
|
||||
--azLHFNyN32YCQGCU
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
Content-Disposition: inline; filename="gdbfinish.patch"
|
||||
|
||||
gdb/testsuite/
|
||||
2014-02-06 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Fix "ERROR: no fileid for" in the testsuite.
|
||||
* lib/gdb.exp (gdb_finish): Check gdb_spawn_id.
|
||||
|
||||
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
|
||||
index 533b81b..5c53cdf 100644
|
||||
--- a/gdb/testsuite/lib/gdb.exp
|
||||
+++ b/gdb/testsuite/lib/gdb.exp
|
||||
@@ -3708,7 +3708,8 @@ proc gdb_finish { } {
|
||||
global cleanfiles
|
||||
|
||||
# Give persistent gdbserver a chance to terminate before GDB is killed.
|
||||
- if {[info exists gdbserver_reconnect_p] && $gdbserver_reconnect_p} {
|
||||
+ if {[info exists gdbserver_reconnect_p] && $gdbserver_reconnect_p
|
||||
+ && [info exists gdb_spawn_id]} {
|
||||
send_gdb "kill\n";
|
||||
gdb_expect 10 {
|
||||
-re "y or n" {
|
||||
|
||||
--azLHFNyN32YCQGCU--
|
||||
|
66
gdb-upstream.patch
Normal file
66
gdb-upstream.patch
Normal file
@ -0,0 +1,66 @@
|
||||
http://sourceware.org/ml/gdb-patches/2014-02/msg00179.html
|
||||
Subject: [obv] testsuite: Fix i386-sse-stack-align.exp regression since GDB_PARALLEL
|
||||
|
||||
|
||||
--u3/rZRmxL6MmkK24
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
Content-Disposition: inline
|
||||
|
||||
Hi Tom,
|
||||
|
||||
$ make check//unix/-m32 RUNTESTFLAGS="gdb.arch/i386-sse-stack-align.exp GDB_PARALLEL=1"
|
||||
[...]
|
||||
Running /home/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp ...
|
||||
ERROR: (/home/jkratoch/redhat/gdb-clean/gdb/testsuite.unix.-m32/outputs/gdb.arch/i386-sse-stack-align/i386-sse-stack-align) No such file or directory
|
||||
|
||||
|
||||
Checked in.
|
||||
|
||||
|
||||
Jan
|
||||
|
||||
--u3/rZRmxL6MmkK24
|
||||
Content-Type: text/plain; charset=us-ascii
|
||||
Content-Disposition: inline; filename=1
|
||||
|
||||
commit 3c77faf33dc4c7bb693f05f44077ed687e9f8217
|
||||
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
Date: Thu Feb 6 23:14:20 2014 +0100
|
||||
|
||||
Fix i386-sse-stack-align.exp regression since GDB_PARALLEL.
|
||||
|
||||
gdb/testsuite/
|
||||
2014-02-06 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Fix i386-sse-stack-align.exp regression since GDB_PARALLEL.
|
||||
* gdb.arch/i386-sse-stack-align.exp: Use standard_output_file.
|
||||
|
||||
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
|
||||
index 8c846b8..13ccaf3 100644
|
||||
### a/gdb/testsuite/ChangeLog
|
||||
### b/gdb/testsuite/ChangeLog
|
||||
## -1,3 +1,8 @@
|
||||
+2014-02-06 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
+
|
||||
+ Fix i386-sse-stack-align.exp regression since GDB_PARALLEL.
|
||||
+ * gdb.arch/i386-sse-stack-align.exp: Use standard_output_file.
|
||||
+
|
||||
2014-02-06 Doug Evans <xdje42@gmail.com>
|
||||
|
||||
* gdb.python/py-breakpoint.exp (test_bkpt_eval_funcs): Update expected
|
||||
diff --git a/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp b/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp
|
||||
index b5a7e1e..462df1f 100644
|
||||
--- a/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp
|
||||
+++ b/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp
|
||||
@@ -22,7 +22,7 @@ set testfile "i386-sse-stack-align"
|
||||
set srcfile ${testfile}.S
|
||||
set csrcfile ${testfile}.c
|
||||
set executable ${testfile}
|
||||
-set binfile ${objdir}/${subdir}/${executable}
|
||||
+set binfile [standard_output_file ${executable}]
|
||||
set opts {}
|
||||
|
||||
if [info exists COMPILE] {
|
||||
|
||||
--u3/rZRmxL6MmkK24--
|
||||
|
37
gdb.changes
37
gdb.changes
@ -1,3 +1,40 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 10 17:19:07 UTC 2014 - matz@suse.de
|
||||
|
||||
- Use patchlist.pl to merge with gdb-Fedora at
|
||||
e86a0cc13a5d91ba95242690237bb77511500897.
|
||||
- Don't apply patches gdb-rhel5-gcc44.patch,
|
||||
gdb-6.6-buildid-locate-rpm-scl.patch,
|
||||
gdb-readline62-ask-more-rh.patch,
|
||||
gdb-6.8-attach-signalled-detach-stopped.patch,
|
||||
gdb-6.8-quit-never-aborts.patch,
|
||||
gdb-rhel5-compat.patch; retained to have same structure as fedoras
|
||||
package.
|
||||
- Add gdb-testsuite-nohostid.patch (from fedora).
|
||||
- Remove gdb-fix-attach-signalled-detach-stopped.patch again
|
||||
(as base not applied), gdb-ppc-ptrace.diff (not applied since some time).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Feb 9 15:44:04 UTC 2014 - burnus@net-b.de
|
||||
|
||||
- Merge from fedoras gdb-7.7-1.fc21, a rebase to FSF GDB 7.7.
|
||||
The 7.7 features are:
|
||||
* For C++, the 'typeid' operator has been added and
|
||||
exception catchpoints can be filtered by type.
|
||||
* Python scripting has been extended
|
||||
* New commands and new command options
|
||||
* New convenice variables/functions
|
||||
* Some GDB/MI improvements
|
||||
* Remote protocal improvments
|
||||
* SystemTap SDT probes support AArch64 GNU/Linux
|
||||
* Support for Fission DWP file format version 2
|
||||
* 'tsave' command supports CTF (Common Trace Format)
|
||||
* New script 'gcore'
|
||||
- Remove now obsolete gdb-aarch64-hw-break.patch
|
||||
- Remove merged bits from gdb-ppc64le.patch
|
||||
- Rediff gdb-6.6-buildid-locate-rpm-suse.patch
|
||||
- Add gdb-fix-attach-signalled-detach-stopped.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 9 14:16:53 UTC 2013 - uweigand@de.ibm.com
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user