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:
Stephan Kulow 2014-02-15 07:13:52 +00:00 committed by Git OBS Bridge
commit a4d637ac1c
43 changed files with 2714 additions and 6654 deletions

View File

@ -4,11 +4,11 @@
to install and uninstall. to install and uninstall.
* gstack.sh, gstack.1: New files. * 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.7.orig/gdb/Makefile.in 2014-02-06 20:29:09.401214339 +0100
+++ gdb-7.6/gdb/Makefile.in 2013-05-21 13:26:33.609819579 +0200 +++ gdb-7.7/gdb/Makefile.in 2014-02-06 20:29:09.501214360 +0100
@@ -1029,7 +1029,7 @@ info install-info clean-info dvi pdf ins @@ -1067,7 +1067,7 @@ info install-info clean-info dvi pdf ins
install: all install: all
@$(MAKE) $(FLAGS_TO_PASS) install-only @$(MAKE) $(FLAGS_TO_PASS) install-only
@ -17,7 +17,7 @@ Index: gdb-7.6/gdb/Makefile.in
transformed_name=`t='$(program_transform_name)'; \ transformed_name=`t='$(program_transform_name)'; \
echo gdb | sed -e "$$t"` ; \ echo gdb | sed -e "$$t"` ; \
if test "x$$transformed_name" = x; then \ if test "x$$transformed_name" = x; then \
@@ -1060,7 +1060,25 @@ install-only: $(CONFIG_INSTALL) @@ -1104,7 +1104,25 @@ install-strip:
install-python: install-python:
$(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(GDB_DATADIR)/python/gdb $(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)'; \ transformed_name=`t='$(program_transform_name)'; \
echo gdb | sed -e $$t` ; \ echo gdb | sed -e $$t` ; \
if test "x$$transformed_name" = x; then \ if test "x$$transformed_name" = x; then \
@@ -1083,6 +1101,18 @@ uninstall: force $(CONFIG_UNINSTALL) @@ -1127,6 +1145,18 @@ uninstall: force $(CONFIG_UNINSTALL)
fi fi
@$(MAKE) DO=uninstall "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do @$(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. # The C++ name parser can be built standalone for testing.
test-cp-name-parser.o: cp-name-parser.c test-cp-name-parser.o: cp-name-parser.c
$(COMPILE) -DTEST_CPNAMES 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 --- /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 @@ @@ -0,0 +1,43 @@
+#!/bin/sh +#!/bin/sh
+ +
@ -111,10 +111,10 @@ Index: gdb-7.6/gdb/gstack.sh
+ -e 's/^\((gdb) \)*//' \ + -e 's/^\((gdb) \)*//' \
+ -e '/^#/p' \ + -e '/^#/p' \
+ -e '/^Thread/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 --- /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 @@ @@ -0,0 +1,66 @@
+# Copyright (C) 2012 Free Software Foundation, Inc. +# 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 testfile gstack
+set executable ${testfile} +set executable ${testfile}
+set binfile ${objdir}/${subdir}/$executable +set binfile [standard_output_file $executable]
+if {[build_executable ${testfile} ${executable} "" {debug}] == -1} { +if {[build_executable ${testfile} ${executable} "" {debug}] == -1} {
+ return -1 + return -1
+} +}
@ -182,10 +182,10 @@ Index: gdb-7.6/gdb/testsuite/gdb.base/gstack.exp
+gdb_exit +gdb_exit
+ +
+remote_exec host "kill -9 $pid" +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 --- /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 @@ @@ -0,0 +1,43 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +

View File

@ -11,11 +11,11 @@
* gdb.texinfo (File Options): Document --readnever. * 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.90.20140127.orig/gdb/doc/gdb.texinfo 2014-01-27 22:42:53.150573603 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo 2013-08-02 16:20:21.164687886 +0200 +++ gdb-7.6.90.20140127/gdb/doc/gdb.texinfo 2014-01-27 22:42:56.694576319 +0100
@@ -1030,6 +1030,12 @@ Read each symbol file's entire symbol ta @@ -1031,6 +1031,12 @@ Read each symbol file's entire symbol ta
the default, which is to read it incrementally as it is needed. the default, which is to read it incrementally as it is needed.
This makes startup slower, but makes future operations faster. 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 @end table
@node Mode Options @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.90.20140127.orig/gdb/main.c 2014-01-27 22:42:53.153573606 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/main.c 2013-08-02 16:20:53.704731449 +0200 +++ gdb-7.6.90.20140127/gdb/main.c 2014-01-27 22:42:56.695576319 +0100
@@ -459,6 +459,7 @@ captured_main (void *data) @@ -473,6 +473,7 @@ captured_main (void *data)
{"xdb", no_argument, &xdb_commands, 1}, {"xdb", no_argument, &xdb_commands, 1},
{"dbx", no_argument, &dbx_commands, 1}, {"dbx", no_argument, &dbx_commands, 1},
{"readnow", no_argument, &readnow_symbol_files, 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}, {"r", no_argument, &readnow_symbol_files, 1},
{"quiet", no_argument, &quiet, 1}, {"quiet", no_argument, &quiet, 1},
{"q", 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\ --se=FILE Use FILE as symbol file and executable file.\n\
--symbols=SYMFILE Read symbols from SYMFILE.\n\ --symbols=SYMFILE Read symbols from SYMFILE.\n\
--readnow Fully read symbol files on first access.\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\ --write Set writing into executable and core files.\n\n\
"), stream); "), stream);
fputs_unfiltered (_("\ 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.90.20140127.orig/gdb/symfile.c 2014-01-27 22:42:53.154573607 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/symfile.c 2013-08-02 16:20:21.165687888 +0200 +++ 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 ( @@ -82,6 +82,7 @@ static void clear_symtab_users_cleanup (
/* Global variables owned by this file. */ /* Global variables owned by this file. */
@ -60,34 +60,32 @@ Index: gdb-7.6.50.20130731-cvs/gdb/symfile.c
/* Functions this file defines. */ /* 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.90.20140127.orig/gdb/dwarf2read.c 2014-01-27 22:42:56.700576323 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/dwarf2read.c 2013-08-02 16:20:37.190709689 +0200 +++ gdb-7.6.90.20140127/gdb/dwarf2read.c 2014-01-27 22:44:21.915641560 +0100
@@ -69,6 +69,7 @@ @@ -70,6 +70,7 @@
#include "f-lang.h"
#include "source.h" #include "source.h"
#include "filestuff.h" #include "filestuff.h"
#include "build-id.h"
+#include "top.h" +#include "top.h"
#include <fcntl.h> #include <fcntl.h>
#include "gdb_string.h" #include <string.h>
@@ -1834,8 +1835,9 @@ dwarf2_has_info (struct objfile *objfile @@ -1975,7 +1976,8 @@ dwarf2_has_info (struct objfile *objfile
(void *) names); (void *) names);
dwarf2_per_objfile->objfile = objfile; dwarf2_per_objfile->objfile = objfile;
} }
- return (dwarf2_per_objfile->info.asection != NULL - return (!dwarf2_per_objfile->info.is_virtual
- && dwarf2_per_objfile->abbrev.asection != NULL); + return !readnever_symbol_files &&
+ return (! readnever_symbol_files + (!dwarf2_per_objfile->info.is_virtual
+ && (dwarf2_per_objfile->info.asection != NULL && dwarf2_per_objfile->info.s.asection != NULL
+ && dwarf2_per_objfile->abbrev.asection != NULL)); && !dwarf2_per_objfile->abbrev.is_virtual
} && dwarf2_per_objfile->abbrev.s.asection != NULL);
Index: gdb-7.6.90.20140127/gdb/top.h
/* When loading sections, we look either for uncompressed section or for
Index: gdb-7.6.50.20130731-cvs/gdb/top.h
=================================================================== ===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/top.h 2013-08-02 16:12:54.980085956 +0200 --- gdb-7.6.90.20140127.orig/gdb/top.h 2014-01-27 22:42:53.159573610 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/top.h 2013-08-02 16:20:21.169687893 +0200 +++ 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); @@ -59,6 +59,7 @@ extern void set_prompt (const char *s);
/* From random places. */ /* From random places. */

View File

@ -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.6.90.20140127.orig/gdb/testsuite/configure.ac 2014-01-27 22:41:19.281501688 +0100
+++ gdb-7.5.91.20130323/gdb/testsuite/configure.ac 2013-03-23 19:47:24.189683555 +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 \ @@ -96,6 +96,6 @@ AC_OUTPUT([Makefile \
gdb.hp/gdb.aCC/Makefile gdb.hp/gdb.compat/Makefile \ gdb.hp/gdb.aCC/Makefile gdb.hp/gdb.compat/Makefile \
gdb.hp/gdb.defects/Makefile gdb.linespec/Makefile \ gdb.hp/gdb.defects/Makefile gdb.linespec/Makefile \
gdb.mi/Makefile gdb.modula2/Makefile gdb.multi/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.objc/Makefile gdb.opencl/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.pie/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]) 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.6.90.20140127.orig/gdb/testsuite/configure 2014-01-27 22:41:19.283501689 +0100
+++ gdb-7.5.91.20130323/gdb/testsuite/configure 2013-03-23 19:47:47.256822312 +0100 +++ gdb-7.6.90.20140127/gdb/testsuite/configure 2014-01-27 22:41:49.933525172 +0100
@@ -3448,7 +3448,7 @@ done @@ -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.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.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 cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure # 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.opt/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.opt/Makefile" ;;
"gdb.pascal/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.pascal/Makefile" ;; "gdb.pascal/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.pascal/Makefile" ;;
+ "gdb.pie/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.pie/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.python/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.python/Makefile" ;;
"gdb.reverse/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.reverse/Makefile" ;; "gdb.reverse/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.reverse/Makefile" ;;
"gdb.stabs/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.stabs/Makefile" ;; Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.pie/attach.c
Index: gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/attach.c
=================================================================== ===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000 --- /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 @@ @@ -0,0 +1,20 @@
+/* This program is intended to be started outside of gdb, and then +/* 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 + 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; + 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 --- /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 @@ @@ -0,0 +1,24 @@
+/* This program is intended to be started outside of gdb, and then +/* 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 + 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); + 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 --- /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 @@ @@ -0,0 +1,146 @@
+/* This testcase is part of GDB, the GNU debugger. +/* 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; + 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 --- /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 @@ @@ -0,0 +1,44 @@
+/* This testcase is part of GDB, the GNU debugger. +/* 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 marker3 (a, b) char *a, *b; {} /* set breakpoint 18 here */
+void marker4 (d) long d; {} /* set breakpoint 13 here */ +void marker4 (d) long d; {} /* set breakpoint 13 here */
+#endif +#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 --- /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 @@ @@ -0,0 +1,142 @@
+/* Copyright 1992, 1993, 1994, 1995, 1996, 1999 +/* Copyright 1992, 1993, 1994, 1995, 1996, 1999
+ Free Software Foundation, Inc. + Free Software Foundation, Inc.
@ -432,10 +432,10 @@ Index: gdb-7.5.91.20130323/gdb/testsuite/gdb.pie/coremaker.c
+ return 0; + 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 --- /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 @@ @@ -0,0 +1,417 @@
+# Copyright 1997, 1999, 2002 Free Software Foundation, Inc. +# 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 +do_call_attach_tests
+ +
+return 0 +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 --- /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 @@ @@ -0,0 +1,962 @@
+# Copyright 1988, 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 1999, +# Copyright 1988, 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2002, 2003, 2004 +# 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" + send_gdb "set args main\n"
+ gdb_expect -re ".*$gdb_prompt $" {} + 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 --- /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 @@ @@ -0,0 +1,233 @@
+# Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 +# Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
+# Free Software Foundation, Inc. +# 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 "up" "#\[0-9\]* *\[0-9xa-fH'\]* in .* \\(.*\\).*" "up in corefile.exp (reinit)"
+ +
+gdb_test "core" "No core file now." +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 --- /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 @@ @@ -0,0 +1,19 @@
+VPATH = @srcdir@ +VPATH = @srcdir@
+srcdir = @srcdir@ +srcdir = @srcdir@

View File

@ -6,20 +6,20 @@
* gdb.gdb/xfullpath.exp: Ditto. * gdb.gdb/xfullpath.exp: Ditto.
* gdb.gdb/observer.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.90.20140127.orig/gdb/testsuite/lib/selftest-support.exp 2014-01-27 22:42:04.022535966 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/lib/selftest-support.exp 2013-08-02 16:12:20.404040378 +0200 +++ gdb-7.6.90.20140127/gdb/testsuite/lib/selftest-support.exp 2014-01-27 22:42:42.630565675 +0100
@@ -130,18 +130,18 @@ proc do_self_tests {function body} { @@ -136,18 +136,18 @@ proc do_self_tests {function body} {
set GDB_FULLPATH [find_gdb $GDB] }
# Remove any old copy lying around. # Remove any old copy lying around.
- remote_file host delete x$tool - remote_file host delete $xgdb
+ #remote_file host delete x$tool + #remote_file host delete $xgdb
gdb_start gdb_start
- set file [remote_download host $GDB_FULLPATH x$tool] - set file [remote_download host $GDB_FULLPATH $xgdb]
+ #set file [remote_download host $GDB_FULLPATH x$tool] + #set file [remote_download host $GDB_FULLPATH $xgdb]
- set result [selftest_setup $file $function] - set result [selftest_setup $file $function]
+ set result [selftest_setup $GDB_FULLPATH $function] + set result [selftest_setup $GDB_FULLPATH $function]

View File

@ -23,11 +23,11 @@ instead.
Port to GDB-6.7. 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.6.90.20140127.orig/gdb/amd64-linux-tdep.c 2014-02-04 23:40:06.263483469 +0100
+++ gdb-7.4.50.20120703/gdb/amd64-linux-tdep.c 2012-07-03 17:32:46.547563363 +0200 +++ gdb-7.6.90.20140127/gdb/amd64-linux-tdep.c 2014-02-04 23:47:18.438009290 +0100
@@ -271,6 +271,80 @@ amd64_linux_register_reggroup_p (struct @@ -289,6 +289,80 @@ amd64_linux_register_reggroup_p (struct
/* Set the program counter for process PTID to PC. */ /* 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 static void
amd64_linux_write_pc (struct regcache *regcache, CORE_ADDR pc) 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; + tdep->outermost_frame_p = amd64_linux_outermost_frame;
+ +
/* GNU/Linux uses SVR4-style shared libraries. */ /* Add the %orig_rax register used for syscall restarting. */
set_solib_svr4_fetch_link_map_offsets set_gdbarch_write_pc (gdbarch, amd64_linux_write_pc);
(gdbarch, svr4_lp64_fetch_link_map_offsets);
Index: gdb-7.4.50.20120703/gdb/amd64-tdep.c 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.6.90.20140127.orig/gdb/amd64-tdep.c 2014-02-04 23:40:06.265483471 +0100
+++ gdb-7.4.50.20120703/gdb/amd64-tdep.c 2012-07-03 17:32:12.335604415 +0200 +++ gdb-7.6.90.20140127/gdb/amd64-tdep.c 2014-02-04 23:45:40.846891653 +0100
@@ -2324,6 +2324,7 @@ amd64_frame_unwind_stop_reason (struct f @@ -2359,6 +2359,7 @@ amd64_frame_unwind_stop_reason (struct f
{ {
struct amd64_frame_cache *cache = struct amd64_frame_cache *cache =
amd64_frame_cache (this_frame, this_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) if (!cache->base_p)
return UNWIND_UNAVAILABLE; 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) if (cache->base == 0)
return UNWIND_OUTERMOST; return UNWIND_OUTERMOST;
@ -140,30 +140,31 @@ Index: gdb-7.4.50.20120703/gdb/amd64-tdep.c
return UNWIND_NO_REASON; 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 = 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)); + struct gdbarch_tdep *tdep = gdbarch_tdep (get_frame_arch (this_frame));
if (!cache->base_p) if (!cache->base_p)
(*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; 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);
} }
+ else if (tdep->outermost_frame_p && tdep->outermost_frame_p (this_frame))
Index: gdb-7.4.50.20120703/gdb/i386-tdep.c + {
+ /* 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.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.6.90.20140127.orig/gdb/i386-tdep.c 2014-02-04 23:40:06.267483473 +0100
+++ gdb-7.4.50.20120703/gdb/i386-tdep.c 2012-07-03 17:32:12.339604409 +0200 +++ gdb-7.6.90.20140127/gdb/i386-tdep.c 2014-02-04 23:43:33.048734974 +0100
@@ -7655,6 +7655,9 @@ i386_gdbarch_init (struct gdbarch_info i @@ -7830,6 +7830,9 @@ i386_gdbarch_init (struct gdbarch_info i
tdep->xsave_xcr0_offset = -1; 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; tdep->record_regmap = i386_record_regmap;
set_gdbarch_long_long_align_bit (gdbarch, 32); 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.6.90.20140127.orig/gdb/i386-tdep.h 2014-02-04 23:40:06.268483475 +0100
+++ gdb-7.4.50.20120703/gdb/i386-tdep.h 2012-07-03 17:32:12.340604408 +0200 +++ gdb-7.6.90.20140127/gdb/i386-tdep.h 2014-02-04 23:43:33.048734974 +0100
@@ -219,6 +219,9 @@ struct gdbarch_tdep @@ -192,6 +192,9 @@ struct gdbarch_tdep
int (*i386_sysenter_record) (struct regcache *regcache); int (*i386_sysenter_record) (struct regcache *regcache);
/* Parse syscall args. */ /* Parse syscall args. */
int (*i386_syscall_record) (struct regcache *regcache); int (*i386_syscall_record) (struct regcache *regcache);
@ -187,10 +188,10 @@ Index: gdb-7.4.50.20120703/gdb/i386-tdep.h
}; };
/* Floating-point registers. */ /* 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.6.90.20140127.orig/gdb/ia64-tdep.c 2014-02-04 23:40:06.270483477 +0100
+++ gdb-7.4.50.20120703/gdb/ia64-tdep.c 2012-07-03 17:32:12.343604405 +0200 +++ 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 @@ -2176,6 +2176,138 @@ static const struct frame_unwind ia64_fr
default_frame_sniffer default_frame_sniffer
}; };
@ -330,7 +331,7 @@ Index: gdb-7.4.50.20120703/gdb/ia64-tdep.c
/* Signal trampolines. */ /* Signal trampolines. */
static void 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_dummy_id (gdbarch, ia64_dummy_id);
set_gdbarch_unwind_pc (gdbarch, ia64_unwind_pc); 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 #ifdef HAVE_LIBUNWIND_IA64_H
frame_unwind_append_unwinder (gdbarch, frame_unwind_append_unwinder (gdbarch,
&ia64_libunwind_sigtramp_frame_unwind); &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 --- /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 @@ @@ -0,0 +1,39 @@
+/* This testcase is part of GDB, the GNU debugger. +/* 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 (;;) + for (;;)
+ pause(); + 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 --- /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 @@ @@ -0,0 +1,61 @@
+# Copyright 2006 Free Software Foundation, Inc. +# Copyright 2006 Free Software Foundation, Inc.
+ +

View File

@ -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 * exec.c (exec_file_attach): Print a more useful error message if the
user did "gdb core". 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.90.20140127.orig/gdb/exceptions.h 2014-02-06 17:31:00.148529736 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/exceptions.h 2013-08-02 16:30:06.197468727 +0200 +++ gdb-7.6.90.20140127/gdb/exceptions.h 2014-02-06 17:31:17.560548525 +0100
@@ -90,6 +90,9 @@ enum errors { @@ -97,6 +97,9 @@ enum errors {
aborted as the inferior state is no longer valid. */ /* An undefined command was executed. */
TARGET_CLOSE_ERROR, UNDEFINED_COMMAND_ERROR,
+ /* Attempt to load a core file as executable. */ + /* Attempt to load a core file as executable. */
+ IS_CORE_ERROR, + IS_CORE_ERROR,
@ -72,10 +72,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/exceptions.h
/* Add more errors here. */ /* Add more errors here. */
NR_ERRORS 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.90.20140127.orig/gdb/exec.c 2014-02-06 17:30:58.266527708 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/exec.c 2013-08-02 16:31:30.100618657 +0200 +++ gdb-7.6.90.20140127/gdb/exec.c 2014-02-06 17:31:00.149529737 +0100
@@ -34,6 +34,7 @@ @@ -34,6 +34,7 @@
#include "gdbthread.h" #include "gdbthread.h"
#include "progspace.h" #include "progspace.h"
@ -84,7 +84,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/exec.c
#include <fcntl.h> #include <fcntl.h>
#include "readline/readline.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)) 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, &sections, &sections_end)) if (build_section_table (exec_bfd, &sections, &sections_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.90.20140127.orig/gdb/main.c 2014-02-06 17:30:58.267527709 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/main.c 2013-08-02 16:30:06.199468730 +0200 +++ gdb-7.6.90.20140127/gdb/main.c 2014-02-06 17:32:32.232629052 +0100
@@ -300,6 +300,36 @@ typedef struct cmdarg { @@ -307,6 +307,36 @@ typedef struct cmdarg {
/* Define type VEC (cmdarg_s). */ /* Define type VEC (cmdarg_s). */
DEF_VEC_O (cmdarg_s); DEF_VEC_O (cmdarg_s);
@ -156,7 +156,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/main.c
static int static int
captured_main (void *data) captured_main (void *data)
{ {
@@ -810,6 +840,8 @@ captured_main (void *data) @@ -824,6 +854,8 @@ captured_main (void *data)
{ {
symarg = argv[optind]; symarg = argv[optind];
execarg = argv[optind]; execarg = argv[optind];
@ -165,7 +165,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/main.c
optind++; optind++;
} }
@@ -975,11 +1007,25 @@ captured_main (void *data) @@ -987,11 +1019,25 @@ captured_main (void *data)
&& symarg != NULL && symarg != NULL
&& strcmp (execarg, symarg) == 0) && strcmp (execarg, symarg) == 0)
{ {
@ -191,6 +191,6 @@ Index: gdb-7.6.50.20130731-cvs/gdb/main.c
+ as a core file. */ + as a core file. */
+ if (catch_command_errors (func, execarg, !batch_flag, RETURN_MASK_ALL) + if (catch_command_errors (func, execarg, !batch_flag, RETURN_MASK_ALL)
+ && core_bfd == NULL) + && core_bfd == NULL)
catch_command_errors (symbol_file_add_main, symarg, catch_command_errors_const (symbol_file_add_main, symarg,
!batch_flag, RETURN_MASK_ALL); !batch_flag, RETURN_MASK_ALL);
} }

View File

@ -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.6.90.20140127.orig/gdb/proc-service.list 2014-02-06 17:32:42.810640320 +0100
+++ gdb-7.4.50.20120602/gdb/elfread.c 2012-06-02 21:35:31.106502660 +0200 +++ gdb-7.6.90.20140127/gdb/proc-service.list 2014-02-06 17:33:35.406696964 +0100
@@ -1658,6 +1658,19 @@ build_id_to_filename (struct build_id *b @@ -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> #include <dlfcn.h>
#endif #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 /* This MISSING_RPM_HASH tracker is used to collect all the missing rpm files
and avoid their duplicities during a single inferior run. */ 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;
};

View File

@ -1,9 +1,11 @@
warning: Skipping deprecated .gdb_index section warning: Skipping deprecated .gdb_index section
https://bugzilla.redhat.com/show_bug.cgi?id=953585 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 Index: gdb-7.6.90.20140127/gdb/dwarf2read.c
+++ 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 --- 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". */ "set use-deprecated-index-sections on". */
if (version < 6 && !deprecated_ok) if (version < 6 && !deprecated_ok)
{ {
@ -18,7 +20,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=953585
static int warning_printed = 0; static int warning_printed = 0;
if (!warning_printed) if (!warning_printed)
{ {
@@ -2711,6 +2719,8 @@ to use the section anyway."), @@ -3046,6 +3054,8 @@ to use the section anyway."),
warning_printed = 1; warning_printed = 1;
} }
return 0; 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 /* 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 of the TU (for symbols coming from TUs),
--- gdb-7.5.91.20130407-orig/gdb/elfread.c 2013-04-22 15:47:18.637807200 +0200 Index: gdb-7.6.90.20140127/gdb/build-id.c
+++ 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; --- 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. */ /* Returns the count of newly added rpms. */
static int static int
@ -38,7 +42,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=953585
{ {
static int rpm_init_done = 0; static int rpm_init_done = 0;
rpmts ts; 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); mi = rpmtsInitIterator_p (ts, RPMTAG_BASENAMES, filename, 0);
if (mi != NULL) if (mi != NULL)
{ {
@ -47,7 +51,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=953585
{ {
Header h; Header h;
char *debuginfo, **slot, *s, *s2; 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); xfree (debuginfo);
count++; count++;
} }
@ -83,7 +87,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=953585
rpmdbFreeIterator_p (mi); 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 static int

View File

@ -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.7.orig/gdb/build-id.c 2014-02-09 17:47:19.091979560 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/elfread.c 2013-08-07 15:01:35.000000000 +0200 +++ gdb-7.7/gdb/build-id.c 2014-02-09 17:50:48.936211228 +0100
@@ -1863,9 +1863,9 @@ missing_rpm_enlist_1 (const char *filena @@ -828,9 +828,9 @@ missing_rpm_enlist (const char *filename
if (h == NULL) if (h == NULL)
break; break;
@ -15,7 +15,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
&err); &err);
if (!debuginfo) if (!debuginfo)
{ {
@@ -1873,60 +1873,19 @@ missing_rpm_enlist_1 (const char *filena @@ -838,60 +838,19 @@ missing_rpm_enlist (const char *filename
err); err);
continue; 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 /* Base package name for `debuginfo-install'. We do not use the
`yum' command directly as the line `yum' command directly as the line
yum --enablerepo='*debug*' install NAME-debuginfo.ARCH 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); (int (*) (const void *, const void *)) missing_rpm_list_compar);
printf_unfiltered (_("Missing separate debuginfos, use: %s"), 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; for (array_iter = array; array_iter < array + missing_rpm_list_entries;
array_iter++) 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, fprintf_unfiltered (gdb_stdlog,
_("Missing separate debuginfo for %s\n"), binary); _("Missing separate debuginfo for %s\n"), binary);
if (debug != NULL) if (debug != NULL)

File diff suppressed because it is too large Load Diff

View File

@ -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.90.20140127.orig/gdb/corelow.c 2014-01-27 02:57:53.000000000 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/corelow.c 2013-08-02 17:07:28.434753293 +0200 +++ gdb-7.6.90.20140127/gdb/corelow.c 2014-02-06 16:46:52.261646499 +0100
@@ -48,6 +48,9 @@ @@ -48,6 +48,10 @@
#include "gdb_bfd.h" #include "gdb_bfd.h"
#include "completer.h" #include "completer.h"
#include "filestuff.h" #include "filestuff.h"
+#include "auxv.h" +#include "auxv.h"
+#include "elf/common.h" +#include "elf/common.h"
+#include "gdbcmd.h" +#include "gdbcmd.h"
+#include "build-id.h"
#ifndef O_LARGEFILE #ifndef O_LARGEFILE
#define O_LARGEFILE 0 #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. */ 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; + CORE_ADDR at_entry;
+ struct elf_build_id *build_id; + struct elf_build_id *build_id;
+ char *exec_filename, *debug_filename; + char *execfilename, *debug_filename;
+ char *build_id_filename; + char *build_id_filename;
+ struct cleanup *back_to; + 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 + file - such .eh_frame would not be found if SYMFILE_OBJFILE would refer
+ directly to the separate debug info file. */ + 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); + make_cleanup (xfree, build_id_filename);
+ +
+ if (exec_filename != NULL) + if (execfilename != NULL)
+ { + {
+ make_cleanup (xfree, exec_filename); + make_cleanup (xfree, execfilename);
+ exec_file_attach (exec_filename, from_tty); + exec_file_attach (execfilename, from_tty);
+ symbol_file_add_main (exec_filename, from_tty); + symbol_file_add_main (execfilename, from_tty);
+ if (symfile_objfile != NULL) + if (symfile_objfile != NULL)
+ symfile_objfile->flags |= OBJF_BUILD_ID_CORE_LOADED; + 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. */ /* This routine opens and sets up the core file bfd. */
static void 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); 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); post_create_inferior (&core_ops, from_tty);
/* Now go through the target stack looking for threads since there /* 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 (); init_core_ops ();
add_target_with_completer (&core_ops, filename_completer); 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, + NULL, NULL, NULL,
+ &setlist, &showlist); + &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.90.20140127.orig/gdb/doc/gdb.texinfo 2014-02-06 16:46:51.804645989 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo 2013-08-02 17:07:28.443753304 +0200 +++ gdb-7.6.90.20140127/gdb/doc/gdb.texinfo 2014-02-06 16:46:52.110646331 +0100
@@ -17119,6 +17119,27 @@ information files. @@ -17413,6 +17413,27 @@ information files.
@end table @end table
@ -125,11 +126,19 @@ Index: gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo
@cindex @code{.gnu_debuglink} sections @cindex @code{.gnu_debuglink} sections
@cindex debug link sections @cindex debug link sections
A debug link is a special section of the executable file named 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.90.20140127.orig/gdb/solib-svr4.c 2014-01-27 02:57:53.000000000 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/solib-svr4.c 2013-08-02 17:07:28.444753305 +0200 +++ gdb-7.6.90.20140127/gdb/solib-svr4.c 2014-02-06 16:49:27.508819174 +0100
@@ -1365,9 +1365,52 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD @@ -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; 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 + /* Missing the build-id matching separate debug info file
+ would be handled while SO_NAME gets loaded. */ + 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) + if (name != NULL)
+ { + {
+ strncpy (new->so_name, name, SO_NAME_MAX_PATH_SIZE - 1); + 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); xfree (buffer);
/* If this entry has no name, or its name matches the name /* 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.90.20140127.orig/gdb/elfread.c 2014-01-27 02:57:53.000000000 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/elfread.c 2013-08-02 17:09:06.460881503 +0200 +++ gdb-7.6.90.20140127/gdb/elfread.c 2014-02-06 16:46:52.249646486 +0100
@@ -45,6 +45,11 @@ @@ -1316,9 +1316,10 @@ elf_symfile_read (struct objfile *objfil
#include "regcache.h" && objfile->separate_debug_objfile == NULL
#include "bcache.h" && objfile->separate_debug_objfile_backlink == NULL)
#include "gdb_bfd.h" {
- 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 "libbfd.h"
+#include "gdbcore.h" +#include "gdbcore.h"
+#include "gdbcmd.h" +#include "gdbcmd.h"
+#include "observer.h" +#include "observer.h"
+#include <sys/stat.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_NONE 0
+#define BUILD_ID_VERBOSE_FILENAMES 1 +#define BUILD_ID_VERBOSE_FILENAMES 1
+#define BUILD_ID_VERBOSE_BINARY_PARSE 2 +#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. +/* Locate NT_GNU_BUILD_ID and return its matching debug filename.
+ FIXME: NOTE decoding should be unified with the BFD core notes decoding. */ + 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 * +static struct elf_build_id *
+build_id_buf_get (bfd *templ, gdb_byte *buf, bfd_size_type size) +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; + return NULL;
+} +}
+
+/* Separate debuginfo files have corrupted PHDR but SHDR is correct there. +/* Separate debuginfo files have corrupted PHDR but SHDR is correct there.
+ Locate NT_GNU_BUILD_ID from ABFD and return its content. */ + Locate NT_GNU_BUILD_ID from ABFD and return its content. */
+
static const struct elf_build_id * static const struct elf_build_id *
-build_id_bfd_get (bfd *abfd) -build_id_bfd_get (bfd *abfd)
+build_id_bfd_shdr_get (bfd *abfd) +build_id_bfd_shdr_get (bfd *abfd)
{ {
if (!bfd_check_format (abfd, bfd_object) if (!bfd_check_format (abfd, bfd_object)
|| bfd_get_flavour (abfd) != bfd_target_elf_flavour || 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; return elf_tdata (abfd)->build_id;
} }
@ -609,23 +752,23 @@ Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
+ return retval; + return retval;
+} +}
+ +
/* Return if FILENAME has NT_GNU_BUILD_ID matching the CHECK value. */ /* See build-id.h. */
static int int
@@ -1114,7 +1510,7 @@ build_id_verify (const char *filename, c @@ -53,7 +449,7 @@ build_id_verify (bfd *abfd, size_t check
if (abfd == NULL) const struct elf_build_id *found;
return 0; int retval = 0;
- found = build_id_bfd_get (abfd); - found = build_id_bfd_get (abfd);
+ found = build_id_bfd_shdr_get (abfd); + found = build_id_bfd_shdr_get (abfd);
if (found == NULL) if (found == NULL)
warning (_("File \"%s\" has no build-id, file skipped"), filename); warning (_("File \"%s\" has no build-id, file skipped"),
@@ -1131,16 +1527,53 @@ build_id_verify (const char *filename, c @@ -68,20 +464,56 @@ build_id_verify (bfd *abfd, size_t check
return retval;
} }
static char * +static char *
-build_id_to_debug_filename (const struct elf_build_id *build_id)
+link_resolve (const char *symlink, int level) +link_resolve (const char *symlink, int level)
+{ +{
+ char buf[PATH_MAX + 1], *target, *retval; + char buf[PATH_MAX + 1], *target, *retval;
@ -661,28 +804,33 @@ Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
+ return retval; + return retval;
+} +}
+ +
+char * /* See build-id.h. */
+build_id_to_filename (const struct elf_build_id *build_id, char **link_return,
+ int add_debug_suffix) 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, *debugdir;
+ char *link_all = NULL; + char *link, *debugdir, *link_all = NULL;
VEC (char_ptr) *debugdir_vec; VEC (char_ptr) *debugdir_vec;
struct cleanup *back_to; struct cleanup *back_to;
int ix; int ix;
bfd *abfd = NULL;
/* DEBUG_FILE_DIRECTORY/.build-id/ab/cdef */ /* DEBUG_FILE_DIRECTORY/.build-id/ab/cdef */
- link = alloca (strlen (debug_file_directory) + (sizeof "/.build-id/" - 1) + 1 - link = alloca (strlen (debug_file_directory) + (sizeof "/.build-id/" - 1) + 1
- + 2 * build_id->size + (sizeof ".debug" - 1) + 1); - + 2 * build_id_len + (sizeof ".debug" - 1) + 1);
+ link = xmalloc (strlen (debug_file_directory) + 2 * build_id->size + 50); + link = xmalloc (strlen (debug_file_directory) + 2 * build_id_len + 50);
/* Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will /* Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will
cause "/.build-id/..." lookups. */ 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); size_t debugdir_len = strlen (debugdir);
const gdb_byte *data = build_id->data; const gdb_byte *data = build_id;
size_t size = build_id->size; size_t size = build_id_len;
- char *s; - char *s;
char *filename = NULL;
+ unsigned seqno; + unsigned seqno;
+ struct stat statbuf_trash; + struct stat statbuf_trash;
+ /* Initialize it just to avoid a GCC false warning. */ + /* 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); memcpy (link, debugdir, debugdir_len);
s = &link[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++ = '/'; *s++ = '/';
while (size-- > 0) while (size-- > 0)
s += sprintf (s, "%02x", (unsigned) *data++); s += sprintf (s, "%02x", (unsigned) *data++);
- strcpy (s, ".debug"); - 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++) + for (seqno = 0;; seqno++)
+ { + {
+ char *s2; + char *s2;
+
- /* lrealpath() is expensive even for the usually non-existent files. */
- if (access (link, F_OK) == 0)
- filename = lrealpath (link);
+ if (seqno) + if (seqno)
+ { + {
+ /* There can be multiple build-id symlinks pointing to real files + /* 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; + 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); + xfree (filename);
+ retval = NULL; + continue;
+ } + }
+
+ if (retval) - if (filename == NULL)
- continue;
+ if (build_id_verify (abfd, build_id_len, build_id))
+ break; + 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); + xfree (link0);
+ break; + break;
+ } + }
@ -757,14 +922,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
+ https://bugzilla.redhat.com/show_bug.cgi?id=981154 */ + https://bugzilla.redhat.com/show_bug.cgi?id=981154 */
+ link0_resolved = link_resolve (link0, 0); + link0_resolved = link_resolve (link0, 0);
+ xfree (link0); + xfree (link0);
+
- if (retval != NULL && !build_id_verify (retval, build_id))
+ if (link_all == NULL) + if (link_all == NULL)
+ link_all = xstrdup (link0_resolved); + link_all = link0_resolved;
+ else + else
{ + {
- xfree (retval);
- retval = NULL;
+ size_t len_orig = strlen (link_all); + size_t len_orig = strlen (link_all);
+ +
+ link_all = xrealloc (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 + /* Use whitespace instead of DIRNAME_SEPARATOR to be compatible with
+ its possible use as an argument for installation command. */ + its possible use as an argument for installation command. */
+ link_all[len_orig] = ' '; + link_all[len_orig] = ' ';
+
- gdb_bfd_unref (abfd);
- abfd = NULL;
+ strcpy (&link_all[len_orig + 1], link0_resolved); + strcpy (&link_all[len_orig + 1], link0_resolved);
}
+ xfree (link0_resolved); + xfree (link0_resolved);
+ } + }
+ }
+
+ if (link_return != NULL) + if (link_return != NULL)
+ { + {
if (retval != NULL) + if (abfd != NULL)
- break;
+ { + {
+ *link_return = link; + *link_return = link;
+ link = NULL; + link = NULL;
@ -797,9 +960,24 @@ Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
+ xfree (link_all); + xfree (link_all);
do_cleanups (back_to); 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 +/* This MISSING_FILEPAIR_HASH tracker is used only for the duplicite messages
+ Try to install the hash file ... + Try to install the hash file ...
+ avoidance. */ + avoidance. */
@ -936,7 +1114,9 @@ Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
+ debug); + 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)
+find_separate_debug_file_by_buildid (struct objfile *objfile, +find_separate_debug_file_by_buildid (struct objfile *objfile,
+ char **build_id_filename_return) + 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); + build_id = build_id_bfd_shdr_get (objfile->obfd);
if (build_id != NULL) if (build_id != NULL)
{ {
char *build_id_name; bfd *abfd;
- build_id_name = build_id_to_debug_filename (build_id); - abfd = build_id_to_debug_bfd (build_id->size, build_id->data);
+ build_id_name = build_id_to_filename (build_id, build_id_filename_return, + abfd = build_id_to_debug_bfd (build_id->size, build_id->data,
+ 1); + build_id_filename_return, 1);
/* Prevent looping on a stripped .debug file. */ /* Prevent looping on a stripped .debug file. */
if (build_id_name != NULL if (abfd != NULL
&& filename_cmp (build_id_name, objfile->name) == 0) && filename_cmp (bfd_get_filename (abfd),
@@ -1207,7 +1862,7 @@ find_separate_debug_file_by_buildid (str @@ -166,3 +839,21 @@ 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;
} }
return NULL; 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); +extern void _initialize_build_id (void);
}
}
@@ -1790,4 +2452,16 @@ _initialize_elfread (void)
elf_objfile_gnu_ifunc_cache_data = register_objfile_data ();
gnu_ifunc_fns_p = &elf_gnu_ifunc_fns;
+ +
+void
+_initialize_build_id (void)
+{
+ add_setshow_zinteger_cmd ("build-id-verbose", no_class, &build_id_verbose, + add_setshow_zinteger_cmd ("build-id-verbose", no_class, &build_id_verbose,
+ _("\ + _("\
+Set debugging level of the build-id locator."), _("\ +Set debugging level of the build-id locator."), _("\
@ -1009,116 +1159,42 @@ Index: gdb-7.6.50.20130731-cvs/gdb/elfread.c
+ &setlist, &showlist); + &setlist, &showlist);
+ +
+ observer_attach_executable_changed (debug_print_executable_changed); + 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"),

View File

@ -3,12 +3,12 @@
Port to GDB-6.8pre. Port to GDB-6.8pre.
Remove the `[' character from the GDB-6.8 default message. 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.6.90.20140127.orig/gdb/linux-nat.c 2014-02-04 23:47:39.275034491 +0100
+++ gdb-7.2.50.20110320/gdb/linux-nat.c 2011-03-20 16:59:51.000000000 +0100 +++ gdb-7.6.90.20140127/gdb/linux-nat.c 2014-02-04 23:48:11.943074132 +0100
@@ -716,7 +716,7 @@ holding the child stopped. Try \"set de @@ -426,7 +426,7 @@ holding the child stopped. Try \"set de
remove_breakpoints_pid (GET_PID (inferior_ptid)); remove_breakpoints_pid (ptid_get_pid (inferior_ptid));
} }
- if (info_verbose || debug_linux_nat) - if (info_verbose || debug_linux_nat)
@ -16,10 +16,10 @@ Index: gdb-7.2.50.20110320/gdb/linux-nat.c
{ {
target_terminal_ours (); target_terminal_ours ();
fprintf_filtered (gdb_stdlog, 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 --- /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 @@ @@ -0,0 +1,57 @@
+/* This testcase is part of GDB, the GNU debugger. +/* 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; + 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 --- /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 @@ @@ -0,0 +1,36 @@
+# Copyright 2007 Free Software Foundation, Inc. +# Copyright 2007 Free Software Foundation, Inc.
+ +

View File

@ -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.6.90.20140127.orig/gdb/infrun.c 2014-02-04 23:48:27.262092869 +0100
+++ gdb-7.5.50.20130118/gdb/infrun.c 2013-01-19 20:56:34.662918474 +0100 +++ gdb-7.6.90.20140127/gdb/infrun.c 2014-02-04 23:48:31.674096613 +0100
@@ -1628,7 +1628,7 @@ static const char *const scheduler_enums @@ -1618,7 +1618,7 @@ static const char *const scheduler_enums
schedlock_step, schedlock_step,
NULL NULL
}; };
@ -11,10 +11,10 @@ Index: gdb-7.5.50.20130118/gdb/infrun.c
static void static void
show_scheduler_mode (struct ui_file *file, int from_tty, show_scheduler_mode (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value) 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.6.90.20140127.orig/gdb/testsuite/gdb.mi/mi-cli.exp 2014-02-04 23:48:27.263092871 +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/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 @@ -163,7 +163,7 @@ mi_execute_to "exec-continue" "breakpoin
# Test that the token is output even for CLI commands # Test that the token is output even for CLI commands
# Also test that *stopped includes frame information. # 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" "34 next: run"
if {!$async} { 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.6.90.20140127.orig/gdb/testsuite/gdb.mi/mi-logging.exp 2014-02-04 23:48:27.263092871 +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/gdb/testsuite/gdb.mi/mi-logging.exp 2014-02-04 23:48:31.674096613 +0100
@@ -53,7 +53,7 @@ close $chan @@ -53,7 +53,7 @@ close $chan
set mi_log_prompt "\[(\]gdb\[)\] \[\r\n\]+" 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" pass "Redirect log file contents"
} else { } else {
fail "Redirect log file contents" 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.6.90.20140127.orig/gdb/testsuite/gdb.mi/mi-console.exp 2014-02-04 23:48:31.675096666 +0100
+++ gdb-7.5.50.20130118/gdb/testsuite/gdb.mi/mi-console.exp 2013-01-19 20:56:55.783961145 +0100 +++ gdb-7.6.90.20140127/gdb/testsuite/gdb.mi/mi-console.exp 2014-02-04 23:48:55.981127963 +0100
@@ -45,6 +45,9 @@ if { [gdb_compile "${srcdir}/${subdir}/ @@ -60,6 +60,9 @@ if { [gdb_compile "${srcdir}/${subdir}/
mi_run_to_main mi_run_to_main
+# thread-id=\"all\" vs. thread-id=\"1\" below: +# thread-id=\"all\" vs. thread-id=\"1\" below:
+mi_gdb_test "210-gdb-set scheduler-locking off" "210\\^done" "set scheduler-locking off" +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 # The output we get from the target depends on how it is hosted. If
mi_gdb_test "220-exec-next" \ # we are semihosted (e.g., the sim or a remote target that supports
"220\\^running(\r\n\\*running,thread-id=\"all\")?" \ # the File I/O remote protocol extension), we see the target I/O

View File

@ -21,11 +21,11 @@
Port to GDB-6.8pre. 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.6.90.20140127.orig/gdb/inferior.h 2014-01-27 22:05:28.801895347 +0100
+++ gdb-7.5.50.20130215/gdb/inferior.h 2013-02-15 22:31:42.993944957 +0100 +++ gdb-7.6.90.20140127/gdb/inferior.h 2014-01-27 22:33:45.230157813 +0100
@@ -160,7 +160,15 @@ extern void reopen_exec_file (void); @@ -155,7 +155,15 @@ extern void reopen_exec_file (void);
/* The `resume' routine should only be called in special circumstances. /* The `resume' routine should only be called in special circumstances.
Normally, use `proceed', which handles a lot of bookkeeping. */ 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); 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.6.90.20140127.orig/gdb/infrun.c 2014-01-27 22:05:28.804895349 +0100
+++ gdb-7.5.50.20130215/gdb/infrun.c 2013-02-15 22:34:07.132144519 +0100 +++ gdb-7.6.90.20140127/gdb/infrun.c 2014-01-27 22:35:12.781224279 +0100
@@ -81,7 +81,7 @@ static int follow_fork (void); @@ -83,7 +83,7 @@ static int follow_fork (void);
static void set_schedlock_func (char *args, int from_tty, static void set_schedlock_func (char *args, int from_tty,
struct cmd_list_element *c); 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, static int currently_stepping_or_nexting_callback (struct thread_info *tp,
void *data); 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) else if ((scheduler_mode == schedlock_on)
|| (scheduler_mode == schedlock_step || (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. */ /* User-settable 'scheduler' mode requires solo thread resume. */
resume_ptid = inferior_ptid; 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). STEP nonzero if we should step (zero to continue instead).
SIG is the signal to give the inferior (zero for none). */ SIG is the signal to give the inferior (zero for none). */
void void
@ -74,23 +74,23 @@ Index: gdb-7.5.50.20130215/gdb/infrun.c
{ {
int should_resume = 1; int should_resume = 1;
struct cleanup *old_cleanups = make_cleanup (resume_cleanups, 0); 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) if (debug_infrun)
fprintf_unfiltered (gdb_stdlog, fprintf_unfiltered (gdb_stdlog,
- "infrun: resume (step=%d, signal=%d), " - "infrun: resume (step=%d, signal=%s), "
+ "infrun: resume (step=%s, signal=%d), " + "infrun: resume (step=%s, signal=%s), "
"trap_expected=%d, current thread [%s] at %s\n", "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 + (step == RESUME_STEP_CONTINUE
+ ? "RESUME_STEP_CONTINUE" + ? "RESUME_STEP_CONTINUE"
+ : (step == RESUME_STEP_USER ? "RESUME_STEP_USER" + : (step == RESUME_STEP_USER ? "RESUME_STEP_USER"
+ : "RESUME_STEP_NEEDED")), + : "RESUME_STEP_NEEDED")),
+ sig, tp->control.trap_expected, + gdb_signal_to_symbol_string (sig),
tp->control.trap_expected,
target_pid_to_str (inferior_ptid), target_pid_to_str (inferior_ptid),
paddress (gdbarch, pc)); paddress (gdbarch, pc));
@@ -2147,7 +2152,7 @@ proceed (CORE_ADDR addr, enum gdb_signal
@@ -2140,7 +2145,7 @@ proceed (CORE_ADDR addr, enum gdb_signal
CORE_ADDR pc; CORE_ADDR pc;
struct address_space *aspace; struct address_space *aspace;
/* GDB may force the inferior to step due to various reasons. */ /* 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 /* If we're stopped at a fork/vfork, follow the branch set by the
"set follow-fork-mode" command; otherwise, we'll just proceed "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. actually be executing the breakpoint insn anyway.
We'll be (un-)executing the previous instruction. */ We'll be (un-)executing the previous instruction. */
@ -115,7 +115,7 @@ Index: gdb-7.5.50.20130215/gdb/infrun.c
} }
else 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 is required it returns TRUE and sets the current thread to
the old thread. */ the old thread. */
if (prepare_to_proceed (step)) if (prepare_to_proceed (step))
@ -131,7 +131,7 @@ Index: gdb-7.5.50.20130215/gdb/infrun.c
{ {
tp->control.trap_expected = 1; tp->control.trap_expected = 1;
/* If displaced stepping is enabled, we can step over the /* 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. */ /* Reset to normal state. */
init_infwait_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) /* Wait for it to stop (if not standalone)
and in any case decode why it stopped, and act accordingly. */ 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? */ /* 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 /* 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.6.90.20140127.orig/gdb/linux-nat.c 2014-01-27 22:05:28.806895350 +0100
+++ gdb-7.5.50.20130215/gdb/linux-nat.c 2013-02-15 22:31:42.997944967 +0100 +++ gdb-7.6.90.20140127/gdb/linux-nat.c 2014-01-27 22:33:45.330157889 +0100
@@ -2971,7 +2971,11 @@ static int @@ -2697,7 +2697,11 @@ static int
select_singlestep_lwp_callback (struct lwp_info *lp, void *data) select_singlestep_lwp_callback (struct lwp_info *lp, void *data)
{ {
if (lp->last_resume_kind == resume_step if (lp->last_resume_kind == resume_step
@ -188,11 +188,11 @@ Index: gdb-7.5.50.20130215/gdb/linux-nat.c
return 1; return 1;
else else
return 0; 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.6.90.20140127.orig/gdb/linux-nat.h 2014-01-27 22:05:28.807895351 +0100
+++ gdb-7.5.50.20130215/gdb/linux-nat.h 2013-02-15 22:31:42.998944969 +0100 +++ gdb-7.6.90.20140127/gdb/linux-nat.h 2014-01-27 22:33:45.334157892 +0100
@@ -73,8 +73,8 @@ struct lwp_info @@ -59,8 +59,8 @@ struct lwp_info
/* If non-zero, a pending wait status. */ /* If non-zero, a pending wait status. */
int status; int status;

View File

@ -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

View File

@ -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.7.orig/gdb/linux-nat.c 2014-02-09 19:13:32.998214571 +0100
+++ gdb-7.5.50.20130215/gdb/linux-nat.c 2013-02-15 22:44:59.638985719 +0100 +++ gdb-7.7/gdb/linux-nat.c 2014-02-09 19:17:37.561499606 +0100
@@ -181,6 +181,9 @@ blocked. */ @@ -176,6 +176,9 @@ blocked. */
static struct target_ops *linux_ops; static struct target_ops *linux_ops;
static struct target_ops linux_ops_saved; 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. */ /* The method to call, if any, when a new thread is attached. */
static void (*linux_nat_new_thread) (struct lwp_info *); 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; parent_inf->waiting_for_vfork_done = 0;
} }
else if (detach_fork) 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. */ /* 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) if (debug_linux_nat)
fprintf_unfiltered (gdb_stdlog, fprintf_unfiltered (gdb_stdlog,
"LNPAW: Attaching to a stopped process\n"); "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 /* The process is definitely stopped. It is in a job control
stop, unless the kernel predates the TASK_STOPPED / 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)); 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); + *status = W_STOPCODE (SIGSTOP);
+ +
return 0; 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 else
linux_ops->to_detach (ops, args, from_tty); linux_ops->to_detach (ops, args, from_tty);
@ -55,7 +55,7 @@ Index: gdb-7.5.50.20130215/gdb/linux-nat.c
} }
/* Resume LP. */ /* 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. */ linux_nat_resume_callback. */
lp->stopped = 0; 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 + it as stopped if the user detaches. PTID variable has PID set to LWP
+ while we need to check the real PID here. */ + 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; + pid_was_stopped = 0;
+ +
if (resume_many) if (resume_many)
iterate_over_lwps (ptid, linux_nat_resume_callback, NULL); 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. */ /* Let the arch-specific native code know this process is gone. */
linux_nat_forget_process (pid); 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 /* 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.7.orig/gdb/testsuite/gdb.threads/attach-stopped.exp 2014-01-08 10:23:36.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/gdb/testsuite/gdb.threads/attach-stopped.exp 2014-02-09 19:13:33.321214945 +0100
@@ -61,7 +61,65 @@ proc corefunc { threadtype } { @@ -61,7 +61,65 @@ proc corefunc { threadtype } {
gdb_reinitialize_dir $srcdir/$subdir gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile} gdb_load ${binfile}

View File

@ -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.6.90.20140127.orig/gdb/gdb_bfd.c 2014-02-06 17:39:46.370096290 +0100
+++ gdb-7.5.50.20130118/gdb/gdb_bfd.c 2013-01-18 23:12:06.841787893 +0100 +++ gdb-7.6.90.20140127/gdb/gdb_bfd.c 2014-02-06 17:40:14.996127247 +0100
@@ -27,12 +27,14 @@ @@ -29,12 +29,14 @@
#ifdef HAVE_ZLIB_H #ifdef HAVE_ZLIB_H
#include <zlib.h> #include <zlib.h>
#endif #endif
@ -15,9 +15,9 @@ Index: gdb-7.5.50.20130118/gdb/gdb_bfd.c
#endif #endif
+#endif +#endif
/* An object of this type is stored in the section's user data when typedef bfd *bfdp;
mapping a section. */ DEF_VEC_P (bfdp);
@@ -205,6 +207,7 @@ free_one_bfd_section (bfd *abfd, asectio @@ -210,6 +212,7 @@ free_one_bfd_section (bfd *abfd, asectio
if (sect != NULL && sect->data != NULL) if (sect != NULL && sect->data != NULL)
{ {
@ -25,7 +25,7 @@ Index: gdb-7.5.50.20130118/gdb/gdb_bfd.c
#ifdef HAVE_MMAP #ifdef HAVE_MMAP
if (sect->map_addr != NULL) 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 else
#endif #endif
@ -33,7 +33,7 @@ Index: gdb-7.5.50.20130118/gdb/gdb_bfd.c
xfree (sect->data); 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) if (descriptor->data != NULL)
goto done; goto done;
@ -41,7 +41,7 @@ Index: gdb-7.5.50.20130118/gdb/gdb_bfd.c
#ifdef HAVE_MMAP #ifdef HAVE_MMAP
if (!bfd_is_section_compressed (abfd, sectp)) 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 */ #endif /* HAVE_MMAP */

View File

@ -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
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0404d1c6ee6b3ddd811722b5197944758d37b4591c216030effbac204f5a6c23
size 24846320

View File

@ -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 (&regs, 0, sizeof (regs));
iov.iov_base = &regs;
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 (&regs, 0, sizeof (regs));
iov.iov_base = &regs;
iov.iov_len = sizeof (regs);
count = watchpoint ? aarch64_num_wp_regs : aarch64_num_bp_regs;

File diff suppressed because it is too large Load Diff

View File

@ -37,22 +37,22 @@ gdb/gdbserver/
(linux_create_inferior, linux_tracefork_child): Call it instead of (linux_create_inferior, linux_tracefork_child): Call it instead of
direct ptrace. 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.90.20140127.orig/gdb/common/linux-ptrace.c 2014-02-06 17:40:32.530145960 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/common/linux-ptrace.c 2013-08-02 16:34:16.122910934 +0200 +++ gdb-7.6.90.20140127/gdb/common/linux-ptrace.c 2014-02-06 17:48:16.329644534 +0100
@@ -29,6 +29,10 @@ @@ -32,6 +32,10 @@
#include "gdb_assert.h"
#include "gdb_wait.h" #include <stdint.h>
+#ifdef HAVE_SELINUX_SELINUX_H +#ifdef HAVE_SELINUX_SELINUX_H
+# include <selinux/selinux.h> +# include <selinux/selinux.h>
+#endif /* HAVE_SELINUX_SELINUX_H */ +#endif /* HAVE_SELINUX_SELINUX_H */
+ +
/* Find all possible reasons we could fail to attach PID and append these /* Stores the currently supported ptrace options. A value of
newline terminated reason strings to initialized BUFFER. '\0' termination -1 means we did not check for features yet. A value of 0 means
of BUFFER must be done by the caller. */ there are no supported features. */
@@ -48,6 +52,8 @@ linux_ptrace_attach_warnings (pid_t pid, @@ -56,6 +60,8 @@ linux_ptrace_attach_warnings (pid_t pid,
buffer_xml_printf (buffer, _("warning: process %d is a zombie " buffer_xml_printf (buffer, _("warning: process %d is a zombie "
"- the process has already terminated\n"), "- the process has already terminated\n"),
(int) pid); (int) pid);
@ -61,7 +61,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/common/linux-ptrace.c
} }
#if defined __i386__ || defined __x86_64__ #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 (); 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")); + "(gdb) shell sudo setsebool deny_ptrace=0"));
+#endif /* HAVE_LIBSELINUX */ +#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.90.20140127.orig/gdb/common/linux-ptrace.h 2014-02-06 17:40:35.506149162 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/common/linux-ptrace.h 2013-08-02 16:34:16.122910934 +0200 +++ gdb-7.6.90.20140127/gdb/common/linux-ptrace.h 2014-02-06 17:48:00.601627995 +0100
@@ -69,5 +69,6 @@ struct buffer; @@ -85,6 +85,7 @@ struct buffer;
extern void linux_ptrace_attach_warnings (pid_t pid, struct buffer *buffer); extern void linux_ptrace_attach_warnings (pid_t pid, struct buffer *buffer);
extern void linux_ptrace_init_warnings (void); extern void linux_ptrace_init_warnings (void);
+extern void linux_ptrace_create_warnings (struct buffer *buffer); +extern void linux_ptrace_create_warnings (struct buffer *buffer);
extern void linux_enable_event_reporting (pid_t pid);
#endif /* COMMON_LINUX_PTRACE_H */ extern int linux_supports_tracefork (void);
Index: gdb-7.6.50.20130731-cvs/gdb/configure.ac 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.90.20140127.orig/gdb/configure.ac 2014-02-06 17:40:32.532145962 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/configure.ac 2013-08-02 16:34:46.519960063 +0200 +++ gdb-7.6.90.20140127/gdb/configure.ac 2014-02-06 17:40:35.507149163 +0100
@@ -2071,6 +2071,10 @@ case $host_os in @@ -1975,6 +1975,10 @@ case $host_os in
esac esac
AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.]) 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. dnl Handle optional features that can be enabled.
# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR, # 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.90.20140127.orig/gdb/gdbserver/configure.ac 2014-02-06 17:40:32.532145962 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/gdbserver/configure.ac 2013-08-02 16:35:06.634991892 +0200 +++ gdb-7.6.90.20140127/gdb/gdbserver/configure.ac 2014-02-06 17:40:35.507149163 +0100
@@ -471,6 +471,10 @@ if $want_ipa ; then @@ -454,6 +454,10 @@ if $want_ipa ; then
fi fi
fi fi
@ -122,11 +123,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/gdbserver/configure.ac
AC_SUBST(GDBSERVER_DEPFILES) AC_SUBST(GDBSERVER_DEPFILES)
AC_SUBST(GDBSERVER_LIBS) AC_SUBST(GDBSERVER_LIBS)
AC_SUBST(srv_xmlbuiltin) 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.90.20140127.orig/gdb/gdbserver/linux-low.c 2014-02-06 17:40:32.534145964 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/gdbserver/linux-low.c 2013-08-02 16:34:16.126910941 +0200 +++ gdb-7.6.90.20140127/gdb/gdbserver/linux-low.c 2014-02-06 17:49:32.385726514 +0100
@@ -622,6 +622,29 @@ add_lwp (ptid_t ptid) @@ -543,6 +543,29 @@ add_lwp (ptid_t ptid)
return lwp; return lwp;
} }
@ -140,7 +141,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/gdbserver/linux-low.c
+ +
+ errno = 0; + errno = 0;
+ if (ptrace (PTRACE_TRACEME, 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; + return;
+ +
+ save_errno = errno; + 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. /* Start an inferior process and returns its pid.
ALLARGS is a vector of program-name and args. */ 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) 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); + linux_traceme (program);
#ifndef __ANDROID__ /* Bionic doesn't use SIGRTMIN the way glibc does. */ #ifndef __ANDROID__ /* Bionic doesn't use SIGRTMIN the way glibc does. */
signal (__SIGRTMIN + 1, SIG_DFL); signal (__SIGRTMIN + 1, SIG_DFL);
@@ -4685,7 +4708,7 @@ linux_tracefork_grandchild (void *arg) Index: gdb-7.6.90.20140127/gdb/inf-ptrace.c
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
=================================================================== ===================================================================
--- gdb-7.6.50.20130731-cvs.orig/gdb/inf-ptrace.c 2013-08-02 16:33:52.772872421 +0200 --- gdb-7.6.90.20140127.orig/gdb/inf-ptrace.c 2014-02-06 17:40:32.535145965 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/inf-ptrace.c 2013-08-02 16:34:16.126910941 +0200 +++ gdb-7.6.90.20140127/gdb/inf-ptrace.c 2014-02-06 17:40:35.510149167 +0100
@@ -104,7 +104,15 @@ static void @@ -105,7 +105,15 @@ static void
inf_ptrace_me (void) inf_ptrace_me (void)
{ {
/* "Trace me, Dr. Memory!" */ /* "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 /* 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.90.20140127.orig/gdb/linux-nat.c 2014-02-06 17:40:32.537145968 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/linux-nat.c 2013-08-02 16:34:16.128910944 +0200 +++ gdb-7.6.90.20140127/gdb/linux-nat.c 2014-02-06 17:40:35.511149168 +0100
@@ -1554,6 +1554,7 @@ linux_nat_create_inferior (struct target @@ -1283,6 +1283,7 @@ linux_nat_create_inferior (struct target
#ifdef HAVE_PERSONALITY #ifdef HAVE_PERSONALITY
int personality_orig = 0, personality_set = 0; int personality_orig = 0, personality_set = 0;
#endif /* HAVE_PERSONALITY */ #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 /* The fork_child mechanism is synchronous and calls target_wait, so
we have to mask the async mode. */ 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. */ /* Make sure we report all signals during startup. */
linux_nat_pass_signals (0, NULL); linux_nat_pass_signals (0, NULL);
@ -218,7 +210,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/linux-nat.c
#ifdef HAVE_PERSONALITY #ifdef HAVE_PERSONALITY
if (personality_set) 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)); safe_strerror (errno));
} }
#endif /* HAVE_PERSONALITY */ #endif /* HAVE_PERSONALITY */
@ -243,11 +235,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/linux-nat.c
} }
static void 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.90.20140127.orig/gdb/config.in 2014-02-06 17:40:32.538145969 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/config.in 2013-08-02 16:36:16.249099841 +0200 +++ gdb-7.6.90.20140127/gdb/config.in 2014-02-06 17:40:35.511149168 +0100
@@ -225,6 +225,9 @@ @@ -213,6 +213,9 @@
/* Define if librpm library is being used. */ /* Define if librpm library is being used. */
#undef HAVE_LIBRPM #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. */ /* Define to 1 if you have the <libunwind-ia64.h> header file. */
#undef HAVE_LIBUNWIND_IA64_H #undef HAVE_LIBUNWIND_IA64_H
@@ -372,6 +375,9 @@ @@ -345,6 +348,9 @@
/* Define to 1 if you have the `sbrk' function. */ /* Define to 1 if you have the `sbrk' function. */
#undef HAVE_SBRK #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. */ /* Define to 1 if you have the `setlocale' function. */
#undef HAVE_SETLOCALE #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.90.20140127.orig/gdb/configure 2014-02-06 17:40:32.541145972 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/configure 2013-08-02 16:36:14.665097434 +0200 +++ gdb-7.6.90.20140127/gdb/configure 2014-02-06 17:40:35.515149172 +0100
@@ -12851,6 +12851,64 @@ cat >>confdefs.h <<_ACEOF @@ -12861,6 +12861,64 @@ cat >>confdefs.h <<_ACEOF
_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, # Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
# except that the argument to --with-sysroot is optional. # 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.90.20140127.orig/gdb/gdbserver/config.in 2014-02-06 17:40:32.542145973 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/gdbserver/config.in 2013-08-02 16:36:21.719108141 +0200 +++ gdb-7.6.90.20140127/gdb/gdbserver/config.in 2014-02-06 17:54:06.923021799 +0100
@@ -76,6 +76,12 @@ @@ -78,6 +78,9 @@
/* Define to 1 if you have the `dl' library (-ldl). */ /* Define to 1 if you have the `mcheck' library (-lmcheck). */
#undef HAVE_LIBDL #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). */ +/* Define to 1 if you have the `selinux' library (-lselinux). */
+#undef HAVE_LIBSELINUX +#undef HAVE_LIBSELINUX
+ +
/* Define if the target supports branch tracing. */ /* Define if the target supports branch tracing. */
#undef HAVE_LINUX_BTRACE #undef HAVE_LINUX_BTRACE
@@ -146,6 +152,9 @@ @@ -151,6 +154,9 @@
/* Define to 1 if you have the `readlink' function. */ /* Define to 1 if you have the `readlink' function. */
#undef HAVE_READLINK #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. */ /* Define to 1 if you have the <sgtty.h> header file. */
#undef HAVE_SGTTY_H #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.90.20140127.orig/gdb/gdbserver/configure 2014-02-06 17:40:32.543145974 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/gdbserver/configure 2013-08-02 16:36:20.237105894 +0200 +++ gdb-7.6.90.20140127/gdb/gdbserver/configure 2014-02-06 17:40:35.516149173 +0100
@@ -6003,6 +6003,64 @@ if $want_ipa ; then @@ -6170,6 +6170,64 @@ if $want_ipa ; then
fi fi
fi fi

View File

@ -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.6.90.20140127.orig/gdb/config/i386/linux64.mh 2014-02-06 17:30:23.021489736 +0100
+++ gdb-7.5.91.20130323/gdb/config/i386/linux64.mh 2013-03-23 19:48:37.707761117 +0100 +++ gdb-7.6.90.20140127/gdb/config/i386/linux64.mh 2014-02-06 17:30:44.984513403 +0100
@@ -4,7 +4,7 @@ NATDEPFILES= inf-ptrace.o fork-child.o \ @@ -5,7 +5,7 @@ NATDEPFILES= inf-ptrace.o fork-child.o \
linux-nat.o linux-osdata.o \
proc-service.o linux-thread-db.o linux-fork.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= config/nm-linux.h
+NAT_FILE= nm-linux64.h +NAT_FILE= nm-linux64.h
NAT_CDEPS = $(srcdir)/proc-service.list NAT_CDEPS = $(srcdir)/proc-service.list
# The dynamically loaded libthread_db needs access to symbols in the # 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.6.90.20140127.orig/gdb/config/i386/linux.mh 2014-02-06 17:30:15.893482056 +0100
+++ gdb-7.5.91.20130323/gdb/config/i386/linux.mh 2013-03-23 19:48:22.757990256 +0100 +++ gdb-7.6.90.20140127/gdb/config/i386/linux.mh 2014-02-06 17:30:23.021489736 +0100
@@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
# Host: Intel 386 running GNU/Linux. # 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 \ NATDEPFILES= inf-ptrace.o fork-child.o \
i386-nat.o i386-linux-nat.o \ i386-nat.o i386-linux-nat.o \
proc-service.o linux-thread-db.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 --- /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 @@ @@ -0,0 +1,28 @@
+/* Native support for GNU/Linux i386. +/* 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 +#define target_can_use_hardware_watchpoint(type, cnt, ot) 1
+ +
+#endif /* NM_LINUX64_H */ +#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 --- /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 @@ @@ -0,0 +1,28 @@
+/* Native support for GNU/Linux amd64. +/* 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 +#define target_can_use_hardware_watchpoint(type, cnt, ot) 1
+ +
+#endif /* NM_LINUX64_H */ +#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.6.90.20140127.orig/gdb/target.h 2014-02-06 17:30:15.894482057 +0100
+++ gdb-7.5.91.20130323/gdb/target.h 2013-03-23 19:48:22.758990238 +0100 +++ gdb-7.6.90.20140127/gdb/target.h 2014-02-06 17:30:23.022489737 +0100
@@ -1563,8 +1563,10 @@ extern char *target_thread_name (struct @@ -1521,8 +1521,10 @@ extern char *target_thread_name (struct
bp_hardware_breakpoint. CNT is the number of such watchpoints used so far bp_hardware_breakpoint. CNT is the number of such watchpoints used so far
(including this one?). OTHERTYPE is who knows what... */ (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 /* Returns the number of debug registers needed to watch the given
memory region, or zero if not supported. */ 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 --- /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 @@ @@ -0,0 +1,40 @@
+# Copyright 2009, 2010 Free Software Foundation, Inc. +# Copyright 2009, 2010 Free Software Foundation, Inc.
+ +

View File

@ -1,5 +1,7 @@
--- /dev/null 2010-06-08 20:35:46.800278452 +0200 Index: gdb-7.7/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.S
+++ gdb-7.1/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.S 2010-06-09 15:22:57.000000000 +0200 ===================================================================
--- /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 @@ @@ -0,0 +1,167 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
@ -168,8 +170,10 @@
+ .string "main" + .string "main"
+ .ident "GCC: (GNU) 4.4.4 20100503 (Red Hat 4.4.4-2)" + .ident "GCC: (GNU) 4.4.4 20100503 (Red Hat 4.4.4-2)"
+ .section .note.GNU-stack,"",@progbits + .section .note.GNU-stack,"",@progbits
--- /dev/null 2010-06-08 20:35:46.800278452 +0200 Index: gdb-7.7/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.c
+++ gdb-7.1/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.c 2010-06-09 15:21:35.000000000 +0200 ===================================================================
--- /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 @@ @@ -0,0 +1,22 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
@ -193,8 +197,10 @@
+{ +{
+ return 0; + return 0;
+} +}
--- /dev/null 2010-06-08 20:35:46.800278452 +0200 Index: gdb-7.7/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.exp
+++ gdb-7.1/gdb/testsuite/gdb.dwarf2/rh-dwarf4-x86_64.exp 2010-06-09 15:26:21.000000000 +0200 ===================================================================
--- /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 @@ @@ -0,0 +1,42 @@
+# Copyright 2010 Free Software Foundation, Inc. +# Copyright 2010 Free Software Foundation, Inc.
+ +
@ -229,7 +235,7 @@
+set testfile "rh-dwarf4-x86_64" +set testfile "rh-dwarf4-x86_64"
+set srcfile ${testfile}.S +set srcfile ${testfile}.S
+set executable ${testfile}.x +set executable ${testfile}.x
+set binfile ${objdir}/${subdir}/${executable} +set binfile [standard_output_file ${executable}]
+ +
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" object {}] != "" } { +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" object {}] != "" } {
+ return -1 + return -1

View File

@ -3,89 +3,10 @@ Subject: [patch] Fix GNU/Linux core open: Can't read pathname for load map: Inp
[ New patch variant. ] [ New patch variant. ]
Index: gdb-7.6.50.20130731-cvs/gdb/solib-svr4.c commit 7d760051ffb8a23cdc51342d4e6243fbc462f73f
=================================================================== Author: Ulrich Weigand <uweigand@de.ibm.com>
--- gdb-7.6.50.20130731-cvs.orig/gdb/solib-svr4.c 2013-08-02 16:27:28.831259468 +0200 Date: Wed Sep 25 11:52:50 2013 +0000
+++ 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
+ }
+}
Index: gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/solib-symbol.exp 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 --- gdb-7.6.50.20130731-cvs.orig/gdb/testsuite/gdb.base/solib-symbol.exp 2013-08-02 16:27:28.833259471 +0200

View File

@ -40,12 +40,12 @@ Subject: [PATCH 4/4] add gdb-add-index
5 files changed, 57 insertions(+), 1 deletions(-) 5 files changed, 57 insertions(+), 1 deletions(-)
create mode 100755 gdb/gdb-add-index 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.90.20140127.orig/gdb/Makefile.in 2014-02-06 17:37:54.555975958 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/Makefile.in 2013-08-02 16:32:08.260690156 +0200 +++ gdb-7.6.90.20140127/gdb/Makefile.in 2014-02-06 17:38:52.110038415 +0100
@@ -1070,6 +1070,15 @@ install-only: install-gstack $(CONFIG_IN @@ -1093,6 +1093,15 @@ install-only: install-gstack $(CONFIG_IN
$(INSTALL_PROGRAM) gcore \ $(INSTALL_SCRIPT) gcore \
$(DESTDIR)$(bindir)/$$transformed_name; \ $(DESTDIR)$(bindir)/$$transformed_name; \
fi fi
+ transformed_name=`t='$(program_transform_name)'; \ + transformed_name=`t='$(program_transform_name)'; \
@ -55,16 +55,16 @@ Index: gdb-7.6.50.20130731-cvs/gdb/Makefile.in
+ else \ + else \
+ true ; \ + true ; \
+ fi ; \ + fi ; \
+ $(INSTALL_PROGRAM) $(srcdir)/gdb-add-index \ + $(INSTALL_PROGRAM) $(srcdir)/contrib/gdb-add-index.sh \
+ $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) + $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT)
@$(MAKE) DO=install "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do @$(MAKE) DO=install "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do
install-python: install-strip:
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:31:59.616674218 +0200 --- gdb-7.6.90.20140127.orig/gdb/doc/gdb.texinfo 2014-02-06 17:37:50.822971940 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo 2013-08-02 16:32:08.271690176 +0200 +++ gdb-7.6.90.20140127/gdb/doc/gdb.texinfo 2014-02-06 17:37:54.565975968 +0100
@@ -17447,6 +17447,14 @@ There are currently some limitation on i @@ -17749,6 +17749,14 @@ There are currently some limitation on i
for DWARF debugging information, not stabs. And, they do not for DWARF debugging information, not stabs. And, they do not
currently work for programs using Ada. currently work for programs using Ada.
@ -79,7 +79,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo
@node Symbol Errors @node Symbol Errors
@section Errors Reading Symbol Files @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 * gdbserver man:: Remote Server for the GNU Debugger man page
* gcore man:: Generate a core file of a running program * gcore man:: Generate a core file of a running program
* gdbinit man:: gdbinit scripts * gdbinit man:: gdbinit scripts
@ -87,7 +87,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/doc/gdb.texinfo
@end menu @end menu
@node gdb man @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. 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 If the @code{info} and @code{gdb} programs and @value{GDBN}'s Texinfo
documentation are properly installed at your site, the command 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 @smallexample
info gdb 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.90.20140127.orig/gdb/doc/Makefile.in 2014-02-06 17:37:50.824971942 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/gdb-add-index 2013-08-02 16:32:08.271690176 +0200 +++ gdb-7.6.90.20140127/gdb/doc/Makefile.in 2014-02-06 17:37:54.565975968 +0100
@@ -0,0 +1,30 @@ @@ -165,7 +165,7 @@ POD2MAN5 = pod2man --center="GNU Develop
+#! /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
--release="gdb-`sed q version.subst`" --section=5 --release="gdb-`sed q version.subst`" --section=5
# List of man pages generated from gdb.texi # 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 MAN5S = gdbinit.5
MANS = $(MAN1S) $(MAN5S) 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) mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
rm -f gcore.pod rm -f gcore.pod

View File

@ -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.90.20140127.orig/gdb/dwarf2read.c 2014-02-06 18:18:09.676572271 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/dwarf2read.c 2013-08-02 16:38:16.159277461 +0200 +++ gdb-7.6.90.20140127/gdb/dwarf2read.c 2014-02-06 18:18:42.664607823 +0100
@@ -16654,6 +16654,25 @@ new_symbol_full (struct die_info *die, s @@ -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). */ /* Cache this symbol's name and the name's demangled form (if any). */
SYMBOL_SET_LANGUAGE (sym, cu->language, &objfile->objfile_obstack); SYMBOL_SET_LANGUAGE (sym, cu->language, &objfile->objfile_obstack);
linkagename = dwarf2_physname (name, die, cu); 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 + * invalid IFUNC DW_AT_linkage_name: memmove strstr time
+ * http://sourceware.org/bugzilla/show_bug.cgi?id=14166 */ + * http://sourceware.org/bugzilla/show_bug.cgi?id=14166 */
+ if (strcmp (linkagename, "strstr") == 0 + if (strcmp (linkagename, "strstr") == 0
+ && strstr (objfile->name, "/libc") != NULL) + && strstr (objfile_name (objfile), "/libc") != NULL)
+ { + {
+ struct objfile *objfile_msym; + struct objfile *objfile_msym;
+ struct minimal_symbol *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); SYMBOL_SET_NAMES (sym, linkagename, strlen (linkagename), 0, objfile);
/* Fortran does not have mangling standard and the mangling does differ /* 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 --- /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 @@ @@ -0,0 +1,108 @@
+# Copyright (C) 2012 Free Software Foundation, Inc. +# Copyright (C) 2012 Free Software Foundation, Inc.
+ +

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:b475a3ef42507a47b1ea4b7f9a4849287b4c713e5081ec86874eaa7da194f78b oid sha256:1877172a7efbf7540290471e64816c9549b24a65e825f0e1a725ac950b4e5029
size 11754 size 11744

View File

@ -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. */

View File

@ -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.7.orig/gdb/auxv.c 2014-02-06 03:21:29.000000000 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/auxv.c +++ 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 @@ -442,6 +442,7 @@ fprint_target_auxv (struct ui_file *file
TAG (AT_IGNOREPPC, _("Entry should be ignored"), dec); TAG (AT_IGNOREPPC, _("Entry should be ignored"), dec);
TAG (AT_BASE_PLATFORM, _("String identifying base platform"), str); 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_EXECFN, _("File name of executable"), str);
TAG (AT_SECURE, _("Boolean, was exec setuid-like?"), dec); TAG (AT_SECURE, _("Boolean, was exec setuid-like?"), dec);
TAG (AT_SYSINFO, _("Special system info/entry points"), hex); 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.7.orig/gdb/gdbarch.c 2014-02-06 03:21:29.000000000 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/configure.host +++ gdb-7.7/gdb/gdbarch.c 2014-02-10 18:07:42.000000000 +0100
@@ -129,18 +129,18 @@ mips64*-*-openbsd*) gdb_host=obsd64 ;; @@ -229,6 +229,7 @@ struct gdbarch
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
gdbarch_return_in_first_hidden_param_p_ftype *return_in_first_hidden_param_p; gdbarch_return_in_first_hidden_param_p_ftype *return_in_first_hidden_param_p;
gdbarch_skip_prologue_ftype *skip_prologue; gdbarch_skip_prologue_ftype *skip_prologue;
gdbarch_skip_main_prologue_ftype *skip_main_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_inner_than_ftype *inner_than;
gdbarch_breakpoint_from_pc_ftype *breakpoint_from_pc; gdbarch_breakpoint_from_pc_ftype *breakpoint_from_pc;
gdbarch_remote_breakpoint_from_pc_ftype *remote_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 */ default_return_in_first_hidden_param_p, /* return_in_first_hidden_param_p */
0, /* skip_prologue */ 0, /* skip_prologue */
0, /* skip_main_prologue */ 0, /* skip_main_prologue */
@ -153,7 +30,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/gdbarch.c
0, /* inner_than */ 0, /* inner_than */
0, /* breakpoint_from_pc */ 0, /* breakpoint_from_pc */
default_remote_breakpoint_from_pc, /* remote_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) if (gdbarch->skip_prologue == 0)
fprintf_unfiltered (log, "\n\tskip_prologue"); fprintf_unfiltered (log, "\n\tskip_prologue");
/* Skip verify of skip_main_prologue, has predicate. */ /* 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) if (gdbarch->inner_than == 0)
fprintf_unfiltered (log, "\n\tinner_than"); fprintf_unfiltered (log, "\n\tinner_than");
if (gdbarch->breakpoint_from_pc == 0) 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", "gdbarch_dump: single_step_through_delay = <%s>\n",
host_address_to_string (gdbarch->single_step_through_delay)); host_address_to_string (gdbarch->single_step_through_delay));
fprintf_unfiltered (file, 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_dump: gdbarch_skip_main_prologue_p() = %d\n",
gdbarch_skip_main_prologue_p (gdbarch)); gdbarch_skip_main_prologue_p (gdbarch));
fprintf_unfiltered (file, 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 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) gdbarch_inner_than (struct gdbarch *gdbarch, CORE_ADDR lhs, CORE_ADDR rhs)
{ {
gdb_assert (gdbarch != NULL); 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.7.orig/gdb/gdbarch.h 2014-02-06 03:21:29.000000000 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/gdbarch.h +++ gdb-7.7/gdb/gdbarch.h 2014-02-10 18:07:42.000000000 +0100
@@ -487,6 +487,12 @@ typedef CORE_ADDR (gdbarch_skip_main_pro @@ -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 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); 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); 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 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); 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.7.orig/gdb/gdbarch.sh 2014-02-06 03:21:29.000000000 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/gdbarch.sh +++ gdb-7.7/gdb/gdbarch.sh 2014-02-10 18:07:42.000000000 +0100
@@ -527,6 +527,7 @@ m:int:return_in_first_hidden_param_p:str @@ -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_prologue:CORE_ADDR ip:ip:0:0
M:CORE_ADDR:skip_main_prologue:CORE_ADDR ip:ip 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 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: 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. # 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.7.orig/gdb/infrun.c 2014-02-10 18:07:40.000000000 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/gdbtypes.c +++ gdb-7.7/gdb/infrun.c 2014-02-10 18:07:42.000000000 +0100
@@ -111,8 +111,8 @@ const struct floatformat *floatformats_v @@ -3170,6 +3170,10 @@ fill_in_stop_func (struct gdbarch *gdbar
&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
ecs->stop_func_start ecs->stop_func_start
+= gdbarch_deprecated_function_start_offset (gdbarch); += 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; 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.7.orig/gdb/ppc-linux-tdep.c 2014-02-06 03:21:29.000000000 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/ppc64-tdep.c +++ gdb-7.7/gdb/ppc-linux-tdep.c 2014-02-10 18:07:42.000000000 +0100
@@ -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
@@ -44,6 +44,7 @@ @@ -44,6 +44,7 @@
#include "observer.h" #include "observer.h"
#include "auxv.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 /* Implementation of `gdbarch_stap_is_single_operand', as defined in
gdbarch.h. */ 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) if (tdep->wordsize == 8)
{ {
@ -636,10 +212,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/ppc-linux-tdep.c
/* Shared library handling. */ /* Shared library handling. */
set_gdbarch_skip_trampoline_code (gdbarch, ppc64_skip_trampoline_code); 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.7.orig/gdb/ppc-sysv-tdep.c 2014-02-10 18:07:42.000000000 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/ppc-sysv-tdep.c +++ 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 @@ -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; 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.7.orig/gdb/ppc-tdep.h 2014-02-06 03:21:29.000000000 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/ppc-tdep.h +++ 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 @@ -182,6 +182,15 @@ extern void ppc_collect_vsxregset (const
/* Private data that this module attaches to struct gdbarch. */ /* 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. */ /* How to pass vector arguments. Never set to AUTO or LAST. */
enum powerpc_vector_abi vector_abi; 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.7.orig/gdb/rs6000-tdep.c 2014-02-10 18:07:39.000000000 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/rs6000-tdep.c +++ gdb-7.7/gdb/rs6000-tdep.c 2014-02-10 18:07:42.000000000 +0100
@@ -48,6 +48,7 @@ @@ -48,6 +48,7 @@
#include "elf-bfd.h" #include "elf-bfd.h"
@ -1378,48 +954,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/rs6000-tdep.c
#include "solib-svr4.h" #include "solib-svr4.h"
#include "ppc-tdep.h" #include "ppc-tdep.h"
@@ -1667,7 +1668,19 @@ skip_prologue (struct gdbarch *gdbarch, @@ -2723,10 +2724,10 @@ dfp_pseudo_register_read (struct 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
else else
{ {
status = regcache_raw_read (regcache, tdep->ppc_fp0_regnum + 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; return status;
@@ -2742,9 +2753,9 @@ dfp_pseudo_register_write (struct gdbarc @@ -2752,9 +2753,9 @@ dfp_pseudo_register_write (struct gdbarc
else else
{ {
regcache_raw_write (regcache, tdep->ppc_fp0_regnum + 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; int reg_index = reg_nr - tdep->ppc_efpr0_regnum;
/* Read the portion that overlaps the VMX register. */ /* 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); 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; int reg_index = reg_nr - tdep->ppc_efpr0_regnum;
/* Write the portion that overlaps the VMX register. */ /* 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); 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; enum auto_boolean soft_float_flag = powerpc_soft_float_global;
int soft_float; int soft_float;
enum powerpc_vector_abi vector_abi = powerpc_vector_abi_global; 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, int have_fpu = 1, have_spe = 0, have_mq = 0, have_altivec = 0, have_dfp = 0,
have_vsx = 0; have_vsx = 0;
int tdesc_wordsize = -1; 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 #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) if (soft_float_flag == AUTO_BOOLEAN_AUTO && from_elf_exec)
{ {
switch (bfd_elf_get_obj_attr_int (info.abfd, OBJ_ATTR_GNU, 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 #endif
@ -1510,7 +1045,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/rs6000-tdep.c
if (soft_float_flag == AUTO_BOOLEAN_TRUE) if (soft_float_flag == AUTO_BOOLEAN_TRUE)
soft_float = 1; soft_float = 1;
else if (soft_float_flag == AUTO_BOOLEAN_FALSE) 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 meaningful, because 64-bit CPUs can run in 32-bit mode. So, perform
separate word size check. */ separate word size check. */
tdep = gdbarch_tdep (arches->gdbarch); 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) if (tdep && tdep->soft_float != soft_float)
continue; continue;
if (tdep && tdep->vector_abi != vector_abi) 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 = XCALLOC (1, struct gdbarch_tdep);
tdep->wordsize = wordsize; tdep->wordsize = wordsize;
@ -1527,11 +1062,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/rs6000-tdep.c
tdep->soft_float = soft_float; tdep->soft_float = soft_float;
tdep->vector_abi = vector_abi; 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.7.orig/gdb/symtab.c 2014-02-10 18:07:39.000000000 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/symtab.c +++ gdb-7.7/gdb/symtab.c 2014-02-10 18:07:42.000000000 +0100
@@ -2882,6 +2882,8 @@ skip_prologue_sal (struct symtab_and_lin @@ -2941,6 +2941,8 @@ skip_prologue_sal (struct symtab_and_lin
/* Skip "first line" of function (which is actually its prologue). */ /* Skip "first line" of function (which is actually its prologue). */
pc += gdbarch_deprecated_function_start_offset (gdbarch); pc += gdbarch_deprecated_function_start_offset (gdbarch);
@ -1540,10 +1075,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/symtab.c
if (skip) if (skip)
pc = gdbarch_skip_prologue (gdbarch, pc); 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.7.orig/gdb/testsuite/gdb.arch/altivec-regs.exp 2014-02-06 03:21:29.000000000 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/altivec-regs.exp +++ 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" @@ -118,7 +118,7 @@ gdb_test "info reg vscr" "vscr.*0x1\t1"
if {$endianness == "big"} { 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.." 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} { 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.7.orig/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp 2014-02-06 03:21:29.000000000 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp +++ gdb-7.7/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp 2014-02-10 18:07:42.000000000 +0100
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
# Testcase for ppc decimal128 pseudo-registers. # 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." verbose "Skipping powerpc Decimal128 pseudo-registers testcase."
return 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.7.orig/gdb/testsuite/gdb.arch/vsx-regs.exp 2014-02-06 03:21:29.000000000 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.arch/vsx-regs.exp +++ 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 { @@ -58,19 +58,46 @@ if ![runto_main] then {
gdb_suppress_tests 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." 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.7.orig/gdb/testsuite/gdb.base/sigbpt.exp 2014-02-06 03:21:29.000000000 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/sigbpt.exp +++ 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" @@ -76,7 +76,7 @@ gdb_test "break keeper"
set bowler_addrs bowler set bowler_addrs bowler
set segv_addr none 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 test "stepping to fault"
set signame "SIGSEGV" set signame "SIGSEGV"
gdb_test_multiple "stepi" "$test" { 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.7.orig/gdb/testsuite/gdb.base/step-bt.exp 2014-01-08 10:23:36.000000000 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/testsuite/gdb.base/step-bt.exp +++ 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 $ @@ -24,7 +24,7 @@ if {[prepare_for_testing $testfile.exp $
return -1 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.* file .*$srcfile, line .*" \
"breakpoint at first instruction of hello()" "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.7.orig/include/elf/common.h 2014-02-06 03:21:29.000000000 +0100
+++ gdb-7.6.50.20130731-cvs/include/elf/common.h +++ gdb-7.7/include/elf/common.h 2014-02-10 18:07:42.000000000 +0100
@@ -959,6 +959,7 @@ @@ -959,6 +959,7 @@
#define AT_BASE_PLATFORM 24 /* String identifying real platform, #define AT_BASE_PLATFORM 24 /* String identifying real platform,
may differ from AT_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. */ #define AT_EXECFN 31 /* Filename of executable. */
/* Pointer to the global system page used for system calls and other /* Pointer to the global system page used for system calls and other
nice things. */ 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

View 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

View File

@ -52,10 +52,10 @@ Content-Type: text/x-patch
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=bitpos-ensure-size_t.patch 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.6.90.20140127.orig/gdb/alpha-tdep.c 2014-02-06 18:18:51.005616676 +0100
+++ gdb-7.5.50.20130118/gdb/alpha-tdep.c 2013-01-18 23:34:02.678051846 +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 @@ -414,6 +414,13 @@ alpha_push_dummy_call (struct gdbarch *g
accumulate_size = 0; accumulate_size = 0;
else else
@ -70,11 +70,11 @@ Index: gdb-7.5.50.20130118/gdb/alpha-tdep.c
sp -= accumulate_size; sp -= accumulate_size;
/* Keep sp aligned to a multiple of 16 as the ABI requires. */ /* 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.6.90.20140127.orig/gdb/cp-valprint.c 2014-02-06 18:18:51.006616677 +0100
+++ gdb-7.5.50.20130118/gdb/cp-valprint.c 2013-01-18 23:34:02.679051848 +0100 +++ gdb-7.6.90.20140127/gdb/cp-valprint.c 2014-02-06 18:18:53.671621349 +0100
@@ -540,6 +540,8 @@ cp_print_value (struct type *type, struc @@ -537,6 +537,8 @@ cp_print_value (struct type *type, struc
gdb_byte *buf; gdb_byte *buf;
struct cleanup *back_to; struct cleanup *back_to;
@ -83,11 +83,11 @@ Index: gdb-7.5.50.20130118/gdb/cp-valprint.c
buf = xmalloc (TYPE_LENGTH (baseclass)); buf = xmalloc (TYPE_LENGTH (baseclass));
back_to = make_cleanup (xfree, buf); 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.6.90.20140127.orig/gdb/dwarf2loc.c 2014-02-06 18:18:51.007616678 +0100
+++ gdb-7.5.50.20130118/gdb/dwarf2loc.c 2013-01-18 23:34:02.680051851 +0100 +++ gdb-7.6.90.20140127/gdb/dwarf2loc.c 2014-02-06 18:18:53.672621293 +0100
@@ -1784,6 +1784,8 @@ read_pieced_value (struct value *v) @@ -1821,6 +1821,8 @@ read_pieced_value (struct value *v)
this_size = (this_size_bits + source_offset_bits % 8 + 7) / 8; this_size = (this_size_bits + source_offset_bits % 8 + 7) / 8;
source_offset = source_offset_bits / 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) if (buffer_size < this_size)
{ {
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 else
{ {
@ -104,11 +104,11 @@ Index: gdb-7.5.50.20130118/gdb/dwarf2loc.c
if (buffer_size < this_size) if (buffer_size < this_size)
{ {
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.6.90.20140127.orig/gdb/findcmd.c 2014-02-06 18:18:51.008616679 +0100
+++ gdb-7.5.50.20130118/gdb/findcmd.c 2013-01-18 23:34:02.680051851 +0100 +++ gdb-7.6.90.20140127/gdb/findcmd.c 2014-02-06 18:18:53.673621239 +0100
@@ -187,6 +187,7 @@ parse_find_args (char *args, ULONGEST *m @@ -185,6 +185,7 @@ parse_find_args (char *args, ULONGEST *m
size_t current_offset = pattern_buf_end - pattern_buf; size_t current_offset = pattern_buf_end - pattern_buf;
pattern_buf_size = pattern_buf_size_need * 2; 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 = xrealloc (pattern_buf, pattern_buf_size);
pattern_buf_end = pattern_buf + current_offset; 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.6.90.20140127.orig/gdb/p-valprint.c 2014-02-06 18:18:51.008616679 +0100
+++ gdb-7.5.50.20130118/gdb/p-valprint.c 2013-01-18 23:34:02.680051851 +0100 +++ gdb-7.6.90.20140127/gdb/p-valprint.c 2014-02-06 18:18:53.673621239 +0100
@@ -797,6 +797,7 @@ pascal_object_print_value (struct type * @@ -798,6 +798,7 @@ pascal_object_print_value (struct type *
gdb_byte *buf; gdb_byte *buf;
struct cleanup *back_to; struct cleanup *back_to;
@ -128,11 +128,11 @@ Index: gdb-7.5.50.20130118/gdb/p-valprint.c
buf = xmalloc (TYPE_LENGTH (baseclass)); buf = xmalloc (TYPE_LENGTH (baseclass));
back_to = make_cleanup (xfree, buf); 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.6.90.20140127.orig/gdb/utils.c 2014-02-06 18:18:51.008616679 +0100
+++ gdb-7.5.50.20130118/gdb/utils.c 2013-01-18 23:34:02.681051854 +0100 +++ gdb-7.6.90.20140127/gdb/utils.c 2014-02-06 18:18:53.674621186 +0100
@@ -3219,6 +3219,18 @@ host_address_to_string (const void *addr @@ -3169,6 +3169,18 @@ host_address_to_string (const void *addr
return str; return str;
} }
@ -151,11 +151,11 @@ Index: gdb-7.5.50.20130118/gdb/utils.c
char * char *
gdb_realpath (const char *filename) 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.6.90.20140127.orig/gdb/valops.c 2014-02-06 18:18:51.009616680 +0100
+++ gdb-7.5.50.20130118/gdb/valops.c 2013-01-18 23:34:02.682051856 +0100 +++ gdb-7.6.90.20140127/gdb/valops.c 2014-02-06 18:18:53.675621135 +0100
@@ -2369,6 +2369,7 @@ search_struct_method (const char *name, @@ -2184,6 +2184,7 @@ search_struct_method (const char *name,
struct cleanup *back_to; struct cleanup *back_to;
CORE_ADDR address; CORE_ADDR address;
@ -163,11 +163,11 @@ Index: gdb-7.5.50.20130118/gdb/valops.c
tmp = xmalloc (TYPE_LENGTH (baseclass)); tmp = xmalloc (TYPE_LENGTH (baseclass));
back_to = make_cleanup (xfree, tmp); back_to = make_cleanup (xfree, tmp);
address = value_address (*arg1p); 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.6.90.20140127.orig/gdb/value.c 2014-02-06 18:18:51.010616681 +0100
+++ gdb-7.5.50.20130118/gdb/value.c 2013-01-18 23:34:02.683051858 +0100 +++ gdb-7.6.90.20140127/gdb/value.c 2014-02-06 18:19:10.261637398 +0100
@@ -663,6 +663,7 @@ allocate_value_lazy (struct type *type) @@ -822,6 +822,7 @@ allocate_value_lazy (struct type *type)
description correctly. */ description correctly. */
check_typedef (type); check_typedef (type);
@ -175,8 +175,8 @@ Index: gdb-7.5.50.20130118/gdb/value.c
val = (struct value *) xzalloc (sizeof (struct value)); val = (struct value *) xzalloc (sizeof (struct value));
val->contents = NULL; val->contents = NULL;
val->next = all_values; val->next = all_values;
@@ -694,6 +695,8 @@ allocate_value_lazy (struct type *type) @@ -853,6 +854,8 @@ allocate_value_lazy (struct type *type)
void static void
allocate_value_contents (struct value *val) allocate_value_contents (struct value *val)
{ {
+ ulongest_fits_host_or_error (TYPE_LENGTH (val->enclosing_type)); + 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) if (!val->contents)
val->contents = (gdb_byte *) xzalloc (TYPE_LENGTH (val->enclosing_type)); 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) set_value_enclosing_type (struct value *val, struct type *new_encl_type)
{ {
if (TYPE_LENGTH (new_encl_type) > TYPE_LENGTH (value_enclosing_type (val))) 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; 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.6.90.20140127.orig/gdb/vax-tdep.c 2014-02-06 18:18:51.370617068 +0100
+++ gdb-7.5.50.20130118/gdb/vax-tdep.c 2013-01-18 23:34:34.950094198 +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 @@ -223,6 +223,7 @@ vax_return_value (struct gdbarch *gdbarc
ULONGEST addr; ULONGEST addr;
@ -211,11 +211,11 @@ Index: gdb-7.5.50.20130118/gdb/vax-tdep.c
read_memory (addr, readbuf, len); 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.6.90.20140127.orig/gdb/defs.h 2014-02-06 18:18:51.370617068 +0100
+++ gdb-7.5.50.20130118/gdb/defs.h 2013-01-18 23:34:14.238067193 +0100 +++ gdb-7.6.90.20140127/gdb/defs.h 2014-02-06 18:18:53.677621038 +0100
@@ -801,4 +801,6 @@ enum block_enum @@ -768,4 +768,6 @@ enum block_enum
#include "utils.h" #include "utils.h"

View File

@ -71,7 +71,7 @@ gdb/ChangeLog:
(remote_remove_watchpoint): Likewise. (remote_remove_watchpoint): Likewise.
(remote_watchpoint_addr_within_range): Expand parameter LENGTH (remote_watchpoint_addr_within_range): Expand parameter LENGTH
to LONGEST. to LONGEST.
* s390-nat.c (s390_insert_watchpoint): Expand parameter LEN to * s390-linux-nat.c (s390_insert_watchpoint): Expand parameter LEN to
LONGEST. LONGEST.
(s390_remove_watchpoint): Likewise. (s390_remove_watchpoint): Likewise.
* target.c (update_current_target): Expand parameter LEN for * 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); putpkt (rs->buf);
getpkt (&rs->buf, &rs->buf_size, 0); 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.orig/gdb/s390-linux-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/gdb/s390-linux-nat.c 2013-08-02 16:42:34.103639116 +0200
@@ -516,7 +516,7 @@ s390_fix_watch_points (struct lwp_info * @@ -516,7 +516,7 @@ s390_fix_watch_points (struct lwp_info *
} }

View File

@ -96,7 +96,7 @@ gdb/ChangeLog
LEN to LONGEST. LEN to LONGEST.
(ran_out_of_registers_for_arguments): Expand SPACE, JJ to (ran_out_of_registers_for_arguments): Expand SPACE, JJ to
LONGEST. 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. (is_power_of_two): Expand parameter N to ULONGEST.
(s390_push_dummy_call): Expand LENGTH to ULONGEST. (s390_push_dummy_call): Expand LENGTH to ULONGEST.
* score-tdep.c (score_push_dummy_call): Expand ARGLEN to * score-tdep.c (score_push_dummy_call): Expand ARGLEN to
@ -137,10 +137,10 @@ Content-Type: text/x-patch
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=bitpos-tdep.patch 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.90.20140127.orig/gdb/alpha-tdep.c 2014-02-06 18:20:52.970747716 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/alpha-tdep.c 2013-08-02 16:43:04.723681004 +0200 +++ 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 @@ -299,18 +299,18 @@ alpha_push_dummy_call (struct gdbarch *g
{ {
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); 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); memcpy (arg_reg_buffer + offset, contents, tlen);
offset += tlen; offset += tlen;
contents += 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.90.20140127.orig/gdb/amd64-tdep.c 2014-02-06 18:20:52.972747718 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/amd64-tdep.c 2013-08-02 16:43:04.724681006 +0200 +++ gdb-7.6.90.20140127/gdb/amd64-tdep.c 2014-02-06 18:21:51.106810814 +0100
@@ -616,7 +616,7 @@ amd64_return_value (struct gdbarch *gdba @@ -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]; enum amd64_reg_class class[2];
- int len = TYPE_LENGTH (type); - int len = TYPE_LENGTH (type);
+ LONGEST len = TYPE_LENGTH (type); + LONGEST len = TYPE_LENGTH (type);
static int integer_regnum[] = { AMD64_RAX_REGNUM, AMD64_RDX_REGNUM }; static int integer_regnum[] = { AMD64_RAX_REGNUM, AMD64_RDX_REGNUM };
static int sse_regnum[] = { AMD64_XMM0_REGNUM, AMD64_XMM1_REGNUM }; static int sse_regnum[] = { AMD64_XMM0_REGNUM, AMD64_XMM1_REGNUM };
int integer_reg = 0; int integer_reg = 0;
@@ -769,8 +769,8 @@ amd64_push_arguments (struct regcache *r @@ -784,8 +784,8 @@ amd64_push_arguments (struct regcache *r
that register number (or a negative value otherwise). */ };
int *arg_addr_regno = alloca (nargs * sizeof (int)); struct value **stack_args = alloca (nargs * sizeof (struct value *));
int num_stack_args = 0; int num_stack_args = 0;
- int num_elements = 0; - int num_elements = 0;
- int element = 0; - int element = 0;
@ -208,7 +208,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/amd64-tdep.c
int integer_reg = 0; int integer_reg = 0;
int sse_reg = 0; int sse_reg = 0;
int i; 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++) for (i = 0; i < nargs; i++)
{ {
struct type *type = value_type (args[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]; enum amd64_reg_class class[2];
int needed_integer_regs = 0; int needed_integer_regs = 0;
int needed_sse_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.90.20140127.orig/gdb/amd64-windows-tdep.c 2014-02-06 18:20:52.973747720 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/amd64-windows-tdep.c 2013-08-02 16:43:04.724681006 +0200 +++ gdb-7.6.90.20140127/gdb/amd64-windows-tdep.c 2014-02-06 18:20:57.296752364 +0100
@@ -79,7 +79,7 @@ amd64_windows_return_value (struct gdbar @@ -288,7 +288,7 @@ amd64_windows_return_value (struct gdbar
struct type *type, struct regcache *regcache, struct type *type, struct regcache *regcache,
gdb_byte *readbuf, const gdb_byte *writebuf) 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; int regnum = -1;
/* See if our value is returned through a register. If it is, then /* 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.90.20140127.orig/gdb/arm-tdep.c 2014-02-06 18:20:52.978747725 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/arm-tdep.c 2013-08-02 16:43:04.727681010 +0200 +++ 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 @@ -3498,7 +3498,7 @@ arm_vfp_cprc_reg_char (enum arm_vfp_cprc
array). Vectors and complex types are not currently supported, array). Vectors and complex types are not currently supported,
matching the generic AAPCS support. */ 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 *arg_type;
struct type *target_type; struct type *target_type;
enum type_code typecode; 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.90.20140127.orig/gdb/avr-tdep.c 2014-02-06 18:20:52.980747727 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/avr-tdep.c 2013-08-02 16:43:04.728681011 +0200 +++ gdb-7.6.90.20140127/gdb/avr-tdep.c 2014-02-06 18:20:57.299752367 +0100
@@ -1170,13 +1170,14 @@ avr_dummy_id (struct gdbarch *gdbarch, s @@ -1167,13 +1167,14 @@ avr_dummy_id (struct gdbarch *gdbarch, s
struct stack_item struct stack_item
{ {
@ -329,7 +329,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/avr-tdep.c
{ {
struct stack_item *si; struct stack_item *si;
si = xmalloc (sizeof (struct stack_item)); 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++) 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. */ /* Calculate the potential last register needed. */
last_regnum = regnum - (len + (len & 1)); 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.90.20140127.orig/gdb/bfin-tdep.c 2014-02-06 18:20:52.980747727 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/bfin-tdep.c 2013-08-02 16:43:04.728681011 +0200 +++ 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 @@ -506,7 +506,7 @@ bfin_push_dummy_call (struct gdbarch *gd
gdb_byte buf[4]; gdb_byte buf[4];
int i; int i;
@ -367,11 +367,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/bfin-tdep.c
sp -= container_len; sp -= container_len;
write_memory (sp, value_contents_writeable (args[i]), 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.90.20140127.orig/gdb/cris-tdep.c 2014-02-06 18:20:52.981747728 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/cris-tdep.c 2013-08-02 16:52:28.316491561 +0200 +++ gdb-7.6.90.20140127/gdb/cris-tdep.c 2014-02-06 18:20:57.301752369 +0100
@@ -670,13 +670,13 @@ static CORE_ADDR cris_unwind_sp (struct @@ -665,13 +665,13 @@ static CORE_ADDR cris_unwind_sp (struct
struct stack_item struct stack_item
{ {
@ -387,7 +387,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/cris-tdep.c
{ {
struct stack_item *si; struct stack_item *si;
si = xmalloc (sizeof (struct stack_item)); 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++) 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? */ /* How may registers worth of storage do we need for this argument? */
reg_demand = (len / 4) + (len % 4 != 0 ? 1 : 0); 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.90.20140127.orig/gdb/h8300-tdep.c 2014-02-06 18:20:52.981747728 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/h8300-tdep.c 2013-08-02 16:43:04.730681014 +0200 +++ 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 @@ -640,7 +640,7 @@ h8300_push_dummy_call (struct gdbarch *g
int struct_return, CORE_ADDR struct_addr) 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) 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.90.20140127.orig/gdb/hppa-tdep.c 2014-02-06 18:20:52.982747729 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/hppa-tdep.c 2013-08-02 16:43:04.731681015 +0200 +++ 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 * @@ -961,7 +961,7 @@ hppa64_push_dummy_call (struct gdbarch *
{ {
struct value *arg = args[i]; struct value *arg = args[i];
@ -463,11 +463,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/hppa-tdep.c
int regnum, offset; int regnum, offset;
if (len > 16) 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.90.20140127.orig/gdb/i386-darwin-tdep.c 2014-02-06 18:20:52.982747729 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/i386-darwin-tdep.c 2013-08-02 16:43:04.731681015 +0200 +++ gdb-7.6.90.20140127/gdb/i386-darwin-tdep.c 2014-02-06 18:20:57.302752371 +0100
@@ -166,7 +166,7 @@ i386_darwin_push_dummy_call (struct gdba @@ -164,7 +164,7 @@ i386_darwin_push_dummy_call (struct gdba
for (write_pass = 0; write_pass < 2; write_pass++) 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; int num_m128 = 0;
if (struct_return) 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.90.20140127.orig/gdb/i386-tdep.c 2014-02-06 18:20:52.985747732 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/i386-tdep.c 2013-08-02 16:43:04.733681018 +0200 +++ gdb-7.6.90.20140127/gdb/i386-tdep.c 2014-02-06 18:20:57.303752372 +0100
@@ -2407,7 +2407,7 @@ i386_push_dummy_call (struct gdbarch *gd @@ -2473,7 +2473,7 @@ i386_push_dummy_call (struct gdbarch *gd
gdb_byte buf[4]; gdb_byte buf[4];
int i; int i;
int write_pass; 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 /* Determine the total space required for arguments and struct
return address in a first pass (allowing for 16-byte-aligned 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++) 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) 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++) for (i = 0; i < nargs; i++)
{ {
@ -507,7 +507,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/i386-tdep.c
if (write_pass) 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); struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
enum type_code code = TYPE_CODE (type); 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 gdb_assert (code == TYPE_CODE_STRUCT
|| code == TYPE_CODE_UNION || code == TYPE_CODE_UNION
@@ -3094,7 +3094,7 @@ static int @@ -3249,7 +3249,7 @@ static int
i386_convert_register_p (struct gdbarch *gdbarch, i386_convert_register_p (struct gdbarch *gdbarch,
int regnum, struct type *type) 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 /* Values may be spread across multiple registers. Most debugging
formats aren't expressive enough to specify the locations, so 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) int *optimizedp, int *unavailablep)
{ {
struct gdbarch *gdbarch = get_frame_arch (frame); 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)) if (i386_fp_regnum_p (gdbarch, regnum))
return i387_register_to_value (frame, regnum, type, to, 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, i386_value_to_register (struct frame_info *frame, int regnum,
struct type *type, const gdb_byte *from) 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)) 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.90.20140127.orig/gdb/ia64-tdep.c 2014-02-06 18:20:52.986747733 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/ia64-tdep.c 2013-08-02 16:43:04.734681019 +0200 +++ gdb-7.6.90.20140127/gdb/ia64-tdep.c 2014-02-06 18:20:57.304752373 +0100
@@ -3974,8 +3974,10 @@ ia64_push_dummy_call (struct gdbarch *gd @@ -3851,8 +3851,10 @@ ia64_push_dummy_call (struct gdbarch *gd
int argno; int argno;
struct value *arg; struct value *arg;
struct type *type; struct type *type;
@ -560,10 +560,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/ia64-tdep.c
int floatreg; int floatreg;
ULONGEST bsp; ULONGEST bsp;
CORE_ADDR funcdescaddr, pc, global_pointer; 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.90.20140127.orig/gdb/iq2000-tdep.c 2014-02-06 18:20:52.986747733 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/iq2000-tdep.c 2013-08-02 16:43:04.734681019 +0200 +++ 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 * @@ -654,8 +654,9 @@ iq2000_push_dummy_call (struct gdbarch *
const bfd_byte *val; const bfd_byte *val;
bfd_byte buf[4]; 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. */ /* Used to copy struct arguments into the stack. */
CORE_ADDR struct_ptr; 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.90.20140127.orig/gdb/m32r-tdep.c 2014-02-06 18:20:52.986747733 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/m32r-tdep.c 2013-08-02 16:43:04.734681019 +0200 +++ 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 @@ -689,7 +689,7 @@ m32r_push_dummy_call (struct gdbarch *gd
CORE_ADDR regval; CORE_ADDR regval;
gdb_byte *val; 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. */ /* First force sp to a 4-byte alignment. */
sp = sp & ~3; 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.90.20140127.orig/gdb/m68k-tdep.c 2014-02-06 18:20:52.987747735 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/m68k-tdep.c 2013-08-02 16:43:04.735681021 +0200 +++ 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 @@ -384,7 +384,7 @@ m68k_reg_struct_return_p (struct gdbarch
{ {
struct gdbarch_tdep *tdep = gdbarch_tdep (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 /* Non-scalars bigger than 4 bytes are left aligned, others are
right aligned. */ 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.90.20140127.orig/gdb/m88k-tdep.c 2014-02-06 18:20:52.987747735 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/m88k-tdep.c 2013-08-02 16:43:04.735681021 +0200 +++ 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 @@ -260,13 +260,13 @@ m88k_store_arguments (struct regcache *r
{ {
struct gdbarch *gdbarch = get_regcache_arch (regcache); 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)) 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.90.20140127.orig/gdb/mep-tdep.c 2014-02-06 18:20:52.987747735 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/mep-tdep.c 2013-08-02 16:43:04.735681021 +0200 +++ 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 @@ -2272,7 +2272,7 @@ push_large_arguments (CORE_ADDR sp, int
for (i = 0; i < argc; i++) 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) 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.90.20140127.orig/gdb/mips-tdep.c 2014-02-06 18:20:52.990747738 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/mips-tdep.c 2013-08-02 16:43:04.737681023 +0200 +++ gdb-7.6.90.20140127/gdb/mips-tdep.c 2014-02-06 18:20:57.307752376 +0100
@@ -402,7 +402,7 @@ static void @@ -402,7 +402,7 @@ static void
mips_xfer_register (struct gdbarch *gdbarch, struct regcache *regcache, mips_xfer_register (struct gdbarch *gdbarch, struct regcache *regcache,
int reg_num, int length, int reg_num, int length,
@ -808,11 +808,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/mips-tdep.c
val = value_contents (arg); 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.90.20140127.orig/gdb/mn10300-tdep.c 2014-02-06 18:20:52.991747739 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/mn10300-tdep.c 2013-08-02 16:50:34.212320698 +0200 +++ gdb-7.6.90.20140127/gdb/mn10300-tdep.c 2014-02-06 18:20:57.308752377 +0100
@@ -1228,7 +1228,7 @@ mn10300_push_dummy_call (struct gdbarch @@ -1227,7 +1227,7 @@ mn10300_push_dummy_call (struct gdbarch
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
const int push_size = register_size (gdbarch, E_PC_REGNUM); const int push_size = register_size (gdbarch, E_PC_REGNUM);
int regs_used; int regs_used;
@ -821,10 +821,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/mn10300-tdep.c
int stack_offset = 0; int stack_offset = 0;
int argnum; int argnum;
const gdb_byte *val; 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.90.20140127.orig/gdb/mt-tdep.c 2014-02-06 18:20:52.991747739 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/mt-tdep.c 2013-08-02 16:43:04.737681023 +0200 +++ 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 @@ -783,9 +783,9 @@ mt_push_dummy_call (struct gdbarch *gdba
gdb_byte buf[MT_MAX_STRUCT_SIZE]; gdb_byte buf[MT_MAX_STRUCT_SIZE];
int argreg = MT_1ST_ARGREG; int argreg = MT_1ST_ARGREG;
@ -837,10 +837,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/mt-tdep.c
int i, j; int i, j;
/* First handle however many args we can fit into MT_1ST_ARGREG thru /* 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.90.20140127.orig/gdb/ppc-sysv-tdep.c 2014-02-06 18:20:52.992747740 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/ppc-sysv-tdep.c 2013-08-02 16:43:04.738681025 +0200 +++ 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 @@ -68,7 +68,7 @@ ppc_sysv_abi_push_dummy_call (struct gdb
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int opencl_abi = ppc_sysv_use_opencl_abi (value_type (function)); 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) if (len < tdep->wordsize)
write_memory (gparam + tdep->wordsize - len, val, len); write_memory (gparam + tdep->wordsize - len, val, len);
else 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.90.20140127.orig/gdb/rl78-tdep.c 2014-02-06 18:20:52.992747740 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/rl78-tdep.c 2013-08-02 16:43:04.738681025 +0200 +++ gdb-7.6.90.20140127/gdb/rl78-tdep.c 2014-02-06 18:20:57.309752378 +0100
@@ -1030,8 +1030,8 @@ rl78_push_dummy_call (struct gdbarch *gd @@ -1052,8 +1052,8 @@ rl78_push_dummy_call (struct gdbarch *gd
for (i = nargs - 1; i >= 0; i--) for (i = nargs - 1; i >= 0; i--)
{ {
struct type *value_type = value_enclosing_type (args[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; sp -= container_len;
write_memory (rl78_make_data_address (sp), 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.90.20140127.orig/gdb/rs6000-aix-tdep.c 2014-02-06 18:20:52.993747741 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/rs6000-aix-tdep.c 2013-08-02 16:43:04.738681025 +0200 +++ 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 * @@ -196,9 +196,9 @@ rs6000_push_dummy_call (struct gdbarch *
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
enum bfd_endian byte_order = gdbarch_byte_order (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) 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.90.20140127.orig/gdb/s390-linux-tdep.c 2014-02-06 18:20:52.993747741 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/s390-tdep.c 2013-08-02 16:43:04.739681026 +0200 +++ gdb-7.6.90.20140127/gdb/s390-linux-tdep.c 2014-02-06 18:22:17.330838389 +0100
@@ -2483,7 +2483,7 @@ is_float_like (struct type *type) @@ -2526,7 +2526,7 @@ is_float_like (struct type *type)
static int static int
@ -950,7 +950,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/s390-tdep.c
{ {
return ((n & (n - 1)) == 0); 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 value *arg = args[i];
struct type *type = check_typedef (value_type (arg)); struct type *type = check_typedef (value_type (arg));
@ -959,10 +959,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/s390-tdep.c
if (s390_function_arg_pass_by_reference (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.90.20140127.orig/gdb/score-tdep.c 2014-02-06 18:20:52.994747742 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/score-tdep.c 2013-08-02 16:43:04.739681026 +0200 +++ 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 @@ -515,7 +515,7 @@ score_push_dummy_call (struct gdbarch *g
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int argnum; int argnum;
@ -972,10 +972,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/score-tdep.c
CORE_ADDR stack_offset = 0; CORE_ADDR stack_offset = 0;
CORE_ADDR addr = 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.90.20140127.orig/gdb/sh-tdep.c 2014-02-06 18:20:52.995747743 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/sh-tdep.c 2013-08-02 16:51:29.604404553 +0200 +++ 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 @@ -807,7 +807,7 @@ sh_skip_prologue (struct gdbarch *gdbarc
static int static int
sh_use_struct_convention (int renesas_abi, struct type *type) 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 pass_on_stack = 0;
int last_reg_arg = INT_MAX; 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.90.20140127.orig/gdb/sh64-tdep.c 2014-02-06 18:20:52.995747743 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/sh64-tdep.c 2013-08-02 16:50:49.740344125 +0200 +++ 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 @@ -1058,7 +1058,7 @@ sh64_push_dummy_call (struct gdbarch *gd
CORE_ADDR struct_addr) CORE_ADDR struct_addr)
{ {
@ -1036,11 +1036,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/sh64-tdep.c
int argreg_size; int argreg_size;
int fp_args[12]; 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.90.20140127.orig/gdb/sparc-tdep.c 2014-02-06 18:20:52.996747744 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/sparc-tdep.c 2013-08-02 16:43:04.740681027 +0200 +++ gdb-7.6.90.20140127/gdb/sparc-tdep.c 2014-02-06 18:20:57.311752380 +0100
@@ -471,7 +471,7 @@ sparc32_store_arguments (struct regcache @@ -502,7 +502,7 @@ sparc32_store_arguments (struct regcache
for (i = 0; i < nargs; i++) for (i = 0; i < nargs; i++)
{ {
struct type *type = value_type (args[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) if (sparc_structure_or_union_p (type)
|| (sparc_floating_p (type) && len == 16) || (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.90.20140127.orig/gdb/sparc64-tdep.c 2014-02-06 18:20:52.996747744 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/sparc64-tdep.c 2013-08-02 16:43:04.741681029 +0200 +++ 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 @@ -639,7 +639,8 @@ sparc64_16_byte_align_p (struct type *ty
static void static void
@ -1108,10 +1108,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/sparc64-tdep.c
int regnum = -1; int regnum = -1;
gdb_byte buf[16]; 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.90.20140127.orig/gdb/spu-tdep.c 2014-02-06 18:20:52.997747745 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/spu-tdep.c 2013-08-02 16:43:04.741681029 +0200 +++ 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 @@ -1376,7 +1376,7 @@ spu_push_dummy_call (struct gdbarch *gdb
struct value *arg = args[i]; struct value *arg = args[i];
struct type *type = check_typedef (value_type (arg)); 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; int preferred_slot;
if (spu_scalar_value_p (type)) 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.90.20140127.orig/gdb/tic6x-tdep.c 2014-02-06 18:20:52.997747745 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/tic6x-tdep.c 2013-08-02 16:43:04.742681030 +0200 +++ 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 @@ -896,7 +896,7 @@ tic6x_push_dummy_call (struct gdbarch *g
int argreg = 0; int argreg = 0;
int argnum; int argnum;
@ -1171,11 +1171,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/tic6x-tdep.c
addr = sp + stack_offset; addr = sp + stack_offset;
write_memory (addr, val, len); 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.90.20140127.orig/gdb/tilegx-tdep.c 2014-02-06 18:20:52.998747746 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/tilegx-tdep.c 2013-08-02 16:43:04.742681030 +0200 +++ gdb-7.6.90.20140127/gdb/tilegx-tdep.c 2014-02-06 18:20:57.312752381 +0100
@@ -291,7 +291,7 @@ tilegx_push_dummy_call (struct gdbarch * @@ -290,7 +290,7 @@ tilegx_push_dummy_call (struct gdbarch *
CORE_ADDR stack_dest = sp; CORE_ADDR stack_dest = sp;
int argreg = TILEGX_R0_REGNUM; int argreg = TILEGX_R0_REGNUM;
int i, j; 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 }; static const gdb_byte four_zero_words[16] = { 0 };
/* If struct_return is 1, then the struct return address will /* 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.90.20140127.orig/gdb/v850-tdep.c 2014-02-06 18:20:52.998747746 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/v850-tdep.c 2013-08-02 16:52:55.219531101 +0200 +++ 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 @@ -1021,7 +1021,7 @@ v850_push_dummy_call (struct gdbarch *gd
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int argreg; int argreg;
@ -1206,10 +1206,10 @@ Index: gdb-7.6.50.20130731-cvs/gdb/v850-tdep.c
gdb_byte *val; gdb_byte *val;
gdb_byte valbuf[v850_reg_size]; 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.90.20140127.orig/gdb/vax-tdep.c 2014-02-06 18:20:52.998747746 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/vax-tdep.c 2013-08-02 16:43:04.742681030 +0200 +++ 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 @@ -115,7 +115,7 @@ vax_store_arguments (struct regcache *re
struct gdbarch *gdbarch = get_regcache_arch (regcache); struct gdbarch *gdbarch = get_regcache_arch (regcache);
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); 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; sp -= (len + 3) & ~3;
count += (len + 3) / 4; 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.90.20140127.orig/gdb/xstormy16-tdep.c 2014-02-06 18:20:52.999747748 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/xstormy16-tdep.c 2013-08-02 16:43:04.743681032 +0200 +++ 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 @@ -235,8 +235,9 @@ xstormy16_push_dummy_call (struct gdbarc
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
CORE_ADDR stack_dest = sp; CORE_ADDR stack_dest = sp;
@ -1244,11 +1244,11 @@ Index: gdb-7.6.50.20130731-cvs/gdb/xstormy16-tdep.c
const gdb_byte *val; const gdb_byte *val;
gdb_byte buf[xstormy16_pc_size]; 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.90.20140127.orig/gdb/xtensa-tdep.c 2014-02-06 18:20:53.000747749 +0100
+++ gdb-7.6.50.20130731-cvs/gdb/xtensa-tdep.c 2013-08-02 16:43:04.743681032 +0200 +++ gdb-7.6.90.20140127/gdb/xtensa-tdep.c 2014-02-06 18:20:57.314752384 +0100
@@ -1653,8 +1653,7 @@ xtensa_store_return_value (struct type * @@ -1652,8 +1652,7 @@ xtensa_store_return_value (struct type *
if (len > (callsize > 8 ? 8 : 16)) if (len > (callsize > 8 ? 8 : 16))
internal_error (__FILE__, __LINE__, internal_error (__FILE__, __LINE__,
@ -1258,7 +1258,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/xtensa-tdep.c
areg = arreg_number (gdbarch, areg = arreg_number (gdbarch,
gdbarch_tdep (gdbarch)->a0_base + 2 + callsize, wb); 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); enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int i; int i;
@ -1280,7 +1280,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/xtensa-tdep.c
int regno; /* regno if in register. */ int regno; /* regno if in register. */
} u; } 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 value *arg = args[i];
struct type *arg_type = check_typedef (value_type (arg)); 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)) switch (TYPE_CODE (arg_type))
{ {
case TYPE_CODE_INT: 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); info->align = TYPE_LENGTH (builtin_type (gdbarch)->builtin_long);
break; break;
} }
@ -1304,7 +1304,7 @@ Index: gdb-7.6.50.20130731-cvs/gdb/xtensa-tdep.c
/* Align size and onstack_size. */ /* Align size and onstack_size. */
size = (size + info->align - 1) & ~(info->align - 1); 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) 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; CORE_ADDR offset = sp + info->u.offset;
/* Odd-sized structs are aligned to the lower side of a memory /* 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 else
{ {

View File

@ -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.7.orig/gdb/linux-nat.c 2014-02-09 19:18:24.048554459 +0100
+++ gdb-7.4.50.20120602/gdb/linux-nat.c 2012-06-02 20:56:03.966493352 +0200 +++ gdb-7.7/gdb/linux-nat.c 2014-02-09 19:19:22.210622806 +0100
@@ -1816,8 +1816,22 @@ get_pending_status (struct lwp_info *lp, @@ -1529,8 +1529,22 @@ get_pending_status (struct lwp_info *lp,
gdb_signal_to_string (signo)); 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); - *status = W_STOPCODE (SIGSTOP);
+ /* Workaround RHEL-5 kernel which has unreliable PTRACE_DETACH, SIGSTOP (that + /* Workaround RHEL-5 kernel which has unreliable PTRACE_DETACH, SIGSTOP (that
+ many TIDs are left unstopped). See RH Bug 496732. */ + 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; + int err;
+ +
+ errno = 0; + errno = 0;
+ err = kill_lwp (GET_LWP (lp->ptid), SIGSTOP); + err = kill_lwp (ptid_get_lwp (lp->ptid), SIGSTOP);
+ if (debug_linux_nat) + if (debug_linux_nat)
+ { + {
+ fprintf_unfiltered (gdb_stdlog, + fprintf_unfiltered (gdb_stdlog,

View File

@ -1,10 +1,10 @@
Some functionality is available on RHEL-5.4+ only with gcc44 and gfortran44 as 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. 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.6.90.20140127.orig/gdb/testsuite/gdb.base/vla.exp 2014-02-06 18:26:05.115083077 +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/gdb/testsuite/gdb.base/vla.exp 2014-02-06 18:26:06.689084765 +0100
@@ -16,7 +16,25 @@ @@ -16,7 +16,25 @@
set testfile vla set testfile vla
set srcfile ${testfile}.c 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" untested "Couldn't compile test program"
return -1 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.6.90.20140127.orig/gdb/testsuite/gdb.base/break-interp.exp 2014-02-06 18:26:05.116083078 +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/gdb/testsuite/gdb.base/break-interp.exp 2014-02-06 18:26:06.689084765 +0100
@@ -34,9 +34,29 @@ if [get_compiler_info] { @@ -34,9 +34,29 @@ if [get_compiler_info] {
return -1 return -1
} }
@ -67,10 +67,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.base/break-interp.exp
return -1 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.6.90.20140127.orig/gdb/testsuite/gdb.fortran/common-block.exp 2014-02-06 18:26:05.116083078 +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/gdb/testsuite/gdb.fortran/common-block.exp 2014-02-06 18:26:06.690084760 +0100
@@ -22,8 +22,25 @@ if {[skip_fortran_tests]} { @@ -22,8 +22,25 @@ if {[skip_fortran_tests]} {
standard_testfile .f90 standard_testfile .f90
@ -99,10 +99,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/common-block.exp
return -1 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.6.90.20140127.orig/gdb/testsuite/gdb.fortran/dwarf-stride.exp 2014-02-06 18:26:05.117083079 +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/gdb/testsuite/gdb.fortran/dwarf-stride.exp 2014-02-06 18:26:06.690084760 +0100
@@ -27,7 +27,25 @@ @@ -27,7 +27,25 @@
set testfile dwarf-stride set testfile dwarf-stride
set srcfile ${testfile}.f90 set srcfile ${testfile}.f90
@ -130,10 +130,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/dwarf-stride.exp
return -1 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.6.90.20140127.orig/gdb/testsuite/gdb.fortran/dynamic.exp 2014-02-06 18:26:05.117083079 +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/gdb/testsuite/gdb.fortran/dynamic.exp 2014-02-06 18:26:06.690084760 +0100
@@ -25,7 +25,25 @@ set testfile "dynamic" @@ -25,7 +25,25 @@ set testfile "dynamic"
set srcfile ${testfile}.f90 set srcfile ${testfile}.f90
set binfile ${objdir}/${subdir}/${testfile} 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}" untested "Couldn't compile ${srcfile}"
return -1 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.6.90.20140127.orig/gdb/testsuite/gdb.fortran/library-module.exp 2014-02-06 18:26:05.117083079 +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/gdb/testsuite/gdb.fortran/library-module.exp 2014-02-06 18:26:06.690084760 +0100
@@ -23,16 +23,34 @@ if [get_compiler_info] { @@ -23,16 +23,34 @@ if [get_compiler_info] {
return -1 return -1
} }
@ -204,10 +204,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/library-module.exp
untested "Couldn't compile ${srcfile}" untested "Couldn't compile ${srcfile}"
return -1 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.6.90.20140127.orig/gdb/testsuite/gdb.fortran/module.exp 2014-02-06 18:26:05.118083080 +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/gdb/testsuite/gdb.fortran/module.exp 2014-02-06 18:26:06.690084760 +0100
@@ -15,7 +15,25 @@ @@ -15,7 +15,25 @@
standard_testfile .f90 standard_testfile .f90
@ -235,10 +235,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/module.exp
return -1 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.6.90.20140127.orig/gdb/testsuite/gdb.fortran/string.exp 2014-02-06 18:26:05.118083080 +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/gdb/testsuite/gdb.fortran/string.exp 2014-02-06 18:26:06.691084763 +0100
@@ -23,7 +23,25 @@ set testfile "string" @@ -23,7 +23,25 @@ set testfile "string"
set srcfile ${testfile}.f90 set srcfile ${testfile}.f90
set binfile ${objdir}/${subdir}/${testfile} 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}" untested "Couldn't compile ${srcfile}"
return -1 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.6.90.20140127.orig/gdb/testsuite/gdb.fortran/omp-step.exp 2014-02-06 18:26:05.118083080 +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/gdb/testsuite/gdb.fortran/omp-step.exp 2014-02-06 18:26:06.691084763 +0100
@@ -15,7 +15,26 @@ @@ -15,7 +15,26 @@
set testfile "omp-step" set testfile "omp-step"
@ -298,10 +298,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/omp-step.exp
return -1 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.6.90.20140127.orig/gdb/testsuite/gdb.fortran/derived-type.exp 2014-02-06 18:26:05.119083082 +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/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 @@ -22,7 +22,25 @@ if { [skip_fortran_tests] } { return -1
standard_testfile .f90 standard_testfile .f90
@ -329,10 +329,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/derived-type.exp
return -1 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.6.90.20140127.orig/gdb/testsuite/gdb.fortran/subarray.exp 2014-02-06 18:26:05.119083082 +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/gdb/testsuite/gdb.fortran/subarray.exp 2014-02-06 18:26:06.691084763 +0100
@@ -22,7 +22,25 @@ if { [skip_fortran_tests] } { return -1 @@ -22,7 +22,25 @@ if { [skip_fortran_tests] } { return -1
standard_testfile .f standard_testfile .f
@ -360,10 +360,10 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/gdb.fortran/subarray.exp
return -1 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.6.90.20140127.orig/gdb/testsuite/gdb.threads/tls-sepdebug.exp 2014-02-06 18:26:05.119083082 +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/gdb/testsuite/gdb.threads/tls-sepdebug.exp 2014-02-06 18:26:06.691084763 +0100
@@ -32,7 +32,25 @@ set binshareddebugfile ${objdir}/${subdi @@ -32,7 +32,25 @@ set binshareddebugfile ${objdir}/${subdi
# FIXME: gcc dependency (-Wl,-soname). # 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" untested "Couldn't compile test library"
return -1 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.6.90.20140127.orig/gdb/testsuite/lib/prelink-support.exp 2014-02-06 18:26:06.692084767 +0100
+++ gdb-7.5.50.20130118/gdb/testsuite/lib/prelink-support.exp 2013-01-18 23:43:08.084761135 +0100 +++ gdb-7.6.90.20140127/gdb/testsuite/lib/prelink-support.exp 2014-02-06 18:27:44.960190192 +0100
@@ -119,9 +119,31 @@ proc file_copy {src dest} { @@ -118,9 +118,31 @@ proc file_copy {src dest} {
proc build_executable_own_libs {testname executable sources options {interp ""} {dir ""}} { proc build_executable_own_libs {testname executable sources options {interp ""} {dir ""}} {
global objdir subdir global subdir
- if {[build_executable $testname $executable $sources $options] == -1} { - if {[build_executable $testname $executable $sources $options] == -1} {
- return "" - return ""
@ -426,6 +426,6 @@ Index: gdb-7.5.50.20130118/gdb/testsuite/lib/prelink-support.exp
+ return "" + return ""
+ } + }
+ +
set binfile ${objdir}/${subdir}/${executable} set binfile [standard_output_file ${executable}]
set command "ldd $binfile" set ldd [gdb_find_ldd]

View File

@ -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-main.c
create mode 100644 gdb/testsuite/gdb.base/cfi-without-die.exp 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 Index: gdb-7.7/gdb/testsuite/gdb.base/cfi-without-die-caller.c
new file mode 100644 ===================================================================
index 0000000..afdfd53 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
--- /dev/null +++ gdb-7.7/gdb/testsuite/gdb.base/cfi-without-die-caller.c 2014-02-06 19:35:23.485863819 +0100
+++ b/gdb/testsuite/gdb.base/cfi-without-die-caller.c
@@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
+/* This testcase is part of GDB, the GNU debugger. +/* 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. */ + /* Modify the return value to prevent any tail-call optimization. */
+ return (*callback) () - one; + 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 Index: gdb-7.7/gdb/testsuite/gdb.base/cfi-without-die-main.c
new file mode 100644 ===================================================================
index 0000000..8451c4b --- /dev/null 1970-01-01 00:00:00.000000000 +0000
--- /dev/null +++ gdb-7.7/gdb/testsuite/gdb.base/cfi-without-die-main.c 2014-02-06 19:35:23.485863819 +0100
+++ b/gdb/testsuite/gdb.base/cfi-without-die-main.c
@@ -0,0 +1,32 @@ @@ -0,0 +1,32 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
@ -142,11 +140,10 @@ index 0000000..8451c4b
+{ +{
+ return caller (callback); + return caller (callback);
+} +}
diff --git a/gdb/testsuite/gdb.base/cfi-without-die.exp b/gdb/testsuite/gdb.base/cfi-without-die.exp Index: gdb-7.7/gdb/testsuite/gdb.base/cfi-without-die.exp
new file mode 100644 ===================================================================
index 0000000..db6d248 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
--- /dev/null +++ gdb-7.7/gdb/testsuite/gdb.base/cfi-without-die.exp 2014-02-06 20:26:00.775208847 +0100
+++ b/gdb/testsuite/gdb.base/cfi-without-die.exp
@@ -0,0 +1,67 @@ @@ -0,0 +1,67 @@
+# Copyright 2010 Free Software Foundation, Inc. +# Copyright 2010 Free Software Foundation, Inc.
+ +
@ -169,9 +166,9 @@ index 0000000..db6d248
+set srcmainfile ${testfile}-main.c +set srcmainfile ${testfile}-main.c
+set srccallerfile ${testfile}-caller.c +set srccallerfile ${testfile}-caller.c
+set executable ${testfile} +set executable ${testfile}
+set objmainfile ${objdir}/${subdir}/${testfile}-main.o +set objmainfile [standard_output_file ${testfile}-main.o]
+set objcallerfile ${objdir}/${subdir}/${testfile}-caller.o +set objcallerfile [standard_output_file ${testfile}-caller.o]
+set binfile ${objdir}/${subdir}/${executable} +set binfile [standard_output_file ${executable}]
+ +
+if { [gdb_compile "${srcdir}/${subdir}/${srccallerfile}" ${objcallerfile} \ +if { [gdb_compile "${srcdir}/${subdir}/${srccallerfile}" ${objcallerfile} \
+ object [list {additional_flags=-fomit-frame-pointer -fno-unwind-tables -fno-asynchronous-unwind-tables}]] != "" + 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 () +# #1 0x00000000004004e9 in caller ()
+# #2 0x00000000004004cd in main () at ... +# #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" +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

View File

@ -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. * 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 Index: gdb-7.7/gdb/testsuite/gdb.dwarf2/dw2-aranges.S
new file mode 100644 ===================================================================
index 0000000..d5b9ca5a --- /dev/null 1970-01-01 00:00:00.000000000 +0000
--- /dev/null +++ gdb-7.7/gdb/testsuite/gdb.dwarf2/dw2-aranges.S 2014-02-06 22:02:22.087449660 +0100
+++ b/gdb/testsuite/gdb.dwarf2/dw2-aranges.S
@@ -0,0 +1,140 @@ @@ -0,0 +1,140 @@
+/* This testcase is part of GDB, the GNU debugger. +/* This testcase is part of GDB, the GNU debugger.
+ +
@ -166,11 +165,10 @@ index 0000000..d5b9ca5a
+ .byte 0 /* aranges segment_size */ + .byte 0 /* aranges segment_size */
+ +
+.Laranges_end: +.Laranges_end:
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-aranges.exp b/gdb/testsuite/gdb.dwarf2/dw2-aranges.exp Index: gdb-7.7/gdb/testsuite/gdb.dwarf2/dw2-aranges.exp
new file mode 100644 ===================================================================
index 0000000..39632d5 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
--- /dev/null +++ gdb-7.7/gdb/testsuite/gdb.dwarf2/dw2-aranges.exp 2014-02-06 22:09:08.322852771 +0100
+++ b/gdb/testsuite/gdb.dwarf2/dw2-aranges.exp
@@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
+# Copyright 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc. +# Copyright 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
+ +
@ -202,7 +200,7 @@ index 0000000..39632d5
+ +
+set testfile "dw2-aranges" +set testfile "dw2-aranges"
+set srcfile ${testfile}.S +set srcfile ${testfile}.S
+set binfile ${objdir}/${subdir}/${testfile} +set binfile [standard_output_file ${testfile}]
+ +
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {nodebug}] != "" } { +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {nodebug}] != "" } {
+ return -1 + return -1

View 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
View 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--

View File

@ -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 Mon Dec 9 14:16:53 UTC 2013 - uweigand@de.ibm.com

3402
gdb.spec

File diff suppressed because it is too large Load Diff